Proxmox/static/js/main.9f2bdef3.js.map

1 line
3.0 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"static/js/main.9f2bdef3.js","mappings":";+CAEA,IAAIA,EAASC,OAAOC,UAAUC,eAC1BC,EAAQH,OAAOC,UAAUG,SACzBC,EAAiBL,OAAOK,eACxBC,EAAON,OAAOO,yBAEdC,EAAU,SAAiBC,GAC9B,MAA6B,oBAAlBC,MAAMF,QACTE,MAAMF,QAAQC,GAGK,mBAApBN,EAAMQ,KAAKF,EACnB,EAEIG,EAAgB,SAAuBC,GAC1C,IAAKA,GAA2B,oBAApBV,EAAMQ,KAAKE,GACtB,OAAO,EAGR,IASIC,EATAC,EAAoBhB,EAAOY,KAAKE,EAAK,eACrCG,EAAmBH,EAAII,aAAeJ,EAAII,YAAYhB,WAAaF,EAAOY,KAAKE,EAAII,YAAYhB,UAAW,iBAE9G,GAAIY,EAAII,cAAgBF,IAAsBC,EAC7C,OAAO,EAMR,IAAKF,KAAOD,GAEZ,MAAsB,qBAARC,GAAuBf,EAAOY,KAAKE,EAAKC,EACvD,EAGII,EAAc,SAAqBC,EAAQC,GAC1Cf,GAAmC,cAAjBe,EAAQC,KAC7BhB,EAAec,EAAQC,EAAQC,KAAM,CACpCC,YAAY,EACZC,cAAc,EACdC,MAAOJ,EAAQK,SACfC,UAAU,IAGXP,EAAOC,EAAQC,MAAQD,EAAQK,QAEjC,EAGIE,EAAc,SAAqBd,EAAKQ,GAC3C,GAAa,cAATA,EAAsB,CACzB,IAAKtB,EAAOY,KAAKE,EAAKQ,GACrB,OACM,GAAIf,EAGV,OAAOA,EAAKO,EAAKQ,GAAMG,KAEzB,CAEA,OAAOX,EAAIQ,EACZ,EAEAO,EAAOC,QAAU,SAASC,IACzB,IAAIV,EAASC,EAAMU,EAAKC,EAAMC,EAAaC,EACvCf,EAASgB,UAAU,GACnBC,EAAI,EACJC,EAASF,UAAUE,OACnBC,GAAO,EAaX,IAVsB,mBAAXnB,IACVmB,EAAOnB,EACPA,EAASgB,UAAU,IAAM,CAAC,EAE1BC,EAAI,IAES,MAAVjB,GAAqC,kBAAXA,GAAyC,oBAAXA,KAC3DA,EAAS,CAAC,GAGJiB,EAAIC,IAAUD,EAGpB,GAAe,OAFfhB,EAAUe,UAAUC,IAInB,IAAKf,KAAQD,EACZW,EAAMJ,EAAYR,EAAQE,GAItBF,KAHJa,EAAOL,EAAYP,EAASC,MAKvBiB,GAAQN,IAASpB,EAAcoB,KAAUC,EAAczB,EAAQwB,MAC9DC,GACHA,GAAc,EACdC,EAAQH,GAAOvB,EAAQuB,GAAOA,EAAM,IAEpCG,EAAQH,GAAOnB,EAAcmB,GAAOA,EAAM,CAAC,EAI5Cb,EAAYC,EAAQ,CAAEE,KAAMA,EAAMI,SAAUK,EAAOQ,EAAMJ,EAAOF,MAGtC,qBAATA,GACjBd,EAAYC,EAAQ,CAAEE,KAAMA,EAAMI,SAAUO,KAQjD,OAAOb,CACR,yBClHAS,EAAOC,QAKP,SAAeU,EAAUC,GACvB,IAIIC,EACAC,EACAC,EANAnB,EAAQe,GAAY,GACpBlB,EAAOmB,GAAkB,MACzBI,EAAQ,CAAC,EACTC,EAAQ,EAKZ,KAAOA,EAAQrB,EAAMa,QACnBS,EAAOC,UAAYF,EACnBF,EAAQG,EAAOE,KAAKxB,IACpBiB,EAAWjB,EAAMyB,MAAMJ,EAAOF,EAAQA,EAAMO,MAAQ1B,EAAMa,WAGnDK,EAEmB,MAAbA,EACTE,EAAMO,GAAKV,EACFG,EAAMQ,UACfR,EAAMQ,UAAUC,KAAKZ,GAErBG,EAAMQ,UAAY,CAACX,GANnBpB,EAAOoB,EASTI,GAASJ,EAASJ,QAGhBM,IACFD,EAAWC,EAAM,GACjBE,KAIJ,MAAO,CAACS,KAAM,UAAWC,QAASlC,EAAMmC,WAAYZ,EAAOa,SAAU,GACvE,EAtCA,IAAIX,EAAS,qCCFb,IAAIY,EAAOC,EAAQ,MACfC,EAAYD,EAAQ,MACpBE,EAAgBF,EAAQ,MACxBG,EAASH,EAAAA,MAAAA,EACTI,EAASJ,EAAAA,MAAAA,EAEb/B,EAAOC,QAIP,SAAiBmC,EAAQxB,EAAgByB,GACvC,IAAIC,EAASD,EA0Lf,SAAyBE,GACvB,IAGI3C,EAHAa,EAAS8B,EAAO9B,OAChBa,GAAS,EACTkB,EAAS,CAAC,EAGd,OAASlB,EAAQb,GAEf+B,GADA5C,EAAQ2C,EAAOjB,IACFmB,eAAiB7C,EAGhC,OAAO4C,CACT,CAtM+BE,CAAgBL,GAAiB,KAE9D,OAGA,SAAW1B,EAAUiB,GACnB,IAGIe,EAHAC,EAAOX,EAActB,EAAUC,GAC/BiB,EAAW/C,MAAMT,UAAUgD,MAAMtC,KAAKwB,UAAW,GACjDd,EAAOmD,EAAKjB,QAAQc,cAGxBG,EAAKjB,QAAUW,GAAUO,EAAI9D,KAAKuD,EAAQ7C,GAAQ6C,EAAO7C,GAAQA,EAE7DmC,GAAckB,EAAWlB,EAAYgB,KACvCf,EAASkB,QAAQnB,GACjBA,EAAa,MAGf,GAAIA,EACF,IAAKe,KAAYf,EACfoB,EAAYJ,EAAKhB,WAAYe,EAAUf,EAAWe,IAItDM,EAASL,EAAKf,SAAUA,GAEH,aAAjBe,EAAKjB,UACPiB,EAAKM,QAAU,CAACxB,KAAM,OAAQG,SAAUe,EAAKf,UAC7Ce,EAAKf,SAAW,IAGlB,OAAOe,CACT,EAEA,SAASI,EAAYpB,EAAY1C,EAAKU,GACpC,IAAIuD,EACAR,EACAH,EAGU,OAAV5C,QAA4BwD,IAAVxD,GAAuBA,IAAUA,IAKvD+C,GADAQ,EAAOrB,EAAKM,EAAQlD,IACJyD,SAIM,kBAHtBH,EAAS5C,KAIHuD,EAAKE,eACPb,EAASN,EAAOM,GACPW,EAAKG,eACdd,EAASL,EAAOK,GACPW,EAAKI,wBACdf,EAASN,EAAOC,EAAOK,GAAQgB,KAAK,QAKvB,UAAbb,GAAyC,kBAAV/C,IACjC4C,EAkHN,SAAe5C,GACb,IACIV,EADAsD,EAAS,GAGb,IAAKtD,KAAOU,EACV4C,EAAOf,KAAK,CAACvC,EAAKU,EAAMV,IAAMsE,KAAK,OAGrC,OAAOhB,EAAOgB,KAAK,KACrB,CA3HeC,CAAMjB,IAIA,cAAbG,GAA4Bf,EAAWJ,YACzCgB,EAASZ,EAAWJ,UAAUkC,OAAOlB,IAGvCZ,EAAWe,GAiEf,SAAyBQ,EAAM1D,EAAMG,GACnC,IAAI0B,EACAb,EACA+B,EAEJ,GAAqB,kBAAV5C,KAAwB,WAAYA,GAC7C,OAAO+D,EAAeR,EAAM1D,EAAMG,GAGpCa,EAASb,EAAMa,OACfa,GAAS,EACTkB,EAAS,GAET,OAASlB,EAAQb,GACf+B,EAAOlB,GAASqC,EAAeR,EAAM1D,EAAMG,EAAM0B,IAGnD,OAAOkB,CACT,CAnF2BoB,CAAgBT,EAAMR,EAAUH,GACzD,CACF,EA1EA,IAAIK,EAAM,CAAC,EAAEvE,eA4Eb,SAASwE,EAAWlD,EAAOgD,GACzB,MACmB,kBAAVhD,GACP,WAAYA,GAKhB,SAAgB+B,EAAS/B,GACvB,IAAI8B,EAAO9B,EAAM8B,KAEjB,GAAgB,UAAZC,IAAwBD,GAAwB,kBAATA,EACzC,OAAO,EAGT,GAA8B,kBAAnB9B,EAAMiC,UAAyB,WAAYjC,EAAMiC,SAC1D,OAAO,EAKT,GAFAH,EAAOA,EAAKe,cAEI,WAAZd,EACF,MACW,SAATD,GACS,WAATA,GACS,UAATA,GACS,WAATA,EAIJ,MAAO,UAAW9B,CACpB,CA3BIiE,CAAOjB,EAAKjB,QAAS/B,EAEzB,CA2BA,SAASqD,EAASa,EAAOlE,GACvB,IAAI0B,EACAb,EAEJ,GAAqB,kBAAVb,GAAuC,kBAAVA,EAKxC,GAAqB,kBAAVA,GAAsB,WAAYA,EAI3C,IAHA0B,GAAS,EACTb,EAASb,EAAMa,SAENa,EAAQb,GACfwC,EAASa,EAAOlE,EAAM0B,QAL1B,CAWA,GAAqB,kBAAV1B,KAAwB,SAAUA,GAC3C,MAAM,IAAImE,MAAM,yCAA2CnE,EAAQ,KAGrEkE,EAAMrC,KAAK7B,EANX,MAbEkE,EAAMrC,KAAK,CAACC,KAAM,OAAQ9B,MAAOoE,OAAOpE,IAoB5C,CAwBA,SAAS+D,EAAeR,EAAM1D,EAAMG,GAClC,IAAI4C,EAAS5C,EAgBb,OAdIuD,EAAKc,QAAUd,EAAKe,eACjBC,MAAM3B,IAAsB,KAAXA,IACpBA,EAAS4B,OAAO5B,KAETW,EAAKkB,SAAWlB,EAAKmB,qBAGV,kBAAX9B,GACK,KAAXA,GAAiBR,EAAUpC,KAAWoC,EAAUvC,KAEjD+C,GAAS,IAINA,CACT,+BCxLA,IAAIJ,EAASL,EAAQ,KAGjBwC,EAFUxC,EAAQ,KAEXyC,CAAQpC,EAAQ,OAC3BmC,EAAKE,YAAc,OAEnBzE,EAAOC,QAAUsE,+BCNjBvE,EAAOC,QAAU,EAAjBD,iCCAAC,EAAQ,EAQR,SAAeL,GACb,IAKI8E,EALAnC,EAAS,GACToC,EAAQX,OAAOpE,GALT,IAMN0B,EAAQqD,EAAMC,QARR,KASNzD,EAAY,EACZ0D,GAAM,EAGV,MAAQA,IACS,IAAXvD,IACFA,EAAQqD,EAAMlE,OACdoE,GAAM,KAGRH,EAAMC,EAAMtD,MAAMF,EAAWG,GAAOwD,SAExBD,GACVtC,EAAOd,KAAKiD,GAGdvD,EAAYG,EAAQ,EACpBA,EAAQqD,EAAMC,QA1BN,IA0BqBzD,GAG/B,OAAOoB,CACT,+BCjCA,IAAIP,EAAYD,EAAQ,MACpBgD,EAAchD,EAAQ,MACtBiD,EAAOjD,EAAQ,MAEfkD,EAAO,OAEXjF,EAAOC,QAMP,SAAcmC,EAAQxC,GACpB,IAAIsF,EAASlD,EAAUpC,GACnBuF,EAAOvF,EACPwF,EAAOJ,EAEX,GAAIE,KAAU9C,EAAO8C,OACnB,OAAO9C,EAAOO,SAASP,EAAO8C,OAAOA,IAGnCA,EAAOzE,OAAS,GAAKyE,EAAO7D,MAAM,EAAG,KAAO4D,GAAQI,EAAMC,KAAK1F,KAEzC,MAApBA,EAAM2F,OAAO,GACfJ,EAWN,SAA2BK,GACzB,IAAI5F,EAAQ4F,EAAUnE,MAAM,GAAGoE,QAAQC,EAAMC,GAC7C,OAAOV,EAAOrF,EAAM2F,OAAO,GAAGK,cAAgBhG,EAAMyB,MAAM,EAC5D,CAdawE,CAAkBjG,GAEzBA,EAcN,SAA4B+C,GAC1B,IAAI/C,EAAQ+C,EAAStB,MAAM,GAE3B,GAAIqE,EAAKJ,KAAK1F,GACZ,OAAO+C,EAKe,OAFxB/C,EAAQA,EAAM6F,QAAQK,EAAKC,IAEjBR,OAAO,KACf3F,EAAQ,IAAMA,GAGhB,OAAOqF,EAAOrF,CAChB,CA5BcoG,CAAmBpG,GAG7BwF,EAAOL,GAGT,OAAO,IAAIK,EAAKD,EAAMvF,EACxB,EAzBA,IAAIyF,EAAQ,kBACRK,EAAO,UACPI,EAAM,SA8CV,SAASC,EAAME,GACb,MAAO,IAAMA,EAAGxD,aAClB,CAEA,SAASkD,EAAUM,GACjB,OAAOA,EAAGV,OAAO,GAAGK,aACtB,8BC9DA,IAAIM,EAAQnE,EAAQ,KAChBoE,EAAQpE,EAAQ,MAChBqE,EAAMrE,EAAQ,MACdsE,EAAQtE,EAAQ,MAChBuE,EAAOvE,EAAQ,MACfwC,EAAOxC,EAAQ,MAEnB/B,EAAOC,QAAUiG,EAAM,CAACE,EAAKD,EAAOE,EAAOC,EAAM/B,iCCPjD,IAAIgC,EAAQxE,EAAQ,MAChByE,EAASzE,EAAQ,MAEjB0E,EAAaF,EAAME,WACnBxC,EAASsC,EAAMtC,OACfZ,EAAiBkD,EAAMlD,eAE3BrD,EAAOC,QAAUuG,EAAO,CACtBE,UAsDF,SAAuBC,EAAGxB,GACxB,MAAgB,SAATA,EAAkBA,EAAO,QAAUA,EAAK9D,MAAM,GAAGoB,aAC1D,EAvDEb,WAAY,CACVgF,qBAAsB,KACtBC,WAAYJ,EACZK,iBAAkB,KAClBC,SAAUN,EACVO,YAAaP,EACbQ,aAAchD,EACdiD,aAAcjD,EACdkD,YAAalD,EACbmD,aAAc/D,EACdgE,YAAa,KACbC,gBAAiBjE,EACjBkE,YAAa,KACbC,aAAcf,EACdgB,eAAgBpE,EAChBqE,iBAAkB,KAClBC,aAAclB,EACdmB,WAAYvE,EACZwE,YAAapB,EACbqB,aAAc,KACdC,WAAYtB,EACZuB,YAAa,KACbC,iBAAkB,KAClBC,UAAW,KACXC,eAAgB9E,EAChB+E,UAAWnE,EACXoE,SAAU,KACVC,UAAW7B,EACX8B,cAAe9B,EACf+B,oBAAqB/B,EACrBgC,gBAAiB,KACjBC,SAAUrF,EACVsF,gBAAiB,KACjBC,aAAc3E,EACd4E,YAAapC,EACbqC,aAAcrC,EACdsC,aAAc,KACdC,aAAcvC,EACdwC,oBAAqB5F,EACrB6F,aAAcjF,EACdkF,aAAclF,EACdmF,YAAanF,EACboF,aAAc5C,EACd6C,YAAarF,EACbsF,SAAU,KACVC,aAAcvF,EACdwF,aAAcxF,EACdyF,aAAczF,EACd0F,cAAe,KACfC,KAAM,qCC1DV,IAAIrD,EAAQxE,EAAQ,MAChByE,EAASzE,EAAQ,MACjB8H,EAA2B9H,EAAQ,MAEnCsC,EAAUkC,EAAMlC,QAChBC,EAAoBiC,EAAMjC,kBAC1BmC,EAAaF,EAAME,WACnBxC,EAASsC,EAAMtC,OACfZ,EAAiBkD,EAAMlD,eACvBC,EAAiBiD,EAAMjD,eAE3BtD,EAAOC,QAAUuG,EAAO,CACtBsD,MAAO,OACPC,WAAY,CACVC,cAAe,iBACfC,UAAW,QACXC,QAAS,MACTC,UAAW,cAEbzD,UAAWmD,EACXO,gBAAiB,CAAC,UAAW,WAAY,QAAS,YAClDxI,WAAY,CAEVyI,KAAM,KACNC,OAAQhH,EACRiH,cAAelH,EACfmH,UAAWnH,EACXoH,OAAQ,KACRC,MAAO,KACPC,gBAAiBtG,EACjBuG,oBAAqBvG,EACrBwG,eAAgBxG,EAChByG,IAAK,KACLC,GAAI,KACJC,MAAO3G,EACP4G,eAAgB,KAChBC,aAAc7H,EACd8H,UAAW9G,EACX+G,SAAU/G,EACVgH,QAAShH,EACTiH,QAAS,KACTC,QAASlH,EACTmH,KAAM,KACNhK,UAAW6B,EACXoI,KAAMxH,EACNyH,QAAS,KACTxI,QAAS,KACTyI,gBAAiBlF,EACjBmF,SAAUvH,EACVwH,aAAcxI,EACdyI,OAAQ7H,EAASX,EACjByI,YAAa,KACb9G,KAAM,KACN+G,SAAU,KACVC,SAAU,KACVC,QAAS7H,EACT8H,MAAO9H,EACP+H,IAAK,KACLC,QAAS,KACTC,SAAUjI,EACVkI,SAAUjI,EACVkI,UAAW/F,EACXgG,QAAS,KACTC,aAAc,KACdC,KAAM,KACNC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,eAAgB1I,EAChB2I,WAAY,KACZC,QAAS5J,EACT6J,OAAQjJ,EACRkJ,OAAQ9I,EACR+I,KAAMnJ,EACNoJ,KAAM,KACNC,SAAU,KACVC,QAASlK,EACTmK,UAAWnK,EACX9B,GAAI,KACJkM,WAAY,KACZC,YAAapK,EACbqK,UAAW,KACXC,UAAW,KACXC,GAAI,KACJC,MAAOzJ,EACP0J,OAAQ,KACRC,SAAU3K,EACV4K,QAAS5K,EACT6K,UAAW7J,EACX8J,SAAU9K,EACV+K,KAAM,KACNC,MAAO,KACPC,KAAM,KACNC,SAAU,KACVC,KAAM,KACNC,QAAS,KACTC,KAAMrK,EACNsK,IAAK1K,EACL2K,SAAU,KACVC,IAAK,KACLC,UAAW7K,EACX8K,MAAO,KACPC,OAAQ,KACRC,IAAK,KACLC,UAAWjL,EACXkL,SAAU9K,EACV+K,MAAO/K,EACP5E,KAAM,KACN4P,MAAO,KACPC,SAAUjL,EACVkL,WAAYlL,EACZmL,QAAS,KACTC,aAAc,KACdC,WAAY,KACZC,cAAe,KACfC,eAAgB,KAChBC,OAAQ,KACRC,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBC,SAAU,KACVC,QAAS,KACTC,QAAS,KACTC,cAAe,KACfC,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,WAAY,KACZC,aAAc,KACdC,QAAS,KACTC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,QAAS,KACTC,iBAAkB,KAClBC,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBC,UAAW,KACXC,YAAa,KACbC,UAAW,KACXC,eAAgB,KAChBC,YAAa,KACbC,aAAc,KACdC,aAAc,KACdC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACdC,mBAAoB,KACpBC,QAAS,KACTC,SAAU,KACVC,SAAU,KACVC,0BAA2B,KAC3BC,SAAU,KACVC,UAAW,KACXC,SAAU,KACVC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVC,qBAAsB,KACtBC,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXC,QAAS,KACTC,KAAMtQ,EACNuQ,QAAS3Q,EACT4Q,QAAS,KACTC,KAAMzR,EACN0R,YAAa,KACbC,YAAa3Q,EACb4Q,OAAQ,KACRC,QAAS,KACTC,SAAU9Q,EACV+Q,eAAgB,KAChBC,IAAKhS,EACLiS,SAAUjR,EACVkR,SAAUlR,EACVmR,KAAMvR,EACNwR,QAASxR,EACTyR,QAASrS,EACTsS,MAAO,KACPC,OAAQvR,EACRwR,SAAUxR,EACVyR,SAAUzR,EACV0R,MAAO,KACPC,KAAM/R,EACNgS,MAAO,KACPC,KAAM,KACNC,KAAMlS,EACNmS,WAAY3P,EACZtG,IAAK,KACLkW,OAAQ,KACRC,QAAS,KACTC,OAAQjT,EACRrC,MAAOgD,EACPuS,KAAM,KACN/S,MAAO,KACPgT,SAAUxS,EACV1E,OAAQ,KACRmX,MAAO,KACPC,UAAW,KACXjV,KAAM,KACNkV,cAAevS,EACfwS,OAAQ,KACRjX,MAAO6G,EACPqQ,MAAO7S,EACP8S,KAAM,KAINC,MAAO,KACPC,MAAO,KACPC,QAAS7T,EACT8T,KAAM,KACNC,WAAY,KACZC,QAAS,KACTC,OAAQrT,EACRsT,YAAa,KACbC,aAAcvT,EACdwT,YAAa,KACbC,YAAa,KACbC,KAAM,KACNC,QAAS,KACTC,QAAS,KACTC,MAAO,KACPC,KAAM,KACNC,SAAU,KACVC,SAAU,KACVC,MAAO,KACPC,QAAS9T,EACT+T,QAAS/T,EACTgU,MAAO,KACPC,KAAM,KACNC,MAAO,KACPC,YAAa,KACbC,OAAQxU,EACRyU,WAAYzU,EACZ0U,KAAM,KACNC,SAAU,KACVC,OAAQ,KACRC,aAAc7U,EACd8U,YAAa9U,EACb+U,SAAU3U,EACV4U,OAAQ5U,EACR6U,QAAS7U,EACT8U,OAAQ9U,EACR+U,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACRC,IAAK,KACLC,YAAavV,EACbwV,MAAO,KACPC,OAAQ,KACRC,UAAWlT,EACXmT,QAAS,KACTC,QAAS,KACTC,KAAM,KACNC,UAAW9V,EACX+V,UAAW,KACXC,QAAS,KACTC,OAAQ,KACRC,MAAO,KACPC,OAAQnW,EAGRoW,kBAAmB,KACnBC,YAAa,KACbC,SAAU,KACVC,wBAAyBnW,EACzBoW,sBAAuBpW,EACvBqW,OAAQ,KACR/X,SAAU,KACVgY,QAAS1W,EACT2W,SAAU,KACVC,aAAc,qCChTlB,IAAIC,EAAyB/Y,EAAQ,KAErC/B,EAAOC,QAEP,SAAkC8J,EAAYpH,GAC5C,OAAOmY,EAAuB/Q,EAAYpH,EAASF,cACrD,wBCNAzC,EAAOC,QAEP,SAAgC8J,EAAYvE,GAC1C,OAAOA,KAAauE,EAAaA,EAAWvE,GAAaA,CAC3D,+BCJA,IAAIxD,EAAYD,EAAQ,MACpBgZ,EAAShZ,EAAQ,MACjBgD,EAAchD,EAAQ,MAE1B/B,EAAOC,QAEP,SAAgB+a,GACd,IAOI7V,EACAhC,EARA2G,EAAQkR,EAAWlR,MACnBM,EAAkB4Q,EAAW5Q,iBAAmB,GAChDL,EAAaiR,EAAWjR,YAAc,CAAC,EACvC/I,EAAQga,EAAWpZ,WACnB8E,EAAYsU,EAAWtU,UACvB/D,EAAW,CAAC,EACZuC,EAAS,CAAC,EAId,IAAKC,KAAQnE,EACXmC,EAAO,IAAI4B,EACTI,EACAuB,EAAUqD,EAAY5E,GACtBnE,EAAMmE,GACN2E,IAGqC,IAAnCM,EAAgBxF,QAAQO,KAC1BhC,EAAKiH,iBAAkB,GAGzBzH,EAASwC,GAAQhC,EAEjB+B,EAAOlD,EAAUmD,IAASA,EAC1BD,EAAOlD,EAAUmB,EAAKqC,YAAcL,EAGtC,OAAO,IAAI4V,EAAOpY,EAAUuC,EAAQ4E,EACtC,+BCpCA,IAAI9E,EAAOjD,EAAQ,MACfwE,EAAQxE,EAAQ,MAEpB/B,EAAOC,QAAU8E,EAEjBA,EAAY1G,UAAY,IAAI2G,EAC5BD,EAAY1G,UAAU4c,SAAU,EAEhC,IAAIC,EAAS,CACX,UACA,aACA,oBACA,SACA,iBACA,iBACA,yBAEEC,EAAeD,EAAOza,OAE1B,SAASsE,EAAYpC,EAAU6C,EAAW4V,EAAMtR,GAC9C,IACIuR,EADA/Z,GAAS,EAOb,IAJAga,EAAKC,KAAM,QAASzR,GAEpB9E,EAAKjG,KAAKwc,KAAM5Y,EAAU6C,KAEjBlE,EAAQ6Z,GAEfG,EAAKC,KADLF,EAAQH,EAAO5Z,IACI8Z,EAAO7U,EAAM8U,MAAY9U,EAAM8U,GAEtD,CAEA,SAASC,EAAK/Y,EAAQrD,EAAKU,GACrBA,IACF2C,EAAOrD,GAAOU,EAElB,yBCrCAI,EAAOC,QAAU+E,EAEjB,IAAIwW,EAAQxW,EAAK3G,UAejB,SAAS2G,EAAKrC,EAAU6C,GACtB+V,KAAK5Y,SAAWA,EAChB4Y,KAAK/V,UAAYA,CACnB,CAhBAgW,EAAM1R,MAAQ,KACd0R,EAAMhW,UAAY,KAClBgW,EAAM7Y,SAAW,KACjB6Y,EAAMnX,SAAU,EAChBmX,EAAM/U,YAAa,EACnB+U,EAAMlX,mBAAoB,EAC1BkX,EAAMvX,QAAS,EACfuX,EAAMlY,gBAAiB,EACvBkY,EAAMnY,gBAAiB,EACvBmY,EAAMjY,uBAAwB,EAC9BiY,EAAMpR,iBAAkB,EACxBoR,EAAMP,SAAU,8BCfhB,IAAIQ,EAAQ1Z,EAAQ,MAChBgZ,EAAShZ,EAAQ,MAErB/B,EAAOC,QAEP,SAAeyb,GACb,IAIIvY,EACA2G,EALArJ,EAASib,EAAYjb,OACrBkC,EAAW,GACXuC,EAAS,GACT5D,GAAS,EAIb,OAASA,EAAQb,GACf0C,EAAOuY,EAAYpa,GACnBqB,EAASlB,KAAK0B,EAAKR,UACnBuC,EAAOzD,KAAK0B,EAAK+B,QACjB4E,EAAQ3G,EAAK2G,MAGf,OAAO,IAAIiR,EACTU,EAAME,MAAM,KAAMhZ,GAClB8Y,EAAME,MAAM,KAAMzW,GAClB4E,EAEJ,yBCzBA9J,EAAOC,QAAU8a,EAEjB,IAAIS,EAAQT,EAAO1c,UAMnB,SAAS0c,EAAOpY,EAAUuC,EAAQ4E,GAChCyR,KAAK5Y,SAAWA,EAChB4Y,KAAKrW,OAASA,EAEV4E,IACFyR,KAAKzR,MAAQA,EAEjB,CAXA0R,EAAM1R,MAAQ,KACd0R,EAAMtW,OAAS,CAAC,EAChBsW,EAAM7Y,SAAW,CAAC,6BCNlB,IAAIiZ,EAAS,EAUb,SAASC,IACP,OAAOC,KAAKC,IAAI,IAAKH,EACvB,CAVA3b,EAAQoE,QAAUwX,IAClB5b,EAAQwG,WAAaoV,IACrB5b,EAAQqE,kBAAoBuX,IAC5B5b,EAAQgE,OAAS4X,IACjB5b,EAAQoD,eAAiBwY,IACzB5b,EAAQqD,eAAiBuY,IACzB5b,EAAQsD,sBAAwBsY,iCCRhC,IAAIrV,EAASzE,EAAQ,MAErB/B,EAAOC,QAAUuG,EAAO,CACtBsD,MAAO,QACPpD,UAYF,SAAwBC,EAAGxB,GACzB,MAAO,SAAWA,EAAK9D,MAAM,GAAGoB,aAClC,EAbEb,WAAY,CACVoa,aAAc,KACdC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,UAAW,qCCZf,IAAI9V,EAASzE,EAAQ,MAErB/B,EAAOC,QAAUuG,EAAO,CACtBsD,MAAO,MACPpD,UAQF,SAAsBC,EAAGxB,GACvB,MAAO,OAASA,EAAK9D,MAAM,GAAGoB,aAChC,EATEb,WAAY,CACV2a,QAAS,KACTC,QAAS,KACTC,SAAU,qCCRd,IAAIjW,EAASzE,EAAQ,MACjB8H,EAA2B9H,EAAQ,MAEvC/B,EAAOC,QAAUuG,EAAO,CACtBsD,MAAO,QACPC,WAAY,CACV2S,WAAY,eAEdhW,UAAWmD,EACXjI,WAAY,CACVyE,MAAO,KACPsW,WAAY,+BCXhB3c,EAAOC,QAEP,SAAmBL,GACjB,OAAOA,EAAM6C,aACf,6BCJAxC,EAAQ,EAOR,SAAeL,GACb,IAAI+E,EAAQX,OAAOpE,GALT,IAKyBkF,OACnC,MANU,KAMHH,EAAkB,GAAKA,EAAMiY,MAAMC,EAC5C,EAPA,IAEIA,EAAa,0BCLjB,IAAIC,EAAgB,kCAEhBC,EAAgB,MAChBC,EAAmB,OAGnBC,EAAiB,yCACjBC,EAAc,QACdC,EAAc,uDACdC,EAAkB,UAGlBC,EAAa,aAMbC,EAAe,GA8OnB,SAASxY,EAAKyY,GACZ,OAAOA,EAAMA,EAAI9X,QAAQ4X,EAAYC,GAAgBA,CACvD,CAnOAtd,EAAOC,QAAU,SAASwD,EAAOjE,GAC/B,GAAqB,kBAAViE,EACT,MAAM,IAAI+Z,UAAU,mCAGtB,IAAK/Z,EAAO,MAAO,GAEnBjE,EAAUA,GAAW,CAAC,EAKtB,IAAIie,EAAS,EACTC,EAAS,EAOb,SAASC,EAAeJ,GACtB,IAAIK,EAAQL,EAAIxc,MAAMgc,GAClBa,IAAOH,GAAUG,EAAMnd,QAC3B,IAAID,EAAI+c,EAAIM,YAvCF,MAwCVH,GAAUld,EAAI+c,EAAI9c,OAASD,EAAIkd,EAASH,EAAI9c,MAC9C,CAOA,SAASqd,IACP,IAAI7c,EAAQ,CAAE8c,KAAMN,EAAQC,OAAQA,GACpC,OAAO,SAAS9a,GAGd,OAFAA,EAAKkb,SAAW,IAAIE,EAAS/c,GAC7Bgd,IACOrb,CACT,CACF,CAUA,SAASob,EAAS/c,GAChBsa,KAAKta,MAAQA,EACbsa,KAAK1W,IAAM,CAAEkZ,KAAMN,EAAQC,OAAQA,GACnCnC,KAAK2C,OAAS1e,EAAQ0e,MACxB,CAKAF,EAAS3f,UAAU6E,QAAUO,EAE7B,IAAI0a,EAAa,GAQjB,SAASC,EAAMC,GACb,IAAIC,EAAM,IAAIva,MACZvE,EAAQ0e,OAAS,IAAMT,EAAS,IAAMC,EAAS,KAAOW,GAQxD,GANAC,EAAIC,OAASF,EACbC,EAAIE,SAAWhf,EAAQ0e,OACvBI,EAAIP,KAAON,EACXa,EAAIZ,OAASA,EACbY,EAAIJ,OAASza,GAETjE,EAAQif,OAGV,MAAMH,EAFNH,EAAW1c,KAAK6c,EAIpB,CAQA,SAASvd,EAAM2d,GACb,IAAIC,EAAID,EAAGtd,KAAKqC,GAChB,GAAKkb,EAAL,CACA,IAAIpB,EAAMoB,EAAE,GAGZ,OAFAhB,EAAeJ,GACf9Z,EAAQA,EAAMpC,MAAMkc,EAAI9c,QACjBke,CAJO,CAKhB,CAKA,SAASV,IACPld,EAAMic,EACR,CAQA,SAAS4B,EAASnF,GAChB,IAAIoF,EAEJ,IADApF,EAAQA,GAAS,GACToF,EAAIC,MACA,IAAND,GACFpF,EAAMhY,KAAKod,GAGf,OAAOpF,CACT,CAQA,SAASqF,IACP,IAAIC,EAAMjB,IACV,GAnJgB,KAmJKra,EAAM8B,OAAO,IAlJvB,KAkJyC9B,EAAM8B,OAAO,GAAjE,CAGA,IADA,IAAI/E,EAAI,EAEN8c,GAAgB7Z,EAAM8B,OAAO/E,KAtJpB,KAuJIiD,EAAM8B,OAAO/E,IAxJZ,KAwJmCiD,EAAM8B,OAAO/E,EAAI,OAEhEA,EAIJ,GAFAA,GAAK,EAED8c,IAAiB7Z,EAAM8B,OAAO/E,EAAI,GACpC,OAAO4d,EAAM,0BAGf,IAAIb,EAAM9Z,EAAMpC,MAAM,EAAGb,EAAI,GAM7B,OALAkd,GAAU,EACVC,EAAeJ,GACf9Z,EAAQA,EAAMpC,MAAMb,GACpBkd,GAAU,EAEHqB,EAAI,CACTrd,KApKa,UAqKbod,QAASvB,GAvBgE,CAyB7E,CAQA,SAASyB,IACP,IAAID,EAAMjB,IAGN3Y,EAAOpE,EAAMkc,GACjB,GAAK9X,EAAL,CAIA,GAHA2Z,KAGK/d,EAAMmc,GAAc,OAAOkB,EAAM,wBAGtC,IAAI1Z,EAAM3D,EAAMoc,GAEZ8B,EAAMF,EAAI,CACZrd,KA7LiB,cA8LjBiB,SAAUmC,EAAKK,EAAK,GAAGM,QAAQqX,EAAeQ,IAC9C1d,MAAO8E,EACHI,EAAKJ,EAAI,GAAGe,QAAQqX,EAAeQ,IACnCA,IAMN,OAFAvc,EAAMqc,GAEC6B,CApBU,CAqBnB,CAyBA,OADAhB,IAjBA,WACE,IAKIiB,EALAC,EAAQ,GAMZ,IAJAP,EAASO,GAIDD,EAAOF,MACA,IAATE,IACFC,EAAM1d,KAAKyd,GACXN,EAASO,IAIb,OAAOA,CACT,CAGOC,EACT,yBCxPApf,EAAOC,QAIP,SAAsBof,GACpB,IAAItH,EAA4B,kBAAdsH,EAAyBA,EAAUC,WAAW,GAAKD,EAErE,OACGtH,GAAQ,IAAMA,GAAQ,KACtBA,GAAQ,IAAMA,GAAQ,EAE3B,+BCXA,IAAIwH,EAAexd,EAAQ,MACvByd,EAAUzd,EAAQ,MAEtB/B,EAAOC,QAIP,SAAwBof,GACtB,OAAOE,EAAaF,IAAcG,EAAQH,EAC5C,YCJArf,EAAOC,QAAU,SAAmBhB,GAClC,OAAc,MAAPA,GAAkC,MAAnBA,EAAII,aACY,oBAA7BJ,EAAII,YAAYogB,UAA2BxgB,EAAII,YAAYogB,SAASxgB,EAC/E,yBCRAe,EAAOC,QAIP,SAAiBof,GACf,IAAItH,EAA4B,kBAAdsH,EAAyBA,EAAUC,WAAW,GAAKD,EAErE,OAAOtH,GAAQ,IAAMA,GAAQ,EAC/B,yBCRA/X,EAAOC,QAIP,SAAqBof,GACnB,IAAItH,EAA4B,kBAAdsH,EAAyBA,EAAUC,WAAW,GAAKD,EAErE,OACGtH,GAAQ,IAAcA,GAAQ,KAC9BA,GAAQ,IAAcA,GAAQ,IAC9BA,GAAQ,IAAcA,GAAQ,EAEnC,yBCVA,IAAI2H,EAIJ1f,EAAOC,QAEP,SAAsB0f,GACpB,IACIhI,EADAiI,EAAS,IAAMD,EAAa,IAYhC,IATAD,EAAKA,GAAMG,SAASC,cAAc,MAC/BC,UAAYH,EATD,MAUdjI,EAAO+H,EAAGM,aAODV,WAAW3H,EAAKlX,OAAS,IAAmC,SAAfkf,EACpD,OAAO,EAIT,OAAOhI,IAASiI,GAAiBjI,CACnC,+BC3BA,IAAIsI,EAASle,EAAQ,MACjBme,EAAUne,EAAQ,MAClByd,EAAUzd,EAAQ,MAClBoe,EAAcpe,EAAQ,MACtBqe,EAAiBre,EAAQ,MACzBse,EAAete,EAAQ,MAE3B/B,EAAOC,QAgFP,SAAuBL,EAAOJ,GAC5B,IACI8gB,EACAphB,EAFAqhB,EAAW,CAAC,EAIX/gB,IACHA,EAAU,CAAC,GAGb,IAAKN,KAAOshB,EACVF,EAAS9gB,EAAQN,GACjBqhB,EAASrhB,GACI,OAAXohB,QAA8Bld,IAAXkd,EAAuBE,EAASthB,GAAOohB,GAG1DC,EAASzC,SAAS2C,QAAUF,EAASzC,SAAS7c,SAChDsf,EAASE,OAASF,EAASzC,SAAS2C,QAAU,GAC9CF,EAASzC,SAAWyC,EAASzC,SAAS7c,OAGxC,OAKF,SAAerB,EAAO2gB,GACpB,IAiBIG,EACAC,EACAC,EACAjB,EACAN,EACAwB,EACAC,EACAC,EACAxC,EACAyC,EACApB,EACAqB,EACAhgB,EACAS,EACA4D,EACA4b,EACAC,EACAC,EACAvc,EAnCAwc,EAAad,EAASc,WACtBC,EAAgBf,EAASe,cACzBC,EAAahB,EAASzG,KACtB0H,EAAkBjB,EAASM,UAC3BY,EAAgBlB,EAASQ,QACzBW,EAAcnB,EAASmB,YACvBC,EAAmBpB,EAASoB,iBAC5BC,EAAiBrB,EAASqB,eAC1B7C,EAAMwB,EAASzC,SACf2C,EAASF,EAASE,QAAU,GAC5BhgB,EAASb,EAAMa,OACfa,EAAQ,EACRsc,GAAS,EACTF,EAASqB,EAAIrB,QAAU,EACvBK,EAAOgB,EAAIhB,MAAQ,EACnB8D,EAAQ,GACRrf,EAAS,GAqBa,kBAAf6e,IACTA,EAAaA,EAAW/B,WAAW,IAIrC4B,EAAOY,IAGPf,EAAUU,EAAgBM,GAAaC,EAIvC1gB,IACAb,IAEA,OAASa,EAAQb,GAQf,GAhJW,KA0IP4e,IACF3B,EAAS+C,EAAO7C,IAAU,GAxIhB,MA2IZyB,EAAYzf,EAAM0f,WAAWhe,IAEA,CAI3B,GArJI,KAkJJwf,EAAYlhB,EAAM0f,WAAWhe,EAAQ,KAjJ5B,KAsJPwf,GArJO,KAsJPA,GArJI,KAsJJA,GArJQ,KAsJRA,GApJO,KAqJPA,GACAA,IAAcA,GACbO,GAAcP,IAAcO,EAC7B,CAIAQ,GAASI,EAAa5C,GACtB3B,IAEA,QACF,CAgCA,IA7BAuD,EADAhgB,EAAQK,EAAQ,EAEhBuD,EAAM5D,EAlKK,KAoKP6f,GAEFjc,IAAQoc,EArKC,MAwKTH,EAAYlhB,EAAM0f,WAAWza,KAvKpB,MAyKuBic,GAE9Bpf,EAAOwgB,EACPrd,IAAQoc,GAGRvf,EAAOygB,GAITzgB,EAAOjC,EAGTihB,EAAmB,GACnBd,EAAS,GACTD,EAAa,GACbra,EAAO8c,EAAM1gB,GACbmD,MAESA,EAAMpE,GAGR6E,EAFLwb,EAAYlhB,EAAM0f,WAAWza,KAM7B8a,GAAcsC,EAAanB,GAKvBpf,IAASjC,GAAQoD,EAAI9D,KAAKkhB,EAAQN,KACpCe,EAAmBf,EACnBC,EAASK,EAAON,KAIpBiB,EAnNU,KAmNGhhB,EAAM0f,WAAWza,MAG5BA,KAEA8b,EAAcjf,IAASjC,GAAO4gB,EAAaV,MAGzCe,EAAmBf,EACnBC,EAASe,IAIbS,EAAO,EAAIvc,EAAM5D,GAEZ2f,GAAeU,KAER3B,EAMDje,IAASjC,GAGdmhB,IAAehB,EACjBmB,EA5MS,EA4Ma,IAIlBL,IAAqBf,IAEvByB,EAAO,GADPvc,EAAMoc,EAAQP,EAAiBjgB,QACdwgB,EACjBL,GAAa,GAIVA,IACHrC,EAASmC,EA5NI,EAER,EA4NDH,EAAS/a,UA1PV,MA2PDsb,EAAYlhB,EAAM0f,WAAWza,KAG3Bkc,EAAQxC,EAAQ6C,GAChBxB,EAAS,MACAQ,EAAeU,GACxBlB,EAAS,KAETmB,EAAQxC,EAAQ6C,GAGlBL,EAAQxC,EAAQ6C,KAKtBP,EAAYjB,IAEPgB,GAGHG,EAnPiB,EAmPaK,GAQ5BiB,EAJJxB,EAAYyB,SAAS3C,EAAY4C,EAAM7gB,MAKrCqf,EAvPc,EAuPaK,GAC3BP,EAAYoB,EAtRK,QAuRRpB,KAAaX,GAGtBa,EA7Pc,EA6PaK,GAC3BP,EAAYX,EAAQW,KAGpBG,EAAS,GAGLwB,EAAW3B,IACbE,EArQY,EAqQeK,GAIzBP,EAAY,QAEdG,GAAUiB,GADVpB,GAAa,SACyB,GAAgB,OACtDA,EAAY,MAAsB,KAAZA,GAGxBA,EAAYG,EAASiB,EAAapB,KA3EhCnf,IAASjC,GACXshB,EAvMS,EAuMaK,IAgFtBP,GACF4B,KAEAvB,EAAOY,IACPxgB,EAAQuD,EAAM,EACd6Y,GAAU7Y,EAAM5D,EAAQ,EACxBuB,EAAOf,KAAKof,IACZM,EAAOW,KACFY,SAEDlB,GACFA,EAAgBziB,KACd4iB,EACAd,EACA,CAAC5f,MAAOigB,EAAMrc,IAAKsc,GACnBvhB,EAAMyB,MAAMJ,EAAQ,EAAG4D,IAI3Bqc,EAAOC,IAMPxB,EAAa/f,EAAMyB,MAAMJ,EAAQ,EAAG4D,GACpCgd,GAASlC,EACTjC,GAAUiC,EAAWlf,OACrBa,EAAQuD,EAAM,EAElB,MAGkB,KAAdwa,IAEAtB,IACAH,IACAF,EAAS,GAGP2B,IAAcA,GAChBwC,GAASI,EAAa5C,GACtB3B,KAEA+E,KAMN,OAAOjgB,EAAOgB,KAAK,IAGnB,SAASse,IACP,MAAO,CACL/D,KAAMA,EACNL,OAAQA,EACRgF,OAAQphB,GAASyd,EAAI2D,QAAU,GAEnC,CAGA,SAASX,GAAWhK,EAAM2K,GACxB,IAAI5E,EAAWgE,IAEfhE,EAASJ,QAAUgF,EACnB5E,EAAS4E,QAAUA,EAEnBjB,EAAc1iB,KAAK6iB,EAAgBe,EAAS5K,GAAO+F,EAAU/F,EAC/D,CAKA,SAAS0K,KACHZ,IACFrf,EAAOf,KAAKogB,GAERN,GACFA,EAAWxiB,KAAK2iB,EAAaG,EAAO,CAAC5gB,MAAOigB,EAAMrc,IAAKid,MAGzDD,EAAQ,GAEZ,CACF,CAnUSe,CAAMhjB,EAAO2gB,EACtB,EAnGA,IAAI1d,EAAM,CAAC,EAAEvE,eACT2jB,EAAeje,OAAOie,aACtBD,EAAOa,SAASxkB,UAGhBmiB,EAAW,CACbO,QAAS,KACTF,UAAW,KACX/G,KAAM,KACN8H,eAAgB,KAChBD,iBAAkB,KAClBD,YAAa,KACb5D,SAAU,CAAC,EACXuD,WAAY,KACZ7b,WAAW,EACX8b,eAAe,GAkBb7hB,EAAO,QACPyiB,EAAO,cACPC,EAAO,UAGPI,EAAQ,CAEZA,YAAc,GACdA,QAAc,IAMVH,EAAQ,CAAC,EAEbA,EAAU,MAAIhC,EACdgC,EAAMD,GAAQ3C,EACd4C,EAAMF,GAAQ/B,EAGd,IASIwC,EAAW,CAAC,EAyWhB,SAASN,EAAWtK,GAClB,OAAQA,GAAQ,OAAUA,GAAQ,OAAWA,EAAO,OACtD,CAGA,SAASyK,EAAWzK,GAClB,OACGA,GAAQ,GAAUA,GAAQ,GAClB,KAATA,GACCA,GAAQ,IAAUA,GAAQ,IAC1BA,GAAQ,KAAUA,GAAQ,KAC1BA,GAAQ,OAAUA,GAAQ,OACP,SAAZ,MAAPA,IACmB,SAAZ,MAAPA,EAEL,CAtXA4K,EAXyB,GAYvB,+DACFA,EAZ2B,GAazB,iEACFA,EAbiB,GAaM,6CACvBA,EAbmB,GAaM,+CACzBA,EAbmB,GAaM,2CACzBA,EAbwB,GActB,oDACFA,EAdwB,GAetB,4GCpFF,MAAM,cAAEG,GAAkB/gB,EAAQ,MAG5BghB,EAAqB,OAIrBC,EAAiC,CACnC,6CACA,6CACA,uDACA,kCACA,kCACA,yCACA,yCACA,iCACA,0BACA,2BACA,0BACA,gCACA,0BACA,wBACA,8BACA,8BACA,8BACA,8BACA,qCACA,qCACA,qCACA,qCACA,6BACA,sBACA,2CACA,wDACA,iDACA,mDACA,wDACA,iDACA,mDACA,sCACA,6CACA,6CACA,sDACA,8DACA,8CACA,iFACA,wEACA,uCACA,gDACA,uDACA,kCACA,+BACA,+BACA,yBACA,gCACA,kCACA,sCACA,2CACA,yCACA,wBACA,4BACA,sCACA,mCAGEC,EAA8CD,EAA+Btf,OAAO,CACtF,mCACA,yCAGEwf,EAAyB,CAAC,uCAAwC,qCAAsC,QACxGC,EAAoC,CAAC,mCAAoC,wCAEzEC,EAAmDD,EAAkCzf,OAAO,CAC9F,mCACA,yCAIJ,SAAS2f,EAAiB9hB,GACtB,MAAM+hB,GAA6B,IAArB/hB,EAAGqD,QAAQ,KAAc,IAAM,IAE7C,OAAO0e,EAAQ/hB,EAAK+hB,CACxB,CAEA,SAASC,EAAUC,EAAUC,GACzB,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAShjB,OAAQD,IACjC,GAAsC,IAAlCgjB,EAAS5e,QAAQ6e,EAASjjB,IAC1B,OAAO,EAIf,OAAO,CACX,CAGAP,EAAQyjB,aAAe,SAASC,GAC5B,OACIA,EAAMlkB,OAASsjB,GACI,OAAnBY,EAAMH,WACc,OAAnBG,EAAMC,UAhGS,wBAgGYD,EAAMC,SAE1C,EAEA3jB,EAAQ4jB,gBAAkB,SAASF,GAC/B,GAAIA,EAAMlkB,OAASsjB,EACf,OAAOD,EAAcgB,OAGzB,MAAMF,EAAWD,EAAMC,SAEvB,GAAIA,GA1GsB,+DA0GVA,EAASnhB,cACrB,OAAOqgB,EAAcgB,OAGzB,IAAIN,EAAWG,EAAMH,SAErB,GAAiB,OAAbA,EAAmB,CAGnB,GAFAA,EAAWA,EAAS/gB,cAEhBygB,EAAuBte,QAAQ4e,IAAa,EAC5C,OAAOV,EAAcgB,OAGzB,IAAIL,EAAwB,OAAbG,EAAoBX,EAA8CD,EAEjF,GAAIO,EAAUC,EAAUC,GACpB,OAAOX,EAAcgB,OAMzB,GAHAL,EACiB,OAAbG,EAAoBT,EAAoCC,EAExDG,EAAUC,EAAUC,GACpB,OAAOX,EAAciB,cAE7B,CAEA,OAAOjB,EAAckB,SACzB,EAEA/jB,EAAQgkB,iBAAmB,SAASxkB,EAAM+jB,EAAUI,GAChD,IAAIrG,EAAM,YAgBV,OAdI9d,IACA8d,GAAO9d,GAGP+jB,EACAjG,GAAO,WAAa8F,EAAiBG,GAC9BI,IACPrG,GAAO,WAGM,OAAbqG,IACArG,GAAO,IAAM8F,EAAiBO,IAG3BrG,CACX,yBC/JAvd,EAAOC,QAAU,CACbikB,8BAA+B,oCAC/BC,0BAA2B,+BAC3BC,uBAAwB,4BACxBC,8CAA+C,wDAC/CC,qBAAsB,0BACtBC,0BAA2B,gCAC3BC,uBAAwB,4BACxBC,wBAAyB,4BACzBC,uCAAwC,+CACxCC,+BAAgC,sCAChCC,wCAAyC,+CACzCC,kBAAmB,uBACnBC,mCAAoC,yCACpCC,+BAAgC,oCAChCC,wCAAyC,8CACzCC,gDAAiD,uDACjDC,4CAA6C,mDAC7CC,iBAAkB,sBAClBC,SAAU,aACVC,sBAAuB,0BACvBC,mCAAoC,wCACpCC,2CAA4C,kDAC5CC,0DACI,mEACJC,2CAA4C,kDAC5CC,0CAA2C,iDAC3CC,0CAA2C,iDAC3CC,+BAAgC,oCAChCC,+BAAgC,oCAChCC,8BAA+B,mCAC/BC,8BAA+B,mCAC/BC,mBAAoB,wBACpBC,yBAA0B,6BAC1BC,+BAAgC,uCAChCC,aAAc,iBACdC,cAAe,iBACfC,4BAA6B,kCAC7BC,aAAc,iBACdC,yBAA0B,6BAC1BC,WAAY,eACZC,2CAA4C,mDAC5CC,uBAAwB,2BACxBC,4BAA6B,gCAC7BC,sCAAuC,4CACvCC,0BAA2B,8BAC3BC,+BAAgC,mCAChCC,mCAAoC,yCACpCC,mBAAoB,uBACpBC,yCAA0C,gDAC1CC,mBAAoB,sBACpBC,qBAAsB,yBACtBC,eAAgB,kBAChBC,iBAAkB,oBAClBC,iCAAkC,wCAClCC,sCAAuC,8CACvCC,kCAAmC,yCACnCC,yBAA0B,+BAC1BC,0BAA2B,+BAC3BC,gCAAiC,uCACjCC,qBAAsB,0BACtBC,mCAAoC,0EC7DxC,MAAMC,EAAY/lB,EAAQ,MACpBgmB,EAAOhmB,EAAQ,MAGfimB,EAAID,EAAKE,UACTC,EAAKH,EAAKI,WACVC,EAAQL,EAAKK,MAGbC,EACS,YADTA,EAEe,wBAMfC,EAA2B,CAC7BC,cAAe,gBACfC,cAAe,gBACfC,cAAe,gBACfC,YAAa,cACbC,SAAU,WACVC,cAAe,gBACfC,gBAAiB,kBACjBC,SAAU,WACVC,YAAa,cACbC,SAAU,WACVC,kBAAmB,oBACnBC,cAAe,gBACfC,aAAc,eACdC,iBAAkB,mBAClBC,UAAW,YACXC,WAAY,aACZC,SAAU,WACVC,aAAc,eACdC,kBAAmB,oBACnBC,aAAc,eACdC,YAAa,cACbC,YAAa,cACbC,iBAAkB,mBAClBC,UAAW,YACXC,WAAY,aACZC,WAAY,aACZC,oBAAqB,sBACrBC,iBAAkB,mBAClBC,aAAc,eACdC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,cAAe,gBACfC,oBAAqB,sBACrBC,eAAgB,iBAChBC,KAAM,OACNC,KAAM,OACNC,YAAa,cACbC,UAAW,YACXC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,aAAc,eACdC,YAAa,cACbC,aAAc,eACdC,YAAa,cACbC,aAAc,eACdC,eAAgB,iBAChBC,YAAa,cACbC,QAAS,UACTC,QAAS,UACTC,WAAY,aACZC,QAAS,UACTC,WAAY,aACZC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,WAAY,cAGVC,EAA2B,CAC7B,gBAAiB,CAAEvR,OAAQ,QAASjb,KAAM,UAAWysB,UAAWhE,EAAGiE,OACnE,gBAAiB,CAAEzR,OAAQ,QAASjb,KAAM,UAAWysB,UAAWhE,EAAGiE,OACnE,aAAc,CAAEzR,OAAQ,QAASjb,KAAM,OAAQysB,UAAWhE,EAAGiE,OAC7D,aAAc,CAAEzR,OAAQ,QAASjb,KAAM,OAAQysB,UAAWhE,EAAGiE,OAC7D,aAAc,CAAEzR,OAAQ,QAASjb,KAAM,OAAQysB,UAAWhE,EAAGiE,OAC7D,cAAe,CAAEzR,OAAQ,QAASjb,KAAM,QAASysB,UAAWhE,EAAGiE,OAC/D,aAAc,CAAEzR,OAAQ,QAASjb,KAAM,OAAQysB,UAAWhE,EAAGiE,OAC7D,WAAY,CAAEzR,OAAQ,MAAOjb,KAAM,OAAQysB,UAAWhE,EAAGkE,KACzD,WAAY,CAAE1R,OAAQ,MAAOjb,KAAM,OAAQysB,UAAWhE,EAAGkE,KACzD,YAAa,CAAE1R,OAAQ,MAAOjb,KAAM,QAASysB,UAAWhE,EAAGkE,KAC3D/lB,MAAO,CAAEqU,OAAQ,GAAIjb,KAAM,QAASysB,UAAWhE,EAAGmE,OAClD,cAAe,CAAE3R,OAAQ,QAASjb,KAAM,QAASysB,UAAWhE,EAAGmE,QAI7DC,EAAgCrsB,EAAQqsB,6BAA+B,CACzEC,SAAU,WACVC,YAAa,cACbC,aAAc,eACdC,aAAc,eACdC,cAAe,gBACfC,iBAAkB,mBAClBC,SAAU,WACVC,QAAS,UACTC,cAAe,gBACfC,oBAAqB,sBACrBC,YAAa,cACbC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,kBAAmB,oBACnBC,eAAgB,iBAChBC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,eAAgB,iBAChBC,QAAS,UACTC,QAAS,UACTC,YAAa,cACbC,aAAc,eACdC,SAAU,WACVC,aAAc,eACdC,mBAAoB,qBACpBC,YAAa,cACbC,OAAQ,SACRC,aAAc,eACdC,cAAe,gBACftF,SAAU,WACVuF,eAAgB,iBAChBC,eAAgB,iBAChBC,SAAU,YAIRC,EAAwB,CAC1B,CAAC1G,EAAE2G,IAAI,EACP,CAAC3G,EAAE4G,MAAM,EACT,CAAC5G,EAAE6G,aAAa,EAChB,CAAC7G,EAAE8G,OAAO,EACV,CAAC9G,EAAE+G,KAAK,EACR,CAAC/G,EAAEgH,SAAS,EACZ,CAAChH,EAAEiH,OAAO,EACV,CAACjH,EAAEkH,KAAK,EACR,CAAClH,EAAEmH,MAAM,EACT,CAACnH,EAAEoH,KAAK,EACR,CAACpH,EAAEqH,KAAK,EACR,CAACrH,EAAEsH,KAAK,EACR,CAACtH,EAAEuH,QAAQ,EACX,CAACvH,EAAEwH,KAAK,EACR,CAACxH,EAAEyH,KAAK,EACR,CAACzH,EAAE0H,KAAK,EACR,CAAC1H,EAAE2H,KAAK,EACR,CAAC3H,EAAE4H,KAAK,EACR,CAAC5H,EAAE6H,KAAK,EACR,CAAC7H,EAAE8H,OAAO,EACV,CAAC9H,EAAE+H,KAAK,EACR,CAAC/H,EAAEgI,IAAI,EACP,CAAChI,EAAEiI,MAAM,EACT,CAACjI,EAAEkI,KAAK,EACR,CAAClI,EAAEmI,UAAU,EACb,CAACnI,EAAEoI,OAAO,EACV,CAACpI,EAAEqI,OAAO,EACV,CAACrI,EAAEsI,OAAO,EACV,CAACtI,EAAEuI,KAAK,EACR,CAACvI,EAAEwI,IAAI,EACP,CAACxI,EAAEyI,MAAM,EACT,CAACzI,EAAE0I,OAAO,EACV,CAAC1I,EAAE2I,IAAI,EACP,CAAC3I,EAAE4I,QAAQ,EACX,CAAC5I,EAAE6I,OAAO,EACV,CAAC7I,EAAE8I,SAAS,EACZ,CAAC9I,EAAE+I,SAAS,EACZ,CAAC/I,EAAEgJ,MAAM,EACT,CAAChJ,EAAEiJ,MAAM,EACT,CAACjJ,EAAEkJ,QAAQ,EACX,CAAClJ,EAAEmJ,KAAK,EACR,CAACnJ,EAAEoJ,IAAI,EACP,CAACpJ,EAAEqJ,KAAK,EACR,CAACrJ,EAAEsJ,MAAM,GAIbrxB,EAAQsxB,WAAa,SAASC,GAC1B,MAAMC,EAAKD,EAAc7vB,QAOzB,SALI8vB,IAAOzJ,EAAE0J,OAC+C,OAAvD5J,EAAU6J,aAAaH,EAAepJ,EAAMwJ,QACa,OAAtD9J,EAAU6J,aAAaH,EAAepJ,EAAMyJ,OACU,OAAtD/J,EAAU6J,aAAaH,EAAepJ,EAAM0J,SAEpBpD,EAAsB+C,EAC1D,EAGAxxB,EAAQ8xB,uBAAyB,SAASpO,GACtC,IAAK,IAAInjB,EAAI,EAAGA,EAAImjB,EAAMqO,MAAMvxB,OAAQD,IACpC,GArLoB,kBAqLhBmjB,EAAMqO,MAAMxxB,GAAGf,KAA8B,CAC7CkkB,EAAMqO,MAAMxxB,GAAGf,KArLU,gBAsLzB,KACJ,CAER,EAEAQ,EAAQgyB,oBAAsB,SAAStO,GACnC,IAAK,IAAInjB,EAAI,EAAGA,EAAImjB,EAAMqO,MAAMvxB,OAAQD,IAAK,CACzC,MAAM0xB,EAAmB5J,EAAyB3E,EAAMqO,MAAMxxB,GAAGf,MAE7DyyB,IACAvO,EAAMqO,MAAMxxB,GAAGf,KAAOyyB,EAE9B,CACJ,EAEAjyB,EAAQkyB,oBAAsB,SAASxO,GACnC,IAAK,IAAInjB,EAAI,EAAGA,EAAImjB,EAAMqO,MAAMvxB,OAAQD,IAAK,CACzC,MAAM4xB,EAAoBnG,EAAyBtI,EAAMqO,MAAMxxB,GAAGf,MAE9D2yB,IACAzO,EAAMqO,MAAMxxB,GAAGka,OAAS0X,EAAkB1X,OAC1CiJ,EAAMqO,MAAMxxB,GAAGf,KAAO2yB,EAAkB3yB,KACxCkkB,EAAMqO,MAAMxxB,GAAG0rB,UAAYkG,EAAkBlG,UAErD,CACJ,EAEAjsB,EAAQoyB,sBAAwB,SAAS1O,GACrC,MAAM2O,EAAkBhG,EAA6B3I,EAAMhiB,SAEvD2wB,IACA3O,EAAMhiB,QAAU2wB,EAExB,EAqBAryB,EAAQsyB,mBAAqB,SAASd,EAAIe,EAAIR,EAAOS,GACjD,QAAMA,GAAaA,IAAcvK,EAAGH,OAfxC,SAAgC0J,EAAIe,EAAIR,GACpC,GAAIQ,IAAOtK,EAAGwK,QAAUjB,IAAOzJ,EAAE2K,eAC7B,IAAK,IAAInyB,EAAI,EAAGA,EAAIwxB,EAAMvxB,OAAQD,IAC9B,GAAIwxB,EAAMxxB,GAAGf,OAAS2oB,EAAMwK,SAAU,CAClC,MAAMhzB,EAAQoyB,EAAMxxB,GAAGZ,MAAM6C,cAE7B,OAAO7C,IAAUyoB,GAAwBzoB,IAAUyoB,CACvD,CAIR,OAAOmK,IAAOtK,EAAG2K,MAAQpB,IAAOzJ,EAAE8K,gBAAkBrB,IAAOzJ,EAAE+K,MAAQtB,IAAOzJ,EAAEgL,MAClF,CAGiDC,CAAuBxB,EAAIe,EAAIR,OAItES,GAAaA,IAAcvK,EAAGwK,SAvBxC,SAAsCjB,EAAIe,GACtC,OAAOA,IAAOtK,EAAGwK,SAAWjB,IAAOzJ,EAAEkL,IAAMzB,IAAOzJ,EAAEmL,IAAM1B,IAAOzJ,EAAEoL,IAAM3B,IAAOzJ,EAAEqL,IAAM5B,IAAOzJ,EAAEsL,MACrG,CAqBmDC,CAA6B9B,EAAIe,GAKpF,6BCtQA,MAAMtK,EAAMjoB,EAAQkoB,WAAa,CAC7BJ,KAAM,+BACN2K,OAAQ,qCACRG,IAAK,6BACL1G,MAAO,+BACPC,IAAK,uCACLC,MAAO,iCAGXpsB,EAAQmoB,MAAQ,CACZoL,KAAM,OACNC,OAAQ,SACRb,SAAU,WACVc,OAAQ,SACRC,KAAM,OACN/B,MAAO,QACPE,KAAM,OACND,KAAM,QAGV5xB,EAAQ6iB,cAAgB,CACpBkB,UAAW,YACXF,OAAQ,SACRC,eAAgB,kBAGpB,MAAMiE,EAAK/nB,EAAQgoB,UAAY,CAC3B2L,EAAG,IACHC,QAAS,UACTlB,eAAgB,iBAChBmB,OAAQ,SACRC,KAAM,OACNC,QAAS,UACTC,MAAO,QAEPtF,EAAG,IACHuF,KAAM,OACNC,SAAU,WACVC,QAAS,UACTxF,IAAK,MACLC,WAAY,aACZC,KAAM,OACNC,GAAI,KACJsF,OAAQ,SAERC,QAAS,UACTtF,OAAQ,SACRC,KAAM,OACNsF,IAAK,MACLC,SAAU,WAEVtF,GAAI,KACJ6D,KAAM,OACN0B,QAAS,UACTC,OAAQ,SACRC,IAAK,MACLxF,IAAK,MACLC,GAAI,KACJC,GAAI,KAEJC,GAAI,KACJC,MAAO,QAEPqF,SAAU,WACVC,WAAY,aACZC,OAAQ,SACRpD,KAAM,OACNqD,OAAQ,SACRjC,eAAgB,gBAChBkC,KAAM,OACNC,MAAO,QACPC,SAAU,WAEV1F,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,KAAM,OACNqF,OAAQ,SACRC,OAAQ,SACRrF,GAAI,KACJhI,KAAM,OAENiI,EAAG,IACHC,IAAK,MACLoF,MAAO,QACPC,MAAO,QACPC,OAAQ,SAERC,OAAQ,SAERC,MAAO,QACPvF,GAAI,KACJwF,KAAM,OACNvF,QAAS,UAETwF,KAAM,OACNC,WAAY,aACZC,QAAS,UACTC,KAAM,OACN1F,KAAM,OACNC,KAAM,OACN0F,OAAQ,SACR7C,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,MAAO,QAEP0C,IAAK,MACL1F,KAAM,OACN2F,SAAU,WACVC,QAAS,UACTC,SAAU,WAEVC,OAAQ,SACR7F,GAAI,KACJ8F,SAAU,WACVC,OAAQ,SAER9F,EAAG,IACH+F,MAAO,QACPC,UAAW,YACX/F,IAAK,MAELgG,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,IAAK,MACLlG,KAAM,OAENC,EAAG,IACHkG,OAAQ,SACRC,QAAS,UACTC,OAAQ,SACRC,OAAQ,SACRpG,MAAO,QACPC,KAAM,OACNE,OAAQ,SACRD,OAAQ,SACRmG,MAAO,QACPjG,IAAK,MACLkG,QAAS,UACTjG,IAAK,MAELC,MAAO,QACPiG,MAAO,QACPC,SAAU,WACVC,SAAU,WACVC,MAAO,QACPC,GAAI,KACJC,GAAI,KACJC,MAAO,QACPzE,MAAO,QACP0E,GAAI,KACJC,MAAO,QACPxG,GAAI,KAEJC,EAAG,IACHC,GAAI,KAEJwB,IAAK,MAELvB,IAAK,MAELsG,IAAK,MAELC,IAAK,OAGT53B,EAAQ63B,iBAAmB,CACvB,CAAC5P,EAAGH,MAAO,CACP,CAACC,EAAE6L,UAAU,EACb,CAAC7L,EAAE8L,SAAS,EACZ,CAAC9L,EAAE+L,OAAO,EACV,CAAC/L,EAAEgM,UAAU,EACb,CAAChM,EAAEiM,QAAQ,EACX,CAACjM,EAAEkM,OAAO,EACV,CAAClM,EAAEmM,WAAW,EACd,CAACnM,EAAEoM,UAAU,EACb,CAACpM,EAAE6G,aAAa,EAChB,CAAC7G,EAAE8G,OAAO,EACV,CAAC9G,EAAE+G,KAAK,EACR,CAAC/G,EAAEqM,SAAS,EACZ,CAACrM,EAAEsM,UAAU,EACb,CAACtM,EAAEgH,SAAS,EACZ,CAAChH,EAAEuM,MAAM,EACT,CAACvM,EAAEwM,WAAW,EACd,CAACxM,EAAEkH,KAAK,EACR,CAAClH,EAAEyM,UAAU,EACb,CAACzM,EAAE2M,MAAM,EACT,CAAC3M,EAAEmH,MAAM,EACT,CAACnH,EAAEoH,KAAK,EACR,CAACpH,EAAEqH,KAAK,EACR,CAACrH,EAAEuH,QAAQ,EACX,CAACvH,EAAE4M,WAAW,EACd,CAAC5M,EAAE6M,aAAa,EAChB,CAAC7M,EAAE8M,SAAS,EACZ,CAAC9M,EAAE+M,SAAS,EACZ,CAAC/M,EAAEgN,OAAO,EACV,CAAChN,EAAEiN,QAAQ,EACX,CAACjN,EAAEkN,WAAW,EACd,CAAClN,EAAEwH,KAAK,EACR,CAACxH,EAAEyH,KAAK,EACR,CAACzH,EAAE0H,KAAK,EACR,CAAC1H,EAAE2H,KAAK,EACR,CAAC3H,EAAE4H,KAAK,EACR,CAAC5H,EAAE6H,KAAK,EACR,CAAC7H,EAAE8H,OAAO,EACV,CAAC9H,EAAEmN,SAAS,EACZ,CAACnN,EAAEoN,SAAS,EACZ,CAACpN,EAAE+H,KAAK,EACR,CAAC/H,EAAED,OAAO,EACV,CAACC,EAAEuN,SAAS,EACZ,CAACvN,EAAEiI,MAAM,EACT,CAACjI,EAAEsN,QAAQ,EACX,CAACtN,EAAEkI,KAAK,EACR,CAAClI,EAAE0N,OAAO,EACV,CAAC1N,EAAEmI,UAAU,EACb,CAACnI,EAAE2N,OAAO,EACV,CAAC3N,EAAE6N,UAAU,EACb,CAAC7N,EAAEoI,OAAO,EACV,CAACpI,EAAEqI,OAAO,EACV,CAACrI,EAAEgO,MAAM,EACT,CAAChO,EAAEkO,UAAU,EACb,CAAClO,EAAEiO,WAAW,EACd,CAACjO,EAAEmO,WAAW,EACd,CAACnO,EAAEoO,SAAS,EACZ,CAACpO,EAAEuI,KAAK,EACR,CAACvI,EAAEwI,IAAI,EACP,CAACxI,EAAEuO,QAAQ,EACX,CAACvO,EAAEwO,YAAY,EACf,CAACxO,EAAEyI,MAAM,EACT,CAACzI,EAAE6O,SAAS,EACZ,CAAC7O,EAAE8O,UAAU,EACb,CAAC9O,EAAE+O,SAAS,EACZ,CAAC/O,EAAEgP,SAAS,EACZ,CAAChP,EAAEiP,QAAQ,EACX,CAACjP,EAAEkP,UAAU,EACb,CAAClP,EAAEkJ,QAAQ,EACX,CAAClJ,EAAEmP,QAAQ,EACX,CAACnP,EAAEuP,KAAK,EACR,CAACvP,EAAEoP,WAAW,EACd,CAACpP,EAAEqP,WAAW,EACd,CAACrP,EAAEsP,QAAQ,EACX,CAACtP,EAAEwP,KAAK,EACR,CAACxP,EAAEyP,QAAQ,EACX,CAACzP,EAAEgL,QAAQ,EACX,CAAChL,EAAE0P,KAAK,EACR,CAAC1P,EAAE2P,QAAQ,EACX,CAAC3P,EAAEqJ,KAAK,EACR,CAACrJ,EAAE4P,MAAM,EACT,CAAC5P,EAAE6P,MAAM,GAEb,CAAC3P,EAAGwK,QAAS,CACT,CAAC1K,EAAEkL,KAAK,EACR,CAAClL,EAAEmL,KAAK,EACR,CAACnL,EAAEoL,KAAK,EACR,CAACpL,EAAEqL,KAAK,EACR,CAACrL,EAAEsL,QAAQ,EACX,CAACtL,EAAE2K,iBAAiB,GAExB,CAACzK,EAAG2K,KAAM,CACN,CAAC7K,EAAEgL,QAAQ,EACX,CAAChL,EAAE8K,iBAAiB,EACpB,CAAC9K,EAAE+K,OAAO,+BC3QlB,MAAMgF,EAAwB,CAC1B,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,SAGJ93B,EAAQ+3B,sBAAwB,SAEhC/3B,EAAQg4B,YAAc,CAClBC,KAAM,EACNC,KAAM,EACNC,WAAY,EACZC,gBAAiB,GACjBC,UAAW,GACXC,UAAW,GACXC,MAAO,GACPC,iBAAkB,GAClBC,eAAgB,GAChBC,YAAa,GACbC,UAAW,GACXC,WAAY,GACZC,aAAc,GACdC,QAAS,GACTC,QAAS,GACTC,QAAS,GACTC,UAAW,GACXC,eAAgB,GAChBC,YAAa,GACbC,kBAAmB,GACnBC,cAAe,GACfC,gBAAiB,GACjBC,gBAAiB,GACjBC,gBAAiB,GACjBC,gBAAiB,GACjBC,qBAAsB,GACtBC,aAAc,GACdC,cAAe,GACfC,cAAe,IACfC,cAAe,IACfC,cAAe,IACfhC,sBAAuB,OAG3B/3B,EAAQg6B,qBAAuB,CAC3BC,iBAAkB,CAAC,GAAM,IACzBC,eAAgB,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IACrDC,mBAAoB,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IACzDC,cAAe,CAAC,IAAM,GAAM,IAAM,IAAM,IAAM,KAC9CC,cAAe,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,IAC9CC,cAAe,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,KAIlDt6B,EAAQu6B,YAAc,SAASC,GAC3B,OAAOA,GAAM,OAAUA,GAAM,KACjC,EAEAx6B,EAAQy6B,gBAAkB,SAASD,GAC/B,OAAOA,GAAM,OAAUA,GAAM,KACjC,EAEAx6B,EAAQ06B,0BAA4B,SAASC,EAAKC,GAC9C,OAAwB,MAAhBD,EAAM,OAAkB,KAASC,CAC7C,EAGA56B,EAAQ66B,mBAAqB,SAASL,GAClC,OACY,KAAPA,GAAsB,KAAPA,GAAsB,KAAPA,GAAsB,IAAPA,GAAsB,KAAPA,GAAeA,GAAM,GAAQA,GAAM,IAC/FA,GAAM,KAAQA,GAAM,GAE7B,EAEAx6B,EAAQ86B,qBAAuB,SAASN,GACpC,OAAQA,GAAM,OAAUA,GAAM,OAAW1C,EAAsBnzB,QAAQ61B,IAAO,CAClF,+BC1GA,MAAMO,EAAQj5B,EAAQ,MAwCtB/B,EAAOC,QAtCP,cAAsC+6B,EAClC37B,YAAY47B,EAAMC,GACdC,MAAMF,GAEN1f,KAAK6f,WAAa,KAClB7f,KAAK8f,aAAeH,EAAKG,YAC7B,CAEAC,kBAAkBhd,GACdA,EAAIid,UAAYjd,EAAIkd,QAAUjgB,KAAK6f,WAAWrd,KAC9CO,EAAImd,SAAWnd,EAAIod,OAASngB,KAAK6f,WAAWO,IAC5Crd,EAAIsd,YAActd,EAAIud,UAAYtgB,KAAK6f,WAAW1Y,MACtD,CAEAoZ,aAAa/jB,GACT,MAAMuG,EAAM,CACRvG,KAAMA,EACNwjB,WAAY,EACZE,UAAW,EACXG,aAAc,EACdJ,SAAU,EACVE,QAAS,EACTG,WAAY,GAGhBtgB,KAAK+f,kBAAkBhd,GACvB/C,KAAK8f,aAAa/c,EACtB,CAEAyd,sBAAsBC,GAClB,MAAO,CACHC,KAAKlkB,GACDikB,EAAIF,aAAa/jB,EACrB,EAER,gCCrCJ,MAAMmkB,EAA0Bn6B,EAAQ,MAClCo6B,EAA+Bp6B,EAAQ,MACvCq6B,EAA6Br6B,EAAQ,MACrCi5B,EAAQj5B,EAAQ,MA8CtB/B,EAAOC,QA5CP,cAAwCi8B,EACpC78B,YAAYg9B,EAAQnB,GAChBC,MAAMkB,EAAQnB,GAEd3f,KAAK2f,KAAOA,EACZ3f,KAAK+gB,MAAQ,KACb/gB,KAAKghB,gBAAiB,CAC1B,CAEAjB,kBAAkBhd,GACV/C,KAAK+gB,QACLhe,EAAIid,UAAYhgB,KAAK+gB,MAAMf,UAC3Bjd,EAAImd,SAAWlgB,KAAK+gB,MAAMb,SAC1Bnd,EAAIsd,YAAcrgB,KAAK+gB,MAAMV,YAE7Btd,EAAIkd,QAAUjgB,KAAKghB,eAAiBhhB,KAAK+gB,MAAMf,UAAYhgB,KAAK+gB,MAAMd,QACtEld,EAAIod,OAASngB,KAAKghB,eAAiBhhB,KAAK+gB,MAAMb,SAAWlgB,KAAK+gB,MAAMZ,OACpEpd,EAAIud,UAAYtgB,KAAKghB,eAAiBhhB,KAAK+gB,MAAMV,YAAcrgB,KAAK+gB,MAAMT,UAElF,CAEAE,sBAAsBC,EAAKQ,GACvB,MAAO,CACHC,WAAW5c,EAAU6c,GACjBF,EAAKC,WAAW19B,KAAKwc,KAAMsE,EAAU6c,GAErC1B,EAAM2B,QAAQphB,KAAKqhB,UAAWT,EAA8BH,EAAId,MAChEF,EAAM2B,QAAQphB,KAAKqhB,UAAWR,EAClC,EAEAS,mBAAmBlZ,GACfqY,EAAIM,MAAQ3Y,EAAMmZ,SAElBN,EAAKK,mBAAmB99B,KAAKwc,KAAMoI,EACvC,EAEAsY,KAAKlkB,EAAMvY,GACPw8B,EAAIO,eAAiB/8B,GAAWA,EAAQu9B,YACxCf,EAAIF,aAAa/jB,EACrB,EAER,gCC9CJ,MAAMmkB,EAA0Bn6B,EAAQ,MAClCi7B,EAAoCj7B,EAAQ,IAC5Ci5B,EAAQj5B,EAAQ,MAmBtB/B,EAAOC,QAjBP,cAA8Ci8B,EAC1C78B,YAAY49B,EAAc/B,GACtBC,MAAM8B,EAAc/B,GAEpB3f,KAAK6f,WAAaJ,EAAM2B,QAAQM,EAAcD,GAC9CzhB,KAAK2hB,eAAiB,CAC1B,CAEApB,aAAa/jB,GAELwD,KAAK2hB,gBAAkB3hB,KAAK6f,WAAW1Y,SACvCnH,KAAK2hB,cAAgB3hB,KAAK6f,WAAW1Y,OACrCyY,MAAMW,aAAa/jB,GAE3B,gCClBJ,MAAMmkB,EAA0Bn6B,EAAQ,MAClCo7B,EAAkCp7B,EAAQ,MAC1Ci5B,EAAQj5B,EAAQ,MAYtB/B,EAAOC,QAVP,cAA2Ci8B,EACvC78B,YAAYu9B,EAAW1B,GACnBC,MAAMyB,EAAW1B,GAEjB,MAAMkC,EAAoBpC,EAAM2B,QAAQC,EAAUK,aAAcE,EAAiCjC,GAEjG3f,KAAK6f,WAAagC,EAAkBhC,UACxC,gCCXJ,MAAMJ,EAAQj5B,EAAQ,MAgCtB/B,EAAOC,QA9BP,cAAgD+6B,EAC5C37B,YAAYg+B,EAAOnC,GACfC,MAAMkC,GAEN9hB,KAAK+hB,UAAYpC,EAAKoC,SAC1B,CAEAvB,sBAAsBC,EAAKQ,GACvB,MAAO,CACHe,MACIvB,EAAIsB,UAAU/hB,KAAKiiB,SACnBhB,EAAKe,IAAIx+B,KAAKwc,KAClB,EAEAkiB,wBACI,IAAK,IAAIj9B,EAAI+a,KAAKmiB,SAAUl9B,EAAI,EAAGA,IAC/Bw7B,EAAIsB,UAAU/hB,KAAKoiB,MAAMn9B,IAG7Bg8B,EAAKiB,sBAAsB1+B,KAAKwc,KACpC,EAEAqiB,OAAOC,GACH7B,EAAIsB,UAAU/hB,KAAKiiB,SACnBhB,EAAKoB,OAAO7+B,KAAKwc,KAAMsiB,EAC3B,EAER,gCC7BJ,MAAM7C,EAAQj5B,EAAQ,MAChB+lB,EAAY/lB,EAAQ,MACpBq6B,EAA6Br6B,EAAQ,MACrC+7B,EAAoC/7B,EAAQ,MAI5CimB,EAHOjmB,EAAQ,MAGNkmB,UAqNfjoB,EAAOC,QAnNP,cAAsC+6B,EAClC37B,YAAYg9B,GACRlB,MAAMkB,GAEN9gB,KAAK8gB,OAASA,EACd9gB,KAAKwiB,YAAcxiB,KAAK8gB,OAAO0B,YAC/BxiB,KAAK6f,WAAa,KAClB7f,KAAKyiB,kBAAoB,KACzBziB,KAAK0iB,4BAA8B,KACnC1iB,KAAK2iB,aAAe,IACxB,CAEAC,kBAAkBN,GACd,IAAIO,EAAM,KAEN7iB,KAAKyiB,oBACLI,EAAMhgC,OAAOigC,OAAO,CAAC,EAAG9iB,KAAKyiB,kBAAkBlB,UAC/CsB,EAAIE,SAAW/iB,KAAKyiB,kBAAkBlB,UAG1CvhB,KAAKwiB,YAAYQ,0BAA0BV,EAASO,EACxD,CAEAI,gBAAgBX,EAASY,GAGrB,GAFYljB,KAAKwiB,YAAYW,0BAA0Bb,IAG/CY,EAAa3B,SAAU,CACvB,MAAMR,EAAQmC,EAAa3B,SACrBrL,EAAKlW,KAAKwiB,YAAYY,WAAWd,GAKjCe,EAAS,CAAC,EADQH,EAAa/8B,OAASomB,EAAU+W,eAAiBpN,IAAOgN,EAAa98B,SAGzFi9B,EAAOE,OAAS1gC,OAAOigC,OAAO,CAAC,EAAG/B,GAClCsC,EAAOpD,QAAUc,EAAMd,QACvBoD,EAAOlD,OAASY,EAAMZ,OACtBkD,EAAO/C,UAAYS,EAAMT,YAEzB+C,EAAOpD,QAAUc,EAAMf,UACvBqD,EAAOlD,OAASY,EAAMb,SACtBmD,EAAO/C,UAAYS,EAAMV,aAG7BrgB,KAAKwiB,YAAYgB,6BAA6BlB,EAASe,EAC3D,CAER,CAEA7C,sBAAsBC,EAAKQ,GACvB,MAAO,CACHC,WAAW5c,EAAU6c,GACjBF,EAAKC,WAAW19B,KAAKwc,KAAMsE,EAAU6c,GAErCV,EAAIgC,kBAAoB,KACxBhC,EAAIiC,4BAA8B,KAClCjC,EAAIkC,aAAe,KAEnB,MAAMc,EAAiBhE,EAAM2B,QAAQphB,KAAKqhB,UAAWR,GAErDJ,EAAIZ,WAAa4D,EAAe5D,WAEhCJ,EAAM2B,QAAQphB,KAAK0jB,aAAcnB,EAAmC,CAChER,UAAW,SAASO,GAChB7B,EAAIwC,gBAAgBX,EAAS7B,EAAIkC,aACrC,GAER,EAEAgB,gBAAgBC,GACZ3C,EAAK0C,gBAAgBngC,KAAKwc,KAAM4jB,GAIhC,IAAK,IAAI3+B,EAAI+a,KAAK0jB,aAAavB,SAAUl9B,GAAK,EAAGA,IAC7Cw7B,EAAIwC,gBAAgBjjB,KAAK0jB,aAAatB,MAAMn9B,GAAIw7B,EAAIkC,aAE5D,EAGAkB,8BAA8Bzb,GAC1BqY,EAAIkC,aAAeva,EACnB6Y,EAAK4C,8BAA8BrgC,KAAKwc,KAAMoI,EAClD,EAEA0b,cAAc1b,GACVqY,EAAIkC,aAAeva,EACnB6Y,EAAK6C,cAActgC,KAAKwc,KAAMoI,GAQ9B,GAHIA,EAAMjiB,OAASomB,EAAU+W,gBACxBlb,EAAMhiB,UAAYqmB,EAAED,MAASpE,EAAMhiB,UAAYqmB,EAAE8G,MAAQvT,KAAK0jB,aAAaK,WAAWtX,EAAE8G,OAGzF,IAAK,IAAItuB,EAAI+a,KAAK0jB,aAAavB,SAAUl9B,GAAK,EAAGA,IAAK,CAClD,MAAMq9B,EAAUtiB,KAAK0jB,aAAatB,MAAMn9B,GAExC,GAAI+a,KAAKwiB,YAAYY,WAAWd,KAAala,EAAMhiB,QAAS,CACxDq6B,EAAIwC,gBAAgBX,EAASla,GAC7B,KACJ,CACJ,CAER,EAGA4b,iBAAiB5b,GACb6Y,EAAK+C,iBAAiBxgC,KAAKwc,KAAMoI,GAEjC,MAAM6b,EAAmBjkB,KAAKwiB,YAAY0B,cAAclkB,KAAKsE,UACvD6f,EAAWF,EAAiB/+B,OAElC,IAAK,IAAID,EAAI,EAAGA,EAAIk/B,EAAUl/B,IAAK,CAC/B,MAAMoC,EAAO48B,EAAiBh/B,GAE9B,GAAI+a,KAAKwiB,YAAY4B,mBAAmB/8B,GAAO,CAC3C2Y,KAAKwiB,YAAYQ,0BAA0B37B,EAAM+gB,EAAMmZ,UACvD,KACJ,CACJ,CACJ,EAGA8C,qBAAqB/B,GAGjB7B,EAAImC,kBAAkBN,GACtB7B,EAAIgC,kBAAoB,KACxBxB,EAAKoD,qBAAqB7gC,KAAKwc,KAAMsiB,EACzC,EAEAgC,eAAelc,EAAOmc,GAClB9D,EAAIgC,kBAAoBra,EACxB6Y,EAAKqD,eAAe9gC,KAAKwc,KAAMoI,EAAOmc,EAC1C,EAEAC,eAAepc,EAAOmc,GAClB9D,EAAIgC,kBAAoBra,EACxB6Y,EAAKuD,eAAehhC,KAAKwc,KAAMoI,EAAOmc,EAC1C,EAEAE,gBAAgBrc,GACZqY,EAAIgC,kBAAoBra,EACxB6Y,EAAKwD,gBAAgBjhC,KAAKwc,KAAMoI,GAEhC,MAAMsc,EAAc1kB,KAAKwiB,YAAYmC,mBAAmB3kB,KAAK0jB,aAAazB,SAE1EjiB,KAAKwiB,YAAYQ,0BAA0B0B,EAAa,KAC5D,EAEAE,yBACI3D,EAAK2D,uBAAuBphC,KAAKwc,MACjCA,KAAKwiB,YAAYQ,0BAA0BhjB,KAAK0jB,aAAazB,QAAS,KAC1E,EAGA4C,mBAAmBzc,EAAO0c,GACtB7D,EAAK4D,mBAAmBrhC,KAAKwc,KAAMoI,EAAO0c,GAE1C,MAAMx+B,EAAW0Z,KAAKwiB,YAAY0B,cAAcY,GAC1CC,EAAcz+B,EAASA,EAASpB,OAAS,GAE/C8a,KAAKwiB,YAAYQ,0BAA0B+B,EAAa3c,EAAMmZ,SAClE,EAGAyD,+BAKI,OAFAvE,EAAIiC,4BAA8BzB,EAAK+D,6BAA6BxhC,KAAKwc,MAElEygB,EAAIiC,2BACf,EAEAuC,kBAAkB7c,GACd6Y,EAAKgE,kBAAkBzhC,KAAKwc,KAAMoI,GAElC,MAAM8c,EAAkBllB,KAAKmlB,iCAEvBL,EACDI,GAAmBzE,EAAIiC,4BAA4BoC,QACpD9kB,KAAK0jB,aAAa0B,oBAClBplB,KAAK0jB,aAAazB,QAEhBoD,EAAWrlB,KAAKwiB,YAAY0B,cAAcY,GAE1CQ,EACFJ,GAAmBzE,EAAIiC,4BAA4B6C,cAC7CF,EAASh8B,QAAQo3B,EAAIiC,4BAA4B6C,eAAiB,EAClEF,EAASngC,OAAS,EAEtBsgC,EAAWH,EAASC,GAK1B,GAFctlB,KAAKwiB,YAAYW,0BAA0BqC,GAE9C,CACP,MAAM,QAAEvF,EAAO,OAAEE,EAAM,UAAEG,GAAclY,EAAMmZ,SAC7CvhB,KAAKwiB,YAAYgB,6BAA6BgC,EAAU,CAAEvF,UAASE,SAAQG,aAC/E,MACItgB,KAAKwiB,YAAYQ,0BAA0BwC,EAAUpd,EAAMmZ,SAEnE,EAER,gCCzNJ,MAAM9B,EAAQj5B,EAAQ,MAChB+lB,EAAY/lB,EAAQ,MACpBi7B,EAAoCj7B,EAAQ,IA6IlD/B,EAAOC,QA3IP,cAAyC+6B,EACrC37B,YAAYu9B,GACRzB,MAAMyB,GAENrhB,KAAKqhB,UAAYA,EACjBrhB,KAAK6f,WAAaJ,EAAM2B,QAAQC,EAAUK,aAAcD,GACxDzhB,KAAKylB,oBAAsB,KAC3BzlB,KAAK+gB,MAAQ,IACjB,CAEA2E,sBACI,MAAO,CACH1F,UAAWhgB,KAAK6f,WAAWrd,KAC3B0d,SAAUlgB,KAAK6f,WAAWO,IAC1BC,YAAargB,KAAK6f,WAAW1Y,OAC7B8Y,SAAU,EACVE,QAAS,EACTG,WAAY,EAEpB,CAEAqF,iCACI3lB,KAAKylB,oBAAoBxF,QAAUjgB,KAAK6f,WAAWrd,KACnDxC,KAAKylB,oBAAoBtF,OAASngB,KAAK6f,WAAWO,IAClDpgB,KAAKylB,oBAAoBnF,UAAYtgB,KAAK6f,WAAW1Y,OAErD,MAAMwb,EAAe3iB,KAAKqhB,UAAUsB,aAC9BiD,EAAc5lB,KAAKqhB,UAAUuE,YAE9BjD,EAAapB,SAAS9K,QACvBkM,EAAapB,SAAS9K,MAAQ5zB,OAAOoI,OAAO,OAGhD03B,EAAapB,SAAS9K,MAAMmP,EAAY1hC,MAAQ8b,KAAKylB,mBACzD,CAEAjF,sBAAsBC,EAAKQ,GACvB,MAAM4E,EAAU,CACZC,uBACI7E,EAAK6E,qBAAqBtiC,KAAKwc,MAC/BA,KAAK2iB,aAAapB,SAAWd,EAAIM,KACrC,EAEAgF,qBACI9E,EAAK8E,mBAAmBviC,KAAKwc,MAC7BA,KAAK2iB,aAAapB,SAAWd,EAAIM,KACrC,EAEAiF,sBACI/E,EAAK+E,oBAAoBxiC,KAAKwc,MAC9BA,KAAK2iB,aAAapB,SAAWd,EAAIM,KACrC,EAEAkF,oBAAoBC,GAChBjF,EAAKgF,oBAAoBziC,KAAKwc,KAAMkmB,GACpClmB,KAAK2iB,aAAapB,SAAWd,EAAIM,KACrC,EAEAoF,sBAAsBhgC,EAAMigC,GACxBnF,EAAKkF,sBAAsB3iC,KAAKwc,KAAM7Z,EAAMigC,GAC5CpmB,KAAKqmB,sBAAsB9E,SAAWd,EAAIM,KAC9C,EAEAuF,kBACIrF,EAAKqF,gBAAgB9iC,KAAKwc,MAC1BA,KAAK2iB,aAAapB,SAAWd,EAAIiF,qBACrC,EAEAa,YAAYC,GACRvF,EAAKsF,YAAY/iC,KAAKwc,KAAMwmB,GAC5B/F,EAAIgF,oBAAsBhF,EAAIiF,qBAClC,EAEAe,eAAeC,GACXzF,EAAKwF,eAAejjC,KAAKwc,KAAM0mB,GAC/BjG,EAAIkF,gCACR,EAEAgB,gBAAgBD,GACZzF,EAAK0F,gBAAgBnjC,KAAKwc,KAAM0mB,GAChCjG,EAAIkF,gCACR,EAEAiB,oBACI,MAAM7F,EAAQ/gB,KAAK2iB,aAAapB,SAI5BvhB,KAAKqmB,wBACLrmB,KAAKqmB,sBAAsB9E,SAAStB,QAAUc,EAAMf,UACpDhgB,KAAKqmB,sBAAsB9E,SAASpB,OAASY,EAAMb,SACnDlgB,KAAKqmB,sBAAsB9E,SAASjB,UAAYS,EAAMV,aAGtDrgB,KAAK2iB,aAAax8B,OAASomB,EAAUsa,WACrC9F,EAAMd,QAAUc,EAAMf,UACtBe,EAAMZ,OAASY,EAAMb,SACrBa,EAAMT,UAAYS,EAAMV,cAExBU,EAAMd,QAAUQ,EAAIZ,WAAWrd,KAC/Bue,EAAMZ,OAASM,EAAIZ,WAAWO,IAAM,EACpCW,EAAMT,UAAYG,EAAIZ,WAAW1Y,OAAS,GAG9C8Z,EAAK2F,kBAAkBpjC,KAAKwc,KAChC,EAEA8mB,6BACI,MAAM/F,EAAQ/gB,KAAKqmB,uBAAyBrmB,KAAKqmB,sBAAsB9E,SAOnER,IAA8B,IAArBA,EAAMT,YACfS,EAAMd,QAAUQ,EAAIZ,WAAWrd,KAC/Bue,EAAMZ,OAASM,EAAIZ,WAAWO,IAC9BW,EAAMT,UAAYG,EAAIZ,WAAW1Y,QAGrC8Z,EAAK6F,2BAA2BtjC,KAAKwc,KACzC,GAaJ,OATAnd,OAAOkkC,KAAKxa,EAAUya,MAAMC,SAAQC,IAChC,MAAMC,EAAQ5a,EAAUya,KAAKE,GAE7BrB,EAAQsB,GAAS,SAASjI,GACtBuB,EAAIM,MAAQN,EAAIiF,sBAChBzE,EAAKkG,GAAO3jC,KAAKwc,KAAMkf,EAC3B,CAAC,IAGE2G,CACX,8BC5IJ,MAAMpG,EAAQj5B,EAAQ,MA6DtB/B,EAAOC,QA3DP,cAAgD+6B,EAC5C37B,YAAY49B,GACR9B,MAAM8B,GAEN1hB,KAAK0hB,aAAeA,EACpB1hB,KAAKonB,OAAQ,EACbpnB,KAAKqnB,aAAe,EACpBrnB,KAAKsnB,kBAAoB,EAEzBtnB,KAAKmH,OAAS,EACdnH,KAAKogB,IAAM,EACXpgB,KAAKwC,KAAO,CAChB,CAEAge,sBAAsBC,EAAKQ,GACvB,MAAO,CACHsG,UACI,MAAM/jB,EAAMxD,KAAKwD,IAAM,EACjB4iB,EAAKpmB,KAAKhX,KAAKwa,GAgBrB,OAbIid,EAAI2G,QACJ3G,EAAI2G,OAAQ,EACZ3G,EAAIje,OACJie,EAAI4G,aAAe7jB,IAGZ,OAAP4iB,GAAuB,OAAPA,GAAsC,OAAvBpmB,KAAKhX,KAAKwa,EAAM,MAC/Cid,EAAI2G,OAAQ,GAGhB3G,EAAIL,IAAM5c,EAAMid,EAAI4G,aAAe,EACnC5G,EAAItZ,OAASsZ,EAAI6G,kBAAoB9jB,EAE9Byd,EAAKsG,QAAQ/jC,KAAKwc,KAC7B,EAEAwnB,UACIvG,EAAKuG,QAAQhkC,KAAKwc,MAElBygB,EAAI2G,OAAQ,EACZ3G,EAAIL,IAAMpgB,KAAKwD,IAAMid,EAAI4G,aAAe,CAC5C,EAEAI,kBACI,MAAMC,EAAU1nB,KAAKwD,IAErByd,EAAKwG,gBAAgBjkC,KAAKwc,MAE1B,MAAM2nB,EAAYD,EAAU1nB,KAAKwD,IAEjCid,EAAI4G,cAAgBM,EACpBlH,EAAI6G,mBAAqBK,EACzBlH,EAAItZ,OAASsZ,EAAI6G,kBAAoBtnB,KAAKwD,GAC9C,EAER,0BCtDJ,MAAMokB,EACF9jC,YAAY0+B,GACRxiB,KAAK9a,OAAS,EACd8a,KAAK6nB,QAAU,GACf7nB,KAAKwiB,YAAcA,EACnBxiB,KAAK8nB,SAAW,IACpB,CAKAC,+BAA+BC,GAC3B,MAAMC,EAAa,GAEnB,GAAIjoB,KAAK9a,QAjBS,EAiBoB,CAClC,MAAMgjC,EAAgBloB,KAAKwiB,YAAY2F,YAAYH,GAAY9iC,OACzDkjC,EAAYpoB,KAAKwiB,YAAYY,WAAW4E,GACxCK,EAAiBroB,KAAKwiB,YAAY8F,gBAAgBN,GAExD,IAAK,IAAI/iC,EAAI+a,KAAK9a,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACvC,MAAMsjC,EAAQvoB,KAAK6nB,QAAQ5iC,GAE3B,GAAIsjC,EAAMpiC,OAASyhC,EAAsBY,aACrC,MAGJ,MAAMlG,EAAUiG,EAAMjG,QAChBmG,EAAezoB,KAAKwiB,YAAY2F,YAAY7F,GAG9CtiB,KAAKwiB,YAAYY,WAAWd,KAAa8F,GACzCpoB,KAAKwiB,YAAY8F,gBAAgBhG,KAAa+F,GAC9CI,EAAavjC,SAAWgjC,GAGxBD,EAAW/hC,KAAK,CAAEwiC,IAAKzjC,EAAGwxB,MAAOgS,GAEzC,CACJ,CAEA,OAAOR,EAAW/iC,OA3CA,EA2C6B,GAAK+iC,CACxD,CAEAU,wBAAwBX,GACpB,MAAMC,EAAajoB,KAAK+nB,+BAA+BC,GACvD,IAAIY,EAAUX,EAAW/iC,OAEzB,GAAI0jC,EAAS,CACT,MAAMC,EAAU7oB,KAAKwiB,YAAY2F,YAAYH,GACvCE,EAAgBW,EAAQ3jC,OACxB4jC,EAAajmC,OAAOoI,OAAO,MAGjC,IAAK,IAAIhG,EAAI,EAAGA,EAAIijC,EAAejjC,IAAK,CACpC,MAAM8jC,EAASF,EAAQ5jC,GAEvB6jC,EAAWC,EAAO7kC,MAAQ6kC,EAAO1kC,KACrC,CAEA,IAAK,IAAIY,EAAI,EAAGA,EAAIijC,EAAejjC,IAC/B,IAAK,IAAI+jC,EAAI,EAAGA,EAAIJ,EAASI,IAAK,CAC9B,MAAMC,EAAQhB,EAAWe,GAAGvS,MAAMxxB,GAOlC,GALI6jC,EAAWG,EAAM/kC,QAAU+kC,EAAM5kC,QACjC4jC,EAAWiB,OAAOF,EAAG,GACrBJ,KAGAX,EAAW/iC,OAvET,EAwEF,MAER,CAIJ,IAAK,IAAID,EAAI2jC,EAAU,EAAG3jC,GAAKkkC,EAAuBlkC,IAClD+a,KAAK6nB,QAAQqB,OAAOjB,EAAWhjC,GAAGyjC,IAAK,GACvC1oB,KAAK9a,QAEb,CACJ,CAGAkkC,eACIppB,KAAK6nB,QAAQ3hC,KAAK,CAAEC,KAAMyhC,EAAsBY,eAChDxoB,KAAK9a,QACT,CAEAmkC,YAAY/G,EAASla,GACjBpI,KAAK2oB,wBAAwBrG,GAE7BtiB,KAAK6nB,QAAQ3hC,KAAK,CACdC,KAAMyhC,EAAsB0B,cAC5BhH,QAASA,EACTla,MAAOA,IAGXpI,KAAK9a,QACT,CAEAqkC,2BAA2BjH,EAASla,GAChC,IAAIohB,EAAcxpB,KAAK9a,OAAS,EAEhC,KAAOskC,GAAe,GACdxpB,KAAK6nB,QAAQ2B,KAAiBxpB,KAAK8nB,SADlB0B,KAMzBxpB,KAAK6nB,QAAQqB,OAAOM,EAAc,EAAG,EAAG,CACpCrjC,KAAMyhC,EAAsB0B,cAC5BhH,QAASA,EACTla,MAAOA,IAGXpI,KAAK9a,QACT,CAEAukC,YAAYlB,GACR,IAAK,IAAItjC,EAAI+a,KAAK9a,OAAS,EAAGD,GAAK,EAAGA,IAClC,GAAI+a,KAAK6nB,QAAQ5iC,KAAOsjC,EAAO,CAC3BvoB,KAAK6nB,QAAQqB,OAAOjkC,EAAG,GACvB+a,KAAK9a,SACL,KACJ,CAER,CAEAwkC,oBACI,KAAO1pB,KAAK9a,QAAQ,CAChB,MAAMqjC,EAAQvoB,KAAK6nB,QAAQ7F,MAI3B,GAFAhiB,KAAK9a,SAEDqjC,EAAMpiC,OAASyhC,EAAsBY,aACrC,KAER,CACJ,CAGAmB,kCAAkCvjC,GAC9B,IAAK,IAAInB,EAAI+a,KAAK9a,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACvC,MAAMsjC,EAAQvoB,KAAK6nB,QAAQ5iC,GAE3B,GAAIsjC,EAAMpiC,OAASyhC,EAAsBY,aACrC,OAAO,KAGX,GAAIxoB,KAAKwiB,YAAYY,WAAWmF,EAAMjG,WAAal8B,EAC/C,OAAOmiC,CAEf,CAEA,OAAO,IACX,CAEAqB,gBAAgBtH,GACZ,IAAK,IAAIr9B,EAAI+a,KAAK9a,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACvC,MAAMsjC,EAAQvoB,KAAK6nB,QAAQ5iC,GAE3B,GAAIsjC,EAAMpiC,OAASyhC,EAAsB0B,eAAiBf,EAAMjG,UAAYA,EACxE,OAAOiG,CAEf,CAEA,OAAO,IACX,EAIJX,EAAsBY,aAAe,eACrCZ,EAAsB0B,cAAgB,gBAEtC7kC,EAAOC,QAAUkjC,+BClLjB,MAAMrb,EAAY/lB,EAAQ,MACpBqjC,EAAmBrjC,EAAQ,MAC3BohC,EAAwBphC,EAAQ,MAChCsjC,EAA0BtjC,EAAQ,MAClCujC,EAA4BvjC,EAAQ,MACpCi5B,EAAQj5B,EAAQ,MAChBwjC,EAAqBxjC,EAAQ,MAC7ByjC,EAAezjC,EAAQ,MACvB0jC,EAAU1jC,EAAQ,MAClB2jC,EAAiB3jC,EAAQ,MACzB4jC,EAAM5jC,EAAQ,MACd6jC,EAAU7jC,EAAQ,MAClBgmB,EAAOhmB,EAAQ,MAGfimB,EAAID,EAAKE,UACTC,EAAKH,EAAKI,WACVC,EAAQL,EAAKK,MAEbyd,EAAkB,CACpBC,kBAAkB,EAClBC,wBAAwB,EACxB1K,aAAc,KACd0C,YAAawH,GAIXS,EAAoB,SAOpBC,EAAe,eACfC,EAAmB,mBACnBC,EAAmB,mBACnBC,EAAe,eACfC,EAAyB,yBACzBC,EAAkB,kBAClBC,EAAe,eACfC,EAAY,YACZC,EAAgB,gBAChBC,EAAqB,qBACrBC,EAAkB,kBAClBC,EAAuB,uBACvBC,EAAqB,qBACrBC,EAAc,cACdC,EAAe,eACfC,EAAiB,iBACjBC,EAA0B,0BAC1BC,EAAmB,mBACnBC,EAAkB,kBAClBC,EAAmB,mBACnBC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAA4B,4BAG5BC,EAA2B,CAC7B,CAACxf,EAAE0P,IAAKoP,EACR,CAAC9e,EAAEmP,OAAQ0P,EACX,CAAC7e,EAAEyP,OAAQoP,EACX,CAAC7e,EAAEsP,OAAQuP,EACX,CAAC7e,EAAEsM,SAAUqS,EACb,CAAC3e,EAAEwM,UAAWoS,EACd,CAAC5e,EAAEkJ,OAAQuV,EACX,CAACze,EAAE8G,MAAOyX,EACV,CAACve,EAAEkN,UAAWkS,GAIZK,EAAqC,CACvC,CAACzf,EAAEsM,SAAUmS,EACb,CAACze,EAAEwM,UAAWiS,EACd,CAACze,EAAEmP,OAAQsP,EACX,CAACze,EAAEsP,OAAQmP,EACX,CAACze,EAAEyP,OAAQgP,EACX,CAACze,EAAEuM,KAAMqS,EACT,CAAC5e,EAAE0P,IAAKmP,EACR,CAAC7e,EAAEuP,IAAKuP,EACR,CAAC9e,EAAEwP,IAAKsP,GAINY,EAAiB,CACnB,CAACzB,GAAe,CACZ,CAACne,EAAU6f,iBAAkBC,GAC7B,CAAC9f,EAAU+f,sBAAuBD,GAClC,CAAC9f,EAAUggB,4BAA6BC,GACxC,CAACjgB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAi9BnB,SAA8BC,EAAGxkB,GAC7BwkB,EAAE5I,iBAAiB5b,GAEnB,MAAMykB,EAAOzkB,EAAM0kB,YAActgB,EAAKjF,cAAcgB,OAAS2hB,EAAQ5hB,gBAAgBF,GAEhF8hB,EAAQ/hB,aAAaC,IACtBwkB,EAAElM,KAAK0J,EAAIxe,sBAGfghB,EAAEpK,YAAYuK,gBAAgBH,EAAEtoB,SAAUuoB,GAE1CD,EAAEI,cAAgBrC,CACtB,EA59BQ,CAACpe,EAAU0gB,iBAAkBZ,GAC7B,CAAC9f,EAAU+W,eAAgB+I,GAC3B,CAAC9f,EAAUsa,WAAYwF,IAE3B,CAAC1B,GAAmB,CAChB,CAACpe,EAAU6f,iBAAkBc,GAC7B,CAAC3gB,EAAU+f,sBAAuBY,GAClC,CAAC3gB,EAAUggB,4BAA6BC,GACxC,CAACjgB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA69BnB,SAA4BL,EAAGxkB,GACvBA,EAAMhiB,UAAYqmB,EAAED,MACpBogB,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgBpC,GAElBsC,GAAgBN,EAAGxkB,EAE3B,EAn+BQ,CAACmE,EAAU+W,eAq+BnB,SAA0BsJ,EAAGxkB,GACzB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,MAAQ0J,IAAOzJ,EAAE8H,MAAQ2B,IAAOzJ,EAAE8G,MAAQ2C,IAAOzJ,EAAE+G,IAC5D0Z,GAAgBN,EAAGxkB,EAE3B,EA1+BQ,CAACmE,EAAUsa,WAAYqG,IAE3B,CAACtC,GAAmB,CAChB,CAACre,EAAU6f,iBAAkBe,GAC7B,CAAC5gB,EAAU+f,sBAAuBa,GAClC,CAAC5gB,EAAUggB,4BAA6BC,GACxC,CAACjgB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgB7gB,GAC3B,CAACS,EAAU0gB,iBA4+BnB,SAA4BL,EAAGxkB,GAC3B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GACX8N,IAAOzJ,EAAE8H,MAChBqY,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAES,YAAcT,EAAElJ,aAAazB,QAC/B2K,EAAEI,cAAgBnC,GAElBsC,GAAgBP,EAAGxkB,EAE3B,EAv/BQ,CAACmE,EAAU+W,eAy/BnB,SAA0BsJ,EAAGxkB,GACzB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAE8H,MAAQ2B,IAAOzJ,EAAE8G,MAAQ2C,IAAOzJ,EAAED,MAAQ0J,IAAOzJ,EAAE+G,GAC5D2Z,GAAgBP,EAAGxkB,GAEnBwkB,EAAElM,KAAK0J,EAAIre,iCAEnB,EAhgCQ,CAACQ,EAAUsa,WAAYsG,IAE3B,CAACtC,GAAe,CACZ,CAACte,EAAU6f,iBAAkBkB,GAC7B,CAAC/gB,EAAU+f,sBAAuBgB,GAClC,CAAC/gB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgB7gB,GAC3B,CAACS,EAAU0gB,iBAAkBO,GAC7B,CAACjhB,EAAU+W,eAAgBmK,GAC3B,CAAClhB,EAAUsa,WAAYyG,IAE3B,CAACxC,GAAyB,CACtB,CAACve,EAAU6f,iBAAkBsB,GAC7B,CAACnhB,EAAU+f,sBAAuBoB,GAClC,CAACnhB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgB7gB,GAC3B,CAACS,EAAU0gB,iBA+jCnB,SAAgCL,EAAGxkB,GAC/B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GAElB8N,IAAOzJ,EAAEmM,UACT1C,IAAOzJ,EAAEoM,SACT3C,IAAOzJ,EAAE8H,MACT2B,IAAOzJ,EAAE0N,MACTjE,IAAOzJ,EAAEqI,MACToB,IAAOzJ,EAAEiO,UACTxE,IAAOzJ,EAAEiP,MAET8R,GAAeZ,EAAGxkB,GACX8N,IAAOzJ,EAAEmO,SAChBgS,EAAElM,KAAK0J,EAAI/d,sBAEXqhB,GAAoBd,EAAGxkB,EAE/B,EAllCQ,CAACmE,EAAU+W,eAolCnB,SAA8BsJ,EAAGxkB,GAC7B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAEmO,UACTgS,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgBnC,GACX3U,IAAOzJ,EAAE+G,GAChBka,GAAoBd,EAAGxkB,GAEvBwkB,EAAElM,KAAK0J,EAAIre,iCAEnB,EA9lCQ,CAACQ,EAAUsa,WAAY6G,IAE3B,CAAC3C,GAAkB,CACf,CAACxe,EAAU6f,iBAAkBuB,GAC7B,CAACphB,EAAU+f,sBAAuBqB,GAClC,CAACphB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgB7gB,GAC3B,CAACS,EAAU0gB,iBAomCnB,SAA2BL,EAAGxkB,GAC1B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GACX8N,IAAOzJ,EAAE8G,MAChBqZ,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEgB,YAAa,EACfhB,EAAEI,cAAgBhC,GACX9U,IAAOzJ,EAAEkN,UAChBiT,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgBnB,GAElB3V,IAAOzJ,EAAEkM,MACTzC,IAAOzJ,EAAEmM,UACT1C,IAAOzJ,EAAEoM,SACT3C,IAAOzJ,EAAE0N,MACTjE,IAAOzJ,EAAEqI,MACToB,IAAOzJ,EAAEiO,UACTxE,IAAOzJ,EAAE6O,QACTpF,IAAOzJ,EAAEiP,OACTxF,IAAOzJ,EAAEoP,UACT3F,IAAOzJ,EAAEgL,OAETmV,EAAElM,KAAK0J,EAAIje,2BACXygB,EAAElJ,aAAax9B,KAAK0mC,EAAES,aACtBG,GAAeZ,EAAGxkB,GAClBwkB,EAAElJ,aAAarB,OAAOuK,EAAES,cACjBnX,IAAOzJ,EAAE8H,KAChBqY,EAAElM,KAAK0J,EAAIhe,iCAEXuhB,GAAef,EAAGxkB,EAE1B,EApoCQ,CAACmE,EAAU+W,eAsoCnB,SAAyBsJ,EAAGxkB,GACxB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAE8G,MAAQ2C,IAAOzJ,EAAED,MAAQ0J,IAAOzJ,EAAE+G,GAC3Cma,GAAef,EAAGxkB,GACX8N,IAAOzJ,EAAEoP,SAChB4R,GAAab,EAAGxkB,GAEhBwkB,EAAElM,KAAK0J,EAAIre,iCAEnB,EA/oCQ,CAACQ,EAAUsa,WAAY8G,IAE3B,CAAC3C,GAAe,CACZ,CAACze,EAAU6f,iBAAkByB,GAC7B,CAACthB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BuB,GACxC,CAACvhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBAAkBG,GAC7B,CAAC7gB,EAAU+W,eAAgByK,GAC3B,CAACxhB,EAAUsa,WAAYmH,IAE3B,CAAC/C,GAAY,CACT,CAAC1e,EAAU6f,iBAAkBmB,GAC7B,CAAChhB,EAAU+f,sBAAuBiB,GAClC,CAAChhB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBD,GAC3B,CAACjgB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBAAkBT,GAC7B,CAACjgB,EAAU+W,eA87DnB,SAAsBsJ,EAAGxkB,GACjBA,EAAMhiB,UAAYqmB,EAAE6O,SACpBsR,EAAEqB,cAAgBrB,EAAElJ,aAAazB,SAGrC2K,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgBJ,EAAEsB,qBACxB,EAp8DQ,CAAC3hB,EAAUsa,WAs8DnB,SAAmB+F,EAAGxkB,GAClBwkB,EAAElM,KAAK0J,EAAI9d,oCACXsgB,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgBJ,EAAEsB,sBACpBtB,EAAE9I,cAAc1b,EACpB,GAz8DI,CAAC8iB,GAAgB,CACb,CAAC3e,EAAU6f,iBAAkB+B,GAC7B,CAAC5hB,EAAU+f,sBAAuB6B,GAClC,CAAC5hB,EAAUggB,4BAA6B4B,GACxC,CAAC5hB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBAAkBmB,GAC7B,CAAC7hB,EAAU+W,eAAgB+K,GAC3B,CAAC9hB,EAAUsa,WAAYmH,IAE3B,CAAC7C,GAAqB,CAClB,CAAC5e,EAAU6f,iBAsoEnB,SAA8BQ,EAAGxkB,GAC7BwkB,EAAE0B,uBAAuBpoC,KAAKkiB,GAC9BwkB,EAAE2B,uCAAwC,CAC9C,EAxoEQ,CAAChiB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAgoEnB,SAAwCK,EAAGxkB,GACvCwkB,EAAE0B,uBAAuBpoC,KAAKkiB,EAClC,EAjoEQ,CAACmE,EAAUkgB,eAAgB+B,GAC3B,CAACjiB,EAAUogB,eAAgB6B,GAC3B,CAACjiB,EAAU0gB,iBAAkBuB,GAC7B,CAACjiB,EAAU+W,eAAgBkL,GAC3B,CAACjiB,EAAUsa,WAAY2H,IAE3B,CAACpD,GAAkB,CACf,CAAC7e,EAAU6f,iBAAkByB,GAC7B,CAACthB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BuB,GACxC,CAACvhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA+oEnB,SAA2BL,EAAGxkB,GAC1B,MAAM8N,EAAK9N,EAAMhiB,QAGb8vB,IAAOzJ,EAAEsM,SACT7C,IAAOzJ,EAAEuM,KACT9C,IAAOzJ,EAAEwM,UACT/C,IAAOzJ,EAAEmP,OACT1F,IAAOzJ,EAAEuP,IACT9F,IAAOzJ,EAAEsP,OACT7F,IAAOzJ,EAAEwP,IACT/F,IAAOzJ,EAAEyP,OACThG,IAAOzJ,EAAE0P,GAELyQ,EAAElJ,aAAa+K,gBAAgBhiB,EAAEsM,WACjC6T,EAAElJ,aAAagL,yBACf9B,EAAElJ,aAAaiL,sBAAsBliB,EAAEsM,SACvC6T,EAAEgC,yBAAyBlF,oBAC3BkD,EAAEI,cAAgB9B,EAClB0B,EAAE9I,cAAc1b,IAGpBglB,GAAeR,EAAGxkB,EAE1B,EAtqEQ,CAACmE,EAAU+W,eAwqEnB,SAAyBsJ,EAAGxkB,GACxB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAEsM,SAAW7C,IAAOzJ,EAAEkJ,MACzBiX,EAAElJ,aAAa+K,gBAAgBhiB,EAAEsM,WACjC6T,EAAElJ,aAAagL,yBACf9B,EAAElJ,aAAaiL,sBAAsBliB,EAAEsM,SACvC6T,EAAEgC,yBAAyBlF,oBAC3BkD,EAAEI,cAAgB9B,EAEdhV,IAAOzJ,EAAEkJ,OACTiX,EAAE9I,cAAc1b,IAIxB8N,IAAOzJ,EAAE8G,MACT2C,IAAOzJ,EAAEuM,KACT9C,IAAOzJ,EAAEwM,UACT/C,IAAOzJ,EAAED,MACT0J,IAAOzJ,EAAEmP,OACT1F,IAAOzJ,EAAEuP,IACT9F,IAAOzJ,EAAEsP,OACT7F,IAAOzJ,EAAEwP,IACT/F,IAAOzJ,EAAEyP,OACThG,IAAOzJ,EAAE0P,IAET4R,GAAanB,EAAGxkB,EAExB,EAnsEQ,CAACmE,EAAUsa,WAAYmH,IAE3B,CAAC3C,GAAuB,CACpB,CAAC9e,EAAU6f,iBAAkByC,GAC7B,CAACtiB,EAAU+f,sBAAuBuC,GAClC,CAACtiB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA+rEnB,SAA+BL,EAAGxkB,GAC9B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GACX8N,IAAOzJ,EAAEuM,KAChB4T,EAAEtI,eAAelc,EAAOuE,EAAGH,MAC3BpE,EAAM0mB,gBAAiB,GAChB5Y,IAAOzJ,EAAEoP,SAChB2R,GAAeZ,EAAGxkB,GAElBymB,GAAmBjC,EAAGxkB,EAE9B,EA3sEQ,CAACmE,EAAU+W,eA6sEnB,SAA6BsJ,EAAGxkB,GAC5B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAEwM,SACL2T,EAAElJ,aAAaqL,iBAAmBtiB,EAAEwM,WACpC2T,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB9B,GAEfhV,IAAOzJ,EAAEoP,SAChB4R,GAAab,EAAGxkB,GACT8N,IAAOzJ,EAAEuM,KAChB6V,GAAmBjC,EAAGxkB,EAE9B,EAztEQ,CAACmE,EAAUsa,WAAYmH,IAE3B,CAAC1C,GAAqB,CAClB,CAAC/e,EAAU6f,iBAAkB+B,GAC7B,CAAC5hB,EAAU+f,sBAAuB6B,GAClC,CAAC5hB,EAAUggB,4BAA6B4B,GACxC,CAAC5hB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA6tEnB,SAA6BL,EAAGxkB,GAC5B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAE0P,IACTyQ,EAAElJ,aAAasL,8BACfpC,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgBzB,GACXrV,IAAOzJ,EAAEwP,IAAM/F,IAAOzJ,EAAEuP,IAC/B4Q,EAAElJ,aAAasL,8BACfpC,EAAEqC,mBAAmBxiB,EAAE0P,IACvByQ,EAAEI,cAAgBzB,EAClBqB,EAAE9I,cAAc1b,IAEhB8N,IAAOzJ,EAAEsM,SACT7C,IAAOzJ,EAAEuM,KACT9C,IAAOzJ,EAAEwM,UACT/C,IAAOzJ,EAAEmP,OACT1F,IAAOzJ,EAAEsP,OACT7F,IAAOzJ,EAAEyP,MAEL0Q,EAAElJ,aAAawL,oCACftC,EAAElJ,aAAasL,8BACfpC,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB9B,EAClB0B,EAAE9I,cAAc1b,IAGpBgmB,GAAgBxB,EAAGxkB,EAE3B,EAzvEQ,CAACmE,EAAU+W,eA2vEnB,SAA2BsJ,EAAGxkB,GAC1B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAEmP,OAAS1F,IAAOzJ,EAAEsP,OAAS7F,IAAOzJ,EAAEyP,MACzC0Q,EAAElJ,aAAa+K,gBAAgBvY,KAC/B0W,EAAElJ,aAAasL,8BACfpC,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB9B,GAEfhV,IAAOzJ,EAAEkJ,MACZiX,EAAElJ,aAAawL,oCACftC,EAAElJ,aAAasL,8BACfpC,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB9B,EAClB0B,EAAE9I,cAAc1b,KAGnB8N,IAAOzJ,EAAE8G,MAAQ2C,IAAOzJ,EAAEsM,SAAW7C,IAAOzJ,EAAEuM,KAAO9C,IAAOzJ,EAAEwM,UAC9D/C,IAAOzJ,EAAED,MAAQ0J,IAAOzJ,EAAEuP,IAAM9F,IAAOzJ,EAAEwP,IAAM/F,IAAOzJ,EAAE0P,KAEzDkS,GAAczB,EAAGxkB,EAEzB,EAhxEQ,CAACmE,EAAUsa,WAAYmH,IAE3B,CAACzC,GAAc,CACX,CAAChf,EAAU6f,iBAAkB+B,GAC7B,CAAC5hB,EAAU+f,sBAAuB6B,GAClC,CAAC5hB,EAAUggB,4BAA6B4B,GACxC,CAAC5hB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA4wEnB,SAAuBL,EAAGxkB,GACtB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAEwP,IAAM/F,IAAOzJ,EAAEuP,IACxB4Q,EAAElJ,aAAayL,6BACfvC,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgBxB,EAClBoB,EAAEgC,yBAAyBxF,gBAE3BlT,IAAOzJ,EAAEsM,SACT7C,IAAOzJ,EAAEuM,KACT9C,IAAOzJ,EAAEwM,UACT/C,IAAOzJ,EAAEmP,OACT1F,IAAOzJ,EAAEsP,OACT7F,IAAOzJ,EAAEyP,OACThG,IAAOzJ,EAAE0P,GAELyQ,EAAElJ,aAAa+K,gBAAgBhiB,EAAE0P,MACjCyQ,EAAElJ,aAAayL,6BACfvC,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB1B,EAClBsB,EAAE9I,cAAc1b,IAGpBgmB,GAAgBxB,EAAGxkB,EAE3B,EAryEQ,CAACmE,EAAU+W,eAuyEnB,SAAqBsJ,EAAGxkB,GACpB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAE0P,GACLyQ,EAAElJ,aAAa+K,gBAAgBhiB,EAAE0P,MACjCyQ,EAAElJ,aAAayL,6BACfvC,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB1B,GAEfpV,IAAOzJ,EAAEkJ,MACZiX,EAAElJ,aAAa+K,gBAAgBhiB,EAAE0P,MACjCyQ,EAAElJ,aAAayL,6BACfvC,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB1B,EAClBsB,EAAE9I,cAAc1b,IAEb8N,IAAOzJ,EAAEmP,OAAS1F,IAAOzJ,EAAEsP,OAAS7F,IAAOzJ,EAAEyP,OAChD0Q,EAAElJ,aAAa+K,gBAAgBvY,IAAO0W,EAAElJ,aAAa+K,gBAAgBhiB,EAAE0P,OACvEyQ,EAAElJ,aAAayL,6BACfvC,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB1B,EAClBsB,EAAE9I,cAAc1b,KAGnB8N,IAAOzJ,EAAE8G,MAAQ2C,IAAOzJ,EAAEsM,SAAW7C,IAAOzJ,EAAEuM,KAAO9C,IAAOzJ,EAAEwM,UAC9D/C,IAAOzJ,EAAED,MAAQ0J,IAAOzJ,EAAEuP,IAAM9F,IAAOzJ,EAAEwP,KAE1CoS,GAAczB,EAAGxkB,EAEzB,EAn0EQ,CAACmE,EAAUsa,WAAYmH,IAE3B,CAACxC,GAAe,CACZ,CAACjf,EAAU6f,iBAAkByB,GAC7B,CAACthB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BuB,GACxC,CAACvhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA+zEnB,SAAwBL,EAAGxkB,GACvB,MAAM8N,EAAK9N,EAAMhiB,QAGb8vB,IAAOzJ,EAAEsM,SACT7C,IAAOzJ,EAAEuM,KACT9C,IAAOzJ,EAAEwM,UACT/C,IAAOzJ,EAAEmP,OACT1F,IAAOzJ,EAAEuP,IACT9F,IAAOzJ,EAAEsP,OACT7F,IAAOzJ,EAAEwP,IACT/F,IAAOzJ,EAAEyP,OACThG,IAAOzJ,EAAE0P,IAELyQ,EAAElJ,aAAa+K,gBAAgBhiB,EAAEuP,KAAO4Q,EAAElJ,aAAa+K,gBAAgBhiB,EAAEwP,OACzE2Q,EAAEwC,kBACFxC,EAAE9I,cAAc1b,IAGpBglB,GAAeR,EAAGxkB,EAE1B,EAn1EQ,CAACmE,EAAU+W,eAq1EnB,SAAsBsJ,EAAGxkB,GACrB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAEuP,IAAM9F,IAAOzJ,EAAEwP,GACpB2Q,EAAElJ,aAAa+K,gBAAgBvY,KAC/B0W,EAAElJ,aAAagL,yBACf9B,EAAElJ,aAAaiL,sBAAsBzY,GACrC0W,EAAEgC,yBAAyBlF,oBAC3BkD,EAAEI,cAAgBzB,GAEfrV,IAAOzJ,EAAEkJ,OAASO,IAAOzJ,EAAEmP,OAAS1F,IAAOzJ,EAAEsP,OAAS7F,IAAOzJ,EAAEyP,OAAShG,IAAOzJ,EAAE0P,GACpFyQ,EAAElJ,aAAa+K,gBAAgBvY,KAC/B0W,EAAEwC,kBACFxC,EAAE9I,cAAc1b,IAEb8N,IAAOzJ,EAAE8G,MAAQ2C,IAAOzJ,EAAEsM,SAAW7C,IAAOzJ,EAAEuM,KAAO9C,IAAOzJ,EAAEwM,UAAY/C,IAAOzJ,EAAED,MAC1FuhB,GAAanB,EAAGxkB,EAExB,EAt2EQ,CAACmE,EAAUsa,WAAYmH,IAE3B,CAACvC,GAAiB,CACd,CAAClf,EAAU6f,iBAAkBmB,GAC7B,CAAChhB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBAAkBoC,GAC7B,CAAC9iB,EAAU+W,eAAgBgM,GAC3B,CAAC/iB,EAAUsa,WAAYmH,IAE3B,CAACtC,GAA0B,CACvB,CAACnf,EAAU6f,iBAAkBmB,GAC7B,CAAChhB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBAu5EnB,SAAiCL,EAAGxkB,GAChC,MAAM8N,EAAK9N,EAAMhiB,QAGb8vB,IAAOzJ,EAAEsM,SACT7C,IAAOzJ,EAAEkJ,OACTO,IAAOzJ,EAAEmP,OACT1F,IAAOzJ,EAAEsP,OACT7F,IAAOzJ,EAAEyP,OACThG,IAAOzJ,EAAE0P,IACTjG,IAAOzJ,EAAEuP,IACT9F,IAAOzJ,EAAEwP,IAET2Q,EAAElJ,aAAaiL,sBAAsBliB,EAAE+O,QACvCoR,EAAE2C,sBACF3C,EAAE9I,cAAc1b,IAEhBinB,GAAiBzC,EAAGxkB,EAE5B,EAz6EQ,CAACmE,EAAU+W,eA26EnB,SAA+BsJ,EAAGxkB,GAC9B,MAAM8N,EAAK9N,EAAMhiB,QAGb8vB,IAAOzJ,EAAEsM,SACT7C,IAAOzJ,EAAEkJ,OACTO,IAAOzJ,EAAEmP,OACT1F,IAAOzJ,EAAEsP,OACT7F,IAAOzJ,EAAEyP,OACThG,IAAOzJ,EAAE0P,IACTjG,IAAOzJ,EAAEuP,IACT9F,IAAOzJ,EAAEwP,GAEL2Q,EAAElJ,aAAa+K,gBAAgBvY,KAC/B0W,EAAElJ,aAAaiL,sBAAsBliB,EAAE+O,QACvCoR,EAAE2C,sBACF3C,EAAE9I,cAAc1b,IAGpBknB,GAAe1C,EAAGxkB,EAE1B,EA/7EQ,CAACmE,EAAUsa,WAAYmH,IAE3B,CAACrC,GAAmB,CAChB,CAACpf,EAAU6f,iBAAkByB,GAC7B,CAACthB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BuB,GACxC,CAACvhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA27EnB,SAA4BL,EAAGxkB,GAC3B,MAAM8N,EAAK9N,EAAMhiB,QAEjB,GACI8vB,IAAOzJ,EAAEkM,MACTzC,IAAOzJ,EAAEmM,UACT1C,IAAOzJ,EAAEoM,SACT3C,IAAOzJ,EAAE0N,MACTjE,IAAOzJ,EAAEqI,MACToB,IAAOzJ,EAAEiO,UACTxE,IAAOzJ,EAAE6O,QACTpF,IAAOzJ,EAAEiP,OACTxF,IAAOzJ,EAAEoP,UACT3F,IAAOzJ,EAAEgL,MAET+V,GAAeZ,EAAGxkB,OACf,CACH,MAAMonB,EAAmBtD,EAAmChW,IAAO8U,EAEnE4B,EAAE6C,wBACF7C,EAAE8C,uBAAuBF,GACzB5C,EAAEI,cAAgBwC,EAClB5C,EAAE9I,cAAc1b,EACpB,CACJ,EAl9EQ,CAACmE,EAAU+W,eAo9EnB,SAA0BsJ,EAAGxkB,GACrBA,EAAMhiB,UAAYqmB,EAAEoP,UACpB4R,GAAab,EAAGxkB,EAExB,EAv9EQ,CAACmE,EAAUsa,WAAY8I,IAE3B,CAAC/D,GAAkB,CACf,CAACrf,EAAU6f,iBAAkBwD,GAC7B,CAACrjB,EAAU+f,sBAAuBsD,GAClC,CAACrjB,EAAUggB,4BAA6BuB,GACxC,CAACvhB,EAAUkgB,eA4wBnB,SAAwCG,EAAGxkB,GACvCwkB,EAAE/H,mBAAmBzc,EAAOwkB,EAAElJ,aAAatB,MAAM,GACrD,EA7wBQ,CAAC7V,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA+9EnB,SAA2BL,EAAGxkB,GACtBA,EAAMhiB,UAAYqmB,EAAED,KACpB4gB,GAAeR,EAAGxkB,GAElBwnB,GAAehD,EAAGxkB,EAE1B,EAp+EQ,CAACmE,EAAU+W,eAs+EnB,SAAyBsJ,EAAGxkB,GACpBA,EAAMhiB,UAAYqmB,EAAED,KACfogB,EAAEzL,kBACHyL,EAAEI,cAAgBjB,GAGtB6D,GAAehD,EAAGxkB,EAE1B,EA7+EQ,CAACmE,EAAUsa,WAAYgJ,IAE3B,CAAChE,GAAmB,CAChB,CAACtf,EAAU6f,iBAAkBI,GAC7B,CAACjgB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA8+EnB,SAA4BL,EAAGxkB,GAC3B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GACX8N,IAAOzJ,EAAEkN,SAChBiT,EAAEpI,eAAepc,EAAOuE,EAAGH,MACpB0J,IAAOzJ,EAAEiN,OAChBkT,EAAEtI,eAAelc,EAAOuE,EAAGH,MAC3BpE,EAAM0mB,gBAAiB,GAChB5Y,IAAOzJ,EAAEiO,UAChB8S,GAAeZ,EAAGxkB,EAE1B,EA1/EQ,CAACmE,EAAU+W,eA4/EnB,SAA0BsJ,EAAGxkB,GACrBA,EAAMhiB,UAAYqmB,EAAEkN,UAAaiT,EAAElJ,aAAaoM,6BAChDlD,EAAElJ,aAAa1B,MAEV4K,EAAEzL,iBAAmByL,EAAElJ,aAAaqL,iBAAmBtiB,EAAEkN,WAC1DiT,EAAEI,cAAgBlB,GAG9B,EAngFQ,CAACvf,EAAUsa,WAAYgJ,IAE3B,CAAC/D,GAAsB,CACnB,CAACvf,EAAU6f,iBAAkBI,GAC7B,CAACjgB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BgB,GACxC,CAAChhB,EAAUkgB,eAAgBC,GAC3B,CAACngB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA+/EnB,SAA+BL,EAAGxkB,GAC9B,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GACX8N,IAAOzJ,EAAEiO,UAChB8S,GAAeZ,EAAGxkB,EAE1B,EAtgFQ,CAACmE,EAAU+W,eAwgFnB,SAA6BsJ,EAAGxkB,GACxBA,EAAMhiB,UAAYqmB,EAAED,OACpBogB,EAAEI,cAAgBhB,EAE1B,EA3gFQ,CAACzf,EAAUsa,WAAYgJ,IAE3B,CAAC9D,GAAwB,CACrB,CAACxf,EAAU6f,iBAAkB2D,GAC7B,CAACxjB,EAAU+f,sBAAuByD,GAClC,CAACxjB,EAAUggB,4BAA6BuB,GACxC,CAACvhB,EAAUkgB,eAAgBuD,GAC3B,CAACzjB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBAugFnB,SAAgCL,EAAGxkB,GAC3BA,EAAMhiB,UAAYqmB,EAAED,KACpB4gB,GAAeR,EAAGxkB,GAElB2nB,GAAoBnD,EAAGxkB,EAE/B,EA5gFQ,CAACmE,EAAU+W,eAAgByM,GAC3B,CAACxjB,EAAUsa,WAAYgJ,IAE3B,CAAC7D,GAA4B,CACzB,CAACzf,EAAU6f,iBAAkBI,GAC7B,CAACjgB,EAAU+f,sBAAuBE,GAClC,CAACjgB,EAAUggB,4BAA6BuB,GACxC,CAACvhB,EAAUkgB,eAAgBuD,GAC3B,CAACzjB,EAAUogB,eAAgBH,GAC3B,CAACjgB,EAAU0gB,iBA4gFnB,SAAoCL,EAAGxkB,GACnC,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GACX8N,IAAOzJ,EAAEiO,UAChB8S,GAAeZ,EAAGxkB,EAE1B,EAnhFQ,CAACmE,EAAU+W,eAAgBkJ,GAC3B,CAACjgB,EAAUsa,WAAYgJ,KA+jB/B,SAASI,EAA+BrD,EAAGxkB,GACvC,IAAI8nB,EAAyBtD,EAAEgC,yBAAyBjF,kCAAkCvhB,EAAMhiB,SAahG,OAXI8pC,EACKtD,EAAElJ,aAAayM,SAASD,EAAuB5N,SAGxCsK,EAAElJ,aAAaK,WAAW3b,EAAMhiB,WACxC8pC,EAAyB,OAHzBtD,EAAEgC,yBAAyBnF,YAAYyG,GACvCA,EAAyB,MAK7BE,GAAoBxD,EAAGxkB,GAGpB8nB,CACX,CAGA,SAASG,EAAsBzD,EAAGsD,GAC9B,IAAII,EAAgB,KAEpB,IAAK,IAAIrrC,EAAI2nC,EAAElJ,aAAavB,SAAUl9B,GAAK,EAAGA,IAAK,CAC/C,MAAMq9B,EAAUsK,EAAElJ,aAAatB,MAAMn9B,GAErC,GAAIq9B,IAAY4N,EAAuB5N,QACnC,MAGAsK,EAAE2D,kBAAkBjO,KACpBgO,EAAgBhO,EAExB,CAOA,OALKgO,IACD1D,EAAElJ,aAAa8M,sBAAsBN,EAAuB5N,SAC5DsK,EAAEgC,yBAAyBnF,YAAYyG,IAGpCI,CACX,CAGA,SAASG,EAAY7D,EAAG0D,EAAeI,GACnC,IAAIC,EAAcL,EACdM,EAAchE,EAAElJ,aAAamN,kBAAkBP,GAEnD,IAAK,IAAIrrC,EAAI,EAAGq9B,EAAUsO,EAAatO,IAAYoO,EAAmBzrC,IAAKq9B,EAAUsO,EAAa,CAE9FA,EAAchE,EAAElJ,aAAamN,kBAAkBvO,GAE/C,MAAMwO,EAAelE,EAAEgC,yBAAyBhF,gBAAgBtH,GAC1DyO,EAAkBD,GAAgB7rC,GA74BrB,GA84BmB6rC,GAAgBC,GAG9CA,GACAnE,EAAEgC,yBAAyBnF,YAAYqH,GAG3ClE,EAAElJ,aAAarB,OAAOC,KAEtBA,EAAU0O,EAA2BpE,EAAGkE,GAEpCH,IAAgBL,IAChB1D,EAAEgC,yBAAyB9G,SAAWgJ,GAG1ClE,EAAEpK,YAAYyO,WAAWN,GACzB/D,EAAEpK,YAAY0O,YAAY5O,EAASqO,GACnCA,EAAcrO,EAEtB,CAEA,OAAOqO,CACX,CAGA,SAASK,EAA2BpE,EAAGkE,GACnC,MAAM7Z,EAAK2V,EAAEpK,YAAY8F,gBAAgBwI,EAAaxO,SAChD0F,EAAa4E,EAAEpK,YAAYje,cAAcusB,EAAa1oB,MAAMhiB,QAAS6wB,EAAI6Z,EAAa1oB,MAAMqO,OAKlG,OAHAmW,EAAElJ,aAAax5B,QAAQ4mC,EAAaxO,QAAS0F,GAC7C8I,EAAaxO,QAAU0F,EAEhBA,CACX,CAGA,SAASmJ,EAAiCvE,EAAGwE,EAAgBT,GACzD,GAAI/D,EAAEyE,gCAAgCD,GAClCxE,EAAE0E,qBAAqBX,OACpB,CACH,MAAMza,EAAK0W,EAAEpK,YAAYY,WAAWgO,GAC9Bna,EAAK2V,EAAEpK,YAAY8F,gBAAgB8I,GAErClb,IAAOzJ,EAAEoP,UAAY5E,IAAOtK,EAAGH,OAC/B4kB,EAAiBxE,EAAEpK,YAAYmC,mBAAmByM,IAGtDxE,EAAEpK,YAAY0O,YAAYE,EAAgBT,EAC9C,CACJ,CAGA,SAASY,EAA2B3E,EAAG0D,EAAeJ,GAClD,MAAMjZ,EAAK2V,EAAEpK,YAAY8F,gBAAgB4H,EAAuB5N,SAC1Dla,EAAQ8nB,EAAuB9nB,MAC/B4f,EAAa4E,EAAEpK,YAAYje,cAAc6D,EAAMhiB,QAAS6wB,EAAI7O,EAAMqO,OAExEmW,EAAE4E,YAAYlB,EAAetI,GAC7B4E,EAAEpK,YAAY0O,YAAYZ,EAAetI,GAEzC4E,EAAEgC,yBAAyBrF,2BAA2BvB,EAAYkI,EAAuB9nB,OACzFwkB,EAAEgC,yBAAyBnF,YAAYyG,GAEvCtD,EAAElJ,aAAarB,OAAO6N,EAAuB5N,SAC7CsK,EAAElJ,aAAa+N,YAAYnB,EAAetI,EAC9C,CAGA,SAAS0J,EAAmB9E,EAAGxkB,GAC3B,IAAI8nB,EAEJ,IAAK,IAAIjrC,EAAI,EAAGA,EAt9BO,IAu9BnBirC,EAAyBD,EAA+BrD,EAAGxkB,GAEtD8nB,GAH+BjrC,IAAK,CAOzC,MAAMqrC,EAAgBD,EAAsBzD,EAAGsD,GAE/C,IAAKI,EACD,MAGJ1D,EAAEgC,yBAAyB9G,SAAWoI,EAEtC,MAAMS,EAAcF,EAAY7D,EAAG0D,EAAeJ,EAAuB5N,SACnE8O,EAAiBxE,EAAElJ,aAAamN,kBAAkBX,EAAuB5N,SAE/EsK,EAAEpK,YAAYyO,WAAWN,GACzBQ,EAAiCvE,EAAGwE,EAAgBT,GACpDY,EAA2B3E,EAAG0D,EAAeJ,EACjD,CACJ,CAIA,SAAS1D,KAET,CAEA,SAAS1gB,GAAiB8gB,GACtBA,EAAElM,KAAK0J,EAAIte,iBACf,CAEA,SAAS4gB,GAAcE,EAAGxkB,GACtBwkB,EAAE/H,mBAAmBzc,EAAOwkB,EAAElJ,aAAa0B,oBAAsBwH,EAAElJ,aAAazB,QACpF,CAMA,SAAS+N,GAAwBpD,EAAGxkB,GAChCwkB,EAAE/H,mBAAmBzc,EAAOwkB,EAAEtoB,SAClC,CAEA,SAASipB,GAAiBX,EAAGxkB,GACzBwkB,EAAE3H,kBAAkB7c,EACxB,CAEA,SAASynB,GAAYjD,GACjBA,EAAE+E,SAAU,CAChB,CAkBA,SAAStF,GAAmBO,EAAGxkB,GAC3BwkB,EAAElM,KAAK0J,EAAIve,eAAgB,CAAE2V,aAAa,IAC1CoL,EAAEpK,YAAYuK,gBAAgBH,EAAEtoB,SAAUkI,EAAKjF,cAAcgB,QAC7DqkB,EAAEI,cAAgBrC,EAClBiC,EAAE9I,cAAc1b,EACpB,CAqBA,SAAS8kB,GAAgBN,EAAGxkB,GACxBwkB,EAAEhI,yBACFgI,EAAEI,cAAgBpC,EAClBgC,EAAE9I,cAAc1b,EACpB,CA4BA,SAAS+kB,GAAgBP,EAAGxkB,GACxBwkB,EAAEqC,mBAAmBxiB,EAAE8H,MACvBqY,EAAES,YAAcT,EAAElJ,aAAazB,QAC/B2K,EAAEI,cAAgBnC,EAClB+B,EAAE9I,cAAc1b,EACpB,CAIA,SAASolB,GAAeZ,EAAGxkB,GACvB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GACX8N,IAAOzJ,EAAEkM,MAAQzC,IAAOzJ,EAAEmM,UAAY1C,IAAOzJ,EAAEoM,SAAW3C,IAAOzJ,EAAE0N,MAAQjE,IAAOzJ,EAAEqI,MAC3F8X,EAAEtI,eAAelc,EAAOuE,EAAGH,MAC3BpE,EAAM0mB,gBAAiB,GAChB5Y,IAAOzJ,EAAEgL,MAChBmV,EAAEgF,qBAAqBxpB,EAAOmE,EAAUya,KAAK6K,QACtC3b,IAAOzJ,EAAEmO,SACZgS,EAAE3oC,QAAQsmC,iBACVqC,EAAEgF,qBAAqBxpB,EAAOmE,EAAUya,KAAK8K,UAE7ClF,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgBlC,GAEf5U,IAAOzJ,EAAEiO,UAAYxE,IAAOzJ,EAAEiP,MACrCkR,EAAEgF,qBAAqBxpB,EAAOmE,EAAUya,KAAK8K,SACtC5b,IAAOzJ,EAAE6O,OAChBsR,EAAEgF,qBAAqBxpB,EAAOmE,EAAUya,KAAK+K,aACtC7b,IAAOzJ,EAAEoP,UAChB+Q,EAAEnI,gBAAgBrc,EAAOuE,EAAGH,MAC5BogB,EAAEgC,yBAAyBxF,eAC3BwD,EAAEgB,YAAa,EACfhB,EAAEI,cAAgBrB,EAClBiB,EAAE8C,uBAAuB/D,IAClBzV,IAAOzJ,EAAE8H,KAChBqY,EAAElM,KAAK0J,EAAIhe,iCAEXkhB,GAAYV,EAAGxkB,EAEvB,CAEA,SAASqlB,GAAab,EAAGxkB,GACrB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAE8H,MACTqY,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgBjC,GACX7U,IAAOzJ,EAAE8G,MAAQ2C,IAAOzJ,EAAE+G,IAAM0C,IAAOzJ,EAAED,KAChD8gB,GAAYV,EAAGxkB,GACR8N,IAAOzJ,EAAEoP,UACZ+Q,EAAElJ,aAAasO,UAAY,GAC3BpF,EAAElJ,aAAauO,mCAEXrF,EAAElJ,aAAaqL,iBAAmBtiB,EAAEoP,UACpC+Q,EAAElM,KAAK0J,EAAIpe,uCAGf4gB,EAAElJ,aAAaiL,sBAAsBliB,EAAEoP,UACvC+Q,EAAEgC,yBAAyBlF,oBAC3BkD,EAAE6C,wBACF7C,EAAE2C,uBAKN3C,EAAElM,KAAK0J,EAAIre,iCAEnB,CAEA,SAASuhB,GAAYV,EAAGxkB,GACpBwkB,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgBjC,EAClB6B,EAAE9I,cAAc1b,EACpB,CAuCA,SAASslB,GAAoBd,EAAGxkB,GAC5B,MAAM8pB,EACF9pB,EAAMjiB,OAASomB,EAAUsa,UAAYuD,EAAIle,yBAA2Bke,EAAIne,kCAE5E2gB,EAAElM,KAAKwR,GACPtF,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgBnC,EAClB+B,EAAE9I,cAAc1b,EACpB,CAmDA,SAASulB,GAAef,EAAGxkB,GACvBwkB,EAAEqC,mBAAmBxiB,EAAE8G,MACvBqZ,EAAEI,cAAgBhC,EAClB4B,EAAE9I,cAAc1b,EACpB,CAIA,SAAS0lB,GAA0BlB,EAAGxkB,GAClCwkB,EAAEuF,uCACFvF,EAAE3H,kBAAkB7c,EACxB,CAEA,SAASylB,GAAgBjB,EAAGxkB,GACxBwkB,EAAEuF,uCACFvF,EAAE3H,kBAAkB7c,GACpBwkB,EAAEgB,YAAa,CACnB,CA4BA,SAASwE,GAAsBxF,EAAGxkB,GAC1BwkB,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN1F,EAAEpI,eAAepc,EAAOuE,EAAGH,KAC/B,CAgBA,SAAS+lB,GAAkB3F,EAAGxkB,GACtBwkB,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN1F,EAAEpI,eAAepc,EAAOuE,EAAGH,MAG3BogB,EAAE4F,iBAAkB,EACpB5F,EAAEgB,YAAa,CACnB,CAsFA,SAAS6E,GAAgB7F,EAAGxkB,GACxBwkB,EAAEuF,uCACFvF,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEgC,yBAAyBvF,YAAYuD,EAAElJ,aAAazB,QAAS7Z,EACnE,CAcA,SAASsqB,GAAqB9F,EAAGxkB,GAC7BwkB,EAAEuF,uCACFvF,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEgC,yBAAyBxF,eAC3BwD,EAAEgB,YAAa,CACnB,CAeA,SAAS+E,GAAmB/F,EAAGxkB,GAC3BwkB,EAAEuF,uCACFvF,EAAEtI,eAAelc,EAAOuE,EAAGH,MAC3BogB,EAAEgB,YAAa,EACfxlB,EAAM0mB,gBAAiB,CAC3B,CAeA,SAAS8D,GAAoBhG,EAAGxkB,GAC5BwkB,EAAEtI,eAAelc,EAAOuE,EAAGH,MAC3BpE,EAAM0mB,gBAAiB,CAC3B,CA6CA,SAAS+D,GAAsBjG,EAAGxkB,GAC9BwkB,EAAEgF,qBAAqBxpB,EAAOmE,EAAUya,KAAK8K,QACjD,CAoBA,SAASgB,GAAuBlG,EAAGxkB,GAC3BwkB,EAAElJ,aAAaqL,iBAAmBtiB,EAAEsO,QACpC6R,EAAElJ,aAAa1B,MAGnB4K,EAAEuF,uCACFvF,EAAEpI,eAAepc,EAAOuE,EAAGH,KAC/B,CAEA,SAASumB,GAAiBnG,EAAGxkB,GACrBwkB,EAAElJ,aAAaK,WAAWtX,EAAE0I,OAC5ByX,EAAElJ,aAAagL,yBAGnB9B,EAAEpI,eAAepc,EAAOuE,EAAGH,KAC/B,CAgDA,SAASwmB,GAAsBpG,EAAGxkB,GAC9BwkB,EAAEuF,uCACFvF,EAAEpI,eAAepc,EAAOuE,EAAGH,KAC/B,CAIA,SAAS4gB,GAAeR,EAAGxkB,GACvB,MAAM8N,EAAK9N,EAAMhiB,QAEjB,OAAQ8vB,EAAGhxB,QACP,KAAK,EACGgxB,IAAOzJ,EAAEgI,GAAKyB,IAAOzJ,EAAE2I,GAAKc,IAAOzJ,EAAE2G,GAAK8C,IAAOzJ,EAAEoJ,EACnD4c,GAAgB7F,EAAGxkB,GACZ8N,IAAOzJ,EAAEwI,EAChBmd,GAAsBxF,EAAGxkB,GAClB8N,IAAOzJ,EAAE4L,EA7NhC,SAAyBuU,EAAGxkB,GACxB,MAAM6qB,EAAqBrG,EAAEgC,yBAAyBjF,kCAAkCld,EAAE4L,GAEtF4a,IACAvB,EAAmB9E,EAAGxkB,GACtBwkB,EAAElJ,aAAarB,OAAO4Q,EAAmB3Q,SACzCsK,EAAEgC,yBAAyBnF,YAAYwJ,IAG3CrG,EAAEuF,uCACFvF,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEgC,yBAAyBvF,YAAYuD,EAAElJ,aAAazB,QAAS7Z,EACnE,CAkNgB8qB,CAAgBtG,EAAGxkB,GAEnB4qB,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEoH,IAAMqC,IAAOzJ,EAAEuI,IAAMkB,IAAOzJ,EAAEqJ,GACvCsc,GAAsBxF,EAAGxkB,GAClB8N,IAAOzJ,EAAEwH,IAAMiC,IAAOzJ,EAAEyH,IAAMgC,IAAOzJ,EAAE0H,IAAM+B,IAAOzJ,EAAE2H,IAAM8B,IAAOzJ,EAAE4H,IAAM6B,IAAOzJ,EAAE6H,GAxU3G,SAAsCsY,EAAGxkB,GACjCwkB,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN,MAAMpc,EAAK0W,EAAElJ,aAAaqL,eAEtB7Y,IAAOzJ,EAAEwH,IAAMiC,IAAOzJ,EAAEyH,IAAMgC,IAAOzJ,EAAE0H,IAAM+B,IAAOzJ,EAAE2H,IAAM8B,IAAOzJ,EAAE4H,IAAM6B,IAAOzJ,EAAE6H,IACpFsY,EAAElJ,aAAa1B,MAGnB4K,EAAEpI,eAAepc,EAAOuE,EAAGH,KAC/B,CA6TgB2mB,CAA6BvG,EAAGxkB,GACzB8N,IAAOzJ,EAAEkI,IAAMuB,IAAOzJ,EAAEkH,IAAMuC,IAAOzJ,EAAEqH,GAhS9D,SAAgC8Y,EAAGxkB,GAC/BwkB,EAAEgB,YAAa,EAEf,MAAM1X,EAAK9N,EAAMhiB,QAEjB,IAAK,IAAInB,EAAI2nC,EAAElJ,aAAavB,SAAUl9B,GAAK,EAAGA,IAAK,CAC/C,MAAMq9B,EAAUsK,EAAElJ,aAAatB,MAAMn9B,GAC/BmuC,EAAYxG,EAAEpK,YAAYY,WAAWd,GAC3C,IAAI+Q,EAAU,KAQd,GANInd,IAAOzJ,EAAEkI,IAAMye,IAAc3mB,EAAEkI,GAC/B0e,EAAU5mB,EAAEkI,GACJuB,IAAOzJ,EAAEkH,IAAMuC,IAAOzJ,EAAEqH,IAAQsf,IAAc3mB,EAAEkH,IAAMyf,IAAc3mB,EAAEqH,KAC9Euf,EAAUD,GAGVC,EAAS,CACTzG,EAAElJ,aAAa4P,oCAAoCD,GACnDzG,EAAElJ,aAAaiL,sBAAsB0E,GACrC,KACJ,CAEA,GAAID,IAAc3mB,EAAE6L,SAAW8a,IAAc3mB,EAAEmH,KAAOwf,IAAc3mB,EAAEwI,GAAK2X,EAAE2D,kBAAkBjO,GAC3F,KAER,CAEIsK,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN1F,EAAEpI,eAAepc,EAAOuE,EAAGH,KAC/B,CAiQgB+mB,CAAuB3G,EAAGxkB,GACnB8N,IAAOzJ,EAAEsH,IAAMmC,IAAOzJ,EAAEmJ,GAC/B6c,GAAgB7F,EAAGxkB,GACZ8N,IAAOzJ,EAAE+G,GAChBmf,GAAmB/F,EAAGxkB,GACf8N,IAAOzJ,EAAE+H,GAnKhC,SAA0BoY,EAAGxkB,GACrBwkB,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN1F,EAAEtI,eAAelc,EAAOuE,EAAGH,MAC3BogB,EAAEgB,YAAa,EACfxlB,EAAM0mB,gBAAiB,CAC3B,CA4JgB0E,CAAiB5G,EAAGxkB,GACb8N,IAAOzJ,EAAEyO,GAChB6X,GAAiBnG,EAAGxkB,GACb8N,IAAOzJ,EAAE2O,IAAMlF,IAAOzJ,EAAE0O,GArF/C,SAA0ByR,EAAGxkB,GACrBwkB,EAAElJ,aAAaK,WAAWtX,EAAE0I,OAC5ByX,EAAElJ,aAAa4P,oCAAoC7mB,EAAE4O,KAGzDuR,EAAEpI,eAAepc,EAAOuE,EAAGH,KAC/B,CAgFgBinB,CAAiB7G,EAAGxkB,GACb8N,IAAOzJ,EAAEwP,IAAM/F,IAAOzJ,EAAEuP,IAAM9F,IAAOzJ,EAAE0P,IAC9C6W,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEmH,KAAOsC,IAAOzJ,EAAE2M,KAAOlD,IAAOzJ,EAAEgO,IACzC2X,GAAsBxF,EAAGxkB,GAClB8N,IAAOzJ,EAAEyI,IAChBqd,GAAkB3F,EAAGxkB,GACd8N,IAAOzJ,EAAE4G,IAChBof,GAAgB7F,EAAGxkB,GACZ8N,IAAOzJ,EAAEiI,KAAOwB,IAAOzJ,EAAE4P,IAChCsW,GAAmB/F,EAAGxkB,GACf8N,IAAOzJ,EAAE6P,IA9JhC,SAA2BsQ,EAAGxkB,GACtBwkB,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN1F,EAAEuF,uCACFvF,EAAEgB,YAAa,EACfhB,EAAEgF,qBAAqBxpB,EAAOmE,EAAUya,KAAK8K,QACjD,CAuJgB4B,CAAkB9G,EAAGxkB,GACd8N,IAAOzJ,EAAE6K,IAzEhC,SAA2BsV,EAAGxkB,GAC1BwkB,EAAEuF,uCAEFhI,EAAezT,oBAAoBtO,GACnC+hB,EAAevT,oBAAoBxO,GAE/BA,EAAMurB,YACN/G,EAAEtI,eAAelc,EAAOuE,EAAG2K,KAE3BsV,EAAEpI,eAAepc,EAAOuE,EAAG2K,KAG/BlP,EAAM0mB,gBAAiB,CAC3B,CA6DgB8E,CAAkBhH,EAAGxkB,GACd8N,IAAOzJ,EAAE4O,IAChB0X,GAAiBnG,EAAGxkB,GACb8N,IAAOzJ,EAAEuM,KAChBga,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAED,KApZzB,SAA4BogB,EAAGxkB,GACM,IAA7BwkB,EAAElJ,aAAasO,WACfpF,EAAEpK,YAAYqR,gBAAgBjH,EAAElJ,aAAatB,MAAM,GAAIha,EAAMqO,MAErE,CAiZgBqd,CAAmBlH,EAAGxkB,GACf8N,IAAOzJ,EAAEkM,MAAQzC,IAAOzJ,EAAE0N,MAAQjE,IAAOzJ,EAAEqI,KAClD0Y,GAAeZ,EAAGxkB,GACX8N,IAAOzJ,EAAE8G,KAlZhC,SAA4BqZ,EAAGxkB,GAC3B,MAAM2rB,EAAcnH,EAAElJ,aAAasQ,mCAE/BD,GAA4C,IAA7BnH,EAAElJ,aAAasO,YAC9BpF,EAAEgB,YAAa,EACfhB,EAAEpK,YAAYqR,gBAAgBE,EAAa3rB,EAAMqO,OAEzD,CA4YgBwd,CAAmBrH,EAAGxkB,GACf8N,IAAOzJ,EAAE2N,MAAQlE,IAAOzJ,EAAEoI,KACjCud,GAAsBxF,EAAGxkB,GAClB8N,IAAOzJ,EAAEgN,KAhWhC,SAA4BmT,EAAGxkB,GAC3B,MAAM8rB,EAAatH,EAAElJ,aAAasO,UAAY,EAEzCpF,EAAEuH,cAAeD,IACdtH,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN1F,EAAEpI,eAAepc,EAAOuE,EAAGH,MAEtB0nB,IACDtH,EAAEuH,YAAcvH,EAAElJ,aAAazB,SAG3C,CAmVgBmS,CAAmBxH,EAAGxkB,GACf8N,IAAOzJ,EAAEiH,MAAQwC,IAAOzJ,EAAE0J,KACjCsc,GAAgB7F,EAAGxkB,GACZ8N,IAAOzJ,EAAEsI,KA1QhC,SAA4B6X,EAAGxkB,GAC3BwkB,EAAEuF,uCAEEvF,EAAElJ,aAAaK,WAAWtX,EAAEsI,QAC5B2c,EAAmB9E,EAAGxkB,GACtBwkB,EAAEuF,wCAGNvF,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEgC,yBAAyBvF,YAAYuD,EAAElJ,aAAazB,QAAS7Z,EACnE,CAiQgBisB,CAAmBzH,EAAGxkB,GACf8N,IAAOzJ,EAAE+L,KAChBma,GAAmB/F,EAAGxkB,GACf8N,IAAOzJ,EAAE8N,KAnHhC,SAA4BqS,EAAGxkB,GAC3BwkB,EAAEuF,uCAEFhI,EAAe3T,uBAAuBpO,GACtC+hB,EAAevT,oBAAoBxO,GAE/BA,EAAMurB,YACN/G,EAAEtI,eAAelc,EAAOuE,EAAGwK,QAE3ByV,EAAEpI,eAAepc,EAAOuE,EAAGwK,QAG/B/O,EAAM0mB,gBAAiB,CAC3B,CAuGgBwF,CAAmB1H,EAAGxkB,GACf8N,IAAOzJ,EAAEoI,KA7HhC,SAA4B+X,EAAGxkB,GACvBwkB,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN1F,EAAEpI,eAAepc,EAAOuE,EAAGH,KAC/B,CAwHgB+nB,CAAmB3H,EAAGxkB,GACf8N,IAAOzJ,EAAE8H,MAChBye,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEiP,OAASxF,IAAOzJ,EAAEgL,MAC3B+V,GAAeZ,EAAGxkB,GACX8N,IAAOzJ,EAAEiM,MAChB0Z,GAAsBxF,EAAGxkB,GAClB8N,IAAOzJ,EAAE4I,MAChBod,GAAgB7F,EAAGxkB,GACZ8N,IAAOzJ,EAAEkJ,MA5QhC,SAA6BiX,EAAGxkB,GAExBwkB,EAAEpK,YAAYla,gBAAgBskB,EAAEtoB,YAAckI,EAAKjF,cAAcgB,QACjEqkB,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAElC2X,EAAE0F,iBAGN1F,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEgB,YAAa,EACfhB,EAAEI,cAAgB9B,CACtB,CAkQgBsJ,CAAoB5H,EAAGxkB,GAChB8N,IAAOzJ,EAAEuH,MAChB2e,GAAmB/F,EAAGxkB,GACf8N,IAAOzJ,EAAEsN,MA5PhC,SAA6B6S,EAAGxkB,GAC5BwkB,EAAEuF,uCACFvF,EAAEtI,eAAelc,EAAOuE,EAAGH,MAE3B,MAAMioB,EAAYloB,EAAU6J,aAAahO,EAAOyE,EAAMoL,MAEjDwc,GAAaA,EAAUvtC,gBAAkBujC,IAC1CmC,EAAEgB,YAAa,GAGnBxlB,EAAM0mB,gBAAiB,CAC3B,CAkPgB4F,CAAoB9H,EAAGxkB,GAChB8N,IAAOzJ,EAAEuO,OAAS9E,IAAOzJ,EAAE2P,MAClCwW,GAAoBhG,EAAGxkB,GAChB8N,IAAOzJ,EAAEqN,MApOhC,SAA6B8S,EAAGxkB,GAC5BA,EAAMhiB,QAAUqmB,EAAEiI,IAClBie,GAAmB/F,EAAGxkB,EAC1B,CAkOgBusB,CAAoB/H,EAAGxkB,GAChB8N,IAAOzJ,EAAEiN,OAASxD,IAAOzJ,EAAEmP,OAAS1F,IAAOzJ,EAAEsP,OAAS7F,IAAOzJ,EAAEyP,OACtE8W,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAE6O,OACTkS,GAAeZ,EAAGxkB,GAElB8N,IAAOzJ,EAAEgH,QACTyC,IAAOzJ,EAAE8M,QACTrD,IAAOzJ,EAAE+M,QACTtD,IAAOzJ,EAAEmN,QACT1D,IAAOzJ,EAAEoN,QACT3D,IAAOzJ,EAAE0M,OAETiZ,GAAsBxF,EAAGxkB,GAClB8N,IAAOzJ,EAAEqM,OA1VhC,SAA8B8T,EAAGxkB,GACzBwkB,EAAElJ,aAAaK,WAAWtX,EAAEqM,UAC5B8T,EAAElJ,aAAagL,yBACf9B,EAAElJ,aAAaiL,sBAAsBliB,EAAEqM,SAG3C8T,EAAEuF,uCACFvF,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEgB,YAAa,CACnB,CAkVgBgH,CAAqBhI,EAAGxkB,GACjB8N,IAAOzJ,EAAE+I,QAAUU,IAAOzJ,EAAE8I,OACnCkd,GAAgB7F,EAAGxkB,GACZ8N,IAAOzJ,EAAE8L,QAAUrC,IAAOzJ,EAAEoO,OACnC6X,GAAqB9F,EAAGxkB,GACjB8N,IAAOzJ,EAAEwN,OAChB0Y,GAAmB/F,EAAGxkB,GACf8N,IAAOzJ,EAAEgP,OAChBmX,GAAoBhG,EAAGxkB,GAChB8N,IAAOzJ,EAAEuN,OAxOhC,SAA8B4S,EAAGxkB,GAC7BwkB,EAAEgB,YAAa,EACfhB,EAAEgF,qBAAqBxpB,EAAOmE,EAAUya,KAAK8K,QACjD,CAsOgB+C,CAAqBjI,EAAGxkB,GACjB8N,IAAOzJ,EAAE+O,OA/NhC,SAA8BoR,EAAGxkB,GAC7BwkB,EAAEuF,uCACFvF,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEgB,YAAa,EAGXhB,EAAEI,gBAAkB9B,GACpB0B,EAAEI,gBAAkB5B,GACpBwB,EAAEI,gBAAkB1B,GACpBsB,EAAEI,gBAAkBzB,GACpBqB,EAAEI,gBAAkBxB,EAEpBoB,EAAEI,cAAgBtB,EAElBkB,EAAEI,cAAgBvB,CAE1B,CAgNgBqJ,CAAqBlI,EAAGxkB,GACjB8N,IAAOzJ,EAAEsO,OAChB+X,GAAuBlG,EAAGxkB,GAE1B4qB,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEoM,QACT2U,GAAeZ,EAAGxkB,GAElB8N,IAAOzJ,EAAEyM,SACThD,IAAOzJ,EAAE6L,SACTpC,IAAOzJ,EAAEgM,SACTvC,IAAOzJ,EAAE8O,SACTrF,IAAOzJ,EAAEkP,QAETyW,GAAsBxF,EAAGxkB,GAClB8N,IAAOzJ,EAAEmI,QAChB2d,GAAkB3F,EAAGxkB,GACd8N,IAAOzJ,EAAE6N,QAChBoY,GAAqB9F,EAAGxkB,GACjB8N,IAAOzJ,EAAEkO,QAChBkY,GAAsBjG,EAAGxkB,GAClB8N,IAAOzJ,EAAEsM,SAChBia,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEmM,SACT4U,GAAeZ,EAAGxkB,GACX8N,IAAOzJ,EAAEkN,SAlfhC,SAAgCiT,EAAGxkB,GAC/B,MAAM2rB,EAAcnH,EAAElJ,aAAasQ,mCAE/BpH,EAAEgB,YAAcmG,IAChBnH,EAAEpK,YAAYyO,WAAW8C,GACzBnH,EAAElJ,aAAaxB,wBACf0K,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgBnB,EAE1B,CA0egBkJ,CAAuBnI,EAAGxkB,GACnB8N,IAAOzJ,EAAE4M,SAChB+Y,GAAsBxF,EAAGxkB,GAClB8N,IAAOzJ,EAAEqP,SAvShC,SAAgC8Q,EAAGxkB,GAC/BwkB,EAAEpI,eAAepc,EAAOuE,EAAGH,MAG3BogB,EAAE4F,iBAAkB,EACpB5F,EAAEvL,UAAU8F,MAAQ5a,EAAUya,KAAK6K,OACnCjF,EAAEsB,sBAAwBtB,EAAEI,cAC5BJ,EAAEgB,YAAa,EACfhB,EAAEI,cAAgB/B,CACtB,CA+RgB+J,CAAuBpI,EAAGxkB,GACnB8N,IAAOzJ,EAAEoP,SAChB2R,GAAeZ,EAAGxkB,GACX8N,IAAOzJ,EAAEmO,SACZgS,EAAE3oC,QAAQsmC,iBACVsI,GAAsBjG,EAAGxkB,GAEzB4qB,GAAsBpG,EAAGxkB,GAEtB8N,IAAOzJ,EAAEqO,SAChBgY,GAAuBlG,EAAGxkB,GACnB8N,IAAOzJ,EAAEwM,UAChB+Z,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEwO,UA1azB,SAAiC2R,EAAGxkB,GAC5BwkB,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IAClC2X,EAAE0F,iBAGN1F,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEvL,UAAU8F,MAAQ5a,EAAUya,KAAK/L,SACvC,CAoagBga,CAAwBrI,EAAGxkB,GAE3B4qB,GAAsBpG,EAAGxkB,GAG7B,MAEJ,KAAK,GACG8N,IAAOzJ,EAAE6G,YAAc4C,IAAOzJ,EAAE6M,WAChC8Y,GAAsBxF,EAAGxkB,GAEzB4qB,GAAsBpG,EAAGxkB,GAG7B,MAEJ,QACI4qB,GAAsBpG,EAAGxkB,GAErC,CAeA,SAAS8sB,GAAoBtI,EAAGxkB,GAC5B,MAAM8N,EAAK9N,EAAMhiB,QAEbwmC,EAAElJ,aAAaK,WAAW7N,KAC1B0W,EAAElJ,aAAagL,yBACf9B,EAAElJ,aAAaiL,sBAAsBzY,GAE7C,CAoDA,SAASif,GAAmBvI,EAAGxkB,GAC3B,MAAM8N,EAAK9N,EAAMhiB,QAEbwmC,EAAElJ,aAAaK,WAAW7N,KAC1B0W,EAAElJ,aAAagL,yBACf9B,EAAElJ,aAAaiL,sBAAsBzY,GACrC0W,EAAEgC,yBAAyBlF,oBAEnC,CASA,SAAS0G,GAAoBxD,EAAGxkB,GAC5B,MAAM8N,EAAK9N,EAAMhiB,QAEjB,IAAK,IAAInB,EAAI2nC,EAAElJ,aAAavB,SAAUl9B,EAAI,EAAGA,IAAK,CAC9C,MAAMq9B,EAAUsK,EAAElJ,aAAatB,MAAMn9B,GAErC,GAAI2nC,EAAEpK,YAAYY,WAAWd,KAAapM,EAAI,CAC1C0W,EAAElJ,aAAa4P,oCAAoCpd,GACnD0W,EAAElJ,aAAa8M,sBAAsBlO,GACrC,KACJ,CAEA,GAAIsK,EAAE2D,kBAAkBjO,GACpB,KAER,CACJ,CAIA,SAASyL,GAAanB,EAAGxkB,GACrB,MAAM8N,EAAK9N,EAAMhiB,QAEjB,OAAQ8vB,EAAGhxB,QACP,KAAK,EACGgxB,IAAOzJ,EAAE4L,GAAKnC,IAAOzJ,EAAE2G,GAAK8C,IAAOzJ,EAAEgI,GAAKyB,IAAOzJ,EAAE2I,GAAKc,IAAOzJ,EAAEoJ,EACjE6b,EAAmB9E,EAAGxkB,GACf8N,IAAOzJ,EAAEwI,EA3EhC,SAAuB2X,GACdA,EAAElJ,aAAa2O,iBAAiB5lB,EAAEwI,IACnC2X,EAAEqC,mBAAmBxiB,EAAEwI,GAG3B2X,EAAE0F,gBACN,CAsEgB8C,CAAcxI,GAEdwD,GAAoBxD,EAAGxkB,GAG3B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEoH,IAAMqC,IAAOzJ,EAAEqJ,IAAMI,IAAOzJ,EAAEuI,GACvCkgB,GAAoBtI,EAAGxkB,GAChB8N,IAAOzJ,EAAEkI,GA9EhC,SAAwBiY,GAChBA,EAAElJ,aAAa2R,mBAAmB5oB,EAAEkI,MACpCiY,EAAElJ,aAAa4P,oCAAoC7mB,EAAEkI,IACrDiY,EAAElJ,aAAaiL,sBAAsBliB,EAAEkI,IAE/C,CA0EgB2gB,CAAe1I,GACR1W,IAAOzJ,EAAEkH,IAAMuC,IAAOzJ,EAAEqH,GAzE/C,SAAwB8Y,EAAGxkB,GACvB,MAAM8N,EAAK9N,EAAMhiB,QAEbwmC,EAAElJ,aAAaK,WAAW7N,KAC1B0W,EAAElJ,aAAa4P,oCAAoCpd,GACnD0W,EAAElJ,aAAaiL,sBAAsBzY,GAE7C,CAmEgBqf,CAAe3I,EAAGxkB,GACX8N,IAAOzJ,EAAEwH,IAAMiC,IAAOzJ,EAAEyH,IAAMgC,IAAOzJ,EAAE0H,IAAM+B,IAAOzJ,EAAE2H,IAAM8B,IAAOzJ,EAAE4H,IAAM6B,IAAOzJ,EAAE6H,GAlE3G,SAAoCsY,GAC5BA,EAAElJ,aAAa8R,6BACf5I,EAAElJ,aAAagL,yBACf9B,EAAElJ,aAAa+R,+BAEvB,CA8DgBC,CAA2B9I,GACpB1W,IAAOzJ,EAAE+G,GAnDhC,SAAwBoZ,GACpBA,EAAEuF,uCACFvF,EAAEqC,mBAAmBxiB,EAAE+G,IACvBoZ,EAAElJ,aAAa1B,MACf4K,EAAEgB,YAAa,CACnB,CA+CgB+H,CAAe/I,GACR1W,IAAOzJ,EAAEsH,IAAMmC,IAAOzJ,EAAEmJ,GAC/B8b,EAAmB9E,EAAGxkB,GAEtBgoB,GAAoBxD,EAAGxkB,GAG3B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAE4G,IACTqe,EAAmB9E,EAAGxkB,GACf8N,IAAOzJ,EAAE2M,KAAOlD,IAAOzJ,EAAEmH,KAAOsC,IAAOzJ,EAAEgO,KAAOvE,IAAOzJ,EAAEyI,IAChEggB,GAAoBtI,EAAGxkB,GAEvBgoB,GAAoBxD,EAAGxkB,GAG3B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAE8G,KA3JzB,SAA0BqZ,GAClBA,EAAElJ,aAAaK,WAAWtX,EAAE8G,QAC5BqZ,EAAEI,cAAgBpB,EAE1B,CAwJgBgK,CAAiBhJ,GACV1W,IAAOzJ,EAAED,KAvJhC,SAA0BogB,EAAGxkB,GACrBwkB,EAAElJ,aAAaK,WAAWtX,EAAE8G,QAC5BqZ,EAAEI,cAAgBpB,EAClBgB,EAAE9I,cAAc1b,GAExB,CAmJgBytB,CAAiBjJ,EAAGxkB,GACb8N,IAAOzJ,EAAEgN,KAzIhC,SAA0BmT,GACtB,MAAMsH,EAAatH,EAAElJ,aAAasO,UAAY,EACxCmC,EAAcvH,EAAEuH,YAEjBD,IACDtH,EAAEuH,YAAc,OAGfA,GAAeD,IAAetH,EAAElJ,aAAaK,WAAWtX,EAAEgN,QAC3DmT,EAAElJ,aAAagL,yBAEXwF,EACAtH,EAAElJ,aAAaiL,sBAAsBliB,EAAEgN,MAEvCmT,EAAElJ,aAAarB,OAAO8R,GAGlC,CAyHgB2B,CAAiBlJ,GACV1W,IAAOzJ,EAAEiH,MAAQwC,IAAOzJ,EAAE0J,MAAQD,IAAOzJ,EAAEsI,KAClD2c,EAAmB9E,EAAGxkB,GACf8N,IAAOzJ,EAAE2N,MAAQlE,IAAOzJ,EAAEoI,KACjCqgB,GAAoBtI,EAAGxkB,GAEvBgoB,GAAoBxD,EAAGxkB,GAG3B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEiM,MACTwc,GAAoBtI,EAAGxkB,GAChB8N,IAAOzJ,EAAE4I,MAChBqc,EAAmB9E,EAAGxkB,GAEtBgoB,GAAoBxD,EAAGxkB,GAG3B,MAEJ,KAAK,EAEG8N,IAAOzJ,EAAEgH,QACTyC,IAAOzJ,EAAE8M,QACTrD,IAAOzJ,EAAE+M,QACTtD,IAAOzJ,EAAEmN,QACT1D,IAAOzJ,EAAEoN,QACT3D,IAAOzJ,EAAE0M,OAET+b,GAAoBtI,EAAGxkB,GAChB8N,IAAOzJ,EAAE8L,QAAUrC,IAAOzJ,EAAEoO,OACnCsa,GAAmBvI,EAAGxkB,GACf8N,IAAOzJ,EAAE+I,QAAUU,IAAOzJ,EAAE8I,OACnCmc,EAAmB9E,EAAGxkB,GAEtBgoB,GAAoBxD,EAAGxkB,GAG3B,MAEJ,KAAK,EAEG8N,IAAOzJ,EAAE6L,SACTpC,IAAOzJ,EAAEgM,SACTvC,IAAOzJ,EAAEyM,SACThD,IAAOzJ,EAAE8O,SACTrF,IAAOzJ,EAAEkP,SACTzF,IAAOzJ,EAAEmI,QAETsgB,GAAoBtI,EAAGxkB,GAChB8N,IAAOzJ,EAAE6N,QAChB6a,GAAmBvI,EAAGxkB,GAEtBgoB,GAAoBxD,EAAGxkB,GAG3B,MAEJ,KAAK,EACG8N,IAAOzJ,EAAE4M,SACT6b,GAAoBtI,EAAGxkB,GAChB8N,IAAOzJ,EAAEoP,SAChB4R,GAAab,EAAGxkB,GAEhBgoB,GAAoBxD,EAAGxkB,GAG3B,MAEJ,KAAK,GACG8N,IAAOzJ,EAAE6G,YAAc4C,IAAOzJ,EAAE6M,WAChC4b,GAAoBtI,EAAGxkB,GAEvBgoB,GAAoBxD,EAAGxkB,GAG3B,MAEJ,QACIgoB,GAAoBxD,EAAGxkB,GAEnC,CAEA,SAAS4lB,GAAUpB,EAAGxkB,GACdwkB,EAAEmJ,2BAA6B,EAC/BpG,GAAc/C,EAAGxkB,GAEjBwkB,EAAE+E,SAAU,CAEpB,CAsBA,SAASxD,GAAiBvB,EAAGxkB,GACzB,MAAM4tB,EAAQpJ,EAAElJ,aAAaqL,eAEzBiH,IAAUvpB,EAAEkJ,OAASqgB,IAAUvpB,EAAEmP,OAASoa,IAAUvpB,EAAEsP,OAASia,IAAUvpB,EAAEyP,OAAS8Z,IAAUvpB,EAAE0P,IAChGyQ,EAAE0B,uBAAyB,GAC3B1B,EAAE2B,uCAAwC,EAC1C3B,EAAEsB,sBAAwBtB,EAAEI,cAC5BJ,EAAEI,cAAgB7B,EAClByB,EAAE9I,cAAc1b,IAEhB6tB,GAAarJ,EAAGxkB,EAExB,CA+DA,SAASgmB,GAAgBxB,EAAGxkB,GACxB,MAAM8N,EAAK9N,EAAMhiB,QAEjB,OAAQ8vB,EAAGhxB,QACP,KAAK,EACGgxB,IAAOzJ,EAAEuP,IAAM9F,IAAOzJ,EAAEwP,IAAM/F,IAAOzJ,EAAE0P,GAxCvD,SAA2ByQ,EAAGxkB,GAC1BwkB,EAAElJ,aAAawS,0BACftJ,EAAEqC,mBAAmBxiB,EAAEmP,OACvBgR,EAAEI,cAAgB1B,EAClBsB,EAAE9I,cAAc1b,EACpB,CAoCgB+tB,CAAkBvJ,EAAGxkB,GAErB6tB,GAAarJ,EAAGxkB,GAGpB,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEuM,IA9DzB,SAA4B4T,EAAGxkB,GAC3BwkB,EAAElJ,aAAawS,0BACftJ,EAAEqC,mBAAmBxiB,EAAEwM,UACvB2T,EAAEI,cAAgB3B,EAClBuB,EAAE9I,cAAc1b,EACpB,CA0DgBguB,CAAmBxJ,EAAGxkB,GAEtB6tB,GAAarJ,EAAGxkB,GAGpB,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEgN,KA/BzB,SAA6BmT,EAAGxkB,GACvBwkB,EAAEuH,aAA4C,IAA7BvH,EAAElJ,aAAasO,YACjCpF,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEuH,YAAcvH,EAAElJ,aAAazB,QAC/B2K,EAAElJ,aAAa1B,MAEvB,CA0BgBqU,CAAoBzJ,EAAGxkB,GAEvB6tB,GAAarJ,EAAGxkB,GAGpB,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEkJ,MA5DzB,SAA8BiX,EAAGxkB,GACzBwkB,EAAElJ,aAAa+K,gBAAgBhiB,EAAEkJ,SACjCiX,EAAElJ,aAAaiL,sBAAsBliB,EAAEkJ,OACvCiX,EAAE2C,sBACF3C,EAAE9I,cAAc1b,GAExB,CAuDgBkuB,CAAqB1J,EAAGxkB,GACjB8N,IAAOzJ,EAAEiP,MAChB8R,GAAeZ,EAAGxkB,GACX8N,IAAOzJ,EAAEmP,OAAS1F,IAAOzJ,EAAEsP,OAAS7F,IAAOzJ,EAAEyP,MA7EpE,SAA8B0Q,EAAGxkB,GAC7BwkB,EAAElJ,aAAawS,0BACftJ,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgB1B,CACtB,CA0EgBiL,CAAqB3J,EAAGxkB,GACjB8N,IAAOzJ,EAAEsN,MA1DhC,SAA8B6S,EAAGxkB,GAC7B,MAAMqsB,EAAYloB,EAAU6J,aAAahO,EAAOyE,EAAMoL,MAElDwc,GAAaA,EAAUvtC,gBAAkBujC,EACzCmC,EAAEtI,eAAelc,EAAOuE,EAAGH,MAE3BypB,GAAarJ,EAAGxkB,GAGpBA,EAAM0mB,gBAAiB,CAC3B,CAiDgB0H,CAAqB5J,EAAGxkB,GAExB6tB,GAAarJ,EAAGxkB,GAGpB,MAEJ,KAAK,EACG8N,IAAOzJ,EAAE6O,OACTkS,GAAeZ,EAAGxkB,GAElB6tB,GAAarJ,EAAGxkB,GAGpB,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEsM,QArHzB,SAAgC6T,EAAGxkB,GAC/BwkB,EAAElJ,aAAawS,0BACftJ,EAAEgC,yBAAyBxF,eAC3BwD,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgB5B,CACtB,CAiHgBqL,CAAuB7J,EAAGxkB,GAE1B6tB,GAAarJ,EAAGxkB,GAGpB,MAEJ,KAAK,EACG8N,IAAOzJ,EAAEwM,SAvHzB,SAAiC2T,EAAGxkB,GAChCwkB,EAAElJ,aAAawS,0BACftJ,EAAEpI,eAAepc,EAAOuE,EAAGH,MAC3BogB,EAAEI,cAAgB3B,CACtB,CAoHgBqL,CAAwB9J,EAAGxkB,GACpB8N,IAAOzJ,EAAEoP,SAChB2R,GAAeZ,EAAGxkB,GAElB6tB,GAAarJ,EAAGxkB,GAGpB,MAEJ,QACI6tB,GAAarJ,EAAGxkB,GAE5B,CAEA,SAASimB,GAAczB,EAAGxkB,GACtB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAEkJ,MACLiX,EAAElJ,aAAa+K,gBAAgBhiB,EAAEkJ,SACjCiX,EAAElJ,aAAaiL,sBAAsBliB,EAAEkJ,OACvCiX,EAAE2C,uBAECrZ,IAAOzJ,EAAEoP,SAChB4R,GAAab,EAAGxkB,GAEhB8N,IAAOzJ,EAAE8G,MACT2C,IAAOzJ,EAAEsM,SACT7C,IAAOzJ,EAAEuM,KACT9C,IAAOzJ,EAAEwM,UACT/C,IAAOzJ,EAAED,MACT0J,IAAOzJ,EAAEmP,OACT1F,IAAOzJ,EAAEuP,IACT9F,IAAOzJ,EAAEsP,OACT7F,IAAOzJ,EAAEwP,IACT/F,IAAOzJ,EAAEyP,OACThG,IAAOzJ,EAAE0P,IAET8Z,GAAarJ,EAAGxkB,EAExB,CAEA,SAAS6tB,GAAarJ,EAAGxkB,GACrB,MAAMuuB,EAA4B/J,EAAEgK,uBAEpChK,EAAEgK,wBAAyB,EAC3BhK,EAAEiK,wBAAwBzuB,GAC1BwkB,EAAEgK,uBAAyBD,CAC/B,CAaA,SAASnI,GAAiB5B,EAAGxkB,GACzB,IAAInjB,EAAI,EAER,GAAI2nC,EAAE2B,sCACF,KAAOtpC,EAAI2nC,EAAE0B,uBAAuBppC,OAAQD,IACxCgxC,GAAarJ,EAAGA,EAAE0B,uBAAuBrpC,SAG7C,KAAOA,EAAI2nC,EAAE0B,uBAAuBppC,OAAQD,IACxC2nC,EAAE3H,kBAAkB2H,EAAE0B,uBAAuBrpC,IAIrD2nC,EAAEI,cAAgBJ,EAAEsB,sBACpBtB,EAAE9I,cAAc1b,EACpB,CA4FA,SAASymB,GAAmBjC,EAAGxkB,GACvBwkB,EAAElJ,aAAaqL,iBAAmBtiB,EAAEwM,WACpC2T,EAAElJ,aAAa1B,MACf4K,EAAEI,cAAgB9B,EAClB0B,EAAE9I,cAAc1b,GAExB,CAuKA,SAASinB,GAAiBzC,EAAGxkB,GACzB,MAAM8N,EAAK9N,EAAMhiB,QAEb8vB,IAAOzJ,EAAED,KACT4gB,GAAeR,EAAGxkB,GACX8N,IAAOzJ,EAAEsO,QACZ6R,EAAElJ,aAAaqL,iBAAmBtiB,EAAEsO,QACpC6R,EAAElJ,aAAa1B,MAGnB4K,EAAEpI,eAAepc,EAAOuE,EAAGH,OACpB0J,IAAOzJ,EAAEqO,UACZ8R,EAAElJ,aAAaqL,iBAAmBtiB,EAAEsO,QACpC6R,EAAElJ,aAAa1B,MAGf4K,EAAElJ,aAAaqL,iBAAmBtiB,EAAEqO,UACpC8R,EAAElJ,aAAa1B,MAGnB4K,EAAEpI,eAAepc,EAAOuE,EAAGH,OACpB0J,IAAOzJ,EAAEsN,OAAS7D,IAAOzJ,EAAEwN,QAAU/D,IAAOzJ,EAAEqP,UAAY5F,IAAOzJ,EAAE+O,OACtEoR,EAAElJ,aAAaoT,iBAAiBrqB,EAAE+O,UAClCoR,EAAElJ,aAAaiL,sBAAsBliB,EAAE+O,QACvCoR,EAAE2C,sBAEErZ,IAAOzJ,EAAE+O,QACToR,EAAE9I,cAAc1b,IAGjB8N,IAAOzJ,EAAE6O,QAAUpF,IAAOzJ,EAAEoP,UACnC2R,GAAeZ,EAAGxkB,EAE1B,CAEA,SAASknB,GAAe1C,EAAGxkB,GACvB,MAAM8N,EAAK9N,EAAMhiB,QAEjB,GAAI8vB,IAAOzJ,EAAEqO,SAAU,CACnB,MAAMic,EAAkBnK,EAAElJ,aAAatB,MAAMwK,EAAElJ,aAAavB,SAAW,GACjE6U,EAAoBD,GAAmBnK,EAAEpK,YAAYY,WAAW2T,GAElEnK,EAAElJ,aAAaqL,iBAAmBtiB,EAAEsO,QAAUic,IAAsBvqB,EAAEqO,UACtE8R,EAAElJ,aAAa1B,MAGf4K,EAAElJ,aAAaqL,iBAAmBtiB,EAAEqO,UACpC8R,EAAElJ,aAAa1B,KAEvB,MAAW9L,IAAOzJ,EAAEsO,OACZ6R,EAAElJ,aAAaqL,iBAAmBtiB,EAAEsO,QACpC6R,EAAElJ,aAAa1B,MAEZ9L,IAAOzJ,EAAE+O,QAAUoR,EAAElJ,aAAaoT,iBAAiBrqB,EAAE+O,SAC5DoR,EAAElJ,aAAaiL,sBAAsBliB,EAAE+O,QACvCoR,EAAE2C,uBACKrZ,IAAOzJ,EAAEoP,UAChB4R,GAAab,EAAGxkB,EAExB,CAkFA,SAASunB,GAAc/C,EAAGxkB,GAClBwkB,EAAElJ,aAAasO,UAAY,GAC3BpF,EAAElJ,aAAaiL,sBAAsBliB,EAAEoP,UACvC+Q,EAAEgC,yBAAyBlF,oBAC3BkD,EAAE6C,wBACF7C,EAAE2C,sBACF3C,EAAE9I,cAAc1b,IAEhBwkB,EAAE+E,SAAU,CAEpB,CAsBA,SAAS/B,GAAehD,EAAGxkB,GACvBwkB,EAAEI,cAAgBhC,EAClB4B,EAAE9I,cAAc1b,EACpB,CAyDA,SAAS2nB,GAAoBnD,EAAGxkB,GAC5BwkB,EAAEI,cAAgBhC,EAClB4B,EAAE9I,cAAc1b,EACpB,CA98DA3jB,EAAOC,QAnjBP,MACIZ,YAAYG,GACR+b,KAAK/b,QAAUgmC,EAAaK,EAAiBrmC,GAE7C+b,KAAKwiB,YAAcxiB,KAAK/b,QAAQu+B,YAChCxiB,KAAKiuB,cAAgB,KAEjBjuB,KAAK/b,QAAQumC,wBACb/K,EAAM2B,QAAQphB,KAAM8pB,GAGpB9pB,KAAK/b,QAAQ67B,cACbL,EAAM2B,QAAQphB,KAAM+pB,EAA2B,CAAEjK,aAAc9f,KAAK/b,QAAQ67B,cAEpF,CAGAzY,MAAMre,GACF,MAAMsb,EAAWtE,KAAKwiB,YAAYyU,iBAMlC,OAJAj3B,KAAKkhB,WAAW5c,EAAU,MAC1BtE,KAAKqhB,UAAU6V,MAAMluC,GAAM,GAC3BgX,KAAK2jB,gBAAgB,MAEdrf,CACX,CAEA6yB,cAAcnuC,EAAMm4B,GAGXA,IACDA,EAAkBnhB,KAAKwiB,YAAYje,cAAckI,EAAEoP,SAAUlP,EAAGH,KAAM,KAM1E,MAAM4qB,EAAep3B,KAAKwiB,YAAYje,cAAc,eAAgBoI,EAAGH,KAAM,IAE7ExM,KAAKkhB,WAAWkW,EAAcjW,GAE1BnhB,KAAKwiB,YAAYY,WAAWjC,KAAqB1U,EAAEoP,UACnD7b,KAAK0vB,uBAAuB/D,GAGhC3rB,KAAKq3B,mCACLr3B,KAAK4kB,yBACL5kB,KAAKuvB,sBACLvvB,KAAKs3B,6BACLt3B,KAAKqhB,UAAU6V,MAAMluC,GAAM,GAC3BgX,KAAK2jB,gBAAgB,MAErB,MAAM4T,EAAcv3B,KAAKwiB,YAAYgV,cAAcJ,GAC7CK,EAAWz3B,KAAKwiB,YAAYkV,yBAIlC,OAFA13B,KAAKwxB,YAAY+F,EAAaE,GAEvBA,CACX,CAGAvW,WAAW5c,EAAU6c,GACjBnhB,KAAKqhB,UAAY,IAAI9U,EAAUvM,KAAK/b,SAEpC+b,KAAK2xB,SAAU,EAEf3xB,KAAKgtB,cAAgBtC,EACrB1qB,KAAKkuB,sBAAwB,GAE7BluB,KAAKsE,SAAWA,EAChBtE,KAAKmhB,gBAAkBA,EAEvBnhB,KAAKqtB,YAAc,KACnBrtB,KAAKm0B,YAAc,KAEnBn0B,KAAK0jB,aAAe,IAAImG,EAAiB7pB,KAAKsE,SAAUtE,KAAKwiB,aAC7DxiB,KAAK4uB,yBAA2B,IAAIhH,EAAsB5nB,KAAKwiB,aAE/DxiB,KAAK23B,uBAAyB,GAC9B33B,KAAK+1B,2BAA6B,EAClC/1B,KAAK43B,yBAA2B,KAEhC53B,KAAKsuB,uBAAyB,GAC9BtuB,KAAKuuB,uCAAwC,EAE7CvuB,KAAK4tB,YAAa,EAClB5tB,KAAKwyB,iBAAkB,EACvBxyB,KAAK42B,wBAAyB,CAClC,CAGAlW,OAEA,CAGAiD,gBAAgBC,GACZ,MAAQ5jB,KAAK2xB,SAAS,CAClB3xB,KAAK63B,2BAEL,MAAMzvB,EAAQpI,KAAKqhB,UAAUyW,eAE7B,GAAI1vB,EAAMjiB,OAASomB,EAAUwrB,kBACzB,MAGJ,GAAI/3B,KAAKwyB,kBACLxyB,KAAKwyB,iBAAkB,EAEnBpqB,EAAMjiB,OAASomB,EAAUggB,4BAAiD,OAAnBnkB,EAAM4vB,MAAM,IAAa,CAChF,GAA2B,IAAvB5vB,EAAM4vB,MAAM9yC,OACZ,SAGJkjB,EAAM4vB,MAAQ5vB,EAAM4vB,MAAMC,OAAO,EACrC,CAKJ,GAFAj4B,KAAKshB,mBAAmBlZ,GAEpBwb,GAAiB5jB,KAAKiuB,cACtB,KAER,CACJ,CAEAiK,8BAA8BC,EAAevU,GAGzC,GAFA5jB,KAAK2jB,gBAAgBC,GAEjBA,GAAiB5jB,KAAKiuB,cAAe,CACrC,MAAMmK,EAASp4B,KAAKiuB,cAMpB,OAJAjuB,KAAKiuB,cAAgB,UAErBrK,EAAcwU,EAGlB,CAEID,GACAA,GAER,CAGAN,2BACI,MAAM5V,EAAUjiB,KAAKq4B,6BAErBr4B,KAAKqhB,UAAUiX,WACXrW,GACAA,IAAYjiB,KAAKsE,UACjBtE,KAAKwiB,YAAY8F,gBAAgBrG,KAAatV,EAAGH,OAChDxM,KAAKu4B,oBAAoBtW,EAClC,CAEA2P,qBAAqBjP,EAAc6V,GAC/Bx4B,KAAKwkB,eAAe7B,EAAchW,EAAGH,MACrCxM,KAAKqhB,UAAU8F,MAAQqR,EACvBx4B,KAAKkuB,sBAAwBluB,KAAKgtB,cAClChtB,KAAKgtB,cAAgB/B,CACzB,CAEAwN,2BACIz4B,KAAKgtB,cAAgB/B,EACrBjrB,KAAKkuB,sBAAwBlD,EAC7BhrB,KAAKqhB,UAAU8F,MAAQ5a,EAAUya,KAAK/L,SAC1C,CAGAod,6BACI,OAAsC,IAA/Br4B,KAAK0jB,aAAavB,UAAkBniB,KAAKmhB,gBAC1CnhB,KAAKmhB,gBACLnhB,KAAK0jB,aAAazB,OAC5B,CAEAqV,6BACI,IAAIjwC,EAAO2Y,KAAKmhB,gBAEhB,EAAG,CACC,GAAInhB,KAAKwiB,YAAYY,WAAW/7B,KAAUolB,EAAEgN,KAAM,CAC9CzZ,KAAKm0B,YAAc9sC,EACnB,KACJ,CAEAA,EAAO2Y,KAAKwiB,YAAYkW,cAAcrxC,EAC1C,OAASA,EACb,CAEAgwC,mCACI,GAAIr3B,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKmhB,mBAAqBxU,EAAGH,KAAM,CACpE,MAAM0J,EAAKlW,KAAKwiB,YAAYY,WAAWpjB,KAAKmhB,iBAExCjL,IAAOzJ,EAAEgL,OAASvB,IAAOzJ,EAAEqP,SAC3B9b,KAAKqhB,UAAU8F,MAAQ5a,EAAUya,KAAK6K,OAEtC3b,IAAOzJ,EAAEiP,OACTxF,IAAOzJ,EAAE6P,KACTpG,IAAOzJ,EAAEuN,QACT9D,IAAOzJ,EAAEkO,SACTzE,IAAOzJ,EAAEiO,UACTxE,IAAOzJ,EAAEmO,SAET5a,KAAKqhB,UAAU8F,MAAQ5a,EAAUya,KAAK8K,QAC/B5b,IAAOzJ,EAAE6O,OAChBtb,KAAKqhB,UAAU8F,MAAQ5a,EAAUya,KAAK+K,YAC/B7b,IAAOzJ,EAAEwO,YAChBjb,KAAKqhB,UAAU8F,MAAQ5a,EAAUya,KAAK/L,UAE9C,CACJ,CAGA+I,iBAAiB5b,GACb,MAAMlkB,EAAOkkB,EAAMlkB,MAAQ,GACrB+jB,EAAWG,EAAMH,UAAY,GAC7BI,EAAWD,EAAMC,UAAY,GAEnCrI,KAAKwiB,YAAYmW,gBAAgB34B,KAAKsE,SAAUpgB,EAAM+jB,EAAUI,EACpE,CAEAgc,qBAAqB/B,GACjB,GAAItiB,KAAKmlB,iCACLnlB,KAAKsxB,qBAAqBhP,OACvB,CACH,MAAMwC,EAAS9kB,KAAK0jB,aAAa0B,oBAAsBplB,KAAK0jB,aAAazB,QAEzEjiB,KAAKwiB,YAAY0O,YAAYpM,EAAQxC,EACzC,CACJ,CAEAgC,eAAelc,EAAOmc,GAClB,MAAMjC,EAAUtiB,KAAKwiB,YAAYje,cAAc6D,EAAMhiB,QAASm+B,EAAcnc,EAAMqO,OAElFzW,KAAKqkB,qBAAqB/B,EAC9B,CAEAkC,eAAepc,EAAOmc,GAClB,MAAMjC,EAAUtiB,KAAKwiB,YAAYje,cAAc6D,EAAMhiB,QAASm+B,EAAcnc,EAAMqO,OAElFzW,KAAKqkB,qBAAqB/B,GAC1BtiB,KAAK0jB,aAAax9B,KAAKo8B,EAC3B,CAEA2M,mBAAmB7oC,GACf,MAAMk8B,EAAUtiB,KAAKwiB,YAAYje,cAAcne,EAASumB,EAAGH,KAAM,IAEjExM,KAAKqkB,qBAAqB/B,GAC1BtiB,KAAK0jB,aAAax9B,KAAKo8B,EAC3B,CAEAmC,gBAAgBrc,GACZ,MAAMwwB,EAAO54B,KAAKwiB,YAAYje,cAAc6D,EAAMhiB,QAASumB,EAAGH,KAAMpE,EAAMqO,OACpE9uB,EAAUqY,KAAKwiB,YAAYkV,yBAEjC13B,KAAKwiB,YAAYqW,mBAAmBD,EAAMjxC,GAC1CqY,KAAKqkB,qBAAqBuU,GAC1B54B,KAAK0jB,aAAax9B,KAAK0yC,EAC3B,CAEAhU,yBACI,MAAMtC,EAAUtiB,KAAKwiB,YAAYje,cAAckI,EAAED,KAAMG,EAAGH,KAAM,IAEhExM,KAAKwiB,YAAY0O,YAAYlxB,KAAK0jB,aAAazB,QAASK,GACxDtiB,KAAK0jB,aAAax9B,KAAKo8B,EAC3B,CAEAuC,mBAAmBzc,EAAO0c,GACtB,MAAMC,EAAc/kB,KAAKwiB,YAAYsW,kBAAkB1wB,EAAM1e,MAE7DsW,KAAKwiB,YAAY0O,YAAYpM,EAAQC,EACzC,CAEAE,kBAAkB7c,GACd,GAAIpI,KAAKmlB,iCACLnlB,KAAK+4B,kBAAkB3wB,EAAM4vB,WAC1B,CACH,MAAMlT,EAAS9kB,KAAK0jB,aAAa0B,oBAAsBplB,KAAK0jB,aAAazB,QAEzEjiB,KAAKwiB,YAAYwW,WAAWlU,EAAQ1c,EAAM4vB,MAC9C,CACJ,CAEAxG,YAAYyH,EAAOC,GACf,IAAK,IAAIC,EAAQn5B,KAAKwiB,YAAYgV,cAAcyB,GAAQE,EAAOA,EAAQn5B,KAAKwiB,YAAYgV,cAAcyB,GAClGj5B,KAAKwiB,YAAYyO,WAAWkI,GAC5Bn5B,KAAKwiB,YAAY0O,YAAYgI,EAAWC,EAEhD,CAGAC,oCAAoChxB,GAChC,MAAM6Z,EAAUjiB,KAAKq4B,6BAErB,IAAKpW,GAAWA,IAAYjiB,KAAKsE,SAC7B,OAAO,EAGX,MAAM2S,EAAKjX,KAAKwiB,YAAY8F,gBAAgBrG,GAE5C,GAAIhL,IAAOtK,EAAGH,KACV,OAAO,EAGX,GACIxM,KAAKwiB,YAAYY,WAAWnB,KAAaxV,EAAE2K,gBAC3CH,IAAOtK,EAAGwK,QACV/O,EAAMjiB,OAASomB,EAAU0gB,iBACzB7kB,EAAMhiB,UAAYqmB,EAAE6K,IAEpB,OAAO,EAGX,MAAM+hB,EACFjxB,EAAMjiB,OAASomB,EAAU6f,iBACzBhkB,EAAMjiB,OAASomB,EAAU+f,sBACzBlkB,EAAMjiB,OAASomB,EAAUggB,2BAK7B,SAFInkB,EAAMjiB,OAASomB,EAAU0gB,iBAAmB7kB,EAAMhiB,UAAYqmB,EAAE+N,QAAUpS,EAAMhiB,UAAYqmB,EAAE4N,cAErEgf,IAAqBr5B,KAAKu4B,oBAAoBtW,EAAStV,EAAGwK,YAKlF/O,EAAMjiB,OAASomB,EAAU0gB,kBAAmBoM,IAC7Cr5B,KAAKu4B,oBAAoBtW,EAAStV,EAAGH,QAKlCpE,EAAMjiB,OAASomB,EAAUsa,UACpC,CAEA/C,cAAc1b,GACV+jB,EAAensB,KAAKgtB,eAAe5kB,EAAMjiB,MAAM6Z,KAAMoI,EACzD,CAEAyuB,wBAAwBzuB,GACpB+jB,EAA2B,aAAE/jB,EAAMjiB,MAAM6Z,KAAMoI,EACnD,CAEAyb,8BAA8Bzb,GACtBA,EAAMjiB,OAASomB,EAAU6f,gBA+rErC,SAAmCQ,EAAGxkB,GAClCwkB,EAAE3H,kBAAkB7c,GACpBwkB,EAAEgB,YAAa,CACnB,CAjsEY0L,CAA0Bt5B,KAAMoI,GACzBA,EAAMjiB,OAASomB,EAAU+f,qBAwrE5C,SAAuCM,EAAGxkB,GACtCA,EAAM4vB,MAAQ3N,EAAQ5N,sBACtBmQ,EAAE3H,kBAAkB7c,EACxB,CA1rEYmxB,CAA8Bv5B,KAAMoI,GAC7BA,EAAMjiB,OAASomB,EAAUggB,2BAChCgB,GAAiBvtB,KAAMoI,GAChBA,EAAMjiB,OAASomB,EAAUkgB,cAChCC,GAAc1sB,KAAMoI,GACbA,EAAMjiB,OAASomB,EAAU0gB,gBA4rE5C,SAAkCL,EAAGxkB,GACjC,GAAI+hB,EAAenU,WAAW5N,KAAWwkB,EAAEzL,gBAAiB,CACxD,KACIyL,EAAEpK,YAAY8F,gBAAgBsE,EAAElJ,aAAazB,WAAatV,EAAGH,OAC5DogB,EAAE2L,oBAAoB3L,EAAElJ,aAAazB,UAEtC2K,EAAElJ,aAAa1B,MAGnB4K,EAAE9I,cAAc1b,EACpB,KAAO,CACH,MAAM6Z,EAAU2K,EAAEyL,6BACZmB,EAAY5M,EAAEpK,YAAY8F,gBAAgBrG,GAE5CuX,IAAc7sB,EAAGwK,OACjBgT,EAAe3T,uBAAuBpO,GAC/BoxB,IAAc7sB,EAAG2K,MACxB6S,EAAerT,sBAAsB1O,GACrC+hB,EAAezT,oBAAoBtO,IAGvC+hB,EAAevT,oBAAoBxO,GAE/BA,EAAMurB,YACN/G,EAAEtI,eAAelc,EAAOoxB,GAExB5M,EAAEpI,eAAepc,EAAOoxB,GAG5BpxB,EAAM0mB,gBAAiB,CAC3B,CACJ,CA1tEY2K,CAAyBz5B,KAAMoI,GACxBA,EAAMjiB,OAASomB,EAAU+W,eA2tE5C,SAAgCsJ,EAAGxkB,GAC/B,IAAK,IAAInjB,EAAI2nC,EAAElJ,aAAavB,SAAUl9B,EAAI,EAAGA,IAAK,CAC9C,MAAMq9B,EAAUsK,EAAElJ,aAAatB,MAAMn9B,GAErC,GAAI2nC,EAAEpK,YAAY8F,gBAAgBhG,KAAa3V,EAAGH,KAAM,CACpDogB,EAAE9I,cAAc1b,GAChB,KACJ,CAEA,GAAIwkB,EAAEpK,YAAYY,WAAWd,GAASp7B,gBAAkBkhB,EAAMhiB,QAAS,CACnEwmC,EAAElJ,aAAa8M,sBAAsBlO,GACrC,KACJ,CACJ,CACJ,CAxuEYoX,CAAuB15B,KAAMoI,EAErC,CAEAkZ,mBAAmBlZ,GACXpI,KAAKo5B,oCAAoChxB,GACzCpI,KAAK6jB,8BAA8Bzb,GAEnCpI,KAAK8jB,cAAc1b,GAGnBA,EAAMjiB,OAASomB,EAAU0gB,iBAAmB7kB,EAAMurB,cAAgBvrB,EAAM0mB,gBACxE9uB,KAAK0gB,KAAK0J,EAAIthB,8CAEtB,CAGAyvB,oBAAoBjW,EAASpL,GACzB,MAAMhB,EAAKlW,KAAKwiB,YAAYY,WAAWd,GACjCrL,EAAKjX,KAAKwiB,YAAY8F,gBAAgBhG,GACtC7L,EAAQzW,KAAKwiB,YAAY2F,YAAY7F,GAE3C,OAAO6H,EAAenT,mBAAmBd,EAAIe,EAAIR,EAAOS,EAC5D,CAGAib,uCACI,MAAMwH,EAAa35B,KAAK4uB,yBAAyB1pC,OAEjD,GAAIy0C,EAAY,CACZ,IAAIC,EAAYD,EACZpR,EAAQ,KAEZ,GAII,GAHAqR,IACArR,EAAQvoB,KAAK4uB,yBAAyB/G,QAAQ+R,GAE1CrR,EAAMpiC,OAASyhC,EAAsBY,cAAgBxoB,KAAK0jB,aAAayM,SAAS5H,EAAMjG,SAAU,CAChGsX,IACA,KACJ,QACKA,EAAY,GAErB,IAAK,IAAI30C,EAAI20C,EAAW30C,EAAI00C,EAAY10C,IACpCsjC,EAAQvoB,KAAK4uB,yBAAyB/G,QAAQ5iC,GAC9C+a,KAAKwkB,eAAe+D,EAAMngB,MAAOpI,KAAKwiB,YAAY8F,gBAAgBC,EAAMjG,UACxEiG,EAAMjG,QAAUtiB,KAAK0jB,aAAazB,OAE1C,CACJ,CAGAmN,kBACIpvB,KAAK0jB,aAAagL,yBAClB1uB,KAAK0jB,aAAamW,0BAClB75B,KAAK4uB,yBAAyBlF,oBAC9B1pB,KAAKgtB,cAAgBzB,CACzB,CAEA+G,iBACItyB,KAAK0jB,aAAa4P,oCAAoC7mB,EAAEwI,GACxDjV,KAAK0jB,aAAaiL,sBAAsBliB,EAAEwI,EAC9C,CAGAsa,sBACI,IAAK,IAAItqC,EAAI+a,KAAK0jB,aAAavB,SAAU2X,GAAO,EAAO70C,GAAK,EAAGA,IAAK,CAChE,IAAIq9B,EAAUtiB,KAAK0jB,aAAatB,MAAMn9B,GAE5B,IAANA,IACA60C,GAAO,EAEH95B,KAAKmhB,kBACLmB,EAAUtiB,KAAKmhB,kBAIvB,MAAMjL,EAAKlW,KAAKwiB,YAAYY,WAAWd,GACjCkN,EAAmBvD,EAAyB/V,GAElD,GAAIsZ,EAAkB,CAClBxvB,KAAKgtB,cAAgBwC,EACrB,KACJ,CAAO,KAAKsK,GAAS5jB,IAAOzJ,EAAEuP,IAAM9F,IAAOzJ,EAAEwP,IAAK,CAC9Cjc,KAAKgtB,cAAgBxB,EACrB,KACJ,CAAO,IAAKsO,GAAQ5jB,IAAOzJ,EAAE8H,KAAM,CAC/BvU,KAAKgtB,cAAgBnC,EACrB,KACJ,CAAO,GAAI3U,IAAOzJ,EAAE+O,OAAQ,CACxBxb,KAAK+5B,6BAA6B90C,GAClC,KACJ,CAAO,GAAIixB,IAAOzJ,EAAEoP,SAAU,CAC1B7b,KAAKgtB,cAAgBhtB,KAAK43B,yBAC1B,KACJ,CAAO,GAAI1hB,IAAOzJ,EAAED,KAAM,CACtBxM,KAAKgtB,cAAgBhtB,KAAKqtB,YAActC,EAAkBH,EAC1D,KACJ,CAAO,GAAIkP,EAAM,CACb95B,KAAKgtB,cAAgBhC,EACrB,KACJ,CACJ,CACJ,CAEA+O,6BAA6BC,GACzB,GAAIA,EAAY,EACZ,IAAK,IAAI/0C,EAAI+0C,EAAY,EAAG/0C,EAAI,EAAGA,IAAK,CACpC,MAAMg1C,EAAWj6B,KAAK0jB,aAAatB,MAAMn9B,GACnCixB,EAAKlW,KAAKwiB,YAAYY,WAAW6W,GAEvC,GAAI/jB,IAAOzJ,EAAEoP,SACT,MACG,GAAI3F,IAAOzJ,EAAEkJ,MAEhB,YADA3V,KAAKgtB,cAAgBtB,EAG7B,CAGJ1rB,KAAKgtB,cAAgBvB,CACzB,CAEAiE,uBAAuB7C,GACnB7sB,KAAK23B,uBAAuBzxC,KAAK2mC,GACjC7sB,KAAK+1B,4BACL/1B,KAAK43B,yBAA2B/K,CACpC,CAEA4C,wBACIzvB,KAAK23B,uBAAuB3V,MAC5BhiB,KAAK+1B,4BACL/1B,KAAK43B,yBAA2B53B,KAAK23B,uBAAuB33B,KAAK+1B,0BACrE,CAGA1E,gCAAgC/O,GAC5B,MAAMpM,EAAKlW,KAAKwiB,YAAYY,WAAWd,GAEvC,OAAOpM,IAAOzJ,EAAEkJ,OAASO,IAAOzJ,EAAEmP,OAAS1F,IAAOzJ,EAAEsP,OAAS7F,IAAOzJ,EAAEyP,OAAShG,IAAOzJ,EAAE0P,EAC5F,CAEAgJ,iCACI,OAAOnlB,KAAK42B,wBAA0B52B,KAAKqxB,gCAAgCrxB,KAAK0jB,aAAazB,QACjG,CAEA+C,+BACI,MAAMzD,EAAW,CACbuD,OAAQ,KACRS,cAAe,MAGnB,IAAK,IAAItgC,EAAI+a,KAAK0jB,aAAavB,SAAUl9B,GAAK,EAAGA,IAAK,CAClD,MAAMi1C,EAAcl6B,KAAK0jB,aAAatB,MAAMn9B,GACtCixB,EAAKlW,KAAKwiB,YAAYY,WAAW8W,GACjCjjB,EAAKjX,KAAKwiB,YAAY8F,gBAAgB4R,GAE5C,GAAIhkB,IAAOzJ,EAAEoP,UAAY5E,IAAOtK,EAAGH,KAAM,CACrC+U,EAASuD,OAAS9kB,KAAKwiB,YAAYmC,mBAAmBuV,GACtD,KACJ,CAAO,GAAIhkB,IAAOzJ,EAAEkJ,MAAO,CACvB4L,EAASuD,OAAS9kB,KAAKwiB,YAAYkW,cAAcwB,GAE7C3Y,EAASuD,OACTvD,EAASgE,cAAgB2U,EAEzB3Y,EAASuD,OAAS9kB,KAAK0jB,aAAatB,MAAMn9B,EAAI,GAGlD,KACJ,CACJ,CAMA,OAJKs8B,EAASuD,SACVvD,EAASuD,OAAS9kB,KAAK0jB,aAAatB,MAAM,IAGvCb,CACX,CAEA+P,qBAAqBhP,GACjB,MAAMf,EAAWvhB,KAAKglB,+BAElBzD,EAASgE,cACTvlB,KAAKwiB,YAAY2X,aAAa5Y,EAASuD,OAAQxC,EAASf,EAASgE,eAEjEvlB,KAAKwiB,YAAY0O,YAAY3P,EAASuD,OAAQxC,EAEtD,CAEAyW,kBAAkBf,GACd,MAAMzW,EAAWvhB,KAAKglB,+BAElBzD,EAASgE,cACTvlB,KAAKwiB,YAAY4X,iBAAiB7Y,EAASuD,OAAQkT,EAAOzW,EAASgE,eAEnEvlB,KAAKwiB,YAAYwW,WAAWzX,EAASuD,OAAQkT,EAErD,CAGAzH,kBAAkBjO,GACd,MAAMpM,EAAKlW,KAAKwiB,YAAYY,WAAWd,GACjCrL,EAAKjX,KAAKwiB,YAAY8F,gBAAgBhG,GAE5C,OAAO9V,EAAK+P,iBAAiBtF,GAAIf,EACrC,gCC/2BJ,MAAM1J,EAAOhmB,EAAQ,MAGfimB,EAAID,EAAKE,UACTC,EAAKH,EAAKI,WAMhB,SAASytB,EAAwBnkB,GAC7B,OAAQA,EAAGhxB,QACP,KAAK,EACD,OAAOgxB,IAAOzJ,EAAEwI,EAEpB,KAAK,EACD,OAAOiB,IAAOzJ,EAAEyO,IAAMhF,IAAOzJ,EAAE0O,IAAMjF,IAAOzJ,EAAE2O,IAAMlF,IAAOzJ,EAAEkH,IAAMuC,IAAOzJ,EAAEqH,IAAMoC,IAAOzJ,EAAEkI,GAE/F,KAAK,EACD,OAAOuB,IAAOzJ,EAAE4O,IAEpB,KAAK,EACD,OAAOnF,IAAOzJ,EAAEsO,OAEpB,KAAK,EACD,OAAO7E,IAAOzJ,EAAEqO,SAGxB,OAAO,CACX,CAEA,SAASwf,EAAkCpkB,GACvC,OAAQA,EAAGhxB,QACP,KAAK,EACD,OAAOgxB,IAAOzJ,EAAEwI,EAEpB,KAAK,EACD,OACIiB,IAAOzJ,EAAEyO,IACThF,IAAOzJ,EAAE0O,IACTjF,IAAOzJ,EAAE2O,IACTlF,IAAOzJ,EAAEkH,IACTuC,IAAOzJ,EAAEqH,IACToC,IAAOzJ,EAAEkI,IACTuB,IAAOzJ,EAAEuP,IACT9F,IAAOzJ,EAAEwP,IACT/F,IAAOzJ,EAAE0P,GAGjB,KAAK,EACD,OAAOjG,IAAOzJ,EAAE4O,IAEpB,KAAK,EACD,OAAOnF,IAAOzJ,EAAEmP,OAAS1F,IAAOzJ,EAAEsP,OAAS7F,IAAOzJ,EAAEyP,MAExD,KAAK,EACD,OAAOhG,IAAOzJ,EAAEsO,OAEpB,KAAK,EACD,OAAO7E,IAAOzJ,EAAEsM,QAEpB,KAAK,EACD,OAAO7C,IAAOzJ,EAAEqO,UAAY5E,IAAOzJ,EAAEwM,SAG7C,OAAO,CACX,CAEA,SAASshB,EAAiBrkB,EAAIe,GAC1B,OAAQf,EAAGhxB,QACP,KAAK,EACD,GAAIgxB,IAAOzJ,EAAEuP,IAAM9F,IAAOzJ,EAAEwP,GACxB,OAAOhF,IAAOtK,EAAGH,KACd,GAAI0J,IAAOzJ,EAAEkL,IAAMzB,IAAOzJ,EAAEmL,IAAM1B,IAAOzJ,EAAEoL,IAAM3B,IAAOzJ,EAAEqL,GAC7D,OAAOb,IAAOtK,EAAGwK,OAGrB,MAEJ,KAAK,EACD,GAAIjB,IAAOzJ,EAAED,KACT,OAAOyK,IAAOtK,EAAGH,KACd,GAAI0J,IAAOzJ,EAAE+K,KAChB,OAAOP,IAAOtK,EAAG2K,IAGrB,MAEJ,KAAK,EACD,GAAIpB,IAAOzJ,EAAEkJ,MACT,OAAOsB,IAAOtK,EAAGH,KACd,GAAI0J,IAAOzJ,EAAEsL,MAChB,OAAOd,IAAOtK,EAAGwK,OACd,GAAIjB,IAAOzJ,EAAEgL,MAChB,OAAOR,IAAOtK,EAAG2K,IAGrB,MAEJ,KAAK,EACD,OAAQpB,IAAOzJ,EAAE8L,QAAUrC,IAAOzJ,EAAEoO,SAAW5D,IAAOtK,EAAGH,KAE7D,KAAK,EACD,OAAQ0J,IAAOzJ,EAAEsM,SAAW7C,IAAOzJ,EAAE6N,UAAYrD,IAAOtK,EAAGH,KAE/D,KAAK,EACD,OAAO0J,IAAOzJ,EAAEoP,UAAY5E,IAAOtK,EAAGH,KAE1C,KAAK,GACD,OAAO0J,IAAOzJ,EAAE8K,gBAAkBN,IAAOtK,EAAG2K,IAEhD,KAAK,GACD,OAAOpB,IAAOzJ,EAAE2K,gBAAkBH,IAAOtK,EAAGwK,OAGpD,OAAO,CACX,CA2WA1yB,EAAOC,QAxWP,MACIZ,YAAYwgB,EAAUke,GAClBxiB,KAAKmiB,UAAY,EACjBniB,KAAKoiB,MAAQ,GACbpiB,KAAKiiB,QAAU3d,EACftE,KAAK+uB,eAAiB,KACtB/uB,KAAKolB,mBAAqB,KAC1BplB,KAAKgyB,UAAY,EACjBhyB,KAAKwiB,YAAcA,CACvB,CAGAgY,SAASlY,GACL,IAAIoG,GAAO,EAEX,IAAK,IAAIzjC,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAChC,GAAI+a,KAAKoiB,MAAMn9B,KAAOq9B,EAAS,CAC3BoG,EAAMzjC,EACN,KACJ,CAEJ,OAAOyjC,CACX,CAGA+R,gBACI,OAAOz6B,KAAK+uB,iBAAmBtiB,EAAEoP,UAAY7b,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKiiB,WAAatV,EAAGH,IACvG,CAEAkuB,wBACI16B,KAAKiiB,QAAUjiB,KAAKoiB,MAAMpiB,KAAKmiB,UAC/BniB,KAAK+uB,eAAiB/uB,KAAKiiB,SAAWjiB,KAAKwiB,YAAYY,WAAWpjB,KAAKiiB,SAEvEjiB,KAAKolB,mBAAqBplB,KAAKy6B,gBAAkBz6B,KAAKwiB,YAAYmC,mBAAmB3kB,KAAKiiB,SAAW,IACzG,CAGA/7B,KAAKo8B,GACDtiB,KAAKoiB,QAAQpiB,KAAKmiB,UAAYG,EAC9BtiB,KAAK06B,wBAED16B,KAAKy6B,iBACLz6B,KAAKgyB,WAEb,CAEAhQ,MACIhiB,KAAKmiB,WAEDniB,KAAKgyB,UAAY,GAAKhyB,KAAKy6B,iBAC3Bz6B,KAAKgyB,YAGThyB,KAAK06B,uBACT,CAEAxwC,QAAQywC,EAAY3S,GAChB,MAAMU,EAAM1oB,KAAKw6B,SAASG,GAE1B36B,KAAKoiB,MAAMsG,GAAOV,EAEdU,IAAQ1oB,KAAKmiB,UACbniB,KAAK06B,uBAEb,CAEAjJ,YAAYmJ,EAAkB5S,GAC1B,MAAM6S,EAAe76B,KAAKw6B,SAASI,GAAoB,EAEvD56B,KAAKoiB,MAAM8G,OAAO2R,EAAc,EAAG7S,GAE/B6S,MAAmB76B,KAAKmiB,UACxBniB,KAAK06B,uBAEb,CAEA/L,sBAAsBvoC,GAClB,KAAO4Z,KAAKmiB,UAAY,GAAG,CACvB,MAAMjM,EAAKlW,KAAK+uB,eACV9X,EAAKjX,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKiiB,SAIjD,GAFAjiB,KAAKgiB,MAED9L,IAAO9vB,GAAW6wB,IAAOtK,EAAGH,KAC5B,KAER,CACJ,CAEAgkB,sBAAsBlO,GAClB,KAAOtiB,KAAKmiB,UAAY,GAAG,CACvB,MAAM2Y,EAAgB96B,KAAKiiB,QAI3B,GAFAjiB,KAAKgiB,MAED8Y,IAAkBxY,EAClB,KAER,CACJ,CAEAmT,+BACI,KAAOz1B,KAAKmiB,UAAY,GAAG,CACvB,MAAMjM,EAAKlW,KAAK+uB,eACV9X,EAAKjX,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKiiB,SAIjD,GAFAjiB,KAAKgiB,MAGD9L,IAAOzJ,EAAEwH,IACTiC,IAAOzJ,EAAEyH,IACTgC,IAAOzJ,EAAE0H,IACT+B,IAAOzJ,EAAE2H,IACT8B,IAAOzJ,EAAE4H,IACR6B,IAAOzJ,EAAE6H,IAAM2C,IAAOtK,EAAGH,KAE1B,KAER,CACJ,CAEAqtB,0BACI,KAAO75B,KAAKmiB,UAAY,GAAG,CACvB,MAAMjM,EAAKlW,KAAK+uB,eACV9X,EAAKjX,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKiiB,SAIjD,GAFAjiB,KAAKgiB,MAED9L,IAAOzJ,EAAEuP,IAAO9F,IAAOzJ,EAAEwP,IAAMhF,IAAOtK,EAAGH,KACzC,KAER,CACJ,CAEA0V,wBAGIliB,KAAKmiB,SAAW,EAChBniB,KAAK06B,uBACT,CAEAxE,0BACI,KACKl2B,KAAK+uB,iBAAmBtiB,EAAEkJ,OAAS3V,KAAK+uB,iBAAmBtiB,EAAEoP,UAAY7b,KAAK+uB,iBAAmBtiB,EAAED,MACpGxM,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKiiB,WAAatV,EAAGH,MAEtDxM,KAAKgiB,KAEb,CAEAgN,8BACI,KACKhvB,KAAK+uB,iBAAmBtiB,EAAEmP,OACvB5b,KAAK+uB,iBAAmBtiB,EAAEsP,OAC1B/b,KAAK+uB,iBAAmBtiB,EAAEyP,OAC1Blc,KAAK+uB,iBAAmBtiB,EAAEoP,UAC1B7b,KAAK+uB,iBAAmBtiB,EAAED,MAC9BxM,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKiiB,WAAatV,EAAGH,MAEtDxM,KAAKgiB,KAEb,CAEAmN,6BACI,KACKnvB,KAAK+uB,iBAAmBtiB,EAAE0P,IAAMnc,KAAK+uB,iBAAmBtiB,EAAEoP,UAAY7b,KAAK+uB,iBAAmBtiB,EAAED,MACjGxM,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKiiB,WAAatV,EAAGH,MAEtDxM,KAAKgiB,KAEb,CAEAK,OAAOC,GACH,IAAK,IAAIr9B,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAChC,GAAI+a,KAAKoiB,MAAMn9B,KAAOq9B,EAAS,CAC3BtiB,KAAKoiB,MAAM8G,OAAOjkC,EAAG,GACrB+a,KAAKmiB,WACLniB,KAAK06B,wBACL,KACJ,CAER,CAGA1G,mCAEI,MAAM1R,EAAUtiB,KAAKoiB,MAAM,GAE3B,OAAOE,GAAWtiB,KAAKwiB,YAAYY,WAAWd,KAAa7V,EAAE8G,KAAO+O,EAAU,IAClF,CAEA6N,SAAS7N,GACL,OAAOtiB,KAAKw6B,SAASlY,IAAY,CACrC,CAEAuO,kBAAkBvO,GACd,IAAIyY,EAAa/6B,KAAKw6B,SAASlY,GAE/B,QAASyY,GAAc,EAAI/6B,KAAKoiB,MAAM2Y,GAAc,IACxD,CAEAjL,2BACI,OAAyB,IAAlB9vB,KAAKmiB,UAAkBniB,KAAK+uB,iBAAmBtiB,EAAED,IAC5D,CAGAuX,WAAW39B,GACP,IAAK,IAAInB,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAAK,CACrC,MAAMixB,EAAKlW,KAAKwiB,YAAYY,WAAWpjB,KAAKoiB,MAAMn9B,IAC5CgyB,EAAKjX,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKoiB,MAAMn9B,IAEvD,GAAIixB,IAAO9vB,GAAW6wB,IAAOtK,EAAGH,KAC5B,OAAO,EAGX,GAAI+tB,EAAiBrkB,EAAIe,GACrB,OAAO,CAEf,CAEA,OAAO,CACX,CAEAue,2BACI,IAAK,IAAIvwC,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAAK,CACrC,MAAMixB,EAAKlW,KAAKwiB,YAAYY,WAAWpjB,KAAKoiB,MAAMn9B,IAC5CgyB,EAAKjX,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKoiB,MAAMn9B,IAEvD,IACKixB,IAAOzJ,EAAEwH,IAAMiC,IAAOzJ,EAAEyH,IAAMgC,IAAOzJ,EAAE0H,IAAM+B,IAAOzJ,EAAE2H,IAAM8B,IAAOzJ,EAAE4H,IAAM6B,IAAOzJ,EAAE6H,KACrF2C,IAAOtK,EAAGH,KAEV,OAAO,EAGX,GAAI+tB,EAAiBrkB,EAAIe,GACrB,OAAO,CAEf,CAEA,OAAO,CACX,CAEAoe,mBAAmBjvC,GACf,IAAK,IAAInB,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAAK,CACrC,MAAMixB,EAAKlW,KAAKwiB,YAAYY,WAAWpjB,KAAKoiB,MAAMn9B,IAC5CgyB,EAAKjX,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKoiB,MAAMn9B,IAEvD,GAAIixB,IAAO9vB,GAAW6wB,IAAOtK,EAAGH,KAC5B,OAAO,EAGX,IAAM0J,IAAOzJ,EAAEqJ,IAAMI,IAAOzJ,EAAEuI,KAAOiC,IAAOtK,EAAGH,MAAS+tB,EAAiBrkB,EAAIe,GACzE,OAAO,CAEf,CAEA,OAAO,CACX,CAEAob,iBAAiBjsC,GACb,IAAK,IAAInB,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAAK,CACrC,MAAMixB,EAAKlW,KAAKwiB,YAAYY,WAAWpjB,KAAKoiB,MAAMn9B,IAC5CgyB,EAAKjX,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKoiB,MAAMn9B,IAEvD,GAAIixB,IAAO9vB,GAAW6wB,IAAOtK,EAAGH,KAC5B,OAAO,EAGX,GAAK0J,IAAOzJ,EAAEqM,QAAU7B,IAAOtK,EAAGH,MAAS+tB,EAAiBrkB,EAAIe,GAC5D,OAAO,CAEf,CAEA,OAAO,CACX,CAEAwX,gBAAgBroC,GACZ,IAAK,IAAInB,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAAK,CACrC,MAAMixB,EAAKlW,KAAKwiB,YAAYY,WAAWpjB,KAAKoiB,MAAMn9B,IAGlD,GAFW+a,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKoiB,MAAMn9B,MAE5C0nB,EAAGH,KAAd,CAIA,GAAI0J,IAAO9vB,EACP,OAAO,EAGX,GAAI8vB,IAAOzJ,EAAEkJ,OAASO,IAAOzJ,EAAEoP,UAAY3F,IAAOzJ,EAAED,KAChD,OAAO,CAPX,CASJ,CAEA,OAAO,CACX,CAEA0iB,kCACI,IAAK,IAAIjqC,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAAK,CACrC,MAAMixB,EAAKlW,KAAKwiB,YAAYY,WAAWpjB,KAAKoiB,MAAMn9B,IAGlD,GAFW+a,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKoiB,MAAMn9B,MAE5C0nB,EAAGH,KAAd,CAIA,GAAI0J,IAAOzJ,EAAEmP,OAAS1F,IAAOzJ,EAAEyP,OAAShG,IAAOzJ,EAAEsP,MAC7C,OAAO,EAGX,GAAI7F,IAAOzJ,EAAEkJ,OAASO,IAAOzJ,EAAED,KAC3B,OAAO,CAPX,CASJ,CAEA,OAAO,CACX,CAEAsqB,iBAAiB1wC,GACb,IAAK,IAAInB,EAAI+a,KAAKmiB,SAAUl9B,GAAK,EAAGA,IAAK,CACrC,MAAMixB,EAAKlW,KAAKwiB,YAAYY,WAAWpjB,KAAKoiB,MAAMn9B,IAGlD,GAFW+a,KAAKwiB,YAAY8F,gBAAgBtoB,KAAKoiB,MAAMn9B,MAE5C0nB,EAAGH,KAAd,CAIA,GAAI0J,IAAO9vB,EACP,OAAO,EAGX,GAAI8vB,IAAOzJ,EAAEsO,QAAU7E,IAAOzJ,EAAEqO,SAC5B,OAAO,CAPX,CASJ,CAEA,OAAO,CACX,CAGA4T,yBACI,KAAO2L,EAAwBr6B,KAAK+uB,iBAChC/uB,KAAKgiB,KAEb,CAEAiQ,mCACI,KAAOqI,EAAkCt6B,KAAK+uB,iBAC1C/uB,KAAKgiB,KAEb,CAEAsR,oCAAoC0H,GAChC,KAAOX,EAAwBr6B,KAAK+uB,iBAAmB/uB,KAAK+uB,iBAAmBiM,GAC3Eh7B,KAAKgiB,KAEb,gCC5dJ,MAAMiZ,EAAez0C,EAAQ,KACvB6jC,EAAU7jC,EAAQ,MAClB00C,EAAS10C,EAAQ,MACjB4jC,EAAM5jC,EAAQ,MAGdimB,EAAI4d,EAAQ3N,YACZye,EAAK9Q,EAAQ3L,qBAGb0c,EAAqC,CACvC,IAAM,KACN,IAAM,KACN,IAAM,IACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,IACN,IAAM,KAUJC,EAAa,aACbC,EAAe,eACfC,EAAgB,gBAChBC,EAAoB,oBACpBC,EAAkB,kBAClBC,EAAiB,iBACjBC,EAAqB,qBACrBC,EAAiB,iBACjBC,EAA8B,8BAC9BC,EAA4B,4BAC5BC,EAA4B,4BAC5BC,EAA+B,+BAC/BC,EAA6B,6BAC7BC,EAA6B,6BAC7BC,EAAmC,mCACnCC,EAAiC,iCACjCC,EAAiC,iCACjCC,EAAiC,iCACjCC,EAAsC,sCACtCC,EAA4B,4BAC5BC,EAAiC,iCACjCC,EAAsC,sCACtCC,EAA2C,2CAC3CC,EAAyC,yCACzCC,EAAyC,yCACzCC,EAAwC,wCACxCC,EAAmC,mCACnCC,EAAwC,wCACxCC,EAA6C,6CAC7CC,EAAkD,kDAClDC,EAAsC,sCACtCC,EAA8B,8BAC9BC,EAAuB,uBACvBC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAAsC,sCACtCC,EAAsC,sCACtCC,EAAiC,iCACjCC,EAAqC,qCACrCC,EAA+B,+BAC/BC,EAAsB,sBACtBC,EAAgC,gCAChCC,EAAsB,sBACtBC,EAA2B,2BAC3BC,GAAgB,gBAChBC,GAA+B,+BAC/BC,GAAoC,oCACpCC,GAAyC,yCACzCC,GAA8C,8CAC9CC,GAAyB,yBACzBC,GAAoB,oBACpBC,GAAyB,yBACzBC,GAAgB,gBAChBC,GAA4B,4BAC5BC,GAAqB,qBACrBC,GAA2B,2BAC3BC,GAAqC,qCACrCC,GAAyC,yCACzCC,GAAgD,gDAChDC,GAAgD,gDAChDC,GAAwC,wCACxCC,GAAsD,sDACtDC,GAAqC,qCACrCC,GAAyC,yCACzCC,GAAgD,gDAChDC,GAAgD,gDAChDC,GAAwC,wCACxCC,GAAsB,sBACtBC,GAAsB,sBACtBC,GAA8B,8BAC9BC,GAA0B,0BAC1BC,GAA4B,4BAC5BC,GAAkC,kCAClCC,GAA4B,2BAC5BC,GAAoC,oCACpCC,GAA8C,8CAC9CC,GAA0C,0CAC1CC,GAAwC,wCACxCC,GAAoC,oCACpCC,GAAwC,wCAO9C,SAASC,GAAanhB,GAClB,OAAOA,IAAOzS,EAAEwQ,OAASiC,IAAOzS,EAAEsQ,WAAamC,IAAOzS,EAAEoQ,YAAcqC,IAAOzS,EAAEuQ,SACnF,CAEA,SAASsjB,GAAaphB,GAClB,OAAOA,GAAMzS,EAAEgR,SAAWyB,GAAMzS,EAAEiR,OACtC,CAEA,SAAS6iB,GAAarhB,GAClB,OAAOA,GAAMzS,EAAEuR,iBAAmBkB,GAAMzS,EAAE0R,eAC9C,CAEA,SAASqiB,GAAathB,GAClB,OAAOA,GAAMzS,EAAE6R,eAAiBY,GAAMzS,EAAEgS,aAC5C,CAEA,SAASgiB,GAAcvhB,GACnB,OAAOshB,GAAathB,IAAOqhB,GAAarhB,EAC5C,CAEA,SAASwhB,GAAoBxhB,GACzB,OAAOuhB,GAAcvhB,IAAOohB,GAAaphB,EAC7C,CAEA,SAASyhB,GAAqBzhB,GAC1B,OAAOA,GAAMzS,EAAEuR,iBAAmBkB,GAAMzS,EAAEwR,eAC9C,CAEA,SAAS2iB,GAAqB1hB,GAC1B,OAAOA,GAAMzS,EAAE6R,eAAiBY,GAAMzS,EAAE8R,aAC5C,CAMA,SAASsiB,GAAsB3hB,GAC3B,OAAOA,EAAK,EAChB,CAKA,SAAS4hB,GAAO5hB,GACZ,OAAIA,GAAM,MACCz2B,OAAOie,aAAawY,IAG/BA,GAAM,MACCz2B,OAAOie,aAAewY,IAAO,GAAM,KAAS,OAAUz2B,OAAOie,aAAa,MAAe,KAALwY,GAC/F,CAEA,SAAS6hB,GAAiB7hB,GACtB,OAAOz2B,OAAOie,aAAam6B,GAAsB3hB,GACrD,CAEA,SAAS8hB,GAA0BC,EAAQ/hB,GACvC,MAAMgiB,EAAchG,IAAS+F,GAC7B,IAAIE,IAAOF,EACPG,EAAKD,EAAKD,EAAc,EAE5B,KAAOC,GAAMC,GAAI,CACb,MAAMC,EAAOF,EAAKC,IAAQ,EACpBE,EAAQpG,EAAOmG,GAErB,GAAIC,EAAQpiB,EACRiiB,EAAKE,EAAM,MACR,MAAIC,EAAQpiB,GAGf,OAAOgc,EAAOmG,EAAMH,GAFpBE,EAAKC,EAAM,CAGf,CACJ,CAEA,OAAQ,CACZ,CAGA,MAAM90B,GACFzoB,cACIkc,KAAK0hB,aAAe,IAAIuZ,EAExBj7B,KAAKuhC,WAAa,GAElBvhC,KAAKs4B,YAAa,EAElBt4B,KAAKmnB,MAAQkU,EACbr7B,KAAKwhC,YAAc,GAEnBxhC,KAAKyhC,aAAe,EACpBzhC,KAAK0hC,SAAW,GAChB1hC,KAAK2hC,iBAAmB,GAExB3hC,KAAK4hC,uBAAyB,EAC9B5hC,KAAK6hC,QAAS,EAEd7hC,KAAKqmB,sBAAwB,KAC7BrmB,KAAK2iB,aAAe,KACpB3iB,KAAK4lB,YAAc,IACvB,CAGAlF,OAEA,CAEAohB,oBAAoB/+B,GAChB/C,KAAK+hC,WACL/hC,KAAK0gB,KAAK3d,GACV/C,KAAKgiC,YACT,CAGAlK,eACI,MAAQ93B,KAAKuhC,WAAWr8C,QAAU8a,KAAK6hC,QAAQ,CAC3C7hC,KAAK4hC,sBAAwB,EAE7B,MAAM1iB,EAAKlf,KAAK+hC,WAEX/hC,KAAKiiC,sBACNjiC,KAAKA,KAAKmnB,OAAOjI,EAEzB,CAEA,OAAOlf,KAAKuhC,WAAWW,OAC3B,CAEAhL,MAAMiL,EAAOC,GACTpiC,KAAK6hC,QAAS,EACd7hC,KAAK0hB,aAAawV,MAAMiL,EAAOC,EACnC,CAEAC,uBAAuBF,GACnBniC,KAAK6hC,QAAS,EACd7hC,KAAK0hB,aAAa2gB,uBAAuBF,EAC7C,CAGAF,qBACI,GAAIjiC,KAAK0hB,aAAa4gB,cAAe,CACjC,KAAOtiC,KAAK4hC,sBAAwB,EAAG5hC,KAAK4hC,wBACxC5hC,KAAK0hB,aAAa8F,UAMtB,OAHAxnB,KAAK6hC,QAAS,EACd7hC,KAAKuhC,WAAWr7C,KAAK,CAAEC,KAAMomB,GAAUwrB,qBAEhC,CACX,CAEA,OAAO,CACX,CAGAgK,WAEI,OADA/hC,KAAK4hC,wBACE5hC,KAAK0hB,aAAa6F,SAC7B,CAEAya,aACIhiC,KAAK4hC,wBACL5hC,KAAK0hB,aAAa8F,SACtB,CAEA+a,kBAAkBpb,GACdnnB,KAAKmnB,MAAQA,EACbnnB,KAAKgiC,YACT,CAEAQ,wBAAwBlpC,EAASmpC,EAAS37C,GACtC,IAAI47C,EAAgB,EAChBC,GAAU,EACd,MAAMC,EAAgBtpC,EAAQpU,OAC9B,IAEI29C,EAFAC,EAAa,EACb5jB,EAAKujB,EAGT,KAAOK,EAAaF,EAAeE,IAAc,CAM7C,GALIA,EAAa,IACb5jB,EAAKlf,KAAK+hC,WACVW,KAGAxjB,IAAOzS,EAAEkQ,IAAK,CACdgmB,GAAU,EACV,KACJ,CAIA,GAFAE,EAAYvpC,EAAQwpC,GAEhB5jB,IAAO2jB,IAAc/7C,GAAiBo4B,IAAO2hB,GAAsBgC,IAAa,CAChFF,GAAU,EACV,KACJ,CACJ,CAEA,IAAKA,EACD,KAAOD,KACH1iC,KAAKgiC,aAIb,OAAOW,CACX,CAGAI,mCACI,GAAI/iC,KAAK0hC,SAASx8C,SAAWi2C,EAAGrc,cAAc55B,OAC1C,OAAO,EAGX,IAAK,IAAID,EAAI,EAAGA,EAAI+a,KAAK0hC,SAASx8C,OAAQD,IACtC,GAAI+a,KAAK0hC,SAASz8C,KAAOk2C,EAAGrc,cAAc75B,GACtC,OAAO,EAIf,OAAO,CACX,CAGA6gC,uBACI9lB,KAAK2iB,aAAe,CAChBx8B,KAAMomB,GAAU0gB,gBAChB7mC,QAAS,GACTutC,aAAa,EACb7E,gBAAgB,EAChBrY,MAAO,GAEf,CAEAsP,qBACI/lB,KAAK2iB,aAAe,CAChBx8B,KAAMomB,GAAU+W,cAChBl9B,QAAS,GACTutC,aAAa,EACbld,MAAO,GAEf,CAEAuP,sBACIhmB,KAAK2iB,aAAe,CAChBx8B,KAAMomB,GAAUkgB,cAChB/iC,KAAM,GAEd,CAEAu8B,oBAAoBC,GAChBlmB,KAAK2iB,aAAe,CAChBx8B,KAAMomB,GAAUogB,cAChBzoC,KAAMgiC,EACN4G,aAAa,EACb7kB,SAAU,KACVI,SAAU,KAElB,CAEA8d,sBAAsBhgC,EAAMigC,GACxBpmB,KAAKqmB,sBAAwB,CACzBlgC,KAAMA,EACN6xC,MAAO5R,EAEf,CAEAE,kBACItmB,KAAK2iB,aAAe,CAAEx8B,KAAMomB,GAAUsa,UAC1C,CAGAN,YAAYC,GACRxmB,KAAK4lB,YAAc,CACf1hC,KAAMsiC,EACNniC,MAAO,GAEf,CAEAoiC,eAAeC,GAC8D,OAArEna,GAAU6J,aAAapW,KAAK2iB,aAAc3iB,KAAK4lB,YAAY1hC,MAC3D8b,KAAK2iB,aAAalM,MAAMvwB,KAAK8Z,KAAK4lB,aAElC5lB,KAAK0gB,KAAK0J,EAAIze,oBAGlB3L,KAAKmnB,MAAQT,CACjB,CAEAC,gBAAgBD,GACZ1mB,KAAKmnB,MAAQT,CACjB,CAGAE,oBACI5mB,KAAK8mB,6BAEL,MAAMkc,EAAKhjC,KAAK2iB,aAEhB3iB,KAAK2iB,aAAe,KAGhBqgB,EAAG78C,OAASomB,GAAU0gB,gBACtBjtB,KAAK2hC,iBAAmBqB,EAAG58C,QACpB48C,EAAG78C,OAASomB,GAAU+W,gBACzB0f,EAAGvsB,MAAMvxB,OAAS,GAClB8a,KAAK0gB,KAAK0J,EAAIrhB,sBAGdi6B,EAAGrP,aACH3zB,KAAK0gB,KAAK0J,EAAIphB,4BAItBhJ,KAAKuhC,WAAWr7C,KAAK88C,EACzB,CAEAlc,6BACQ9mB,KAAKqmB,wBACLrmB,KAAKuhC,WAAWr7C,KAAK8Z,KAAKqmB,uBAC1BrmB,KAAKqmB,sBAAwB,KAErC,CAEA4c,gBACIjjC,KAAKsmB,kBACLtmB,KAAK4mB,mBACT,CAYAsc,mCAAmC/8C,EAAMigC,GACjCpmB,KAAKqmB,uBAAyBrmB,KAAKqmB,sBAAsBlgC,OAASA,GAClE6Z,KAAK8mB,6BAGL9mB,KAAKqmB,sBACLrmB,KAAKqmB,sBAAsB2R,OAAS5R,EAEpCpmB,KAAKmmB,sBAAsBhgC,EAAMigC,EAEzC,CAEA+c,eAAejkB,GACX,IAAI/4B,EAAOomB,GAAU6f,gBAEjBiU,GAAanhB,GACb/4B,EAAOomB,GAAUggB,2BACVrN,IAAOzS,EAAEmQ,OAChBz2B,EAAOomB,GAAU+f,sBAGrBtsB,KAAKkjC,mCAAmC/8C,EAAM26C,GAAO5hB,GACzD,CAEAkkB,uBAAuBC,GACnB,IAAK,IAAIp+C,EAAI,EAAGA,EAAIo+C,EAAWn+C,OAAQD,IACnC+a,KAAKmjC,eAAeE,EAAWp+C,GAEvC,CAIAq+C,WAAWld,GACPpmB,KAAKkjC,mCAAmC32B,GAAU6f,gBAAiBhG,EACvE,CAGAmd,8BAA8Bd,GAC1B,IAAIx7C,EAAS,KACTu8C,EAAS,EACTv+C,EAAI+7C,GAA0B,EAAGyB,GAIrC,IAFAziC,KAAK0hC,SAASx7C,KAAKu8C,GAEZx9C,GAAK,GAAG,CACX,MAAMg9B,EAAUiZ,EAAOj2C,GACjBw+C,EAASxhB,EAvdKyhB,EAwdCD,GA3dX,EA2dqBxhB,IAI3Bh7B,EA9dS,EA8dAg7B,EAA6B,CAACiZ,IAASj2C,GAAIi2C,IAASj2C,IAAM,CAACi2C,IAASj2C,IAC7Eu+C,EAAS,GAGb,MAAMtkB,EAAKlf,KAAK+hC,WAKhB,GAHA/hC,KAAK0hC,SAASx7C,KAAKg5B,GACnBskB,IAEItkB,IAAOzS,EAAEkQ,IACT,MAIA13B,EADAw+C,EA1eU,EA2eNxhB,EAA8B+e,GAA0B/7C,EAAGi6B,IAAO,EAElEA,IAAO+C,IAAYh9B,GAAK,CAEpC,CAEA,KAAOu+C,KACHxjC,KAAK0hC,SAAS1f,MACdhiB,KAAKgiC,aAGT,OAAO/6C,CACX,CAEA08C,mCACI,OACI3jC,KAAKwhC,cAAgBhE,GACrBx9B,KAAKwhC,cAAgB/D,GACrBz9B,KAAKwhC,cAAgB9D,CAE7B,CAEAkG,oCAAoCC,GAChC,IAAKA,GAAiB7jC,KAAK2jC,mCAAoC,CAC3D,MAAMG,EAAS9jC,KAAK+hC,WAIpB,OAFA/hC,KAAKgiC,aAEE8B,IAAWr3B,EAAEoR,aAAe6iB,GAAoBoD,EAC3D,CAEA,OAAO,CACX,CAEAC,+CACI,GAAI/jC,KAAK2jC,mCACL,IAAK,IAAI1+C,EAAI,EAAGA,EAAI+a,KAAK0hC,SAASx8C,OAAQD,IACtC+a,KAAK4lB,YAAYvhC,OAASy8C,GAAO9gC,KAAK0hC,SAASz8C,SAGnD+a,KAAKojC,uBAAuBpjC,KAAK0hC,UAGrC1hC,KAAK0hC,SAAW,EACpB,CAMA,CAACrG,GAAYnc,GACTlf,KAAK0hB,aAAa+F,kBAEdvI,IAAOzS,EAAEmR,eACT5d,KAAKmnB,MAAQuU,EACNxc,IAAOzS,EAAE4Q,WAChBrd,KAAKwhC,YAAcnG,EACnBr7B,KAAKmnB,MAAQyY,IACN1gB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKmjC,eAAejkB,IACbA,IAAOzS,EAAEkQ,IAChB3c,KAAKijC,gBAELjjC,KAAKmjC,eAAejkB,EAE5B,CAIA,CAACoc,GAAcpc,GACXlf,KAAK0hB,aAAa+F,kBAEdvI,IAAOzS,EAAE4Q,WACTrd,KAAKwhC,YAAclG,EACnBt7B,KAAKmnB,MAAQyY,IACN1gB,IAAOzS,EAAEmR,eAChB5d,KAAKmnB,MAAQ0U,EACN3c,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,IAChB3c,KAAKijC,gBAELjjC,KAAKmjC,eAAejkB,EAE5B,CAIA,CAACqc,GAAerc,GACZlf,KAAK0hB,aAAa+F,kBAEdvI,IAAOzS,EAAEmR,eACT5d,KAAKmnB,MAAQ6U,EACN9c,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,IAChB3c,KAAKijC,gBAELjjC,KAAKmjC,eAAejkB,EAE5B,CAIA,CAACsc,GAAmBtc,GAChBlf,KAAK0hB,aAAa+F,kBAEdvI,IAAOzS,EAAEmR,eACT5d,KAAKmnB,MAAQgV,EACNjd,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,IAChB3c,KAAKijC,gBAELjjC,KAAKmjC,eAAejkB,EAE5B,CAIA,CAACuc,GAAiBvc,GACdlf,KAAK0hB,aAAa+F,kBAEdvI,IAAOzS,EAAEmQ,MACT5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,IAChB3c,KAAKijC,gBAELjjC,KAAKmjC,eAAejkB,EAE5B,CAIA,CAACwc,GAAgBxc,GACTA,IAAOzS,EAAEyQ,iBACTld,KAAKmnB,MAAQ2W,EACN5e,IAAOzS,EAAE+Q,QAChBxd,KAAKmnB,MAAQwU,EACN8E,GAAcvhB,IACrBlf,KAAK8lB,uBACL9lB,KAAKuiC,kBAAkB3G,IAChB1c,IAAOzS,EAAEsR,eAChB/d,KAAK0gB,KAAK0J,EAAIjhB,wCACdnJ,KAAKgmB,sBACLhmB,KAAKuiC,kBAAkB1E,IAChB3e,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxgB,kBACd5J,KAAKsjC,WAAW,KAChBtjC,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIhhB,gCACdpJ,KAAKsjC,WAAW,KAChBtjC,KAAKuiC,kBAAkBlH,GAE/B,CAIA,CAACM,GAAoBzc,GACbuhB,GAAcvhB,IACdlf,KAAK+lB,qBACL/lB,KAAKuiC,kBAAkB3G,IAChB1c,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI9gB,mBACdtJ,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxgB,kBACd5J,KAAKsjC,WAAW,MAChBtjC,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIhhB,gCACdpJ,KAAKgmB,sBACLhmB,KAAKuiC,kBAAkB1E,GAE/B,CAIA,CAACjC,GAAgB1c,GACTmhB,GAAanhB,GACblf,KAAKmnB,MAAQiW,EACNle,IAAOzS,EAAE+Q,QAChBxd,KAAKmnB,MAAQyW,EACN1e,IAAOzS,EAAEqR,mBAChB9d,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE2Z,GAAarhB,GACpBlf,KAAK2iB,aAAav8B,SAAW26C,GAAiB7hB,GACvCA,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK2iB,aAAav8B,SAAWikC,EAAQ5N,uBAC9ByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIvgB,UACd7J,KAAKijC,iBAELjjC,KAAK2iB,aAAav8B,SAAW06C,GAAO5hB,EAE5C,CAIA,CAAC2c,GAA6B3c,GACtBA,IAAOzS,EAAE+Q,SACTxd,KAAK0hC,SAAW,GAChB1hC,KAAKmnB,MAAQ2U,IAEb97B,KAAKsjC,WAAW,KAChBtjC,KAAKuiC,kBAAkBjH,GAE/B,CAIA,CAACQ,GAA2B5c,GACpBuhB,GAAcvhB,IACdlf,KAAK+lB,qBACL/lB,KAAKuiC,kBAAkBxG,KAEvB/7B,KAAKsjC,WAAW,MAChBtjC,KAAKuiC,kBAAkBjH,GAE/B,CAIA,CAACS,GAA2B7c,GACxB,GAAIqhB,GAAarhB,GACblf,KAAK2iB,aAAav8B,SAAW26C,GAAiB7hB,GAC9Clf,KAAK0hC,SAASx7C,KAAKg5B,QAChB,GAAIshB,GAAathB,GACpBlf,KAAK2iB,aAAav8B,SAAW06C,GAAO5hB,GACpClf,KAAK0hC,SAASx7C,KAAKg5B,OAChB,CACH,GAAIlf,KAAK2hC,mBAAqB3hC,KAAK2iB,aAAav8B,QAAS,CACrD,GAAIi6C,GAAanhB,GAEb,YADAlf,KAAKmnB,MAAQiW,GAIjB,GAAIle,IAAOzS,EAAE+Q,QAET,YADAxd,KAAKmnB,MAAQyW,GAIjB,GAAI1e,IAAOzS,EAAEqR,kBAGT,OAFA9d,KAAKmnB,MAAQkU,OACbr7B,KAAK4mB,mBAGb,CAEA5mB,KAAKsjC,WAAW,MAChBtjC,KAAKojC,uBAAuBpjC,KAAK0hC,UACjC1hC,KAAKuiC,kBAAkBjH,EAC3B,CACJ,CAIA,CAACU,GAA8B9c,GACvBA,IAAOzS,EAAE+Q,SACTxd,KAAK0hC,SAAW,GAChB1hC,KAAKmnB,MAAQ8U,IAEbj8B,KAAKsjC,WAAW,KAChBtjC,KAAKuiC,kBAAkBhH,GAE/B,CAIA,CAACU,GAA4B/c,GACrBuhB,GAAcvhB,IACdlf,KAAK+lB,qBACL/lB,KAAKuiC,kBAAkBrG,KAEvBl8B,KAAKsjC,WAAW,MAChBtjC,KAAKuiC,kBAAkBhH,GAE/B,CAIA,CAACW,GAA4Bhd,GACzB,GAAIqhB,GAAarhB,GACblf,KAAK2iB,aAAav8B,SAAW26C,GAAiB7hB,GAC9Clf,KAAK0hC,SAASx7C,KAAKg5B,QAChB,GAAIshB,GAAathB,GACpBlf,KAAK2iB,aAAav8B,SAAW06C,GAAO5hB,GACpClf,KAAK0hC,SAASx7C,KAAKg5B,OAChB,CACH,GAAIlf,KAAK2hC,mBAAqB3hC,KAAK2iB,aAAav8B,QAAS,CACrD,GAAIi6C,GAAanhB,GAEb,YADAlf,KAAKmnB,MAAQiW,GAIjB,GAAIle,IAAOzS,EAAE+Q,QAET,YADAxd,KAAKmnB,MAAQyW,GAIjB,GAAI1e,IAAOzS,EAAEqR,kBAGT,OAFA9d,KAAK4mB,yBACL5mB,KAAKmnB,MAAQkU,EAGrB,CAEAr7B,KAAKsjC,WAAW,MAChBtjC,KAAKojC,uBAAuBpjC,KAAK0hC,UACjC1hC,KAAKuiC,kBAAkBhH,EAC3B,CACJ,CAIA,CAACY,GAAkCjd,GAC3BA,IAAOzS,EAAE+Q,SACTxd,KAAK0hC,SAAW,GAChB1hC,KAAKmnB,MAAQiV,GACNld,IAAOzS,EAAEyQ,kBAChBld,KAAKmnB,MAAQmV,EACbt8B,KAAKsjC,WAAW,QAEhBtjC,KAAKsjC,WAAW,KAChBtjC,KAAKuiC,kBAAkB/G,GAE/B,CAIA,CAACY,GAAgCld,GACzBuhB,GAAcvhB,IACdlf,KAAK+lB,qBACL/lB,KAAKuiC,kBAAkBlG,KAEvBr8B,KAAKsjC,WAAW,MAChBtjC,KAAKuiC,kBAAkB/G,GAE/B,CAIA,CAACa,GAAgCnd,GAC7B,GAAIqhB,GAAarhB,GACblf,KAAK2iB,aAAav8B,SAAW26C,GAAiB7hB,GAC9Clf,KAAK0hC,SAASx7C,KAAKg5B,QAChB,GAAIshB,GAAathB,GACpBlf,KAAK2iB,aAAav8B,SAAW06C,GAAO5hB,GACpClf,KAAK0hC,SAASx7C,KAAKg5B,OAChB,CACH,GAAIlf,KAAK2hC,mBAAqB3hC,KAAK2iB,aAAav8B,QAAS,CACrD,GAAIi6C,GAAanhB,GAEb,YADAlf,KAAKmnB,MAAQiW,GAEV,GAAIle,IAAOzS,EAAE+Q,QAEhB,YADAxd,KAAKmnB,MAAQyW,GAEV,GAAI1e,IAAOzS,EAAEqR,kBAGhB,OAFA9d,KAAK4mB,yBACL5mB,KAAKmnB,MAAQkU,EAGrB,CAEAr7B,KAAKsjC,WAAW,MAChBtjC,KAAKojC,uBAAuBpjC,KAAK0hC,UACjC1hC,KAAKuiC,kBAAkB/G,EAC3B,CACJ,CAIA,CAACc,GAAgCpd,GACzBA,IAAOzS,EAAE8Q,cACTvd,KAAKmnB,MAAQoV,EACbv8B,KAAKsjC,WAAW,MAEhBtjC,KAAKuiC,kBAAkB/G,EAE/B,CAIA,CAACe,GAAqCrd,GAC9BA,IAAOzS,EAAE8Q,cACTvd,KAAKmnB,MAAQuV,EACb18B,KAAKsjC,WAAW,MAEhBtjC,KAAKuiC,kBAAkB/G,EAE/B,CAIA,CAACgB,GAA2Btd,GACpBA,IAAOzS,EAAE8Q,cACTvd,KAAKmnB,MAAQsV,EACbz8B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEmR,eAChB5d,KAAKmnB,MAAQwV,EACNzd,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIzf,gCACd3K,KAAKijC,iBAELjjC,KAAKmjC,eAAejkB,EAE5B,CAIA,CAACud,GAAgCvd,GACzBA,IAAOzS,EAAE8Q,cACTvd,KAAKmnB,MAAQuV,EACb18B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEmR,eAChB5d,KAAKmnB,MAAQwV,EACNzd,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKmnB,MAAQqV,EACbx8B,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIzf,gCACd3K,KAAKijC,kBAELjjC,KAAKmnB,MAAQqV,EACbx8B,KAAKmjC,eAAejkB,GAE5B,CAIA,CAACwd,GAAqCxd,GAC9BA,IAAOzS,EAAE8Q,aACTvd,KAAKsjC,WAAW,KACTpkB,IAAOzS,EAAEmR,eAChB5d,KAAKmnB,MAAQwV,EACNzd,IAAOzS,EAAEqR,mBAChB9d,KAAKmnB,MAAQqU,EACbx7B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKmnB,MAAQqV,EACbx8B,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIzf,gCACd3K,KAAKijC,kBAELjjC,KAAKmnB,MAAQqV,EACbx8B,KAAKmjC,eAAejkB,GAE5B,CAIA,CAACyd,GAA0Czd,GACnCA,IAAOzS,EAAE+Q,SACTxd,KAAK0hC,SAAW,GAChB1hC,KAAKmnB,MAAQyV,GACN6D,GAAcvhB,IACrBlf,KAAK0hC,SAAW,GAChB1hC,KAAKsjC,WAAW,KAChBtjC,KAAKuiC,kBAAkBzF,KAEvB98B,KAAKsjC,WAAW,KAChBtjC,KAAKuiC,kBAAkB/F,GAE/B,CAIA,CAACI,GAAwC1d,GACjCuhB,GAAcvhB,IACdlf,KAAK+lB,qBACL/lB,KAAKuiC,kBAAkB1F,KAEvB78B,KAAKsjC,WAAW,MAChBtjC,KAAKuiC,kBAAkB/F,GAE/B,CAIA,CAACK,GAAwC3d,GACrC,GAAIqhB,GAAarhB,GACblf,KAAK2iB,aAAav8B,SAAW26C,GAAiB7hB,GAC9Clf,KAAK0hC,SAASx7C,KAAKg5B,QAChB,GAAIshB,GAAathB,GACpBlf,KAAK2iB,aAAav8B,SAAW06C,GAAO5hB,GACpClf,KAAK0hC,SAASx7C,KAAKg5B,OAChB,CACH,GAAIlf,KAAK2hC,mBAAqB3hC,KAAK2iB,aAAav8B,QAAS,CACrD,GAAIi6C,GAAanhB,GAEb,YADAlf,KAAKmnB,MAAQiW,GAIjB,GAAIle,IAAOzS,EAAE+Q,QAET,YADAxd,KAAKmnB,MAAQyW,GAIjB,GAAI1e,IAAOzS,EAAEqR,kBAGT,OAFA9d,KAAK4mB,yBACL5mB,KAAKmnB,MAAQkU,EAGrB,CAEAr7B,KAAKsjC,WAAW,MAChBtjC,KAAKojC,uBAAuBpjC,KAAK0hC,UACjC1hC,KAAKuiC,kBAAkB/F,EAC3B,CACJ,CAIA,CAACM,GAAuC5d,GAChCmhB,GAAanhB,IAAOA,IAAOzS,EAAE+Q,SAAW0B,IAAOzS,EAAEqR,mBACjD9d,KAAKmnB,MAAQnnB,KAAK+iC,mCACZhG,EACAP,EACNx8B,KAAKmjC,eAAejkB,IACbqhB,GAAarhB,IACpBlf,KAAK0hC,SAASx7C,KAAK26C,GAAsB3hB,IACzClf,KAAKmjC,eAAejkB,IACbshB,GAAathB,IACpBlf,KAAK0hC,SAASx7C,KAAKg5B,GACnBlf,KAAKmjC,eAAejkB,IAEpBlf,KAAKuiC,kBAAkB/F,EAE/B,CAIA,CAACO,GAAkC7d,GAC3BA,IAAOzS,EAAE8Q,cACTvd,KAAKmnB,MAAQ6V,EACbh9B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEmR,gBAChB5d,KAAKmnB,MAAQ+V,EACbl9B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIzf,gCACd3K,KAAKijC,iBAELjjC,KAAKmjC,eAAejkB,EAE5B,CAIA,CAAC8d,GAAuC9d,GAChCA,IAAOzS,EAAE8Q,cACTvd,KAAKmnB,MAAQ8V,EACbj9B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEmR,gBAChB5d,KAAKmnB,MAAQ+V,EACbl9B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKmnB,MAAQ4V,EACb/8B,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIzf,gCACd3K,KAAKijC,kBAELjjC,KAAKmnB,MAAQ4V,EACb/8B,KAAKmjC,eAAejkB,GAE5B,CAIA,CAAC+d,GAA4C/d,GACrCA,IAAOzS,EAAE8Q,aACTvd,KAAKsjC,WAAW,KACTpkB,IAAOzS,EAAEmR,gBAChB5d,KAAKmnB,MAAQ+V,EACbl9B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEqR,mBAChB9d,KAAKmnB,MAAQqU,EACbx7B,KAAKsjC,WAAW,MACTpkB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKmnB,MAAQ4V,EACb/8B,KAAKsjC,WAAWjZ,EAAQ5N,wBACjByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIzf,gCACd3K,KAAKijC,kBAELjjC,KAAKmnB,MAAQ4V,EACb/8B,KAAKmjC,eAAejkB,GAE5B,CAIA,CAACge,GAAiDhe,GAC1CA,IAAOzS,EAAE+Q,SACTxd,KAAK0hC,SAAW,GAChB1hC,KAAKmnB,MAAQgW,EACbn9B,KAAKsjC,WAAW,MAEhBtjC,KAAKuiC,kBAAkBxF,EAE/B,CAIA,CAACI,GAAqCje,GAC9BmhB,GAAanhB,IAAOA,IAAOzS,EAAE+Q,SAAW0B,IAAOzS,EAAEqR,mBACjD9d,KAAKmnB,MAAQnnB,KAAK+iC,mCACZvG,EACAO,EAEN/8B,KAAKmjC,eAAejkB,IACbqhB,GAAarhB,IACpBlf,KAAK0hC,SAASx7C,KAAK26C,GAAsB3hB,IACzClf,KAAKmjC,eAAejkB,IACbshB,GAAathB,IACpBlf,KAAK0hC,SAASx7C,KAAKg5B,GACnBlf,KAAKmjC,eAAejkB,IAEpBlf,KAAKuiC,kBAAkBxF,EAE/B,CAIA,CAACK,GAA6Ble,GACtBmhB,GAAanhB,KAIbA,IAAOzS,EAAE+Q,SAAW0B,IAAOzS,EAAEqR,mBAAqBoB,IAAOzS,EAAEkQ,IAC3D3c,KAAKuiC,kBAAkBjF,GAChBpe,IAAOzS,EAAEoR,aAChB7d,KAAK0gB,KAAK0J,EAAI/gB,yCACdrJ,KAAKumB,YAAY,KACjBvmB,KAAKmnB,MAAQkW,IAEbr9B,KAAKumB,YAAY,IACjBvmB,KAAKuiC,kBAAkBlF,IAE/B,CAIA,CAACA,GAAsBne,GACfmhB,GAAanhB,IAAOA,IAAOzS,EAAE+Q,SAAW0B,IAAOzS,EAAEqR,mBAAqBoB,IAAOzS,EAAEkQ,KAC/E3c,KAAKymB,eAAe6W,GACpBt9B,KAAKgiC,cACE9iB,IAAOzS,EAAEoR,YAChB7d,KAAKymB,eAAe8W,GACbgD,GAAarhB,GACpBlf,KAAK4lB,YAAY1hC,MAAQ68C,GAAiB7hB,GACnCA,IAAOzS,EAAE0Q,gBAAkB+B,IAAOzS,EAAE6Q,YAAc4B,IAAOzS,EAAEmR,gBAClE5d,KAAK0gB,KAAK0J,EAAI7gB,oCACdvJ,KAAK4lB,YAAY1hC,MAAQ48C,GAAO5hB,IACzBA,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK4lB,YAAY1hC,MAAQmmC,EAAQ5N,uBAEjCzc,KAAK4lB,YAAY1hC,MAAQ48C,GAAO5hB,EAExC,CAIA,CAACoe,GAA4Bpe,GACrBmhB,GAAanhB,KAIbA,IAAOzS,EAAE+Q,QACTxd,KAAKmnB,MAAQyW,EACN1e,IAAOzS,EAAEoR,YAChB7d,KAAKmnB,MAAQoW,EACNre,IAAOzS,EAAEqR,mBAChB9d,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIvgB,UACd7J,KAAKijC,kBAELjjC,KAAKumB,YAAY,IACjBvmB,KAAKuiC,kBAAkBlF,IAE/B,CAIA,CAACE,GAA8Bre,GACvBmhB,GAAanhB,KAIbA,IAAOzS,EAAE0Q,eACTnd,KAAKmnB,MAAQqW,EACNte,IAAOzS,EAAE6Q,WAChBtd,KAAKmnB,MAAQsW,EACNve,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAItgB,uBACd9J,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBAEL5mB,KAAKuiC,kBAAkB7E,GAE/B,CAIA,CAACF,GAAqCte,GAC9BA,IAAOzS,EAAE0Q,eACTnd,KAAKmnB,MAAQwW,EACNze,IAAOzS,EAAE4Q,WAChBrd,KAAKwhC,YAAchE,EACnBx9B,KAAKmnB,MAAQyY,IACN1gB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK4lB,YAAYvhC,OAASgmC,EAAQ5N,uBAC3ByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIvgB,UACd7J,KAAKijC,iBAELjjC,KAAK4lB,YAAYvhC,OAASy8C,GAAO5hB,EAEzC,CAIA,CAACue,GAAqCve,GAC9BA,IAAOzS,EAAE6Q,WACTtd,KAAKmnB,MAAQwW,EACNze,IAAOzS,EAAE4Q,WAChBrd,KAAKwhC,YAAc/D,EACnBz9B,KAAKmnB,MAAQyY,IACN1gB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK4lB,YAAYvhC,OAASgmC,EAAQ5N,uBAC3ByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIvgB,UACd7J,KAAKijC,iBAELjjC,KAAK4lB,YAAYvhC,OAASy8C,GAAO5hB,EAEzC,CAIA,CAACwe,GAAgCxe,GACzBmhB,GAAanhB,GACblf,KAAK2mB,gBAAgByW,GACdle,IAAOzS,EAAE4Q,WAChBrd,KAAKwhC,YAAc9D,EACnB19B,KAAKmnB,MAAQyY,IACN1gB,IAAOzS,EAAEqR,mBAChB9d,KAAK2mB,gBAAgB0U,GACrBr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK4lB,YAAYvhC,OAASgmC,EAAQ5N,uBAElCyC,IAAOzS,EAAE0Q,gBACT+B,IAAOzS,EAAE6Q,YACT4B,IAAOzS,EAAEmR,gBACTsB,IAAOzS,EAAEoR,aACTqB,IAAOzS,EAAE4R,cAETre,KAAK0gB,KAAK0J,EAAIzgB,6CACd3J,KAAK4lB,YAAYvhC,OAASy8C,GAAO5hB,IAC1BA,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIvgB,UACd7J,KAAKijC,iBAELjjC,KAAK4lB,YAAYvhC,OAASy8C,GAAO5hB,EAEzC,CAIA,CAACye,GAAoCze,GAC7BmhB,GAAanhB,GACblf,KAAK2mB,gBAAgByW,GACdle,IAAOzS,EAAE+Q,QAChBxd,KAAK2mB,gBAAgBiX,GACd1e,IAAOzS,EAAEqR,mBAChB9d,KAAK2mB,gBAAgB0U,GACrBr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIvgB,UACd7J,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIrgB,oCACd/J,KAAKuiC,kBAAkBnF,GAE/B,CAIA,CAACQ,GAA8B1e,GACvBA,IAAOzS,EAAEqR,mBACT9d,KAAK2iB,aAAagR,aAAc,EAChC3zB,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIvgB,UACd7J,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAInhB,wBACdjJ,KAAKuiC,kBAAkBnF,GAE/B,CAIA,CAACS,GAAqB3e,GACdA,IAAOzS,EAAEqR,mBACT9d,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK4mB,oBACL5mB,KAAKijC,iBACE/jB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK2iB,aAAaj5B,MAAQ2gC,EAAQ5N,uBAElCzc,KAAK2iB,aAAaj5B,MAAQo3C,GAAO5hB,EAEzC,CAIA,CAAC4e,GAA+B5e,GACxBlf,KAAKwiC,wBAAwBrH,EAAGxc,iBAAkBO,GAAI,IACtDlf,KAAKgmB,sBACLhmB,KAAKmnB,MAAQ4W,GACN/9B,KAAKwiC,wBAAwBrH,EAAGvc,eAAgBM,GAAI,GAC3Dlf,KAAKmnB,MAAQsX,GACNz+B,KAAKwiC,wBAAwBrH,EAAGtc,mBAAoBK,GAAI,GAC3Dlf,KAAKs4B,WACLt4B,KAAKmnB,MAAQsY,IAEbz/B,KAAK0gB,KAAK0J,EAAI3f,oBACdzK,KAAKgmB,sBACLhmB,KAAK2iB,aAAaj5B,KAAO,UACzBsW,KAAKmnB,MAAQ0W,GAMX79B,KAAKiiC,uBACXjiC,KAAK0gB,KAAK0J,EAAI1f,0BACd1K,KAAKgmB,sBACLhmB,KAAKuiC,kBAAkB1E,GAE/B,CAIA,CAACE,GAAqB7e,GACdA,IAAOzS,EAAE8Q,aACTvd,KAAKmnB,MAAQ6W,EACN9e,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAItf,6BACd9K,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBAEL5mB,KAAKuiC,kBAAkBtE,GAE/B,CAIA,CAACD,GAA0B9e,GACnBA,IAAOzS,EAAE8Q,aACTvd,KAAKmnB,MAAQoX,GACNrf,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAItf,6BACd9K,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIrf,cACd/K,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK2iB,aAAaj5B,MAAQ,IAC1BsW,KAAKuiC,kBAAkBtE,IAE/B,CAIA,CAACA,IAAe/e,GACRA,IAAOzS,EAAE8Q,aACTvd,KAAKmnB,MAAQmX,GACNpf,IAAOzS,EAAEmR,gBAChB5d,KAAK2iB,aAAaj5B,MAAQ,IAC1BsW,KAAKmnB,MAAQ+W,IACNhf,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK2iB,aAAaj5B,MAAQ2gC,EAAQ5N,uBAC3ByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIrf,cACd/K,KAAK4mB,oBACL5mB,KAAKijC,iBAELjjC,KAAK2iB,aAAaj5B,MAAQo3C,GAAO5hB,EAEzC,CAIA,CAACgf,IAA8Bhf,GACvBA,IAAOzS,EAAEyQ,kBACTld,KAAK2iB,aAAaj5B,MAAQ,IAC1BsW,KAAKmnB,MAAQgX,IACNjf,IAAOzS,EAAEmR,eAChB5d,KAAK2iB,aAAaj5B,MAAQ,IAE1BsW,KAAKuiC,kBAAkBtE,GAE/B,CAIA,CAACE,IAAmCjf,GAC5BA,IAAOzS,EAAE8Q,aACTvd,KAAKmnB,MAAQiX,GAEbp+B,KAAKuiC,kBAAkBtE,GAE/B,CAIA,CAACG,IAAwClf,GACjCA,IAAOzS,EAAE8Q,aACTvd,KAAKmnB,MAAQkX,GAEbr+B,KAAKuiC,kBAAkBjE,GAE/B,CAIA,CAACD,IAA6Cnf,GACtCA,IAAOzS,EAAEqR,mBAAqBoB,IAAOzS,EAAEkQ,KACvC3c,KAAK0gB,KAAK0J,EAAIvf,eAGlB7K,KAAKuiC,kBAAkBhE,GAC3B,CAIA,CAACD,IAAwBpf,GACjBA,IAAOzS,EAAE8Q,aACTvd,KAAKmnB,MAAQoX,GACNrf,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIrf,cACd/K,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK2iB,aAAaj5B,MAAQ,IAC1BsW,KAAKuiC,kBAAkBtE,IAE/B,CAIA,CAACM,IAAmBrf,GACZA,IAAOzS,EAAEqR,mBACT9d,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEyQ,iBAChBld,KAAKmnB,MAAQqX,GACNtf,IAAOzS,EAAE8Q,aAChBvd,KAAK2iB,aAAaj5B,MAAQ,IACnBw1B,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIrf,cACd/K,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK2iB,aAAaj5B,MAAQ,KAC1BsW,KAAKuiC,kBAAkBtE,IAE/B,CAIA,CAACO,IAAwBtf,GACjBA,IAAOzS,EAAE8Q,cACTvd,KAAK2iB,aAAaj5B,MAAQ,MAC1BsW,KAAKmnB,MAAQmX,IACNpf,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAIpf,0BACdhL,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIrf,cACd/K,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK2iB,aAAaj5B,MAAQ,MAC1BsW,KAAKuiC,kBAAkBtE,IAE/B,CAIA,CAACQ,IAAevf,GACRmhB,GAAanhB,GACblf,KAAKmnB,MAAQuX,GACNxf,IAAOzS,EAAEqR,kBAChB9d,KAAKuiC,kBAAkB7D,IAChBxf,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAKimB,oBAAoB,MACzBjmB,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAI5e,oCACdxL,KAAKuiC,kBAAkB7D,IAE/B,CAIA,CAACA,IAA2Bxf,GACpBmhB,GAAanhB,KAIbqhB,GAAarhB,IACblf,KAAKimB,oBAAoB8a,GAAiB7hB,IAC1Clf,KAAKmnB,MAAQwX,IACNzf,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAKimB,oBAAoBoE,EAAQ5N,uBACjCzc,KAAKmnB,MAAQwX,IACNzf,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI3e,oBACdzL,KAAKimB,oBAAoB,MACzBjmB,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAKimB,oBAAoB,MACzBjmB,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAKimB,oBAAoB6a,GAAO5hB,IAChClf,KAAKmnB,MAAQwX,IAErB,CAIA,CAACA,IAAoBzf,GACbmhB,GAAanhB,GACblf,KAAKmnB,MAAQyX,GACN1f,IAAOzS,EAAEqR,mBAChB9d,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE2Z,GAAarhB,GACpBlf,KAAK2iB,aAAaz+B,MAAQ68C,GAAiB7hB,GACpCA,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK2iB,aAAaz+B,MAAQmmC,EAAQ5N,uBAC3ByC,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,iBAELjjC,KAAK2iB,aAAaz+B,MAAQ48C,GAAO5hB,EAEzC,CAIA,CAAC0f,IAA0B1f,GACnBmhB,GAAanhB,KAIbA,IAAOzS,EAAEqR,mBACT9d,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,iBACEjjC,KAAKwiC,wBAAwBrH,EAAGpc,cAAeG,GAAI,GAC1Dlf,KAAKmnB,MAAQ0X,GACN7+B,KAAKwiC,wBAAwBrH,EAAGnc,cAAeE,GAAI,GAC1Dlf,KAAKmnB,MAAQgY,GAIPn/B,KAAKiiC,uBACXjiC,KAAK0gB,KAAK0J,EAAI1e,0CACd1L,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKuiC,kBAAkB/C,KAE/B,CAIA,CAACX,IAAoC3f,GAC7BmhB,GAAanhB,GACblf,KAAKmnB,MAAQ2X,GACN5f,IAAOzS,EAAE0Q,gBAChBnd,KAAK0gB,KAAK0J,EAAIpgB,4CACdhK,KAAK2iB,aAAa1a,SAAW,GAC7BjI,KAAKmnB,MAAQ4X,IACN7f,IAAOzS,EAAE6Q,YAChBtd,KAAK0gB,KAAK0J,EAAIpgB,4CACdhK,KAAK2iB,aAAa1a,SAAW,GAC7BjI,KAAKmnB,MAAQ6X,IACN9f,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI/f,gCACdrK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIjgB,2CACdnK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKuiC,kBAAkB/C,IAE/B,CAIA,CAACV,IAAwC5f,GACjCmhB,GAAanhB,KAIbA,IAAOzS,EAAE0Q,gBACTnd,KAAK2iB,aAAa1a,SAAW,GAC7BjI,KAAKmnB,MAAQ4X,IACN7f,IAAOzS,EAAE6Q,YAChBtd,KAAK2iB,aAAa1a,SAAW,GAC7BjI,KAAKmnB,MAAQ6X,IACN9f,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI/f,gCACdrK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIjgB,2CACdnK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKuiC,kBAAkB/C,KAE/B,CAIA,CAACT,IAA+C7f,GACxCA,IAAOzS,EAAE0Q,eACTnd,KAAKmnB,MAAQ8X,GACN/f,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK2iB,aAAa1a,UAAYoiB,EAAQ5N,uBAC/ByC,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI7f,+BACdvK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,iBAELjjC,KAAK2iB,aAAa1a,UAAY64B,GAAO5hB,EAE7C,CAIA,CAAC8f,IAA+C9f,GACxCA,IAAOzS,EAAE6Q,WACTtd,KAAKmnB,MAAQ8X,GACN/f,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK2iB,aAAa1a,UAAYoiB,EAAQ5N,uBAC/ByC,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI7f,+BACdvK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,iBAELjjC,KAAK2iB,aAAa1a,UAAY64B,GAAO5hB,EAE7C,CAIA,CAAC+f,IAAuC/f,GAChCmhB,GAAanhB,GACblf,KAAKmnB,MAAQ+X,GACNhgB,IAAOzS,EAAEqR,mBAChB9d,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAE0Q,gBAChBnd,KAAK0gB,KAAK0J,EAAIngB,2DACdjK,KAAK2iB,aAAata,SAAW,GAC7BrI,KAAKmnB,MAAQkY,IACNngB,IAAOzS,EAAE6Q,YAChBtd,KAAK0gB,KAAK0J,EAAIngB,2DACdjK,KAAK2iB,aAAata,SAAW,GAC7BrI,KAAKmnB,MAAQmY,IACNpgB,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIhgB,2CACdpK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKuiC,kBAAkB/C,IAE/B,CAIA,CAACN,IAAqDhgB,GAC9CmhB,GAAanhB,KAIbA,IAAOzS,EAAEqR,mBACT9d,KAAK4mB,oBACL5mB,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAE0Q,gBAChBnd,KAAK2iB,aAAata,SAAW,GAC7BrI,KAAKmnB,MAAQkY,IACNngB,IAAOzS,EAAE6Q,YAChBtd,KAAK2iB,aAAata,SAAW,GAC7BrI,KAAKmnB,MAAQmY,IACNpgB,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIhgB,2CACdpK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKuiC,kBAAkB/C,KAE/B,CAIA,CAACL,IAAoCjgB,GAC7BmhB,GAAanhB,GACblf,KAAKmnB,MAAQiY,GACNlgB,IAAOzS,EAAE0Q,gBAChBnd,KAAK0gB,KAAK0J,EAAIlgB,4CACdlK,KAAK2iB,aAAata,SAAW,GAC7BrI,KAAKmnB,MAAQkY,IACNngB,IAAOzS,EAAE6Q,YAChBtd,KAAK0gB,KAAK0J,EAAIlgB,4CACdlK,KAAK2iB,aAAata,SAAW,GAC7BrI,KAAKmnB,MAAQmY,IACNpgB,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI9f,gCACdtK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIhgB,2CACdpK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKuiC,kBAAkB/C,IAE/B,CAIA,CAACJ,IAAwClgB,GACjCmhB,GAAanhB,KAIbA,IAAOzS,EAAE0Q,gBACTnd,KAAK2iB,aAAata,SAAW,GAC7BrI,KAAKmnB,MAAQkY,IACNngB,IAAOzS,EAAE6Q,YAChBtd,KAAK2iB,aAAata,SAAW,GAC7BrI,KAAKmnB,MAAQmY,IACNpgB,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI9f,gCACdtK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKmnB,MAAQkU,EACbr7B,KAAK4mB,qBACE1H,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAIhgB,2CACdpK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAKuiC,kBAAkB/C,KAE/B,CAIA,CAACH,IAA+CngB,GACxCA,IAAOzS,EAAE0Q,eACTnd,KAAKmnB,MAAQoY,GACNrgB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK2iB,aAAata,UAAYgiB,EAAQ5N,uBAC/ByC,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI5f,+BACdxK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,iBAELjjC,KAAK2iB,aAAata,UAAYy4B,GAAO5hB,EAE7C,CAIA,CAACogB,IAA+CpgB,GACxCA,IAAOzS,EAAE6Q,WACTtd,KAAKmnB,MAAQoY,GACNrgB,IAAOzS,EAAEmQ,MAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACdlJ,KAAK2iB,aAAata,UAAYgiB,EAAQ5N,uBAC/ByC,IAAOzS,EAAEqR,mBAChB9d,KAAK0gB,KAAK0J,EAAI5f,+BACdxK,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,iBAELjjC,KAAK2iB,aAAata,UAAYy4B,GAAO5hB,EAE7C,CAIA,CAACqgB,IAAuCrgB,GAChCmhB,GAAanhB,KAIbA,IAAOzS,EAAEqR,mBACT9d,KAAK4mB,oBACL5mB,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAIxf,cACd5K,KAAK2iB,aAAamK,aAAc,EAChC9sB,KAAK4mB,oBACL5mB,KAAKijC,kBAELjjC,KAAK0gB,KAAK0J,EAAI1gB,iDACd1J,KAAKuiC,kBAAkB/C,KAE/B,CAIA,CAACA,IAAqBtgB,GACdA,IAAOzS,EAAEqR,mBACT9d,KAAK4mB,oBACL5mB,KAAKmnB,MAAQkU,GACNnc,IAAOzS,EAAEmQ,KAChB5c,KAAK0gB,KAAK0J,EAAIlhB,yBACPgW,IAAOzS,EAAEkQ,MAChB3c,KAAK4mB,oBACL5mB,KAAKijC,gBAEb,CAIA,CAACxD,IAAqBvgB,GACdA,IAAOzS,EAAE2R,qBACTpe,KAAKmnB,MAAQuY,GACNxgB,IAAOzS,EAAEkQ,KAChB3c,KAAK0gB,KAAK0J,EAAInf,YACdjL,KAAKijC,iBAELjjC,KAAKmjC,eAAejkB,EAE5B,CAIA,CAACwgB,IAA6BxgB,GACtBA,IAAOzS,EAAE2R,qBACTpe,KAAKmnB,MAAQwY,IAEb3/B,KAAKsjC,WAAW,KAChBtjC,KAAKuiC,kBAAkB9C,IAE/B,CAIA,CAACE,IAAyBzgB,GAClBA,IAAOzS,EAAEqR,kBACT9d,KAAKmnB,MAAQkU,EACNnc,IAAOzS,EAAE2R,qBAChBpe,KAAKsjC,WAAW,MAEhBtjC,KAAKsjC,WAAW,MAChBtjC,KAAKuiC,kBAAkB9C,IAE/B,CAIA,CAACG,IAA2B1gB,GACxBlf,KAAK0hC,SAAW,CAACj1B,EAAE4Q,WAEf6B,IAAOzS,EAAE2Q,aACTpd,KAAK0hC,SAASx7C,KAAKg5B,GACnBlf,KAAKmnB,MAAQ4Y,IACNW,GAAoBxhB,GAC3Blf,KAAKuiC,kBAAkB1C,KAEvB7/B,KAAK+jC,+CACL/jC,KAAKuiC,kBAAkBviC,KAAKwhC,aAEpC,CAIA,CAAC3B,IAAiC3gB,GAC9B,MAAM8kB,EAAchkC,KAAKujC,8BAA8BrkB,GAIvD,GAAIlf,KAAKiiC,qBACLjiC,KAAK0hC,SAAW,CAACj1B,EAAE4Q,gBAChB,GAAI2mB,EAAa,CACpB,MAAMH,EAAgB7jC,KAAK0hC,SAAS1hC,KAAK0hC,SAASx8C,OAAS,KAAOunB,EAAEkR,UAE/D3d,KAAK4jC,oCAAoCC,KACrCA,GACD7jC,KAAK8hC,oBAAoB1X,EAAI3gB,yCAGjCzJ,KAAK0hC,SAAWsC,GAGpBhkC,KAAK+jC,+CACL/jC,KAAKmnB,MAAQnnB,KAAKwhC,WACtB,MACIxhC,KAAK+jC,+CACL/jC,KAAKmnB,MAAQ2Y,EAErB,CAIA,CAACA,IAA2B5gB,GACpBwhB,GAAoBxhB,GAChBlf,KAAK2jC,mCACL3jC,KAAK4lB,YAAYvhC,OAASy8C,GAAO5hB,GAEjClf,KAAKmjC,eAAejkB,IAGpBA,IAAOzS,EAAEkR,WACT3d,KAAK0gB,KAAK0J,EAAI5gB,gCAGlBxJ,KAAKuiC,kBAAkBviC,KAAKwhC,aAEpC,CAIA,CAACzB,IAAmC7gB,GAChClf,KAAKyhC,YAAc,EAEfviB,IAAOzS,EAAE+R,eAAiBU,IAAOzS,EAAEyR,iBACnCle,KAAK0hC,SAASx7C,KAAKg5B,GACnBlf,KAAKmnB,MAAQ6Y,IAEbhgC,KAAKuiC,kBAAkBtC,GAE/B,CAIA,CAACD,IAA6C9gB,IA13DlD,SAAyBA,GACrB,OAAOohB,GAAaphB,IAAOyhB,GAAqBzhB,IAAO0hB,GAAqB1hB,EAChF,CAy3DY+kB,CAAgB/kB,IAGhBlf,KAAK0gB,KAAK0J,EAAIlf,4CACdlL,KAAK+jC,+CACL/jC,KAAKuiC,kBAAkBviC,KAAKwhC,cAJ5BxhC,KAAKuiC,kBAAkBrC,GAM/B,CAIA,CAACD,IAAyC/gB,GAClCohB,GAAaphB,GACblf,KAAKuiC,kBAAkBpC,KAEvBngC,KAAK0gB,KAAK0J,EAAIlf,4CACdlL,KAAK+jC,+CACL/jC,KAAKuiC,kBAAkBviC,KAAKwhC,aAEpC,CAIA,CAACtB,IAAuChhB,GAChCyhB,GAAqBzhB,GACrBlf,KAAKyhC,YAAiC,GAAnBzhC,KAAKyhC,YAAmBviB,EAAK,GACzC0hB,GAAqB1hB,GAC5Blf,KAAKyhC,YAAiC,GAAnBzhC,KAAKyhC,YAAmBviB,EAAK,GACzCohB,GAAaphB,GACpBlf,KAAKyhC,YAAiC,GAAnBzhC,KAAKyhC,YAAmBviB,EAAK,GACzCA,IAAOzS,EAAEkR,UAChB3d,KAAKmnB,MAAQiZ,IAEbpgC,KAAK0gB,KAAK0J,EAAI3gB,yCACdzJ,KAAKuiC,kBAAkBnC,IAE/B,CAIA,CAACD,IAAmCjhB,GAC5BohB,GAAaphB,GACblf,KAAKyhC,YAAiC,GAAnBzhC,KAAKyhC,YAAmBviB,EAAK,GACzCA,IAAOzS,EAAEkR,UAChB3d,KAAKmnB,MAAQiZ,IAEbpgC,KAAK0gB,KAAK0J,EAAI3gB,yCACdzJ,KAAKuiC,kBAAkBnC,IAE/B,CAIA,CAACA,MACG,GAAIpgC,KAAKyhC,cAAgBh1B,EAAEmQ,KACvB5c,KAAK0gB,KAAK0J,EAAIjf,wBACdnL,KAAKyhC,YAAch1B,EAAEgQ,2BAClB,GAAIzc,KAAKyhC,YAAc,QAC1BzhC,KAAK0gB,KAAK0J,EAAI/e,uCACdrL,KAAKyhC,YAAch1B,EAAEgQ,2BAClB,GAAI4N,EAAQpL,YAAYjf,KAAKyhC,aAChCzhC,KAAK0gB,KAAK0J,EAAIhf,6BACdpL,KAAKyhC,YAAch1B,EAAEgQ,2BAClB,GAAI4N,EAAQ7K,qBAAqBxf,KAAKyhC,aACzCzhC,KAAK0gB,KAAK0J,EAAI7e,qCACX,GAAI8e,EAAQ9K,mBAAmBvf,KAAKyhC,cAAgBzhC,KAAKyhC,cAAgBh1B,EAAEqQ,gBAAiB,CAC/F9c,KAAK0gB,KAAK0J,EAAI9e,2BAEd,MAAM44B,EAAc9I,EAAmCp7B,KAAKyhC,aAExDyC,IACAlkC,KAAKyhC,YAAcyC,EAE3B,CAEAlkC,KAAK0hC,SAAW,CAAC1hC,KAAKyhC,aAEtBzhC,KAAK+jC,+CACL/jC,KAAKuiC,kBAAkBviC,KAAKwhC,YAChC,EAIJj1B,GAAU6f,gBAAkB,kBAC5B7f,GAAU+f,qBAAuB,uBACjC/f,GAAUggB,2BAA6B,6BACvChgB,GAAU0gB,gBAAkB,kBAC5B1gB,GAAU+W,cAAgB,gBAC1B/W,GAAUkgB,cAAgB,gBAC1BlgB,GAAUogB,cAAgB,gBAC1BpgB,GAAUsa,UAAY,YACtBta,GAAUwrB,kBAAoB,oBAG9BxrB,GAAUya,KAAO,CACbmd,KAAM9I,EACNxJ,OAAQyJ,EACRxJ,QAASyJ,EACTxJ,YAAayJ,EACbvgB,UAAWwgB,GAIflvB,GAAU6J,aAAe,SAAShO,EAAOg8B,GACrC,IAAK,IAAIn/C,EAAImjB,EAAMqO,MAAMvxB,OAAS,EAAGD,GAAK,EAAGA,IACzC,GAAImjB,EAAMqO,MAAMxxB,GAAGf,OAASkgD,EACxB,OAAOh8B,EAAMqO,MAAMxxB,GAAGZ,MAI9B,OAAO,IACX,EAEAI,EAAOC,QAAU6nB,0BC/oEjB9nB,EAAOC,QAAU,IAAI2/C,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EA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OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,KAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,KAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,KAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,KAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,KAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,OAC3ButF,EAAUjB,SAAStsF,EAAQ,MAC3ButF,EAAUjB,SAAStsF,EA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,QACE,0MACF26E,YAAY,EACZb,MAAO,WAET,eAAgB,CACd95E,QAAS,6DACT26E,YAAY,EACZO,QAAQ,EACRpB,MAAO,YAET,wBAAyB,CACvB95E,QAAS,uBACT26E,YAAY,EACZb,MAAO,YAGT,gCAAiC,CAC/B,CAEE95E,QAAS,wBACT26E,YAAY,EACZb,MAAO,YAET,CAEE95E,QAAS,iBACT26E,YAAY,EACZb,MAAO,aAIX,sBAAuB,CACrB,CAEE95E,QAAS,iBACT26E,YAAY,EACZb,MAAO,YAET,CAEE95E,QAAS,iBACT26E,YAAY,EACZb,MAAO,aAGX,cAAe,CACb95E,QAAS,0BACT26E,YAAY,GAiBdrsC,OAAQ,CACNtuC,QAAS,qBACTk7E,QAAQ,EACRC,OAAQ8O,IAGRjT,EAAS,SAAUtuE,GACrB,OAAQA,EAAM,IAAI9X,QAAQ,4BAA6B,OACzD,EACIw5F,EAAmB,SAAUpgG,GAC/B,OAAO,IAAIsxF,OAAO,aAAetxF,EAAIotF,IAAIJ,GAAQroF,KAAK,KAAO,aAC/D,EACI07F,EAAW,CACb,iBAAkB,CAChB,KACA,QACA,QACA,OACA,UACA,MACA,WACA,kBACA,MACA,OACA,YACA,aACA,OACA,WACA,OACA,OACA,QACA,WACA,OACA,QACA,OACA,MACA,IACA,IACA,QACA,QACA,QACA,OACA,kBACA,MACA,SACA,MACA,QACA,OACA,QACA,SACA,OACA,UACA,UACA,OACA,UACA,MACA,gBACA,WACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QACA,UACA,YACA,OACA,QACA,OACA,SACA,gBACA,SACA,QACA,YACA,WACA,oBACA,kBACA,OACA,YACA,MACA,QACA,MACA,QACA,MACA,iBACA,WAEF,uBAAwB,CAEtB,UACA,YACA,YACA,KACA,SACA,MACA,IACA,WACA,KACA,SACA,QACA,SACA,YACA,aACA,WACA,SACA,UACA,gBACA,oBACA,YACA,UACA,mBACA,KACA,WACA,IACA,KACA,MAEF,oBAAqB,CACnB,aACA,WACA,SACA,mBACA,SACA,aACA,aACA,YACA,mBACA,kBACA,WACA,aACA,OACA,WACA,UACA,aACA,YACA,WACA,OACA,OACA,MACA,WACA,UACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,oBACA,aACA,cACA,OACA,SACA,gBACA,oBACA,gCACA,iCACA,YACA,UACA,WACA,SACA,aACA,aACA,UACA,SACA,OACA,eACA,eACA,QACA,OACA,SACA,YACA,UACA,QACA,WACA,cACA,WACA,QACA,YACA,aACA,aACA,qBACA,SACA,SACA,WACA,eACA,UACA,aACA,OACA,UACA,QACA,SACA,SACA,OACA,aACA,WACA,YACA,MACA,aACA,UACA,aACA,SACA,cACA,YACA,OACA,YACA,SACA,YACA,iBACA,UACA,eACA,UACA,gBACA,eACA,YACA,mBACA,UACA,SACA,WACA,OACA,aACA,oBACA,YACA,UACA,UACA,YACA,WACA,WACA,aACA,OACA,cACA,iBACA,QACA,UACA,YACA,gBACA,cACA,oBACA,MACA,UACA,OACA,SACA,OACA,sBACA,aACA,aACA,mBACA,UACA,cACA,SACA,aACA,WACA,kBACA,OACA,OACA,QACA,QACA,QACA,YACA,SACA,eACA,eACA,WACA,WACA,MACA,aACA,YACA,WACA,QACA,oBACA,eACA,OACA,cACA,QACA,UACA,UACA,OACA,cACA,SACA,OACA,gBACA,YACA,eAEF,eAAgB,CACd,UACA,kBACA,MACA,cACA,iBACA,aACA,UACA,eACA,UACA,WACA,cACA,MACA,IACA,IACA,cACA,IACA,MACA,IACA,KACA,SACA,cACA,wBACA,OACA,IACA,OACA,IACA,WACA,SACA,cACA,KACA,QACA,aACA,SACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,UACA,WACA,KACA,iBACA,KACA,MACA,UACA,aACA,KACA,KACA,MACA,QACA,WACA,SACA,KACA,UACA,UACA,MACA,SACA,KACA,SACA,QACA,OACA,WACA,aACA,UACA,WACA,OACA,YACA,cACA,QACA,MACA,iBACA,YACA,yBACA,aACA,QACA,aACA,QACA,UACA,MACA,SACA,wBACA,MACA,OACA,KACA,OACA,WACA,QACA,YACA,cAGJ9gG,OAAOkkC,KAAK48D,GAAU18D,SAAQ,SAAU4lB,GACtCw2C,EAAOx2C,GAAGvzC,QAAUoqF,EAAiBC,EAAS92C,GAChD,IAyNAw2C,EAAOI,YAAYnqF,QAAUoqF,EAxNX,CAEhB,MACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,KACA,UACA,YACA,MACA,OACA,YACA,QACA,OACA,QACA,OACA,QACA,UACA,KACA,QACA,OACA,SACA,aACA,aACA,WACA,QACA,UACA,OACA,KACA,OACA,SACA,QACA,OACA,SACA,MACA,OACA,SACA,MACA,WACA,YACA,iBACA,kBACA,SACA,YACA,QACA,YACA,YACA,WACA,cACA,UACA,YACA,gBACA,mBACA,SACA,MACA,UACA,cACA,aACA,SACA,cACA,OACA,eACA,YACA,UACA,eACA,eACA,aACA,kBACA,QACA,aACA,SACA,eACA,YACA,eACA,WACA,SACA,WACA,aACA,OACA,YACA,gBACA,eACA,OACA,UACA,UACA,YACA,gBACA,iBACA,kBACA,gBACA,UACA,OACA,YACA,cACA,UACA,cACA,aACA,OACA,aACA,iBACA,aACA,OACA,eACA,cACA,WACA,gBACA,YACA,UACA,QACA,aACA,QACA,OACA,aACA,UACA,aACA,aACA,QACA,OACA,YACA,iBACA,YACA,UACA,eACA,cACA,iBACA,YACA,oBACA,kBACA,QACA,iBACA,eACA,gBACA,kBACA,cACA,gBACA,gBACA,kBACA,cACA,OACA,UACA,YACA,YACA,UACA,eACA,iBACA,aACA,OACA,SACA,cACA,qBACA,SACA,mBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,gBACA,cACA,iBACA,cACA,eACA,aACA,cACA,WACA,iBACA,oBA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AAO,YAET,CAGE95E,QACE,qGACF26E,YAAY,EACZb,MAAO,YAET,CAEE95E,QACE,mEACF26E,YAAY,EACZb,MAAO,YAET,CAEE95E,QACE,uFACF26E,YAAY,EACZb,MAAO,aAGXtgF,MAAO,CACLwG,QAAS,0CACT26E,YAAY,EACZO,QAAQ,EACRpB,MAAO,YAET70E,KAAM,CACJjF,QAAS,gEACT85E,MAAO,UAETxrC,OAAQ,CACNtuC,QAAS,cACTk7E,QAAQ,GAEVa,WAAY,CACV/7E,QACE,gGACF85E,MAAO,aAETc,QAAS,CAEP,CACE56E,QACE,yOACF26E,YAAY,EACZO,QAAQ,GAEV,CACEl7E,QACE,2KACF26E,YAAY,EACZO,QAAQ,IAGZnwE,OAAQ,cACR8vE,SAAU,CACR76E,QAAS,gCACT26E,YAAY,GAEdG,YAAa,UAEjB,CApHA3vF,EAAOC,QAAUwwG,EACjBA,EAAQhsG,YAAc,UACtBgsG,EAAQ7gB,QAAU,0BCClB,SAAS8gB,EAAM/iB,GACbA,EAAMY,UAAUmiB,MAAQ,CACtB5xF,QAAS,OACT2wE,QACE,s0BACFqF,UAAW,CACTjgF,QAAS,cACT85E,MAAO,YAET4B,SAAU,aACVtsF,OAAQ,gBACRyrF,SAAU,mBACVC,YAAa,wBAEjB,CAjBA3vF,EAAOC,QAAUywG,EACjBA,EAAMjsG,YAAc,QACpBisG,EAAM9gB,QAAU,0BCChB,SAAS+gB,EAAQhjB,IACd,SAAWA,GACV,IAAIijB,EAAY,CAEd,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,UACA,QACA,QACA,cACA,OACA,SACA,QACA,SACA,iBACA,aACA,QACA,cACA,OACA,aACA,QACA,gBACA,cACA,gBACA,cACA,WACA,aACA,QACA,SACA,eACA,OACA,OACA,OACA,OACA,UACA,OACA,eACA,SACA,YACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,OACA,aACA,UACA,cACA,aACA,SACA,aACA,SACA,WACA,eACA,SACA,cACA,SACA,qBACA,gBACA,UACA,SACA,SACA,OACA,kBACA,WACA,UACA,eACA,eACA,UACA,OACA,QACA,QACA,eACA,aACA,SACA,UACA,mBACA,OACA,eACA,QACA,SACA,OACA,YACA,mBACA,OACA,kBACA,eACA,iBACA,QACA,SACA,QACA,SACA,SACA,OACA,cACA,YACA,QACA,OACA,UACA,gBACA,QACA,WACA,OACA,iBACA,eACA,kBACA,gBACA,cACA,aACA,aACA,oBACA,UACA,MACA,OACA,UACA,SACA,SACA,YACA,MACA,OACA,QACA,UACA,MACA,gBACA,gBACA,aACA,WACA,YACA,gBACA,WACA,eACA,QACA,QACA,OACA,WACA,MACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,gBACA,QACA,OACA,eACA,UACA,OACA,SACA,YACA,MACA,OACA,iBACA,MACA,OACA,QACA,oBACA,SACA,UACA,aACA,gBACA,cACA,cACA,cACA,gBACA,SACA,SACA,UACA,iBACA,aACA,mBACA,eACA,YACA,QACA,OACA,SACA,SACA,QACA,aACA,cACA,cACA,eACA,YACA,UACA,eACA,YACA,YACA,OACA,UACA,OACA,UACA,UACA,aACA,YACA,SACA,UACA,cACA,YACA,WACA,WACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,WACA,YACA,gBACA,aACA,YACA,QACA,cACA,YACA,cACA,WACA,WACA,QACA,OACA,aACA,OACA,WACA,SACA,aACA,eACA,YAmBEC,EAAkB,OAHtBD,EAAYA,EAAU3kB,KAAI,SAAUyD,GAClC,OAAOA,EAASjqF,QAAQ,IAAK,MAC/B,KACwCjC,KAAK,KAAO,OACpDmqF,EAAMY,UAAUoiB,QAAUhjB,EAAMY,UAAUruF,OAAO,aAAc,CAAC,GAChEytF,EAAMY,UAAU74C,aAAa,UAAW,SAAU,CAChD/yC,SAAU,CACRkS,QACE,oHACFk7E,QAAQ,EACRC,OAAQ,CACNP,QAASU,OAAO,YAAc0gB,EAAkB,iBAItDljB,EAAMY,UAAUoiB,QAAQxtD,OAAO6sC,OAAS,CACtCtvB,IAAK,CAEH7rD,QACE,yEACFk7E,QAAQ,GAEVnwE,OAAQ,CAEN/K,QACE,8EACFk7E,QAAQ,IAGZpC,EAAMY,UAAU74C,aAAa,UAAW,WAAY,CAClDu8C,QAAS,CACPp9E,QAASs7E,OAAO,SA7CG,CACrB,WACA,OACA,UACA,QACA,YACA,aACA,gBACA,SACA,SACA,SACA,UACA,QAiC8C3sF,KAAK,KAAO,QACxDmrF,MAAO,YAGZ,CAlSA,CAkSEhB,EACL,CAvSA3tF,EAAOC,QAAU0wG,EACjBA,EAAQlsG,YAAc,UACtBksG,EAAQ/gB,QAAU,wBCClB,SAASkhB,EAAOnjB,GACdA,EAAMY,UAAUuiB,OAAS,CACvBhyF,QAAS,CACPjK,QAAS,6BACTk7E,QAAQ,GAEV5sC,OAAQ,CACNtuC,QAAS,cACTk7E,QAAQ,GAEV9yD,aAAc,CACZpoB,QAAS,gBACT26E,YAAY,EACZO,QAAQ,EACRpB,MAAO,YAET8B,SAAU,cACV,YAAa,CACX57E,QAAS,WACT85E,MAAO,cAET1qF,OAAQ,CACN4Q,QACE,qEACF26E,YAAY,GAEdC,QACE,uXACFC,SACE,gFACFC,YAAa,eAEjB,CAnCA3vF,EAAOC,QAAU6wG,EACjBA,EAAOrsG,YAAc,SACrBqsG,EAAOlhB,QAAU,0BCCjB,SAASmhB,EAAWpjB,GAClBA,EAAMY,UAAUwiB,WAAa,CAC3BjyF,QAAS,OACTqkC,OAAQ,CACN,CACEtuC,QAAS,iCACTk7E,QAAQ,GAEV,CACEl7E,QAAS,UACTk7E,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACbrgF,QAAS,cACTm7E,OAAQ,CACN+gB,WAAY,CACVl8F,QAAS,sBACT26E,YAAY,EACZQ,OAAQ,MAEV,4BAA6B,CAC3Bn7E,QAAS,SACT85E,MAAO,oBAOnB,aAAc,CACZ,CACE95E,QAAS,iCACT26E,YAAY,GAEd,cAEFC,QACE,kJACFc,SAAU,SACV5tF,SAAU,CACRkS,QAAS,gCACT26E,YAAY,GAEdiB,SAAU,CACR57E,QACE,27BACFm7E,OAAQ,CACNL,YAAa,OAGjBtrF,QAAS,qBACTJ,OACE,6FACFyrF,SACE,2EACFC,YAAa,iBAEfhC,EAAMY,UAAUwiB,WAAW5tD,OAAO,GAAG6sC,OAAOkF,cAAclF,OAAO+gB,WAAW/gB,OAC1ErC,EAAMY,UAAUwiB,WAClBpjB,EAAMY,UAAUyiB,KAAOrjB,EAAMY,UAAUwiB,UACzC,CA/DA/wG,EAAOC,QAAU8wG,EACjBA,EAAWtsG,YAAc,aACzBssG,EAAWnhB,QAAU,CAAC,+BCCtB,SAASqhB,EAAKtjB,GAEZA,EAAMY,UAAU0iB,KAAO,CACrBnyF,QAAS,CACPjK,QAAS,8BACTk7E,QAAQ,GAEV5sC,OAAQ,CACNtuC,QAAS,yCACTk7E,QAAQ,GAEV+B,WAAY,CACVj9E,QAAS,4BACTk7E,QAAQ,GAEV+E,UAAW,WAEXrF,QACE,wuCACFgB,SAAU,wBACVpsF,QAAS,sBACTJ,OAAQ,6DACRyrF,SACE,yIACFC,YAAa,gBAEjB,CA7BA3vF,EAAOC,QAAUgxG,EACjBA,EAAKxsG,YAAc,OACnBwsG,EAAKrhB,QAAU,0BCCf,SAASshB,EAAKvjB,GACZA,EAAMY,UAAU2iB,KAAOvjB,EAAMY,UAAUruF,OAAO,aAAc,CAE1DuvF,QACE,oXAEJ9B,EAAMY,UAAU74C,aAAa,OAAQ,WAAY,CAE/Ck7C,WAAY,CACV/7E,QAAS,QACT85E,MAAO,cAGXhB,EAAMY,UAAU4iB,MAAQxjB,EAAMY,UAAU2iB,IAC1C,CAjBAlxG,EAAOC,QAAUixG,EACjBA,EAAKzsG,YAAc,OACnBysG,EAAKthB,QAAU,CAAC,gCCChB,SAASwhB,EAAezjB,GACtBA,EAAMY,UAAU,mBAAqB,CACnCzvE,QAAS,gCACT2wE,QAAS,4CACTprF,QAAS,qBACTosF,SAAU,+BACVxsF,OAAQ,UACRyrF,SAAU,SACVC,YAAa,eAEjB,CAbA3vF,EAAOC,QAAUmxG,EACjBA,EAAe3sG,YAAc,iBAC7B2sG,EAAexhB,QAAU,0BCCzB,SAASyhB,EAAW1jB,IACjB,SAAWA,GACV,IAAI2jB,EAAgB,qBAChBC,EAAS,CACX,gBAAiB,CACf18F,QAAS,oBACT85E,MAAO,YAET,mBAAoB,CAClB95E,QAAS,WACT26E,YAAY,EACZb,MAAO,YAET,sBAAuB,CACrB,CACE95E,QAASy8F,EACT3iB,MAAO,YAET,CACE95E,QAAS,aACT26E,YAAY,EACZO,QAAQ,EACRpB,MAAO,YAET,CACE95E,QAAS,cACT85E,MAAO,cA+Hb,SAAS6iB,EAAe7tF,GACtB,MAAqB,kBAAVA,EACFA,EACE7kB,MAAMF,QAAQ+kB,GAChBA,EAAMsoE,IAAIulB,GAAgBhuG,KAAK,IAE/BguG,EAAe7tF,EAAMzgB,QAEhC,CAnIAyqF,EAAMY,UAAU8iB,WAAa,CAE3BvyF,QAAS,CACPjK,QAAS,gBACT26E,YAAY,GAIdiiB,OAAQ,CACN58F,QAAS,QACT85E,MAAO,MACPqB,OAAQ,CACNpwF,MAAO,CACLiV,QAAS,gCACT26E,YAAY,EACZb,MAAO,YAETzvF,IAAK,CACH2V,QAAS,UACT26E,YAAY,KAKlBnhF,MAAO,CACLwG,QAAS,8BACT26E,YAAY,EACZb,MAAO,SAETgC,QAAS,CACP97E,QAAS,8BACT26E,YAAY,EACZb,MAAO,WACPqB,OAAQ,CACN,eAAgB,QAChBmF,WAAY,CACVtgF,QAASy8F,EACTvhB,QAAQ,EACRpB,MAAO,YAET,iBAAkB,CAChB95E,QAAS,eACTm7E,OAAQuhB,KAKd,eAAgB,CACd18F,QAAS,wBACT26E,YAAY,EACZb,MAAO,cACPqB,OAAQ,CAEN,eAAgB,cAChBmF,WAAY,CACVtgF,QAASy8F,EACTvhB,QAAQ,EACRpB,MAAO,YAET,iBAAkB,CAChB95E,QAAS,2BACTk7E,QAAQ,EACRpB,MAAO,WACPqB,OAAQ,CACN,iBAAkB,CAChBn7E,QAAS,iCACT26E,YAAY,EACZQ,OAAQuhB,GAEV,qBAAsB,CACpB18F,QAAS,iBACT26E,YAAY,EACZb,MAAO,QAET,kBAAmB,cAM7BhB,EAAMY,UAAUmjB,KAAO/jB,EAAMY,UAAsB,WAMnDZ,EAAMyB,MAAM3qC,IAAI,kBAAkB,SAAUwqC,GAE7BA,EAAIF,OACVvsD,SAAQ,SAAU7e,GACvB,GAAqB,kBAAVA,GAAqC,iBAAfA,EAAMjiB,KAAyB,CAC9D,IAAIwB,EAAUsuG,EAAe7tF,IAYnC,SAA4Bhf,GAG1B,IAFA,IAAI09F,EAAW,OACXhlE,EAAQ,GACH78B,EAAI,EAAGA,EAAImE,EAAMlE,OAAQD,IAAK,CACrC,IAAImxG,EAAUhtG,EAAMnE,GAChBoxG,EAAgBvP,EAASz9F,QAAQ+sG,GACrC,IAAuB,IAAnBC,EACF,GAAIA,EAAgB,IAAM,EACxBv0E,EAAM57B,KAAKmwG,EAAgB,QACtB,GAAIv0E,EAAME,QAAUq0E,EACzB,OAAO,CAGb,CACA,OAAwB,IAAjBv0E,EAAM58B,MACf,EA1BWoxG,CAAmB3uG,KACtBygB,EAAMjiB,KAAO,WACbiiB,EAAMzgB,QAAUA,EAEpB,CACF,GACF,GAkCD,CAjKA,CAiKEyqF,EACL,CAtKA3tF,EAAOC,QAAUoxG,EACjBA,EAAW5sG,YAAc,aACzB4sG,EAAWzhB,QAAU,0BCCrB,SAASkiB,EAAKnkB,GACZA,EAAMY,UAAUujB,KAAO,CACrBhzF,QAAS,QACTqkC,OAAQ,oCACR90C,MAAO,CACLwG,QAAS,kCACT26E,YAAY,EACZb,MAAO,YAETc,QAAS,CACP,0BACA,CACE56E,QAAS,8BACT26E,YAAY,GAEd,8BACA,6BAEFnB,SAAU,CACRx5E,QACE,0GACF85E,MAAO,YAET1qF,OACE,+MACFyrF,SAAU,uBAEd,CA9BA1vF,EAAOC,QAAU6xG,EACjBA,EAAKrtG,YAAc,OACnBqtG,EAAKliB,QAAU,0BCCf,SAASmiB,EAAKpkB,GACZA,EAAMY,UAAUwjB,KAAO,CACrBjzF,QAAS,CACPjK,QAAS,MACTk7E,QAAQ,GAEV5vB,SAAU,CACRtrD,QACE,0HACF26E,YAAY,EACZb,MAAO,UAETzvF,IAAK,CACH2V,QAAS,6DACT26E,YAAY,EACZb,MAAO,UAET1qF,OAAQ,CACN4Q,QACE,mHACF26E,YAAY,GAEdnrF,QAAS,CACPwQ,QAAS,wDACT26E,YAAY,GAEdga,KAAM,CACJ30F,QAAS,2CACT26E,YAAY,EACZb,MAAO,WAETxrC,OAAQ,CACNtuC,QACE,qHACF26E,YAAY,EACZO,QAAQ,GAEViiB,QAAS,CACPn9F,QACE,sHACF26E,YAAY,EACZb,MAAO,UAETgB,YAAa,gBAEjB,CAhDA3vF,EAAOC,QAAU8xG,EACjBA,EAAKttG,YAAc,OACnBstG,EAAKniB,QAAU,0BCCf,SAASqiB,EAAMtkB,GACbA,EAAMY,UAAU0jB,MAAQ,CACtBnzF,QAAS,oCACTqkC,OAAQ,CACNtuC,QAAS,mDACTk7E,QAAQ,EACRC,OAAQ,CACN,eAAgB,gBAGpB9jE,UAAW,CACTrX,QAAS,0CACT26E,YAAY,GAEd36E,QAAS,CACPA,QACE,qHACF26E,YAAY,EACZQ,OAAQ,CACN,eAAgB,CACdn7E,QAAS,qBACT85E,MAAO,cAETujB,OAAQ,CACNr9F,QAAS,SACTm7E,OAAQ,CACN,aAAc,CACZn7E,QAAS,kBACT85E,MAAO,YAETgB,YAAa,QACbD,SAAU,CACR76E,QAAS,IACT85E,MAAO,yBAMjBztF,OAAQ,CACN2T,QAAS,iDACT85E,MAAO,WACPa,YAAY,GAEdC,QACE,sEACF,mBAAoB,CAClB56E,QACE,kIACFm7E,OAAQ,CACN,wBAAyB,CACvBn7E,QAAS,mBACT85E,MAAO,WAETwjB,WAAY,CACVt9F,QAAS,mCACT85E,MAAO,UAET,wBAAyB,CACvB95E,QAAS,kBACT85E,MAAO,WAETgB,YAAa,UAGjBwiB,WAAY,CACVt9F,QAAS,mCACT85E,MAAO,UAETe,SAAU,CACR,CACE76E,QAAS,IACT85E,MAAO,eAET,CACE95E,QAAS,IACT85E,MAAO,eAET,CACE95E,QAAS,IACT85E,MAAO,aAET,CACE95E,QAAS,KACT85E,MAAO,eAET,CACE95E,QAAS,QACT85E,MAAO,cAET,CACE95E,QAAS,OACT85E,MAAO,aAET,CACE95E,QAAS,OACT85E,MAAO,YAET,CACE95E,QAAS,UACT85E,MAAO,SAGX,gBAAiB,CACf,CACE95E,QACE,2HACF26E,YAAY,EACZQ,OAAQ,CACN,aAAc,CACZn7E,QAAS,kBACT85E,MAAO,YAETyjB,MAAO,MAGX,CACEv9F,QAAS,sBACTm7E,OAAQ,CACN,aAAc,CACZn7E,QAAS,kBACT85E,MAAO,YAETyjB,MAAO,OAIbziB,YAAa,UACblwF,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GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,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","sources":["../node_modules/extend/index.js","../node_modules/hast-util-parse-selector/index.js","../node_modules/hastscript/factory.js","../node_modules/hastscript/html.js","../node_modules/hastscript/index.js","../node_modules/hastscript/node_modules/comma-separated-tokens/index.js","../node_modules/hastscript/node_modules/property-information/find.js","../node_modules/hastscript/node_modules/property-information/html.js","../node_modules/hastscript/node_modules/property-information/lib/aria.js","../node_modules/hastscript/node_modules/property-information/lib/html.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/create.js","../node_modules/hastscript/node_modules/property-information/lib/util/defined-info.js","../node_modules/hastscript/node_modules/property-information/lib/util/info.js","../node_modules/hastscript/node_modules/property-information/lib/util/merge.js","../node_modules/hastscript/node_modules/property-information/lib/util/schema.js","../node_modules/hastscript/node_modules/property-information/lib/util/types.js","../node_modules/hastscript/node_modules/property-information/lib/xlink.js","../node_modules/hastscript/node_modules/property-information/lib/xml.js","../node_modules/hastscript/node_modules/property-information/lib/xmlns.js","../node_modules/hastscript/node_modules/property-information/normalize.js","../node_modules/hastscript/node_modules/space-separated-tokens/index.js","../node_modules/inline-style-parser/index.js","../node_modules/is-alphabetical/index.js","../node_modules/is-alphanumerical/index.js","../node_modules/is-buffer/index.js","../node_modules/is-decimal/index.js","../node_modules/is-hexadecimal/index.js","../node_modules/parse-entities/decode-entity.browser.js","../node_modules/parse-entities/index.js","../node_modules/parse5/lib/common/doctype.js","../node_modules/parse5/lib/common/error-codes.js","../node_modules/parse5/lib/common/foreign-content.js","../node_modules/parse5/lib/common/html.js","../node_modules/parse5/lib/common/unicode.js","../node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/parse5/lib/parser/index.js","../node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/parse5/lib/tokenizer/index.js","../node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/parse5/lib/tree-adapters/default.js","../node_modules/parse5/lib/utils/merge-options.js","../node_modules/parse5/lib/utils/mixin.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react-markdown/node_modules/style-to-object/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/refractor/core.js","../node_modules/refractor/index.js","../node_modules/refractor/lang/abap.js","../node_modules/refractor/lang/abnf.js","../node_modules/refractor/lang/actionscript.js","../node_modules/refractor/lang/ada.js","../node_modules/refractor/lang/agda.js","../node_modules/refractor/lang/al.js","../node_modules/refractor/lang/antlr4.js","../node_modules/refractor/lang/apacheconf.js","../node_modules/refractor/lang/apex.js","../node_modules/refractor/lang/apl.js","../node_modules/refractor/lang/applescript.js","../node_modules/refractor/lang/aql.js","../node_modules/refractor/lang/arduino.js","../node_modules/refractor/lang/arff.js","../node_modules/refractor/lang/asciidoc.js","../node_modules/refractor/lang/asm6502.js","../node_modules/refractor/lang/asmatmel.js","../node_modules/refractor/lang/aspnet.js","../node_modules/refractor/lang/autohotkey.js","../node_modules/refractor/lang/autoit.js","../node_modules/refractor/lang/avisynth.js","../node_modules/refractor/lang/avro-idl.js","../node_modules/refractor/lang/bash.js","../node_modules/refractor/lang/basic.js","../node_modules/refractor/lang/batch.js","../node_modules/refractor/lang/bbcode.js","../node_modules/refractor/lang/bicep.js","../node_modules/refractor/lang/birb.js","../node_modules/refractor/lang/bison.js","../node_modules/refractor/lang/bnf.js","../node_modules/refractor/lang/brainfuck.js","../node_modules/refractor/lang/brightscript.js","../node_modules/refractor/lang/bro.js","../node_modules/refractor/lang/bsl.js","../node_modules/refractor/lang/c.js","../node_modules/refractor/lang/cfscript.js","../node_modules/refractor/lang/chaiscript.js","../node_modules/refractor/lang/cil.js","../node_modules/refractor/lang/clike.js","../node_modules/refractor/lang/clojure.js","../node_modules/refractor/lang/cmake.js","../node_modules/refractor/lang/cobol.js","../node_modules/refractor/lang/coffeescript.js","../node_modules/refractor/lang/concurnas.js","../node_modules/refractor/lang/coq.js","../node_modules/refractor/lang/cpp.js","../node_modules/refractor/lang/crystal.js","../node_modules/refractor/lang/csharp.js","../node_modules/refractor/lang/cshtml.js","../node_modules/refractor/lang/csp.js","../node_modules/refractor/lang/css-extras.js","../node_modules/refractor/lang/css.js","../node_modules/refractor/lang/csv.js","../node_modules/refractor/lang/cypher.js","../node_modules/refractor/lang/d.js","../node_modules/refractor/lang/dart.js","../node_modules/refractor/lang/dataweave.js","../node_modules/refractor/lang/dax.js","../node_modules/refractor/lang/dhall.js","../node_modules/refractor/lang/diff.js","../node_modules/refractor/lang/django.js","../node_modules/refractor/lang/dns-zone-file.js","../node_modules/refractor/lang/docker.js","../node_modules/refractor/lang/dot.js","../node_modules/refractor/lang/ebnf.js","../node_modules/refractor/lang/editorconfig.js","../node_modules/refractor/lang/eiffel.js","../node_modules/refractor/lang/ejs.js","../node_modules/refractor/lang/elixir.js","../node_modules/refractor/lang/elm.js","../node_modules/refractor/lang/erb.js","../node_modules/refractor/lang/erlang.js","../node_modules/refractor/lang/etlua.js","../node_modules/refractor/lang/excel-formula.js","../node_modules/refractor/lang/factor.js","../node_modules/refractor/lang/false.js","../node_modules/refractor/lang/firestore-security-rules.js","../node_modules/refractor/lang/flow.js","../node_modules/refractor/lang/fortran.js","../node_modules/refractor/lang/fsharp.js","../node_modules/refractor/lang/ftl.js","../node_modules/refractor/lang/gap.js","../node_modules/refractor/lang/gcode.js","../node_modules/refractor/lang/gdscript.js","../node_modules/refractor/lang/gedcom.js","../node_modules/refractor/lang/gherkin.js","../node_modules/refractor/lang/git.js","../node_modules/refractor/lang/glsl.js","../node_modules/refractor/lang/gml.js","../node_modules/refractor/lang/gn.js","../node_modules/refractor/lang/go-module.js","../node_modules/refractor/lang/go.js","../node_modules/refractor/lang/graphql.js","../node_modules/refractor/lang/groovy.js","../node_modules/refractor/lang/haml.js","../node_modules/refractor/lang/handlebars.js","../node_modules/refractor/lang/haskell.js","../node_modules/refractor/lang/haxe.js","../node_modules/refractor/lang/hcl.js","../node_modules/refractor/lang/hlsl.js","../node_modules/refractor/lang/hoon.js","../node_modules/refractor/lang/hpkp.js","../node_modules/refractor/lang/hsts.js","../node_modules/refractor/lang/http.js","../node_modules/refractor/lang/ichigojam.js","../node_modules/refractor/lang/icon.js","../node_modules/refractor/lang/icu-message-format.js","../node_modules/refractor/lang/idris.js","../node_modules/refractor/lang/iecst.js","../node_modules/refractor/lang/ignore.js","../node_modules/refractor/lang/inform7.js","../node_modules/refractor/lang/ini.js","../node_modules/refractor/lang/io.js","../node_modules/refractor/lang/j.js","../node_modules/refractor/lang/java.js","../node_modules/refractor/lang/javadoc.js","../node_modules/refractor/lang/javadoclike.js","../node_modules/refractor/lang/javascript.js","../node_modules/refractor/lang/javastacktrace.js","../node_modules/refractor/lang/jexl.js","../node_modules/refractor/lang/jolie.js","../node_modules/refractor/lang/jq.js","../node_modules/refractor/lang/js-extras.js","../node_modules/refractor/lang/js-templates.js","../node_modules/refractor/lang/jsdoc.js","../node_modules/refractor/lang/json.js","../node_modules/refractor/lang/json5.js","../node_modules/refractor/lang/jsonp.js","../node_modules/refractor/lang/jsstacktrace.js","../node_modules/refractor/lang/jsx.js","../node_modules/refractor/lang/julia.js","../node_modules/refractor/lang/keepalived.js","../node_modules/refractor/lang/keyman.js","../node_modules/refractor/lang/kotlin.js","../node_modules/refractor/lang/kumir.js","../node_modules/refractor/lang/kusto.js","../node_modules/refractor/lang/latex.js","../node_modules/refractor/lang/latte.js","../node_modules/refractor/lang/less.js","../node_modules/refractor/lang/lilypond.js","../node_modules/refractor/lang/liquid.js","../node_modules/refractor/lang/lisp.js","../node_modules/refractor/lang/livescript.js","../node_modules/refractor/lang/llvm.js","../node_modules/refractor/lang/log.js","../node_modules/refractor/lang/lolcode.js","../node_modules/refractor/lang/lua.js","../node_modules/refractor/lang/magma.js","../node_modules/refractor/lang/makefile.js","../node_modules/refractor/lang/markdown.js","../node_modules/refractor/lang/markup-templating.js","../node_modules/refractor/lang/markup.js","../node_modules/refractor/lang/matlab.js","../node_modules/refractor/lang/maxscript.js","../node_modules/refractor/lang/mel.js","../node_modules/refractor/lang/mermaid.js","../node_modules/refractor/lang/mizar.js","../node_modules/refractor/lang/mongodb.js","../node_modules/refractor/lang/monkey.js","../node_modules/refractor/lang/moonscript.js","../node_modules/refractor/lang/n1ql.js","../node_modules/refractor/lang/n4js.js","../node_modules/refractor/lang/nand2tetris-hdl.js","../node_modules/refractor/lang/naniscript.js","../node_modules/refractor/lang/nasm.js","../node_modules/refractor/lang/neon.js","../node_modules/refractor/lang/nevod.js","../node_modules/refractor/lang/nginx.js","../node_modules/refractor/lang/nim.js","../node_modules/refractor/lang/nix.js","../node_modules/refractor/lang/nsis.js","../node_modules/refractor/lang/objectivec.js","../node_modules/refractor/lang/ocaml.js","../node_modules/refractor/lang/opencl.js","../node_modules/refractor/lang/openqasm.js","../node_modules/refractor/lang/oz.js","../node_modules/refractor/lang/parigp.js","../node_modules/refractor/lang/parser.js","../node_modules/refractor/lang/pascal.js","../node_modules/refractor/lang/pascaligo.js","../node_modules/refractor/lang/pcaxis.js","../node_modules/refractor/lang/peoplecode.js","../node_modules/refractor/lang/perl.js","../node_modules/refractor/lang/php-extras.js","../node_modules/refractor/lang/php.js","../node_modules/refractor/lang/phpdoc.js","../node_modules/refractor/lang/plsql.js","../node_modules/refractor/lang/powerquery.js","../node_modules/refractor/lang/powershell.js","../node_modules/refractor/lang/processing.js","../node_modules/refractor/lang/prolog.js","../node_modules/refractor/lang/promql.js","../node_modules/refractor/lang/properties.js","../node_modules/refractor/lang/protobuf.js","../node_modules/refractor/lang/psl.js","../node_modules/refractor/lang/pug.js","../node_modules/refractor/lang/puppet.js","../node_modules/refractor/lang/pure.js","../node_modules/refractor/lang/purebasic.js","../node_modules/refractor/lang/purescript.js","../node_modules/refractor/lang/python.js","../node_modules/refractor/lang/q.js","../node_modules/refractor/lang/qml.js","../node_modules/refractor/lang/qore.js","../node_modules/refractor/lang/qsharp.js","../node_modules/refractor/lang/r.js","../node_modules/refractor/lang/racket.js","../node_modules/refractor/lang/reason.js","../node_modules/refractor/lang/regex.js","../node_modules/refractor/lang/rego.js","../node_modules/refractor/lang/renpy.js","../node_modules/refractor/lang/rest.js","../node_modules/refractor/lang/rip.js","../node_modules/refractor/lang/roboconf.js","../node_modules/refractor/lang/robotframework.js","../node_modules/refractor/lang/ruby.js","../node_modules/refractor/lang/rust.js","../node_modules/refractor/lang/sas.js","../node_modules/refractor/lang/sass.js","../node_modules/refractor/lang/scala.js","../node_modules/refractor/lang/scheme.js","../node_modules/refractor/lang/scss.js","../node_modules/refractor/lang/shell-session.js","../node_modules/refractor/lang/smali.js","../node_modules/refractor/lang/smalltalk.js","../node_modules/refractor/lang/smarty.js","../node_modules/refractor/lang/sml.js","../node_modules/refractor/lang/solidity.js","../node_modules/refractor/lang/solution-file.js","../node_modules/refractor/lang/soy.js","../node_modules/refractor/lang/sparql.js","../node_modules/refractor/lang/splunk-spl.js","../node_modules/refractor/lang/sqf.js","../node_modules/refractor/lang/sql.js","../node_modules/refractor/lang/squirrel.js","../node_modules/refractor/lang/stan.js","../node_modules/refractor/lang/stylus.js","../node_modules/refractor/lang/swift.js","../node_modules/refractor/lang/systemd.js","../node_modules/refractor/lang/t4-cs.js","../node_modules/refractor/lang/t4-templating.js","../node_modules/refractor/lang/t4-vb.js","../node_modules/refractor/lang/tap.js","../node_modules/refractor/lang/tcl.js","../node_modules/refractor/lang/textile.js","../node_modules/refractor/lang/toml.js","../node_modules/refractor/lang/tremor.js","../node_modules/refractor/lang/tsx.js","../node_modules/refractor/lang/tt2.js","../node_modules/refractor/lang/turtle.js","../node_modules/refractor/lang/twig.js","../node_modules/refractor/lang/typescript.js","../node_modules/refractor/lang/typoscript.js","../node_modules/refractor/lang/unrealscript.js","../node_modules/refractor/lang/uorazor.js","../node_modules/refractor/lang/uri.js","../node_modules/refractor/lang/v.js","../node_modules/refractor/lang/vala.js","../node_modules/refractor/lang/vbnet.js","../node_modules/refractor/lang/velocity.js","../node_modules/refractor/lang/verilog.js","../node_modules/refractor/lang/vhdl.js","../node_modules/refractor/lang/vim.js","../node_modules/refractor/lang/visual-basic.js","../node_modules/refractor/lang/warpscript.js","../node_modules/refractor/lang/wasm.js","../node_modules/refractor/lang/web-idl.js","../node_modules/refractor/lang/wiki.js","../node_modules/refractor/lang/wolfram.js","../node_modules/refractor/lang/wren.js","../node_modules/refractor/lang/xeora.js","../node_modules/refractor/lang/xml-doc.js","../node_modules/refractor/lang/xojo.js","../node_modules/refractor/lang/xquery.js","../node_modules/refractor/lang/yaml.js","../node_modules/refractor/lang/yang.js","../node_modules/refractor/lang/zig.js","../node_modules/refractor/node_modules/prismjs/components/prism-core.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","../node_modules/xtend/immutable.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/unist-util-stringify-position/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/unist-util-is/index.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/unist-util-visit/index.js","../node_modules/unist-util-position/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/space-separated-tokens/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/react-markdown/node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../node_modules/react-syntax-highlighter/dist/esm/prism.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/coldark-dark.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/index.js","../node_modules/mdast-util-to-markdown/lib/util/association.js","../node_modules/mdast-util-to-markdown/lib/util/track.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/util/safe.js","../node_modules/mdast-util-gfm-footnote/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-gfm-strikethrough/index.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-gfm-task-list-item/index.js","../node_modules/mdast-util-gfm/lib/index.js","../node_modules/remark-gfm/index.js","../node_modules/hast-util-from-parse5/node_modules/hast-util-parse-selector/index.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/core.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/svg.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/html.js","../node_modules/web-namespaces/index.js","../node_modules/hast-util-from-parse5/lib/index.js","../node_modules/vfile-location/index.js","../node_modules/hast-to-hyperscript/index.js","../node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/rehype-raw/index.js","components/right_arrow.js","components/down_arrow.js","App.js","index.js"],"sourcesContent":["'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict'\n\nmodule.exports = parse\n\nvar search = /[#.]/g\n\n// Create a hast element from a simple CSS selector.\nfunction parse(selector, defaultTagName) {\n var value = selector || ''\n var name = defaultTagName || 'div'\n var props = {}\n var start = 0\n var subvalue\n var previous\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n name = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (props.className) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {type: 'element', tagName: name, properties: props, children: []}\n}\n","'use strict'\n\nvar find = require('property-information/find')\nvar normalize = require('property-information/normalize')\nvar parseSelector = require('hast-util-parse-selector')\nvar spaces = require('space-separated-tokens').parse\nvar commas = require('comma-separated-tokens').parse\n\nmodule.exports = factory\n\nvar own = {}.hasOwnProperty\n\nfunction factory(schema, defaultTagName, caseSensitive) {\n var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null\n\n return h\n\n // Hyperscript compatible DSL for creating virtual hast trees.\n function h(selector, properties) {\n var node = parseSelector(selector, defaultTagName)\n var children = Array.prototype.slice.call(arguments, 2)\n var name = node.tagName.toLowerCase()\n var property\n\n node.tagName = adjust && own.call(adjust, name) ? adjust[name] : name\n\n if (properties && isChildren(properties, node)) {\n children.unshift(properties)\n properties = null\n }\n\n if (properties) {\n for (property in properties) {\n addProperty(node.properties, property, properties[property])\n }\n }\n\n addChild(node.children, children)\n\n if (node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n function addProperty(properties, key, value) {\n var info\n var property\n var result\n\n // Ignore nullish and NaN values.\n if (value === null || value === undefined || value !== value) {\n return\n }\n\n info = find(schema, key)\n property = info.property\n result = value\n\n // Handle list values.\n if (typeof result === 'string') {\n if (info.spaceSeparated) {\n result = spaces(result)\n } else if (info.commaSeparated) {\n result = commas(result)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(result).join(' '))\n }\n }\n\n // Accept `object` on style.\n if (property === 'style' && typeof value !== 'string') {\n result = style(result)\n }\n\n // Class-names (which can be added both on the `selector` and here).\n if (property === 'className' && properties.className) {\n result = properties.className.concat(result)\n }\n\n properties[property] = parsePrimitives(info, property, result)\n }\n}\n\nfunction isChildren(value, node) {\n return (\n typeof value === 'string' ||\n 'length' in value ||\n isNode(node.tagName, value)\n )\n}\n\nfunction isNode(tagName, value) {\n var type = value.type\n\n if (tagName === 'input' || !type || typeof type !== 'string') {\n return false\n }\n\n if (typeof value.children === 'object' && 'length' in value.children) {\n return true\n }\n\n type = type.toLowerCase()\n\n if (tagName === 'button') {\n return (\n type !== 'menu' &&\n type !== 'submit' &&\n type !== 'reset' &&\n type !== 'button'\n )\n }\n\n return 'value' in value\n}\n\nfunction addChild(nodes, value) {\n var index\n var length\n\n if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n return\n }\n\n if (typeof value === 'object' && 'length' in value) {\n index = -1\n length = value.length\n\n while (++index < length) {\n addChild(nodes, value[index])\n }\n\n return\n }\n\n if (typeof value !== 'object' || !('type' in value)) {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n\n nodes.push(value)\n}\n\n// Parse a (list of) primitives.\nfunction parsePrimitives(info, name, value) {\n var index\n var length\n var result\n\n if (typeof value !== 'object' || !('length' in value)) {\n return parsePrimitive(info, name, value)\n }\n\n length = value.length\n index = -1\n result = []\n\n while (++index < length) {\n result[index] = parsePrimitive(info, name, value[index])\n }\n\n return result\n}\n\n// Parse a single primitives.\nfunction parsePrimitive(info, name, value) {\n var result = value\n\n if (info.number || info.positiveNumber) {\n if (!isNaN(result) && result !== '') {\n result = Number(result)\n }\n } else if (info.boolean || info.overloadedBoolean) {\n // Accept `boolean` and `string`.\n if (\n typeof result === 'string' &&\n (result === '' || normalize(value) === normalize(name))\n ) {\n result = true\n }\n }\n\n return result\n}\n\nfunction style(value) {\n var result = []\n var key\n\n for (key in value) {\n result.push([key, value[key]].join(': '))\n }\n\n return result.join('; ')\n}\n\nfunction createAdjustMap(values) {\n var length = values.length\n var index = -1\n var result = {}\n var value\n\n while (++index < length) {\n value = values[index]\n result[value.toLowerCase()] = value\n }\n\n return result\n}\n","'use strict'\n\nvar schema = require('property-information/html')\nvar factory = require('./factory')\n\nvar html = factory(schema, 'div')\nhtml.displayName = 'html'\n\nmodule.exports = html\n","'use strict'\n\nmodule.exports = require('./html')\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n var values = []\n var input = String(value || empty)\n var index = input.indexOf(comma)\n var lastIndex = 0\n var end = false\n var val\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n val = input.slice(lastIndex, index).trim()\n\n if (val || !end) {\n values.push(val)\n }\n\n lastIndex = index + 1\n index = input.indexOf(comma, lastIndex)\n }\n\n return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n var settings = options || {}\n var left = settings.padLeft === false ? empty : space\n var right = settings.padRight ? space : empty\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === empty) {\n values = values.concat(empty)\n }\n\n return values.join(right + comma + left).trim()\n}\n","'use strict'\n\nvar normalize = require('./normalize')\nvar DefinedInfo = require('./lib/util/defined-info')\nvar Info = require('./lib/util/info')\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return data + value\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar html = require('./lib/html')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","'use strict'\n\nvar caseSensitiveTransform = require('./case-sensitive-transform')\n\nmodule.exports = caseInsensitiveTransform\n\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","'use strict'\n\nmodule.exports = caseSensitiveTransform\n\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","'use strict'\n\nvar normalize = require('../../normalize')\nvar Schema = require('./schema')\nvar DefinedInfo = require('./defined-info')\n\nmodule.exports = create\n\nfunction create(definition) {\n var space = definition.space\n var mustUseProperty = definition.mustUseProperty || []\n var attributes = definition.attributes || {}\n var props = definition.properties\n var transform = definition.transform\n var property = {}\n var normal = {}\n var prop\n var info\n\n for (prop in props) {\n info = new DefinedInfo(\n prop,\n transform(attributes, prop),\n props[prop],\n space\n )\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n\n return new Schema(property, normal, space)\n}\n","'use strict'\n\nvar Info = require('./info')\nvar types = require('./types')\n\nmodule.exports = DefinedInfo\n\nDefinedInfo.prototype = new Info()\nDefinedInfo.prototype.defined = true\n\nvar checks = [\n 'boolean',\n 'booleanish',\n 'overloadedBoolean',\n 'number',\n 'commaSeparated',\n 'spaceSeparated',\n 'commaOrSpaceSeparated'\n]\nvar checksLength = checks.length\n\nfunction DefinedInfo(property, attribute, mask, space) {\n var index = -1\n var check\n\n mark(this, 'space', space)\n\n Info.call(this, property, attribute)\n\n while (++index < checksLength) {\n check = checks[index]\n mark(this, check, (mask & types[check]) === types[check])\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","'use strict'\n\nmodule.exports = Info\n\nvar proto = Info.prototype\n\nproto.space = null\nproto.attribute = null\nproto.property = null\nproto.boolean = false\nproto.booleanish = false\nproto.overloadedBoolean = false\nproto.number = false\nproto.commaSeparated = false\nproto.spaceSeparated = false\nproto.commaOrSpaceSeparated = false\nproto.mustUseProperty = false\nproto.defined = false\n\nfunction Info(property, attribute) {\n this.property = property\n this.attribute = attribute\n}\n","'use strict'\n\nvar xtend = require('xtend')\nvar Schema = require('./schema')\n\nmodule.exports = merge\n\nfunction merge(definitions) {\n var length = definitions.length\n var property = []\n var normal = []\n var index = -1\n var info\n var space\n\n while (++index < length) {\n info = definitions[index]\n property.push(info.property)\n normal.push(info.normal)\n space = info.space\n }\n\n return new Schema(\n xtend.apply(null, property),\n xtend.apply(null, normal),\n space\n )\n}\n","'use strict'\n\nmodule.exports = Schema\n\nvar proto = Schema.prototype\n\nproto.space = null\nproto.normal = {}\nproto.property = {}\n\nfunction Schema(property, normal, space) {\n this.property = property\n this.normal = normal\n\n if (space) {\n this.space = space\n }\n}\n","'use strict'\n\nvar powers = 0\n\nexports.boolean = increment()\nexports.booleanish = increment()\nexports.overloadedBoolean = increment()\nexports.number = increment()\nexports.spaceSeparated = increment()\nexports.commaSeparated = increment()\nexports.commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return Math.pow(2, ++powers)\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xlink',\n transform: xlinkTransform,\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n})\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nmodule.exports = create({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n})\n","'use strict'\n\nmodule.exports = normalize\n\nfunction normalize(value) {\n return value.toLowerCase()\n}\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar empty = ''\nvar space = ' '\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g\n\nfunction parse(value) {\n var input = String(value || empty).trim()\n return input === empty ? [] : input.split(whiteSpace)\n}\n\nfunction stringify(values) {\n return values.join(space).trim()\n}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","'use strict'\n\nmodule.exports = alphabetical\n\n// Check if the given character code, or the character code at the first\n// character, is alphabetical.\nfunction alphabetical(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 && code <= 122) /* a-z */ ||\n (code >= 65 && code <= 90) /* A-Z */\n )\n}\n","'use strict'\n\nvar alphabetical = require('is-alphabetical')\nvar decimal = require('is-decimal')\n\nmodule.exports = alphanumerical\n\n// Check if the given character code, or the character code at the first\n// character, is alphanumerical.\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character)\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nmodule.exports = decimal\n\n// Check if the given character code, or the character code at the first\n// character, is decimal.\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return code >= 48 && code <= 57 /* 0-9 */\n}\n","'use strict'\n\nmodule.exports = hexadecimal\n\n// Check if the given character code, or the character code at the first\n// character, is hexadecimal.\nfunction hexadecimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 /* a */ && code <= 102) /* z */ ||\n (code >= 65 /* A */ && code <= 70) /* Z */ ||\n (code >= 48 /* A */ && code <= 57) /* Z */\n )\n}\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`&not` - for instance),\n // which leads to situations where parsing the assumed entity of &notit; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`&semi;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict'\n\nvar legacy = require('character-entities-legacy')\nvar invalid = require('character-reference-invalid')\nvar decimal = require('is-decimal')\nvar hexadecimal = require('is-hexadecimal')\nvar alphanumerical = require('is-alphanumerical')\nvar decodeEntity = require('./decode-entity')\n\nmodule.exports = parseEntities\n\nvar own = {}.hasOwnProperty\nvar fromCharCode = String.fromCharCode\nvar noop = Function.prototype\n\n// Default settings.\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}\n\n// Characters.\nvar tab = 9 // '\\t'\nvar lineFeed = 10 // '\\n'\nvar formFeed = 12 // '\\f'\nvar space = 32 // ' '\nvar ampersand = 38 // '&'\nvar semicolon = 59 // ';'\nvar lessThan = 60 // '<'\nvar equalsTo = 61 // '='\nvar numberSign = 35 // '#'\nvar uppercaseX = 88 // 'X'\nvar lowercaseX = 120 // 'x'\nvar replacementCharacter = 65533 // '<27>'\n\n// Reference types.\nvar name = 'named'\nvar hexa = 'hexadecimal'\nvar deci = 'decimal'\n\n// Map of bases.\nvar bases = {}\n\nbases[hexa] = 16\nbases[deci] = 10\n\n// Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\nvar tests = {}\n\ntests[name] = alphanumerical\ntests[deci] = decimal\ntests[hexa] = hexadecimal\n\n// Warning types.\nvar namedNotTerminated = 1\nvar numericNotTerminated = 2\nvar namedEmpty = 3\nvar numericEmpty = 4\nvar namedUnknown = 5\nvar numericDisallowed = 6\nvar numericProhibited = 7\n\n// Warning messages.\nvar messages = {}\n\nmessages[namedNotTerminated] =\n 'Named character references must be terminated by a semicolon'\nmessages[numericNotTerminated] =\n 'Numeric character references must be terminated by a semicolon'\nmessages[namedEmpty] = 'Named character references cannot be empty'\nmessages[numericEmpty] = 'Numeric character references cannot be empty'\nmessages[namedUnknown] = 'Named character references must be known'\nmessages[numericDisallowed] =\n 'Numeric character references cannot be disallowed'\nmessages[numericProhibited] =\n 'Numeric character references cannot be outside the permissible Unicode range'\n\n// Wrap to ensure clean parameters are given to `parse`.\nfunction parseEntities(value, options) {\n var settings = {}\n var option\n var key\n\n if (!options) {\n options = {}\n }\n\n for (key in defaults) {\n option = options[key]\n settings[key] =\n option === null || option === undefined ? defaults[key] : option\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || []\n settings.position = settings.position.start\n }\n\n return parse(value, settings)\n}\n\n// Parse entities.\n// eslint-disable-next-line complexity\nfunction parse(value, settings) {\n var additional = settings.additional\n var nonTerminated = settings.nonTerminated\n var handleText = settings.text\n var handleReference = settings.reference\n var handleWarning = settings.warning\n var textContext = settings.textContext\n var referenceContext = settings.referenceContext\n var warningContext = settings.warningContext\n var pos = settings.position\n var indent = settings.indent || []\n var length = value.length\n var index = 0\n var lines = -1\n var column = pos.column || 1\n var line = pos.line || 1\n var queue = ''\n var result = []\n var entityCharacters\n var namedEntity\n var terminated\n var characters\n var character\n var reference\n var following\n var warning\n var reason\n var output\n var entity\n var begin\n var start\n var type\n var test\n var prev\n var next\n var diff\n var end\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0)\n }\n\n // Cache the current point.\n prev = now()\n\n // Wrap `handleWarning`.\n warning = handleWarning ? parseError : noop\n\n // Ensure the algorithm walks over the first character and the end\n // (inclusive).\n index--\n length++\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1\n }\n\n character = value.charCodeAt(index)\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1)\n\n // The behaviour depends on the identity of the next character.\n if (\n following === tab ||\n following === lineFeed ||\n following === formFeed ||\n following === space ||\n following === ampersand ||\n following === lessThan ||\n following !== following ||\n (additional && following === additional)\n ) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character)\n column++\n\n continue\n }\n\n start = index + 1\n begin = start\n end = start\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin\n\n // The behaviour further depends on the next character.\n following = value.charCodeAt(end)\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa\n end = ++begin\n } else {\n // ASCII digits.\n type = deci\n }\n } else {\n // Named entity.\n type = name\n }\n\n entityCharacters = ''\n entity = ''\n characters = ''\n test = tests[type]\n end--\n\n while (++end < length) {\n following = value.charCodeAt(end)\n\n if (!test(following)) {\n break\n }\n\n characters += fromCharCode(following)\n\n // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n if (type === name && own.call(legacy, characters)) {\n entityCharacters = characters\n entity = legacy[characters]\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon\n\n if (terminated) {\n end++\n\n namedEntity = type === name ? decodeEntity(characters) : false\n\n if (namedEntity) {\n entityCharacters = characters\n entity = namedEntity\n }\n }\n\n diff = 1 + end - start\n\n if (!terminated && !nonTerminated) {\n // Empty.\n } else if (!characters) {\n // An empty (possible) entity is valid, unless its numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff)\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1)\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length\n diff = 1 + end - begin\n terminated = false\n }\n\n // If the reference is not terminated, warn.\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty\n\n if (settings.attribute) {\n following = value.charCodeAt(end)\n\n if (following === equalsTo) {\n warning(reason, diff)\n entity = null\n } else if (alphanumerical(following)) {\n entity = null\n } else {\n warning(reason, diff)\n }\n } else {\n warning(reason, diff)\n }\n }\n }\n\n reference = entity\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff)\n }\n\n // When terminated and number, parse as either hexadecimal or decimal.\n reference = parseInt(characters, bases[type])\n\n // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n if (prohibited(reference)) {\n warning(numericProhibited, diff)\n reference = fromCharCode(replacementCharacter)\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff)\n reference = invalid[reference]\n } else {\n // Parse the number.\n output = ''\n\n // Trigger a warning when the parsed number should not be used.\n if (disallowed(reference)) {\n warning(numericDisallowed, diff)\n }\n\n // Stringify the number.\n if (reference > 0xffff) {\n reference -= 0x10000\n output += fromCharCode((reference >>> (10 & 0x3ff)) | 0xd800)\n reference = 0xdc00 | (reference & 0x3ff)\n }\n\n reference = output + fromCharCode(reference)\n }\n }\n\n // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n if (reference) {\n flush()\n\n prev = now()\n index = end - 1\n column += end - start + 1\n result.push(reference)\n next = now()\n next.offset++\n\n if (handleReference) {\n handleReference.call(\n referenceContext,\n reference,\n {start: prev, end: next},\n value.slice(start - 1, end)\n )\n }\n\n prev = next\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end)\n queue += characters\n column += characters.length\n index = end - 1\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (\n character === 10 // Line feed\n ) {\n line++\n lines++\n column = 0\n }\n\n if (character === character) {\n queue += fromCharCode(character)\n column++\n } else {\n flush()\n }\n }\n }\n\n // Return the reduced nodes.\n return result.join('')\n\n // Get current position.\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n }\n }\n\n // “Throw” a parse-error: a warning.\n function parseError(code, offset) {\n var position = now()\n\n position.column += offset\n position.offset += offset\n\n handleWarning.call(warningContext, messages[code], position, code)\n }\n\n // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n function flush() {\n if (queue) {\n result.push(queue)\n\n if (handleText) {\n handleText.call(textContext, queue, {start: prev, end: now()})\n }\n\n queue = ''\n }\n }\n}\n\n// Check if `character` is outside the permissible unicode range.\nfunction prohibited(code) {\n return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n// Check if `character` is disallowed.\nfunction disallowed(code) {\n return (\n (code >= 0x0001 && code <= 0x0008) ||\n code === 0x000b ||\n (code >= 0x000d && code <= 0x001f) ||\n (code >= 0x007f && code <= 0x009f) ||\n (code >= 0xfdd0 && code <= 0xfdef) ||\n (code & 0xffff) === 0xffff ||\n (code & 0xffff) === 0xfffe\n )\n}\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('./html');\n\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\n\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//'\n];\n\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = QUIRKS_MODE_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\nconst QUIRKS_MODE_PUBLIC_IDS = ['-//w3o//dtd w3 html strict 3.0//en//', '-/w3c/dtd html 4.0 transitional/en', 'html'];\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\n\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = LIMITED_QUIRKS_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\n//Utils\nfunction enquoteDoctypeId(id) {\n const quote = id.indexOf('\"') !== -1 ? \"'\" : '\"';\n\n return quote + id + quote;\n}\n\nfunction hasPrefix(publicId, prefixes) {\n for (let i = 0; i < prefixes.length; i++) {\n if (publicId.indexOf(prefixes[i]) === 0) {\n return true;\n }\n }\n\n return false;\n}\n\n//API\nexports.isConforming = function(token) {\n return (\n token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID)\n );\n};\n\nexports.getDocumentMode = function(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n const systemId = token.systemId;\n\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let publicId = token.publicId;\n\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n\n if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n\n return DOCUMENT_MODE.NO_QUIRKS;\n};\n\nexports.serializeContent = function(name, publicId, systemId) {\n let str = '!DOCTYPE ';\n\n if (name) {\n str += name;\n }\n\n if (publicId) {\n str += ' PUBLIC ' + enquoteDoctypeId(publicId);\n } else if (systemId) {\n str += ' SYSTEM';\n }\n\n if (systemId !== null) {\n str += ' ' + enquoteDoctypeId(systemId);\n }\n\n return str;\n};\n","'use strict';\n\nmodule.exports = {\n controlCharacterInInputStream: 'control-character-in-input-stream',\n noncharacterInInputStream: 'noncharacter-in-input-stream',\n surrogateInInputStream: 'surrogate-in-input-stream',\n nonVoidHtmlElementStartTagWithTrailingSolidus: 'non-void-html-element-start-tag-with-trailing-solidus',\n endTagWithAttributes: 'end-tag-with-attributes',\n endTagWithTrailingSolidus: 'end-tag-with-trailing-solidus',\n unexpectedSolidusInTag: 'unexpected-solidus-in-tag',\n unexpectedNullCharacter: 'unexpected-null-character',\n unexpectedQuestionMarkInsteadOfTagName: 'unexpected-question-mark-instead-of-tag-name',\n invalidFirstCharacterOfTagName: 'invalid-first-character-of-tag-name',\n unexpectedEqualsSignBeforeAttributeName: 'unexpected-equals-sign-before-attribute-name',\n missingEndTagName: 'missing-end-tag-name',\n unexpectedCharacterInAttributeName: 'unexpected-character-in-attribute-name',\n unknownNamedCharacterReference: 'unknown-named-character-reference',\n missingSemicolonAfterCharacterReference: 'missing-semicolon-after-character-reference',\n unexpectedCharacterAfterDoctypeSystemIdentifier: 'unexpected-character-after-doctype-system-identifier',\n unexpectedCharacterInUnquotedAttributeValue: 'unexpected-character-in-unquoted-attribute-value',\n eofBeforeTagName: 'eof-before-tag-name',\n eofInTag: 'eof-in-tag',\n missingAttributeValue: 'missing-attribute-value',\n missingWhitespaceBetweenAttributes: 'missing-whitespace-between-attributes',\n missingWhitespaceAfterDoctypePublicKeyword: 'missing-whitespace-after-doctype-public-keyword',\n missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:\n 'missing-whitespace-between-doctype-public-and-system-identifiers',\n missingWhitespaceAfterDoctypeSystemKeyword: 'missing-whitespace-after-doctype-system-keyword',\n missingQuoteBeforeDoctypePublicIdentifier: 'missing-quote-before-doctype-public-identifier',\n missingQuoteBeforeDoctypeSystemIdentifier: 'missing-quote-before-doctype-system-identifier',\n missingDoctypePublicIdentifier: 'missing-doctype-public-identifier',\n missingDoctypeSystemIdentifier: 'missing-doctype-system-identifier',\n abruptDoctypePublicIdentifier: 'abrupt-doctype-public-identifier',\n abruptDoctypeSystemIdentifier: 'abrupt-doctype-system-identifier',\n cdataInHtmlContent: 'cdata-in-html-content',\n incorrectlyOpenedComment: 'incorrectly-opened-comment',\n eofInScriptHtmlCommentLikeText: 'eof-in-script-html-comment-like-text',\n eofInDoctype: 'eof-in-doctype',\n nestedComment: 'nested-comment',\n abruptClosingOfEmptyComment: 'abrupt-closing-of-empty-comment',\n eofInComment: 'eof-in-comment',\n incorrectlyClosedComment: 'incorrectly-closed-comment',\n eofInCdata: 'eof-in-cdata',\n absenceOfDigitsInNumericCharacterReference: 'absence-of-digits-in-numeric-character-reference',\n nullCharacterReference: 'null-character-reference',\n surrogateCharacterReference: 'surrogate-character-reference',\n characterReferenceOutsideUnicodeRange: 'character-reference-outside-unicode-range',\n controlCharacterReference: 'control-character-reference',\n noncharacterCharacterReference: 'noncharacter-character-reference',\n missingWhitespaceBeforeDoctypeName: 'missing-whitespace-before-doctype-name',\n missingDoctypeName: 'missing-doctype-name',\n invalidCharacterSequenceAfterDoctypeName: 'invalid-character-sequence-after-doctype-name',\n duplicateAttribute: 'duplicate-attribute',\n nonConformingDoctype: 'non-conforming-doctype',\n missingDoctype: 'missing-doctype',\n misplacedDoctype: 'misplaced-doctype',\n endTagWithoutMatchingOpenElement: 'end-tag-without-matching-open-element',\n closingOfElementWithOpenChildElements: 'closing-of-element-with-open-child-elements',\n disallowedContentInNoscriptInHead: 'disallowed-content-in-noscript-in-head',\n openElementsLeftAfterEof: 'open-elements-left-after-eof',\n abandonedHeadElementChild: 'abandoned-head-element-child',\n misplacedStartTagForHeadElement: 'misplaced-start-tag-for-head-element',\n nestedNoscriptInHead: 'nested-noscript-in-head',\n eofInElementThatCanContainOnlyText: 'eof-in-element-that-can-contain-only-text'\n};\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst HTML = require('./html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml'\n};\n\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = {\n attributename: 'attributeName',\n attributetype: 'attributeType',\n basefrequency: 'baseFrequency',\n baseprofile: 'baseProfile',\n calcmode: 'calcMode',\n clippathunits: 'clipPathUnits',\n diffuseconstant: 'diffuseConstant',\n edgemode: 'edgeMode',\n filterunits: 'filterUnits',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n limitingconeangle: 'limitingConeAngle',\n markerheight: 'markerHeight',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n numoctaves: 'numOctaves',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n refx: 'refX',\n refy: 'refY',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stitchtiles: 'stitchTiles',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textlength: 'textLength',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n xchannelselector: 'xChannelSelector',\n ychannelselector: 'yChannelSelector',\n zoomandpan: 'zoomAndPan'\n};\n\nconst XML_ATTRS_ADJUSTMENT_MAP = {\n 'xlink:actuate': { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK },\n 'xlink:arcrole': { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK },\n 'xlink:href': { prefix: 'xlink', name: 'href', namespace: NS.XLINK },\n 'xlink:role': { prefix: 'xlink', name: 'role', namespace: NS.XLINK },\n 'xlink:show': { prefix: 'xlink', name: 'show', namespace: NS.XLINK },\n 'xlink:title': { prefix: 'xlink', name: 'title', namespace: NS.XLINK },\n 'xlink:type': { prefix: 'xlink', name: 'type', namespace: NS.XLINK },\n 'xml:base': { prefix: 'xml', name: 'base', namespace: NS.XML },\n 'xml:lang': { prefix: 'xml', name: 'lang', namespace: NS.XML },\n 'xml:space': { prefix: 'xml', name: 'space', namespace: NS.XML },\n xmlns: { prefix: '', name: 'xmlns', namespace: NS.XMLNS },\n 'xmlns:xlink': { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }\n};\n\n//SVG tag names adjustment map\nconst SVG_TAG_NAMES_ADJUSTMENT_MAP = (exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = {\n altglyph: 'altGlyph',\n altglyphdef: 'altGlyphDef',\n altglyphitem: 'altGlyphItem',\n animatecolor: 'animateColor',\n animatemotion: 'animateMotion',\n animatetransform: 'animateTransform',\n clippath: 'clipPath',\n feblend: 'feBlend',\n fecolormatrix: 'feColorMatrix',\n fecomponenttransfer: 'feComponentTransfer',\n fecomposite: 'feComposite',\n feconvolvematrix: 'feConvolveMatrix',\n fediffuselighting: 'feDiffuseLighting',\n fedisplacementmap: 'feDisplacementMap',\n fedistantlight: 'feDistantLight',\n feflood: 'feFlood',\n fefunca: 'feFuncA',\n fefuncb: 'feFuncB',\n fefuncg: 'feFuncG',\n fefuncr: 'feFuncR',\n fegaussianblur: 'feGaussianBlur',\n feimage: 'feImage',\n femerge: 'feMerge',\n femergenode: 'feMergeNode',\n femorphology: 'feMorphology',\n feoffset: 'feOffset',\n fepointlight: 'fePointLight',\n fespecularlighting: 'feSpecularLighting',\n fespotlight: 'feSpotLight',\n fetile: 'feTile',\n feturbulence: 'feTurbulence',\n foreignobject: 'foreignObject',\n glyphref: 'glyphRef',\n lineargradient: 'linearGradient',\n radialgradient: 'radialGradient',\n textpath: 'textPath'\n});\n\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = {\n [$.B]: true,\n [$.BIG]: true,\n [$.BLOCKQUOTE]: true,\n [$.BODY]: true,\n [$.BR]: true,\n [$.CENTER]: true,\n [$.CODE]: true,\n [$.DD]: true,\n [$.DIV]: true,\n [$.DL]: true,\n [$.DT]: true,\n [$.EM]: true,\n [$.EMBED]: true,\n [$.H1]: true,\n [$.H2]: true,\n [$.H3]: true,\n [$.H4]: true,\n [$.H5]: true,\n [$.H6]: true,\n [$.HEAD]: true,\n [$.HR]: true,\n [$.I]: true,\n [$.IMG]: true,\n [$.LI]: true,\n [$.LISTING]: true,\n [$.MENU]: true,\n [$.META]: true,\n [$.NOBR]: true,\n [$.OL]: true,\n [$.P]: true,\n [$.PRE]: true,\n [$.RUBY]: true,\n [$.S]: true,\n [$.SMALL]: true,\n [$.SPAN]: true,\n [$.STRONG]: true,\n [$.STRIKE]: true,\n [$.SUB]: true,\n [$.SUP]: true,\n [$.TABLE]: true,\n [$.TT]: true,\n [$.U]: true,\n [$.UL]: true,\n [$.VAR]: true\n};\n\n//Check exit from foreign content\nexports.causesExit = function(startTagToken) {\n const tn = startTagToken.tagName;\n const isFontWithAttrs =\n tn === $.FONT &&\n (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null ||\n Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null ||\n Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null);\n\n return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn];\n};\n\n//Token adjustments\nexports.adjustTokenMathMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n};\n\nexports.adjustTokenSVGAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrName) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n};\n\nexports.adjustTokenXMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n};\n\nexports.adjustTokenSVGTagName = function(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName];\n\n if (adjustedTagName) {\n token.tagName = adjustedTagName;\n }\n};\n\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\n\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\n\nexports.isIntegrationPoint = function(tn, ns, attrs, foreignNS) {\n if ((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) {\n return true;\n }\n\n if ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) {\n return true;\n }\n\n return false;\n};\n","'use strict';\n\nconst NS = (exports.NAMESPACES = {\n HTML: 'http://www.w3.org/1999/xhtml',\n MATHML: 'http://www.w3.org/1998/Math/MathML',\n SVG: 'http://www.w3.org/2000/svg',\n XLINK: 'http://www.w3.org/1999/xlink',\n XML: 'http://www.w3.org/XML/1998/namespace',\n XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\n\nexports.ATTRS = {\n TYPE: 'type',\n ACTION: 'action',\n ENCODING: 'encoding',\n PROMPT: 'prompt',\n NAME: 'name',\n COLOR: 'color',\n FACE: 'face',\n SIZE: 'size'\n};\n\nexports.DOCUMENT_MODE = {\n NO_QUIRKS: 'no-quirks',\n QUIRKS: 'quirks',\n LIMITED_QUIRKS: 'limited-quirks'\n};\n\nconst $ = (exports.TAG_NAMES = {\n A: 'a',\n ADDRESS: 'address',\n ANNOTATION_XML: 'annotation-xml',\n APPLET: 'applet',\n AREA: 'area',\n ARTICLE: 'article',\n ASIDE: 'aside',\n\n B: 'b',\n BASE: 'base',\n BASEFONT: 'basefont',\n BGSOUND: 'bgsound',\n BIG: 'big',\n BLOCKQUOTE: 'blockquote',\n BODY: 'body',\n BR: 'br',\n BUTTON: 'button',\n\n CAPTION: 'caption',\n CENTER: 'center',\n CODE: 'code',\n COL: 'col',\n COLGROUP: 'colgroup',\n\n DD: 'dd',\n DESC: 'desc',\n DETAILS: 'details',\n DIALOG: 'dialog',\n DIR: 'dir',\n DIV: 'div',\n DL: 'dl',\n DT: 'dt',\n\n EM: 'em',\n EMBED: 'embed',\n\n FIELDSET: 'fieldset',\n FIGCAPTION: 'figcaption',\n FIGURE: 'figure',\n FONT: 'font',\n FOOTER: 'footer',\n FOREIGN_OBJECT: 'foreignObject',\n FORM: 'form',\n FRAME: 'frame',\n FRAMESET: 'frameset',\n\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n HEAD: 'head',\n HEADER: 'header',\n HGROUP: 'hgroup',\n HR: 'hr',\n HTML: 'html',\n\n I: 'i',\n IMG: 'img',\n IMAGE: 'image',\n INPUT: 'input',\n IFRAME: 'iframe',\n\n KEYGEN: 'keygen',\n\n LABEL: 'label',\n LI: 'li',\n LINK: 'link',\n LISTING: 'listing',\n\n MAIN: 'main',\n MALIGNMARK: 'malignmark',\n MARQUEE: 'marquee',\n MATH: 'math',\n MENU: 'menu',\n META: 'meta',\n MGLYPH: 'mglyph',\n MI: 'mi',\n MO: 'mo',\n MN: 'mn',\n MS: 'ms',\n MTEXT: 'mtext',\n\n NAV: 'nav',\n NOBR: 'nobr',\n NOFRAMES: 'noframes',\n NOEMBED: 'noembed',\n NOSCRIPT: 'noscript',\n\n OBJECT: 'object',\n OL: 'ol',\n OPTGROUP: 'optgroup',\n OPTION: 'option',\n\n P: 'p',\n PARAM: 'param',\n PLAINTEXT: 'plaintext',\n PRE: 'pre',\n\n RB: 'rb',\n RP: 'rp',\n RT: 'rt',\n RTC: 'rtc',\n RUBY: 'ruby',\n\n S: 's',\n SCRIPT: 'script',\n SECTION: 'section',\n SELECT: 'select',\n SOURCE: 'source',\n SMALL: 'small',\n SPAN: 'span',\n STRIKE: 'strike',\n STRONG: 'strong',\n STYLE: 'style',\n SUB: 'sub',\n SUMMARY: 'summary',\n SUP: 'sup',\n\n TABLE: 'table',\n TBODY: 'tbody',\n TEMPLATE: 'template',\n TEXTAREA: 'textarea',\n TFOOT: 'tfoot',\n TD: 'td',\n TH: 'th',\n THEAD: 'thead',\n TITLE: 'title',\n TR: 'tr',\n TRACK: 'track',\n TT: 'tt',\n\n U: 'u',\n UL: 'ul',\n\n SVG: 'svg',\n\n VAR: 'var',\n\n WBR: 'wbr',\n\n XMP: 'xmp'\n});\n\nexports.SPECIAL_ELEMENTS = {\n [NS.HTML]: {\n [$.ADDRESS]: true,\n [$.APPLET]: true,\n [$.AREA]: true,\n [$.ARTICLE]: true,\n [$.ASIDE]: true,\n [$.BASE]: true,\n [$.BASEFONT]: true,\n [$.BGSOUND]: true,\n [$.BLOCKQUOTE]: true,\n [$.BODY]: true,\n [$.BR]: true,\n [$.BUTTON]: true,\n [$.CAPTION]: true,\n [$.CENTER]: true,\n [$.COL]: true,\n [$.COLGROUP]: true,\n [$.DD]: true,\n [$.DETAILS]: true,\n [$.DIR]: true,\n [$.DIV]: true,\n [$.DL]: true,\n [$.DT]: true,\n [$.EMBED]: true,\n [$.FIELDSET]: true,\n [$.FIGCAPTION]: true,\n [$.FIGURE]: true,\n [$.FOOTER]: true,\n [$.FORM]: true,\n [$.FRAME]: true,\n [$.FRAMESET]: true,\n [$.H1]: true,\n [$.H2]: true,\n [$.H3]: true,\n [$.H4]: true,\n [$.H5]: true,\n [$.H6]: true,\n [$.HEAD]: true,\n [$.HEADER]: true,\n [$.HGROUP]: true,\n [$.HR]: true,\n [$.HTML]: true,\n [$.IFRAME]: true,\n [$.IMG]: true,\n [$.INPUT]: true,\n [$.LI]: true,\n [$.LINK]: true,\n [$.LISTING]: true,\n [$.MAIN]: true,\n [$.MARQUEE]: true,\n [$.MENU]: true,\n [$.META]: true,\n [$.NAV]: true,\n [$.NOEMBED]: true,\n [$.NOFRAMES]: true,\n [$.NOSCRIPT]: true,\n [$.OBJECT]: true,\n [$.OL]: true,\n [$.P]: true,\n [$.PARAM]: true,\n [$.PLAINTEXT]: true,\n [$.PRE]: true,\n [$.SCRIPT]: true,\n [$.SECTION]: true,\n [$.SELECT]: true,\n [$.SOURCE]: true,\n [$.STYLE]: true,\n [$.SUMMARY]: true,\n [$.TABLE]: true,\n [$.TBODY]: true,\n [$.TD]: true,\n [$.TEMPLATE]: true,\n [$.TEXTAREA]: true,\n [$.TFOOT]: true,\n [$.TH]: true,\n [$.THEAD]: true,\n [$.TITLE]: true,\n [$.TR]: true,\n [$.TRACK]: true,\n [$.UL]: true,\n [$.WBR]: true,\n [$.XMP]: true\n },\n [NS.MATHML]: {\n [$.MI]: true,\n [$.MO]: true,\n [$.MN]: true,\n [$.MS]: true,\n [$.MTEXT]: true,\n [$.ANNOTATION_XML]: true\n },\n [NS.SVG]: {\n [$.TITLE]: true,\n [$.FOREIGN_OBJECT]: true,\n [$.DESC]: true\n }\n};\n","'use strict';\n\nconst UNDEFINED_CODE_POINTS = [\n 0xfffe,\n 0xffff,\n 0x1fffe,\n 0x1ffff,\n 0x2fffe,\n 0x2ffff,\n 0x3fffe,\n 0x3ffff,\n 0x4fffe,\n 0x4ffff,\n 0x5fffe,\n 0x5ffff,\n 0x6fffe,\n 0x6ffff,\n 0x7fffe,\n 0x7ffff,\n 0x8fffe,\n 0x8ffff,\n 0x9fffe,\n 0x9ffff,\n 0xafffe,\n 0xaffff,\n 0xbfffe,\n 0xbffff,\n 0xcfffe,\n 0xcffff,\n 0xdfffe,\n 0xdffff,\n 0xefffe,\n 0xeffff,\n 0xffffe,\n 0xfffff,\n 0x10fffe,\n 0x10ffff\n];\n\nexports.REPLACEMENT_CHARACTER = '\\uFFFD';\n\nexports.CODE_POINTS = {\n EOF: -1,\n NULL: 0x00,\n TABULATION: 0x09,\n CARRIAGE_RETURN: 0x0d,\n LINE_FEED: 0x0a,\n FORM_FEED: 0x0c,\n SPACE: 0x20,\n EXCLAMATION_MARK: 0x21,\n QUOTATION_MARK: 0x22,\n NUMBER_SIGN: 0x23,\n AMPERSAND: 0x26,\n APOSTROPHE: 0x27,\n HYPHEN_MINUS: 0x2d,\n SOLIDUS: 0x2f,\n DIGIT_0: 0x30,\n DIGIT_9: 0x39,\n SEMICOLON: 0x3b,\n LESS_THAN_SIGN: 0x3c,\n EQUALS_SIGN: 0x3d,\n GREATER_THAN_SIGN: 0x3e,\n QUESTION_MARK: 0x3f,\n LATIN_CAPITAL_A: 0x41,\n LATIN_CAPITAL_F: 0x46,\n LATIN_CAPITAL_X: 0x58,\n LATIN_CAPITAL_Z: 0x5a,\n RIGHT_SQUARE_BRACKET: 0x5d,\n GRAVE_ACCENT: 0x60,\n LATIN_SMALL_A: 0x61,\n LATIN_SMALL_F: 0x66,\n LATIN_SMALL_X: 0x78,\n LATIN_SMALL_Z: 0x7a,\n REPLACEMENT_CHARACTER: 0xfffd\n};\n\nexports.CODE_POINT_SEQUENCES = {\n DASH_DASH_STRING: [0x2d, 0x2d], //--\n DOCTYPE_STRING: [0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE\n CDATA_START_STRING: [0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b], //[CDATA[\n SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script\n PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4c, 0x49, 0x43], //PUBLIC\n SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4d] //SYSTEM\n};\n\n//Surrogates\nexports.isSurrogate = function(cp) {\n return cp >= 0xd800 && cp <= 0xdfff;\n};\n\nexports.isSurrogatePair = function(cp) {\n return cp >= 0xdc00 && cp <= 0xdfff;\n};\n\nexports.getSurrogatePairCodePoint = function(cp1, cp2) {\n return (cp1 - 0xd800) * 0x400 + 0x2400 + cp2;\n};\n\n//NOTE: excluding NULL and ASCII whitespace\nexports.isControlCodePoint = function(cp) {\n return (\n (cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f)\n );\n};\n\nexports.isUndefinedCodePoint = function(cp) {\n return (cp >= 0xfdd0 && cp <= 0xfdef) || UNDEFINED_CODE_POINTS.indexOf(cp) > -1;\n};\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingMixinBase extends Mixin {\n constructor(host, opts) {\n super(host);\n\n this.posTracker = null;\n this.onParseError = opts.onParseError;\n }\n\n _setErrorLocation(err) {\n err.startLine = err.endLine = this.posTracker.line;\n err.startCol = err.endCol = this.posTracker.col;\n err.startOffset = err.endOffset = this.posTracker.offset;\n }\n\n _reportError(code) {\n const err = {\n code: code,\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n\n this._setErrorLocation(err);\n this.onParseError(err);\n }\n\n _getOverriddenMethods(mxn) {\n return {\n _err(code) {\n mxn._reportError(code);\n }\n };\n }\n}\n\nmodule.exports = ErrorReportingMixinBase;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoTokenizerMixin = require('../location-info/tokenizer-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingParserMixin extends ErrorReportingMixinBase {\n constructor(parser, opts) {\n super(parser, opts);\n\n this.opts = opts;\n this.ctLoc = null;\n this.locBeforeToken = false;\n }\n\n _setErrorLocation(err) {\n if (this.ctLoc) {\n err.startLine = this.ctLoc.startLine;\n err.startCol = this.ctLoc.startCol;\n err.startOffset = this.ctLoc.startOffset;\n\n err.endLine = this.locBeforeToken ? this.ctLoc.startLine : this.ctLoc.endLine;\n err.endCol = this.locBeforeToken ? this.ctLoc.startCol : this.ctLoc.endCol;\n err.endOffset = this.locBeforeToken ? this.ctLoc.startOffset : this.ctLoc.endOffset;\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n Mixin.install(this.tokenizer, ErrorReportingTokenizerMixin, mxn.opts);\n Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n },\n\n _processInputToken(token) {\n mxn.ctLoc = token.location;\n\n orig._processInputToken.call(this, token);\n },\n\n _err(code, options) {\n mxn.locBeforeToken = options && options.beforeToken;\n mxn._reportError(code);\n }\n };\n }\n}\n\nmodule.exports = ErrorReportingParserMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase {\n constructor(preprocessor, opts) {\n super(preprocessor, opts);\n\n this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin);\n this.lastErrOffset = -1;\n }\n\n _reportError(code) {\n //NOTE: avoid reporting error twice on advance/retreat\n if (this.lastErrOffset !== this.posTracker.offset) {\n this.lastErrOffset = this.posTracker.offset;\n super._reportError(code);\n }\n }\n}\n\nmodule.exports = ErrorReportingPreprocessorMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingPreprocessorMixin = require('./preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingTokenizerMixin extends ErrorReportingMixinBase {\n constructor(tokenizer, opts) {\n super(tokenizer, opts);\n\n const preprocessorMixin = Mixin.install(tokenizer.preprocessor, ErrorReportingPreprocessorMixin, opts);\n\n this.posTracker = preprocessorMixin.posTracker;\n }\n}\n\nmodule.exports = ErrorReportingTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass LocationInfoOpenElementStackMixin extends Mixin {\n constructor(stack, opts) {\n super(stack);\n\n this.onItemPop = opts.onItemPop;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n pop() {\n mxn.onItemPop(this.current);\n orig.pop.call(this);\n },\n\n popAllUpToHtmlElement() {\n for (let i = this.stackTop; i > 0; i--) {\n mxn.onItemPop(this.items[i]);\n }\n\n orig.popAllUpToHtmlElement.call(this);\n },\n\n remove(element) {\n mxn.onItemPop(this.current);\n orig.remove.call(this, element);\n }\n };\n }\n}\n\nmodule.exports = LocationInfoOpenElementStackMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst LocationInfoTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoOpenElementStackMixin = require('./open-element-stack-mixin');\nconst HTML = require('../../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\n\nclass LocationInfoParserMixin extends Mixin {\n constructor(parser) {\n super(parser);\n\n this.parser = parser;\n this.treeAdapter = this.parser.treeAdapter;\n this.posTracker = null;\n this.lastStartTagToken = null;\n this.lastFosterParentingLocation = null;\n this.currentToken = null;\n }\n\n _setStartLocation(element) {\n let loc = null;\n\n if (this.lastStartTagToken) {\n loc = Object.assign({}, this.lastStartTagToken.location);\n loc.startTag = this.lastStartTagToken.location;\n }\n\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n\n _setEndLocation(element, closingToken) {\n const loc = this.treeAdapter.getNodeSourceCodeLocation(element);\n\n if (loc) {\n if (closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n\n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n const isClosingEndTag = closingToken.type === Tokenizer.END_TAG_TOKEN && tn === closingToken.tagName;\n const endLoc = {};\n if (isClosingEndTag) {\n endLoc.endTag = Object.assign({}, ctLoc);\n endLoc.endLine = ctLoc.endLine;\n endLoc.endCol = ctLoc.endCol;\n endLoc.endOffset = ctLoc.endOffset;\n } else {\n endLoc.endLine = ctLoc.startLine;\n endLoc.endCol = ctLoc.startCol;\n endLoc.endOffset = ctLoc.startOffset;\n }\n\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n mxn.lastStartTagToken = null;\n mxn.lastFosterParentingLocation = null;\n mxn.currentToken = null;\n\n const tokenizerMixin = Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n\n mxn.posTracker = tokenizerMixin.posTracker;\n\n Mixin.install(this.openElements, LocationInfoOpenElementStackMixin, {\n onItemPop: function(element) {\n mxn._setEndLocation(element, mxn.currentToken);\n }\n });\n },\n\n _runParsingLoop(scriptHandler) {\n orig._runParsingLoop.call(this, scriptHandler);\n\n // NOTE: generate location info for elements\n // that remains on open element stack\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n mxn._setEndLocation(this.openElements.items[i], mxn.currentToken);\n }\n },\n\n //Token processing\n _processTokenInForeignContent(token) {\n mxn.currentToken = token;\n orig._processTokenInForeignContent.call(this, token);\n },\n\n _processToken(token) {\n mxn.currentToken = token;\n orig._processToken.call(this, token);\n\n //NOTE: <body> and <html> are never popped from the stack, so we need to updated\n //their end location explicitly.\n const requireExplicitUpdate =\n token.type === Tokenizer.END_TAG_TOKEN &&\n (token.tagName === $.HTML || (token.tagName === $.BODY && this.openElements.hasInScope($.BODY)));\n\n if (requireExplicitUpdate) {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const element = this.openElements.items[i];\n\n if (this.treeAdapter.getTagName(element) === token.tagName) {\n mxn._setEndLocation(element, token);\n break;\n }\n }\n }\n },\n\n //Doctype\n _setDocumentType(token) {\n orig._setDocumentType.call(this, token);\n\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const cnLength = documentChildren.length;\n\n for (let i = 0; i < cnLength; i++) {\n const node = documentChildren[i];\n\n if (this.treeAdapter.isDocumentTypeNode(node)) {\n this.treeAdapter.setNodeSourceCodeLocation(node, token.location);\n break;\n }\n }\n },\n\n //Elements\n _attachElementToTree(element) {\n //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods.\n //So we will use token location stored in this methods for the element.\n mxn._setStartLocation(element);\n mxn.lastStartTagToken = null;\n orig._attachElementToTree.call(this, element);\n },\n\n _appendElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._appendElement.call(this, token, namespaceURI);\n },\n\n _insertElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._insertElement.call(this, token, namespaceURI);\n },\n\n _insertTemplate(token) {\n mxn.lastStartTagToken = token;\n orig._insertTemplate.call(this, token);\n\n const tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current);\n\n this.treeAdapter.setNodeSourceCodeLocation(tmplContent, null);\n },\n\n _insertFakeRootElement() {\n orig._insertFakeRootElement.call(this);\n this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current, null);\n },\n\n //Comments\n _appendCommentNode(token, parent) {\n orig._appendCommentNode.call(this, token, parent);\n\n const children = this.treeAdapter.getChildNodes(parent);\n const commentNode = children[children.length - 1];\n\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n },\n\n //Text\n _findFosterParentingLocation() {\n //NOTE: store last foster parenting location, so we will be able to find inserted text\n //in case of foster parenting\n mxn.lastFosterParentingLocation = orig._findFosterParentingLocation.call(this);\n\n return mxn.lastFosterParentingLocation;\n },\n\n _insertCharacters(token) {\n orig._insertCharacters.call(this, token);\n\n const hasFosterParent = this._shouldFosterParentOnInsertion();\n\n const parent =\n (hasFosterParent && mxn.lastFosterParentingLocation.parent) ||\n this.openElements.currentTmplContent ||\n this.openElements.current;\n\n const siblings = this.treeAdapter.getChildNodes(parent);\n\n const textNodeIdx =\n hasFosterParent && mxn.lastFosterParentingLocation.beforeElement\n ? siblings.indexOf(mxn.lastFosterParentingLocation.beforeElement) - 1\n : siblings.length - 1;\n\n const textNode = siblings[textNodeIdx];\n\n //NOTE: if we have location assigned by another token, then just update end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n } else {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n };\n }\n}\n\nmodule.exports = LocationInfoParserMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\n\nclass LocationInfoTokenizerMixin extends Mixin {\n constructor(tokenizer) {\n super(tokenizer);\n\n this.tokenizer = tokenizer;\n this.posTracker = Mixin.install(tokenizer.preprocessor, PositionTrackingPreprocessorMixin);\n this.currentAttrLocation = null;\n this.ctLoc = null;\n }\n\n _getCurrentLocation() {\n return {\n startLine: this.posTracker.line,\n startCol: this.posTracker.col,\n startOffset: this.posTracker.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n }\n\n _attachCurrentAttrLocationInfo() {\n this.currentAttrLocation.endLine = this.posTracker.line;\n this.currentAttrLocation.endCol = this.posTracker.col;\n this.currentAttrLocation.endOffset = this.posTracker.offset;\n\n const currentToken = this.tokenizer.currentToken;\n const currentAttr = this.tokenizer.currentAttr;\n\n if (!currentToken.location.attrs) {\n currentToken.location.attrs = Object.create(null);\n }\n\n currentToken.location.attrs[currentAttr.name] = this.currentAttrLocation;\n }\n\n _getOverriddenMethods(mxn, orig) {\n const methods = {\n _createStartTagToken() {\n orig._createStartTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createEndTagToken() {\n orig._createEndTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCommentToken() {\n orig._createCommentToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createDoctypeToken(initialName) {\n orig._createDoctypeToken.call(this, initialName);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCharacterToken(type, ch) {\n orig._createCharacterToken.call(this, type, ch);\n this.currentCharacterToken.location = mxn.ctLoc;\n },\n\n _createEOFToken() {\n orig._createEOFToken.call(this);\n this.currentToken.location = mxn._getCurrentLocation();\n },\n\n _createAttr(attrNameFirstCh) {\n orig._createAttr.call(this, attrNameFirstCh);\n mxn.currentAttrLocation = mxn._getCurrentLocation();\n },\n\n _leaveAttrName(toState) {\n orig._leaveAttrName.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _leaveAttrValue(toState) {\n orig._leaveAttrValue.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _emitCurrentToken() {\n const ctLoc = this.currentToken.location;\n\n //NOTE: if we have pending character token make it's end location equal to the\n //current token's start location.\n if (this.currentCharacterToken) {\n this.currentCharacterToken.location.endLine = ctLoc.startLine;\n this.currentCharacterToken.location.endCol = ctLoc.startCol;\n this.currentCharacterToken.location.endOffset = ctLoc.startOffset;\n }\n\n if (this.currentToken.type === Tokenizer.EOF_TOKEN) {\n ctLoc.endLine = ctLoc.startLine;\n ctLoc.endCol = ctLoc.startCol;\n ctLoc.endOffset = ctLoc.startOffset;\n } else {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col + 1;\n ctLoc.endOffset = mxn.posTracker.offset + 1;\n }\n\n orig._emitCurrentToken.call(this);\n },\n\n _emitCurrentCharacterToken() {\n const ctLoc = this.currentCharacterToken && this.currentCharacterToken.location;\n\n //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(),\n //then set it's location at the current preprocessor position.\n //We don't need to increment preprocessor position, since character token\n //emission is always forced by the start of the next character token here.\n //So, we already have advanced position.\n if (ctLoc && ctLoc.endOffset === -1) {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col;\n ctLoc.endOffset = mxn.posTracker.offset;\n }\n\n orig._emitCurrentCharacterToken.call(this);\n }\n };\n\n //NOTE: patch initial states for each mode to obtain token start position\n Object.keys(Tokenizer.MODE).forEach(modeName => {\n const state = Tokenizer.MODE[modeName];\n\n methods[state] = function(cp) {\n mxn.ctLoc = mxn._getCurrentLocation();\n orig[state].call(this, cp);\n };\n });\n\n return methods;\n }\n}\n\nmodule.exports = LocationInfoTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass PositionTrackingPreprocessorMixin extends Mixin {\n constructor(preprocessor) {\n super(preprocessor);\n\n this.preprocessor = preprocessor;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n\n this.offset = 0;\n this.col = 0;\n this.line = 1;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n advance() {\n const pos = this.pos + 1;\n const ch = this.html[pos];\n\n //NOTE: LF should be in the last column of the line\n if (mxn.isEol) {\n mxn.isEol = false;\n mxn.line++;\n mxn.lineStartPos = pos;\n }\n\n if (ch === '\\n' || (ch === '\\r' && this.html[pos + 1] !== '\\n')) {\n mxn.isEol = true;\n }\n\n mxn.col = pos - mxn.lineStartPos + 1;\n mxn.offset = mxn.droppedBufferSize + pos;\n\n return orig.advance.call(this);\n },\n\n retreat() {\n orig.retreat.call(this);\n\n mxn.isEol = false;\n mxn.col = this.pos - mxn.lineStartPos + 1;\n },\n\n dropParsedChunk() {\n const prevPos = this.pos;\n\n orig.dropParsedChunk.call(this);\n\n const reduction = prevPos - this.pos;\n\n mxn.lineStartPos -= reduction;\n mxn.droppedBufferSize += reduction;\n mxn.offset = mxn.droppedBufferSize + this.pos;\n }\n };\n }\n}\n\nmodule.exports = PositionTrackingPreprocessorMixin;\n","'use strict';\n\n//Const\nconst NOAH_ARK_CAPACITY = 3;\n\n//List of formatting elements\nclass FormattingElementList {\n constructor(treeAdapter) {\n this.length = 0;\n this.entries = [];\n this.treeAdapter = treeAdapter;\n this.bookmark = null;\n }\n\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement) {\n const candidates = [];\n\n if (this.length >= NOAH_ARK_CAPACITY) {\n const neAttrsLength = this.treeAdapter.getAttrList(newElement).length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n\n const element = entry.element;\n const elementAttrs = this.treeAdapter.getAttrList(element);\n\n const isCandidate =\n this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI &&\n elementAttrs.length === neAttrsLength;\n\n if (isCandidate) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n\n return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates;\n }\n\n _ensureNoahArkCondition(newElement) {\n const candidates = this._getNoahArkConditionCandidates(newElement);\n let cLength = candidates.length;\n\n if (cLength) {\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const neAttrsLength = neAttrs.length;\n const neAttrsMap = Object.create(null);\n\n //NOTE: build attrs map for the new element so we can perform fast lookups\n for (let i = 0; i < neAttrsLength; i++) {\n const neAttr = neAttrs[i];\n\n neAttrsMap[neAttr.name] = neAttr.value;\n }\n\n for (let i = 0; i < neAttrsLength; i++) {\n for (let j = 0; j < cLength; j++) {\n const cAttr = candidates[j].attrs[i];\n\n if (neAttrsMap[cAttr.name] !== cAttr.value) {\n candidates.splice(j, 1);\n cLength--;\n }\n\n if (candidates.length < NOAH_ARK_CAPACITY) {\n return;\n }\n }\n }\n\n //NOTE: remove bottommost candidates until Noah's Ark condition will not be met\n for (let i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) {\n this.entries.splice(candidates[i].idx, 1);\n this.length--;\n }\n }\n }\n\n //Mutations\n insertMarker() {\n this.entries.push({ type: FormattingElementList.MARKER_ENTRY });\n this.length++;\n }\n\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n\n this.entries.push({\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n insertElementAfterBookmark(element, token) {\n let bookmarkIdx = this.length - 1;\n\n for (; bookmarkIdx >= 0; bookmarkIdx--) {\n if (this.entries[bookmarkIdx] === this.bookmark) {\n break;\n }\n }\n\n this.entries.splice(bookmarkIdx + 1, 0, {\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n removeEntry(entry) {\n for (let i = this.length - 1; i >= 0; i--) {\n if (this.entries[i] === entry) {\n this.entries.splice(i, 1);\n this.length--;\n break;\n }\n }\n }\n\n clearToLastMarker() {\n while (this.length) {\n const entry = this.entries.pop();\n\n this.length--;\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n }\n }\n\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n return null;\n }\n\n if (this.treeAdapter.getTagName(entry.element) === tagName) {\n return entry;\n }\n }\n\n return null;\n }\n\n getElementEntry(element) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) {\n return entry;\n }\n }\n\n return null;\n }\n}\n\n//Entry types\nFormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY';\nFormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY';\n\nmodule.exports = FormattingElementList;\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst OpenElementStack = require('./open-element-stack');\nconst FormattingElementList = require('./formatting-element-list');\nconst LocationInfoParserMixin = require('../extensions/location-info/parser-mixin');\nconst ErrorReportingParserMixin = require('../extensions/error-reporting/parser-mixin');\nconst Mixin = require('../utils/mixin');\nconst defaultTreeAdapter = require('../tree-adapters/default');\nconst mergeOptions = require('../utils/merge-options');\nconst doctype = require('../common/doctype');\nconst foreignContent = require('../common/foreign-content');\nconst ERR = require('../common/error-codes');\nconst unicode = require('../common/unicode');\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\nconst DEFAULT_OPTIONS = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n onParseError: null,\n treeAdapter: defaultTreeAdapter\n};\n\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n\n//Insertion modes\nconst INITIAL_MODE = 'INITIAL_MODE';\nconst BEFORE_HTML_MODE = 'BEFORE_HTML_MODE';\nconst BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE';\nconst IN_HEAD_MODE = 'IN_HEAD_MODE';\nconst IN_HEAD_NO_SCRIPT_MODE = 'IN_HEAD_NO_SCRIPT_MODE';\nconst AFTER_HEAD_MODE = 'AFTER_HEAD_MODE';\nconst IN_BODY_MODE = 'IN_BODY_MODE';\nconst TEXT_MODE = 'TEXT_MODE';\nconst IN_TABLE_MODE = 'IN_TABLE_MODE';\nconst IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE';\nconst IN_CAPTION_MODE = 'IN_CAPTION_MODE';\nconst IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE';\nconst IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE';\nconst IN_ROW_MODE = 'IN_ROW_MODE';\nconst IN_CELL_MODE = 'IN_CELL_MODE';\nconst IN_SELECT_MODE = 'IN_SELECT_MODE';\nconst IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE';\nconst IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE';\nconst AFTER_BODY_MODE = 'AFTER_BODY_MODE';\nconst IN_FRAMESET_MODE = 'IN_FRAMESET_MODE';\nconst AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE';\nconst AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE';\nconst AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';\n\n//Insertion mode reset map\nconst INSERTION_MODE_RESET_MAP = {\n [$.TR]: IN_ROW_MODE,\n [$.TBODY]: IN_TABLE_BODY_MODE,\n [$.THEAD]: IN_TABLE_BODY_MODE,\n [$.TFOOT]: IN_TABLE_BODY_MODE,\n [$.CAPTION]: IN_CAPTION_MODE,\n [$.COLGROUP]: IN_COLUMN_GROUP_MODE,\n [$.TABLE]: IN_TABLE_MODE,\n [$.BODY]: IN_BODY_MODE,\n [$.FRAMESET]: IN_FRAMESET_MODE\n};\n\n//Template insertion mode switch map\nconst TEMPLATE_INSERTION_MODE_SWITCH_MAP = {\n [$.CAPTION]: IN_TABLE_MODE,\n [$.COLGROUP]: IN_TABLE_MODE,\n [$.TBODY]: IN_TABLE_MODE,\n [$.TFOOT]: IN_TABLE_MODE,\n [$.THEAD]: IN_TABLE_MODE,\n [$.COL]: IN_COLUMN_GROUP_MODE,\n [$.TR]: IN_TABLE_BODY_MODE,\n [$.TD]: IN_ROW_MODE,\n [$.TH]: IN_ROW_MODE\n};\n\n//Token handlers map for insertion modes\nconst TOKEN_HANDLERS = {\n [INITIAL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: doctypeInInitialMode,\n [Tokenizer.START_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.END_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.EOF_TOKEN]: tokenInInitialMode\n },\n [BEFORE_HTML_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHtml,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHtml,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHtml\n },\n [BEFORE_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHead,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHead,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHead\n },\n [IN_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHead,\n [Tokenizer.END_TAG_TOKEN]: endTagInHead,\n [Tokenizer.EOF_TOKEN]: tokenInHead\n },\n [IN_HEAD_NO_SCRIPT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHeadNoScript,\n [Tokenizer.END_TAG_TOKEN]: endTagInHeadNoScript,\n [Tokenizer.EOF_TOKEN]: tokenInHeadNoScript\n },\n [AFTER_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterHead,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterHead,\n [Tokenizer.EOF_TOKEN]: tokenAfterHead\n },\n [IN_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: ignoreToken,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: ignoreToken,\n [Tokenizer.END_TAG_TOKEN]: endTagInText,\n [Tokenizer.EOF_TOKEN]: eofInText\n },\n [IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTableText,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInTableText,\n [Tokenizer.COMMENT_TOKEN]: tokenInTableText,\n [Tokenizer.DOCTYPE_TOKEN]: tokenInTableText,\n [Tokenizer.START_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.END_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.EOF_TOKEN]: tokenInTableText\n },\n [IN_CAPTION_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCaption,\n [Tokenizer.END_TAG_TOKEN]: endTagInCaption,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_COLUMN_GROUP_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInColumnGroup,\n [Tokenizer.END_TAG_TOKEN]: endTagInColumnGroup,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTableBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInTableBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_ROW_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInRow,\n [Tokenizer.END_TAG_TOKEN]: endTagInRow,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_CELL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCell,\n [Tokenizer.END_TAG_TOKEN]: endTagInCell,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelect,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelect,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelectInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelectInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TEMPLATE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTemplate,\n [Tokenizer.END_TAG_TOKEN]: endTagInTemplate,\n [Tokenizer.EOF_TOKEN]: eofInTemplate\n },\n [AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToRootHtmlElement,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterBody,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [IN_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagInFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterBody,\n [Tokenizer.END_TAG_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: ignoreToken,\n [Tokenizer.EOF_TOKEN]: stopParsing\n }\n};\n\n//Parser\nclass Parser {\n constructor(options) {\n this.options = mergeOptions(DEFAULT_OPTIONS, options);\n\n this.treeAdapter = this.options.treeAdapter;\n this.pendingScript = null;\n\n if (this.options.sourceCodeLocationInfo) {\n Mixin.install(this, LocationInfoParserMixin);\n }\n\n if (this.options.onParseError) {\n Mixin.install(this, ErrorReportingParserMixin, { onParseError: this.options.onParseError });\n }\n }\n\n // API\n parse(html) {\n const document = this.treeAdapter.createDocument();\n\n this._bootstrap(document, null);\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n return document;\n }\n\n parseFragment(html, fragmentContext) {\n //NOTE: use <template> element as a fragment context if context element was not provided,\n //so we will parse in \"forgiving\" manner\n if (!fragmentContext) {\n fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);\n }\n\n //NOTE: create fake element which will be used as 'document' for fragment parsing.\n //This is important for jsdom there 'document' can't be recreated, therefore\n //fragment parsing causes messing of the main `document`.\n const documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);\n\n this._bootstrap(documentMock, fragmentContext);\n\n if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE) {\n this._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n }\n\n this._initTokenizerForFragmentParsing();\n this._insertFakeRootElement();\n this._resetInsertionMode();\n this._findFormInFragmentContext();\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n const rootElement = this.treeAdapter.getFirstChild(documentMock);\n const fragment = this.treeAdapter.createDocumentFragment();\n\n this._adoptNodes(rootElement, fragment);\n\n return fragment;\n }\n\n //Bootstrap parser\n _bootstrap(document, fragmentContext) {\n this.tokenizer = new Tokenizer(this.options);\n\n this.stopped = false;\n\n this.insertionMode = INITIAL_MODE;\n this.originalInsertionMode = '';\n\n this.document = document;\n this.fragmentContext = fragmentContext;\n\n this.headElement = null;\n this.formElement = null;\n\n this.openElements = new OpenElementStack(this.document, this.treeAdapter);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n\n this.tmplInsertionModeStack = [];\n this.tmplInsertionModeStackTop = -1;\n this.currentTmplInsertionMode = null;\n\n this.pendingCharacterTokens = [];\n this.hasNonWhitespacePendingCharacterToken = false;\n\n this.framesetOk = true;\n this.skipNextNewLine = false;\n this.fosterParentingEnabled = false;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n //Parsing loop\n _runParsingLoop(scriptHandler) {\n while (!this.stopped) {\n this._setupTokenizerCDATAMode();\n\n const token = this.tokenizer.getNextToken();\n\n if (token.type === Tokenizer.HIBERNATION_TOKEN) {\n break;\n }\n\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n\n if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\\n') {\n if (token.chars.length === 1) {\n continue;\n }\n\n token.chars = token.chars.substr(1);\n }\n }\n\n this._processInputToken(token);\n\n if (scriptHandler && this.pendingScript) {\n break;\n }\n }\n }\n\n runParsingLoopForCurrentChunk(writeCallback, scriptHandler) {\n this._runParsingLoop(scriptHandler);\n\n if (scriptHandler && this.pendingScript) {\n const script = this.pendingScript;\n\n this.pendingScript = null;\n\n scriptHandler(script);\n\n return;\n }\n\n if (writeCallback) {\n writeCallback();\n }\n }\n\n //Text parsing\n _setupTokenizerCDATAMode() {\n const current = this._getAdjustedCurrentElement();\n\n this.tokenizer.allowCDATA =\n current &&\n current !== this.document &&\n this.treeAdapter.getNamespaceURI(current) !== NS.HTML &&\n !this._isIntegrationPoint(current);\n }\n\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = TEXT_MODE;\n }\n\n switchToPlaintextParsing() {\n this.insertionMode = TEXT_MODE;\n this.originalInsertionMode = IN_BODY_MODE;\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n\n //Fragment parsing\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n\n do {\n if (this.treeAdapter.getTagName(node) === $.FORM) {\n this.formElement = node;\n break;\n }\n\n node = this.treeAdapter.getParentNode(node);\n } while (node);\n }\n\n _initTokenizerForFragmentParsing() {\n if (this.treeAdapter.getNamespaceURI(this.fragmentContext) === NS.HTML) {\n const tn = this.treeAdapter.getTagName(this.fragmentContext);\n\n if (tn === $.TITLE || tn === $.TEXTAREA) {\n this.tokenizer.state = Tokenizer.MODE.RCDATA;\n } else if (\n tn === $.STYLE ||\n tn === $.XMP ||\n tn === $.IFRAME ||\n tn === $.NOEMBED ||\n tn === $.NOFRAMES ||\n tn === $.NOSCRIPT\n ) {\n this.tokenizer.state = Tokenizer.MODE.RAWTEXT;\n } else if (tn === $.SCRIPT) {\n this.tokenizer.state = Tokenizer.MODE.SCRIPT_DATA;\n } else if (tn === $.PLAINTEXT) {\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n }\n }\n\n //Tree mutation\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n }\n\n _attachElementToTree(element) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.appendChild(parent, element);\n }\n }\n\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n }\n\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertFakeElement(tagName) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl);\n this.openElements.push(tmpl);\n }\n\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement($.HTML, NS.HTML, []);\n\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element);\n }\n\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n\n this.treeAdapter.appendChild(parent, commentNode);\n }\n\n _insertCharacters(token) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentText(token.chars);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n\n //Token processing\n _shouldProcessTokenInForeignContent(token) {\n const current = this._getAdjustedCurrentElement();\n\n if (!current || current === this.document) {\n return false;\n }\n\n const ns = this.treeAdapter.getNamespaceURI(current);\n\n if (ns === NS.HTML) {\n return false;\n }\n\n if (\n this.treeAdapter.getTagName(current) === $.ANNOTATION_XML &&\n ns === NS.MATHML &&\n token.type === Tokenizer.START_TAG_TOKEN &&\n token.tagName === $.SVG\n ) {\n return false;\n }\n\n const isCharacterToken =\n token.type === Tokenizer.CHARACTER_TOKEN ||\n token.type === Tokenizer.NULL_CHARACTER_TOKEN ||\n token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n\n const isMathMLTextStartTag =\n token.type === Tokenizer.START_TAG_TOKEN && token.tagName !== $.MGLYPH && token.tagName !== $.MALIGNMARK;\n\n if ((isMathMLTextStartTag || isCharacterToken) && this._isIntegrationPoint(current, NS.MATHML)) {\n return false;\n }\n\n if (\n (token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) &&\n this._isIntegrationPoint(current, NS.HTML)\n ) {\n return false;\n }\n\n return token.type !== Tokenizer.EOF_TOKEN;\n }\n\n _processToken(token) {\n TOKEN_HANDLERS[this.insertionMode][token.type](this, token);\n }\n\n _processTokenInBodyMode(token) {\n TOKEN_HANDLERS[IN_BODY_MODE][token.type](this, token);\n }\n\n _processTokenInForeignContent(token) {\n if (token.type === Tokenizer.CHARACTER_TOKEN) {\n characterInForeignContent(this, token);\n } else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN) {\n nullCharacterInForeignContent(this, token);\n } else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN) {\n insertCharacters(this, token);\n } else if (token.type === Tokenizer.COMMENT_TOKEN) {\n appendComment(this, token);\n } else if (token.type === Tokenizer.START_TAG_TOKEN) {\n startTagInForeignContent(this, token);\n } else if (token.type === Tokenizer.END_TAG_TOKEN) {\n endTagInForeignContent(this, token);\n }\n }\n\n _processInputToken(token) {\n if (this._shouldProcessTokenInForeignContent(token)) {\n this._processTokenInForeignContent(token);\n } else {\n this._processToken(token);\n }\n\n if (token.type === Tokenizer.START_TAG_TOKEN && token.selfClosing && !token.ackSelfClosing) {\n this._err(ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n\n //Integration points\n _isIntegrationPoint(element, foreignNS) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n\n return foreignContent.isIntegrationPoint(tn, ns, attrs, foreignNS);\n }\n\n //Active formatting elements reconstruction\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.length;\n\n if (listLength) {\n let unopenIdx = listLength;\n let entry = null;\n\n do {\n unopenIdx--;\n entry = this.activeFormattingElements.entries[unopenIdx];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {\n unopenIdx++;\n break;\n }\n } while (unopenIdx > 0);\n\n for (let i = unopenIdx; i < listLength; i++) {\n entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n\n //Close elements\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = IN_ROW_MODE;\n }\n\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n\n //Insertion modes\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop, last = false; i >= 0; i--) {\n let element = this.openElements.items[i];\n\n if (i === 0) {\n last = true;\n\n if (this.fragmentContext) {\n element = this.fragmentContext;\n }\n }\n\n const tn = this.treeAdapter.getTagName(element);\n const newInsertionMode = INSERTION_MODE_RESET_MAP[tn];\n\n if (newInsertionMode) {\n this.insertionMode = newInsertionMode;\n break;\n } else if (!last && (tn === $.TD || tn === $.TH)) {\n this.insertionMode = IN_CELL_MODE;\n break;\n } else if (!last && tn === $.HEAD) {\n this.insertionMode = IN_HEAD_MODE;\n break;\n } else if (tn === $.SELECT) {\n this._resetInsertionModeForSelect(i);\n break;\n } else if (tn === $.TEMPLATE) {\n this.insertionMode = this.currentTmplInsertionMode;\n break;\n } else if (tn === $.HTML) {\n this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;\n break;\n } else if (last) {\n this.insertionMode = IN_BODY_MODE;\n break;\n }\n }\n }\n\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const ancestor = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(ancestor);\n\n if (tn === $.TEMPLATE) {\n break;\n } else if (tn === $.TABLE) {\n this.insertionMode = IN_SELECT_IN_TABLE_MODE;\n return;\n }\n }\n }\n\n this.insertionMode = IN_SELECT_MODE;\n }\n\n _pushTmplInsertionMode(mode) {\n this.tmplInsertionModeStack.push(mode);\n this.tmplInsertionModeStackTop++;\n this.currentTmplInsertionMode = mode;\n }\n\n _popTmplInsertionMode() {\n this.tmplInsertionModeStack.pop();\n this.tmplInsertionModeStackTop--;\n this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];\n }\n\n //Foster parenting\n _isElementCausesFosterParenting(element) {\n const tn = this.treeAdapter.getTagName(element);\n\n return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR;\n }\n\n _shouldFosterParentOnInsertion() {\n return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current);\n }\n\n _findFosterParentingLocation() {\n const location = {\n parent: null,\n beforeElement: null\n };\n\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(openElement);\n const ns = this.treeAdapter.getNamespaceURI(openElement);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n location.parent = this.treeAdapter.getTemplateContent(openElement);\n break;\n } else if (tn === $.TABLE) {\n location.parent = this.treeAdapter.getParentNode(openElement);\n\n if (location.parent) {\n location.beforeElement = openElement;\n } else {\n location.parent = this.openElements.items[i - 1];\n }\n\n break;\n }\n }\n\n if (!location.parent) {\n location.parent = this.openElements.items[0];\n }\n\n return location;\n }\n\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n } else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n\n _fosterParentText(chars) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);\n } else {\n this.treeAdapter.insertText(location.parent, chars);\n }\n }\n\n //Special elements\n _isSpecialElement(element) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n\n return HTML.SPECIAL_ELEMENTS[ns][tn];\n }\n}\n\nmodule.exports = Parser;\n\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n } else if (!p.openElements.hasInScope(token.tagName)) {\n formattingElementEntry = null;\n }\n } else {\n genericEndTagInBody(p, token);\n }\n\n return formattingElementEntry;\n}\n\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n\n if (element === formattingElementEntry.element) {\n break;\n }\n\n if (p._isSpecialElement(element)) {\n furthestBlock = element;\n }\n }\n\n if (!furthestBlock) {\n p.openElements.popUntilElementPopped(formattingElementEntry.element);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n\n return furthestBlock;\n}\n\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n\n p.openElements.remove(element);\n } else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n\n return lastElement;\n}\n\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n\n return newElement;\n}\n\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n if (p._isElementCausesFosterParenting(commonAncestor)) {\n p._fosterParentElement(lastElement);\n } else {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const token = formattingElementEntry.token;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n\n p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement);\n}\n\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n let formattingElementEntry;\n\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n formattingElementEntry = aaObtainFormattingElementEntry(p, token, formattingElementEntry);\n\n if (!formattingElementEntry) {\n break;\n }\n\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n\n if (!furthestBlock) {\n break;\n }\n\n p.activeFormattingElements.bookmark = formattingElementEntry;\n\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n\n p.treeAdapter.detachNode(lastElement);\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n\n//Generic token handlers\n//------------------------------------------------------------------\nfunction ignoreToken() {\n //NOTE: do nothing =)\n}\n\nfunction misplacedDoctype(p) {\n p._err(ERR.misplacedDoctype);\n}\n\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current);\n}\n\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\n\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\n\nfunction insertCharacters(p, token) {\n p._insertCharacters(token);\n}\n\nfunction stopParsing(p) {\n p.stopped = true;\n}\n\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n\n const mode = token.forceQuirks ? HTML.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n\n if (!doctype.isConforming(token)) {\n p._err(ERR.nonConformingDoctype);\n }\n\n p.treeAdapter.setDocumentMode(p.document, mode);\n\n p.insertionMode = BEFORE_HTML_MODE;\n}\n\nfunction tokenInInitialMode(p, token) {\n p._err(ERR.missingDoctype, { beforeToken: true });\n p.treeAdapter.setDocumentMode(p.document, HTML.DOCUMENT_MODE.QUIRKS);\n p.insertionMode = BEFORE_HTML_MODE;\n p._processToken(token);\n}\n\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagName === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = BEFORE_HEAD_MODE;\n } else {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = BEFORE_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.HEAD) {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n } else {\n tokenBeforeHead(p, token);\n }\n}\n\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement($.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TITLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RCDATA);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_HEAD_NO_SCRIPT_MODE;\n }\n } else if (tn === $.NOFRAMES || tn === $.STYLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else if (tn === $.SCRIPT) {\n p._switchToTextParsing(token, Tokenizer.MODE.SCRIPT_DATA);\n } else if (tn === $.TEMPLATE) {\n p._insertTemplate(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = IN_TEMPLATE_MODE;\n p._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenInHead(p, token);\n }\n}\n\nfunction endTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n } else if (tn === $.BODY || tn === $.BR || tn === $.HTML) {\n tokenInHead(p, token);\n } else if (tn === $.TEMPLATE) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n\n if (p.openElements.currentTagName !== $.TEMPLATE) {\n p._err(ERR.closingOfElementWithOpenChildElements);\n }\n\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.HEAD ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.STYLE\n ) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n p._err(ERR.nestedNoscriptInHead);\n } else {\n tokenInHeadNoScript(p, token);\n }\n}\n\nfunction endTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.NOSCRIPT) {\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n } else if (tn === $.BR) {\n tokenInHeadNoScript(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHeadNoScript(p, token) {\n const errCode =\n token.type === Tokenizer.EOF_TOKEN ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n\n p._err(errCode);\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BODY) {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_BODY_MODE;\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n } else if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n p._err(ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenAfterHead(p, token);\n }\n}\n\nfunction endTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenAfterHead(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement($.BODY);\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\n\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\n\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\n\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n }\n}\n\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n const tn = p.openElements.currentTagName;\n\n if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\n\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\n\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n const elementTn = p.treeAdapter.getTagName(element);\n let closeTn = null;\n\n if (tn === $.LI && elementTn === $.LI) {\n closeTn = $.LI;\n } else if ((tn === $.DD || tn === $.DT) && (elementTn === $.DD || elementTn === $.DT)) {\n closeTn = elementTn;\n }\n\n if (closeTn) {\n p.openElements.generateImpliedEndTagsWithExclusion(closeTn);\n p.openElements.popUntilTagNamePopped(closeTn);\n break;\n }\n\n if (elementTn !== $.ADDRESS && elementTn !== $.DIV && elementTn !== $.P && p._isSpecialElement(element)) {\n break;\n }\n }\n\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n}\n\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\n\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);\n\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\n\nfunction tableStartTagInBody(p, token) {\n if (\n p.treeAdapter.getDocumentMode(p.document) !== HTML.DOCUMENT_MODE.QUIRKS &&\n p.openElements.hasInButtonScope($.P)\n ) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_TABLE_MODE;\n}\n\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE) {\n p.framesetOk = false;\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\n\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction imageStartTagInBody(p, token) {\n token.tagName = $.IMG;\n areaStartTagInBody(p, token);\n}\n\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = Tokenizer.MODE.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = TEXT_MODE;\n}\n\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as a rawtext.\nfunction noembedStartTagInBody(p, token) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n\n if (\n p.insertionMode === IN_TABLE_MODE ||\n p.insertionMode === IN_CAPTION_MODE ||\n p.insertionMode === IN_TABLE_BODY_MODE ||\n p.insertionMode === IN_ROW_MODE ||\n p.insertionMode === IN_CELL_MODE\n ) {\n p.insertionMode = IN_SELECT_IN_TABLE_MODE;\n } else {\n p.insertionMode = IN_SELECT_MODE;\n }\n}\n\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction menuStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n } else {\n p._insertElement(token, NS.MATHML);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n } else {\n p._insertElement(token, NS.SVG);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction startTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.I || tn === $.S || tn === $.B || tn === $.U) {\n bStartTagInBody(p, token);\n } else if (tn === $.P) {\n addressStartTagInBody(p, token);\n } else if (tn === $.A) {\n aStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.OL || tn === $.UL) {\n addressStartTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderStartTagInBody(p, token);\n } else if (tn === $.LI || tn === $.DD || tn === $.DT) {\n listItemStartTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n bStartTagInBody(p, token);\n } else if (tn === $.BR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.HR) {\n hrStartTagInBody(p, token);\n } else if (tn === $.RB) {\n rbStartTagInBody(p, token);\n } else if (tn === $.RT || tn === $.RP) {\n rtStartTagInBody(p, token);\n } else if (tn !== $.TH && tn !== $.TD && tn !== $.TR) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.DIV || tn === $.DIR || tn === $.NAV) {\n addressStartTagInBody(p, token);\n } else if (tn === $.PRE) {\n preStartTagInBody(p, token);\n } else if (tn === $.BIG) {\n bStartTagInBody(p, token);\n } else if (tn === $.IMG || tn === $.WBR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.XMP) {\n xmpStartTagInBody(p, token);\n } else if (tn === $.SVG) {\n svgStartTagInBody(p, token);\n } else if (tn === $.RTC) {\n rbStartTagInBody(p, token);\n } else if (tn !== $.COL) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n htmlStartTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.LINK || tn === $.META) {\n startTagInHead(p, token);\n } else if (tn === $.BODY) {\n bodyStartTagInBody(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressStartTagInBody(p, token);\n } else if (tn === $.FORM) {\n formStartTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT) {\n bStartTagInBody(p, token);\n } else if (tn === $.NOBR) {\n nobrStartTagInBody(p, token);\n } else if (tn === $.AREA) {\n areaStartTagInBody(p, token);\n } else if (tn === $.MATH) {\n mathStartTagInBody(p, token);\n } else if (tn === $.MENU) {\n menuStartTagInBody(p, token);\n } else if (tn !== $.HEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.STYLE || tn === $.TITLE) {\n startTagInHead(p, token);\n } else if (tn === $.ASIDE) {\n addressStartTagInBody(p, token);\n } else if (tn === $.SMALL) {\n bStartTagInBody(p, token);\n } else if (tn === $.TABLE) {\n tableStartTagInBody(p, token);\n } else if (tn === $.EMBED) {\n areaStartTagInBody(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInBody(p, token);\n } else if (tn === $.PARAM || tn === $.TRACK) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IMAGE) {\n imageStartTagInBody(p, token);\n } else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.BUTTON) {\n buttonStartTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n bStartTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletStartTagInBody(p, token);\n } else if (tn === $.KEYGEN) {\n areaStartTagInBody(p, token);\n } else if (tn === $.SOURCE) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IFRAME) {\n iframeStartTagInBody(p, token);\n } else if (tn === $.SELECT) {\n selectStartTagInBody(p, token);\n } else if (tn === $.OPTION) {\n optgroupStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.BGSOUND) {\n startTagInHead(p, token);\n } else if (\n tn === $.DETAILS ||\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.SECTION ||\n tn === $.SUMMARY\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.LISTING) {\n preStartTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletStartTagInBody(p, token);\n } else if (tn === $.NOEMBED) {\n noembedStartTagInBody(p, token);\n } else if (tn !== $.CAPTION) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.BASEFONT) {\n startTagInHead(p, token);\n } else if (tn === $.FRAMESET) {\n framesetStartTagInBody(p, token);\n } else if (tn === $.FIELDSET) {\n addressStartTagInBody(p, token);\n } else if (tn === $.TEXTAREA) {\n textareaStartTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n noembedStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n } else if (tn === $.OPTGROUP) {\n optgroupStartTagInBody(p, token);\n } else if (tn !== $.COLGROUP) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 9:\n if (tn === $.PLAINTEXT) {\n plaintextStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n default:\n genericStartTagInBody(p, token);\n }\n}\n\nfunction bodyEndTagInBody(p) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n }\n}\n\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n p._processToken(token);\n }\n}\n\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const formElement = p.formElement;\n\n if (!inTemplate) {\n p.formElement = null;\n }\n\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n } else {\n p.openElements.remove(formElement);\n }\n }\n}\n\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement($.P);\n }\n\n p._closePElement();\n}\n\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\n\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\n\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\n\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement($.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\n\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getTagName(element) === tn) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilElementPopped(element);\n break;\n }\n\n if (p._isSpecialElement(element)) {\n break;\n }\n }\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction endTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn === $.U) {\n callAdoptionAgency(p, token);\n } else if (tn === $.P) {\n pEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.UL || tn === $.OL) {\n addressEndTagInBody(p, token);\n } else if (tn === $.LI) {\n liEndTagInBody(p, token);\n } else if (tn === $.DD || tn === $.DT) {\n ddEndTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderEndTagInBody(p, token);\n } else if (tn === $.BR) {\n brEndTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.BIG) {\n callAdoptionAgency(p, token);\n } else if (tn === $.DIR || tn === $.DIV || tn === $.NAV || tn === $.PRE) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.BODY) {\n bodyEndTagInBody(p, token);\n } else if (tn === $.HTML) {\n htmlEndTagInBody(p, token);\n } else if (tn === $.FORM) {\n formEndTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR) {\n callAdoptionAgency(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.ASIDE) {\n addressEndTagInBody(p, token);\n } else if (tn === $.SMALL) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletEndTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.DETAILS ||\n tn === $.SECTION ||\n tn === $.SUMMARY ||\n tn === $.LISTING\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.FIELDSET) {\n addressEndTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n default:\n genericEndTagInBody(p, token);\n }\n}\n\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStackTop > -1) {\n eofInTemplate(p, token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n if (token.tagName === $.SCRIPT) {\n p.pendingScript = p.openElements.current;\n }\n\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\n\nfunction eofInText(p, token) {\n p._err(ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n const curTn = p.openElements.currentTagName;\n\n if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {\n p.pendingCharacterTokens = [];\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = IN_TABLE_TEXT_MODE;\n p._processToken(token);\n } else {\n tokenInTable(p, token);\n }\n}\n\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CAPTION_MODE;\n}\n\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n}\n\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.COLGROUP);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n p._processToken(token);\n}\n\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_TABLE_BODY_MODE;\n}\n\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.TBODY);\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n}\n\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processToken(token);\n }\n}\n\nfunction inputStartTagInTable(p, token) {\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE) {\n p._appendElement(token, NS.HTML);\n } else {\n tokenInTable(p, token);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\n\nfunction startTagInTable(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH || tn === $.TR) {\n tdStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.COL) {\n colStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.FORM) {\n formStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n tableStartTagInTable(p, token);\n } else if (tn === $.STYLE) {\n startTagInHead(p, token);\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n tbodyStartTagInTable(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.CAPTION) {\n captionStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.COLGROUP) {\n colgroupStartTagInTable(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n default:\n tokenInTable(p, token);\n }\n}\n\nfunction endTagInTable(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (\n tn !== $.BODY &&\n tn !== $.CAPTION &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n tokenInTable(p, token);\n }\n}\n\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n\n p.fosterParentingEnabled = true;\n p._processTokenInBodyMode(token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\n\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\n\nfunction tokenInTableText(p, token) {\n let i = 0;\n\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n } else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (tn === $.CAPTION || tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n\n if (tn === $.TABLE) {\n p._processToken(token);\n }\n }\n } else if (\n tn !== $.BODY &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.COL) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction endTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.COLGROUP) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (tn !== $.COL) {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n}\n\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_ROW_MODE;\n } else if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement($.TR);\n p.insertionMode = IN_ROW_MODE;\n p._processToken(token);\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD\n ) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CELL_MODE;\n p.activeFormattingElements.insertMarker();\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCell(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TD || tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_ROW_MODE;\n }\n } else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.OPTGROUP) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA || tn === $.SELECT) {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n\n if (tn !== $.SELECT) {\n p._processToken(token);\n }\n }\n } else if (tn === $.SCRIPT || tn === $.TEMPLATE) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.OPTGROUP) {\n const prevOpenElement = p.openElements.items[p.openElements.stackTop - 1];\n const prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);\n\n if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n } else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\n//12.2.5.4.17 The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n startTagInSelect(p, token);\n }\n}\n\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n }\n } else {\n endTagInSelect(p, token);\n }\n}\n\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n startTagInHead(p, token);\n } else {\n const newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;\n\n p._popTmplInsertionMode();\n p._pushTmplInsertionMode(newInsertionMode);\n p.insertionMode = newInsertionMode;\n p._processToken(token);\n }\n}\n\nfunction endTagInTemplate(p, token) {\n if (token.tagName === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction endTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = AFTER_AFTER_BODY_MODE;\n }\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction tokenAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n } else if (tn === $.FRAME) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInFrameset(p, token) {\n if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n\n if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET) {\n p.insertionMode = AFTER_FRAMESET_MODE;\n }\n }\n}\n\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagAfterFrameset(p, token) {\n if (token.tagName === $.HTML) {\n p.insertionMode = AFTER_AFTER_FRAMESET_MODE;\n }\n}\n\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterAfterBody(p, token);\n }\n}\n\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\n\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token) && !p.fragmentContext) {\n while (\n p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n !p._isIntegrationPoint(p.openElements.current)\n ) {\n p.openElements.pop();\n }\n\n p._processToken(token);\n } else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n } else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n } else {\n p._insertElement(token, currentNs);\n }\n\n token.ackSelfClosing = true;\n }\n}\n\nfunction endTagInForeignContent(p, token) {\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._processToken(token);\n break;\n }\n\n if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {\n p.openElements.popUntilElementPopped(element);\n break;\n }\n }\n}\n","'use strict';\n\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\n\n//Element utils\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction isImpliedEndTagRequired(tn) {\n switch (tn.length) {\n case 1:\n return tn === $.P;\n\n case 2:\n return tn === $.RB || tn === $.RP || tn === $.RT || tn === $.DD || tn === $.DT || tn === $.LI;\n\n case 3:\n return tn === $.RTC;\n\n case 6:\n return tn === $.OPTION;\n\n case 8:\n return tn === $.OPTGROUP;\n }\n\n return false;\n}\n\nfunction isImpliedEndTagRequiredThoroughly(tn) {\n switch (tn.length) {\n case 1:\n return tn === $.P;\n\n case 2:\n return (\n tn === $.RB ||\n tn === $.RP ||\n tn === $.RT ||\n tn === $.DD ||\n tn === $.DT ||\n tn === $.LI ||\n tn === $.TD ||\n tn === $.TH ||\n tn === $.TR\n );\n\n case 3:\n return tn === $.RTC;\n\n case 5:\n return tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD;\n\n case 6:\n return tn === $.OPTION;\n\n case 7:\n return tn === $.CAPTION;\n\n case 8:\n return tn === $.OPTGROUP || tn === $.COLGROUP;\n }\n\n return false;\n}\n\nfunction isScopingElement(tn, ns) {\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH) {\n return ns === NS.HTML;\n } else if (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS) {\n return ns === NS.MATHML;\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n return ns === NS.HTML;\n } else if (tn === $.DESC) {\n return ns === NS.SVG;\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n return ns === NS.HTML;\n } else if (tn === $.MTEXT) {\n return ns === NS.MATHML;\n } else if (tn === $.TITLE) {\n return ns === NS.SVG;\n }\n\n break;\n\n case 6:\n return (tn === $.APPLET || tn === $.OBJECT) && ns === NS.HTML;\n\n case 7:\n return (tn === $.CAPTION || tn === $.MARQUEE) && ns === NS.HTML;\n\n case 8:\n return tn === $.TEMPLATE && ns === NS.HTML;\n\n case 13:\n return tn === $.FOREIGN_OBJECT && ns === NS.SVG;\n\n case 14:\n return tn === $.ANNOTATION_XML && ns === NS.MATHML;\n }\n\n return false;\n}\n\n//Stack of open elements\nclass OpenElementStack {\n constructor(document, treeAdapter) {\n this.stackTop = -1;\n this.items = [];\n this.current = document;\n this.currentTagName = null;\n this.currentTmplContent = null;\n this.tmplCount = 0;\n this.treeAdapter = treeAdapter;\n }\n\n //Index of element\n _indexOf(element) {\n let idx = -1;\n\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n idx = i;\n break;\n }\n }\n return idx;\n }\n\n //Update current element\n _isInTemplate() {\n return this.currentTagName === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagName = this.current && this.treeAdapter.getTagName(this.current);\n\n this.currentTmplContent = this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : null;\n }\n\n //Mutations\n push(element) {\n this.items[++this.stackTop] = element;\n this._updateCurrentElement();\n\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n }\n\n pop() {\n this.stackTop--;\n\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n\n this._updateCurrentElement();\n }\n\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n\n this.items[idx] = newElement;\n\n if (idx === this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n insertAfter(referenceElement, newElement) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n\n this.items.splice(insertionIdx, 0, newElement);\n\n if (insertionIdx === ++this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n popUntilTagNamePopped(tagName) {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === tagName && ns === NS.HTML) {\n break;\n }\n }\n }\n\n popUntilElementPopped(element) {\n while (this.stackTop > -1) {\n const poppedElement = this.current;\n\n this.pop();\n\n if (poppedElement === element) {\n break;\n }\n }\n }\n\n popUntilNumberedHeaderPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (\n tn === $.H1 ||\n tn === $.H2 ||\n tn === $.H3 ||\n tn === $.H4 ||\n tn === $.H5 ||\n (tn === $.H6 && ns === NS.HTML)\n ) {\n break;\n }\n }\n }\n\n popUntilTableCellPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === $.TD || (tn === $.TH && ns === NS.HTML)) {\n break;\n }\n }\n }\n\n popAllUpToHtmlElement() {\n //NOTE: here we assume that root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.stackTop = 0;\n this._updateCurrentElement();\n }\n\n clearBackToTableContext() {\n while (\n (this.currentTagName !== $.TABLE && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableBodyContext() {\n while (\n (this.currentTagName !== $.TBODY &&\n this.currentTagName !== $.TFOOT &&\n this.currentTagName !== $.THEAD &&\n this.currentTagName !== $.TEMPLATE &&\n this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableRowContext() {\n while (\n (this.currentTagName !== $.TR && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n remove(element) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n this.items.splice(i, 1);\n this.stackTop--;\n this._updateCurrentElement();\n break;\n }\n }\n }\n\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n const element = this.items[1];\n\n return element && this.treeAdapter.getTagName(element) === $.BODY ? element : null;\n }\n\n contains(element) {\n return this._indexOf(element) > -1;\n }\n\n getCommonAncestor(element) {\n let elementIdx = this._indexOf(element);\n\n return --elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.currentTagName === $.HTML;\n }\n\n //Element in scope\n hasInScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (\n (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) &&\n ns === NS.HTML\n ) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInListItemScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInButtonScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if ((tn === $.BUTTON && ns === NS.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n return true;\n }\n\n if (tn === $.TABLE || tn === $.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n return false;\n }\n }\n\n return true;\n }\n\n //Implied end tags\n generateImpliedEndTags() {\n while (isImpliedEndTagRequired(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsThoroughly() {\n while (isImpliedEndTagRequiredThoroughly(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsWithExclusion(exclusionTagName) {\n while (isImpliedEndTagRequired(this.currentTagName) && this.currentTagName !== exclusionTagName) {\n this.pop();\n }\n }\n}\n\nmodule.exports = OpenElementStack;\n","'use strict';\n\nconst Preprocessor = require('./preprocessor');\nconst unicode = require('../common/unicode');\nconst neTree = require('./named-entity-data');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\nconst $$ = unicode.CODE_POINT_SEQUENCES;\n\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = {\n 0x80: 0x20ac,\n 0x82: 0x201a,\n 0x83: 0x0192,\n 0x84: 0x201e,\n 0x85: 0x2026,\n 0x86: 0x2020,\n 0x87: 0x2021,\n 0x88: 0x02c6,\n 0x89: 0x2030,\n 0x8a: 0x0160,\n 0x8b: 0x2039,\n 0x8c: 0x0152,\n 0x8e: 0x017d,\n 0x91: 0x2018,\n 0x92: 0x2019,\n 0x93: 0x201c,\n 0x94: 0x201d,\n 0x95: 0x2022,\n 0x96: 0x2013,\n 0x97: 0x2014,\n 0x98: 0x02dc,\n 0x99: 0x2122,\n 0x9a: 0x0161,\n 0x9b: 0x203a,\n 0x9c: 0x0153,\n 0x9e: 0x017e,\n 0x9f: 0x0178\n};\n\n// Named entity tree flags\nconst HAS_DATA_FLAG = 1 << 0;\nconst DATA_DUPLET_FLAG = 1 << 1;\nconst HAS_BRANCHES_FLAG = 1 << 2;\nconst MAX_BRANCH_MARKER_VALUE = HAS_DATA_FLAG | DATA_DUPLET_FLAG | HAS_BRANCHES_FLAG;\n\n//States\nconst DATA_STATE = 'DATA_STATE';\nconst RCDATA_STATE = 'RCDATA_STATE';\nconst RAWTEXT_STATE = 'RAWTEXT_STATE';\nconst SCRIPT_DATA_STATE = 'SCRIPT_DATA_STATE';\nconst PLAINTEXT_STATE = 'PLAINTEXT_STATE';\nconst TAG_OPEN_STATE = 'TAG_OPEN_STATE';\nconst END_TAG_OPEN_STATE = 'END_TAG_OPEN_STATE';\nconst TAG_NAME_STATE = 'TAG_NAME_STATE';\nconst RCDATA_LESS_THAN_SIGN_STATE = 'RCDATA_LESS_THAN_SIGN_STATE';\nconst RCDATA_END_TAG_OPEN_STATE = 'RCDATA_END_TAG_OPEN_STATE';\nconst RCDATA_END_TAG_NAME_STATE = 'RCDATA_END_TAG_NAME_STATE';\nconst RAWTEXT_LESS_THAN_SIGN_STATE = 'RAWTEXT_LESS_THAN_SIGN_STATE';\nconst RAWTEXT_END_TAG_OPEN_STATE = 'RAWTEXT_END_TAG_OPEN_STATE';\nconst RAWTEXT_END_TAG_NAME_STATE = 'RAWTEXT_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_END_TAG_OPEN_STATE = 'SCRIPT_DATA_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_END_TAG_NAME_STATE = 'SCRIPT_DATA_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_ESCAPE_START_STATE = 'SCRIPT_DATA_ESCAPE_START_STATE';\nconst SCRIPT_DATA_ESCAPE_START_DASH_STATE = 'SCRIPT_DATA_ESCAPE_START_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_STATE = 'SCRIPT_DATA_ESCAPED_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE';\nconst BEFORE_ATTRIBUTE_NAME_STATE = 'BEFORE_ATTRIBUTE_NAME_STATE';\nconst ATTRIBUTE_NAME_STATE = 'ATTRIBUTE_NAME_STATE';\nconst AFTER_ATTRIBUTE_NAME_STATE = 'AFTER_ATTRIBUTE_NAME_STATE';\nconst BEFORE_ATTRIBUTE_VALUE_STATE = 'BEFORE_ATTRIBUTE_VALUE_STATE';\nconst ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_UNQUOTED_STATE = 'ATTRIBUTE_VALUE_UNQUOTED_STATE';\nconst AFTER_ATTRIBUTE_VALUE_QUOTED_STATE = 'AFTER_ATTRIBUTE_VALUE_QUOTED_STATE';\nconst SELF_CLOSING_START_TAG_STATE = 'SELF_CLOSING_START_TAG_STATE';\nconst BOGUS_COMMENT_STATE = 'BOGUS_COMMENT_STATE';\nconst MARKUP_DECLARATION_OPEN_STATE = 'MARKUP_DECLARATION_OPEN_STATE';\nconst COMMENT_START_STATE = 'COMMENT_START_STATE';\nconst COMMENT_START_DASH_STATE = 'COMMENT_START_DASH_STATE';\nconst COMMENT_STATE = 'COMMENT_STATE';\nconst COMMENT_LESS_THAN_SIGN_STATE = 'COMMENT_LESS_THAN_SIGN_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE';\nconst COMMENT_END_DASH_STATE = 'COMMENT_END_DASH_STATE';\nconst COMMENT_END_STATE = 'COMMENT_END_STATE';\nconst COMMENT_END_BANG_STATE = 'COMMENT_END_BANG_STATE';\nconst DOCTYPE_STATE = 'DOCTYPE_STATE';\nconst BEFORE_DOCTYPE_NAME_STATE = 'BEFORE_DOCTYPE_NAME_STATE';\nconst DOCTYPE_NAME_STATE = 'DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_NAME_STATE = 'AFTER_DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE = 'AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE = 'BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE';\nconst AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE = 'AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst BOGUS_DOCTYPE_STATE = 'BOGUS_DOCTYPE_STATE';\nconst CDATA_SECTION_STATE = 'CDATA_SECTION_STATE';\nconst CDATA_SECTION_BRACKET_STATE = 'CDATA_SECTION_BRACKET_STATE';\nconst CDATA_SECTION_END_STATE = 'CDATA_SECTION_END_STATE';\nconst CHARACTER_REFERENCE_STATE = 'CHARACTER_REFERENCE_STATE';\nconst NAMED_CHARACTER_REFERENCE_STATE = 'NAMED_CHARACTER_REFERENCE_STATE';\nconst AMBIGUOUS_AMPERSAND_STATE = 'AMBIGUOS_AMPERSAND_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_STATE = 'NUMERIC_CHARACTER_REFERENCE_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_START_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_START_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_START_STATE = 'DECIMAL_CHARACTER_REFERENCE_START_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_STATE = 'DECIMAL_CHARACTER_REFERENCE_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_END_STATE = 'NUMERIC_CHARACTER_REFERENCE_END_STATE';\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isWhitespace(cp) {\n return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\n\nfunction isAsciiDigit(cp) {\n return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\n\nfunction isAsciiUpper(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\n\nfunction isAsciiLower(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\n\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\n\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\n\nfunction isAsciiUpperHexDigit(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\n\nfunction isAsciiLowerHexDigit(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\n\nfunction isAsciiHexDigit(cp) {\n return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\n\nfunction toAsciiLowerCodePoint(cp) {\n return cp + 0x0020;\n}\n\n//NOTE: String.fromCharCode() function can handle only characters from BMP subset.\n//So, we need to workaround this manually.\n//(see: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode#Getting_it_to_work_with_higher_values)\nfunction toChar(cp) {\n if (cp <= 0xffff) {\n return String.fromCharCode(cp);\n }\n\n cp -= 0x10000;\n return String.fromCharCode(((cp >>> 10) & 0x3ff) | 0xd800) + String.fromCharCode(0xdc00 | (cp & 0x3ff));\n}\n\nfunction toAsciiLowerChar(cp) {\n return String.fromCharCode(toAsciiLowerCodePoint(cp));\n}\n\nfunction findNamedEntityTreeBranch(nodeIx, cp) {\n const branchCount = neTree[++nodeIx];\n let lo = ++nodeIx;\n let hi = lo + branchCount - 1;\n\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midCp = neTree[mid];\n\n if (midCp < cp) {\n lo = mid + 1;\n } else if (midCp > cp) {\n hi = mid - 1;\n } else {\n return neTree[mid + branchCount];\n }\n }\n\n return -1;\n}\n\n//Tokenizer\nclass Tokenizer {\n constructor() {\n this.preprocessor = new Preprocessor();\n\n this.tokenQueue = [];\n\n this.allowCDATA = false;\n\n this.state = DATA_STATE;\n this.returnState = '';\n\n this.charRefCode = -1;\n this.tempBuff = [];\n this.lastStartTagName = '';\n\n this.consumedAfterSnapshot = -1;\n this.active = false;\n\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = null;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _errOnNextCodePoint(err) {\n this._consume();\n this._err(err);\n this._unconsume();\n }\n\n //API\n getNextToken() {\n while (!this.tokenQueue.length && this.active) {\n this.consumedAfterSnapshot = 0;\n\n const cp = this._consume();\n\n if (!this._ensureHibernation()) {\n this[this.state](cp);\n }\n }\n\n return this.tokenQueue.shift();\n }\n\n write(chunk, isLastChunk) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n }\n\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n for (; this.consumedAfterSnapshot > 0; this.consumedAfterSnapshot--) {\n this.preprocessor.retreat();\n }\n\n this.active = false;\n this.tokenQueue.push({ type: Tokenizer.HIBERNATION_TOKEN });\n\n return true;\n }\n\n return false;\n }\n\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n\n _unconsume() {\n this.consumedAfterSnapshot--;\n this.preprocessor.retreat();\n }\n\n _reconsumeInState(state) {\n this.state = state;\n this._unconsume();\n }\n\n _consumeSequenceIfMatch(pattern, startCp, caseSensitive) {\n let consumedCount = 0;\n let isMatch = true;\n const patternLength = pattern.length;\n let patternPos = 0;\n let cp = startCp;\n let patternCp = void 0;\n\n for (; patternPos < patternLength; patternPos++) {\n if (patternPos > 0) {\n cp = this._consume();\n consumedCount++;\n }\n\n if (cp === $.EOF) {\n isMatch = false;\n break;\n }\n\n patternCp = pattern[patternPos];\n\n if (cp !== patternCp && (caseSensitive || cp !== toAsciiLowerCodePoint(patternCp))) {\n isMatch = false;\n break;\n }\n }\n\n if (!isMatch) {\n while (consumedCount--) {\n this._unconsume();\n }\n }\n\n return isMatch;\n }\n\n //Temp buffer\n _isTempBufferEqualToScriptString() {\n if (this.tempBuff.length !== $$.SCRIPT_STRING.length) {\n return false;\n }\n\n for (let i = 0; i < this.tempBuff.length; i++) {\n if (this.tempBuff[i] !== $$.SCRIPT_STRING[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: Tokenizer.START_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n ackSelfClosing: false,\n attrs: []\n };\n }\n\n _createEndTagToken() {\n this.currentToken = {\n type: Tokenizer.END_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n attrs: []\n };\n }\n\n _createCommentToken() {\n this.currentToken = {\n type: Tokenizer.COMMENT_TOKEN,\n data: ''\n };\n }\n\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: Tokenizer.DOCTYPE_TOKEN,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null\n };\n }\n\n _createCharacterToken(type, ch) {\n this.currentCharacterToken = {\n type: type,\n chars: ch\n };\n }\n\n _createEOFToken() {\n this.currentToken = { type: Tokenizer.EOF_TOKEN };\n }\n\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: ''\n };\n }\n\n _leaveAttrName(toState) {\n if (Tokenizer.getTokenAttr(this.currentToken, this.currentAttr.name) === null) {\n this.currentToken.attrs.push(this.currentAttr);\n } else {\n this._err(ERR.duplicateAttribute);\n }\n\n this.state = toState;\n }\n\n _leaveAttrValue(toState) {\n this.state = toState;\n }\n\n //Token emission\n _emitCurrentToken() {\n this._emitCurrentCharacterToken();\n\n const ct = this.currentToken;\n\n this.currentToken = null;\n\n //NOTE: store emited start tag's tagName to determine is the following end tag token is appropriate.\n if (ct.type === Tokenizer.START_TAG_TOKEN) {\n this.lastStartTagName = ct.tagName;\n } else if (ct.type === Tokenizer.END_TAG_TOKEN) {\n if (ct.attrs.length > 0) {\n this._err(ERR.endTagWithAttributes);\n }\n\n if (ct.selfClosing) {\n this._err(ERR.endTagWithTrailingSolidus);\n }\n }\n\n this.tokenQueue.push(ct);\n }\n\n _emitCurrentCharacterToken() {\n if (this.currentCharacterToken) {\n this.tokenQueue.push(this.currentCharacterToken);\n this.currentCharacterToken = null;\n }\n }\n\n _emitEOFToken() {\n this._createEOFToken();\n this._emitCurrentToken();\n }\n\n //Characters emission\n\n //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)NULL_CHARACTER_TOKEN - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)WHITESPACE_CHARACTER_TOKEN - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)CHARACTER_TOKEN - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken && this.currentCharacterToken.type !== type) {\n this._emitCurrentCharacterToken();\n }\n\n if (this.currentCharacterToken) {\n this.currentCharacterToken.chars += ch;\n } else {\n this._createCharacterToken(type, ch);\n }\n }\n\n _emitCodePoint(cp) {\n let type = Tokenizer.CHARACTER_TOKEN;\n\n if (isWhitespace(cp)) {\n type = Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n } else if (cp === $.NULL) {\n type = Tokenizer.NULL_CHARACTER_TOKEN;\n }\n\n this._appendCharToCurrentCharacterToken(type, toChar(cp));\n }\n\n _emitSeveralCodePoints(codePoints) {\n for (let i = 0; i < codePoints.length; i++) {\n this._emitCodePoint(codePoints[i]);\n }\n }\n\n //NOTE: used then we emit character explicitly. This is always a non-whitespace and a non-null character.\n //So we can avoid additional checks here.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(Tokenizer.CHARACTER_TOKEN, ch);\n }\n\n // Character reference helpers\n _matchNamedCharacterReference(startCp) {\n let result = null;\n let excess = 1;\n let i = findNamedEntityTreeBranch(0, startCp);\n\n this.tempBuff.push(startCp);\n\n while (i > -1) {\n const current = neTree[i];\n const inNode = current < MAX_BRANCH_MARKER_VALUE;\n const nodeWithData = inNode && current & HAS_DATA_FLAG;\n\n if (nodeWithData) {\n //NOTE: we use greedy search, so we continue lookup at this point\n result = current & DATA_DUPLET_FLAG ? [neTree[++i], neTree[++i]] : [neTree[++i]];\n excess = 0;\n }\n\n const cp = this._consume();\n\n this.tempBuff.push(cp);\n excess++;\n\n if (cp === $.EOF) {\n break;\n }\n\n if (inNode) {\n i = current & HAS_BRANCHES_FLAG ? findNamedEntityTreeBranch(i, cp) : -1;\n } else {\n i = cp === current ? ++i : -1;\n }\n }\n\n while (excess--) {\n this.tempBuff.pop();\n this._unconsume();\n }\n\n return result;\n }\n\n _isCharacterReferenceInAttribute() {\n return (\n this.returnState === ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_UNQUOTED_STATE\n );\n }\n\n _isCharacterReferenceAttributeQuirk(withSemicolon) {\n if (!withSemicolon && this._isCharacterReferenceInAttribute()) {\n const nextCp = this._consume();\n\n this._unconsume();\n\n return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n }\n\n return false;\n }\n\n _flushCodePointsConsumedAsCharacterReference() {\n if (this._isCharacterReferenceInAttribute()) {\n for (let i = 0; i < this.tempBuff.length; i++) {\n this.currentAttr.value += toChar(this.tempBuff[i]);\n }\n } else {\n this._emitSeveralCodePoints(this.tempBuff);\n }\n\n this.tempBuff = [];\n }\n\n // State machine\n\n // Data state\n //------------------------------------------------------------------\n [DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = TAG_OPEN_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = DATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RCDATA state\n //------------------------------------------------------------------\n [RCDATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.AMPERSAND) {\n this.returnState = RCDATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = RCDATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RAWTEXT state\n //------------------------------------------------------------------\n [RAWTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = RAWTEXT_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data state\n //------------------------------------------------------------------\n [SCRIPT_DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // PLAINTEXT state\n //------------------------------------------------------------------\n [PLAINTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Tag open state\n //------------------------------------------------------------------\n [TAG_OPEN_STATE](cp) {\n if (cp === $.EXCLAMATION_MARK) {\n this.state = MARKUP_DECLARATION_OPEN_STATE;\n } else if (cp === $.SOLIDUS) {\n this.state = END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $.QUESTION_MARK) {\n this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n } else if (cp === $.EOF) {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n } else {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this._reconsumeInState(DATA_STATE);\n }\n }\n\n // End tag open state\n //------------------------------------------------------------------\n [END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingEndTagName);\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('</');\n this._emitEOFToken();\n } else {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Tag name state\n //------------------------------------------------------------------\n [TAG_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n } else if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.tagName += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentToken.tagName += toChar(cp);\n }\n }\n\n // RCDATA less-than sign state\n //------------------------------------------------------------------\n [RCDATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = RCDATA_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag open state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RCDATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag name state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RAWTEXT less-than sign state\n //------------------------------------------------------------------\n [RAWTEXT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = RAWTEXT_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag open state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RAWTEXT_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag name state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // Script data less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_END_TAG_OPEN_STATE;\n } else if (cp === $.EXCLAMATION_MARK) {\n this.state = SCRIPT_DATA_ESCAPE_START_STATE;\n this._emitChars('<!');\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n } else if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPE_START_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this.tempBuff = [];\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE);\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_DOUBLE_ESCAPED_STATE\n : SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE;\n this._emitChars('/');\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Script data double escape end state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_ESCAPED_STATE\n : SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Before attribute name state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n this._reconsumeInState(AFTER_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.EQUALS_SIGN) {\n this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = ATTRIBUTE_NAME_STATE;\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Attribute name state\n //------------------------------------------------------------------\n [ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n this._leaveAttrName(AFTER_ATTRIBUTE_NAME_STATE);\n this._unconsume();\n } else if (cp === $.EQUALS_SIGN) {\n this._leaveAttrName(BEFORE_ATTRIBUTE_VALUE_STATE);\n } else if (isAsciiUpper(cp)) {\n this.currentAttr.name += toAsciiLowerChar(cp);\n } else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN) {\n this._err(ERR.unexpectedCharacterInAttributeName);\n this.currentAttr.name += toChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.name += unicode.REPLACEMENT_CHARACTER;\n } else {\n this.currentAttr.name += toChar(cp);\n }\n }\n\n // After attribute name state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $.EQUALS_SIGN) {\n this.state = BEFORE_ATTRIBUTE_VALUE_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Before attribute value state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_VALUE_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.state = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.state = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingAttributeValue);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(ATTRIBUTE_VALUE_UNQUOTED_STATE);\n }\n }\n\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_UNQUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_UNQUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (\n cp === $.QUOTATION_MARK ||\n cp === $.APOSTROPHE ||\n cp === $.LESS_THAN_SIGN ||\n cp === $.EQUALS_SIGN ||\n cp === $.GRAVE_ACCENT\n ) {\n this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += toChar(cp);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_VALUE_QUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.SOLIDUS) {\n this._leaveAttrValue(SELF_CLOSING_START_TAG_STATE);\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR.missingWhitespaceBetweenAttributes);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Self-closing start tag state\n //------------------------------------------------------------------\n [SELF_CLOSING_START_TAG_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.currentToken.selfClosing = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR.unexpectedSolidusInTag);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Bogus comment state\n //------------------------------------------------------------------\n [BOGUS_COMMENT_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Markup declaration open state\n //------------------------------------------------------------------\n [MARKUP_DECLARATION_OPEN_STATE](cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH_STRING, cp, true)) {\n this._createCommentToken();\n this.state = COMMENT_START_STATE;\n } else if (this._consumeSequenceIfMatch($$.DOCTYPE_STRING, cp, false)) {\n this.state = DOCTYPE_STATE;\n } else if (this._consumeSequenceIfMatch($$.CDATA_START_STRING, cp, true)) {\n if (this.allowCDATA) {\n this.state = CDATA_SECTION_STATE;\n } else {\n this._err(ERR.cdataInHtmlContent);\n this._createCommentToken();\n this.currentToken.data = '[CDATA[';\n this.state = BOGUS_COMMENT_STATE;\n }\n }\n\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.incorrectlyOpenedComment);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Comment start state\n //------------------------------------------------------------------\n [COMMENT_START_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_START_DASH_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment start dash state\n //------------------------------------------------------------------\n [COMMENT_START_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment state\n //------------------------------------------------------------------\n [COMMENT_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.currentToken.data += '<';\n this.state = COMMENT_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Comment less-than sign state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.EXCLAMATION_MARK) {\n this.currentToken.data += '!';\n this.state = COMMENT_LESS_THAN_SIGN_BANG_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.currentToken.data += '!';\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_END_DASH_STATE);\n }\n }\n\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE](cp) {\n if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n this._err(ERR.nestedComment);\n }\n\n this._reconsumeInState(COMMENT_END_STATE);\n }\n\n // Comment end dash state\n //------------------------------------------------------------------\n [COMMENT_END_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end state\n //------------------------------------------------------------------\n [COMMENT_END_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EXCLAMATION_MARK) {\n this.state = COMMENT_END_BANG_STATE;\n } else if (cp === $.HYPHEN_MINUS) {\n this.currentToken.data += '-';\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end bang state\n //------------------------------------------------------------------\n [COMMENT_END_BANG_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.currentToken.data += '--!';\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.incorrectlyClosedComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--!';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // DOCTYPE state\n //------------------------------------------------------------------\n [DOCTYPE_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingWhitespaceBeforeDoctypeName);\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n }\n }\n\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(toAsciiLowerChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._createDoctypeToken(unicode.REPLACEMENT_CHARACTER);\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeName);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._createDoctypeToken(toChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n }\n }\n\n // DOCTYPE name state\n //------------------------------------------------------------------\n [DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = AFTER_DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.name += toAsciiLowerChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.name += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.name += toChar(cp);\n }\n }\n\n // After DOCTYPE name state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (this._consumeSequenceIfMatch($$.PUBLIC_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE;\n } else if (this._consumeSequenceIfMatch($$.SYSTEM_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n [BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n [BOGUS_DOCTYPE_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n } else if (cp === $.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n }\n }\n\n // CDATA section state\n //------------------------------------------------------------------\n [CDATA_SECTION_STATE](cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_BRACKET_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInCdata);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // CDATA section bracket state\n //------------------------------------------------------------------\n [CDATA_SECTION_BRACKET_STATE](cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_END_STATE;\n } else {\n this._emitChars(']');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // CDATA section end state\n //------------------------------------------------------------------\n [CDATA_SECTION_END_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n } else if (cp === $.RIGHT_SQUARE_BRACKET) {\n this._emitChars(']');\n } else {\n this._emitChars(']]');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // Character reference state\n //------------------------------------------------------------------\n [CHARACTER_REFERENCE_STATE](cp) {\n this.tempBuff = [$.AMPERSAND];\n\n if (cp === $.NUMBER_SIGN) {\n this.tempBuff.push(cp);\n this.state = NUMERIC_CHARACTER_REFERENCE_STATE;\n } else if (isAsciiAlphaNumeric(cp)) {\n this._reconsumeInState(NAMED_CHARACTER_REFERENCE_STATE);\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Named character reference state\n //------------------------------------------------------------------\n [NAMED_CHARACTER_REFERENCE_STATE](cp) {\n const matchResult = this._matchNamedCharacterReference(cp);\n\n //NOTE: matching can be abrupted by hibernation. In that case match\n //results are no longer valid and we will need to start over.\n if (this._ensureHibernation()) {\n this.tempBuff = [$.AMPERSAND];\n } else if (matchResult) {\n const withSemicolon = this.tempBuff[this.tempBuff.length - 1] === $.SEMICOLON;\n\n if (!this._isCharacterReferenceAttributeQuirk(withSemicolon)) {\n if (!withSemicolon) {\n this._errOnNextCodePoint(ERR.missingSemicolonAfterCharacterReference);\n }\n\n this.tempBuff = matchResult;\n }\n\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = this.returnState;\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = AMBIGUOUS_AMPERSAND_STATE;\n }\n }\n\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n [AMBIGUOUS_AMPERSAND_STATE](cp) {\n if (isAsciiAlphaNumeric(cp)) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += toChar(cp);\n } else {\n this._emitCodePoint(cp);\n }\n } else {\n if (cp === $.SEMICOLON) {\n this._err(ERR.unknownNamedCharacterReference);\n }\n\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Numeric character reference state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_STATE](cp) {\n this.charRefCode = 0;\n\n if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n this.tempBuff.push(cp);\n this.state = HEXADEMICAL_CHARACTER_REFERENCE_START_STATE;\n } else {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_START_STATE);\n }\n }\n\n // Hexademical character reference start state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiHexDigit(cp)) {\n this._reconsumeInState(HEXADEMICAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Decimal character reference start state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Hexademical character reference state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiUpperHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n } else if (isAsciiLowerHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n } else if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n } else if (cp === $.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Decimal character reference state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n } else if (cp === $.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Numeric character reference end state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_END_STATE]() {\n if (this.charRefCode === $.NULL) {\n this._err(ERR.nullCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (this.charRefCode > 0x10ffff) {\n this._err(ERR.characterReferenceOutsideUnicodeRange);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (unicode.isSurrogate(this.charRefCode)) {\n this._err(ERR.surrogateCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (unicode.isUndefinedCodePoint(this.charRefCode)) {\n this._err(ERR.noncharacterCharacterReference);\n } else if (unicode.isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n this._err(ERR.controlCharacterReference);\n\n const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS[this.charRefCode];\n\n if (replacement) {\n this.charRefCode = replacement;\n }\n }\n\n this.tempBuff = [this.charRefCode];\n\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n}\n\n//Token types\nTokenizer.CHARACTER_TOKEN = 'CHARACTER_TOKEN';\nTokenizer.NULL_CHARACTER_TOKEN = 'NULL_CHARACTER_TOKEN';\nTokenizer.WHITESPACE_CHARACTER_TOKEN = 'WHITESPACE_CHARACTER_TOKEN';\nTokenizer.START_TAG_TOKEN = 'START_TAG_TOKEN';\nTokenizer.END_TAG_TOKEN = 'END_TAG_TOKEN';\nTokenizer.COMMENT_TOKEN = 'COMMENT_TOKEN';\nTokenizer.DOCTYPE_TOKEN = 'DOCTYPE_TOKEN';\nTokenizer.EOF_TOKEN = 'EOF_TOKEN';\nTokenizer.HIBERNATION_TOKEN = 'HIBERNATION_TOKEN';\n\n//Tokenizer initial states for different modes\nTokenizer.MODE = {\n DATA: DATA_STATE,\n RCDATA: RCDATA_STATE,\n RAWTEXT: RAWTEXT_STATE,\n SCRIPT_DATA: SCRIPT_DATA_STATE,\n PLAINTEXT: PLAINTEXT_STATE\n};\n\n//Static\nTokenizer.getTokenAttr = function(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n\n return null;\n};\n\nmodule.exports = Tokenizer;\n","'use strict';\n\n//NOTE: this file contains auto-generated array mapped radix tree that is used for the named entity references consumption\n//(details: https://github.com/inikulin/parse5/tree/master/scripts/generate-named-entity-data/README.md)\nmodule.exports = new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4000,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,10000,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13000,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204]);","'use strict';\n\nconst unicode = require('../common/unicode');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\n\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nclass Preprocessor {\n constructor() {\n this.html = null;\n\n this.pos = -1;\n this.lastGapPos = -1;\n this.lastCharPos = -1;\n\n this.gapStack = [];\n\n this.skipNextNewLine = false;\n\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n }\n\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.lastCharPos) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n\n if (unicode.isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n\n //NOTE: add gap that should be avoided during retreat\n this._addGap();\n\n return unicode.getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n\n //NOTE: we are at the end of a chunk, therefore we can't infer surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n\n return cp;\n }\n\n dropParsedChunk() {\n if (this.pos > this.bufferWaterline) {\n this.lastCharPos -= this.pos;\n this.html = this.html.substring(this.pos);\n this.pos = 0;\n this.lastGapPos = -1;\n this.gapStack = [];\n }\n }\n\n write(chunk, isLastChunk) {\n if (this.html) {\n this.html += chunk;\n } else {\n this.html = chunk;\n }\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1, this.html.length);\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n }\n\n advance() {\n this.pos++;\n\n if (this.pos > this.lastCharPos) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n\n let cp = this.html.charCodeAt(this.pos);\n\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (this.skipNextNewLine && cp === $.LINE_FEED) {\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n\n this.skipNextNewLine = false;\n\n if (unicode.isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange =\n (cp > 0x1f && cp < 0x7f) || cp === $.LINE_FEED || cp === $.CARRIAGE_RETURN || (cp > 0x9f && cp < 0xfdd0);\n\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n\n return cp;\n }\n\n _checkForProblematicCharacters(cp) {\n if (unicode.isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n } else if (unicode.isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n\n retreat() {\n if (this.pos === this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n\n this.pos--;\n }\n}\n\nmodule.exports = Preprocessor;\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('../common/html');\n\n//Node construction\nexports.createDocument = function() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: []\n };\n};\n\nexports.createDocumentFragment = function() {\n return {\n nodeName: '#document-fragment',\n childNodes: []\n };\n};\n\nexports.createElement = function(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName: tagName,\n attrs: attrs,\n namespaceURI: namespaceURI,\n childNodes: [],\n parentNode: null\n };\n};\n\nexports.createCommentNode = function(data) {\n return {\n nodeName: '#comment',\n data: data,\n parentNode: null\n };\n};\n\nconst createTextNode = function(value) {\n return {\n nodeName: '#text',\n value: value,\n parentNode: null\n };\n};\n\n//Tree mutation\nconst appendChild = (exports.appendChild = function(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n});\n\nconst insertBefore = (exports.insertBefore = function(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n});\n\nexports.setTemplateContent = function(templateElement, contentElement) {\n templateElement.content = contentElement;\n};\n\nexports.getTemplateContent = function(templateElement) {\n return templateElement.content;\n};\n\nexports.setDocumentType = function(document, name, publicId, systemId) {\n let doctypeNode = null;\n\n for (let i = 0; i < document.childNodes.length; i++) {\n if (document.childNodes[i].nodeName === '#documentType') {\n doctypeNode = document.childNodes[i];\n break;\n }\n }\n\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n } else {\n appendChild(document, {\n nodeName: '#documentType',\n name: name,\n publicId: publicId,\n systemId: systemId\n });\n }\n};\n\nexports.setDocumentMode = function(document, mode) {\n document.mode = mode;\n};\n\nexports.getDocumentMode = function(document) {\n return document.mode;\n};\n\nexports.detachNode = function(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n};\n\nexports.insertText = function(parentNode, text) {\n if (parentNode.childNodes.length) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n\n if (prevNode.nodeName === '#text') {\n prevNode.value += text;\n return;\n }\n }\n\n appendChild(parentNode, createTextNode(text));\n};\n\nexports.insertTextBefore = function(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n\n if (prevNode && prevNode.nodeName === '#text') {\n prevNode.value += text;\n } else {\n insertBefore(parentNode, createTextNode(text), referenceNode);\n }\n};\n\nexports.adoptAttributes = function(recipient, attrs) {\n const recipientAttrsMap = [];\n\n for (let i = 0; i < recipient.attrs.length; i++) {\n recipientAttrsMap.push(recipient.attrs[i].name);\n }\n\n for (let j = 0; j < attrs.length; j++) {\n if (recipientAttrsMap.indexOf(attrs[j].name) === -1) {\n recipient.attrs.push(attrs[j]);\n }\n }\n};\n\n//Tree traversing\nexports.getFirstChild = function(node) {\n return node.childNodes[0];\n};\n\nexports.getChildNodes = function(node) {\n return node.childNodes;\n};\n\nexports.getParentNode = function(node) {\n return node.parentNode;\n};\n\nexports.getAttrList = function(element) {\n return element.attrs;\n};\n\n//Node data\nexports.getTagName = function(element) {\n return element.tagName;\n};\n\nexports.getNamespaceURI = function(element) {\n return element.namespaceURI;\n};\n\nexports.getTextNodeContent = function(textNode) {\n return textNode.value;\n};\n\nexports.getCommentNodeContent = function(commentNode) {\n return commentNode.data;\n};\n\nexports.getDocumentTypeNodeName = function(doctypeNode) {\n return doctypeNode.name;\n};\n\nexports.getDocumentTypeNodePublicId = function(doctypeNode) {\n return doctypeNode.publicId;\n};\n\nexports.getDocumentTypeNodeSystemId = function(doctypeNode) {\n return doctypeNode.systemId;\n};\n\n//Node types\nexports.isTextNode = function(node) {\n return node.nodeName === '#text';\n};\n\nexports.isCommentNode = function(node) {\n return node.nodeName === '#comment';\n};\n\nexports.isDocumentTypeNode = function(node) {\n return node.nodeName === '#documentType';\n};\n\nexports.isElementNode = function(node) {\n return !!node.tagName;\n};\n\n// Source code location\nexports.setNodeSourceCodeLocation = function(node, location) {\n node.sourceCodeLocation = location;\n};\n\nexports.getNodeSourceCodeLocation = function(node) {\n return node.sourceCodeLocation;\n};\n\nexports.updateNodeSourceCodeLocation = function(node, endLocation) {\n node.sourceCodeLocation = Object.assign(node.sourceCodeLocation, endLocation);\n};\n","'use strict';\n\nmodule.exports = function mergeOptions(defaults, options) {\n options = options || Object.create(null);\n\n return [defaults, options].reduce((merged, optObj) => {\n Object.keys(optObj).forEach(key => {\n merged[key] = optObj[key];\n });\n\n return merged;\n }, Object.create(null));\n};\n","'use strict';\n\nclass Mixin {\n constructor(host) {\n const originalMethods = {};\n const overriddenMethods = this._getOverriddenMethods(this, originalMethods);\n\n for (const key of Object.keys(overriddenMethods)) {\n if (typeof overriddenMethods[key] === 'function') {\n originalMethods[key] = host[key];\n host[key] = overriddenMethods[key];\n }\n }\n }\n\n _getOverriddenMethods() {\n throw new Error('Not implemented');\n }\n}\n\nMixin.install = function(host, Ctor, opts) {\n if (!host.__mixins) {\n host.__mixins = [];\n }\n\n for (let i = 0; i < host.__mixins.length; i++) {\n if (host.__mixins[i].constructor === Ctor) {\n return host.__mixins[i];\n }\n }\n\n const mixin = new Ctor(host, opts);\n\n host.__mixins.push(mixin);\n\n return mixin;\n};\n\nmodule.exports = Mixin;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict'\n\n/* global window, self */\n\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\nvar ctx =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {}\n\nvar restore = capture()\n\nctx.Prism = {manual: true, disableWorkerMessageHandler: true}\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prisms originals.\nvar h = require('hastscript')\nvar decode = require('parse-entities')\nvar Prism = require('prismjs/components/prism-core')\nvar markup = require('./lang/markup')\nvar css = require('./lang/css')\nvar clike = require('./lang/clike')\nvar js = require('./lang/javascript')\n\nrestore()\n\nvar own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n// Construct.\nvar refract = new Refractor()\n\n// Expose.\nmodule.exports = refract\n\n// Create.\nrefract.highlight = highlight\nrefract.register = register\nrefract.alias = alias\nrefract.registered = registered\nrefract.listLanguages = listLanguages\n\n// Register bundled grammars.\nregister(markup)\nregister(css)\nregister(clike)\nregister(js)\n\nrefract.util.encode = encode\nrefract.Token.stringify = stringify\n\nfunction register(grammar) {\n if (typeof grammar !== 'function' || !grammar.displayName) {\n throw new Error('Expected `function` for `grammar`, got `' + grammar + '`')\n }\n\n // Do not duplicate registrations.\n if (refract.languages[grammar.displayName] === undefined) {\n grammar(refract)\n }\n}\n\nfunction alias(name, alias) {\n var languages = refract.languages\n var map = name\n var key\n var list\n var length\n var index\n\n if (alias) {\n map = {}\n map[name] = alias\n }\n\n for (key in map) {\n list = map[key]\n list = typeof list === 'string' ? [list] : list\n length = list.length\n index = -1\n\n while (++index < length) {\n languages[list[index]] = languages[key]\n }\n }\n}\n\nfunction highlight(value, name) {\n var sup = Prism.highlight\n var grammar\n\n if (typeof value !== 'string') {\n throw new Error('Expected `string` for `value`, got `' + value + '`')\n }\n\n // `name` is a grammar object.\n if (refract.util.type(name) === 'Object') {\n grammar = name\n name = null\n } else {\n if (typeof name !== 'string') {\n throw new Error('Expected `string` for `name`, got `' + name + '`')\n }\n\n if (own.call(refract.languages, name)) {\n grammar = refract.languages[name]\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered')\n }\n }\n\n return sup.call(this, value, grammar, name)\n}\n\nfunction registered(language) {\n if (typeof language !== 'string') {\n throw new Error('Expected `string` for `language`, got `' + language + '`')\n }\n\n return own.call(refract.languages, language)\n}\n\nfunction listLanguages() {\n var languages = refract.languages\n var list = []\n var language\n\n for (language in languages) {\n if (\n own.call(languages, language) &&\n typeof languages[language] === 'object'\n ) {\n list.push(language)\n }\n }\n\n return list\n}\n\nfunction stringify(value, language, parent) {\n var env\n\n if (typeof value === 'string') {\n return {type: 'text', value: value}\n }\n\n if (refract.util.type(value) === 'Array') {\n return stringifyAll(value, language)\n }\n\n env = {\n type: value.type,\n content: refract.Token.stringify(value.content, language, parent),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language: language,\n parent: parent\n }\n\n if (value.alias) {\n env.classes = env.classes.concat(value.alias)\n }\n\n refract.hooks.run('wrap', env)\n\n return h(\n env.tag + '.' + env.classes.join('.'),\n attributes(env.attributes),\n env.content\n )\n}\n\nfunction stringifyAll(values, language) {\n var result = []\n var length = values.length\n var index = -1\n var value\n\n while (++index < length) {\n value = values[index]\n\n if (value !== '' && value !== null && value !== undefined) {\n result.push(value)\n }\n }\n\n index = -1\n length = result.length\n\n while (++index < length) {\n value = result[index]\n result[index] = refract.Token.stringify(value, language, result)\n }\n\n return result\n}\n\nfunction encode(tokens) {\n return tokens\n}\n\nfunction attributes(attrs) {\n var key\n\n for (key in attrs) {\n attrs[key] = decode(attrs[key])\n }\n\n return attrs\n}\n\nfunction capture() {\n var defined = 'Prism' in ctx\n /* istanbul ignore next */\n var current = defined ? ctx.Prism : undefined\n\n return restore\n\n function restore() {\n /* istanbul ignore else - Clean leaks after Prism. */\n if (defined) {\n ctx.Prism = current\n } else {\n delete ctx.Prism\n }\n\n defined = undefined\n current = undefined\n }\n}\n","'use strict'\n\nvar refractor = require('./core.js')\n\nmodule.exports = refractor\n\nrefractor.register(require('./lang/abap.js'))\nrefractor.register(require('./lang/abnf.js'))\nrefractor.register(require('./lang/actionscript.js'))\nrefractor.register(require('./lang/ada.js'))\nrefractor.register(require('./lang/agda.js'))\nrefractor.register(require('./lang/al.js'))\nrefractor.register(require('./lang/antlr4.js'))\nrefractor.register(require('./lang/apacheconf.js'))\nrefractor.register(require('./lang/apex.js'))\nrefractor.register(require('./lang/apl.js'))\nrefractor.register(require('./lang/applescript.js'))\nrefractor.register(require('./lang/aql.js'))\nrefractor.register(require('./lang/arduino.js'))\nrefractor.register(require('./lang/arff.js'))\nrefractor.register(require('./lang/asciidoc.js'))\nrefractor.register(require('./lang/asm6502.js'))\nrefractor.register(require('./lang/asmatmel.js'))\nrefractor.register(require('./lang/aspnet.js'))\nrefractor.register(require('./lang/autohotkey.js'))\nrefractor.register(require('./lang/autoit.js'))\nrefractor.register(require('./lang/avisynth.js'))\nrefractor.register(require('./lang/avro-idl.js'))\nrefractor.register(require('./lang/bash.js'))\nrefractor.register(require('./lang/basic.js'))\nrefractor.register(require('./lang/batch.js'))\nrefractor.register(require('./lang/bbcode.js'))\nrefractor.register(require('./lang/bicep.js'))\nrefractor.register(require('./lang/birb.js'))\nrefractor.register(require('./lang/bison.js'))\nrefractor.register(require('./lang/bnf.js'))\nrefractor.register(require('./lang/brainfuck.js'))\nrefractor.register(require('./lang/brightscript.js'))\nrefractor.register(require('./lang/bro.js'))\nrefractor.register(require('./lang/bsl.js'))\nrefractor.register(require('./lang/c.js'))\nrefractor.register(require('./lang/cfscript.js'))\nrefractor.register(require('./lang/chaiscript.js'))\nrefractor.register(require('./lang/cil.js'))\nrefractor.register(require('./lang/clojure.js'))\nrefractor.register(require('./lang/cmake.js'))\nrefractor.register(require('./lang/cobol.js'))\nrefractor.register(require('./lang/coffeescript.js'))\nrefractor.register(require('./lang/concurnas.js'))\nrefractor.register(require('./lang/coq.js'))\nrefractor.register(require('./lang/cpp.js'))\nrefractor.register(require('./lang/crystal.js'))\nrefractor.register(require('./lang/csharp.js'))\nrefractor.register(require('./lang/cshtml.js'))\nrefractor.register(require('./lang/csp.js'))\nrefractor.register(require('./lang/css-extras.js'))\nrefractor.register(require('./lang/csv.js'))\nrefractor.register(require('./lang/cypher.js'))\nrefractor.register(require('./lang/d.js'))\nrefractor.register(require('./lang/dart.js'))\nrefractor.register(require('./lang/dataweave.js'))\nrefractor.register(require('./lang/dax.js'))\nrefractor.register(require('./lang/dhall.js'))\nrefractor.register(require('./lang/diff.js'))\nrefractor.register(require('./lang/django.js'))\nrefractor.register(require('./lang/dns-zone-file.js'))\nrefractor.register(require('./lang/docker.js'))\nrefractor.register(require('./lang/dot.js'))\nrefractor.register(require('./lang/ebnf.js'))\nrefractor.register(require('./lang/editorconfig.js'))\nrefractor.register(require('./lang/eiffel.js'))\nrefractor.register(require('./lang/ejs.js'))\nrefractor.register(require('./lang/elixir.js'))\nrefractor.register(require('./lang/elm.js'))\nrefractor.register(require('./lang/erb.js'))\nrefractor.register(require('./lang/erlang.js'))\nrefractor.register(require('./lang/etlua.js'))\nrefractor.register(require('./lang/excel-formula.js'))\nrefractor.register(require('./lang/factor.js'))\nrefractor.register(require('./lang/false.js'))\nrefractor.register(require('./lang/firestore-security-rules.js'))\nrefractor.register(require('./lang/flow.js'))\nrefractor.register(require('./lang/fortran.js'))\nrefractor.register(require('./lang/fsharp.js'))\nrefractor.register(require('./lang/ftl.js'))\nrefractor.register(require('./lang/gap.js'))\nrefractor.register(require('./lang/gcode.js'))\nrefractor.register(require('./lang/gdscript.js'))\nrefractor.register(require('./lang/gedcom.js'))\nrefractor.register(require('./lang/gherkin.js'))\nrefractor.register(require('./lang/git.js'))\nrefractor.register(require('./lang/glsl.js'))\nrefractor.register(require('./lang/gml.js'))\nrefractor.register(require('./lang/gn.js'))\nrefractor.register(require('./lang/go-module.js'))\nrefractor.register(require('./lang/go.js'))\nrefractor.register(require('./lang/graphql.js'))\nrefractor.register(require('./lang/groovy.js'))\nrefractor.register(require('./lang/haml.js'))\nrefractor.register(require('./lang/handlebars.js'))\nrefractor.register(require('./lang/haskell.js'))\nrefractor.register(require('./lang/haxe.js'))\nrefractor.register(require('./lang/hcl.js'))\nrefractor.register(require('./lang/hlsl.js'))\nrefractor.register(require('./lang/hoon.js'))\nrefractor.register(require('./lang/hpkp.js'))\nrefractor.register(require('./lang/hsts.js'))\nrefractor.register(require('./lang/http.js'))\nrefractor.register(require('./lang/ichigojam.js'))\nrefractor.register(require('./lang/icon.js'))\nrefractor.register(require('./lang/icu-message-format.js'))\nrefractor.register(require('./lang/idris.js'))\nrefractor.register(require('./lang/iecst.js'))\nrefractor.register(require('./lang/ignore.js'))\nrefractor.register(require('./lang/inform7.js'))\nrefractor.register(require('./lang/ini.js'))\nrefractor.register(require('./lang/io.js'))\nrefractor.register(require('./lang/j.js'))\nrefractor.register(require('./lang/java.js'))\nrefractor.register(require('./lang/javadoc.js'))\nrefractor.register(require('./lang/javadoclike.js'))\nrefractor.register(require('./lang/javastacktrace.js'))\nrefractor.register(require('./lang/jexl.js'))\nrefractor.register(require('./lang/jolie.js'))\nrefractor.register(require('./lang/jq.js'))\nrefractor.register(require('./lang/js-extras.js'))\nrefractor.register(require('./lang/js-templates.js'))\nrefractor.register(require('./lang/jsdoc.js'))\nrefractor.register(require('./lang/json.js'))\nrefractor.register(require('./lang/json5.js'))\nrefractor.register(require('./lang/jsonp.js'))\nrefractor.register(require('./lang/jsstacktrace.js'))\nrefractor.register(require('./lang/jsx.js'))\nrefractor.register(require('./lang/julia.js'))\nrefractor.register(require('./lang/keepalived.js'))\nrefractor.register(require('./lang/keyman.js'))\nrefractor.register(require('./lang/kotlin.js'))\nrefractor.register(require('./lang/kumir.js'))\nrefractor.register(require('./lang/kusto.js'))\nrefractor.register(require('./lang/latex.js'))\nrefractor.register(require('./lang/latte.js'))\nrefractor.register(require('./lang/less.js'))\nrefractor.register(require('./lang/lilypond.js'))\nrefractor.register(require('./lang/liquid.js'))\nrefractor.register(require('./lang/lisp.js'))\nrefractor.register(require('./lang/livescript.js'))\nrefractor.register(require('./lang/llvm.js'))\nrefractor.register(require('./lang/log.js'))\nrefractor.register(require('./lang/lolcode.js'))\nrefractor.register(require('./lang/lua.js'))\nrefractor.register(require('./lang/magma.js'))\nrefractor.register(require('./lang/makefile.js'))\nrefractor.register(require('./lang/markdown.js'))\nrefractor.register(require('./lang/markup-templating.js'))\nrefractor.register(require('./lang/matlab.js'))\nrefractor.register(require('./lang/maxscript.js'))\nrefractor.register(require('./lang/mel.js'))\nrefractor.register(require('./lang/mermaid.js'))\nrefractor.register(require('./lang/mizar.js'))\nrefractor.register(require('./lang/mongodb.js'))\nrefractor.register(require('./lang/monkey.js'))\nrefractor.register(require('./lang/moonscript.js'))\nrefractor.register(require('./lang/n1ql.js'))\nrefractor.register(require('./lang/n4js.js'))\nrefractor.register(require('./lang/nand2tetris-hdl.js'))\nrefractor.register(require('./lang/naniscript.js'))\nrefractor.register(require('./lang/nasm.js'))\nrefractor.register(require('./lang/neon.js'))\nrefractor.register(require('./lang/nevod.js'))\nrefractor.register(require('./lang/nginx.js'))\nrefractor.register(require('./lang/nim.js'))\nrefractor.register(require('./lang/nix.js'))\nrefractor.register(require('./lang/nsis.js'))\nrefractor.register(require('./lang/objectivec.js'))\nrefractor.register(require('./lang/ocaml.js'))\nrefractor.register(require('./lang/opencl.js'))\nrefractor.register(require('./lang/openqasm.js'))\nrefractor.register(require('./lang/oz.js'))\nrefractor.register(require('./lang/parigp.js'))\nrefractor.register(require('./lang/parser.js'))\nrefractor.register(require('./lang/pascal.js'))\nrefractor.register(require('./lang/pascaligo.js'))\nrefractor.register(require('./lang/pcaxis.js'))\nrefractor.register(require('./lang/peoplecode.js'))\nrefractor.register(require('./lang/perl.js'))\nrefractor.register(require('./lang/php-extras.js'))\nrefractor.register(require('./lang/php.js'))\nrefractor.register(require('./lang/phpdoc.js'))\nrefractor.register(require('./lang/plsql.js'))\nrefractor.register(require('./lang/powerquery.js'))\nrefractor.register(require('./lang/powershell.js'))\nrefractor.register(require('./lang/processing.js'))\nrefractor.register(require('./lang/prolog.js'))\nrefractor.register(require('./lang/promql.js'))\nrefractor.register(require('./lang/properties.js'))\nrefractor.register(require('./lang/protobuf.js'))\nrefractor.register(require('./lang/psl.js'))\nrefractor.register(require('./lang/pug.js'))\nrefractor.register(require('./lang/puppet.js'))\nrefractor.register(require('./lang/pure.js'))\nrefractor.register(require('./lang/purebasic.js'))\nrefractor.register(require('./lang/purescript.js'))\nrefractor.register(require('./lang/python.js'))\nrefractor.register(require('./lang/q.js'))\nrefractor.register(require('./lang/qml.js'))\nrefractor.register(require('./lang/qore.js'))\nrefractor.register(require('./lang/qsharp.js'))\nrefractor.register(require('./lang/r.js'))\nrefractor.register(require('./lang/racket.js'))\nrefractor.register(require('./lang/reason.js'))\nrefractor.register(require('./lang/regex.js'))\nrefractor.register(require('./lang/rego.js'))\nrefractor.register(require('./lang/renpy.js'))\nrefractor.register(require('./lang/rest.js'))\nrefractor.register(require('./lang/rip.js'))\nrefractor.register(require('./lang/roboconf.js'))\nrefractor.register(require('./lang/robotframework.js'))\nrefractor.register(require('./lang/ruby.js'))\nrefractor.register(require('./lang/rust.js'))\nrefractor.register(require('./lang/sas.js'))\nrefractor.register(require('./lang/sass.js'))\nrefractor.register(require('./lang/scala.js'))\nrefractor.register(require('./lang/scheme.js'))\nrefractor.register(require('./lang/scss.js'))\nrefractor.register(require('./lang/shell-session.js'))\nrefractor.register(require('./lang/smali.js'))\nrefractor.register(require('./lang/smalltalk.js'))\nrefractor.register(require('./lang/smarty.js'))\nrefractor.register(require('./lang/sml.js'))\nrefractor.register(require('./lang/solidity.js'))\nrefractor.register(require('./lang/solution-file.js'))\nrefractor.register(require('./lang/soy.js'))\nrefractor.register(require('./lang/sparql.js'))\nrefractor.register(require('./lang/splunk-spl.js'))\nrefractor.register(require('./lang/sqf.js'))\nrefractor.register(require('./lang/sql.js'))\nrefractor.register(require('./lang/squirrel.js'))\nrefractor.register(require('./lang/stan.js'))\nrefractor.register(require('./lang/stylus.js'))\nrefractor.register(require('./lang/swift.js'))\nrefractor.register(require('./lang/systemd.js'))\nrefractor.register(require('./lang/t4-cs.js'))\nrefractor.register(require('./lang/t4-templating.js'))\nrefractor.register(require('./lang/t4-vb.js'))\nrefractor.register(require('./lang/tap.js'))\nrefractor.register(require('./lang/tcl.js'))\nrefractor.register(require('./lang/textile.js'))\nrefractor.register(require('./lang/toml.js'))\nrefractor.register(require('./lang/tremor.js'))\nrefractor.register(require('./lang/tsx.js'))\nrefractor.register(require('./lang/tt2.js'))\nrefractor.register(require('./lang/turtle.js'))\nrefractor.register(require('./lang/twig.js'))\nrefractor.register(require('./lang/typescript.js'))\nrefractor.register(require('./lang/typoscript.js'))\nrefractor.register(require('./lang/unrealscript.js'))\nrefractor.register(require('./lang/uorazor.js'))\nrefractor.register(require('./lang/uri.js'))\nrefractor.register(require('./lang/v.js'))\nrefractor.register(require('./lang/vala.js'))\nrefractor.register(require('./lang/vbnet.js'))\nrefractor.register(require('./lang/velocity.js'))\nrefractor.register(require('./lang/verilog.js'))\nrefractor.register(require('./lang/vhdl.js'))\nrefractor.register(require('./lang/vim.js'))\nrefractor.register(require('./lang/visual-basic.js'))\nrefractor.register(require('./lang/warpscript.js'))\nrefractor.register(require('./lang/wasm.js'))\nrefractor.register(require('./lang/web-idl.js'))\nrefractor.register(require('./lang/wiki.js'))\nrefractor.register(require('./lang/wolfram.js'))\nrefractor.register(require('./lang/wren.js'))\nrefractor.register(require('./lang/xeora.js'))\nrefractor.register(require('./lang/xml-doc.js'))\nrefractor.register(require('./lang/xojo.js'))\nrefractor.register(require('./lang/xquery.js'))\nrefractor.register(require('./lang/yaml.js'))\nrefractor.register(require('./lang/yang.js'))\nrefractor.register(require('./lang/zig.js'))\n","'use strict'\n\nmodule.exports = abap\nabap.displayName = 'abap'\nabap.aliases = []\nfunction abap(Prism) {\n Prism.languages.abap = {\n comment: /^\\*.*/m,\n string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n 'string-template': {\n pattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n lookbehind: true,\n alias: 'string'\n },\n /* End Of Line comments should not interfere with strings when the\nquote character occurs within them. We assume a string being highlighted\ninside an EOL comment is more acceptable than the opposite.\n*/\n 'eol-comment': {\n pattern: /(^|\\s)\".*/m,\n lookbehind: true,\n alias: 'comment'\n },\n keyword: {\n pattern:\n /(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,\n lookbehind: true\n },\n /* Numbers can be only integers. Decimal or Hex appear only as strings */\n number: /\\b\\d+\\b/,\n /* Operators must always be surrounded by whitespace, they cannot be put\nadjacent to operands.\n*/\n operator: {\n pattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n lookbehind: true\n },\n 'string-operator': {\n pattern: /(\\s)&&?(?=\\s)/,\n lookbehind: true,\n /* The official editor highlights */\n alias: 'keyword'\n },\n 'token-operator': [\n {\n /* Special operators used to access structure components, class methods/attributes, etc. */\n pattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n {\n /* Special tokens used do delimit string templates */\n pattern: /[|{}]/,\n alias: 'punctuation'\n }\n ],\n punctuation: /[,.:()]/\n }\n}\n","'use strict'\n\nmodule.exports = abnf\nabnf.displayName = 'abnf'\nabnf.aliases = []\nfunction abnf(Prism) {\n ;(function (Prism) {\n var coreRules =\n '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'\n Prism.languages.abnf = {\n comment: /;.*/,\n string: {\n pattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n greedy: true,\n inside: {\n punctuation: /^%[is]/\n }\n },\n range: {\n pattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n alias: 'number'\n },\n terminal: {\n pattern:\n /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n alias: 'number'\n },\n repetition: {\n pattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n lookbehind: true,\n alias: 'operator'\n },\n definition: {\n pattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^<>\\r\\n]*>)(?=\\s*=)/m,\n lookbehind: true,\n alias: 'keyword',\n inside: {\n punctuation: /<|>/\n }\n },\n 'core-rule': {\n pattern: RegExp(\n '(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])',\n 'i'\n ),\n lookbehind: true,\n alias: ['rule', 'constant'],\n inside: {\n punctuation: /<|>/\n }\n },\n rule: {\n pattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^<>\\r\\n]*>/i,\n lookbehind: true,\n inside: {\n punctuation: /<|>/\n }\n },\n operator: /=\\/?|\\//,\n punctuation: /[()\\[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = actionscript\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\nfunction actionscript(Prism) {\n Prism.languages.actionscript = Prism.languages.extend('javascript', {\n keyword:\n /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/,\n operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n })\n Prism.languages.actionscript['class-name'].alias = 'function' // doesn't work with AS because AS is too complex\n delete Prism.languages.actionscript['parameter']\n delete Prism.languages.actionscript['literal-property']\n if (Prism.languages.markup) {\n Prism.languages.insertBefore('actionscript', 'string', {\n xml: {\n pattern:\n /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n lookbehind: true,\n inside: Prism.languages.markup\n }\n })\n }\n}\n","'use strict'\n\nmodule.exports = ada\nada.displayName = 'ada'\nada.aliases = []\nfunction ada(Prism) {\n Prism.languages.ada = {\n comment: /--.*/,\n string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/,\n number: [\n {\n pattern:\n /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n },\n {\n pattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n }\n ],\n 'attr-name': /\\b'\\w+/,\n keyword:\n /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n punctuation: /\\.\\.?|[,;():]/,\n char: /'.'/,\n variable: /\\b[a-z](?:\\w)*\\b/i\n }\n}\n","'use strict'\n\nmodule.exports = agda\nagda.displayName = 'agda'\nagda.aliases = []\nfunction agda(Prism) {\n ;(function (Prism) {\n Prism.languages.agda = {\n comment: /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n punctuation: /[(){}⦃⦄.;@]/,\n 'class-name': {\n pattern: /((?:data|record) +)\\S+/,\n lookbehind: true\n },\n function: {\n pattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n lookbehind: true\n },\n operator: {\n pattern: /(^\\s*|\\s)(?:[=|:∀→λ\\\\?_]|->)(?=\\s)/,\n lookbehind: true\n },\n keyword:\n /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = al\nal.displayName = 'al'\nal.aliases = []\nfunction al(Prism) {\n // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n Prism.languages.al = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n function: {\n pattern:\n /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true\n },\n keyword: [\n // keywords\n /\\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\\b/i, // objects and metadata that are used like keywords\n /\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n ],\n number:\n /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|LL?|U(?:LL?)?)?\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n variable: /\\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\\b/,\n 'class-name':\n /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n operator: /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n punctuation: /[()\\[\\]{}:.;,]/\n }\n}\n","'use strict'\n\nmodule.exports = antlr4\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\nfunction antlr4(Prism) {\n Prism.languages.antlr4 = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n string: {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n greedy: true\n },\n 'character-class': {\n pattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n greedy: true,\n alias: 'regex',\n inside: {\n range: {\n pattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n lookbehind: true,\n alias: 'punctuation'\n },\n escape:\n /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n punctuation: /[\\[\\]]/\n }\n },\n action: {\n pattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n greedy: true,\n inside: {\n content: {\n // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n pattern: /(\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true\n },\n punctuation: /[{}]/\n }\n },\n command: {\n pattern:\n /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n lookbehind: true,\n inside: {\n function: /\\b\\w+(?=\\s*(?:[,(]|$))/,\n punctuation: /[,()]/\n }\n },\n annotation: {\n pattern: /@\\w+(?:::\\w+)*/,\n alias: 'keyword'\n },\n label: {\n pattern: /#[ \\t]*\\w+/,\n alias: 'punctuation'\n },\n keyword:\n /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n definition: [\n {\n pattern: /\\b[a-z]\\w*(?=\\s*:)/,\n alias: ['rule', 'class-name']\n },\n {\n pattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n alias: ['token', 'constant']\n }\n ],\n constant: /\\b[A-Z][A-Z_]*\\b/,\n operator: /\\.\\.|->|[|~]|[*+?]\\??/,\n punctuation: /[;:()=]/\n }\n Prism.languages.g4 = Prism.languages.antlr4\n}\n","'use strict'\n\nmodule.exports = apacheconf\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\nfunction apacheconf(Prism) {\n Prism.languages.apacheconf = {\n comment: /#.*/,\n 'directive-inline': {\n pattern:\n /(^[\\t ]*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n lookbehind: true,\n alias: 'property'\n },\n 'directive-block': {\n pattern:\n /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n inside: {\n 'directive-block': {\n pattern: /^<\\/?\\w+/,\n inside: {\n punctuation: /^<\\/?/\n },\n alias: 'tag'\n },\n 'directive-block-parameter': {\n pattern: /.*[^>]/,\n inside: {\n punctuation: /:/,\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n }\n },\n alias: 'attr-value'\n },\n punctuation: />/\n },\n alias: 'tag'\n },\n 'directive-flags': {\n pattern: /\\[(?:[\\w=],?)+\\]/,\n alias: 'keyword'\n },\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n },\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n regex: /\\^?.*\\$|\\^.*\\$?/\n }\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = apex\napex.displayName = 'apex'\napex.aliases = []\nfunction apex(Prism) {\n Prism.register(refractorSql)\n ;(function (Prism) {\n var keywords =\n /\\b(?:(?:after|before)(?=\\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\\s+sharing)\\b/i\n var className =\n /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n /** @param {string} pattern */\n function insertClassName(pattern) {\n return RegExp(\n pattern.replace(/<CLASS-NAME>/g, function () {\n return className\n }),\n 'i'\n )\n }\n var classNameInside = {\n keyword: keywords,\n punctuation: /[()\\[\\]{};,:.<>]/\n }\n Prism.languages.apex = {\n comment: Prism.languages.clike.comment,\n string: Prism.languages.clike.string,\n sql: {\n pattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n lookbehind: true,\n greedy: true,\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n annotation: {\n pattern: /@\\w+\\b/,\n alias: 'punctuation'\n },\n 'class-name': [\n {\n pattern: insertClassName(\n /(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>/\n .source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // cast\n pattern: insertClassName(\n /(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])/.source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // variable/parameter declaration and return types\n pattern: insertClassName(/<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])/.source),\n inside: classNameInside\n }\n ],\n trigger: {\n pattern: /(\\btrigger\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n keyword: keywords,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n operator:\n /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,\n punctuation: /[()\\[\\]{};,.]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = apl\napl.displayName = 'apl'\napl.aliases = []\nfunction apl(Prism) {\n Prism.languages.apl = {\n comment: /(?:⍝|#[! ]).*$/m,\n string: {\n pattern: /'(?:[^'\\r\\n]|'')*'/,\n greedy: true\n },\n number:\n /¯?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+)?|¯|∞)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+)?|¯|∞))?/i,\n statement: /:[A-Z][a-z][A-Za-z]*\\b/,\n 'system-function': {\n pattern: /⎕[A-Z]+/i,\n alias: 'function'\n },\n constant: /[⍬⌾#⎕⍞]/,\n function: /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,\n 'monadic-operator': {\n pattern: /[\\\\\\/⌿⍀¨⍨⌶&∥]/,\n alias: 'operator'\n },\n 'dyadic-operator': {\n pattern: /[.⍣⍠⍤∘⌸@⌺⍥]/,\n alias: 'operator'\n },\n assignment: {\n pattern: /←/,\n alias: 'keyword'\n },\n punctuation: /[\\[;\\]()◇⋄]/,\n dfn: {\n pattern: /[{}⍺⍵⍶⍹∇⍫:]/,\n alias: 'builtin'\n }\n }\n}\n","'use strict'\n\nmodule.exports = applescript\napplescript.displayName = 'applescript'\napplescript.aliases = []\nfunction applescript(Prism) {\n Prism.languages.applescript = {\n comment: [\n // Allow one level of nesting\n /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n /--.+/,\n /#.+/\n ],\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n operator: [\n /[&=≠≤≥*+\\-\\/÷^]|[<>]=?/,\n /\\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\\b/\n ],\n keyword:\n /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n 'class-name':\n /\\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\\b/,\n punctuation: /[{}():,¬«»《》]/\n }\n}\n","'use strict'\n\nmodule.exports = aql\naql.displayName = 'aql'\naql.aliases = []\nfunction aql(Prism) {\n Prism.languages.aql = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n property: {\n pattern:\n /([{,]\\s*)(?:(?!\\d)\\w+|([\"'´`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /([´`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n variable: /@@?\\w+/,\n keyword: [\n {\n pattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n lookbehind: true\n },\n /\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\\b/i, // pseudo keywords get a lookbehind to avoid false positives\n {\n pattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n lookbehind: true\n },\n {\n pattern: /\\bOPTIONS(?=\\s*\\{)/i\n }\n ],\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n boolean: /\\b(?:false|true)\\b/i,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n number: [\n /\\b0b[01]+/i,\n /\\b0x[0-9a-f]+/i,\n /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i\n ],\n operator: /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n punctuation: /::|[?.:,;()[\\]{}]/\n }\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = arduino\narduino.displayName = 'arduino'\narduino.aliases = ['ino']\nfunction arduino(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.arduino = Prism.languages.extend('cpp', {\n keyword:\n /\\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\\b/,\n constant:\n /\\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\\b/,\n builtin:\n /\\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\\b/\n })\n Prism.languages.ino = Prism.languages.arduino\n}\n","'use strict'\n\nmodule.exports = arff\narff.displayName = 'arff'\narff.aliases = []\nfunction arff(Prism) {\n Prism.languages.arff = {\n comment: /%.*/,\n string: {\n pattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: /@(?:attribute|data|end|relation)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n punctuation: /[{},]/\n }\n}\n","'use strict'\n\nmodule.exports = asciidoc\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\nfunction asciidoc(Prism) {\n ;(function (Prism) {\n var attributes = {\n pattern:\n /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n lookbehind: true,\n inside: {\n quoted: {\n pattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n inside: {\n punctuation: /^[$`]|[$`]$/\n }\n },\n interpreted: {\n pattern: /'(?:[^'\\\\]|\\\\.)*'/,\n inside: {\n punctuation: /^'|'$/ // See rest below\n }\n },\n string: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n variable: /\\w+(?==)/,\n punctuation: /^\\[|\\]$|,/,\n operator: /=/,\n // The negative look-ahead prevents blank matches\n 'attr-value': /(?!^\\s+$).+/\n }\n }\n var asciidoc = (Prism.languages.asciidoc = {\n 'comment-block': {\n pattern: /^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,\n alias: 'comment'\n },\n table: {\n pattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n inside: {\n specifiers: {\n pattern:\n /(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*](?:[<^>](?:\\.[<^>])?|\\.[<^>])?|[<^>](?:\\.[<^>])?|\\.[<^>])[a-z]*|[a-z]+)(?=\\|)/,\n alias: 'attr-value'\n },\n punctuation: {\n pattern: /(^|[^\\\\])[|!]=*/,\n lookbehind: true\n } // See rest below\n }\n },\n 'passthrough-block': {\n pattern: /^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^\\++|\\++$/ // See rest below\n }\n },\n // Literal blocks and listing blocks\n 'literal-block': {\n pattern: /^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/ // See rest below\n }\n },\n // Sidebar blocks, quote blocks, example blocks and open blocks\n 'other-block': {\n pattern:\n /^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/ // See rest below\n }\n },\n // list-punctuation and list-label must appear before indented-block\n 'list-punctuation': {\n pattern:\n /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'list-label': {\n pattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'indented-block': {\n pattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n lookbehind: true\n },\n comment: /^\\/\\/.*/m,\n title: {\n pattern:\n /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n alias: 'important',\n inside: {\n punctuation: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/ // See rest below\n }\n },\n 'attribute-entry': {\n pattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n alias: 'tag'\n },\n attributes: attributes,\n hr: {\n pattern: /^'{3,}$/m,\n alias: 'punctuation'\n },\n 'page-break': {\n pattern: /^<{3,}$/m,\n alias: 'punctuation'\n },\n admonition: {\n pattern: /^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,\n alias: 'keyword'\n },\n callout: [\n {\n pattern: /(^[ \\t]*)<?\\d*>/m,\n lookbehind: true,\n alias: 'symbol'\n },\n {\n pattern: /<\\d+>/,\n alias: 'symbol'\n }\n ],\n macro: {\n pattern:\n /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: {\n function: /^[a-z\\d-]+(?=:)/,\n punctuation: /^::?/,\n attributes: {\n pattern: /(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: attributes.inside\n }\n }\n },\n inline: {\n /*\nThe initial look-behind prevents the highlighting of escaped quoted text.\nQuoted text can be multi-line but cannot span an empty line.\nAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\nFirst, we handle the constrained quotes.\nThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\nThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\nThen we handle the unconstrained quotes.\nThose do not have the restrictions of the constrained quotes.\nThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))\n*/\n pattern:\n /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n lookbehind: true,\n inside: {\n attributes: attributes,\n url: {\n pattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n inside: {\n punctuation: /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n }\n },\n 'attribute-ref': {\n pattern: /^\\{.+\\}$/,\n inside: {\n variable: {\n pattern: /(^\\{)[a-z\\d,+_-]+/,\n lookbehind: true\n },\n operator: /^[=?!#%@$]|!(?=[:}])/,\n punctuation: /^\\{|\\}$|::?/\n }\n },\n italic: {\n pattern: /^(['_])[\\s\\S]+\\1$/,\n inside: {\n punctuation: /^(?:''?|__?)|(?:''?|__?)$/\n }\n },\n bold: {\n pattern: /^\\*[\\s\\S]+\\*$/,\n inside: {\n punctuation: /^\\*\\*?|\\*\\*?$/\n }\n },\n punctuation:\n /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n }\n },\n replacement: {\n pattern: /\\((?:C|R|TM)\\)/,\n alias: 'builtin'\n },\n entity: /&#?[\\da-z]{1,8};/i,\n 'line-continuation': {\n pattern: /(^| )\\+$/m,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Allow some nesting. There is no recursion though, so cloning should not be needed.\n function copyFromAsciiDoc(keys) {\n keys = keys.split(' ')\n var o = {}\n for (var i = 0, l = keys.length; i < l; i++) {\n o[keys[i]] = asciidoc[keys[i]]\n }\n return o\n }\n attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n )\n asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro')\n asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout')\n asciidoc['table'].inside.rest = copyFromAsciiDoc(\n 'comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'\n )\n asciidoc['other-block'].inside.rest = copyFromAsciiDoc(\n 'table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'\n )\n asciidoc['title'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n ) // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n }\n })\n Prism.languages.adoc = Prism.languages.asciidoc\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = asm6502\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\nfunction asm6502(Prism) {\n Prism.languages.asm6502 = {\n comment: /;.*/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'property'\n },\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n 'op-code': {\n pattern:\n /\\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\\b/,\n alias: 'keyword'\n },\n 'hex-number': {\n pattern: /#?\\$[\\da-f]{1,4}\\b/i,\n alias: 'number'\n },\n 'binary-number': {\n pattern: /#?%[01]+\\b/,\n alias: 'number'\n },\n 'decimal-number': {\n pattern: /#?\\b\\d+\\b/,\n alias: 'number'\n },\n register: {\n pattern: /\\b[xya]\\b/i,\n alias: 'variable'\n },\n punctuation: /[(),:]/\n }\n}\n","'use strict'\n\nmodule.exports = asmatmel\nasmatmel.displayName = 'asmatmel'\nasmatmel.aliases = []\nfunction asmatmel(Prism) {\n Prism.languages.asmatmel = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n constant: /\\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\\d|[0-2]\\d|3[01]))\\b/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'property'\n },\n 'r-register': {\n pattern: /\\br(?:\\d|[12]\\d|3[01])\\b/,\n alias: 'variable'\n },\n 'op-code': {\n pattern:\n /\\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\\b/,\n alias: 'keyword'\n },\n 'hex-number': {\n pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n alias: 'number'\n },\n 'binary-number': {\n pattern: /#?%[01]+\\b/,\n alias: 'number'\n },\n 'decimal-number': {\n pattern: /#?\\b\\d+\\b/,\n alias: 'number'\n },\n register: {\n pattern: /\\b[acznvshtixy]\\b/i,\n alias: 'variable'\n },\n operator: />>=?|<<=?|&&?|\\|\\|?|[-+*/%&|^!=<>?]=?/,\n punctuation: /[(),:]/\n }\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = aspnet\naspnet.displayName = 'aspnet'\naspnet.aliases = []\nfunction aspnet(Prism) {\n Prism.register(refractorCsharp)\n Prism.languages.aspnet = Prism.languages.extend('markup', {\n 'page-directive': {\n pattern: /<%\\s*@.*%>/,\n alias: 'tag',\n inside: {\n 'page-directive': {\n pattern:\n /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n alias: 'tag'\n },\n rest: Prism.languages.markup.tag.inside\n }\n },\n directive: {\n pattern: /<%.*%>/,\n alias: 'tag',\n inside: {\n directive: {\n pattern: /<%\\s*?[$=%#:]{0,2}|%>/,\n alias: 'tag'\n },\n rest: Prism.languages.csharp\n }\n }\n }) // Regexp copied from prism-markup, with a negative look-ahead added\n Prism.languages.aspnet.tag.pattern =\n /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/ // match directives of attribute value foo=\"<% Bar %>\"\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n directive: Prism.languages.aspnet['directive']\n },\n Prism.languages.aspnet.tag.inside['attr-value']\n )\n Prism.languages.insertBefore('aspnet', 'comment', {\n 'asp-comment': {\n pattern: /<%--[\\s\\S]*?--%>/,\n alias: ['asp', 'comment']\n }\n }) // script runat=\"server\" contains csharp, not javascript\n Prism.languages.insertBefore(\n 'aspnet',\n Prism.languages.javascript ? 'script' : 'tag',\n {\n 'asp-script': {\n pattern:\n /(<script(?=.*runat=['\"]?server\\b)[^>]*>)[\\s\\S]*?(?=<\\/script>)/i,\n lookbehind: true,\n alias: ['asp', 'script'],\n inside: Prism.languages.csharp || {}\n }\n }\n )\n}\n","'use strict'\n\nmodule.exports = autohotkey\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\nfunction autohotkey(Prism) {\n // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\n Prism.languages.autohotkey = {\n comment: [\n {\n pattern: /(^|\\s);.*/,\n lookbehind: true\n },\n {\n pattern:\n /(^[\\t ]*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n lookbehind: true,\n greedy: true\n }\n ],\n tag: {\n // labels\n pattern: /^([ \\t]*)[^\\s,`\":]+(?=:[ \\t]*$)/m,\n lookbehind: true\n },\n string: /\"(?:[^\"\\n\\r]|\"\")*\"/,\n variable: /%\\w+%/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator:\n /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n selector:\n /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n constant:\n /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\\b/i,\n builtin:\n /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\\b/i,\n symbol:\n /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n important:\n /#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\\b/i,\n keyword:\n /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n function: /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+(?=\\()/,\n punctuation: /[{}[\\]():,]/\n }\n}\n","'use strict'\n\nmodule.exports = autoit\nautoit.displayName = 'autoit'\nautoit.aliases = []\nfunction autoit(Prism) {\n Prism.languages.autoit = {\n comment: [\n /;.*/,\n {\n // The multi-line comments delimiters can actually be commented out with \";\"\n pattern:\n /(^[\\t ]*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:ce|comments-end)/m,\n lookbehind: true\n }\n ],\n url: {\n pattern: /(^[\\t ]*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n greedy: true,\n inside: {\n variable: /([%$@])\\w+\\1/\n }\n },\n directive: {\n pattern: /(^[\\t ]*)#[\\w-]+/m,\n lookbehind: true,\n alias: 'keyword'\n },\n function: /\\b\\w+(?=\\()/,\n // Variables and macros\n variable: /[$@]\\w+/,\n keyword:\n /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n boolean: /\\b(?:False|True)\\b/i,\n operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[\\[\\]().,:]/\n }\n}\n","'use strict'\n\nmodule.exports = avisynth\navisynth.displayName = 'avisynth'\navisynth.aliases = ['avs']\nfunction avisynth(Prism) {\n // http://avisynth.nl/index.php/The_full_AviSynth_grammar\n ;(function (Prism) {\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return replacements[+index]\n })\n }\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n var types = /bool|clip|float|int|string|val/.source\n var internals = [\n // bools\n /is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/\n .source, // control\n /apply|assert|default|eval|import|nop|select|undefined/.source, // global\n /opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/\n .source, // conv\n /hex(?:value)?|value/.source, // numeric\n /abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/\n .source, // trig\n /a?sinh?|a?cosh?|a?tan[2h]?/.source, // bit\n /(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/\n .source, // runtime\n /average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/\n .source, // script\n /getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/\n .source, // string\n /chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/\n .source, // version\n /isversionorgreater|version(?:number|string)/.source, // helper\n /buildpixeltype|colorspacenametopixeltype/.source, // avsplus\n /addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source\n ].join('|')\n var properties = [\n // content\n /has(?:audio|video)/.source, // resolution\n /height|width/.source, // framerate\n /frame(?:count|rate)|framerate(?:denominator|numerator)/.source, // interlacing\n /getparity|is(?:field|frame)based/.source, // color format\n /bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/\n .source, // audio\n /audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/\n .source\n ].join('|')\n var filters = [\n // source\n /avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/\n .source, // color\n /coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/\n .source, // overlay\n /(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source, // geometry\n /addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/\n .source, // pixel\n /blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/\n .source, // timeline\n /trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/\n .source, // interlace\n /assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/\n .source, // audio\n /amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/\n .source, // conditional\n /animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/\n .source, // export\n /imagewriter/.source, // debug\n /blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/\n .source\n ].join('|')\n var allinternals = [internals, properties, filters].join('|')\n Prism.languages.avisynth = {\n comment: [\n {\n // Matches [* *] nestable block comments, but only supports 1 level of nested comments\n // /\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|<self>)*\\*\\]/\n pattern:\n /(^|[^\\\\])\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\]))*\\*\\])*\\*\\]/,\n lookbehind: true,\n greedy: true\n },\n {\n // Matches /* */ block comments\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n // Matches # comments\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // Handle before strings because optional arguments are surrounded by double quotes\n argument: {\n pattern: re(/\\b(?:<<0>>)\\s+(\"?)\\w+\\1/.source, [types], 'i'),\n inside: {\n keyword: /^\\w+/\n }\n },\n // Optional argument assignment\n 'argument-label': {\n pattern: /([,(][\\s\\\\]*)\\w+\\s*=(?!=)/,\n lookbehind: true,\n inside: {\n 'argument-name': {\n pattern: /^\\w+/,\n alias: 'punctuation'\n },\n punctuation: /=$/\n }\n },\n string: [\n {\n // triple double-quoted\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n // single double-quoted\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true,\n inside: {\n constant: {\n // These *are* case-sensitive!\n pattern:\n /\\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\\b/\n }\n }\n }\n ],\n // The special \"last\" variable that takes the value of the last implicitly returned clip\n variable: /\\b(?:last)\\b/i,\n boolean: /\\b(?:false|no|true|yes)\\b/i,\n keyword:\n /\\b(?:catch|else|for|function|global|if|return|try|while|__END__)\\b/i,\n constant: /\\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\\b/,\n // AviSynth's internal functions, filters, and properties\n 'builtin-function': {\n pattern: re(/\\b(?:<<0>>)\\b/.source, [allinternals], 'i'),\n alias: 'function'\n },\n 'type-cast': {\n pattern: re(/\\b(?:<<0>>)(?=\\s*\\()/.source, [types], 'i'),\n alias: 'keyword'\n },\n // External/user-defined filters\n function: {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()|(\\.)[a-z_]\\w*\\b/i,\n lookbehind: true\n },\n // Matches a \\ as the first or last character on a line\n 'line-continuation': {\n pattern: /(^[ \\t]*)\\\\|\\\\(?=[ \\t]*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n number:\n /\\B\\$(?:[\\da-f]{6}|[\\da-f]{8})\\b|(?:(?:\\b|\\B-)\\d+(?:\\.\\d*)?\\b|\\B\\.\\d+\\b)/i,\n operator: /\\+\\+?|[!=<>]=?|&&|\\|\\||[?:*/%-]/,\n punctuation: /[{}\\[\\]();,.]/\n }\n Prism.languages.avs = Prism.languages.avisynth\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = avroIdl\navroIdl.displayName = 'avroIdl'\navroIdl.aliases = []\nfunction avroIdl(Prism) {\n // GitHub: https://github.com/apache/avro\n // Docs: https://avro.apache.org/docs/current/idl.html\n Prism.languages['avro-idl'] = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n annotation: {\n pattern: /@(?:[$\\w.-]|`[^\\r\\n`]+`)+/,\n greedy: true,\n alias: 'function'\n },\n 'function-identifier': {\n pattern: /`[^\\r\\n`]+`(?=\\s*\\()/,\n greedy: true,\n alias: 'function'\n },\n identifier: {\n pattern: /`[^\\r\\n`]+`/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:enum|error|protocol|record|throws)\\b\\s+)[$\\w]+/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: [\n {\n pattern:\n /(^|[^\\w.])-?(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|0x(?:[a-f0-9]+(?:\\.[a-f0-9]*)?|\\.[a-f0-9]+)(?:p[+-]?\\d+)?)[dfl]?(?![\\w.])/i,\n lookbehind: true\n },\n /-?\\b(?:Infinity|NaN)\\b/\n ],\n operator: /=/,\n punctuation: /[()\\[\\]{}<>.:,;-]/\n }\n Prism.languages.avdl = Prism.languages['avro-idl']\n}\n","'use strict'\n\nmodule.exports = bash\nbash.displayName = 'bash'\nbash.aliases = ['shell']\nfunction bash(Prism) {\n ;(function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars =\n '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n }\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [\n // [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [\n {\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n },\n /^\\$\\(\\(/\n ],\n number:\n /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator:\n /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n }, // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n }, // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n },\n /\\$(?:\\w+|[#?*!@$])/\n ],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity:\n /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n }\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [\n // a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {”\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n },\n {\n // b)\n pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }\n ],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=” and “+=”).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n string: [\n // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, // Here-document with quotes around the tag\n // → No expansion (so no “inside”).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n }, // “Normal” string\n {\n // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n pattern: /(^|[^$\\\\])'[^']*'/,\n lookbehind: true,\n greedy: true\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n entity: insideString.entity\n }\n }\n ],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern:\n /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n }\n commandAfterHeredoc.inside = Prism.languages.bash\n /* Patterns in command substitution. */\n var toBeCopied = [\n 'comment',\n 'function-name',\n 'for-or-select',\n 'assign-left',\n 'string',\n 'environment',\n 'function',\n 'keyword',\n 'builtin',\n 'boolean',\n 'file-descriptor',\n 'operator',\n 'punctuation',\n 'number'\n ]\n var inside = insideString.variable[1].inside\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n }\n Prism.languages.shell = Prism.languages.bash\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = basic\nbasic.displayName = 'basic'\nbasic.aliases = []\nfunction basic(Prism) {\n Prism.languages.basic = {\n comment: {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n greedy: true\n },\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n function:\n /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n punctuation: /[,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = batch\nbatch.displayName = 'batch'\nbatch.aliases = []\nfunction batch(Prism) {\n ;(function (Prism) {\n var variable = /%%?[~:\\w]+%?|!\\S+!/\n var parameter = {\n pattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n alias: 'attr-name',\n inside: {\n punctuation: /:/\n }\n }\n var string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/\n var number = /(?:\\b|-)\\d+\\b/\n Prism.languages.batch = {\n comment: [\n /^::.*/m,\n {\n pattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true\n }\n ],\n label: {\n pattern: /^:.*/m,\n alias: 'property'\n },\n command: [\n {\n // FOR command\n pattern:\n /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:do|in)\\b|^for\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n punctuation: /[()',]/\n }\n },\n {\n // IF command\n pattern:\n /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n lookbehind: true,\n inside: {\n keyword:\n /\\b(?:cmdextversion|defined|errorlevel|exist|not)\\b|^if\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n operator: /\\^|==|\\b(?:equ|geq|gtr|leq|lss|neq)\\b/i\n }\n },\n {\n // ELSE command\n pattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n lookbehind: true,\n inside: {\n keyword: /^else\\b/i\n }\n },\n {\n // SET command\n pattern:\n /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n inside: {\n keyword: /^set\\b/i,\n string: string,\n parameter: parameter,\n variable: [variable, /\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],\n number: number,\n operator: /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n punctuation: /[()',]/\n }\n },\n {\n // Other commands\n pattern:\n /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/m,\n lookbehind: true,\n inside: {\n keyword: /^\\w+\\b/,\n string: string,\n parameter: parameter,\n label: {\n pattern: /(^\\s*):\\S+/m,\n lookbehind: true,\n alias: 'property'\n },\n variable: variable,\n number: number,\n operator: /\\^/\n }\n }\n ],\n operator: /[&@]/,\n punctuation: /[()']/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = bbcode\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\nfunction bbcode(Prism) {\n Prism.languages.bbcode = {\n tag: {\n pattern:\n /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n inside: {\n tag: {\n pattern: /^\\[\\/?[^\\s=\\]]+/,\n inside: {\n punctuation: /^\\[\\/?/\n }\n },\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ]\n }\n },\n punctuation: /\\]/,\n 'attr-name': /[^\\s=\\]]+/\n }\n }\n }\n Prism.languages.shortcode = Prism.languages.bbcode\n}\n","'use strict'\n\nmodule.exports = bicep\nbicep.displayName = 'bicep'\nbicep.aliases = []\nfunction bicep(Prism) {\n // based loosely upon: https://github.com/Azure/bicep/blob/main/src/textmate/bicep.tmlanguage\n Prism.languages.bicep = {\n comment: [\n {\n // multiline comments eg /* ASDF */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n // singleline comments eg // ASDF\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n property: [\n {\n pattern: /([\\r\\n][ \\t]*)[a-z_]\\w*(?=[ \\t]*:)/i,\n lookbehind: true\n },\n {\n pattern: /([\\r\\n][ \\t]*)'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: /'''[^'][\\s\\S]*?'''/,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'interpolated-string': {\n pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?:(?!\\{)|\\{[^{}\\r\\n]*\\})|[^'\\\\\\r\\n$])*'/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}\\r\\n]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true\n },\n punctuation: /^\\$\\{|\\}$/\n }\n },\n string: /[\\s\\S]+/\n }\n },\n datatype: {\n pattern: /(\\b(?:output|param)\\b[ \\t]+\\w+[ \\t]+)\\w+\\b/,\n lookbehind: true,\n alias: 'class-name'\n },\n boolean: /\\b(?:false|true)\\b/,\n // https://github.com/Azure/bicep/blob/114a3251b4e6e30082a58729f19a8cc4e374ffa6/src/textmate/bicep.tmlanguage#L184\n keyword:\n /\\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\\b/,\n decorator: /@\\w+\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.bicep['interpolated-string'].inside['interpolation'].inside[\n 'expression'\n ].inside = Prism.languages.bicep\n}\n","'use strict'\n\nmodule.exports = birb\nbirb.displayName = 'birb'\nbirb.aliases = []\nfunction birb(Prism) {\n Prism.languages.birb = Prism.languages.extend('clike', {\n string: {\n pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'class-name': [\n /\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/, // matches variable and function return types (parameters as well).\n /\\b(?:[A-Z]\\w*|(?!(?:var|void)\\b)[a-z]\\w*)(?=\\s+\\w+\\s*[;,=()])/\n ],\n keyword:\n /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n variable: /\\b[a-z_]\\w*\\b/\n })\n Prism.languages.insertBefore('birb', 'function', {\n metadata: {\n pattern: /<\\w+>/,\n greedy: true,\n alias: 'symbol'\n }\n })\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = bison\nbison.displayName = 'bison'\nbison.aliases = []\nfunction bison(Prism) {\n Prism.register(refractorC)\n Prism.languages.bison = Prism.languages.extend('c', {})\n Prism.languages.insertBefore('bison', 'comment', {\n bison: {\n // This should match all the beginning of the file\n // including the prologue(s), the bison declarations and\n // the grammar rules.\n pattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n inside: {\n c: {\n // Allow for one level of nested braces\n pattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n inside: {\n delimiter: {\n pattern: /^%?\\{|%?\\}$/,\n alias: 'punctuation'\n },\n 'bison-variable': {\n pattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n alias: 'variable',\n inside: {\n punctuation: /<|>/\n }\n },\n rest: Prism.languages.c\n }\n },\n comment: Prism.languages.c.comment,\n string: Prism.languages.c.string,\n property: /\\S+(?=:)/,\n keyword: /%\\w+/,\n number: {\n pattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n lookbehind: true\n },\n punctuation: /%[%?]|[|:;\\[\\]<>]/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = bnf\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\nfunction bnf(Prism) {\n Prism.languages.bnf = {\n string: {\n pattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n },\n definition: {\n pattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n alias: ['rule', 'keyword'],\n inside: {\n punctuation: /^<|>$/\n }\n },\n rule: {\n pattern: /<[^<>\\r\\n\\t]+>/,\n inside: {\n punctuation: /^<|>$/\n }\n },\n operator: /::=|[|()[\\]{}*+?]|\\.{3}/\n }\n Prism.languages.rbnf = Prism.languages.bnf\n}\n","'use strict'\n\nmodule.exports = brainfuck\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\nfunction brainfuck(Prism) {\n Prism.languages.brainfuck = {\n pointer: {\n pattern: /<|>/,\n alias: 'keyword'\n },\n increment: {\n pattern: /\\+/,\n alias: 'inserted'\n },\n decrement: {\n pattern: /-/,\n alias: 'deleted'\n },\n branching: {\n pattern: /\\[|\\]/,\n alias: 'important'\n },\n operator: /[.,]/,\n comment: /\\S+/\n }\n}\n","'use strict'\n\nmodule.exports = brightscript\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\nfunction brightscript(Prism) {\n Prism.languages.brightscript = {\n comment: /(?:\\brem|').*/i,\n 'directive-statement': {\n pattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n lookbehind: true,\n alias: 'property',\n inside: {\n 'error-message': {\n pattern: /(^#error).+/,\n lookbehind: true\n },\n directive: {\n pattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n alias: 'keyword'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n property: {\n pattern:\n /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\bAs[\\t ]+)\\w+/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/,\n number: /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n operator:\n /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n punctuation: /[.,;()[\\]{}]/,\n constant: /\\b(?:LINE_NUM)\\b/i\n }\n Prism.languages.brightscript['directive-statement'].inside.expression.inside =\n Prism.languages.brightscript\n}\n","'use strict'\n\nmodule.exports = bro\nbro.displayName = 'bro'\nbro.aliases = []\nfunction bro(Prism) {\n Prism.languages.bro = {\n comment: {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n inside: {\n italic: /\\b(?:FIXME|TODO|XXX)\\b/\n }\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n boolean: /\\b[TF]\\b/,\n function: {\n pattern: /(\\b(?:event|function|hook)[ \\t]+)\\w+(?:::\\w+)?/,\n lookbehind: true\n },\n builtin:\n /(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,\n constant: {\n pattern: /(\\bconst[ \\t]+)\\w+/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\\b/,\n operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = bsl\nbsl.displayName = 'bsl'\nbsl.aliases = []\nfunction bsl(Prism) {\n /* eslint-disable no-misleading-character-class */\n // 1C:Enterprise\n // https://github.com/Diversus23/\n //\n Prism.languages.bsl = {\n comment: /\\/\\/.*/,\n string: [\n // Строки\n // Strings\n {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n }, // Дата и время\n // Date & time\n {\n pattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n }\n ],\n keyword: [\n {\n // RU\n pattern:\n /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n },\n {\n // EN\n pattern:\n /\\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\\b/i\n }\n ],\n number: {\n pattern:\n /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n lookbehind: true\n },\n operator: [\n /[<>+\\-*/]=?|[%=]/, // RU\n {\n pattern:\n /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:и|или|не)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n }, // EN\n {\n pattern: /\\b(?:and|not|or)\\b/i\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n directive: [\n // Теги препроцессора вида &Клиент, &Сервер, ...\n // Preprocessor tags of the type &Client, &Server, ...\n {\n pattern: /^([ \\t]*)&.*/m,\n lookbehind: true,\n greedy: true,\n alias: 'important'\n }, // Инструкции препроцессора вида:\n // #Если Сервер Тогда\n // ...\n // #КонецЕсли\n // Preprocessor instructions of the form:\n // #If Server Then\n // ...\n // #EndIf\n {\n pattern: /^([ \\t]*)#.*/gm,\n lookbehind: true,\n greedy: true,\n alias: 'important'\n }\n ]\n }\n Prism.languages.oscript = Prism.languages['bsl']\n}\n","'use strict'\n\nmodule.exports = c\nc.displayName = 'c'\nc.aliases = []\nfunction c(Prism) {\n Prism.languages.c = Prism.languages.extend('clike', {\n comment: {\n pattern:\n /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n string: {\n // https://en.cppreference.com/w/c/language/string_literal\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n lookbehind: true\n },\n keyword:\n /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n })\n Prism.languages.insertBefore('c', 'string', {\n char: {\n // https://en.cppreference.com/w/c/language/character_constant\n pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('c', 'string', {\n macro: {\n // allow for multiline macro definitions\n // spaces after the # character compile fine with gcc\n pattern:\n /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n string: [\n {\n // highlight the path of the include statement as a string\n pattern: /^(#\\s*include\\s*)<[^>]+>/,\n lookbehind: true\n },\n Prism.languages.c['string']\n ],\n char: Prism.languages.c['char'],\n comment: Prism.languages.c['comment'],\n 'macro-name': [\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n lookbehind: true\n },\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n lookbehind: true,\n alias: 'function'\n }\n ],\n // highlight macro directives as keywords\n directive: {\n pattern: /^(#\\s*)[a-z]+/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'directive-hash': /^#/,\n punctuation: /##|\\\\(?=[\\r\\n])/,\n expression: {\n pattern: /\\S[\\s\\S]*/,\n inside: Prism.languages.c\n }\n }\n }\n })\n Prism.languages.insertBefore('c', 'function', {\n // highlight predefined macros as constants\n constant:\n /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n })\n delete Prism.languages.c['boolean']\n}\n","'use strict'\n\nmodule.exports = cfscript\ncfscript.displayName = 'cfscript'\ncfscript.aliases = []\nfunction cfscript(Prism) {\n // https://cfdocs.org/script\n Prism.languages.cfscript = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n inside: {\n annotation: {\n pattern: /(?:^|[^.])@[\\w\\.]+/,\n alias: 'punctuation'\n }\n }\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n keyword:\n /\\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\\b(?!\\s*=)/,\n operator: [\n /\\+\\+|--|&&|\\|\\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\\?(?:\\.|:)?|[?:]/,\n /\\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\\b/\n ],\n scope: {\n pattern:\n /\\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\\b/,\n alias: 'global'\n },\n type: {\n pattern:\n /\\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\\b/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('cfscript', 'keyword', {\n // This must be declared before keyword because we use \"function\" inside the lookahead\n 'function-variable': {\n pattern:\n /[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n }\n })\n delete Prism.languages.cfscript['class-name']\n Prism.languages.cfc = Prism.languages['cfscript']\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = chaiscript\nchaiscript.displayName = 'chaiscript'\nchaiscript.aliases = []\nfunction chaiscript(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.chaiscript = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n {\n // e.g. class Rectangle { ... }\n pattern: /(\\bclass\\s+)\\w+/,\n lookbehind: true\n },\n {\n // e.g. attr Rectangle::height, def Rectangle::area() { ... }\n pattern: /(\\b(?:attr|def)\\s+)\\w+(?=\\s*::)/,\n lookbehind: true\n }\n ],\n keyword:\n /\\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\\b/,\n number: [Prism.languages.cpp.number, /\\b(?:Infinity|NaN)\\b/],\n operator:\n />>=?|<<=?|\\|\\||&&|:[:=]?|--|\\+\\+|[=!<>+\\-*/%|&^]=?|[?~]|`[^`\\r\\n]{1,4}`/\n })\n Prism.languages.insertBefore('chaiscript', 'operator', {\n 'parameter-type': {\n // e.g. def foo(int x, Vector y) {...}\n pattern: /([,(]\\s*)\\w+(?=\\s+\\w)/,\n lookbehind: true,\n alias: 'class-name'\n }\n })\n Prism.languages.insertBefore('chaiscript', 'string', {\n 'string-interpolation': {\n pattern:\n /(^|[^\\\\])\"(?:[^\"$\\\\]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-expression': {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.chaiscript\n },\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = cil\ncil.displayName = 'cil'\ncil.aliases = []\nfunction cil(Prism) {\n Prism.languages.cil = {\n comment: /\\/\\/.*/,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n directive: {\n pattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n lookbehind: true,\n alias: 'class-name'\n },\n // Actually an assembly reference\n variable: /\\[[\\w\\.]+\\]/,\n keyword:\n /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n function:\n /\\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.\\d+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.\\d+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|castclass|ldvirtftn|beq(?:\\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b-?(?:0x[0-9a-f]+|\\d+)(?:\\.[0-9a-f]+)?\\b/i,\n punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n }\n}\n","'use strict'\n\nmodule.exports = clike\nclike.displayName = 'clike'\nclike.aliases = []\nfunction clike(Prism) {\n Prism.languages.clike = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = clojure\nclojure.displayName = 'clojure'\nclojure.aliases = []\nfunction clojure(Prism) {\n // Copied from https://github.com/jeluard/prism-clojure\n Prism.languages.clojure = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n char: /\\\\\\w+/,\n symbol: {\n pattern: /(^|[\\s()\\[\\]{},])::?[\\w*+!?'<>=/.-]+/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(\\()(?:-|->|->>|\\.|\\.\\.|\\*|\\/|\\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[\\s)]|$)/,\n lookbehind: true\n },\n boolean: /\\b(?:false|nil|true)\\b/,\n number: {\n pattern:\n /(^|[^\\w$@])(?:\\d+(?:[/.]\\d+)?(?:e[+-]?\\d+)?|0x[a-f0-9]+|[1-9]\\d?r[a-z0-9]+)[lmn]?(?![\\w$@])/i,\n lookbehind: true\n },\n function: {\n pattern: /((?:^|[^'])\\()[\\w*+!?'<>=/.-]+(?=[\\s)]|$)/,\n lookbehind: true\n },\n operator: /[#@^`~]/,\n punctuation: /[{}\\[\\](),]/\n }\n}\n","'use strict'\n\nmodule.exports = cmake\ncmake.displayName = 'cmake'\ncmake.aliases = []\nfunction cmake(Prism) {\n Prism.languages.cmake = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{(?:[^{}$]|\\$\\{[^{}$]*\\})*\\}/,\n inside: {\n punctuation: /\\$\\{|\\}/,\n variable: /\\w+/\n }\n }\n }\n },\n variable:\n /\\b(?:CMAKE_\\w+|\\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\\b/,\n property:\n /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n keyword:\n /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n boolean: /\\b(?:FALSE|OFF|ON|TRUE)\\b/,\n namespace:\n /\\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\\b/,\n operator:\n /\\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\\b/,\n inserted: {\n pattern: /\\b\\w+::\\w+\\b/,\n alias: 'class-name'\n },\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n punctuation: /[()>}]|\\$[<{]/\n }\n}\n","'use strict'\n\nmodule.exports = cobol\ncobol.displayName = 'cobol'\ncobol.aliases = []\nfunction cobol(Prism) {\n Prism.languages.cobol = {\n comment: {\n pattern: /\\*>.*|(^[ \\t]*)\\*.*/m,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /[xzgn]?(?:\"(?:[^\\r\\n\"]|\"\")*\"(?!\")|'(?:[^\\r\\n']|'')*'(?!'))/i,\n greedy: true\n },\n level: {\n pattern: /(^[ \\t]*)\\d+\\b/m,\n lookbehind: true,\n greedy: true,\n alias: 'number'\n },\n 'class-name': {\n // https://github.com/antlr/grammars-v4/blob/42edd5b687d183b5fa679e858a82297bd27141e7/cobol85/Cobol85.g4#L1015\n pattern:\n /(\\bpic(?:ture)?\\s+)(?:(?:[-\\w$/,:*+<>]|\\.(?!\\s|$))(?:\\(\\d+\\))?)+/i,\n lookbehind: true,\n inside: {\n number: {\n pattern: /(\\()\\d+/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n keyword: {\n pattern:\n /(^|[^\\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\\w-])/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^\\w-])(?:false|true)(?![\\w-])/i,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^\\w-])(?:[+-]?(?:(?:\\d+(?:[.,]\\d+)?|[.,]\\d+)(?:e[+-]?\\d+)?|zero))(?![\\w-])/i,\n lookbehind: true\n },\n operator: [\n /<>|[<>]=?|[=+*/&]/,\n {\n pattern: /(^|[^\\w-])(?:-|and|equal|greater|less|not|or|than)(?![\\w-])/i,\n lookbehind: true\n }\n ],\n punctuation: /[.:,()]/\n }\n}\n","'use strict'\n\nmodule.exports = coffeescript\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\nfunction coffeescript(Prism) {\n ;(function (Prism) {\n // Ignore comments starting with { to privilege string interpolation highlighting\n var comment = /#(?!\\{).+/\n var interpolation = {\n pattern: /#\\{[^}]+\\}/,\n alias: 'variable'\n }\n Prism.languages.coffeescript = Prism.languages.extend('javascript', {\n comment: comment,\n string: [\n // Strings are multiline\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n greedy: true\n },\n {\n // Strings are multiline\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n }\n ],\n keyword:\n /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n 'class-member': {\n pattern: /@(?!\\d)\\w+/,\n alias: 'variable'\n }\n })\n Prism.languages.insertBefore('coffeescript', 'comment', {\n 'multiline-comment': {\n pattern: /###[\\s\\S]+?###/,\n alias: 'comment'\n },\n // Block regexp can contain comments and interpolation\n 'block-regex': {\n pattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n alias: 'regex',\n inside: {\n comment: comment,\n interpolation: interpolation\n }\n }\n })\n Prism.languages.insertBefore('coffeescript', 'string', {\n 'inline-javascript': {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n },\n script: {\n pattern: /[\\s\\S]+/,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n }\n }\n },\n // Block strings\n 'multiline-string': [\n {\n pattern: /'''[\\s\\S]*?'''/,\n greedy: true,\n alias: 'string'\n },\n {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string',\n inside: {\n interpolation: interpolation\n }\n }\n ]\n })\n Prism.languages.insertBefore('coffeescript', 'keyword', {\n // Object property\n property: /(?!\\d)\\w+(?=\\s*:(?!:))/\n })\n delete Prism.languages.coffeescript['template-string']\n Prism.languages.coffee = Prism.languages.coffeescript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = concurnas\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\nfunction concurnas(Prism) {\n Prism.languages.concurnas = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n langext: {\n pattern: /\\b\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n greedy: true,\n inside: {\n 'class-name': /^\\w+/,\n string: {\n pattern: /(^\\s*\\|\\|)[\\s\\S]+(?=\\|\\|$)/,\n lookbehind: true\n },\n punctuation: /\\|\\|/\n }\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n lookbehind: true\n },\n keyword:\n /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number:\n /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n punctuation: /[{}[\\];(),.:]/,\n operator:\n /<==|>==|=>|->|<-|<>|&==|&<>|\\?:?|\\.\\?|\\+\\+|--|[-+*/=<>]=?|[!^~]|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n annotation: {\n pattern: /@(?:\\w+:)?(?:\\w+|\\[[^\\]]+\\])?/,\n alias: 'builtin'\n }\n }\n Prism.languages.insertBefore('concurnas', 'langext', {\n 'regex-literal': {\n pattern: /\\br(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n regex: /[\\s\\S]+/\n }\n },\n 'string-literal': {\n pattern: /(?:\\B|\\bs)(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.conc = Prism.languages.concurnas\n}\n","'use strict'\n\nmodule.exports = coq\ncoq.displayName = 'coq'\ncoq.aliases = []\nfunction coq(Prism) {\n ;(function (Prism) {\n // https://github.com/coq/coq\n var commentSource = /\\(\\*(?:[^(*]|\\((?!\\*)|\\*(?!\\))|<self>)*\\*\\)/.source\n for (var i = 0; i < 2; i++) {\n commentSource = commentSource.replace(/<self>/g, function () {\n return commentSource\n })\n }\n commentSource = commentSource.replace(/<self>/g, '[]')\n Prism.languages.coq = {\n comment: RegExp(commentSource),\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n attribute: [\n {\n pattern: RegExp(\n /#\\[(?:[^\\[\\](\"]|\"(?:[^\"]|\"\")*\"(?!\")|\\((?!\\*)|<comment>)*\\]/.source.replace(\n /<comment>/g,\n function () {\n return commentSource\n }\n )\n ),\n greedy: true,\n alias: 'attr-name',\n inside: {\n comment: RegExp(commentSource),\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n operator: /=/,\n punctuation: /^#\\[|\\]$|[,()]/\n }\n },\n {\n pattern:\n /\\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\\b/,\n alias: 'attr-name'\n }\n ],\n keyword:\n /\\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\\b/,\n number:\n /\\b(?:0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]+)?(?:p[+-]?\\d[\\d_]*)?|\\d[\\d_]*(?:\\.[\\d_]+)?(?:e[+-]?\\d[\\d_]*)?)\\b/i,\n punct: {\n pattern: /@\\{|\\{\\||\\[=|:>/,\n alias: 'punctuation'\n },\n operator:\n /\\/\\\\|\\\\\\/|\\.{2,3}|:{1,2}=|\\*\\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\\|[-|]?|[-!%&*+/<=>?@^~']/,\n punctuation: /\\.\\(|`\\(|@\\{|`\\{|\\{\\||\\[=|:>|[:.,;(){}\\[\\]]/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = cpp\ncpp.displayName = 'cpp'\ncpp.aliases = []\nfunction cpp(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n var keyword =\n /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/\n var modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n Prism.languages.cpp = Prism.languages.extend('c', {\n 'class-name': [\n {\n pattern: RegExp(\n /(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n ),\n lookbehind: true\n }, // This is intended to capture the class name of method implementations like:\n // void foo::bar() const {}\n // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n // it starts with an uppercase letter. This approximation should give decent results.\n /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, // This will capture the class name before destructors like:\n // Foo::~Foo() {}\n /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, // This also intends to capture the class name of method implementations but here the class has template\n // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n ],\n keyword: keyword,\n number: {\n pattern:\n /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n greedy: true\n },\n operator:\n />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n Prism.languages.insertBefore('cpp', 'string', {\n module: {\n // https://en.cppreference.com/w/cpp/language/modules\n pattern: RegExp(\n /(\\b(?:import|module)\\s+)/.source +\n '(?:' + // header-name\n /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\n '|' + // module name or partition or both\n /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(\n /<mod-name>/g,\n function () {\n return modName\n }\n ) +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n string: /^[<\"][\\s\\S]+/,\n operator: /:/,\n punctuation: /\\./\n }\n },\n 'raw-string': {\n pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n alias: 'string',\n greedy: true\n }\n })\n Prism.languages.insertBefore('cpp', 'keyword', {\n 'generic-function': {\n pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n inside: {\n function: /^\\w+/,\n generic: {\n pattern: /<[\\s\\S]+/,\n alias: 'class-name',\n inside: Prism.languages.cpp\n }\n }\n }\n })\n Prism.languages.insertBefore('cpp', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('cpp', 'class-name', {\n // the base clause is an optional list of parent classes\n // https://en.cppreference.com/w/cpp/language/class\n 'base-clause': {\n pattern:\n /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.extend('cpp', {})\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'double-colon',\n {\n // All untokenized words that are not namespaces should be class names\n 'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n },\n Prism.languages.cpp['base-clause']\n )\n })(Prism)\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = crystal\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\nfunction crystal(Prism) {\n Prism.register(refractorRuby)\n ;(function (Prism) {\n Prism.languages.crystal = Prism.languages.extend('ruby', {\n keyword: [\n /\\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\\b/,\n {\n pattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n lookbehind: true\n }\n ],\n number:\n /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/,\n operator: [/->/, Prism.languages.ruby.operator],\n punctuation: /[(){}[\\].,;\\\\]/\n })\n Prism.languages.insertBefore('crystal', 'string-literal', {\n attribute: {\n pattern: /@\\[.*?\\]/,\n inside: {\n delimiter: {\n pattern: /^@\\[|\\]$/,\n alias: 'punctuation'\n },\n attribute: {\n pattern: /^(\\s*)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n args: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.crystal\n }\n }\n },\n expansion: {\n pattern: /\\{(?:\\{.*?\\}|%.*?%)\\}/,\n inside: {\n content: {\n pattern: /^(\\{.)[\\s\\S]+(?=.\\}$)/,\n lookbehind: true,\n inside: Prism.languages.crystal\n },\n delimiter: {\n pattern: /^\\{[\\{%]|[\\}%]\\}$/,\n alias: 'operator'\n }\n }\n },\n char: {\n pattern:\n /'(?:[^\\\\\\r\\n]{1,2}|\\\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\\{[A-Fa-f0-9]{1,6}\\})))'/,\n greedy: true\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csharp\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['dotnet', 'cs']\nfunction csharp(Prism) {\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n } // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n var keywordKinds = {\n // keywords which represent a return or variable type\n type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n // keywords which are used to declare a type\n typeDeclaration: 'class enum interface record struct',\n // contextual keywords\n // (\"var\" and \"dynamic\" are missing because they are used like types)\n contextual:\n 'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n // all other keywords\n other:\n 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n } // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var typeDeclarationKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration\n )\n var keywords = RegExp(\n keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n )\n var nonTypeKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n var nonContextualKeywords = keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.other\n ) // types\n var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2) // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2)\n var name = /@?\\b[A-Za-z_]\\w*\\b/.source\n var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic])\n var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n nonTypeKeywords,\n genericName\n ])\n var array = /\\[\\s*(?:,\\s*)*\\]/.source\n var typeExpressionWithoutTuple = replace(\n /<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source,\n [identifier, array]\n )\n var tupleElement = replace(\n /[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,\n [generic, nestedRound, array]\n )\n var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement])\n var typeExpression = replace(\n /(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source,\n [tuple, identifier, array]\n )\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n } // strings & characters\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source // simplified pattern\n var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source\n var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source\n Prism.languages.csharp = Prism.languages.extend('clike', {\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n // Using static\n // using static System.Math;\n pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [\n identifier\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (type)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n name,\n typeExpression\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (alias)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n lookbehind: true\n },\n {\n // Type declarations\n // class Foo<A, B>\n // interface Foo<out A, B>\n pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n typeDeclarationKeywords,\n genericName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Single catch exception declaration\n // catch(Foo)\n // (things like catch(Foo e) is covered by variable declaration)\n pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Name of the type parameter of generic constraints\n // where Foo : class\n pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n lookbehind: true\n },\n {\n // Casts and checks via as and is.\n // as Foo<A>, is Bar<B>\n // (things like if(a is Foo b) is covered by variable declaration)\n pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [\n typeExpressionWithoutTuple\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Variable, field and parameter declaration\n // (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n pattern: re(\n /\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/\n .source,\n [typeExpression, nonContextualKeywords, name]\n ),\n inside: typeInside\n }\n ],\n keyword: keywords,\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n number:\n /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n operator: />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n punctuation: /\\?\\.?|::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('csharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('csharp', 'punctuation', {\n 'named-parameter': {\n pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n lookbehind: true,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('csharp', 'class-name', {\n namespace: {\n // namespace Foo.Bar {}\n // using Foo.Bar;\n pattern: re(\n /(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source,\n [name]\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n 'type-expression': {\n // default(Foo), typeof(Foo<Bar>), sizeof(int)\n pattern: re(\n /(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/\n .source,\n [nestedRound]\n ),\n lookbehind: true,\n alias: 'class-name',\n inside: typeInside\n },\n 'return-type': {\n // Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n // int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n // int Foo => 0; int Foo { get; set } = 0;\n pattern: re(\n /<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source,\n [typeExpression, identifier]\n ),\n inside: typeInside,\n alias: 'class-name'\n },\n 'constructor-invocation': {\n // new List<Foo<Bar[]>> { }\n pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n lookbehind: true,\n inside: typeInside,\n alias: 'class-name'\n },\n /*'explicit-implementation': {\n// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\npattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\ninside: classNameInside,\nalias: 'class-name'\n},*/\n 'generic-method': {\n // foo<Bar>()\n pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n inside: {\n function: re(/^<<0>>/.source, [name]),\n generic: {\n pattern: RegExp(generic),\n alias: 'class-name',\n inside: typeInside\n }\n }\n },\n 'type-list': {\n // The list of types inherited or of generic constraints\n // class Foo<F> : Bar, IList<FooBar>\n // where F : Bar, IList<int>\n pattern: re(\n /\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/\n .source,\n [\n typeDeclarationKeywords,\n genericName,\n name,\n typeExpression,\n keywords.source,\n nestedRound,\n /\\bnew\\s*\\(\\s*\\)/.source\n ]\n ),\n lookbehind: true,\n inside: {\n 'record-arguments': {\n pattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [\n genericName,\n nestedRound\n ]),\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.csharp\n },\n keyword: keywords,\n 'class-name': {\n pattern: RegExp(typeExpression),\n greedy: true,\n inside: typeInside\n },\n punctuation: /[,()]/\n }\n },\n preprocessor: {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n // highlight preprocessor directives as keywords\n directive: {\n pattern:\n /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n }) // attributes\n var regularStringOrCharacter = regularString + '|' + character\n var regularStringCharacterOrComment = replace(\n /\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source,\n [regularStringOrCharacter]\n )\n var roundExpression = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n ) // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n var attrTarget =\n /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/\n .source\n var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n identifier,\n roundExpression\n ])\n Prism.languages.insertBefore('csharp', 'class-name', {\n attribute: {\n // Attributes\n // [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n pattern: re(\n /((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/\n .source,\n [attrTarget, attr]\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n target: {\n pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n alias: 'keyword'\n },\n 'attribute-arguments': {\n pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n inside: Prism.languages.csharp\n },\n 'class-name': {\n pattern: RegExp(identifier),\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[:,]/\n }\n }\n }) // string interpolation\n var formatString = /:[^}\\r\\n]+/.source // multi line\n var mInterpolationRound = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n )\n var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n mInterpolationRound,\n formatString\n ]) // single line\n var sInterpolationRound = nested(\n replace(\n /[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/\n .source,\n [regularStringOrCharacter]\n ),\n 2\n )\n var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n sInterpolationRound,\n formatString\n ])\n function createInterpolationInside(interpolation, interpolationRound) {\n return {\n interpolation: {\n pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n lookbehind: true,\n inside: {\n 'format-string': {\n pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n interpolationRound,\n formatString\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^:/\n }\n },\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-csharp',\n inside: Prism.languages.csharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.insertBefore('csharp', 'string', {\n 'interpolation-string': [\n {\n pattern: re(\n /(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source,\n [mInterpolation]\n ),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n },\n {\n pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [\n sInterpolation\n ]),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n }\n ],\n char: {\n pattern: RegExp(character),\n greedy: true\n }\n })\n Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n })(Prism)\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = cshtml\ncshtml.displayName = 'cshtml'\ncshtml.aliases = ['razor']\nfunction cshtml(Prism) {\n Prism.register(refractorCsharp)\n // Docs:\n // https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio\n // https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-5.0\n ;(function (Prism) {\n var commentLike = /\\/(?![/*])|\\/\\/.*[\\r\\n]|\\/\\*[^*]*(?:\\*(?!\\/)[^*]*)*\\*\\//\n .source\n var stringLike =\n /@(?!\")|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|@\"(?:[^\\\\\"]|\"\"|\\\\[\\s\\S])*\"(?!\")/.source +\n '|' +\n /'(?:(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'|(?=[^\\\\](?!')))/.source\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<self>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern\n .replace(/<self>/g, '[^\\\\s\\\\S]')\n .replace(/<str>/g, '(?:' + stringLike + ')')\n .replace(/<comment>/g, '(?:' + commentLike + ')')\n }\n var round = nested(/\\((?:[^()'\"@/]|<str>|<comment>|<self>)*\\)/.source, 2)\n var square = nested(/\\[(?:[^\\[\\]'\"@/]|<str>|<comment>|<self>)*\\]/.source, 2)\n var curly = nested(/\\{(?:[^{}'\"@/]|<str>|<comment>|<self>)*\\}/.source, 2)\n var angle = nested(/<(?:[^<>'\"@/]|<str>|<comment>|<self>)*>/.source, 2) // Note about the above bracket patterns:\n // They all ignore HTML expressions that might be in the C# code. This is a problem because HTML (like strings and\n // comments) is parsed differently. This is a huge problem because HTML might contain brackets and quotes which\n // messes up the bracket and string counting implemented by the above patterns.\n //\n // This problem is not fixable because 1) HTML expression are highly context sensitive and very difficult to detect\n // and 2) they require one capturing group at every nested level. See the `tagRegion` pattern to admire the\n // complexity of an HTML expression.\n //\n // To somewhat alleviate the problem a bit, the patterns for characters (e.g. 'a') is very permissive, it also\n // allows invalid characters to support HTML expressions like this: <p>That's it!</p>.\n var tagAttrs =\n /(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?/\n .source\n var tagContent = /(?!\\d)[^\\s>\\/=$<%]+/.source + tagAttrs + /\\s*\\/?>/.source\n var tagRegion =\n /\\B@?/.source +\n '(?:' +\n /<([a-zA-Z][\\w:]*)/.source +\n tagAttrs +\n /\\s*>/.source +\n '(?:' +\n (/[^<]/.source +\n '|' + // all tags that are not the start tag\n // eslint-disable-next-line regexp/strict\n /<\\/?(?!\\1\\b)/.source +\n tagContent +\n '|' + // nested start tag\n nested(\n // eslint-disable-next-line regexp/strict\n /<\\1/.source +\n tagAttrs +\n /\\s*>/.source +\n '(?:' +\n (/[^<]/.source +\n '|' + // all tags that are not the start tag\n // eslint-disable-next-line regexp/strict\n /<\\/?(?!\\1\\b)/.source +\n tagContent +\n '|' +\n '<self>') +\n ')*' + // eslint-disable-next-line regexp/strict\n /<\\/\\1\\s*>/.source,\n 2\n )) +\n ')*' + // eslint-disable-next-line regexp/strict\n /<\\/\\1\\s*>/.source +\n '|' +\n /</.source +\n tagContent +\n ')' // Now for the actual language definition(s):\n //\n // Razor as a language has 2 parts:\n // 1) CSHTML: A markup-like language that has been extended with inline C# code expressions and blocks.\n // 2) C#+HTML: A variant of C# that can contain CSHTML tags as expressions.\n //\n // In the below code, both CSHTML and C#+HTML will be create as separate language definitions that reference each\n // other. However, only CSHTML will be exported via `Prism.languages`.\n Prism.languages.cshtml = Prism.languages.extend('markup', {})\n var csharpWithHtml = Prism.languages.insertBefore(\n 'csharp',\n 'string',\n {\n html: {\n pattern: RegExp(tagRegion),\n greedy: true,\n inside: Prism.languages.cshtml\n }\n },\n {\n csharp: Prism.languages.extend('csharp', {})\n }\n )\n var cs = {\n pattern: /\\S[\\s\\S]*/,\n alias: 'language-csharp',\n inside: csharpWithHtml\n }\n Prism.languages.insertBefore('cshtml', 'prolog', {\n 'razor-comment': {\n pattern: /@\\*[\\s\\S]*?\\*@/,\n greedy: true,\n alias: 'comment'\n },\n block: {\n pattern: RegExp(\n /(^|[^@])@/.source +\n '(?:' +\n [\n // @{ ... }\n curly, // @code{ ... }\n /(?:code|functions)\\s*/.source + curly, // @for (...) { ... }\n /(?:for|foreach|lock|switch|using|while)\\s*/.source +\n round +\n /\\s*/.source +\n curly, // @do { ... } while (...);\n /do\\s*/.source +\n curly +\n /\\s*while\\s*/.source +\n round +\n /(?:\\s*;)?/.source, // @try { ... } catch (...) { ... } finally { ... }\n /try\\s*/.source +\n curly +\n /\\s*catch\\s*/.source +\n round +\n /\\s*/.source +\n curly +\n /\\s*finally\\s*/.source +\n curly, // @if (...) {...} else if (...) {...} else {...}\n /if\\s*/.source +\n round +\n /\\s*/.source +\n curly +\n '(?:' +\n /\\s*else/.source +\n '(?:' +\n /\\s+if\\s*/.source +\n round +\n ')?' +\n /\\s*/.source +\n curly +\n ')*'\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^@\\w*/,\n csharp: cs\n }\n },\n directive: {\n pattern:\n /^([ \\t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\\s).*/m,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^@\\w+/,\n csharp: cs\n }\n },\n value: {\n pattern: RegExp(\n /(^|[^@])@/.source +\n /(?:await\\b\\s*)?/.source +\n '(?:' +\n /\\w+\\b/.source +\n '|' +\n round +\n ')' +\n '(?:' +\n /[?!]?\\.\\w+\\b/.source +\n '|' +\n round +\n '|' +\n square +\n '|' +\n angle +\n round +\n ')*'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'variable',\n inside: {\n keyword: /^@/,\n csharp: cs\n }\n },\n 'delegate-operator': {\n pattern: /(^|[^@])@(?=<)/,\n lookbehind: true,\n alias: 'operator'\n }\n })\n Prism.languages.razor = Prism.languages.cshtml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csp\ncsp.displayName = 'csp'\ncsp.aliases = []\nfunction csp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n *\n * Supports the following:\n * - https://www.w3.org/TR/CSP1/\n * - https://www.w3.org/TR/CSP2/\n * - https://www.w3.org/TR/CSP3/\n */\n ;(function (Prism) {\n /**\n * @param {string} source\n * @returns {RegExp}\n */\n function value(source) {\n return RegExp(\n /([ \\t])/.source + '(?:' + source + ')' + /(?=[\\s;]|$)/.source,\n 'i'\n )\n }\n Prism.languages.csp = {\n directive: {\n pattern:\n /(^|[\\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\\s;]|$)/i,\n lookbehind: true,\n alias: 'property'\n },\n scheme: {\n pattern: value(/[a-z][a-z0-9.+-]*:/.source),\n lookbehind: true\n },\n none: {\n pattern: value(/'none'/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n nonce: {\n pattern: value(/'nonce-[-+/\\w=]+'/.source),\n lookbehind: true,\n alias: 'number'\n },\n hash: {\n pattern: value(/'sha(?:256|384|512)-[-+/\\w=]+'/.source),\n lookbehind: true,\n alias: 'number'\n },\n host: {\n pattern: value(\n /[a-z][a-z0-9.+-]*:\\/\\/[^\\s;,']*/.source +\n '|' +\n /\\*[^\\s;,']*/.source +\n '|' +\n /[a-z0-9-]+(?:\\.[a-z0-9-]+)+(?::[\\d*]+)?(?:\\/[^\\s;,']*)?/.source\n ),\n lookbehind: true,\n alias: 'url',\n inside: {\n important: /\\*/\n }\n },\n keyword: [\n {\n pattern: value(/'unsafe-[a-z-]+'/.source),\n lookbehind: true,\n alias: 'unsafe'\n },\n {\n pattern: value(/'[a-z-]+'/.source),\n lookbehind: true,\n alias: 'safe'\n }\n ],\n punctuation: /;/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = cssExtras\ncssExtras.displayName = 'cssExtras'\ncssExtras.aliases = []\nfunction cssExtras(Prism) {\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var selectorInside\n Prism.languages.css.selector = {\n pattern: Prism.languages.css.selector.pattern,\n lookbehind: true,\n inside: (selectorInside = {\n 'pseudo-element':\n /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n 'pseudo-class': /:[-\\w]+/,\n class: /\\.[-\\w]+/,\n id: /#[-\\w]+/,\n attribute: {\n pattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'case-sensitivity': {\n pattern: /(\\s)[si]$/i,\n lookbehind: true,\n alias: 'keyword'\n },\n namespace: {\n pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n lookbehind: true,\n inside: {\n punctuation: /\\|$/\n }\n },\n 'attr-name': {\n pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n lookbehind: true\n },\n 'attr-value': [\n string,\n {\n pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n lookbehind: true\n }\n ],\n operator: /[|~*^$]?=/\n }\n },\n 'n-th': [\n {\n pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n number: /[\\dn]+/,\n operator: /[+-]/\n }\n },\n {\n pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n lookbehind: true\n }\n ],\n combinator: />|\\+|~|\\|\\|/,\n // the `tag` token has been existed and removed.\n // because we can't find a perfect tokenize to match it.\n // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n punctuation: /[(),]/\n })\n }\n Prism.languages.css['atrule'].inside['selector-function-argument'].inside =\n selectorInside\n Prism.languages.insertBefore('css', 'property', {\n variable: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n lookbehind: true\n }\n })\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/,\n lookbehind: true\n } // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n Prism.languages.insertBefore('css', 'function', {\n operator: {\n pattern: /(\\s)[+\\-*\\/](?=\\s)/,\n lookbehind: true\n },\n // CAREFUL!\n // Previewers and Inline color use hexcode and color.\n hexcode: {\n pattern: /\\B#[\\da-f]{3,8}\\b/i,\n alias: 'color'\n },\n color: [\n {\n pattern:\n /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n // it's important that there is no boundary assertion after the hex digits\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n number: number\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = css\ncss.displayName = 'css'\ncss.aliases = []\nfunction css(Prism) {\n ;(function (Prism) {\n var string =\n /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/\n Prism.languages.css = {\n comment: /\\/\\*[\\s\\S]*?\\*\\//,\n atrule: {\n pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n inside: {\n rule: /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern:\n /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n keyword: {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n } // See rest below\n }\n },\n url: {\n // https://drafts.csswg.org/css-values-3/#urls\n pattern: RegExp(\n '\\\\burl\\\\((?:' +\n string.source +\n '|' +\n /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n ')\\\\)',\n 'i'\n ),\n greedy: true,\n inside: {\n function: /^url/i,\n punctuation: /^\\(|\\)$/,\n string: {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n selector: {\n pattern: RegExp(\n '(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n string.source +\n ')*(?=\\\\s*\\\\{)'\n ),\n lookbehind: true\n },\n string: {\n pattern: string,\n greedy: true\n },\n property: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n lookbehind: true\n },\n important: /!important\\b/i,\n function: {\n pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n lookbehind: true\n },\n punctuation: /[(){};:,]/\n }\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n var markup = Prism.languages.markup\n if (markup) {\n markup.tag.addInlined('style', 'css')\n markup.tag.addAttribute('style', 'css')\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csv\ncsv.displayName = 'csv'\ncsv.aliases = []\nfunction csv(Prism) {\n // https://tools.ietf.org/html/rfc4180\n Prism.languages.csv = {\n value: /[^\\r\\n,\"]+|\"(?:[^\"]|\"\")*\"(?!\")/,\n punctuation: /,/\n }\n}\n","'use strict'\n\nmodule.exports = cypher\ncypher.displayName = 'cypher'\ncypher.aliases = []\nfunction cypher(Prism) {\n Prism.languages.cypher = {\n // https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n comment: /\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n 'class-name': {\n pattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n lookbehind: true,\n greedy: true\n },\n relationship: {\n pattern:\n /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n identifier: {\n pattern: /`(?:[^`\\\\\\r\\n])*`/,\n greedy: true\n },\n variable: /\\$\\w+/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n keyword:\n /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n function: /\\b\\w+\\b(?=\\s*\\()/,\n boolean: /\\b(?:false|null|true)\\b/i,\n number: /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n punctuation: /[()[\\]{},;.]/\n }\n}\n","'use strict'\n\nmodule.exports = d\nd.displayName = 'd'\nd.aliases = []\nfunction d(Prism) {\n Prism.languages.d = Prism.languages.extend('clike', {\n comment: [\n {\n // Shebang\n pattern: /^\\s*#!.+/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n [\n // /+ comment +/\n // Allow one level of nesting\n /\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source, // // comment\n /\\/\\/.*/.source, // /* comment */\n /\\/\\*[\\s\\S]*?\\*\\//.source\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: RegExp(\n [\n // r\"\", x\"\"\n /\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source, // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source, // q\"IDENT\n // ...\n // IDENT\"\n /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source, // q\"//\", q\"||\", etc.\n // eslint-disable-next-line regexp/strict\n /\\bq\"(.)[\\s\\S]*?\\2\"/.source, // eslint-disable-next-line regexp/strict\n /([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n ].join('|'),\n 'm'\n ),\n greedy: true\n },\n {\n pattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n greedy: true,\n alias: 'token-string'\n }\n ],\n // In order: $, keywords and special tokens, globally defined symbols\n keyword:\n /\\$|\\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\\b/,\n number: [\n // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n // Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n /\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n {\n pattern:\n /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n lookbehind: true\n }\n ],\n operator:\n /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n })\n Prism.languages.insertBefore('d', 'string', {\n // Characters\n // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n char: /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/\n })\n Prism.languages.insertBefore('d', 'keyword', {\n property: /\\B@\\w*/\n })\n Prism.languages.insertBefore('d', 'function', {\n register: {\n // Iasm registers\n pattern:\n /\\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n alias: 'variable'\n }\n })\n}\n","'use strict'\n\nmodule.exports = dart\ndart.displayName = 'dart'\ndart.aliases = []\nfunction dart(Prism) {\n ;(function (Prism) {\n var keywords = [\n /\\b(?:async|sync|yield)\\*/,\n /\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n ] // Handles named imports, such as http.Client\n var packagePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // based on the dart naming conventions\n var className = {\n pattern: RegExp(packagePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n }\n }\n }\n Prism.languages.dart = Prism.languages.extend('clike', {\n 'class-name': [\n className,\n {\n // variables and parameters\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n packagePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n operator:\n /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n })\n Prism.languages.insertBefore('dart', 'string', {\n 'string-literal': {\n pattern:\n /r?(?:(\"\"\"|''')[\\s\\S]*?\\1|([\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2(?!\\2))/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n lookbehind: true,\n inside: {\n punctuation: /^\\$\\{?|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.dart\n }\n }\n },\n string: /[\\s\\S]+/\n }\n },\n string: undefined\n })\n Prism.languages.insertBefore('dart', 'class-name', {\n metadata: {\n pattern: /@\\w+/,\n alias: 'function'\n }\n })\n Prism.languages.insertBefore('dart', 'class-name', {\n generics: {\n pattern:\n /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dataweave\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\nfunction dataweave(Prism) {\n ;(function (Prism) {\n Prism.languages.dataweave = {\n url: /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n property: {\n pattern: /(?:\\b\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\b\\w+)(?=\\s*[:@])/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'mime-type':\n /\\b(?:application|audio|image|multipart|text|video)\\/[\\w+-]+/,\n date: {\n pattern: /\\|[\\w:+-]+\\|/,\n greedy: true\n },\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n regex: {\n pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n greedy: true\n },\n keyword:\n /\\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\\b/,\n function: /\\b[A-Z_]\\w*(?=\\s*\\()/i,\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\];(),.:@]/,\n operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|!|\\?/,\n boolean: /\\b(?:false|true)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dax\ndax.displayName = 'dax'\ndax.aliases = []\nfunction dax(Prism) {\n Prism.languages.dax = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n lookbehind: true\n },\n 'data-field': {\n pattern:\n /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'symbol'\n },\n measure: {\n pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'constant'\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n function:\n /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n keyword:\n /\\b(?:DEFINE|EVALUATE|MEASURE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n boolean: {\n pattern: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n alias: 'constant'\n },\n number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/,\n operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n punctuation: /[;\\[\\](){}`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = dhall\ndhall.displayName = 'dhall'\ndhall.aliases = []\nfunction dhall(Prism) {\n // ABNF grammar:\n // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n Prism.languages.dhall = {\n // Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n // The multi-line pattern is essentially this:\n // \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|<SELF>)*-\\}\n comment:\n /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n alias: 'language-dhall',\n inside: null // see blow\n },\n punctuation: /\\$\\{|\\}/\n }\n }\n }\n },\n label: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n url: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n pattern:\n /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n greedy: true\n },\n env: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n pattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n greedy: true,\n inside: {\n function: /^env/,\n operator: /^:/,\n variable: /[\\s\\S]+/\n }\n },\n hash: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n pattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n inside: {\n function: /sha256/,\n operator: /:/,\n number: /[\\da-fA-F]{64}/\n }\n },\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n keyword:\n /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n builtin: /\\b(?:None|Some)\\b/,\n boolean: /\\b(?:False|True)\\b/,\n number:\n /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n operator:\n /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||===|[!=]=|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n punctuation: /\\.\\.|[{}\\[\\](),./]/,\n // we'll just assume that every capital word left is a type name\n 'class-name': /\\b[A-Z]\\w*\\b/\n }\n Prism.languages.dhall.string.inside.interpolation.inside.expression.inside =\n Prism.languages.dhall\n}\n","'use strict'\n\nmodule.exports = diff\ndiff.displayName = 'diff'\ndiff.aliases = []\nfunction diff(Prism) {\n ;(function (Prism) {\n Prism.languages.diff = {\n coord: [\n // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n /^(?:\\*{3}|-{3}|\\+{3}).*$/m, // Match \"@@ ... @@\" coord lines in unified diff.\n /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number).\n /^\\d.*$/m\n ] // deleted, inserted, unchanged, diff\n }\n /**\n * A map from the name of a block to its line prefix.\n *\n * @type {Object<string, string>}\n */\n var PREFIXES = {\n 'deleted-sign': '-',\n 'deleted-arrow': '<',\n 'inserted-sign': '+',\n 'inserted-arrow': '>',\n unchanged: ' ',\n diff: '!'\n } // add a token for each prefix\n Object.keys(PREFIXES).forEach(function (name) {\n var prefix = PREFIXES[name]\n var alias = []\n if (!/^\\w+$/.test(name)) {\n // \"deleted-sign\" -> \"deleted\"\n alias.push(/\\w+/.exec(name)[0])\n }\n if (name === 'diff') {\n alias.push('bold')\n }\n Prism.languages.diff[name] = {\n pattern: RegExp(\n '^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+',\n 'm'\n ),\n alias: alias,\n inside: {\n line: {\n pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]/,\n alias: /\\w+/.exec(name)[0]\n }\n }\n }\n }) // make prefixes available to Diff plugin\n Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n value: PREFIXES\n })\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = django\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\nfunction django(Prism) {\n Prism.register(refractorMarkupTemplating)\n // Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.\n // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n ;(function (Prism) {\n Prism.languages.django = {\n comment: /^\\{#[\\s\\S]*?#\\}$/,\n tag: {\n pattern: /(^\\{%[+-]?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%][+-]?|[+-]?[}%]\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n filter: {\n pattern: /(\\|)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n test: {\n pattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b[a-z_]\\w+(?=\\s*\\()/i,\n keyword:\n /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /[Ff]alse|[Nn]one|[Tt]rue/,\n variable: /\\b\\w+\\b/,\n punctuation: /[{}[\\](),.:;]/\n }\n var pattern = /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}|\\{#[\\s\\S]*?#\\}/g\n var markupTemplating = Prism.languages['markup-templating']\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'django', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'django')\n }) // Add an Jinja2 alias\n Prism.languages.jinja2 = Prism.languages.django\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'jinja2', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'jinja2')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dnsZoneFile\ndnsZoneFile.displayName = 'dnsZoneFile'\ndnsZoneFile.aliases = []\nfunction dnsZoneFile(Prism) {\n Prism.languages['dns-zone-file'] = {\n comment: /;.*/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n lookbehind: true\n },\n {\n pattern: /(^|\\s)@(?=\\s|$)/,\n lookbehind: true\n }\n ],\n keyword: /^\\$(?:INCLUDE|ORIGIN|TTL)(?=\\s|$)/m,\n class: {\n // https://tools.ietf.org/html/rfc1035#page-13\n pattern: /(^|\\s)(?:CH|CS|HS|IN)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n // https://en.wikipedia.org/wiki/List_of_DNS_record_types\n pattern:\n /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /[()]/\n }\n Prism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n}\n","'use strict'\n\nmodule.exports = docker\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\nfunction docker(Prism) {\n ;(function (Prism) {\n // Many of the following regexes will contain negated lookaheads like `[ \\t]+(?![ \\t])`. This is a trick to ensure\n // that quantifiers behave *atomically*. Atomic quantifiers are necessary to prevent exponential backtracking.\n var spaceAfterBackSlash =\n /\\\\[\\r\\n](?:\\s|\\\\[\\r\\n]|#.*(?!.))*(?![\\s#]|\\\\[\\r\\n])/.source // At least one space, comment, or line break\n var space = /(?:[ \\t]+(?![ \\t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(\n /<SP_BS>/g,\n function () {\n return spaceAfterBackSlash\n }\n )\n var string =\n /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"|'(?:[^'\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*'/\n .source\n var option = /--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)/.source.replace(\n /<STR>/g,\n function () {\n return string\n }\n )\n var stringRule = {\n pattern: RegExp(string),\n greedy: true\n }\n var commentRule = {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true,\n greedy: true\n }\n /**\n * @param {string} source\n * @param {string} flags\n * @returns {RegExp}\n */\n function re(source, flags) {\n source = source\n .replace(/<OPT>/g, function () {\n return option\n })\n .replace(/<SP>/g, function () {\n return space\n })\n return RegExp(source, flags)\n }\n Prism.languages.docker = {\n instruction: {\n pattern:\n /(^[ \\t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)(?:\\\\.|[^\\r\\n\\\\])*(?:\\\\$(?:\\s|#.*$)*(?![\\s#])(?:\\\\.|[^\\r\\n\\\\])*)*/im,\n lookbehind: true,\n greedy: true,\n inside: {\n options: {\n pattern: re(\n /(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n property: {\n pattern: /(^|\\s)--[\\w-]+/,\n lookbehind: true\n },\n string: [\n stringRule,\n {\n pattern: /(=)(?![\"'])(?:[^\\s\\\\]|\\\\.)+/,\n lookbehind: true\n }\n ],\n operator: /\\\\$/m,\n punctuation: /=/\n }\n },\n keyword: [\n {\n // https://docs.docker.com/engine/reference/builder/#healthcheck\n pattern: re(\n /(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b/\n .source,\n 'i'\n ),\n lookbehind: true,\n greedy: true\n },\n {\n // https://docs.docker.com/engine/reference/builder/#from\n pattern: re(\n /(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \\t\\\\]+<SP>)AS/\n .source,\n 'i'\n ),\n lookbehind: true,\n greedy: true\n },\n {\n // https://docs.docker.com/engine/reference/builder/#onbuild\n pattern: re(/(^ONBUILD<SP>)\\w+/.source, 'i'),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /^\\w+/,\n greedy: true\n }\n ],\n comment: commentRule,\n string: stringRule,\n variable: /\\$(?:\\w+|\\{[^{}\"'\\\\]*\\})/,\n operator: /\\\\$/m\n }\n },\n comment: commentRule\n }\n Prism.languages.dockerfile = Prism.languages.docker\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dot\ndot.displayName = 'dot'\ndot.aliases = ['gv']\nfunction dot(Prism) {\n // https://www.graphviz.org/doc/info/lang.html\n ;(function (Prism) {\n var ID =\n '(?:' +\n [\n // an identifier\n /[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*/.source, // a number\n /-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)/.source, // a double-quoted string\n /\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"/.source, // HTML-like string\n /<(?:[^<>]|(?!<!--)<(?:[^<>\"']|\"[^\"]*\"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/\n .source\n ].join('|') +\n ')'\n var IDInside = {\n markup: {\n pattern: /(^<)[\\s\\S]+(?=>$)/,\n lookbehind: true,\n alias: ['language-markup', 'language-html', 'language-xml'],\n inside: Prism.languages.markup\n }\n }\n /**\n * @param {string} source\n * @param {string} flags\n * @returns {RegExp}\n */\n function withID(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return ID\n }),\n flags\n )\n }\n Prism.languages.dot = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|^#.*/m,\n greedy: true\n },\n 'graph-name': {\n pattern: withID(\n /(\\b(?:digraph|graph|subgraph)[ \\t\\r\\n]+)<ID>/.source,\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name',\n inside: IDInside\n },\n 'attr-value': {\n pattern: withID(/(=[ \\t\\r\\n]*)<ID>/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n 'attr-name': {\n pattern: withID(/([\\[;, \\t\\r\\n])<ID>(?=[ \\t\\r\\n]*=)/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n keyword: /\\b(?:digraph|edge|graph|node|strict|subgraph)\\b/i,\n 'compass-point': {\n pattern: /(:[ \\t\\r\\n]*)(?:[ewc_]|[ns][ew]?)(?![\\w\\x80-\\uFFFF])/,\n lookbehind: true,\n alias: 'builtin'\n },\n node: {\n pattern: withID(/(^|[^-.\\w\\x80-\\uFFFF\\\\])<ID>/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n operator: /[=:]|-[->]/,\n punctuation: /[\\[\\]{};,]/\n }\n Prism.languages.gv = Prism.languages.dot\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ebnf\nebnf.displayName = 'ebnf'\nebnf.aliases = []\nfunction ebnf(Prism) {\n Prism.languages.ebnf = {\n comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n special: {\n pattern: /\\?[^?\\r\\n]*\\?/,\n greedy: true,\n alias: 'class-name'\n },\n definition: {\n pattern: /^([\\t ]*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n lookbehind: true,\n alias: ['rule', 'keyword']\n },\n rule: /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n punctuation: /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n operator: /[-=|*/!]/\n }\n}\n","'use strict'\n\nmodule.exports = editorconfig\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\nfunction editorconfig(Prism) {\n Prism.languages.editorconfig = {\n // https://editorconfig-specification.readthedocs.io\n comment: /[;#].*/,\n section: {\n pattern: /(^[ \\t]*)\\[.+\\]/m,\n lookbehind: true,\n alias: 'selector',\n inside: {\n regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n // Escape special characters with '\\\\'\n operator: /[!?]|\\.\\.|\\*{1,2}/,\n punctuation: /[\\[\\]{},]/\n }\n },\n key: {\n pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n value: {\n pattern: /=.*/,\n alias: 'attr-value',\n inside: {\n punctuation: /^=/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = eiffel\neiffel.displayName = 'eiffel'\neiffel.aliases = []\nfunction eiffel(Prism) {\n Prism.languages.eiffel = {\n comment: /--.*/,\n string: [\n // Aligned-verbatim-strings\n {\n pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n greedy: true\n }, // Non-aligned-verbatim-strings\n {\n pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n greedy: true\n }, // Single-line string\n {\n pattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n greedy: true\n }\n ],\n // normal char | special char | char code\n char: /'(?:%.|[^%'\\r\\n])+'/,\n keyword:\n /\\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n boolean: /\\b(?:False|True)\\b/i,\n // Convention: class-names are always all upper-case characters\n 'class-name': /\\b[A-Z][\\dA-Z_]*\\b/,\n number: [\n // hexa | octal | bin\n /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i, // Decimal\n /(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n ],\n punctuation: /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n operator: /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ejs\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\nfunction ejs(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.ejs = {\n delimiter: {\n pattern: /^<%[-_=]?|[-_]?%>$/,\n alias: 'punctuation'\n },\n comment: /^#[\\s\\S]*/,\n 'language-javascript': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.javascript\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var ejsPattern = /<%(?!%)[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ejs',\n ejsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')\n })\n Prism.languages.eta = Prism.languages.ejs\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = elixir\nelixir.displayName = 'elixir'\nelixir.aliases = []\nfunction elixir(Prism) {\n Prism.languages.elixir = {\n doc: {\n pattern:\n /@(?:doc|moduledoc)\\s+(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2)/,\n inside: {\n attribute: /^@\\w+/,\n string: /['\"][\\s\\S]+/\n }\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n // ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>\n regex: {\n pattern:\n /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n greedy: true\n },\n string: [\n {\n // ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>\n pattern:\n /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n // Multi-line strings are allowed\n pattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n }\n ],\n atom: {\n // Look-behind prevents bad highlighting of the :: operator\n pattern: /(^|[^:]):\\w+/,\n lookbehind: true,\n alias: 'symbol'\n },\n module: {\n pattern: /\\b[A-Z]\\w*\\b/,\n alias: 'class-name'\n },\n // Look-ahead prevents bad highlighting of the :: operator\n 'attr-name': /\\b\\w+\\??:(?!:)/,\n argument: {\n // Look-behind prevents bad highlighting of the && operator\n pattern: /(^|[^&])&\\d+/,\n lookbehind: true,\n alias: 'variable'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'variable'\n },\n function: /\\b[_a-zA-Z]\\w*[?!]?(?:(?=\\s*(?:\\.\\s*)?\\()|(?=\\/\\d))/,\n number: /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n keyword:\n /\\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\\b/,\n boolean: /\\b(?:false|nil|true)\\b/,\n operator: [\n /\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n {\n // We don't want to match <<\n pattern: /([^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /([^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,%\\[\\]{}()]/\n }\n Prism.languages.elixir.string.forEach(function (o) {\n o.inside = {\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.elixir\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = elm\nelm.displayName = 'elm'\nelm.aliases = []\nfunction elm(Prism) {\n Prism.languages.elm = {\n comment: /--.*|\\{-[\\s\\S]*?-\\}/,\n char: {\n pattern:\n /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+|u\\{[0-9a-fA-F]+\\}))'/,\n greedy: true\n },\n string: [\n {\n // Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n greedy: true\n }\n ],\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|exposing|import)\\b/\n }\n },\n keyword:\n /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n // decimal integers and floating point numbers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n operator: /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n // In Elm, nearly everything is a variable, do not highlight these.\n hvariable: /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n constant: /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n punctuation: /[{}[\\]|(),.:]/\n }\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = erb\nerb.displayName = 'erb'\nerb.aliases = []\nfunction erb(Prism) {\n Prism.register(refractorRuby)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.erb = {\n delimiter: {\n pattern: /^(\\s*)<%=?|%>(?=\\s*$)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n ruby: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'language-ruby',\n inside: Prism.languages.ruby\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var erbPattern =\n /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s(?:[^\\r\\n]|[\\r\\n](?!=end))*[\\r\\n]=end)+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'erb',\n erbPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = erlang\nerlang.displayName = 'erlang'\nerlang.aliases = []\nfunction erlang(Prism) {\n Prism.languages.erlang = {\n comment: /%.+/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n 'quoted-function': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n alias: 'function'\n },\n 'quoted-atom': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n alias: 'atom'\n },\n boolean: /\\b(?:false|true)\\b/,\n keyword: /\\b(?:after|case|catch|end|fun|if|of|receive|try|when)\\b/,\n number: [\n /\\$\\\\?./,\n /\\b\\d+#[a-z0-9]+/i,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n ],\n function: /\\b[a-z][\\w@]*(?=\\()/,\n variable: {\n // Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n pattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n lookbehind: true\n },\n operator: [\n /[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\\b/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n atom: /\\b[a-z][\\w@]*/,\n punctuation: /[()[\\]{}:;,.#|]|<<|>>/\n }\n}\n","'use strict'\nvar refractorLua = require('./lua.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = etlua\netlua.displayName = 'etlua'\netlua.aliases = []\nfunction etlua(Prism) {\n Prism.register(refractorLua)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.etlua = {\n delimiter: {\n pattern: /^<%[-=]?|-?%>$/,\n alias: 'punctuation'\n },\n 'language-lua': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.lua\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var pattern = /<%[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'etlua',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = excelFormula\nexcelFormula.displayName = 'excelFormula'\nexcelFormula.aliases = []\nfunction excelFormula(Prism) {\n Prism.languages['excel-formula'] = {\n comment: {\n pattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n reference: {\n // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n // Sales!B2\n // 'Winter sales'!B2\n // [Sales.xlsx]Jan!B2:B5\n // D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n // '[Sales.xlsx]Jan sales'!B2:B5\n // 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n pattern:\n /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n greedy: true,\n alias: 'string',\n inside: {\n operator: /!$/,\n punctuation: /'/,\n sheet: {\n pattern: /[^[\\]]+$/,\n alias: 'function'\n },\n file: {\n pattern: /\\[[^[\\]]+\\]$/,\n inside: {\n punctuation: /[[\\]]/\n }\n },\n path: /[\\s\\S]+/\n }\n },\n 'function-name': {\n pattern: /\\b[A-Z]\\w*(?=\\()/i,\n alias: 'keyword'\n },\n range: {\n pattern:\n /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n alias: 'property',\n inside: {\n operator: /:/,\n cell: /\\$?[A-Z]+\\$?\\d+/i,\n column: /\\$?[A-Z]+/i,\n row: /\\$?\\d+/\n }\n },\n cell: {\n // Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n // To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n pattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n alias: 'property'\n },\n number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:FALSE|TRUE)\\b/i,\n operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n punctuation: /[[\\]();{}|]/\n }\n Prism.languages['xlsx'] = Prism.languages['xls'] =\n Prism.languages['excel-formula']\n}\n","'use strict'\n\nmodule.exports = factor\nfactor.displayName = 'factor'\nfactor.aliases = []\nfunction factor(Prism) {\n ;(function (Prism) {\n var comment_inside = {\n function:\n /\\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n }\n var string_inside = {\n number: /\\\\[^\\s']|%\\w/\n }\n var factor = {\n comment: [\n {\n // ! single-line exclamation point comments with whitespace after/around the !\n pattern: /(^|\\s)(?:! .*|!$)/,\n lookbehind: true,\n inside: comment_inside\n },\n /* from basis/multiline: */\n {\n // /* comment */, /* comment*/\n pattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n },\n {\n // ![[ comment ]] , ![===[ comment]===]\n pattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n }\n ],\n number: [\n {\n // basic base 10 integers 9, -9\n pattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n pattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n pattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n lookbehind: true\n },\n {\n // positive mixed numbers 23+1/5 +23+1/5\n pattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // negative mixed numbers -23-1/5\n pattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n pattern:\n /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // NAN literal syntax NAN: 80000deadbeef, NAN: a\n pattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n lookbehind: true\n },\n {\n /*\nbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\"The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely.\nThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n<https://docs.factorcode.org/content/article-syntax-floats.html>\n*/\n pattern:\n /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n lookbehind: true\n }\n ],\n // R/ regexp?\\/\\\\/\n regexp: {\n pattern:\n /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n lookbehind: true,\n alias: 'number',\n inside: {\n variable: /\\\\\\S/,\n keyword: /[+?*\\[\\]^$(){}.|]/,\n operator: {\n pattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n lookbehind: true\n }\n }\n },\n boolean: {\n pattern: /(^|\\s)[tf](?=\\s|$)/,\n lookbehind: true\n },\n // SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n 'custom-string': {\n pattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: /\\\\\\S|%\\w|\\//\n }\n },\n 'multiline-string': [\n {\n // STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n pattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: string_inside.number,\n // trailing semicolon on its own line\n 'semicolon-or-setlocal': {\n pattern: /([\\r\\n][ \\t]*);(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n }\n }\n },\n {\n // HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n pattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n },\n {\n // [[ string ]], [==[ string]==]\n pattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n }\n ],\n 'special-using': {\n pattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n lookbehind: true,\n alias: 'function',\n inside: {\n // this is essentially a regex for vocab names, which i don't want to specify\n // but the USING: gets picked up as a vocab name\n string: {\n pattern: /(\\s)[^:\\s]+/,\n lookbehind: true\n }\n }\n },\n /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\ntrying to do better is more work and regex-computation-time than it's worth though.\n- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n- we'd like if the following variable name conventions were recognised specifically:\nspecial row variables = ..a b..\ntype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\nword throws unconditional error = *\nany other word-like variable name = a ? q' etc\nhttps://docs.factorcode.org/content/article-effects.html\nthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\nthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n*/\n // current solution is not great\n 'stack-effect-delimiter': [\n {\n // opening parenthesis\n pattern: /(^|\\s)(?:call|eval|execute)?\\((?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // middle --\n pattern: /(\\s)--(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing parenthesis\n pattern: /(\\s)\\)(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n combinators: {\n pattern: null,\n lookbehind: true,\n alias: 'keyword'\n },\n 'kernel-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'sequences-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'math-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'constructor-word': {\n // <array> but not <=>\n pattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'other-builtin-syntax': {\n pattern: null,\n lookbehind: true,\n alias: 'operator'\n },\n /*\nfull list of supported word naming conventions: (the convention appears outside of the [brackets])\nset-[x]\nchange-[x]\nwith-[x]\nnew-[x]\n>[string]\n[base]>\n[string]>[number]\n+[symbol]+\n[boolean-word]?\n?[of]\n[slot-reader]>>\n>>[slot-setter]\n[slot-writer]<<\n([implementation-detail])\n[mutater]!\n[variant]*\n[prettyprint].\n$[help-markup]\n<constructors>, SYNTAX:, etc are supported by their own patterns.\n`with` and `new` from `kernel` are their own builtins.\nsee <https://docs.factorcode.org/content/article-conventions.html>\n*/\n 'conventionally-named-word': {\n pattern:\n /(^|\\s)(?!\")(?:(?:change|new|set|with)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'colon-syntax': {\n pattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'semicolon-or-setlocal': {\n pattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n },\n // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n 'curly-brace-literal-delimiter': [\n {\n // opening\n pattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\}(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n 'quotation-delimiter': [\n {\n // opening\n pattern: /(^|\\s)\\[(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\](?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n 'normal-word': {\n pattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n lookbehind: true\n },\n /*\nbasic first-class string \"a\"\nwith escaped double-quote \"a\\\"\"\nescaped backslash \"\\\\\"\nand general escapes since Factor has so many \"\\N\"\nsyntax that works in the reference implementation that isn't fully\nsupported because it's an implementation detail:\n\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\"string\"5 -> string, 5\n\"string\"[ ] -> string, quotation\n{ \"a\"} -> array<string>\nthe rest of those examples all properly recognise the string, but not\nthe other object (number, quotation, etc)\nthis is fine for a regex-only implementation.\n*/\n string: {\n pattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n greedy: true,\n inside: string_inside\n }\n }\n var escape = function (str) {\n return (str + '').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1')\n }\n var arrToWordsRegExp = function (arr) {\n return new RegExp('(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)')\n }\n var builtins = {\n 'kernel-builtin': [\n 'or',\n '2nipd',\n '4drop',\n 'tuck',\n 'wrapper',\n 'nip',\n 'wrapper?',\n 'callstack>array',\n 'die',\n 'dupd',\n 'callstack',\n 'callstack?',\n '3dup',\n 'hashcode',\n 'pick',\n '4nip',\n 'build',\n '>boolean',\n 'nipd',\n 'clone',\n '5nip',\n 'eq?',\n '?',\n '=',\n 'swapd',\n '2over',\n 'clear',\n '2dup',\n 'get-retainstack',\n 'not',\n 'tuple?',\n 'dup',\n '3nipd',\n 'call',\n '-rotd',\n 'object',\n 'drop',\n 'assert=',\n 'assert?',\n '-rot',\n 'execute',\n 'boa',\n 'get-callstack',\n 'curried?',\n '3drop',\n 'pickd',\n 'overd',\n 'over',\n 'roll',\n '3nip',\n 'swap',\n 'and',\n '2nip',\n 'rotd',\n 'throw',\n '(clone)',\n 'hashcode*',\n 'spin',\n 'reach',\n '4dup',\n 'equal?',\n 'get-datastack',\n 'assert',\n '2drop',\n '<wrapper>',\n 'boolean?',\n 'identity-hashcode',\n 'identity-tuple?',\n 'null',\n 'composed?',\n 'new',\n '5drop',\n 'rot',\n '-roll',\n 'xor',\n 'identity-tuple',\n 'boolean'\n ],\n 'other-builtin-syntax': [\n // syntax\n '=======',\n 'recursive',\n 'flushable',\n '>>',\n '<<<<<<',\n 'M\\\\',\n 'B',\n 'PRIVATE>',\n '\\\\',\n '======',\n 'final',\n 'inline',\n 'delimiter',\n 'deprecated',\n '<PRIVATE',\n '>>>>>>',\n '<<<<<<<',\n 'parse-complex',\n 'malformed-complex',\n 'read-only',\n '>>>>>>>',\n 'call-next-method',\n '<<',\n 'foldable', // literals\n '$',\n '$[',\n '${'\n ],\n 'sequences-builtin': [\n 'member-eq?',\n 'mismatch',\n 'append',\n 'assert-sequence=',\n 'longer',\n 'repetition',\n 'clone-like',\n '3sequence',\n 'assert-sequence?',\n 'last-index-from',\n 'reversed',\n 'index-from',\n 'cut*',\n 'pad-tail',\n 'join-as',\n 'remove-eq!',\n 'concat-as',\n 'but-last',\n 'snip',\n 'nths',\n 'nth',\n 'sequence',\n 'longest',\n 'slice?',\n '<slice>',\n 'remove-nth',\n 'tail-slice',\n 'empty?',\n 'tail*',\n 'member?',\n 'virtual-sequence?',\n 'set-length',\n 'drop-prefix',\n 'iota',\n 'unclip',\n 'bounds-error?',\n 'unclip-last-slice',\n 'non-negative-integer-expected',\n 'non-negative-integer-expected?',\n 'midpoint@',\n 'longer?',\n '?set-nth',\n '?first',\n 'rest-slice',\n 'prepend-as',\n 'prepend',\n 'fourth',\n 'sift',\n 'subseq-start',\n 'new-sequence',\n '?last',\n 'like',\n 'first4',\n '1sequence',\n 'reverse',\n 'slice',\n 'virtual@',\n 'repetition?',\n 'set-last',\n 'index',\n '4sequence',\n 'max-length',\n 'set-second',\n 'immutable-sequence',\n 'first2',\n 'first3',\n 'supremum',\n 'unclip-slice',\n 'suffix!',\n 'insert-nth',\n 'tail',\n '3append',\n 'short',\n 'suffix',\n 'concat',\n 'flip',\n 'immutable?',\n 'reverse!',\n '2sequence',\n 'sum',\n 'delete-all',\n 'indices',\n 'snip-slice',\n '<iota>',\n 'check-slice',\n 'sequence?',\n 'head',\n 'append-as',\n 'halves',\n 'sequence=',\n 'collapse-slice',\n '?second',\n 'slice-error?',\n 'product',\n 'bounds-check?',\n 'bounds-check',\n 'immutable',\n 'virtual-exemplar',\n 'harvest',\n 'remove',\n 'pad-head',\n 'last',\n 'set-fourth',\n 'cartesian-product',\n 'remove-eq',\n 'shorten',\n 'shorter',\n 'reversed?',\n 'shorter?',\n 'shortest',\n 'head-slice',\n 'pop*',\n 'tail-slice*',\n 'but-last-slice',\n 'iota?',\n 'append!',\n 'cut-slice',\n 'new-resizable',\n 'head-slice*',\n 'sequence-hashcode',\n 'pop',\n 'set-nth',\n '?nth',\n 'second',\n 'join',\n 'immutable-sequence?',\n '<reversed>',\n '3append-as',\n 'virtual-sequence',\n 'subseq?',\n 'remove-nth!',\n 'length',\n 'last-index',\n 'lengthen',\n 'assert-sequence',\n 'copy',\n 'move',\n 'third',\n 'first',\n 'tail?',\n 'set-first',\n 'prefix',\n 'bounds-error',\n '<repetition>',\n 'exchange',\n 'surround',\n 'cut',\n 'min-length',\n 'set-third',\n 'push-all',\n 'head?',\n 'subseq-start-from',\n 'delete-slice',\n 'rest',\n 'sum-lengths',\n 'head*',\n 'infimum',\n 'remove!',\n 'glue',\n 'slice-error',\n 'subseq',\n 'push',\n 'replace-slice',\n 'subseq-as',\n 'unclip-last'\n ],\n 'math-builtin': [\n 'number=',\n 'next-power-of-2',\n '?1+',\n 'fp-special?',\n 'imaginary-part',\n 'float>bits',\n 'number?',\n 'fp-infinity?',\n 'bignum?',\n 'fp-snan?',\n 'denominator',\n 'gcd',\n '*',\n '+',\n 'fp-bitwise=',\n '-',\n 'u>=',\n '/',\n '>=',\n 'bitand',\n 'power-of-2?',\n 'log2-expects-positive',\n 'neg?',\n '<',\n 'log2',\n '>',\n 'integer?',\n 'number',\n 'bits>double',\n '2/',\n 'zero?',\n 'bits>float',\n 'float?',\n 'shift',\n 'ratio?',\n 'rect>',\n 'even?',\n 'ratio',\n 'fp-sign',\n 'bitnot',\n '>fixnum',\n 'complex?',\n '/i',\n 'integer>fixnum',\n '/f',\n 'sgn',\n '>bignum',\n 'next-float',\n 'u<',\n 'u>',\n 'mod',\n 'recip',\n 'rational',\n '>float',\n '2^',\n 'integer',\n 'fixnum?',\n 'neg',\n 'fixnum',\n 'sq',\n 'bignum',\n '>rect',\n 'bit?',\n 'fp-qnan?',\n 'simple-gcd',\n 'complex',\n '<fp-nan>',\n 'real',\n '>fraction',\n 'double>bits',\n 'bitor',\n 'rem',\n 'fp-nan-payload',\n 'real-part',\n 'log2-expects-positive?',\n 'prev-float',\n 'align',\n 'unordered?',\n 'float',\n 'fp-nan?',\n 'abs',\n 'bitxor',\n 'integer>fixnum-strict',\n 'u<=',\n 'odd?',\n '<=',\n '/mod',\n '>integer',\n 'real?',\n 'rational?',\n 'numerator'\n ] // that's all for now\n }\n Object.keys(builtins).forEach(function (k) {\n factor[k].pattern = arrToWordsRegExp(builtins[k])\n })\n var combinators = [\n // kernel\n '2bi',\n 'while',\n '2tri',\n 'bi*',\n '4dip',\n 'both?',\n 'same?',\n 'tri@',\n 'curry',\n 'prepose',\n '3bi',\n '?if',\n 'tri*',\n '2keep',\n '3keep',\n 'curried',\n '2keepd',\n 'when',\n '2bi*',\n '2tri*',\n '4keep',\n 'bi@',\n 'keepdd',\n 'do',\n 'unless*',\n 'tri-curry',\n 'if*',\n 'loop',\n 'bi-curry*',\n 'when*',\n '2bi@',\n '2tri@',\n 'with',\n '2with',\n 'either?',\n 'bi',\n 'until',\n '3dip',\n '3curry',\n 'tri-curry*',\n 'tri-curry@',\n 'bi-curry',\n 'keepd',\n 'compose',\n '2dip',\n 'if',\n '3tri',\n 'unless',\n 'tuple',\n 'keep',\n '2curry',\n 'tri',\n 'most',\n 'while*',\n 'dip',\n 'composed',\n 'bi-curry@', // sequences\n 'find-last-from',\n 'trim-head-slice',\n 'map-as',\n 'each-from',\n 'none?',\n 'trim-tail',\n 'partition',\n 'if-empty',\n 'accumulate*',\n 'reject!',\n 'find-from',\n 'accumulate-as',\n 'collector-for-as',\n 'reject',\n 'map',\n 'map-sum',\n 'accumulate!',\n '2each-from',\n 'follow',\n 'supremum-by',\n 'map!',\n 'unless-empty',\n 'collector',\n 'padding',\n 'reduce-index',\n 'replicate-as',\n 'infimum-by',\n 'trim-tail-slice',\n 'count',\n 'find-index',\n 'filter',\n 'accumulate*!',\n 'reject-as',\n 'map-integers',\n 'map-find',\n 'reduce',\n 'selector',\n 'interleave',\n '2map',\n 'filter-as',\n 'binary-reduce',\n 'map-index-as',\n 'find',\n 'produce',\n 'filter!',\n 'replicate',\n 'cartesian-map',\n 'cartesian-each',\n 'find-index-from',\n 'map-find-last',\n '3map-as',\n '3map',\n 'find-last',\n 'selector-as',\n '2map-as',\n '2map-reduce',\n 'accumulate',\n 'each',\n 'each-index',\n 'accumulate*-as',\n 'when-empty',\n 'all?',\n 'collector-as',\n 'push-either',\n 'new-like',\n 'collector-for',\n '2selector',\n 'push-if',\n '2all?',\n 'map-reduce',\n '3each',\n 'any?',\n 'trim-slice',\n '2reduce',\n 'change-nth',\n 'produce-as',\n '2each',\n 'trim',\n 'trim-head',\n 'cartesian-find',\n 'map-index', // math\n 'if-zero',\n 'each-integer',\n 'unless-zero',\n '(find-integer)',\n 'when-zero',\n 'find-last-integer',\n '(all-integers?)',\n 'times',\n '(each-integer)',\n 'find-integer',\n 'all-integers?', // math.combinators\n 'unless-negative',\n 'if-positive',\n 'when-positive',\n 'when-negative',\n 'unless-positive',\n 'if-negative', // combinators\n 'case',\n '2cleave',\n 'cond>quot',\n 'case>quot',\n '3cleave',\n 'wrong-values',\n 'to-fixed-point',\n 'alist>quot',\n 'cond',\n 'cleave',\n 'call-effect',\n 'recursive-hashcode',\n 'spread',\n 'deep-spread>quot', // combinators.short-circuit\n '2||',\n '0||',\n 'n||',\n '0&&',\n '2&&',\n '3||',\n '1||',\n '1&&',\n 'n&&',\n '3&&', // combinators.smart\n 'smart-unless*',\n 'keep-inputs',\n 'reduce-outputs',\n 'smart-when*',\n 'cleave>array',\n 'smart-with',\n 'smart-apply',\n 'smart-if',\n 'inputs/outputs',\n 'output>sequence-n',\n 'map-outputs',\n 'map-reduce-outputs',\n 'dropping',\n 'output>array',\n 'smart-map-reduce',\n 'smart-2map-reduce',\n 'output>array-n',\n 'nullary',\n 'input<sequence',\n 'append-outputs',\n 'drop-inputs',\n 'inputs',\n 'smart-2reduce',\n 'drop-outputs',\n 'smart-reduce',\n 'preserving',\n 'smart-when',\n 'outputs',\n 'append-outputs-as',\n 'smart-unless',\n 'smart-if*',\n 'sum-outputs',\n 'input<sequence-unsafe',\n 'output>sequence' // tafn\n ]\n factor.combinators.pattern = arrToWordsRegExp(combinators)\n Prism.languages.factor = factor\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = $false\n$false.displayName = '$false'\n$false.aliases = []\nfunction $false(Prism) {\n ;(function (Prism) {\n /**\n * Based on the manual by Wouter van Oortmerssen.\n *\n * @see {@link https://github.com/PrismJS/prism/issues/2801#issue-829717504}\n */\n Prism.languages['false'] = {\n comment: {\n pattern: /\\{[^}]*\\}/\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n 'character-code': {\n pattern: /'(?:[^\\r]|\\r\\n?)/,\n alias: 'number'\n },\n 'assembler-code': {\n pattern: /\\d+`/,\n alias: 'important'\n },\n number: /\\d+/,\n operator: /[-!#$%&'*+,./:;=>?@\\\\^_`|~ßø]/,\n punctuation: /\\[|\\]/,\n variable: /[a-z]/,\n 'non-standard': {\n pattern: /[()<BDO®]/,\n alias: 'bold'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = firestoreSecurityRules\nfirestoreSecurityRules.displayName = 'firestoreSecurityRules'\nfirestoreSecurityRules.aliases = []\nfunction firestoreSecurityRules(Prism) {\n Prism.languages['firestore-security-rules'] = Prism.languages.extend(\n 'clike',\n {\n comment: /\\/\\/.*/,\n keyword:\n /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n operator: /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/\n }\n )\n delete Prism.languages['firestore-security-rules']['class-name']\n Prism.languages.insertBefore('firestore-security-rules', 'keyword', {\n path: {\n pattern:\n /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n inside: {\n operator: /=/,\n keyword: /\\*\\*/,\n punctuation: /[.$(){}]/\n }\n },\n punctuation: /\\//\n }\n },\n method: {\n // to make the pattern shorter, the actual method names are omitted\n pattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n lookbehind: true,\n alias: 'builtin',\n inside: {\n punctuation: /,/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = flow\nflow.displayName = 'flow'\nflow.aliases = []\nfunction flow(Prism) {\n ;(function (Prism) {\n Prism.languages.flow = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('flow', 'keyword', {\n type: [\n {\n pattern:\n /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\\b/,\n alias: 'tag'\n }\n ]\n })\n Prism.languages.flow['function-variable'].pattern =\n /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i\n delete Prism.languages.flow['parameter']\n Prism.languages.insertBefore('flow', 'operator', {\n 'flow-punctuation': {\n pattern: /\\{\\||\\|\\}/,\n alias: 'punctuation'\n }\n })\n if (!Array.isArray(Prism.languages.flow.keyword)) {\n Prism.languages.flow.keyword = [Prism.languages.flow.keyword]\n }\n Prism.languages.flow.keyword.unshift(\n {\n pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/,\n lookbehind: true\n }\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = fortran\nfortran.displayName = 'fortran'\nfortran.aliases = []\nfunction fortran(Prism) {\n Prism.languages.fortran = {\n 'quoted-number': {\n pattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n alias: 'number'\n },\n string: {\n pattern:\n /(?:\\b\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n inside: {\n comment: {\n pattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n lookbehind: true\n }\n }\n },\n comment: {\n pattern: /!.*/,\n greedy: true\n },\n boolean: /\\.(?:FALSE|TRUE)\\.(?:_\\w+)?/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n keyword: [\n // Types\n /\\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\\b/i, // END statements\n /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i, // Statements\n /\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i, // Others\n /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n ],\n operator: [\n /\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n {\n // Use lookbehind to prevent confusion with (/ /)\n pattern: /(^|(?!\\().)\\/(?!\\))/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\/|\\/\\)|[(),;:&]/\n }\n}\n","'use strict'\n\nmodule.exports = fsharp\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\nfunction fsharp(Prism) {\n Prism.languages.fsharp = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\(\\*(?!\\))[\\s\\S]*?\\*\\)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n lookbehind: true,\n inside: {\n operator: /->|\\*/,\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\\b/,\n number: [\n /\\b0x[\\da-fA-F]+(?:LF|lf|un)?\\b/,\n /\\b0b[01]+(?:uy|y)?\\b/,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n /\\b\\d+(?:[IlLsy]|UL|u[lsy]?)?\\b/\n ],\n operator:\n /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|<?\\|{1,3}>?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n })\n Prism.languages.insertBefore('fsharp', 'keyword', {\n preprocessor: {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /(^#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n })\n Prism.languages.insertBefore('fsharp', 'punctuation', {\n 'computation-expression': {\n pattern: /\\b[_a-z]\\w*(?=\\s*\\{)/i,\n alias: 'keyword'\n }\n })\n Prism.languages.insertBefore('fsharp', 'string', {\n annotation: {\n pattern: /\\[<.+?>\\]/,\n greedy: true,\n inside: {\n punctuation: /^\\[<|>\\]$/,\n 'class-name': {\n pattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n lookbehind: true\n },\n 'annotation-content': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.fsharp\n }\n }\n },\n char: {\n pattern:\n /'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n greedy: true\n }\n })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ftl\nftl.displayName = 'ftl'\nftl.aliases = []\nfunction ftl(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n // https://freemarker.apache.org/docs/dgui_template_exp.html\n // FTL expression with 4 levels of nesting supported\n var FTL_EXPR =\n /[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/\n .source\n for (var i = 0; i < 2; i++) {\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, function () {\n return FTL_EXPR\n })\n }\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, /[^\\s\\S]/.source)\n var ftl = {\n comment: /<#--[\\s\\S]*?-->/,\n string: [\n {\n // raw string\n pattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(\n /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: null\n }\n }\n }\n }\n ],\n keyword: /\\b(?:as)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'builtin-function': {\n pattern: /((?:^|[^?])\\?\\s*)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b\\w+(?=\\s*\\()/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator:\n /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n punctuation: /[,;.:()[\\]{}]/\n }\n ftl.string[1].inside.interpolation.inside.rest = ftl\n Prism.languages.ftl = {\n 'ftl-comment': {\n // the pattern is shortened to be more efficient\n pattern: /^<#--[\\s\\S]*/,\n alias: 'comment'\n },\n 'ftl-directive': {\n pattern: /^<[\\s\\S]+>$/,\n inside: {\n directive: {\n pattern: /(^<\\/?)[#@][a-z]\\w*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /^<\\/?|\\/?>$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n },\n 'ftl-interpolation': {\n pattern: /^\\$\\{[\\s\\S]*\\}$/,\n inside: {\n punctuation: /^\\$\\{|\\}$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n // eslint-disable-next-line regexp/no-useless-lazy\n var pattern = RegExp(\n /<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n ),\n 'gi'\n )\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ftl',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = gap\ngap.displayName = 'gap'\ngap.aliases = []\nfunction gap(Prism) {\n // https://www.gap-system.org/Manuals/doc/ref/chap4.html\n // https://www.gap-system.org/Manuals/doc/ref/chap27.html\n Prism.languages.gap = {\n shell: {\n pattern: /^gap>[\\s\\S]*?(?=^gap>|$(?![\\s\\S]))/m,\n greedy: true,\n inside: {\n gap: {\n pattern: /^(gap>).+(?:(?:\\r(?:\\n|(?!\\n))|\\n)>.*)*/,\n lookbehind: true,\n inside: null // see below\n },\n punctuation: /^gap>/\n }\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern:\n /(^|[^\\\\'\"])(?:'(?:[^\\r\\n\\\\']|\\\\.){1,10}'|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"(?!\")|\"\"\"[\\s\\S]*?\"\"\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n continuation: {\n pattern: /([\\r\\n])>/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }\n },\n keyword:\n /\\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: {\n pattern:\n /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n lookbehind: true\n },\n continuation: {\n pattern: /([\\r\\n])>/,\n lookbehind: true,\n alias: 'punctuation'\n },\n operator: /->|[-+*/^~=!]|<>|[<>]=?|:=|\\.\\./,\n punctuation: /[()[\\]{},;.:]/\n }\n Prism.languages.gap.shell.inside.gap.inside = Prism.languages.gap\n}\n","'use strict'\n\nmodule.exports = gcode\ngcode.displayName = 'gcode'\ngcode.aliases = []\nfunction gcode(Prism) {\n Prism.languages.gcode = {\n comment: /;.*|\\B\\(.*?\\)\\B/,\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n keyword: /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n property: /\\b[A-Z]/,\n checksum: {\n pattern: /(\\*)\\d+/,\n lookbehind: true,\n alias: 'number'\n },\n // T0:0:0\n punctuation: /[:*]/\n }\n}\n","'use strict'\n\nmodule.exports = gdscript\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\nfunction gdscript(Prism) {\n Prism.languages.gdscript = {\n comment: /#.*/,\n string: {\n pattern:\n /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n greedy: true\n },\n 'class-name': {\n // class_name Foo, extends Bar, class InnerClass\n // export(int) var baz, export(int, 0) var i\n // as Node\n // const FOO: int = 9, var bar: bool = true\n // func add(reference: Item, amount: int) -> Item:\n pattern:\n /(^(?:class|class_name|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n lookbehind: true\n },\n keyword:\n /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n variable: /\\$\\w+/,\n number: [\n /\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n /\\b(?:INF|NAN|PI|TAU)\\b/\n ],\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n punctuation: /[.:,;()[\\]{}]/\n }\n}\n","'use strict'\n\nmodule.exports = gedcom\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\nfunction gedcom(Prism) {\n Prism.languages.gedcom = {\n 'line-value': {\n // Preceded by level, optional pointer, and tag\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n lookbehind: true,\n inside: {\n pointer: {\n pattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n alias: 'variable'\n }\n }\n },\n tag: {\n // Preceded by level and optional pointer\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n lookbehind: true,\n alias: 'string'\n },\n level: {\n pattern: /(^[\\t ]*)\\d+/m,\n lookbehind: true,\n alias: 'number'\n },\n pointer: {\n pattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n alias: 'variable'\n }\n }\n}\n","'use strict'\n\nmodule.exports = gherkin\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\nfunction gherkin(Prism) {\n ;(function (Prism) {\n var tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source\n Prism.languages.gherkin = {\n pystring: {\n pattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n alias: 'string'\n },\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[ \\t]*)@\\S*/m,\n lookbehind: true\n },\n feature: {\n pattern:\n /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]+/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n scenario: {\n pattern:\n /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\\r\\n]*/m,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]*/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n 'table-body': {\n // Look-behind is used to skip the table head, which has the same format as any table row\n pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n lookbehind: true,\n inside: {\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n },\n td: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'string'\n },\n punctuation: /\\|/\n }\n },\n 'table-head': {\n pattern: RegExp(tableRow),\n inside: {\n th: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'variable'\n },\n punctuation: /\\|/\n }\n },\n atrule: {\n pattern:\n /(^[ \\t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \\t])/m,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n inside: {\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n }\n }\n },\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = git\ngit.displayName = 'git'\ngit.aliases = []\nfunction git(Prism) {\n Prism.languages.git = {\n /*\n * A simple one line comment like in a git status command\n * For instance:\n * $ git status\n * # On branch infinite-scroll\n * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n * # and have 1 and 2 different commits each, respectively.\n * nothing to commit (working directory clean)\n */\n comment: /^#.*/m,\n /*\n * Regexp to match the changed lines in a git diff output. Check the example below.\n */\n deleted: /^[-].*/m,\n inserted: /^\\+.*/m,\n /*\n * a string (double and simple quote)\n */\n string: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n /*\n * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n * For instance:\n * $ git add file.txt\n */\n command: {\n pattern: /^.*\\$ git .*$/m,\n inside: {\n /*\n * A git command can contain a parameter starting by a single or a double dash followed by a string\n * For instance:\n * $ git diff --cached\n * $ git log -p\n */\n parameter: /\\s--?\\w+/\n }\n },\n /*\n * Coordinates displayed in a git diff command\n * For instance:\n * $ git diff\n * diff --git file.txt file.txt\n * index 6214953..1d54a52 100644\n * --- file.txt\n * +++ file.txt\n * @@ -1 +1,2 @@\n * -Here's my tetx file\n * +Here's my text file\n * +And this is the second line\n */\n coord: /^@@.*@@$/m,\n /*\n * Match a \"commit [SHA1]\" line in a git log output.\n * For instance:\n * $ git log\n * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n * Author: lgiraudel\n * Date: Mon Feb 17 11:18:34 2014 +0100\n *\n * Add of a new line\n */\n 'commit-sha1': /^commit \\w{40}$/m\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = glsl\nglsl.displayName = 'glsl'\nglsl.aliases = []\nfunction glsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.glsl = Prism.languages.extend('c', {\n keyword:\n /\\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = gml\ngml.displayName = 'gml'\ngml.aliases = []\nfunction gml(Prism) {\n Prism.languages.gamemakerlanguage = Prism.languages.gml =\n Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\\b/,\n number:\n /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n operator:\n /--|\\+\\+|[-+%/=]=?|!=|\\*\\*?=?|<[<=>]?|>[=>]?|&&?|\\^\\^?|\\|\\|?|~|\\b(?:and|at|not|or|with|xor)\\b/,\n constant:\n /\\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\\d|numpad\\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\\w+)\\b/,\n variable:\n /\\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\\d)|argument|global|local|other|self)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = gn\ngn.displayName = 'gn'\ngn.aliases = ['gni']\nfunction gn(Prism) {\n // https://gn.googlesource.com/gn/+/refs/heads/main/docs/reference.md#grammar\n Prism.languages.gn = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'string-literal': {\n pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[\\s\\S]*?\\}|[a-zA-Z_]\\w*|0x[a-fA-F0-9]{2})/,\n lookbehind: true,\n inside: {\n number: /^\\$0x[\\s\\S]{2}$/,\n variable: /^\\$\\w+$/,\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n string: /[\\s\\S]+/\n }\n },\n keyword: /\\b(?:else|if)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'builtin-function': {\n // a few functions get special highlighting to improve readability\n pattern:\n /\\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\\s*\\()/i,\n alias: 'keyword'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n constant:\n /\\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\\b/,\n number: /-?\\b\\d+\\b/,\n operator: /[-+!=<>]=?|&&|\\|\\|/,\n punctuation: /[(){}[\\],.]/\n }\n Prism.languages.gn['string-literal'].inside['interpolation'].inside[\n 'expression'\n ].inside = Prism.languages.gn\n Prism.languages.gni = Prism.languages.gn\n}\n","'use strict'\n\nmodule.exports = goModule\ngoModule.displayName = 'goModule'\ngoModule.aliases = []\nfunction goModule(Prism) {\n // https://go.dev/ref/mod#go-mod-file-module\n Prism.languages['go-mod'] = Prism.languages['go-module'] = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n version: {\n pattern: /(^|[\\s()[\\],])v\\d+\\.\\d+\\.\\d+(?:[+-][-+.\\w]*)?(?![^\\s()[\\],])/,\n lookbehind: true,\n alias: 'number'\n },\n 'go-version': {\n pattern: /((?:^|\\s)go\\s+)\\d+(?:\\.\\d+){1,2}/,\n lookbehind: true,\n alias: 'number'\n },\n keyword: {\n pattern: /^([ \\t]*)(?:exclude|go|module|replace|require|retract)\\b/m,\n lookbehind: true\n },\n operator: /=>/,\n punctuation: /[()[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = go\ngo.displayName = 'go'\ngo.aliases = []\nfunction go(Prism) {\n Prism.languages.go = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n boolean: /\\b(?:_|false|iota|nil|true)\\b/,\n number: [\n // binary and octal integers\n /\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, // hexadecimal integers and floats\n /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, // decimal integers and floats\n /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n ],\n operator:\n /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n builtin:\n /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n })\n Prism.languages.insertBefore('go', 'string', {\n char: {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n greedy: true\n }\n })\n delete Prism.languages.go['class-name']\n}\n","'use strict'\n\nmodule.exports = graphql\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\nfunction graphql(Prism) {\n Prism.languages.graphql = {\n comment: /#.*/,\n description: {\n pattern:\n /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n greedy: true,\n alias: 'string',\n inside: {\n 'language-markdown': {\n pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: Prism.languages.markdown\n }\n }\n },\n string: {\n pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'atom-input': {\n pattern: /\\b[A-Z]\\w*Input\\b/,\n alias: 'class-name'\n },\n scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n 'class-name': {\n pattern:\n /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n lookbehind: true\n },\n fragment: {\n pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-mutation': {\n pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-query': {\n pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n keyword:\n /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n operator: /[!=|&]|\\.{3}/,\n 'property-query': /\\w+(?=\\s*\\()/,\n object: /\\w+(?=\\s*\\{)/,\n punctuation: /[!(){}\\[\\]:=,]/,\n property: /\\w+/\n }\n Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n if (env.language !== 'graphql') {\n return\n }\n /**\n * get the graphql token stream that we want to customize\n *\n * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n * @type {Token[]}\n */\n var validTokens = env.tokens.filter(function (token) {\n return (\n typeof token !== 'string' &&\n token.type !== 'comment' &&\n token.type !== 'scalar'\n )\n })\n var currentIndex = 0\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {number} offset\n * @returns {Token | undefined}\n */\n function getToken(offset) {\n return validTokens[currentIndex + offset]\n }\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {readonly string[]} types\n * @param {number} [offset=0]\n * @returns {boolean}\n */\n function isTokenType(types, offset) {\n offset = offset || 0\n for (var i = 0; i < types.length; i++) {\n var token = getToken(i + offset)\n if (!token || token.type !== types[i]) {\n return false\n }\n }\n return true\n }\n /**\n * Returns the index of the closing bracket to an opening bracket.\n *\n * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n *\n * If no closing bracket could be found, `-1` will be returned.\n *\n * @param {RegExp} open\n * @param {RegExp} close\n * @returns {number}\n */\n function findClosingBracket(open, close) {\n var stackHeight = 1\n for (var i = currentIndex; i < validTokens.length; i++) {\n var token = validTokens[i]\n var content = token.content\n if (token.type === 'punctuation' && typeof content === 'string') {\n if (open.test(content)) {\n stackHeight++\n } else if (close.test(content)) {\n stackHeight--\n if (stackHeight === 0) {\n return i\n }\n }\n }\n }\n return -1\n }\n /**\n * Adds an alias to the given token.\n *\n * @param {Token} token\n * @param {string} alias\n * @returns {void}\n */\n function addAlias(token, alias) {\n var aliases = token.alias\n if (!aliases) {\n token.alias = aliases = []\n } else if (!Array.isArray(aliases)) {\n token.alias = aliases = [aliases]\n }\n aliases.push(alias)\n }\n for (; currentIndex < validTokens.length; ) {\n var startToken = validTokens[currentIndex++] // add special aliases for mutation tokens\n if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n // any array of the names of all input variables (if any)\n var inputVariables = []\n if (\n isTokenType(['definition-mutation', 'punctuation']) &&\n getToken(1).content === '('\n ) {\n // definition\n currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n if (definitionEnd === -1) {\n continue\n } // find all input variables\n for (; currentIndex < definitionEnd; currentIndex++) {\n var t = getToken(0)\n if (t.type === 'variable') {\n addAlias(t, 'variable-input')\n inputVariables.push(t.content)\n }\n }\n currentIndex = definitionEnd + 1\n }\n if (\n isTokenType(['punctuation', 'property-query']) &&\n getToken(0).content === '{'\n ) {\n currentIndex++ // skip opening bracket\n addAlias(getToken(0), 'property-mutation')\n if (inputVariables.length > 0) {\n var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n if (mutationEnd === -1) {\n continue\n } // give references to input variables a special alias\n for (var i = currentIndex; i < mutationEnd; i++) {\n var varToken = validTokens[i]\n if (\n varToken.type === 'variable' &&\n inputVariables.indexOf(varToken.content) >= 0\n ) {\n addAlias(varToken, 'variable-input')\n }\n }\n }\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = groovy\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\nfunction groovy(Prism) {\n Prism.languages.groovy = Prism.languages.extend('clike', {\n string: [\n {\n // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n pattern:\n /(\"\"\"|''')(?:[^\\\\]|\\\\[\\s\\S])*?\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n greedy: true\n },\n {\n // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n // simple division (see JS regex), so find a fix maybe?\n pattern: /([\"'/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n }\n ],\n keyword:\n /\\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n number:\n /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n lookbehind: true\n },\n punctuation: /\\.+|[{}[\\];(),:$]/\n })\n Prism.languages.insertBefore('groovy', 'string', {\n shebang: {\n pattern: /#!.+/,\n alias: 'comment'\n }\n })\n Prism.languages.insertBefore('groovy', 'punctuation', {\n 'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n })\n Prism.languages.insertBefore('groovy', 'function', {\n annotation: {\n pattern: /(^|[^.])@\\w+/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Handle string interpolation\n Prism.hooks.add('wrap', function (env) {\n if (env.language === 'groovy' && env.type === 'string') {\n var delimiter = env.content.value[0]\n if (delimiter != \"'\") {\n var pattern = /([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n if (delimiter === '$') {\n pattern = /([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n } // To prevent double HTML-encoding we have to decode env.content first\n env.content.value = env.content.value\n .replace(/&lt;/g, '<')\n .replace(/&amp;/g, '&')\n env.content = Prism.highlight(env.content.value, {\n expression: {\n pattern: pattern,\n lookbehind: true,\n inside: Prism.languages.groovy\n }\n })\n env.classes.push(delimiter === '/' ? 'regex' : 'gstring')\n }\n }\n })\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = haml\nhaml.displayName = 'haml'\nhaml.aliases = []\nfunction haml(Prism) {\n Prism.register(refractorRuby)\n /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n ;(function (Prism) {\n Prism.languages.haml = {\n // Multiline stuff should appear before the rest\n 'multiline-comment': {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n lookbehind: true,\n alias: 'comment'\n },\n 'multiline-code': [\n {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n lookbehind: true,\n inside: Prism.languages.ruby\n }\n ],\n // See at the end of the file for known filters\n filter: {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'symbol'\n }\n }\n },\n markup: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n lookbehind: true\n },\n tag: {\n // Allows for one nested group of braces\n pattern:\n /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n lookbehind: true,\n inside: {\n attributes: [\n {\n // Lookbehind tries to prevent interpolations from breaking it all\n // Allows for one nested group of braces\n pattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n lookbehind: true\n },\n 'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[=(),]/\n }\n },\n {\n pattern: /\\[[^\\]]+\\]/,\n inside: Prism.languages.ruby\n }\n ],\n punctuation: /[<>]/\n }\n },\n code: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n // Interpolations in plain text\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n ruby: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.ruby\n }\n }\n },\n punctuation: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n lookbehind: true\n }\n }\n var filter_pattern =\n '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+' // Non exhaustive list of available filters and associated languages\n var filters = [\n 'css',\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'erb',\n 'javascript',\n 'less',\n 'markdown',\n 'ruby',\n 'scss',\n 'textile'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('{{filter_name}}', function () {\n return filter.filter\n })\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'symbol'\n },\n text: {\n pattern: /[\\s\\S]+/,\n alias: [filter.language, 'language-' + filter.language],\n inside: Prism.languages[filter.language]\n }\n }\n }\n }\n }\n Prism.languages.insertBefore('haml', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = handlebars\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = ['hbs']\nfunction handlebars(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.handlebars = {\n comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n delimiter: {\n pattern: /^\\{\\{\\{?|\\}\\}\\}?$/,\n alias: 'punctuation'\n },\n string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n boolean: /\\b(?:false|true)\\b/,\n block: {\n pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/,\n lookbehind: true,\n alias: 'keyword'\n },\n brackets: {\n pattern: /\\[[^\\]]+\\]/,\n inside: {\n punctuation: /\\[|\\]/,\n variable: /[\\s\\S]+/\n }\n },\n punctuation: /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n variable: /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'handlebars',\n handlebarsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(\n env,\n 'handlebars'\n )\n })\n Prism.languages.hbs = Prism.languages.handlebars\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = haskell\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\nfunction haskell(Prism) {\n Prism.languages.haskell = {\n comment: {\n pattern:\n /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|\\{-[\\s\\S]*?-\\})/m,\n lookbehind: true\n },\n char: {\n pattern:\n /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|hiding|import|qualified)\\b/,\n punctuation: /\\./\n }\n },\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n // decimal integers and floating point numbers | octal integers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n operator: [\n {\n // infix operator\n pattern: /`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n greedy: true\n },\n {\n // function composition\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }, // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n //\n // This regex means: /[-!#$%*+=?&@|~.:<>^\\\\\\/]+/ without /\\./.\n /[-!#$%*+=?&@|~:<>^\\\\\\/][-!#$%*+=?&@|~.:<>^\\\\\\/]*|\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+/\n ],\n // In Haskell, nearly everything is a variable, do not highlight these.\n hvariable: {\n pattern: /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*/,\n inside: {\n punctuation: /\\./\n }\n },\n constant: {\n pattern: /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.hs = Prism.languages.haskell\n}\n","'use strict'\n\nmodule.exports = haxe\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\nfunction haxe(Prism) {\n Prism.languages.haxe = Prism.languages.extend('clike', {\n string: {\n // Strings can be multi-line\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n 'class-name': [\n {\n pattern:\n /(\\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\\s+)[A-Z_]\\w*/,\n lookbehind: true\n }, // based on naming convention\n /\\b[A-Z]\\w*/\n ],\n // The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n keyword:\n /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\\.)\\b/,\n function: {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:<[^<>]*>\\s*)?\\()/i,\n greedy: true\n },\n operator: /\\.{3}|\\+\\+|--|&&|\\|\\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/\n })\n Prism.languages.insertBefore('haxe', 'string', {\n 'string-interpolation': {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^{}]+\\})/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.haxe\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('haxe', 'class-name', {\n regex: {\n pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[a-z]*/,\n greedy: true,\n inside: {\n 'regex-flags': /\\b[a-z]+$/,\n 'regex-source': {\n pattern: /^(~\\/)[\\s\\S]+(?=\\/$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^~\\/|\\/$/\n }\n }\n })\n Prism.languages.insertBefore('haxe', 'keyword', {\n preprocessor: {\n pattern: /#(?:else|elseif|end|if)\\b.*/,\n alias: 'property'\n },\n metadata: {\n pattern: /@:?[\\w.]+/,\n alias: 'symbol'\n },\n reification: {\n pattern: /\\$(?:\\w+|(?=\\{))/,\n alias: 'important'\n }\n })\n}\n","'use strict'\n\nmodule.exports = hcl\nhcl.displayName = 'hcl'\nhcl.aliases = []\nfunction hcl(Prism) {\n Prism.languages.hcl = {\n comment: /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n heredoc: {\n pattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n greedy: true,\n alias: 'string'\n },\n keyword: [\n {\n pattern:\n /(?:data|resource)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+\\{)/i,\n inside: {\n type: {\n pattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n {\n pattern:\n /(?:backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?=\\{)/i,\n inside: {\n type: {\n pattern:\n /(backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n /[\\w-]+(?=\\s+\\{)/\n ],\n property: [/[-\\w\\.]+(?=\\s*=(?!=))/, /\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/],\n string: {\n pattern:\n /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n lookbehind: true,\n inside: {\n type: {\n pattern:\n /(\\b(?:count|data|local|module|path|self|terraform|var)\\b\\.)[\\w\\*]+/i,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: /\\b(?:count|data|local|module|path|self|terraform|var)\\b/i,\n function: /\\w+(?=\\()/,\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/\n }\n }\n }\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:false|true)\\b/i,\n punctuation: /[=\\[\\]{}]/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = hlsl\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\nfunction hlsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.hlsl = Prism.languages.extend('c', {\n // Regarding keywords and class names:\n // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n 'class-name': [\n Prism.languages.c['class-name'],\n /\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n ],\n keyword: [\n // HLSL keyword\n /\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/, // scalar, vector, and matrix types\n /\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n ],\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n number:\n /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = hoon\nhoon.displayName = 'hoon'\nhoon.aliases = []\nfunction hoon(Prism) {\n Prism.languages.hoon = {\n comment: {\n pattern: /::.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n constant: /%(?:\\.[ny]|[\\w-]+)/,\n 'class-name': /@(?:[a-z0-9-]*[a-z0-9])?|\\*/i,\n function: /(?:\\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,\n keyword:\n /\\.[\\^\\+\\*=\\?]|![><:\\.=\\?!]|=[>|:,\\.\\-\\^<+;/~\\*\\?]|\\?[>|:\\.\\-\\^<\\+&~=@!]|\\|[\\$_%:\\.\\-\\^~\\*=@\\?]|\\+[|\\$\\+\\*]|:[_\\-\\^\\+~\\*]|%[_:\\.\\-\\^\\+~\\*=]|\\^[|:\\.\\-\\+&~\\*=\\?]|\\$[|_%:<>\\-\\^&~@=\\?]|;[:<\\+;\\/~\\*=]|~[>|\\$_%<\\+\\/&=\\?!]|--|==/\n }\n}\n","'use strict'\n\nmodule.exports = hpkp\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\nfunction hpkp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n */\n Prism.languages.hpkp = {\n directive: {\n pattern:\n /\\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\\s;=]|$)/i,\n alias: 'property'\n },\n operator: /=/,\n punctuation: /;/\n }\n}\n","'use strict'\n\nmodule.exports = hsts\nhsts.displayName = 'hsts'\nhsts.aliases = []\nfunction hsts(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n */\n Prism.languages.hsts = {\n directive: {\n pattern: /\\b(?:includeSubDomains|max-age|preload)(?=[\\s;=]|$)/i,\n alias: 'property'\n },\n operator: /=/,\n punctuation: /;/\n }\n}\n","'use strict'\n\nmodule.exports = http\nhttp.displayName = 'http'\nhttp.aliases = []\nfunction http(Prism) {\n ;(function (Prism) {\n /**\n * @param {string} name\n * @returns {RegExp}\n */\n function headerValueOf(name) {\n return RegExp('(^(?:' + name + '):[ \\t]*(?![ \\t]))[^]+', 'i')\n }\n Prism.languages.http = {\n 'request-line': {\n pattern:\n /^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\\s(?:https?:\\/\\/|\\/)\\S*\\sHTTP\\/[\\d.]+/m,\n inside: {\n // HTTP Method\n method: {\n pattern: /^[A-Z]+\\b/,\n alias: 'property'\n },\n // Request Target e.g. http://example.com, /path/to/file\n 'request-target': {\n pattern: /^(\\s)(?:https?:\\/\\/|\\/)\\S*(?=\\s)/,\n lookbehind: true,\n alias: 'url',\n inside: Prism.languages.uri\n },\n // HTTP Version\n 'http-version': {\n pattern: /^(\\s)HTTP\\/[\\d.]+/,\n lookbehind: true,\n alias: 'property'\n }\n }\n },\n 'response-status': {\n pattern: /^HTTP\\/[\\d.]+ \\d+ .+/m,\n inside: {\n // HTTP Version\n 'http-version': {\n pattern: /^HTTP\\/[\\d.]+/,\n alias: 'property'\n },\n // Status Code\n 'status-code': {\n pattern: /^(\\s)\\d+(?=\\s)/,\n lookbehind: true,\n alias: 'number'\n },\n // Reason Phrase\n 'reason-phrase': {\n pattern: /^(\\s).+/,\n lookbehind: true,\n alias: 'string'\n }\n }\n },\n header: {\n pattern: /^[\\w-]+:.+(?:(?:\\r\\n?|\\n)[ \\t].+)*/m,\n inside: {\n 'header-value': [\n {\n pattern: headerValueOf(/Content-Security-Policy/.source),\n lookbehind: true,\n alias: ['csp', 'languages-csp'],\n inside: Prism.languages.csp\n },\n {\n pattern: headerValueOf(/Public-Key-Pins(?:-Report-Only)?/.source),\n lookbehind: true,\n alias: ['hpkp', 'languages-hpkp'],\n inside: Prism.languages.hpkp\n },\n {\n pattern: headerValueOf(/Strict-Transport-Security/.source),\n lookbehind: true,\n alias: ['hsts', 'languages-hsts'],\n inside: Prism.languages.hsts\n },\n {\n pattern: headerValueOf(/[^:]+/.source),\n lookbehind: true\n }\n ],\n 'header-name': {\n pattern: /^[^:]+/,\n alias: 'keyword'\n },\n punctuation: /^:/\n }\n }\n } // Create a mapping of Content-Type headers to language definitions\n var langs = Prism.languages\n var httpLanguages = {\n 'application/javascript': langs.javascript,\n 'application/json': langs.json || langs.javascript,\n 'application/xml': langs.xml,\n 'text/xml': langs.xml,\n 'text/html': langs.html,\n 'text/css': langs.css,\n 'text/plain': langs.plain\n } // Declare which types can also be suffixes\n var suffixTypes = {\n 'application/json': true,\n 'application/xml': true\n }\n /**\n * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n *\n * @param {string} contentType\n * @returns {string}\n */\n function getSuffixPattern(contentType) {\n var suffix = contentType.replace(/^[a-z]+\\//, '')\n var suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])'\n return '(?:' + contentType + '|' + suffixPattern + ')'\n } // Insert each content type parser that has its associated language\n // currently loaded.\n var options\n for (var contentType in httpLanguages) {\n if (httpLanguages[contentType]) {\n options = options || {}\n var pattern = suffixTypes[contentType]\n ? getSuffixPattern(contentType)\n : contentType\n options[contentType.replace(/\\//g, '-')] = {\n pattern: RegExp(\n '(' +\n /content-type:\\s*/.source +\n pattern +\n /(?:(?:\\r\\n?|\\n)[\\w-].*)*(?:\\r(?:\\n|(?!\\n))|\\n)/.source +\n ')' + // This is a little interesting:\n // The HTTP format spec required 1 empty line before the body to make everything unambiguous.\n // However, when writing code by hand (e.g. to display on a website) people can forget about this,\n // so we want to be liberal here. We will allow the empty line to be omitted if the first line of\n // the body does not start with a [\\w-] character (as headers do).\n /[^ \\t\\w-][\\s\\S]*/.source,\n 'i'\n ),\n lookbehind: true,\n inside: httpLanguages[contentType]\n }\n }\n }\n if (options) {\n Prism.languages.insertBefore('http', 'header', options)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ichigojam\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\nfunction ichigojam(Prism) {\n // according to the offical reference (EN)\n // https://ichigojam.net/IchigoJam-en.html\n Prism.languages.ichigojam = {\n comment: /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n greedy: true\n },\n number: /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n function:\n /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n label: /(?:\\B@\\S+)/,\n operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n punctuation: /[\\[,;:()\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = icon\nicon.displayName = 'icon'\nicon.aliases = []\nfunction icon(Prism) {\n Prism.languages.icon = {\n comment: /#.*/,\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n number: /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n 'builtin-keyword': {\n pattern:\n /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n alias: 'variable'\n },\n directive: {\n pattern: /\\$\\w+/,\n alias: 'builtin'\n },\n keyword:\n /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n operator:\n /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n punctuation: /[\\[\\](){},;]/\n }\n}\n","'use strict'\n\nmodule.exports = icuMessageFormat\nicuMessageFormat.displayName = 'icuMessageFormat'\nicuMessageFormat.aliases = []\nfunction icuMessageFormat(Prism) {\n // https://unicode-org.github.io/icu/userguide/format_parse/messages/\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/MessageFormat.html\n ;(function (Prism) {\n /**\n * @param {string} source\n * @param {number} level\n * @returns {string}\n */\n function nested(source, level) {\n if (level <= 0) {\n return /[]/.source\n } else {\n return source.replace(/<SELF>/g, function () {\n return nested(source, level - 1)\n })\n }\n }\n var stringPattern = /'[{}:=,](?:[^']|'')*'(?!')/\n var escape = {\n pattern: /''/,\n greedy: true,\n alias: 'operator'\n }\n var string = {\n pattern: stringPattern,\n greedy: true,\n inside: {\n escape: escape\n }\n }\n var argumentSource = nested(\n /\\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\\}/.source.replace(\n /<STR>/g,\n function () {\n return stringPattern.source\n }\n ),\n 8\n )\n var nestedMessage = {\n pattern: RegExp(argumentSource),\n inside: {\n message: {\n pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: null // see below\n },\n 'message-delimiter': {\n pattern: /./,\n alias: 'punctuation'\n }\n }\n }\n Prism.languages['icu-message-format'] = {\n argument: {\n pattern: RegExp(argumentSource),\n greedy: true,\n inside: {\n content: {\n pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: {\n 'argument-name': {\n pattern: /^(\\s*)[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'choice-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1ChoiceFormat.html#details\n pattern: /^(\\s*,\\s*choice\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\|/,\n range: {\n pattern: /^(\\s*)[+-]?(?:\\d+(?:\\.\\d*)?|\\u221e)\\s*[<#\\u2264]/,\n lookbehind: true,\n inside: {\n operator: /[<#\\u2264]/,\n number: /\\S+/\n }\n },\n rest: null // see below\n }\n },\n 'plural-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/PluralFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n pattern:\n /^(\\s*,\\s*(?:plural|selectordinal)\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n offset: /^offset:\\s*\\d+/,\n 'nested-message': nestedMessage,\n selector: {\n pattern: /=\\d+|[^{}:=,\\s]+/,\n inside: {\n keyword: /^(?:few|many|one|other|two|zero)$/\n }\n }\n }\n },\n 'select-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/SelectFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n pattern: /^(\\s*,\\s*select\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n 'nested-message': nestedMessage,\n selector: {\n pattern: /[^{}:=,\\s]+/,\n inside: {\n keyword: /^other$/\n }\n }\n }\n },\n keyword: /\\b(?:choice|plural|select|selectordinal)\\b/,\n 'arg-type': {\n pattern: /\\b(?:date|duration|number|ordinal|spellout|time)\\b/,\n alias: 'keyword'\n },\n 'arg-skeleton': {\n pattern: /(,\\s*)::[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'arg-style': {\n pattern:\n /(,\\s*)(?:currency|full|integer|long|medium|percent|short)(?=\\s*$)/,\n lookbehind: true\n },\n 'arg-style-text': {\n pattern: RegExp(\n /(^\\s*,\\s*(?=\\S))/.source +\n nested(/(?:[^{}']|'[^']*'|\\{(?:<SELF>)?\\})+/.source, 8) +\n '$'\n ),\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /,/\n }\n },\n 'argument-delimiter': {\n pattern: /./,\n alias: 'operator'\n }\n }\n },\n escape: escape,\n string: string\n }\n nestedMessage.inside.message.inside = Prism.languages['icu-message-format']\n Prism.languages['icu-message-format'].argument.inside.content.inside[\n 'choice-style'\n ].inside.rest = Prism.languages['icu-message-format']\n })(Prism)\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = idris\nidris.displayName = 'idris'\nidris.aliases = ['idr']\nfunction idris(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.idris = Prism.languages.extend('haskell', {\n comment: {\n pattern: /(?:(?:--|\\|\\|\\|).*$|\\{-[\\s\\S]*?-\\})/m\n },\n keyword:\n /\\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\\b/,\n builtin: undefined\n })\n Prism.languages.insertBefore('idris', 'keyword', {\n 'import-statement': {\n pattern: /(^\\s*import\\s+)(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*/m,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.idr = Prism.languages.idris\n}\n","'use strict'\n\nmodule.exports = iecst\niecst.displayName = 'iecst'\niecst.aliases = []\nfunction iecst(Prism) {\n Prism.languages.iecst = {\n comment: [\n {\n pattern:\n /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: [\n /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\\b/i,\n /\\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\\b/\n ],\n 'class-name':\n /\\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\\b/,\n address: {\n pattern: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n alias: 'symbol'\n },\n number:\n /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:D|DT|T|TOD)#[\\d_shmd:]*|\\b[A-Z]*#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/,\n operator:\n /S?R?:?=>?|&&?|\\*\\*?|<[=>]?|>=?|[-:^/+#]|\\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n punctuation: /[()[\\].,;]/\n }\n}\n","'use strict'\n\nmodule.exports = ignore\nignore.displayName = 'ignore'\nignore.aliases = ['gitignore', 'hgignore', 'npmignore']\nfunction ignore(Prism) {\n ;(function (Prism) {\n Prism.languages.ignore = {\n // https://git-scm.com/docs/gitignore\n comment: /^#.*/m,\n entry: {\n pattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n alias: 'string',\n inside: {\n operator: /^!|\\*\\*?|\\?/,\n regex: {\n pattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n lookbehind: true\n },\n punctuation: /\\//\n }\n }\n }\n Prism.languages.gitignore = Prism.languages.ignore\n Prism.languages.hgignore = Prism.languages.ignore\n Prism.languages.npmignore = Prism.languages.ignore\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = inform7\ninform7.displayName = 'inform7'\ninform7.aliases = []\nfunction inform7(Prism) {\n Prism.languages.inform7 = {\n string: {\n pattern: /\"[^\"]*\"/,\n inside: {\n substitution: {\n pattern: /\\[[^\\[\\]]+\\]/,\n inside: {\n delimiter: {\n pattern: /\\[|\\]/,\n alias: 'punctuation'\n } // See rest below\n }\n }\n }\n },\n comment: {\n pattern: /\\[[^\\[\\]]+\\]/,\n greedy: true\n },\n title: {\n pattern: /^[ \\t]*(?:book|chapter|part(?! of)|section|table|volume)\\b.+/im,\n alias: 'important'\n },\n number: {\n pattern:\n /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\\b(?!-)/i,\n lookbehind: true\n },\n verb: {\n pattern:\n /(^|[^-])\\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\\b(?!-)/i,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern:\n /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n lookbehind: true\n },\n property: {\n pattern:\n /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n lookbehind: true,\n alias: 'symbol'\n },\n position: {\n pattern:\n /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n pattern:\n /(^|[^-])\\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n lookbehind: true,\n alias: 'variable'\n },\n punctuation: /[.,:;(){}]/\n }\n Prism.languages.inform7['string'].inside['substitution'].inside.rest =\n Prism.languages.inform7 // We don't want the remaining text in the substitution to be highlighted as the string.\n Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n pattern: /\\S(?:\\s*\\S)*/,\n alias: 'comment'\n }\n}\n","'use strict'\n\nmodule.exports = ini\nini.displayName = 'ini'\nini.aliases = []\nfunction ini(Prism) {\n Prism.languages.ini = {\n /**\n * The component mimics the behavior of the Win32 API parser.\n *\n * @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}\n */\n comment: {\n pattern: /(^[ \\f\\t\\v]*)[#;][^\\n\\r]*/m,\n lookbehind: true\n },\n section: {\n pattern: /(^[ \\f\\t\\v]*)\\[[^\\n\\r\\]]*\\]?/m,\n lookbehind: true,\n inside: {\n 'section-name': {\n pattern: /(^\\[[ \\f\\t\\v]*)[^ \\f\\t\\v\\]]+(?:[ \\f\\t\\v]+[^ \\f\\t\\v\\]]+)*/,\n lookbehind: true,\n alias: 'selector'\n },\n punctuation: /\\[|\\]/\n }\n },\n key: {\n pattern:\n /(^[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v=]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v=]+)*(?=[ \\f\\t\\v]*=)/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n value: {\n pattern: /(=[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v]+)*/,\n lookbehind: true,\n alias: 'attr-value',\n inside: {\n 'inner-value': {\n pattern: /^(\"|').+(?=\\1$)/,\n lookbehind: true\n }\n }\n },\n punctuation: /=/\n }\n}\n","'use strict'\n\nmodule.exports = io\nio.displayName = 'io'\nio.aliases = []\nfunction io(Prism) {\n Prism.languages.io = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*|#.*)/,\n lookbehind: true,\n greedy: true\n },\n 'triple-quoted-string': {\n pattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n builtin:\n /\\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\\b/,\n boolean: /\\b(?:false|nil|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n operator:\n /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:and|not|or|return)\\b|@@?|\\?\\??|\\.\\./,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = j\nj.displayName = 'j'\nj.aliases = []\nfunction j(Prism) {\n Prism.languages.j = {\n comment: {\n pattern: /\\bNB\\..*/,\n greedy: true\n },\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\\w+|goto_\\w+|if|label_\\w+|return|select|throw|try|while|whilst)\\.)/,\n verb: {\n // Negative look-ahead prevents bad highlighting\n // of ^: ;. =. =: !. !:\n pattern:\n /(?!\\^:|;\\.|[=!][.:])(?:\\{(?:\\.|::?)?|p(?:\\.\\.?|:)|[=!\\]]|[<>+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n alias: 'keyword'\n },\n number:\n /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:ad|ar|[ejpx])_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n adverb: {\n pattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n alias: 'builtin'\n },\n operator: /[=a][.:]|_\\./,\n conjunction: {\n pattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n}\n","'use strict'\n\nmodule.exports = java\njava.displayName = 'java'\njava.aliases = []\nfunction java(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/ // full package (optional) + parent classes (optional)\n var classNamePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // based on the java naming conventions\n var className = {\n pattern: RegExp(classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /\\./\n }\n }\n Prism.languages.java = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n className,\n {\n // variables and parameters\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n function: [\n Prism.languages.clike.function,\n {\n pattern: /(::\\s*)[a-z_]\\w*/,\n lookbehind: true\n }\n ],\n number:\n /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n operator: {\n pattern:\n /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('java', 'string', {\n 'triple-quoted-string': {\n // http://openjdk.java.net/jeps/355#Description\n pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n char: {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('java', 'class-name', {\n annotation: {\n pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n lookbehind: true,\n alias: 'punctuation'\n },\n generics: {\n pattern:\n /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n },\n namespace: {\n pattern: RegExp(\n /(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = javadoc\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\nfunction javadoc(Prism) {\n Prism.register(refractorJava)\n Prism.register(refractorJavadoclike)\n ;(function (Prism) {\n var codeLinePattern = /(^(?:[\\t ]*(?:\\*\\s*)*))[^*\\s].*$/m\n var memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source\n var reference =\n /(?:\\b[a-zA-Z]\\w+\\s*\\.\\s*)*\\b[A-Z]\\w*(?:\\s*<mem>)?|<mem>/.source.replace(\n /<mem>/g,\n function () {\n return memberReference\n }\n )\n Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})\n Prism.languages.insertBefore('javadoc', 'keyword', {\n reference: {\n pattern: RegExp(\n /(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)/\n .source +\n '(?:' +\n reference +\n ')'\n ),\n lookbehind: true,\n inside: {\n function: {\n pattern: /(#\\s*)\\w+(?=\\s*\\()/,\n lookbehind: true\n },\n field: {\n pattern: /(#\\s*)\\w+/,\n lookbehind: true\n },\n namespace: {\n pattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n inside: {\n punctuation: /\\./\n }\n },\n 'class-name': /\\b[A-Z]\\w*/,\n keyword: Prism.languages.java.keyword,\n punctuation: /[#()[\\],.]/\n }\n },\n 'class-name': {\n // @param <T> the first generic type parameter\n pattern: /(@param\\s+)<[A-Z]\\w*>/,\n lookbehind: true,\n inside: {\n punctuation: /[.<>]/\n }\n },\n 'code-section': [\n {\n pattern:\n /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n lookbehind: true,\n inside: {\n code: {\n // there can't be any HTML inside of {@code} tags\n pattern: codeLinePattern,\n lookbehind: true,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n },\n {\n pattern:\n /(<(code|pre|tt)>(?!<code>)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n lookbehind: true,\n inside: {\n line: {\n pattern: codeLinePattern,\n lookbehind: true,\n inside: {\n // highlight HTML tags and entities\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity,\n code: {\n // everything else is Java code\n pattern: /.+/,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n }\n }\n }\n ],\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity\n })\n Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javadoclike\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\nfunction javadoclike(Prism) {\n ;(function (Prism) {\n var javaDocLike = (Prism.languages.javadoclike = {\n parameter: {\n pattern:\n /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m,\n lookbehind: true\n },\n keyword: {\n // keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n // @word, {@word}\n pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n lookbehind: true\n },\n punctuation: /[{}]/\n })\n /**\n * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n *\n * @param {string} lang the language add doc comment support to.\n * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n */\n function docCommentSupport(lang, callback) {\n var tokenName = 'doc-comment'\n var grammar = Prism.languages[lang]\n if (!grammar) {\n return\n }\n var token = grammar[tokenName]\n if (!token) {\n // add doc comment: /** */\n var definition = {}\n definition[tokenName] = {\n pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n alias: 'comment'\n }\n grammar = Prism.languages.insertBefore(lang, 'comment', definition)\n token = grammar[tokenName]\n }\n if (token instanceof RegExp) {\n // convert regex to object\n token = grammar[tokenName] = {\n pattern: token\n }\n }\n if (Array.isArray(token)) {\n for (var i = 0, l = token.length; i < l; i++) {\n if (token[i] instanceof RegExp) {\n token[i] = {\n pattern: token[i]\n }\n }\n callback(token[i])\n }\n } else {\n callback(token)\n }\n }\n /**\n * Adds doc-comment support to the given languages for the given documentation language.\n *\n * @param {string[]|string} languages\n * @param {Object} docLanguage\n */\n function addSupport(languages, docLanguage) {\n if (typeof languages === 'string') {\n languages = [languages]\n }\n languages.forEach(function (lang) {\n docCommentSupport(lang, function (pattern) {\n if (!pattern.inside) {\n pattern.inside = {}\n }\n pattern.inside.rest = docLanguage\n })\n })\n }\n Object.defineProperty(javaDocLike, 'addSupport', {\n value: addSupport\n })\n javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javascript\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\nfunction javascript(Prism) {\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [\n Prism.languages.clike['class-name'],\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }\n ],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number: {\n pattern: RegExp(\n /(^|[^\\w$])/.source +\n '(?:' + // constant\n (/NaN|Infinity/.source +\n '|' + // binary integer\n /0[bB][01]+(?:_[01]+)*n?/.source +\n '|' + // octal integer\n /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n '|' + // hexadecimal integer\n /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n '|' + // decimal bigint\n /\\d+(?:_\\d+)*n/.source +\n '|' + // decimal number (integer or float) but no bigint\n /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n .source) +\n ')' +\n /(?![\\w$])/.source\n ),\n lookbehind: true\n },\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n })\n Prism.languages.javascript['class-name'][0].pattern =\n /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n pattern:\n /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [\n {\n pattern:\n /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n })\n Prism.languages.insertBefore('javascript', 'string', {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern:\n /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'string-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n }\n })\n Prism.languages.insertBefore('javascript', 'operator', {\n 'literal-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n lookbehind: true,\n alias: 'property'\n }\n })\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript') // add attribute support for all DOM events.\n // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n Prism.languages.markup.tag.addAttribute(\n /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n .source,\n 'javascript'\n )\n }\n Prism.languages.js = Prism.languages.javascript\n}\n","'use strict'\n\nmodule.exports = javastacktrace\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\nfunction javastacktrace(Prism) {\n // Specification:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n Prism.languages.javastacktrace = {\n // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: com.example.myproject.MyProjectServletException\n // Caused by: MidLevelException: LowLevelException\n // Suppressed: Resource$CloseFailException: Resource ID = 0\n summary: {\n pattern:\n /^([\\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?::.*)?$/m,\n lookbehind: true,\n inside: {\n keyword: {\n pattern:\n /^([\\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n lookbehind: true\n },\n // the current thread if the summary starts with 'Exception in thread'\n string: {\n pattern: /^(\\s*)\"[^\"]*\"/,\n lookbehind: true\n },\n exceptions: {\n pattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n lookbehind: true,\n inside: {\n 'class-name': /[\\w$]+$/,\n namespace: /\\b[a-z]\\w*\\b/,\n punctuation: /\\./\n }\n },\n message: {\n pattern: /(:\\s*)\\S.*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /:/\n }\n },\n // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n // at java.base/java.lang.Class.forName0(Native Method)\n // at Util.<init>(Unknown Source)\n // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n // at com.foo.loader//com.foo.bar.App.run(App.java:12)\n // at acme@2.1/org.acme.Lib.test(Lib.java:80)\n // at MyClass.mash(MyClass.java:9)\n //\n // More information:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n //\n // A valid Java module name is defined as:\n // \"A module name consists of one or more Java identifiers (§3.8) separated by \".\" tokens.\"\n // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n //\n // A Java module version is defined by this class:\n // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n // This is the implementation of the `parse` method in JDK13:\n // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n // However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n 'stack-frame': {\n pattern: /^([\\t ]*)at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:<init>)?\\([^()]*\\)/m,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^(\\s*)at(?= )/,\n lookbehind: true\n },\n source: [\n // (Main.java:15)\n // (Main.scala:15)\n {\n pattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n lookbehind: true,\n inside: {\n file: /^\\w+\\.\\w+/,\n punctuation: /:/,\n 'line-number': {\n pattern: /\\b\\d+\\b/,\n alias: 'number'\n }\n }\n }, // (Unknown Source)\n // (Native Method)\n // (...something...)\n {\n pattern: /(\\()[^()]*(?=\\))/,\n lookbehind: true,\n inside: {\n keyword: /^(?:Native Method|Unknown Source)$/\n }\n }\n ],\n 'class-name': /[\\w$]+(?=\\.(?:<init>|[\\w$]+)\\()/,\n function: /(?:<init>|[\\w$]+)(?=\\()/,\n 'class-loader': {\n pattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /\\./\n }\n },\n module: {\n pattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n lookbehind: true,\n inside: {\n version: {\n pattern: /(@)[\\s\\S]+/,\n lookbehind: true,\n alias: 'number'\n },\n punctuation: /[@.]/\n }\n },\n namespace: {\n pattern: /(?:\\b[a-z]\\w*\\.)+/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()/.]/\n }\n },\n // ... 32 more\n // ... 32 common frames omitted\n more: {\n pattern: /^([\\t ]*)\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /\\.{3}/,\n number: /\\d+/,\n keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = jexl\njexl.displayName = 'jexl'\njexl.aliases = []\nfunction jexl(Prism) {\n Prism.languages.jexl = {\n string: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n transform: {\n pattern:\n /(\\|\\s*)[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*/,\n alias: 'function',\n lookbehind: true\n },\n function:\n /[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*\\s*(?=\\()/,\n number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+\\b/,\n operator: /[<>!]=?|-|\\+|&&|==|\\|\\|?|\\/\\/?|[?:*^%]/,\n boolean: /\\b(?:false|true)\\b/,\n keyword: /\\bin\\b/,\n punctuation: /[{}[\\](),.]/\n }\n}\n","'use strict'\n\nmodule.exports = jolie\njolie.displayName = 'jolie'\njolie.aliases = []\nfunction jolie(Prism) {\n Prism.languages.jolie = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': {\n pattern:\n /((?:\\b(?:as|courier|embed|in|inputPort|outputPort|service)\\b|@)[ \\t]*)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*[@(])/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[?\\/%^@|]/,\n punctuation: /[()[\\]{},;.:]/,\n builtin:\n /\\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\\b/\n })\n Prism.languages.insertBefore('jolie', 'keyword', {\n aggregates: {\n pattern:\n /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n lookbehind: true,\n inside: {\n keyword: /\\bwith\\b/,\n 'class-name': /\\w+/,\n punctuation: /,/\n }\n },\n redirects: {\n pattern:\n /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n lookbehind: true,\n inside: {\n punctuation: /,/,\n 'class-name': /\\w+/,\n operator: /=>/\n }\n },\n property: {\n pattern:\n /\\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\\b(?=[ \\t]*:)/\n }\n })\n}\n","'use strict'\n\nmodule.exports = jq\njq.displayName = 'jq'\njq.aliases = []\nfunction jq(Prism) {\n ;(function (Prism) {\n var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var string = RegExp(\n /(^|[^\\\\])\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(\n /__/g,\n function () {\n return interpolation\n }\n )\n )\n var stringInterpolation = {\n interpolation: {\n pattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: null // see below\n },\n punctuation: /^\\\\\\(|\\)$/\n }\n }\n }\n var jq = (Prism.languages.jq = {\n comment: /#.*/,\n property: {\n pattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n lookbehind: true,\n greedy: true,\n inside: stringInterpolation\n },\n string: {\n pattern: string,\n lookbehind: true,\n greedy: true,\n inside: stringInterpolation\n },\n function: {\n pattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n lookbehind: true\n },\n variable: /\\B\\$\\w+/,\n 'property-literal': {\n pattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n alias: 'property'\n },\n keyword:\n /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n operator: [\n {\n pattern: /\\|=?/,\n alias: 'pipe'\n },\n /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|not|or)\\b/\n ],\n 'c-style-function': {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n alias: 'function'\n },\n punctuation: /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n dot: {\n pattern: /\\./,\n alias: 'important'\n }\n })\n stringInterpolation.interpolation.inside.content.inside = jq\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsExtras\njsExtras.displayName = 'jsExtras'\njsExtras.aliases = []\nfunction jsExtras(Prism) {\n ;(function (Prism) {\n Prism.languages.insertBefore('javascript', 'function-variable', {\n 'method-variable': {\n pattern: RegExp(\n '(\\\\.\\\\s*)' +\n Prism.languages.javascript['function-variable'].pattern.source\n ),\n lookbehind: true,\n alias: ['function-variable', 'method', 'function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'function', {\n method: {\n pattern: RegExp(\n '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n ),\n lookbehind: true,\n alias: ['function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'constant', {\n 'known-class-name': [\n {\n // standard built-ins\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n pattern:\n /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n alias: 'class-name'\n },\n {\n // errors\n pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n alias: 'class-name'\n }\n ]\n })\n /**\n * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n *\n * @param {string} source\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function withId(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n }),\n flags\n )\n }\n Prism.languages.insertBefore('javascript', 'keyword', {\n imports: {\n // https://tc39.es/ecma262/#sec-imports\n pattern: withId(\n /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n exports: {\n // https://tc39.es/ecma262/#sec-exports\n pattern: withId(\n /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n })\n Prism.languages.javascript['keyword'].unshift(\n {\n pattern: /\\b(?:as|default|export|from|import)\\b/,\n alias: 'module'\n },\n {\n pattern:\n /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n alias: 'control-flow'\n },\n {\n pattern: /\\bnull\\b/,\n alias: ['null', 'nil']\n },\n {\n pattern: /\\bundefined\\b/,\n alias: 'nil'\n }\n )\n Prism.languages.insertBefore('javascript', 'operator', {\n spread: {\n pattern: /\\.{3}/,\n alias: 'operator'\n },\n arrow: {\n pattern: /=>/,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('javascript', 'punctuation', {\n 'property-access': {\n pattern: withId(/(\\.\\s*)#?<ID>/.source),\n lookbehind: true\n },\n 'maybe-class-name': {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n lookbehind: true\n },\n dom: {\n // this contains only a few commonly used DOM variables\n pattern:\n /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\n }\n }) // add 'maybe-class-name' to tokens which might be a class name\n var maybeClassNameTokens = [\n 'function',\n 'function-variable',\n 'method',\n 'method-variable',\n 'property-access'\n ]\n for (var i = 0; i < maybeClassNameTokens.length; i++) {\n var token = maybeClassNameTokens[i]\n var value = Prism.languages.javascript[token] // convert regex to object\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n }\n } // keep in mind that we don't support arrays\n var inside = value.inside || {}\n value.inside = inside\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsTemplates\njsTemplates.displayName = 'jsTemplates'\njsTemplates.aliases = []\nfunction jsTemplates(Prism) {\n ;(function (Prism) {\n var templateString = Prism.languages.javascript['template-string'] // see the pattern in prism-javascript.js\n var templateLiteralPattern = templateString.pattern.source\n var interpolationObject = templateString.inside['interpolation']\n var interpolationPunctuationObject =\n interpolationObject.inside['interpolation-punctuation']\n var interpolationPattern = interpolationObject.pattern.source\n /**\n * Creates a new pattern to match a template string with a special tag.\n *\n * This will return `undefined` if there is no grammar with the given language id.\n *\n * @param {string} language The language id of the embedded language. E.g. `markdown`.\n * @param {string} tag The regex pattern to match the tag.\n * @returns {object | undefined}\n * @example\n * createTemplate('css', /\\bcss/.source);\n */\n function createTemplate(language, tag) {\n if (!Prism.languages[language]) {\n return undefined\n }\n return {\n pattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n lookbehind: true,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n 'embedded-code': {\n pattern: /[\\s\\S]+/,\n alias: language\n }\n }\n }\n }\n Prism.languages.javascript['template-string'] = [\n // styled-jsx:\n // css`a { color: #25F; }`\n // styled-components:\n // styled.h1`color: red;`\n createTemplate(\n 'css',\n /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/\n .source\n ), // html`<p></p>`\n // div.innerHTML = `<p></p>`\n createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n createTemplate('svg', /\\bsvg/.source), // md`# h1`, markdown`## h2`\n createTemplate('markdown', /\\b(?:markdown|md)/.source), // gql`...`, graphql`...`, graphql.experimental`...`\n createTemplate(\n 'graphql',\n /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n ), // sql`...`\n createTemplate('sql', /\\bsql/.source), // vanilla template string\n templateString\n ].filter(Boolean)\n /**\n * Returns a specific placeholder literal for the given language.\n *\n * @param {number} counter\n * @param {string} language\n * @returns {string}\n */\n function getPlaceholder(counter, language) {\n return '___' + language.toUpperCase() + '_' + counter + '___'\n }\n /**\n * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n *\n * @param {string} code\n * @param {any} grammar\n * @param {string} language\n * @returns {(string|Token)[]}\n */\n function tokenizeWithHooks(code, grammar, language) {\n var env = {\n code: code,\n grammar: grammar,\n language: language\n }\n Prism.hooks.run('before-tokenize', env)\n env.tokens = Prism.tokenize(env.code, env.grammar)\n Prism.hooks.run('after-tokenize', env)\n return env.tokens\n }\n /**\n * Returns the token of the given JavaScript interpolation expression.\n *\n * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n * @returns {Token}\n */\n function tokenizeInterpolationExpression(expression) {\n var tempGrammar = {}\n tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject\n /** @type {Array} */\n var tokens = Prism.tokenize(expression, tempGrammar)\n if (tokens.length === 3) {\n /**\n * The token array will look like this\n * [\n * [\"interpolation-punctuation\", \"${\"]\n * \"...\" // JavaScript expression of the interpolation\n * [\"interpolation-punctuation\", \"}\"]\n * ]\n */\n var args = [1, 1]\n args.push.apply(\n args,\n tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')\n )\n tokens.splice.apply(tokens, args)\n }\n return new Prism.Token(\n 'interpolation',\n tokens,\n interpolationObject.alias,\n expression\n )\n }\n /**\n * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n *\n * This function has 3 phases:\n *\n * 1. Replace all JavaScript interpolation expression with a placeholder.\n * The placeholder will have the syntax of a identify of the target language.\n * 2. Tokenize the code with placeholders.\n * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n * The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n * tokenized as two tokens by the grammar of the embedded language.\n *\n * @param {string} code\n * @param {object} grammar\n * @param {string} language\n * @returns {Token}\n */\n function tokenizeEmbedded(code, grammar, language) {\n // 1. First filter out all interpolations\n // because they might be escaped, we need a lookbehind, so we use Prism\n /** @type {(Token|string)[]} */\n var _tokens = Prism.tokenize(code, {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n lookbehind: true\n }\n }) // replace all interpolations with a placeholder which is not in the code already\n var placeholderCounter = 0\n /** @type {Object<string, string>} */\n var placeholderMap = {}\n var embeddedCode = _tokens\n .map(function (token) {\n if (typeof token === 'string') {\n return token\n } else {\n var interpolationExpression = token.content\n var placeholder\n while (\n code.indexOf(\n (placeholder = getPlaceholder(placeholderCounter++, language))\n ) !== -1\n ) {\n /* noop */\n }\n placeholderMap[placeholder] = interpolationExpression\n return placeholder\n }\n })\n .join('') // 2. Tokenize the embedded code\n var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language) // 3. Re-insert the interpolation\n var placeholders = Object.keys(placeholderMap)\n placeholderCounter = 0\n /**\n *\n * @param {(Token|string)[]} tokens\n * @returns {void}\n */\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n if (placeholderCounter >= placeholders.length) {\n return\n }\n var token = tokens[i]\n if (typeof token === 'string' || typeof token.content === 'string') {\n var placeholder = placeholders[placeholderCounter]\n var s =\n typeof token === 'string'\n ? token\n : /** @type {string} */\n token.content\n var index = s.indexOf(placeholder)\n if (index !== -1) {\n ++placeholderCounter\n var before = s.substring(0, index)\n var middle = tokenizeInterpolationExpression(\n placeholderMap[placeholder]\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push(before)\n }\n replacement.push(middle)\n if (after) {\n var afterTokens = [after]\n walkTokens(afterTokens)\n replacement.push.apply(replacement, afterTokens)\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n i += replacement.length - 1\n } else {\n token.content = replacement\n }\n }\n } else {\n var content = token.content\n if (Array.isArray(content)) {\n walkTokens(content)\n } else {\n walkTokens([content])\n }\n }\n }\n }\n walkTokens(embeddedTokens)\n return new Prism.Token(\n language,\n embeddedTokens,\n 'language-' + language,\n code\n )\n }\n /**\n * The languages for which JS templating will handle tagged template literals.\n *\n * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n */\n var supportedLanguages = {\n javascript: true,\n js: true,\n typescript: true,\n ts: true,\n jsx: true,\n tsx: true\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (!(env.language in supportedLanguages)) {\n return\n }\n /**\n * Finds and tokenizes all template strings with an embedded languages.\n *\n * @param {(Token | string)[]} tokens\n * @returns {void}\n */\n function findTemplateStrings(tokens) {\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (typeof token === 'string') {\n continue\n }\n var content = token.content\n if (!Array.isArray(content)) {\n if (typeof content !== 'string') {\n findTemplateStrings([content])\n }\n continue\n }\n if (token.type === 'template-string') {\n /**\n * A JavaScript template-string token will look like this:\n *\n * [\"template-string\", [\n * [\"template-punctuation\", \"`\"],\n * (\n * An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n * or\n * [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n * It also has an alias which is the language of the embedded code.\n * ),\n * [\"template-punctuation\", \"`\"]\n * ]]\n */\n var embedded = content[1]\n if (\n content.length === 3 &&\n typeof embedded !== 'string' &&\n embedded.type === 'embedded-code'\n ) {\n // get string content\n var code = stringContent(embedded)\n var alias = embedded.alias\n var language = Array.isArray(alias) ? alias[0] : alias\n var grammar = Prism.languages[language]\n if (!grammar) {\n // the embedded language isn't registered.\n continue\n }\n content[1] = tokenizeEmbedded(code, grammar, language)\n }\n } else {\n findTemplateStrings(content)\n }\n }\n }\n findTemplateStrings(env.tokens)\n })\n /**\n * Returns the string content of a token or token stream.\n *\n * @param {string | Token | (string | Token)[]} value\n * @returns {string}\n */\n function stringContent(value) {\n if (typeof value === 'string') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(stringContent).join('')\n } else {\n return stringContent(value.content)\n }\n }\n })(Prism)\n}\n","'use strict'\nvar refractorJavadoclike = require('./javadoclike.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = jsdoc\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\nfunction jsdoc(Prism) {\n Prism.register(refractorJavadoclike)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var javascript = Prism.languages.javascript\n var type = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source\n var parameterPrefix =\n '(@(?:arg|argument|param|property)\\\\s+(?:' + type + '\\\\s+)?)'\n Prism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n // @param {string} foo - foo bar\n pattern: RegExp(\n parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('jsdoc', 'keyword', {\n 'optional-parameter': {\n // @param {string} [baz.foo=\"bar\"] foo bar\n pattern: RegExp(\n parameterPrefix +\n /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n code: {\n pattern: /(=)[\\s\\S]*(?=\\]$)/,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n },\n punctuation: /[=[\\]]/\n }\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(\n /<TYPE>/g,\n function () {\n return type\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n pattern: RegExp('(@[a-z]+\\\\s+)' + type),\n lookbehind: true,\n inside: {\n string: javascript.string,\n number: javascript.number,\n boolean: javascript.boolean,\n keyword: Prism.languages.typescript.keyword,\n operator: /=>|\\.\\.\\.|[&|?:*]/,\n punctuation: /[.,;=<>{}()[\\]]/\n }\n }\n ],\n example: {\n pattern:\n /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n lookbehind: true,\n inside: {\n code: {\n pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n }\n }\n }\n })\n Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = json\njson.displayName = 'json'\njson.aliases = ['webmanifest']\nfunction json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n }\n Prism.languages.webmanifest = Prism.languages.json\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = json5\njson5.displayName = 'json5'\njson5.aliases = []\nfunction json5(Prism) {\n Prism.register(refractorJson)\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n Prism.languages.json5 = Prism.languages.extend('json', {\n property: [\n {\n pattern: RegExp(string.source + '(?=\\\\s*:)'),\n greedy: true\n },\n {\n pattern:\n /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n alias: 'unquoted'\n }\n ],\n string: {\n pattern: string,\n greedy: true\n },\n number:\n /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = jsonp\njsonp.displayName = 'jsonp'\njsonp.aliases = []\nfunction jsonp(Prism) {\n Prism.register(refractorJson)\n Prism.languages.jsonp = Prism.languages.extend('json', {\n punctuation: /[{}[\\]();,.]/\n })\n Prism.languages.insertBefore('jsonp', 'punctuation', {\n function: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n })\n}\n","'use strict'\n\nmodule.exports = jsstacktrace\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\nfunction jsstacktrace(Prism) {\n Prism.languages.jsstacktrace = {\n 'error-message': {\n pattern: /^\\S.*/m,\n alias: 'string'\n },\n 'stack-frame': {\n pattern: /(^[ \\t]+)at[ \\t].*/m,\n lookbehind: true,\n inside: {\n 'not-my-code': {\n pattern:\n /^at[ \\t]+(?!\\s)(?:node\\.js|<unknown>|.*(?:node_modules|\\(<anonymous>\\)|\\(<unknown>|<anonymous>$|\\(internal\\/|\\(node\\.js)).*/m,\n alias: 'comment'\n },\n filename: {\n pattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n lookbehind: true,\n alias: 'url'\n },\n function: {\n pattern:\n /(\\bat\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()]/,\n keyword: /\\b(?:at|new)\\b/,\n alias: {\n pattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n alias: 'variable'\n },\n 'line-number': {\n pattern: /:\\d+(?::\\d+)?\\b/,\n alias: 'number',\n inside: {\n punctuation: /:/\n }\n }\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = jsx\njsx.displayName = 'jsx'\njsx.aliases = []\nfunction jsx(Prism) {\n ;(function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript)\n var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function re(source, flags) {\n source = source\n .replace(/<S>/g, function () {\n return space\n })\n .replace(/<BRACES>/g, function () {\n return braces\n })\n .replace(/<SPREAD>/g, function () {\n return spread\n })\n return RegExp(source, flags)\n }\n spread = re(spread).source\n Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n Prism.languages.jsx.tag.pattern = re(\n /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n .source\n )\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n Prism.languages.jsx.tag.inside['attr-value'].pattern =\n /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n Prism.languages.insertBefore(\n 'inside',\n 'attr-name',\n {\n spread: {\n pattern: re(/<SPREAD>/.source),\n inside: Prism.languages.jsx\n }\n },\n Prism.languages.jsx.tag\n )\n Prism.languages.insertBefore(\n 'inside',\n 'special-attr',\n {\n script: {\n // Allow for two levels of nesting\n pattern: re(/=<BRACES>/.source),\n alias: 'language-javascript',\n inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n }\n }\n },\n Prism.languages.jsx.tag\n ) // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (!token) {\n return ''\n }\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{'\n ) {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = julia\njulia.displayName = 'julia'\njulia.aliases = []\nfunction julia(Prism) {\n Prism.languages.julia = {\n comment: {\n // support one level of nested comments\n // https://github.com/JuliaLang/julia/pull/6128\n pattern:\n /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n lookbehind: true\n },\n regex: {\n // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n pattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n greedy: true\n },\n string: {\n // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n pattern:\n /\"\"\"[\\s\\S]+?\"\"\"|(?:\\b\\w+)?\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n greedy: true\n },\n char: {\n // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n pattern: /(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number:\n /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n operator:\n /&&|\\|\\||[-+*^%÷⊻&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,\n punctuation: /::?|[{}[\\]();,.?]/,\n // https://docs.julialang.org/en/v1/base/numbers/#Base.im\n constant: /\\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n }\n}\n","'use strict'\n\nmodule.exports = keepalived\nkeepalived.displayName = 'keepalived'\nkeepalived.aliases = []\nfunction keepalived(Prism) {\n Prism.languages.keepalived = {\n comment: {\n pattern: /[#!].*/,\n greedy: true\n },\n string: {\n pattern:\n /(^|[^\\\\])(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/,\n lookbehind: true,\n greedy: true\n },\n // support IPv4, IPv6, subnet mask\n ip: {\n pattern: RegExp(\n /\\b(?:(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){5}:(?:[\\da-f]{1,4}:)?[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){4}:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){3}:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){2}:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}<ipv4>|(?:[\\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\\da-f]{1,4}:){0,5}<ipv4>|[\\da-f]{1,4}::(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4}|::(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:)(?:\\/\\d{1,3})?|<ipv4>(?:\\/\\d{1,2})?)\\b/.source.replace(\n /<ipv4>/g,\n function () {\n return /(?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d))/\n .source\n }\n ),\n 'i'\n ),\n alias: 'number'\n },\n // support *nix / Windows, directory / file\n path: {\n pattern:\n /(\\s)\\/(?:[^\\/\\s]+\\/)*[^\\/\\s]*|\\b[a-zA-Z]:\\\\(?:[^\\\\\\s]+\\\\)*[^\\\\\\s]*/,\n lookbehind: true,\n alias: 'string'\n },\n variable: /\\$\\{?\\w+\\}?/,\n email: {\n pattern: /[\\w-]+@[\\w-]+(?:\\.[\\w-]{2,3}){1,2}/,\n alias: 'string'\n },\n 'conditional-configuration': {\n pattern: /@\\^?[\\w-]+/,\n alias: 'variable'\n },\n operator: /=/,\n property:\n /\\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\\b/,\n constant:\n /\\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\\b/,\n number: {\n pattern: /(^|[^\\w.-])-?\\d+(?:\\.\\d+)?/,\n lookbehind: true\n },\n boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n punctuation: /[\\{\\}]/\n }\n}\n","'use strict'\n\nmodule.exports = keyman\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\nfunction keyman(Prism) {\n Prism.languages.keyman = {\n comment: {\n pattern: /\\bc .*/i,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n 'virtual-key': {\n pattern:\n /\\[\\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\\s+)*(?:[TKU]_[\\w?]+|[A-E]\\d\\d?|\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*\\]/i,\n greedy: true,\n alias: 'function' // alias for styles\n },\n // https://help.keyman.com/developer/language/guide/headers\n 'header-keyword': {\n pattern: /&\\w+/,\n alias: 'bold' // alias for styles\n },\n 'header-statement': {\n pattern:\n /\\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\\b/i,\n alias: 'bold' // alias for styles\n },\n 'rule-keyword': {\n pattern:\n /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\\b/i,\n alias: 'keyword'\n },\n 'structural-keyword': {\n pattern: /\\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\\b/i,\n alias: 'keyword'\n },\n 'compile-target': {\n pattern: /\\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,\n alias: 'property'\n },\n // U+####, x###, d### characters and numbers\n number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n operator: /[+>\\\\$]|\\.\\./,\n punctuation: /[()=,]/\n }\n}\n","'use strict'\n\nmodule.exports = kotlin\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\nfunction kotlin(Prism) {\n ;(function (Prism) {\n Prism.languages.kotlin = Prism.languages.extend('clike', {\n keyword: {\n // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n pattern:\n /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n lookbehind: true\n },\n function: [\n {\n pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/,\n greedy: true\n },\n {\n pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n lookbehind: true,\n greedy: true\n }\n ],\n number:\n /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n operator:\n /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n })\n delete Prism.languages.kotlin['class-name']\n var interpolationInside = {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.kotlin\n }\n }\n Prism.languages.insertBefore('kotlin', 'string', {\n // https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n 'string-literal': [\n {\n pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n alias: 'multiline',\n inside: {\n interpolation: {\n pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n inside: interpolationInside\n },\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n alias: 'singleline',\n inside: {\n interpolation: {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n lookbehind: true,\n inside: interpolationInside\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n char: {\n // https://kotlinlang.org/spec/expressions.html#character-literals\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/,\n greedy: true\n }\n })\n delete Prism.languages.kotlin['string']\n Prism.languages.insertBefore('kotlin', 'keyword', {\n annotation: {\n pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('kotlin', 'function', {\n label: {\n pattern: /\\b\\w+@|@\\w+\\b/,\n alias: 'symbol'\n }\n })\n Prism.languages.kt = Prism.languages.kotlin\n Prism.languages.kts = Prism.languages.kotlin\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = kumir\nkumir.displayName = 'kumir'\nkumir.aliases = ['kum']\nfunction kumir(Prism) {\n /* eslint-disable regexp/no-dupe-characters-character-class */\n ;(function (Prism) {\n /**\n * Regular expression for characters that are not allowed in identifiers.\n *\n * @type {string}\n */\n var nonId = /\\s\\x00-\\x1f\\x22-\\x2f\\x3a-\\x3f\\x5b-\\x5e\\x60\\x7b-\\x7e/.source\n /**\n * Surround a regular expression for IDs with patterns for non-ID sequences.\n *\n * @param {string} pattern A regular expression for identifiers.\n * @param {string} [flags] The regular expression flags.\n * @returns {RegExp} A wrapped regular expression for identifiers.\n */\n function wrapId(pattern, flags) {\n return RegExp(pattern.replace(/<nonId>/g, nonId), flags)\n }\n Prism.languages.kumir = {\n comment: {\n pattern: /\\|.*/\n },\n prolog: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\\n\\r\"]*\"|'[^\\n\\r']*'/,\n greedy: true\n },\n boolean: {\n pattern: wrapId(/(^|[<nonId>])(?:да|нет)(?=[<nonId>]|$)/.source),\n lookbehind: true\n },\n 'operator-word': {\n pattern: wrapId(/(^|[<nonId>])(?:и|или|не)(?=[<nonId>]|$)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n 'system-variable': {\n pattern: wrapId(/(^|[<nonId>])знач(?=[<nonId>]|$)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n type: [\n {\n pattern: wrapId(\n /(^|[<nonId>])(?:вещ|лит|лог|сим|цел)(?:\\x20*таб)?(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true,\n alias: 'builtin'\n },\n {\n pattern: wrapId(\n /(^|[<nonId>])(?:компл|сканкод|файл|цвет)(?=[<nonId>]|$)/.source\n ),\n lookbehind: true,\n alias: 'important'\n }\n ],\n /**\n * Should be performed after searching for type names because of \"таб\".\n * \"таб\" is a reserved word, but never used without a preceding type name.\n * \"НАЗНАЧИТЬ\", \"Фввод\", and \"Фвывод\" are not reserved words.\n */\n keyword: {\n pattern: wrapId(\n /(^|[<nonId>])(?:алг|арг(?:\\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\\x20+|_)исп)?|кц(?:(?:\\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true\n },\n /** Should be performed after searching for reserved words. */\n name: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: wrapId(\n /(^|[<nonId>])[^\\d<nonId>][^<nonId>]*(?:\\x20+[^<nonId>]+)*(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true\n },\n /** Should be performed after searching for names. */\n number: {\n pattern: wrapId(\n /(^|[<nonId>])(?:\\B\\$[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?=[<nonId>]|$)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n /** Should be performed after searching for words. */\n punctuation: /:=|[(),:;\\[\\]]/,\n /**\n * Should be performed after searching for\n * - numeric constants (because of \"+\" and \"-\");\n * - punctuation marks (because of \":=\" and \"=\").\n */\n 'operator-char': {\n pattern: /\\*\\*?|<[=>]?|>=?|[-+/=]/,\n alias: 'operator'\n }\n }\n Prism.languages.kum = Prism.languages.kumir\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = kusto\nkusto.displayName = 'kusto'\nkusto.aliases = []\nfunction kusto(Prism) {\n Prism.languages.kusto = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n string: {\n pattern:\n /```[\\s\\S]*?```|[hH]?(?:\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\.)*'|@(?:\"[^\\r\\n\"]*\"|'[^\\r\\n']*'))/,\n greedy: true\n },\n verb: {\n pattern: /(\\|\\s*)[a-z][\\w-]*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n command: {\n pattern: /\\.[a-z][a-z\\d-]*\\b/,\n alias: 'keyword'\n },\n 'class-name':\n /\\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\\b/,\n keyword:\n /\\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\\s+regex|nulls\\s+(?:first|last))(?![\\w-])/,\n boolean: /\\b(?:false|null|true)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/,\n datetime: [\n {\n // RFC 822 + RFC 850\n pattern:\n /\\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\\s*,\\s*)?\\d{1,2}(?:\\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\\s+|-)\\d{2}\\s+\\d{2}:\\d{2}(?::\\d{2})?(?:\\s*(?:\\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\\d{4}))?\\b/,\n alias: 'number'\n },\n {\n // ISO 8601\n pattern:\n /[+-]?\\b(?:\\d{4}-\\d{2}-\\d{2}(?:[ T]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)?|\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)Z?/,\n alias: 'number'\n }\n ],\n number:\n /\\b(?:0x[0-9A-Fa-f]+|\\d+(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\\b)?|[+-]?\\binf\\b/,\n operator: /=>|[!=]~|[!=<>]=?|[-+*/%|]|\\.\\./,\n punctuation: /[()\\[\\]{},;.:]/\n }\n}\n","'use strict'\n\nmodule.exports = latex\nlatex.displayName = 'latex'\nlatex.aliases = ['tex', 'context']\nfunction latex(Prism) {\n ;(function (Prism) {\n var funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i\n var insideEqu = {\n 'equation-command': {\n pattern: funcPattern,\n alias: 'regex'\n }\n }\n Prism.languages.latex = {\n comment: /%.*/,\n // the verbatim environment prints whitespace to the document\n cdata: {\n pattern:\n /(\\\\begin\\{((?:lstlisting|verbatim)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true\n },\n /*\n * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n * (all are multiline)\n */\n equation: [\n {\n pattern:\n /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n inside: insideEqu,\n alias: 'string'\n },\n {\n pattern:\n /(\\\\begin\\{((?:align|eqnarray|equation|gather|math|multline)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true,\n inside: insideEqu,\n alias: 'string'\n }\n ],\n /*\n * arguments which are keywords or references are highlighted\n * as keywords\n */\n keyword: {\n pattern:\n /(\\\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n url: {\n pattern: /(\\\\url\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n /*\n * section or chapter headlines are highlighted as bold so that\n * they stand out more\n */\n headline: {\n pattern:\n /(\\\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true,\n alias: 'class-name'\n },\n function: {\n pattern: funcPattern,\n alias: 'selector'\n },\n punctuation: /[[\\]{}&]/\n }\n Prism.languages.tex = Prism.languages.latex\n Prism.languages.context = Prism.languages.latex\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nvar refractorPhp = require('./php.js')\nmodule.exports = latte\nlatte.displayName = 'latte'\nlatte.aliases = []\nfunction latte(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.register(refractorPhp)\n ;(function (Prism) {\n Prism.languages.latte = {\n comment: /^\\{\\*[\\s\\S]*/,\n 'latte-tag': {\n // https://latte.nette.org/en/tags\n pattern: /(^\\{(?:\\/(?=[a-z]))?)(?:[=_]|[a-z]\\w*\\b(?!\\())/i,\n lookbehind: true,\n alias: 'important'\n },\n delimiter: {\n pattern: /^\\{\\/?|\\}$/,\n alias: 'punctuation'\n },\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n var markupLatte = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore(\n 'inside',\n 'attr-value',\n {\n 'n-attr': {\n pattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n inside: {\n 'attr-name': {\n pattern: /^[^\\s=]+/,\n alias: 'important'\n },\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ],\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.php\n }\n }\n }\n }\n }\n },\n markupLatte.tag\n )\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'latte') {\n return\n }\n var lattePattern =\n /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'latte',\n lattePattern\n )\n env.grammar = markupLatte\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = less\nless.displayName = 'less'\nless.aliases = []\nfunction less(Prism) {\n /* FIXME :\n:extend() is not handled specifically : its highlighting is buggy.\nMixin usage must be inside a ruleset to be highlighted.\nAt-rules (e.g. import) containing interpolations are buggy.\nDetached rulesets are highlighted as at-rules.\nA comment before a mixin usage prevents the latter to be properly highlighted.\n*/\n Prism.languages.less = Prism.languages.extend('css', {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^|[^\\\\])\\/\\/.*/,\n lookbehind: true\n }\n ],\n atrule: {\n pattern:\n /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n punctuation: /[:()]/\n }\n },\n // selectors and mixins are considered the same\n selector: {\n pattern:\n /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n // mixin parameters\n variable: /@+[\\w-]+/\n }\n },\n property: /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/,\n operator: /[+\\-*\\/]/\n })\n Prism.languages.insertBefore('less', 'property', {\n variable: [\n // Variable declaration (the colon must be consumed!)\n {\n pattern: /@[\\w-]+\\s*:/,\n inside: {\n punctuation: /:/\n }\n }, // Variable usage\n /@@?[\\w-]+/\n ],\n 'mixin-usage': {\n pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n lookbehind: true,\n alias: 'function'\n }\n })\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = lilypond\nlilypond.displayName = 'lilypond'\nlilypond.aliases = []\nfunction lilypond(Prism) {\n Prism.register(refractorScheme)\n ;(function (Prism) {\n var schemeExpression =\n /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n .source // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n // For some reason, this can't be 4\n var recursivenessLog2 = 5\n for (var i = 0; i < recursivenessLog2; i++) {\n schemeExpression = schemeExpression.replace(/<expr>/g, function () {\n return schemeExpression\n })\n }\n schemeExpression = schemeExpression.replace(/<expr>/g, /[^\\s\\S]/.source)\n var lilypond = (Prism.languages.lilypond = {\n comment: /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n 'embedded-scheme': {\n pattern: RegExp(\n /(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|<expr>))/.source.replace(\n /<expr>/g,\n function () {\n return schemeExpression\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n scheme: {\n pattern: /^(#)[\\s\\S]+$/,\n lookbehind: true,\n alias: 'language-scheme',\n inside: {\n 'embedded-lilypond': {\n pattern: /#\\{[\\s\\S]*?#\\}/,\n greedy: true,\n inside: {\n punctuation: /^#\\{|#\\}$/,\n lilypond: {\n pattern: /[\\s\\S]+/,\n alias: 'language-lilypond',\n inside: null // see below\n }\n }\n },\n rest: Prism.languages.scheme\n }\n },\n punctuation: /#/\n }\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\\\new\\s+)[\\w-]+/,\n lookbehind: true\n },\n keyword: {\n pattern: /\\\\[a-z][-\\w]*/i,\n inside: {\n punctuation: /^\\\\/\n }\n },\n operator: /[=|]|<<|>>/,\n punctuation: {\n pattern:\n /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\/\\d+)?\\b/\n })\n lilypond['embedded-scheme'].inside['scheme'].inside[\n 'embedded-lilypond'\n ].inside['lilypond'].inside = lilypond\n Prism.languages.ly = lilypond\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = liquid\nliquid.displayName = 'liquid'\nliquid.aliases = []\nfunction liquid(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.languages.liquid = {\n comment: {\n pattern: /(^\\{%\\s*comment\\s*%\\})[\\s\\S]+(?=\\{%\\s*endcomment\\s*%\\}$)/,\n lookbehind: true\n },\n delimiter: {\n pattern: /^\\{(?:\\{\\{|[%\\{])-?|-?(?:\\}\\}|[%\\}])\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n keyword:\n /\\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\\b/,\n object:\n /\\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\\b/,\n function: [\n {\n pattern: /(\\|\\s*)\\w+/,\n lookbehind: true,\n alias: 'filter'\n },\n {\n // array functions\n pattern: /(\\.\\s*)(?:first|last|size)/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:false|nil|true)\\b/,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n // https://github.com/Shopify/liquid/blob/698f5e0d967423e013f6169d9111bd969bd78337/lib/liquid/lexer.rb#L21\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /[!=]=|<>|[<>]=?|[|?:=-]|\\b(?:and|contains(?=\\s)|or)\\b/,\n punctuation: /[.,\\[\\]()]/,\n empty: {\n pattern: /\\bempty\\b/,\n alias: 'keyword'\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var liquidPattern =\n /\\{%\\s*comment\\s*%\\}[\\s\\S]*?\\{%\\s*endcomment\\s*%\\}|\\{(?:%[\\s\\S]*?%|\\{\\{[\\s\\S]*?\\}\\}|\\{[\\s\\S]*?\\})\\}/g\n var insideRaw = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'liquid',\n liquidPattern,\n function (match) {\n var tagMatch = /^\\{%-?\\s*(\\w+)/.exec(match)\n if (tagMatch) {\n var tag = tagMatch[1]\n if (tag === 'raw' && !insideRaw) {\n insideRaw = true\n return true\n } else if (tag === 'endraw') {\n insideRaw = false\n return true\n }\n }\n return !insideRaw\n }\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'liquid')\n })\n}\n","'use strict'\n\nmodule.exports = lisp\nlisp.displayName = 'lisp'\nlisp.aliases = []\nfunction lisp(Prism) {\n ;(function (Prism) {\n /**\n * Functions to construct regular expressions\n * e.g. (interactive ... or (interactive)\n *\n * @param {string} name\n * @returns {RegExp}\n */\n function simple_form(name) {\n return RegExp(/(\\()/.source + '(?:' + name + ')' + /(?=[\\s\\)])/.source)\n }\n /**\n * booleans and numbers\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function primitive(pattern) {\n return RegExp(\n /([\\s([])/.source + '(?:' + pattern + ')' + /(?=[\\s)])/.source\n )\n } // Patterns in regular expressions\n // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n // & and : are excluded as they are usually used for special purposes\n var symbol = /(?!\\d)[-+*/~!@$%^=<>{}\\w]+/.source // symbol starting with & used in function arguments\n var marker = '&' + symbol // Open parenthesis for look-behind\n var par = '(\\\\()'\n var endpar = '(?=\\\\))' // End the pattern with look-ahead space\n var space = '(?=\\\\s)'\n var nestedPar =\n /(?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\))*\\))*\\))*/\n .source\n var language = {\n // Three or four semicolons are considered a heading.\n // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n heading: {\n pattern: /;;;.*/,\n alias: ['comment', 'title']\n },\n comment: /;.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true,\n inside: {\n argument: /[-A-Z]+(?=[.,\\s])/,\n symbol: RegExp('`' + symbol + \"'\")\n }\n },\n 'quoted-symbol': {\n pattern: RegExp(\"#?'\" + symbol),\n alias: ['variable', 'symbol']\n },\n 'lisp-property': {\n pattern: RegExp(':' + symbol),\n alias: 'property'\n },\n splice: {\n pattern: RegExp(',@?' + symbol),\n alias: ['symbol', 'variable']\n },\n keyword: [\n {\n pattern: RegExp(\n par +\n '(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)' +\n space\n ),\n lookbehind: true\n },\n {\n pattern: RegExp(\n par +\n '(?:append|by|collect|concat|do|finally|for|in|return)' +\n space\n ),\n lookbehind: true\n }\n ],\n declare: {\n pattern: simple_form(/declare/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n interactive: {\n pattern: simple_form(/interactive/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n boolean: {\n pattern: primitive(/nil|t/.source),\n lookbehind: true\n },\n number: {\n pattern: primitive(/[-+]?\\d+(?:\\.\\d*)?/.source),\n lookbehind: true\n },\n defvar: {\n pattern: RegExp(par + 'def(?:const|custom|group|var)\\\\s+' + symbol),\n lookbehind: true,\n inside: {\n keyword: /^def[a-z]+/,\n variable: RegExp(symbol)\n }\n },\n defun: {\n pattern: RegExp(\n par +\n /(?:cl-)?(?:defmacro|defun\\*?)\\s+/.source +\n symbol +\n /\\s+\\(/.source +\n nestedPar +\n /\\)/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^(?:cl-)?def\\S+/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n function: {\n pattern: RegExp('(^\\\\s)' + symbol),\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n lambda: {\n pattern: RegExp(\n par +\n 'lambda\\\\s+\\\\(\\\\s*(?:&?' +\n symbol +\n '(?:\\\\s+&?' +\n symbol +\n ')*\\\\s*)?\\\\)'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^lambda/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n punctuation: /[()]/\n }\n },\n car: {\n pattern: RegExp(par + symbol),\n lookbehind: true\n },\n punctuation: [\n // open paren, brackets, and close paren\n /(?:['`,]?\\(|[)\\[\\]])/, // cons\n {\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }\n ]\n }\n var arg = {\n 'lisp-marker': RegExp(marker),\n varform: {\n pattern: RegExp(\n /\\(/.source + symbol + /\\s+(?=\\S)/.source + nestedPar + /\\)/.source\n ),\n inside: language\n },\n argument: {\n pattern: RegExp(/(^|[\\s(])/.source + symbol),\n lookbehind: true,\n alias: 'variable'\n },\n rest: language\n }\n var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n var arglist = {\n pattern: RegExp(par + nestedPar + endpar),\n lookbehind: true,\n inside: {\n 'rest-vars': {\n pattern: RegExp('&(?:body|rest)\\\\s+' + forms),\n inside: arg\n },\n 'other-marker-vars': {\n pattern: RegExp('&(?:aux|optional)\\\\s+' + forms),\n inside: arg\n },\n keys: {\n pattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n inside: arg\n },\n argument: {\n pattern: RegExp(symbol),\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n }\n language['lambda'].inside.arguments = arglist\n language['defun'].inside.arguments = Prism.util.clone(arglist)\n language['defun'].inside.arguments.inside.sublist = arglist\n Prism.languages.lisp = language\n Prism.languages.elisp = language\n Prism.languages.emacs = language\n Prism.languages['emacs-lisp'] = language\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = livescript\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\nfunction livescript(Prism) {\n Prism.languages.livescript = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n ],\n 'interpolated-string': {\n /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n * forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n pattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n lookbehind: true\n },\n interpolation: {\n pattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^#\\{|\\}$/,\n alias: 'variable'\n } // See rest below\n }\n },\n string: /[\\s\\S]+/\n }\n },\n string: [\n {\n pattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n {\n pattern: /<\\[[\\s\\S]*?\\]>/,\n greedy: true\n },\n /\\\\[^\\s,;\\])}]+/\n ],\n regex: [\n {\n pattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n greedy: true,\n inside: {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n }\n },\n {\n pattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n greedy: true\n }\n ],\n keyword: {\n pattern:\n /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n lookbehind: true\n },\n 'keyword-operator': {\n pattern:\n /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n lookbehind: true,\n alias: 'operator'\n },\n boolean: {\n pattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n lookbehind: true\n },\n argument: {\n // Don't match .&. nor &&\n pattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n lookbehind: true,\n alias: 'variable'\n },\n number: /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n identifier: /[a-z_](?:-?[a-z]|[\\d_])*/i,\n operator: [\n // Spaced .\n {\n pattern: /( )\\.(?= )/,\n lookbehind: true\n }, // Full list, in order:\n // .= .~ .. ...\n // .&. .^. .<<. .>>. .>>>.\n // := :: ::=\n // &&\n // || |>\n // < << <<< <<<<\n // <- <-- <-! <--!\n // <~ <~~ <~! <~~!\n // <| <= <?\n // > >> >= >?\n // - -- -> -->\n // + ++\n // @ @@\n // % %%\n // * **\n // ! != !~=\n // !~> !~~>\n // !-> !-->\n // ~ ~> ~~> ~=\n // = ==\n // ^ ^^\n // / ?\n /\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/\n ],\n punctuation: /[(){}\\[\\]|.,:;`]/\n }\n Prism.languages.livescript['interpolated-string'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.livescript\n}\n","'use strict'\n\nmodule.exports = llvm\nllvm.displayName = 'llvm'\nllvm.aliases = []\nfunction llvm(Prism) {\n ;(function (Prism) {\n Prism.languages.llvm = {\n comment: /;.*/,\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n boolean: /\\b(?:false|true)\\b/,\n variable: /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n label: /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n type: {\n pattern:\n /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n alias: 'class-name'\n },\n keyword: /\\b[a-z_][a-z_0-9]*\\b/,\n number:\n /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n punctuation: /[{}[\\];(),.!*=<>]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = log\nlog.displayName = 'log'\nlog.aliases = []\nfunction log(Prism) {\n // This is a language definition for generic log files.\n // Since there is no one log format, this language definition has to support all formats to some degree.\n //\n // Based on https://github.com/MTDL9/vim-log-highlighting\n Prism.languages.log = {\n string: {\n // Single-quoted strings must not be confused with plain text. E.g. Can't isn't Susan's Chris' toy\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?![st] | \\w)(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n exception: {\n pattern:\n /(^|[^\\w.])[a-z][\\w.]*(?:Error|Exception):.*(?:(?:\\r\\n?|\\n)[ \\t]*(?:at[ \\t].+|\\.{3}.*|Caused by:.*))+(?:(?:\\r\\n?|\\n)[ \\t]*\\.\\.\\. .*)?/,\n lookbehind: true,\n greedy: true,\n alias: ['javastacktrace', 'language-javastacktrace'],\n inside: Prism.languages['javastacktrace'] || {\n keyword: /\\bat\\b/,\n function: /[a-z_][\\w$]*(?=\\()/,\n punctuation: /[.:()]/\n }\n },\n level: [\n {\n pattern:\n /\\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\\b/,\n alias: ['error', 'important']\n },\n {\n pattern: /\\b(?:WARN|WARNING|WRN)\\b/,\n alias: ['warning', 'important']\n },\n {\n pattern: /\\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\\b/,\n alias: ['info', 'keyword']\n },\n {\n pattern: /\\b(?:DBG|DEBUG|FINE)\\b/,\n alias: ['debug', 'keyword']\n },\n {\n pattern: /\\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\\b/,\n alias: ['trace', 'comment']\n }\n ],\n property: {\n pattern:\n /((?:^|[\\]|])[ \\t]*)[a-z_](?:[\\w-]|\\b\\/\\b)*(?:[. ]\\(?\\w(?:[\\w-]|\\b\\/\\b)*\\)?)*:(?=\\s)/im,\n lookbehind: true\n },\n separator: {\n pattern: /(^|[^-+])-{3,}|={3,}|\\*{3,}|- - /m,\n lookbehind: true,\n alias: 'comment'\n },\n url: /\\b(?:file|ftp|https?):\\/\\/[^\\s|,;'\"]*[^\\s|,;'\">.]/,\n email: {\n pattern: /(^|\\s)[-\\w+.]+@[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)+(?=\\s)/,\n lookbehind: true,\n alias: 'url'\n },\n 'ip-address': {\n pattern: /\\b(?:\\d{1,3}(?:\\.\\d{1,3}){3})\\b/,\n alias: 'constant'\n },\n 'mac-address': {\n pattern: /\\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\\b/i,\n alias: 'constant'\n },\n domain: {\n pattern:\n /(^|\\s)[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)*\\.[a-z][a-z0-9-]+(?=\\s)/,\n lookbehind: true,\n alias: 'constant'\n },\n uuid: {\n pattern:\n /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n alias: 'constant'\n },\n hash: {\n pattern: /\\b(?:[a-f0-9]{32}){1,2}\\b/i,\n alias: 'constant'\n },\n 'file-path': {\n pattern:\n /\\b[a-z]:[\\\\/][^\\s|,;:(){}\\[\\]\"']+|(^|[\\s:\\[\\](>|])\\.{0,2}\\/\\w[^\\s|,;:(){}\\[\\]\"']*/i,\n lookbehind: true,\n greedy: true,\n alias: 'string'\n },\n date: {\n pattern: RegExp(\n /\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))/.source +\n '|' +\n /\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b/\n .source +\n '|' +\n /\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b/\n .source,\n 'i'\n ),\n alias: 'number'\n },\n time: {\n pattern:\n /\\b\\d{1,2}:\\d{1,2}:\\d{1,2}(?:[.,:]\\d+)?(?:\\s?[+-]\\d{2}:?\\d{2}|Z)?\\b/,\n alias: 'number'\n },\n boolean: /\\b(?:false|null|true)\\b/i,\n number: {\n pattern:\n /(^|[^.\\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\\d[\\da-f]*(?:\\.\\d+)*(?:e[+-]?\\d+)?[a-z]{0,3}\\b)\\b(?!\\.\\w)/i,\n lookbehind: true\n },\n operator: /[;:?<=>~/@!$%&+\\-|^(){}*#]/,\n punctuation: /[\\[\\].,]/\n }\n}\n","'use strict'\n\nmodule.exports = lolcode\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\nfunction lolcode(Prism) {\n Prism.languages.lolcode = {\n comment: [/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/, /\\bBTW.+/],\n string: {\n pattern: /\"(?::.|[^\":])*\"/,\n inside: {\n variable: /:\\{[^}]+\\}/,\n symbol: [/:\\([a-f\\d]+\\)/i, /:\\[[^\\]]+\\]/, /:[)>o\":]/]\n },\n greedy: true\n },\n number: /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n symbol: {\n pattern: /(^|\\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\\s|,|$)/,\n lookbehind: true,\n inside: {\n keyword: /A(?=\\s)/\n }\n },\n label: {\n pattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n lookbehind: true,\n alias: 'string'\n },\n function: {\n pattern: /((?:^|\\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\\w*/,\n lookbehind: true\n },\n keyword: [\n {\n pattern:\n /(^|\\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\\?|YA RLY|YR)(?=\\s|,|$)/,\n lookbehind: true\n },\n /'Z(?=\\s|,|$)/\n ],\n boolean: {\n pattern: /(^|\\s)(?:FAIL|WIN)(?=\\s|,|$)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|\\s)IT(?=\\s|,|$)/,\n lookbehind: true\n },\n operator: {\n pattern:\n /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\\s|,|$)/,\n lookbehind: true\n },\n punctuation: /\\.{3}|…|,|!/\n }\n}\n","'use strict'\n\nmodule.exports = lua\nlua.displayName = 'lua'\nlua.aliases = []\nfunction lua(Prism) {\n Prism.languages.lua = {\n comment: /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n // \\z may be used to skip the following space\n string: {\n pattern:\n /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n greedy: true\n },\n number:\n /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n keyword:\n /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n function: /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n operator: [\n /[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n {\n // Match \"..\" but don't break \"...\"\n pattern: /(^|[^.])\\.\\.(?!\\.)/,\n lookbehind: true\n }\n ],\n punctuation: /[\\[\\](){},;]|\\.+|:+/\n }\n}\n","'use strict'\n\nmodule.exports = magma\nmagma.displayName = 'magma'\nmagma.aliases = []\nfunction magma(Prism) {\n Prism.languages.magma = {\n output: {\n pattern:\n /^(>.*(?:\\r(?:\\n|(?!\\n))|\\n))(?!>)(?:.+|(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)(?:(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)*/m,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n // http://magma.maths.usyd.edu.au/magma/handbook/text/82\n keyword:\n /\\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n generator: {\n pattern: /\\b[a-z_]\\w*(?=\\s*<)/i,\n alias: 'class-name'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: {\n pattern:\n /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n lookbehind: true\n },\n operator: /->|[-+*/^~!|#=]|:=|\\.\\./,\n punctuation: /[()[\\]{}<>,;.:]/\n }\n}\n","'use strict'\n\nmodule.exports = makefile\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\nfunction makefile(Prism) {\n Prism.languages.makefile = {\n comment: {\n pattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'builtin-target': {\n pattern: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n alias: 'builtin'\n },\n target: {\n pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n alias: 'symbol',\n inside: {\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n }\n },\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n // Directives\n keyword:\n /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,\n function: {\n pattern:\n /(\\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \\t])/,\n lookbehind: true\n },\n operator: /(?:::|[?:+!])?=|[|@]/,\n punctuation: /[:;(){}]/\n }\n}\n","'use strict'\n\nmodule.exports = markdown\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\nfunction markdown(Prism) {\n ;(function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner\n })\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n }\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n .source\n var tableRow =\n /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n /__/g,\n function () {\n return tableCell\n }\n )\n var tableLine =\n /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n .source\n Prism.languages.markdown = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'front-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp(\n '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n 'm'\n ),\n inside: {\n 'table-data-rows': {\n pattern: RegExp(\n '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n ),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [\n {\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern:\n /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n },\n {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }\n ],\n title: [\n {\n // title 1\n // =======\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n },\n {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }\n ],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern:\n /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string:\n /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(\n /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(\n /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n // eslint-disable-next-line regexp/strict\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /~~?/\n }\n },\n 'code-snippet': {\n // `code`\n // ``code``\n pattern:\n /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n lookbehind: true,\n greedy: true,\n alias: ['code', 'keyword']\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(\n /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n },\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n })\n ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (\n inside\n ) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] =\n Prism.languages.markdown[inside]\n }\n })\n })\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return\n }\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return\n }\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (token.type !== 'code') {\n walkTokens(token.content)\n continue\n }\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n var codeLang = token.content[1]\n var codeBlock = token.content[3]\n if (\n codeLang &&\n codeBlock &&\n codeLang.type === 'code-language' &&\n codeBlock.type === 'code-block' &&\n typeof codeLang.content === 'string'\n ) {\n // this might be a language that Prism does not support\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content\n .replace(/\\b#/g, 'sharp')\n .replace(/\\b\\+\\+/g, 'pp') // only use the first word\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n var alias = 'language-' + lang // add alias\n if (!codeBlock.alias) {\n codeBlock.alias = [alias]\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias]\n } else {\n codeBlock.alias.push(alias)\n }\n }\n }\n }\n walkTokens(env.tokens)\n })\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return\n }\n var codeLang = ''\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i]\n var match = /language-(.+)/.exec(cls)\n if (match) {\n codeLang = match[1]\n break\n }\n }\n var grammar = Prism.languages[codeLang]\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id =\n 'md-' +\n new Date().valueOf() +\n '-' +\n Math.floor(Math.random() * 1e16)\n env.attributes['id'] = id\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id)\n if (ele) {\n ele.innerHTML = Prism.highlight(\n ele.textContent,\n Prism.languages[codeLang],\n codeLang\n )\n }\n })\n }\n } else {\n env.content = Prism.highlight(\n textContent(env.content.value),\n grammar,\n codeLang\n )\n }\n })\n var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n /**\n * A list of known entity names.\n *\n * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n *\n * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n */\n var KNOWN_ENTITY_NAMES = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"'\n } // IE 11 doesn't support `String.fromCodePoint`\n var fromCodePoint = String.fromCodePoint || String.fromCharCode\n /**\n * Returns the text content of a given HTML source code string.\n *\n * @param {string} html\n * @returns {string}\n */\n function textContent(html) {\n // remove all tags\n var text = html.replace(tagPattern, '') // decode known entities\n text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n code = code.toLowerCase()\n if (code[0] === '#') {\n var value\n if (code[1] === 'x') {\n value = parseInt(code.slice(2), 16)\n } else {\n value = Number(code.slice(1))\n }\n return fromCodePoint(value)\n } else {\n var known = KNOWN_ENTITY_NAMES[code]\n if (known) {\n return known\n } // unable to decode\n return m\n }\n })\n return text\n }\n Prism.languages.md = Prism.languages.markdown\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = markupTemplating\nmarkupTemplating.displayName = 'markupTemplating'\nmarkupTemplating.aliases = []\nfunction markupTemplating(Prism) {\n ;(function (Prism) {\n /**\n * Returns the placeholder for the given language id and index.\n *\n * @param {string} language\n * @param {string|number} index\n * @returns {string}\n */\n function getPlaceholder(language, index) {\n return '___' + language.toUpperCase() + index + '___'\n }\n Object.defineProperties((Prism.languages['markup-templating'] = {}), {\n buildPlaceholders: {\n /**\n * Tokenize all inline templating expressions matching `placeholderPattern`.\n *\n * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n * `true` will be replaced.\n *\n * @param {object} env The environment of the `before-tokenize` hook.\n * @param {string} language The language id.\n * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n * @param {(match: string) => boolean} [replaceFilter]\n */\n value: function (env, language, placeholderPattern, replaceFilter) {\n if (env.language !== language) {\n return\n }\n var tokenStack = (env.tokenStack = [])\n env.code = env.code.replace(placeholderPattern, function (match) {\n if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n return match\n }\n var i = tokenStack.length\n var placeholder // Check for existing strings\n while (\n env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n -1\n ) {\n ++i\n } // Create a sparse array\n tokenStack[i] = match\n return placeholder\n }) // Switch the grammar to markup\n env.grammar = Prism.languages.markup\n }\n },\n tokenizePlaceholders: {\n /**\n * Replace placeholders with proper tokens after tokenizing.\n *\n * @param {object} env The environment of the `after-tokenize` hook.\n * @param {string} language The language id.\n */\n value: function (env, language) {\n if (env.language !== language || !env.tokenStack) {\n return\n } // Switch the grammar back\n env.grammar = Prism.languages[language]\n var j = 0\n var keys = Object.keys(env.tokenStack)\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n // all placeholders are replaced already\n if (j >= keys.length) {\n break\n }\n var token = tokens[i]\n if (\n typeof token === 'string' ||\n (token.content && typeof token.content === 'string')\n ) {\n var k = keys[j]\n var t = env.tokenStack[k]\n var s = typeof token === 'string' ? token : token.content\n var placeholder = getPlaceholder(language, k)\n var index = s.indexOf(placeholder)\n if (index > -1) {\n ++j\n var before = s.substring(0, index)\n var middle = new Prism.Token(\n language,\n Prism.tokenize(t, env.grammar),\n 'language-' + language,\n t\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push.apply(replacement, walkTokens([before]))\n }\n replacement.push(middle)\n if (after) {\n replacement.push.apply(replacement, walkTokens([after]))\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n } else {\n token.content = replacement\n }\n }\n } else if (\n token.content\n /* && typeof token.content !== 'string' */\n ) {\n walkTokens(token.content)\n }\n }\n return tokens\n }\n walkTokens(env.tokens)\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = markup\nmarkup.displayName = 'markup'\nmarkup.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss']\nfunction markup(Prism) {\n Prism.languages.markup = {\n comment: {\n pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n greedy: true\n },\n prolog: {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern:\n /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n tag: {\n pattern:\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [\n {\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n },\n /&#x?[\\da-f]{1,8};/i\n ]\n }\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n Prism.languages.markup['entity']\n Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n Prism.languages.markup // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {}\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n }\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n }\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n }\n var def = {}\n def[tagName] = {\n pattern: RegExp(\n /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n /__/g,\n function () {\n return tagName\n }\n ),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: inside\n }\n Prism.languages.insertBefore('markup', 'cdata', def)\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n /**\n * Adds an pattern to highlight languages embedded in HTML attributes.\n *\n * An example of an inlined language is CSS with `style` attributes.\n *\n * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addAttribute('style', 'css');\n */\n value: function (attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(\n /(^|[\"'\\s])/.source +\n '(?:' +\n attrName +\n ')' +\n /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n 'i'\n ),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n value: {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [lang, 'language-' + lang],\n inside: Prism.languages[lang]\n },\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n }\n }\n })\n }\n })\n Prism.languages.html = Prism.languages.markup\n Prism.languages.mathml = Prism.languages.markup\n Prism.languages.svg = Prism.languages.markup\n Prism.languages.xml = Prism.languages.extend('markup', {})\n Prism.languages.ssml = Prism.languages.xml\n Prism.languages.atom = Prism.languages.xml\n Prism.languages.rss = Prism.languages.xml\n}\n","'use strict'\n\nmodule.exports = matlab\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\nfunction matlab(Prism) {\n Prism.languages.matlab = {\n comment: [/%\\{[\\s\\S]*?\\}%/, /%.+/],\n string: {\n pattern: /\\B'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n // FIXME We could handle imaginary numbers as a whole\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n keyword:\n /\\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n }\n}\n","'use strict'\n\nmodule.exports = maxscript\nmaxscript.displayName = 'maxscript'\nmaxscript.aliases = []\nfunction maxscript(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\\b/i\n Prism.languages.maxscript = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?(?:\\*\\/|$)|--.*/,\n greedy: true\n },\n string: {\n pattern: /(^|[^\"\\\\@])(?:\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|@\"[^\"]*\")/,\n lookbehind: true,\n greedy: true\n },\n path: {\n pattern: /\\$(?:[\\w/\\\\.*?]|'[^']*')*/,\n greedy: true,\n alias: 'string'\n },\n 'function-call': {\n pattern: RegExp(\n '((?:' + // start of line\n (/^/.source +\n '|' + // operators and other language constructs\n /[;=<>+\\-*/^({\\[]/.source +\n '|' + // keywords as part of statements\n /\\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\\b/\n .source) +\n ')[ \\t]*)' +\n '(?!' +\n keywords.source +\n ')' +\n /[a-z_]\\w*\\b/.source +\n '(?=[ \\t]*(?:' + // variable\n ('(?!' +\n keywords.source +\n ')' +\n /[a-z_]/.source +\n '|' + // number\n /\\d|-\\.?\\d/.source +\n '|' + // other expressions or literals\n /[({'\"$@#?]/.source) +\n '))',\n 'im'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'function-definition': {\n pattern: /(\\b(?:fn|function)\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'function'\n },\n argument: {\n pattern: /\\b[a-z_]\\w*(?=:)/i,\n alias: 'attr-name'\n },\n keyword: keywords,\n boolean: /\\b(?:false|true)\\b/,\n time: {\n pattern:\n /(^|[^\\w.])(?:(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?[msft])+|\\d+:\\d+(?:\\.\\d*)?)(?![\\w.:])/,\n lookbehind: true,\n alias: 'number'\n },\n number: [\n {\n pattern:\n /(^|[^\\w.])(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?|0x[a-fA-F0-9]+)(?![\\w.:])/,\n lookbehind: true\n },\n /\\b(?:e|pi)\\b/\n ],\n constant: /\\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\\b/,\n color: {\n pattern: /\\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\\b/i,\n alias: 'constant'\n },\n operator: /[-+*/<>=!]=?|[&^?]|#(?!\\()/,\n punctuation: /[()\\[\\]{}.:,;]|#(?=\\()|\\\\$/m\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = mel\nmel.displayName = 'mel'\nmel.aliases = []\nfunction mel(Prism) {\n Prism.languages.mel = {\n comment: /\\/\\/.*/,\n code: {\n pattern: /`(?:\\\\.|[^\\\\`\\r\\n])*`/,\n greedy: true,\n alias: 'italic',\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n } // See rest below\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n variable: /\\$\\w+/,\n number: /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n flag: {\n pattern: /-[^\\d\\W]\\w*/,\n alias: 'operator'\n },\n keyword:\n /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n function:\n /\\b\\w+(?=\\()|\\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,\n operator: [\n /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,:;?\\[\\](){}]/\n }\n Prism.languages.mel['code'].inside.rest = Prism.languages.mel\n}\n","'use strict'\n\nmodule.exports = mermaid\nmermaid.displayName = 'mermaid'\nmermaid.aliases = []\nfunction mermaid(Prism) {\n Prism.languages.mermaid = {\n comment: {\n pattern: /%%.*/,\n greedy: true\n },\n style: {\n pattern:\n /^([ \\t]*(?:classDef|linkStyle|style)[ \\t]+[\\w$-]+[ \\t]+)\\w.*[^\\s;]/m,\n lookbehind: true,\n inside: {\n property: /\\b\\w[\\w-]*(?=[ \\t]*:)/,\n operator: /:/,\n punctuation: /,/\n }\n },\n 'inter-arrow-label': {\n pattern:\n /([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \\t]*(?:\"[^\"\\r\\n]*\"|[^\\s\".=-](?:[^\\r\\n.=-]*[^\\s.=-])?)[ \\t]*(?:\\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,\n lookbehind: true,\n greedy: true,\n inside: {\n arrow: {\n pattern: /(?:\\.+->?|--+[->]|==+[=>])$/,\n alias: 'operator'\n },\n label: {\n pattern: /^([\\s\\S]{2}[ \\t]*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n alias: 'property'\n },\n 'arrow-head': {\n pattern: /^\\S+/,\n alias: ['arrow', 'operator']\n }\n }\n },\n arrow: [\n // This might look complex but it really isn't.\n // There are many possible arrows (see tests) and it's impossible to fit all of them into one pattern. The\n // problem is that we only have one lookbehind per pattern. However, we cannot disallow too many arrow\n // characters in the one lookbehind because that would create too many false negatives. So we have to split the\n // arrows into different patterns.\n {\n // ER diagram\n pattern: /(^|[^{}|o.-])[|}][|o](?:--|\\.\\.)[|o][|{](?![{}|o.-])/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // flow chart\n // (?:==+|--+|-\\.*-)\n pattern:\n /(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\\.*-)[>ox]?|(?:==+|--+|-\\.*-)[>ox]|===+|---+|-\\.+-)(?![<>ox.=-])/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // sequence diagram\n pattern:\n /(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // class diagram\n pattern:\n /(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\\|?(?:--|\\.\\.)|(?:--|\\.\\.)\\|?>|--|\\.\\.)(?![<>|*o.-])/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n label: {\n pattern: /(^|[^|<])\\|(?:[^\\r\\n\"|]|\"[^\"\\r\\n]*\")+\\|/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n text: {\n pattern: /(?:[(\\[{]+|\\b>)(?:[^\\r\\n\"()\\[\\]{}]|\"[^\"\\r\\n]*\")+(?:[)\\]}]+|>)/,\n alias: 'string'\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n annotation: {\n pattern:\n /<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\\[\\[(?:choice|fork|join)\\]\\]/i,\n alias: 'important'\n },\n keyword: [\n // This language has both case-sensitive and case-insensitive keywords\n {\n pattern:\n /(^[ \\t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\\w$-])/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern:\n /(^[ \\t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \\t]+note)?|loop|opt|par|participant|rect|state|note[ \\t]+(?:over|(?:left|right)[ \\t]+of))(?![\\w$-])/im,\n lookbehind: true,\n greedy: true\n }\n ],\n entity: /#[a-z0-9]+;/,\n operator: {\n pattern: /(\\w[ \\t]*)&(?=[ \\t]*\\w)|:::|:/,\n lookbehind: true\n },\n punctuation: /[(){};]/\n }\n}\n","'use strict'\n\nmodule.exports = mizar\nmizar.displayName = 'mizar'\nmizar.aliases = []\nfunction mizar(Prism) {\n Prism.languages.mizar = {\n comment: /::.+/,\n keyword:\n /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\\b/,\n parameter: {\n pattern: /\\$(?:10|\\d)/,\n alias: 'variable'\n },\n variable: /\\b\\w+(?=:)/,\n number: /(?:\\b|-)\\d+\\b/,\n operator: /\\.\\.\\.|->|&|\\.?=/,\n punctuation: /\\(#|#\\)|[,:;\\[\\](){}]/\n }\n}\n","'use strict'\n\nmodule.exports = mongodb\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\nfunction mongodb(Prism) {\n ;(function (Prism) {\n var operators = [\n // query and projection\n '$eq',\n '$gt',\n '$gte',\n '$in',\n '$lt',\n '$lte',\n '$ne',\n '$nin',\n '$and',\n '$not',\n '$nor',\n '$or',\n '$exists',\n '$type',\n '$expr',\n '$jsonSchema',\n '$mod',\n '$regex',\n '$text',\n '$where',\n '$geoIntersects',\n '$geoWithin',\n '$near',\n '$nearSphere',\n '$all',\n '$elemMatch',\n '$size',\n '$bitsAllClear',\n '$bitsAllSet',\n '$bitsAnyClear',\n '$bitsAnySet',\n '$comment',\n '$elemMatch',\n '$meta',\n '$slice', // update\n '$currentDate',\n '$inc',\n '$min',\n '$max',\n '$mul',\n '$rename',\n '$set',\n '$setOnInsert',\n '$unset',\n '$addToSet',\n '$pop',\n '$pull',\n '$push',\n '$pullAll',\n '$each',\n '$position',\n '$slice',\n '$sort',\n '$bit', // aggregation pipeline stages\n '$addFields',\n '$bucket',\n '$bucketAuto',\n '$collStats',\n '$count',\n '$currentOp',\n '$facet',\n '$geoNear',\n '$graphLookup',\n '$group',\n '$indexStats',\n '$limit',\n '$listLocalSessions',\n '$listSessions',\n '$lookup',\n '$match',\n '$merge',\n '$out',\n '$planCacheStats',\n '$project',\n '$redact',\n '$replaceRoot',\n '$replaceWith',\n '$sample',\n '$set',\n '$skip',\n '$sort',\n '$sortByCount',\n '$unionWith',\n '$unset',\n '$unwind',\n '$setWindowFields', // aggregation pipeline operators\n '$abs',\n '$accumulator',\n '$acos',\n '$acosh',\n '$add',\n '$addToSet',\n '$allElementsTrue',\n '$and',\n '$anyElementTrue',\n '$arrayElemAt',\n '$arrayToObject',\n '$asin',\n '$asinh',\n '$atan',\n '$atan2',\n '$atanh',\n '$avg',\n '$binarySize',\n '$bsonSize',\n '$ceil',\n '$cmp',\n '$concat',\n '$concatArrays',\n '$cond',\n '$convert',\n '$cos',\n '$dateFromParts',\n '$dateToParts',\n '$dateFromString',\n '$dateToString',\n '$dayOfMonth',\n '$dayOfWeek',\n '$dayOfYear',\n '$degreesToRadians',\n '$divide',\n '$eq',\n '$exp',\n '$filter',\n '$first',\n '$floor',\n '$function',\n '$gt',\n '$gte',\n '$hour',\n '$ifNull',\n '$in',\n '$indexOfArray',\n '$indexOfBytes',\n '$indexOfCP',\n '$isArray',\n '$isNumber',\n '$isoDayOfWeek',\n '$isoWeek',\n '$isoWeekYear',\n '$last',\n '$last',\n '$let',\n '$literal',\n '$ln',\n '$log',\n '$log10',\n '$lt',\n '$lte',\n '$ltrim',\n '$map',\n '$max',\n '$mergeObjects',\n '$meta',\n '$min',\n '$millisecond',\n '$minute',\n '$mod',\n '$month',\n '$multiply',\n '$ne',\n '$not',\n '$objectToArray',\n '$or',\n '$pow',\n '$push',\n '$radiansToDegrees',\n '$range',\n '$reduce',\n '$regexFind',\n '$regexFindAll',\n '$regexMatch',\n '$replaceOne',\n '$replaceAll',\n '$reverseArray',\n '$round',\n '$rtrim',\n '$second',\n '$setDifference',\n '$setEquals',\n '$setIntersection',\n '$setIsSubset',\n '$setUnion',\n '$size',\n '$sin',\n '$slice',\n '$split',\n '$sqrt',\n '$stdDevPop',\n '$stdDevSamp',\n '$strcasecmp',\n '$strLenBytes',\n '$strLenCP',\n '$substr',\n '$substrBytes',\n '$substrCP',\n '$subtract',\n '$sum',\n '$switch',\n '$tan',\n '$toBool',\n '$toDate',\n '$toDecimal',\n '$toDouble',\n '$toInt',\n '$toLong',\n '$toObjectId',\n '$toString',\n '$toLower',\n '$toUpper',\n '$trim',\n '$trunc',\n '$type',\n '$week',\n '$year',\n '$zip',\n '$count',\n '$dateAdd',\n '$dateDiff',\n '$dateSubtract',\n '$dateTrunc',\n '$getField',\n '$rand',\n '$sampleRate',\n '$setField',\n '$unsetField', // aggregation pipeline query modifiers\n '$comment',\n '$explain',\n '$hint',\n '$max',\n '$maxTimeMS',\n '$min',\n '$orderby',\n '$query',\n '$returnKey',\n '$showDiskLoc',\n '$natural'\n ]\n var builtinFunctions = [\n 'ObjectId',\n 'Code',\n 'BinData',\n 'DBRef',\n 'Timestamp',\n 'NumberLong',\n 'NumberDecimal',\n 'MaxKey',\n 'MinKey',\n 'RegExp',\n 'ISODate',\n 'UUID'\n ]\n operators = operators.map(function (operator) {\n return operator.replace('$', '\\\\$')\n })\n var operatorsSource = '(?:' + operators.join('|') + ')\\\\b'\n Prism.languages.mongodb = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('mongodb', 'string', {\n property: {\n pattern:\n /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n greedy: true,\n inside: {\n keyword: RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n }\n }\n })\n Prism.languages.mongodb.string.inside = {\n url: {\n // url pattern\n pattern:\n /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n greedy: true\n },\n entity: {\n // ipv4\n pattern:\n /\\b(?:(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\b/,\n greedy: true\n }\n }\n Prism.languages.insertBefore('mongodb', 'constant', {\n builtin: {\n pattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n alias: 'keyword'\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = monkey\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\nfunction monkey(Prism) {\n Prism.languages.monkey = {\n comment: {\n pattern: /^#Rem\\s[\\s\\S]*?^#End|'.+/im,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n preprocessor: {\n pattern: /(^[ \\t]*)#.+/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n function: /\\b\\w+(?=\\()/,\n 'type-char': {\n pattern: /\\b[?%#$]/,\n alias: 'class-name'\n },\n number: {\n pattern:\n /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\\b/i,\n operator:\n /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[.,:;()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = moonscript\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\nfunction moonscript(Prism) {\n Prism.languages.moonscript = {\n comment: /--.*/,\n string: [\n {\n pattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n greedy: true\n },\n {\n pattern: /\"[^\"]*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /#\\{[^{}]*\\}/,\n inside: {\n moonscript: {\n pattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true,\n inside: null // see beow\n },\n 'interpolation-punctuation': {\n pattern: /#\\{|\\}/,\n alias: 'punctuation'\n }\n }\n }\n }\n }\n ],\n 'class-name': [\n {\n pattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n lookbehind: true\n }, // class-like names start with a capital letter\n /\\b[A-Z]\\w*/\n ],\n keyword:\n /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n variable: /@@?\\w*/,\n property: {\n pattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n lookbehind: true\n },\n function: {\n pattern:\n /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:create|resume|running|status|wrap|yield)|debug\\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n boolean: /\\b(?:false|true)\\b/,\n number:\n /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n operator:\n /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n punctuation: /[.,()[\\]{}\\\\]/\n }\n Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside =\n Prism.languages.moonscript\n Prism.languages.moon = Prism.languages.moonscript\n}\n","'use strict'\n\nmodule.exports = n1ql\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\nfunction n1ql(Prism) {\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html\n Prism.languages.n1ql = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)|--.*/,\n greedy: true\n },\n string: {\n pattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n greedy: true\n },\n parameter: /\\$[\\w.]+/,\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html#n1ql-reserved-words\n keyword:\n /\\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\\b/i,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:FALSE|TRUE)\\b/i,\n number: /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n punctuation: /[;[\\](),.{}:]/\n }\n}\n","'use strict'\n\nmodule.exports = n4js\nn4js.displayName = 'n4js'\nn4js.aliases = ['n4jsd']\nfunction n4js(Prism) {\n Prism.languages.n4js = Prism.languages.extend('javascript', {\n // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n keyword:\n /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n })\n Prism.languages.insertBefore('n4js', 'constant', {\n // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n annotation: {\n pattern: /@+\\w+/,\n alias: 'operator'\n }\n })\n Prism.languages.n4jsd = Prism.languages.n4js\n}\n","'use strict'\n\nmodule.exports = nand2tetrisHdl\nnand2tetrisHdl.displayName = 'nand2tetrisHdl'\nnand2tetrisHdl.aliases = []\nfunction nand2tetrisHdl(Prism) {\n Prism.languages['nand2tetris-hdl'] = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n keyword: /\\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b[A-Za-z][A-Za-z0-9]*(?=\\()/,\n number: /\\b\\d+\\b/,\n operator: /=|\\.\\./,\n punctuation: /[{}[\\];(),:]/\n }\n}\n","'use strict'\n\nmodule.exports = naniscript\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = []\nfunction naniscript(Prism) {\n ;(function (Prism) {\n var expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/\n var params = {\n 'quoted-string': {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n alias: 'operator'\n },\n 'command-param-id': {\n pattern: /(\\s)\\w+:/,\n lookbehind: true,\n alias: 'property'\n },\n 'command-param-value': [\n {\n pattern: expressionDef,\n alias: 'selector'\n },\n {\n pattern: /([\\t ])\\S+/,\n lookbehind: true,\n greedy: true,\n alias: 'operator'\n },\n {\n pattern: /\\S(?:.*\\S)?/,\n alias: 'operator'\n }\n ]\n }\n Prism.languages.naniscript = {\n // ; ...\n comment: {\n pattern: /^([\\t ]*);.*/m,\n lookbehind: true\n },\n // > ...\n // Define is a control line starting with '>' followed by a word, a space and a text.\n define: {\n pattern: /^>.+/m,\n alias: 'tag',\n inside: {\n value: {\n pattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n lookbehind: true,\n alias: 'operator'\n },\n key: {\n pattern: /(^>)\\w+/,\n lookbehind: true\n }\n }\n },\n // # ...\n label: {\n pattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n lookbehind: true,\n alias: 'regex'\n },\n command: {\n pattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n 'command-name': /^@\\w+/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'command-params': {\n pattern: /\\s*\\S[\\s\\S]*/,\n inside: params\n }\n }\n },\n // Generic is any line that doesn't start with operators: ;>#@\n 'generic-text': {\n pattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n lookbehind: true,\n alias: 'punctuation',\n inside: {\n // \\{ ... \\} ... \\[ ... \\] ... \\\"\n 'escaped-char': /\\\\[{}\\[\\]\"]/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'inline-command': {\n pattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n greedy: true,\n alias: 'function',\n inside: {\n 'command-params': {\n pattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n inside: params\n },\n 'command-param-name': {\n pattern: /^(\\[[\\t ]*)\\w+/,\n lookbehind: true,\n alias: 'name'\n },\n 'start-stop-char': /[\\[\\]]/\n }\n }\n }\n }\n }\n Prism.languages.nani = Prism.languages['naniscript']\n /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\n /**\n * This hook is used to validate generic-text tokens for balanced brackets.\n * Mark token as bad-line when contains not balanced brackets: {},[]\n */\n Prism.hooks.add('after-tokenize', function (env) {\n /** @type {(Token | string)[]} */\n var tokens = env.tokens\n tokens.forEach(function (token) {\n if (typeof token !== 'string' && token.type === 'generic-text') {\n var content = getTextContent(token)\n if (!isBracketsBalanced(content)) {\n token.type = 'bad-line'\n token.content = content\n }\n }\n })\n })\n /**\n * @param {string} input\n * @returns {boolean}\n */\n function isBracketsBalanced(input) {\n var brackets = '[]{}'\n var stack = []\n for (var i = 0; i < input.length; i++) {\n var bracket = input[i]\n var bracketsIndex = brackets.indexOf(bracket)\n if (bracketsIndex !== -1) {\n if (bracketsIndex % 2 === 0) {\n stack.push(bracketsIndex + 1)\n } else if (stack.pop() !== bracketsIndex) {\n return false\n }\n }\n }\n return stack.length === 0\n }\n /**\n * @param {string | Token | (string | Token)[]} token\n * @returns {string}\n */\n function getTextContent(token) {\n if (typeof token === 'string') {\n return token\n } else if (Array.isArray(token)) {\n return token.map(getTextContent).join('')\n } else {\n return getTextContent(token.content)\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = nasm\nnasm.displayName = 'nasm'\nnasm.aliases = []\nfunction nasm(Prism) {\n Prism.languages.nasm = {\n comment: /;.*$/m,\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n label: {\n pattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n /\\[?BITS (?:16|32|64)\\]?/,\n {\n pattern: /(^\\s*)section\\s*[a-z.]+:?/im,\n lookbehind: true\n },\n /(?:extern|global)[^;\\r\\n]*/i,\n /(?:CPU|DEFAULT|FLOAT).*$/m\n ],\n register: {\n pattern:\n /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\\b/i,\n alias: 'variable'\n },\n number:\n /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-\\/%<>=&|$!]/\n }\n}\n","'use strict'\n\nmodule.exports = neon\nneon.displayName = 'neon'\nneon.aliases = []\nfunction neon(Prism) {\n Prism.languages.neon = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n datetime: {\n pattern:\n /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n lookbehind: true,\n alias: 'number'\n },\n key: {\n pattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n lookbehind: true,\n alias: 'atrule'\n },\n number: {\n pattern:\n /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[[{(=:,\\s])(?:false|no|true|yes)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true\n },\n null: {\n pattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true,\n alias: 'keyword'\n },\n string: {\n pattern:\n /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n lookbehind: true,\n greedy: true\n },\n literal: {\n pattern:\n /(^|[[{(=:,\\s])(?:[^#\"',:=[\\]{}()\\s`-]|[:-][^\"',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /[,:=[\\]{}()-]/\n }\n}\n","'use strict'\n\nmodule.exports = nevod\nnevod.displayName = 'nevod'\nnevod.aliases = []\nfunction nevod(Prism) {\n Prism.languages.nevod = {\n comment: /\\/\\/.*|(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$))/,\n string: {\n pattern: /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))!?\\*?/,\n greedy: true,\n inside: {\n 'string-attrs': /!$|!\\*$|\\*$/\n }\n },\n namespace: {\n pattern: /(@namespace\\s+)[a-zA-Z0-9\\-.]+(?=\\s*\\{)/,\n lookbehind: true\n },\n pattern: {\n pattern:\n /(@pattern\\s+)?#?[a-zA-Z0-9\\-.]+(?:\\s*\\(\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]+\\s*(?:,\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]*)*\\))?(?=\\s*=)/,\n lookbehind: true,\n inside: {\n 'pattern-name': {\n pattern: /^#?[a-zA-Z0-9\\-.]+/,\n alias: 'class-name'\n },\n fields: {\n pattern: /\\(.*\\)/,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n punctuation: /[,()]/,\n operator: {\n pattern: /~/,\n alias: 'field-hidden-mark'\n }\n }\n }\n }\n },\n search: {\n pattern: /(@search\\s+|#)[a-zA-Z0-9\\-.]+(?:\\.\\*)?(?=\\s*;)/,\n alias: 'function',\n lookbehind: true\n },\n keyword:\n /@(?:having|inside|namespace|outside|pattern|require|search|where)\\b/,\n 'standard-pattern': {\n pattern:\n /\\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\\b(?:\\([a-zA-Z0-9\\-.,\\s+]*\\))?/,\n inside: {\n 'standard-pattern-name': {\n pattern: /^[a-zA-Z0-9\\-.]+/,\n alias: 'builtin'\n },\n quantifier: {\n pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n alias: 'number'\n },\n 'standard-pattern-attr': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'builtin'\n },\n punctuation: /[,()]/\n }\n },\n quantifier: {\n pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n alias: 'number'\n },\n operator: [\n {\n pattern: /=/,\n alias: 'pattern-def'\n },\n {\n pattern: /&/,\n alias: 'conjunction'\n },\n {\n pattern: /~/,\n alias: 'exception'\n },\n {\n pattern: /\\?/,\n alias: 'optionality'\n },\n {\n pattern: /[[\\]]/,\n alias: 'repetition'\n },\n {\n pattern: /[{}]/,\n alias: 'variation'\n },\n {\n pattern: /[+_]/,\n alias: 'sequence'\n },\n {\n pattern: /\\.{2,3}/,\n alias: 'span'\n }\n ],\n 'field-capture': [\n {\n pattern:\n /([a-zA-Z0-9\\-.]+\\s*\\()\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+(?:\\s*,\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+)*(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n colon: /:/\n }\n },\n {\n pattern: /[a-zA-Z0-9\\-.]+\\s*:/,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n colon: /:/\n }\n }\n ],\n punctuation: /[:;,()]/,\n name: /[a-zA-Z0-9\\-.]+/\n }\n}\n","'use strict'\n\nmodule.exports = nginx\nnginx.displayName = 'nginx'\nnginx.aliases = []\nfunction nginx(Prism) {\n ;(function (Prism) {\n var variable =\n /\\$(?:\\w[a-z\\d]*(?:_[^\\x00-\\x1F\\s\"'\\\\()$]*)?|\\{[^}\\s\"'\\\\]+\\})/i\n Prism.languages.nginx = {\n comment: {\n pattern: /(^|[\\s{};])#.*/,\n lookbehind: true,\n greedy: true\n },\n directive: {\n pattern:\n /(^|\\s)\\w(?:[^;{}\"'\\\\\\s]|\\\\.|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\s+(?:#.*(?!.)|(?![#\\s])))*?(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: {\n string: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\\\\\)*)(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')/,\n lookbehind: true,\n greedy: true,\n inside: {\n escape: {\n pattern: /\\\\[\"'\\\\nrt]/,\n alias: 'entity'\n },\n variable: variable\n }\n },\n comment: {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n greedy: true\n },\n keyword: {\n pattern: /^\\S+/,\n greedy: true\n },\n // other patterns\n boolean: {\n pattern: /(\\s)(?:off|on)(?!\\S)/,\n lookbehind: true\n },\n number: {\n pattern: /(\\s)\\d+[a-z]*(?!\\S)/i,\n lookbehind: true\n },\n variable: variable\n }\n },\n punctuation: /[{};]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = nim\nnim.displayName = 'nim'\nnim.aliases = []\nfunction nim(Prism) {\n Prism.languages.nim = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n pattern:\n /(?:\\b(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")/,\n greedy: true\n },\n char: {\n // Character literals are handled specifically to prevent issues with numeric type suffixes\n pattern: /'(?:\\\\(?:\\d+|x[\\da-fA-F]{0,2}|.)|[^'])'/,\n greedy: true\n },\n function: {\n pattern:\n /(?:(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n greedy: true,\n inside: {\n operator: /\\*$/\n }\n },\n // We don't want to highlight operators (and anything really) inside backticks\n identifier: {\n pattern: /`[^`\\r\\n]+`/,\n greedy: true,\n inside: {\n punctuation: /`/\n }\n },\n // The negative look ahead prevents wrong highlighting of the .. operator\n number:\n /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n keyword:\n /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n operator: {\n // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n // but allow the slice operator .. to take precedence over them\n // One can define his own operators in Nim so all combination of operators might be an operator.\n pattern:\n /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\\b)/m,\n lookbehind: true\n },\n punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n }\n}\n","'use strict'\n\nmodule.exports = nix\nnix.displayName = 'nix'\nnix.aliases = []\nfunction nix(Prism) {\n Prism.languages.nix = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n greedy: true,\n inside: {\n interpolation: {\n // The lookbehind ensures the ${} is not preceded by \\ or ''\n pattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n lookbehind: true,\n inside: null // see below\n }\n }\n },\n url: [\n /\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n {\n pattern:\n /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n lookbehind: true\n }\n ],\n antiquotation: {\n pattern: /\\$(?=\\{)/,\n alias: 'important'\n },\n number: /\\b\\d+\\b/,\n keyword: /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n function:\n /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n punctuation: /[{}()[\\].,:;]/\n }\n Prism.languages.nix.string.inside.interpolation.inside = Prism.languages.nix\n}\n","'use strict'\n\nmodule.exports = nsis\nnsis.displayName = 'nsis'\nnsis.aliases = []\nfunction nsis(Prism) {\n /**\n * Original by Jan T. Sott (http://github.com/idleberg)\n *\n * Includes all commands and plug-ins shipped with NSIS 3.08\n */\n Prism.languages.nsis = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: {\n pattern:\n /(^[\\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\\b/m,\n lookbehind: true\n },\n property:\n /\\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\\b/,\n constant: /\\$\\{[!\\w\\.:\\^-]+\\}|\\$\\([!\\w\\.:\\^-]+\\)/,\n variable: /\\$\\w[\\w\\.]*/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator: /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n punctuation: /[{}[\\];(),.:]/,\n important: {\n pattern:\n /(^[\\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n lookbehind: true\n }\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = objectivec\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\nfunction objectivec(Prism) {\n Prism.register(refractorC)\n Prism.languages.objectivec = Prism.languages.extend('c', {\n string: {\n pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n })\n delete Prism.languages.objectivec['class-name']\n Prism.languages.objc = Prism.languages.objectivec\n}\n","'use strict'\n\nmodule.exports = ocaml\nocaml.displayName = 'ocaml'\nocaml.aliases = []\nfunction ocaml(Prism) {\n // https://ocaml.org/manual/lex.html\n Prism.languages.ocaml = {\n comment: {\n pattern: /\\(\\*[\\s\\S]*?\\*\\)/,\n greedy: true\n },\n char: {\n pattern: /'(?:[^\\\\\\r\\n']|\\\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,\n greedy: true\n },\n string: [\n {\n pattern: /\"(?:\\\\(?:[\\s\\S]|\\r\\n)|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n {\n pattern: /\\{([a-z_]*)\\|[\\s\\S]*?\\|\\1\\}/,\n greedy: true\n }\n ],\n number: [\n // binary and octal\n /\\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\\b/i, // hexadecimal\n /\\b0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]*)?(?:p[+-]?\\d[\\d_]*)?(?!\\w)/i, // decimal\n /\\b\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?(?!\\w)/i\n ],\n directive: {\n pattern: /\\B#\\w+/,\n alias: 'property'\n },\n label: {\n pattern: /\\B~\\w+/,\n alias: 'property'\n },\n 'type-variable': {\n pattern: /\\B'\\w+/,\n alias: 'function'\n },\n variant: {\n pattern: /`\\w+/,\n alias: 'symbol'\n },\n // For the list of keywords and operators,\n // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n keyword:\n /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'operator-like-punctuation': {\n pattern: /\\[[<>|]|[>|]\\]|\\{<|>\\}/,\n alias: 'punctuation'\n },\n // Custom operators are allowed\n operator:\n /\\.[.~]|:[=>]|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n punctuation: /;;|::|[(){}\\[\\].,:;#]|\\b_\\b/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = opencl\nopencl.displayName = 'opencl'\nopencl.aliases = []\nfunction opencl(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n /* OpenCL kernel language */\n Prism.languages.opencl = Prism.languages.extend('c', {\n // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n keyword:\n /\\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n boolean: /\\b(?:false|true)\\b/,\n 'constant-opencl-kernel': {\n pattern:\n /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\\b/,\n alias: 'constant'\n }\n })\n Prism.languages.insertBefore('opencl', 'class-name', {\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n 'builtin-type': {\n pattern:\n /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n alias: 'keyword'\n }\n })\n var attributes = {\n // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n 'type-opencl-host': {\n pattern:\n /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n alias: 'keyword'\n },\n 'boolean-opencl-host': {\n pattern: /\\bCL_(?:FALSE|TRUE)\\b/,\n alias: 'boolean'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n 'constant-opencl-host': {\n pattern:\n /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n alias: 'constant'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n 'function-opencl-host': {\n pattern:\n /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n alias: 'function'\n }\n }\n /* OpenCL host API */\n Prism.languages.insertBefore('c', 'keyword', attributes) // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n if (Prism.languages.cpp) {\n // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n attributes['type-opencl-host-cpp'] = {\n pattern:\n /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\\b/,\n alias: 'keyword'\n }\n Prism.languages.insertBefore('cpp', 'keyword', attributes)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = openqasm\nopenqasm.displayName = 'openqasm'\nopenqasm.aliases = ['qasm']\nfunction openqasm(Prism) {\n // https://qiskit.github.io/openqasm/grammar/index.html\n Prism.languages.openqasm = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"[^\"\\r\\n\\t]*\"|'[^'\\r\\n\\t]*'/,\n greedy: true\n },\n keyword:\n /\\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\\b|#pragma\\b/,\n 'class-name':\n /\\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\\b/,\n function: /\\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\\b(?=\\s*\\()/,\n constant: /\\b(?:euler|pi|tau)\\b|π|𝜏|ℇ/,\n number: {\n pattern:\n /(^|[^.\\w$])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?(?:dt|ns|us|µs|ms|s)?/i,\n lookbehind: true\n },\n operator: /->|>>=?|<<=?|&&|\\|\\||\\+\\+|--|[!=<>&|~^+\\-*/%]=?|@/,\n punctuation: /[(){}\\[\\];,:.]/\n }\n Prism.languages.qasm = Prism.languages.openqasm\n}\n","'use strict'\n\nmodule.exports = oz\noz.displayName = 'oz'\noz.aliases = []\nfunction oz(Prism) {\n Prism.languages.oz = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n atom: {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n alias: 'builtin'\n },\n keyword:\n /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n function: [\n /\\b[a-z][A-Za-z\\d]*(?=\\()/,\n {\n pattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n lookbehind: true\n }\n ],\n number:\n /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n variable: /`(?:[^`\\\\]|\\\\.)+`/,\n 'attr-name': /\\b\\w+(?=[ \\t]*:(?![:=]))/,\n operator:\n /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n punctuation: /[\\[\\](){}.:;?]/\n }\n}\n","'use strict'\n\nmodule.exports = parigp\nparigp.displayName = 'parigp'\nparigp.aliases = []\nfunction parigp(Prism) {\n Prism.languages.parigp = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n greedy: true\n },\n // PARI/GP does not care about white spaces at all\n // so let's process the keywords to build an appropriate regexp\n // (e.g. \"b *r *e *a *k\", etc.)\n keyword: (function () {\n var keywords = [\n 'breakpoint',\n 'break',\n 'dbg_down',\n 'dbg_err',\n 'dbg_up',\n 'dbg_x',\n 'forcomposite',\n 'fordiv',\n 'forell',\n 'forpart',\n 'forprime',\n 'forstep',\n 'forsubgroup',\n 'forvec',\n 'for',\n 'iferr',\n 'if',\n 'local',\n 'my',\n 'next',\n 'return',\n 'until',\n 'while'\n ]\n keywords = keywords\n .map(function (keyword) {\n return keyword.split('').join(' *')\n })\n .join('|')\n return RegExp('\\\\b(?:' + keywords + ')\\\\b')\n })(),\n function: /\\b\\w(?:[\\w ]*\\w)?(?= *\\()/,\n number: {\n // The lookbehind and the negative lookahead prevent from breaking the .. operator\n pattern:\n /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n lookbehind: true\n },\n operator:\n /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n punctuation: /[\\[\\]{}().,:;|]/\n }\n}\n","'use strict'\n\nmodule.exports = parser\nparser.displayName = 'parser'\nparser.aliases = []\nfunction parser(Prism) {\n ;(function (Prism) {\n var parser = (Prism.languages.parser = Prism.languages.extend('markup', {\n keyword: {\n pattern:\n /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\.|:+/\n }\n },\n function: {\n pattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /(^@)(?:GET_|SET_)/,\n lookbehind: true\n },\n punctuation: /\\.|:+/\n }\n },\n escape: {\n pattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n alias: 'builtin'\n },\n punctuation: /[\\[\\](){};]/\n }))\n parser = Prism.languages.insertBefore('parser', 'keyword', {\n 'parser-comment': {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n alias: 'comment'\n },\n expression: {\n // Allow for 3 levels of depth\n pattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n greedy: true,\n lookbehind: true,\n inside: {\n string: {\n pattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n lookbehind: true\n },\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n escape: parser.escape,\n operator:\n /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n punctuation: parser.punctuation\n }\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n expression: parser.expression,\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n escape: parser.escape,\n 'parser-punctuation': {\n pattern: parser.punctuation,\n alias: 'punctuation'\n }\n },\n parser['tag'].inside['attr-value']\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pascal\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\nfunction pascal(Prism) {\n // Based on Free Pascal\n /* TODO\nSupport inline asm ?\n*/\n Prism.languages.pascal = {\n directive: {\n pattern: /\\{\\$[\\s\\S]*?\\}/,\n greedy: true,\n alias: ['marco', 'property']\n },\n comment: {\n pattern: /\\(\\*[\\s\\S]*?\\*\\)|\\{[\\s\\S]*?\\}|\\/\\/.*/,\n greedy: true\n },\n string: {\n pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n greedy: true\n },\n asm: {\n pattern: /(\\basm\\b)[\\s\\S]+?(?=\\bend\\s*[;[])/i,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n keyword: [\n {\n // Turbo Pascal\n pattern:\n /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n lookbehind: true\n },\n {\n // Free Pascal\n pattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n lookbehind: true\n },\n {\n // Object Pascal\n pattern:\n /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n lookbehind: true\n },\n {\n // Modifiers\n pattern:\n /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n lookbehind: true\n }\n ],\n number: [\n // Hexadecimal, octal and binary\n /(?:[&%]\\d+|\\$[a-f\\d]+)/i, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n ],\n operator: [\n /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/,\n {\n pattern:\n /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n }\n Prism.languages.pascal.asm.inside = Prism.languages.extend('pascal', {\n asm: undefined,\n keyword: undefined,\n operator: undefined\n })\n Prism.languages.objectpascal = Prism.languages.pascal\n}\n","'use strict'\n\nmodule.exports = pascaligo\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\nfunction pascaligo(Prism) {\n ;(function (Prism) {\n // Pascaligo is a layer 2 smart contract language for the tezos blockchain\n var braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source\n var type = /(?:\\b\\w+(?:<braces>)?|<braces>)/.source.replace(\n /<braces>/g,\n function () {\n return braces\n }\n )\n var pascaligo = (Prism.languages.pascaligo = {\n comment: /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n greedy: true\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(\\btype\\s+\\w+\\s+is\\s+)<type>/.source.replace(\n /<type>/g,\n function () {\n return type\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n pattern: RegExp(\n /<type>(?=\\s+is\\b)/.source.replace(/<type>/g, function () {\n return type\n }),\n 'i'\n ),\n inside: null // see below\n },\n {\n pattern: RegExp(\n /(:\\s*)<type>/.source.replace(/<type>/g, function () {\n return type\n })\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n keyword: {\n pattern:\n /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^&])\\b(?:False|True)\\b/i,\n lookbehind: true\n },\n builtin: {\n pattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n lookbehind: true\n },\n function: /\\b\\w+(?=\\s*\\()/,\n number: [\n // Hexadecimal, octal and binary\n /%[01]+|&[0-7]+|\\$[a-f\\d]+/i, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n ],\n operator:\n /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n })\n var classNameInside = [\n 'comment',\n 'keyword',\n 'builtin',\n 'operator',\n 'punctuation'\n ].reduce(function (accum, key) {\n accum[key] = pascaligo[key]\n return accum\n }, {})\n pascaligo['class-name'].forEach(function (p) {\n p.inside = classNameInside\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pcaxis\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\nfunction pcaxis(Prism) {\n Prism.languages.pcaxis = {\n string: /\"[^\"]*\"/,\n keyword: {\n pattern:\n /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^[-A-Z\\d]+/,\n language: {\n pattern: /^(\\s*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n property: /[-\\w]+/\n }\n },\n 'sub-key': {\n pattern: /^(\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /\"[^\"]*\"/,\n alias: 'property'\n },\n punctuation: /^\\(|\\)$|,/\n }\n }\n }\n },\n operator: /=/,\n tlist: {\n pattern:\n /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n greedy: true,\n inside: {\n function: /^TLIST/,\n property: {\n pattern: /^(\\s*\\(\\s*)\\w+/,\n lookbehind: true\n },\n string: /\"[^\"]*\"/,\n punctuation: /[(),]/,\n operator: /-/\n }\n },\n punctuation: /[;,]/,\n number: {\n pattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n lookbehind: true\n },\n boolean: /NO|YES/\n }\n Prism.languages.px = Prism.languages.pcaxis\n}\n","'use strict'\n\nmodule.exports = peoplecode\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\nfunction peoplecode(Prism) {\n Prism.languages.peoplecode = {\n comment: RegExp(\n [\n // C-style multiline comments\n /\\/\\*[\\s\\S]*?\\*\\//.source, // REM comments\n /\\bREM[^;]*;/.source, // Nested <* *> comments\n /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source, // /+ +/ comments\n /\\/\\+[\\s\\S]*?\\+\\//.source\n ].join('|')\n ),\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n variable: /%\\w+/,\n 'function-definition': {\n pattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n lookbehind: true,\n alias: 'function'\n },\n 'class-name': {\n pattern:\n /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n lookbehind: true,\n inside: {\n punctuation: /:/\n }\n },\n keyword:\n /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n 'operator-keyword': {\n pattern: /\\b(?:and|not|or)\\b/i,\n alias: 'operator'\n },\n function: /[_a-z]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n punctuation: /[:.;,()[\\]]/\n }\n Prism.languages.pcode = Prism.languages.peoplecode\n}\n","'use strict'\n\nmodule.exports = perl\nperl.displayName = 'perl'\nperl.aliases = []\nfunction perl(Prism) {\n ;(function (Prism) {\n var brackets =\n /(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)/\n .source\n Prism.languages.perl = {\n comment: [\n {\n // POD\n pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // TODO Could be nice to handle Heredoc too.\n string: [\n {\n pattern: RegExp(\n /\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // q/.../\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // q a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // q(...)\n // q{...}\n // q[...]\n // q<...>\n brackets\n ].join('|') +\n ')'\n ),\n greedy: true\n }, // \"...\", `...`\n {\n pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n }, // '...'\n // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n {\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n }\n ],\n regex: [\n {\n pattern: RegExp(\n /\\b(?:m|qr)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // m/.../\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // m a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // m(...)\n // m{...}\n // m[...]\n // m<...>\n brackets\n ].join('|') +\n ')' +\n /[msixpodualngc]*/.source\n ),\n greedy: true\n }, // The lookbehinds prevent -s from breaking\n {\n pattern: RegExp(\n /(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // s/.../.../\n // eslint-disable-next-line regexp/strict\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/\n .source, // s a...a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3/\n .source, // s(...)(...)\n // s{...}{...}\n // s[...][...]\n // s<...><...>\n // s(...)[...]\n brackets + /\\s*/.source + brackets\n ].join('|') +\n ')' +\n /[msixpodualngcer]*/.source\n ),\n lookbehind: true,\n greedy: true\n }, // /.../\n // The look-ahead tries to prevent two divisions on\n // the same line from being highlighted as regex.\n // This does not support multi-line regex.\n {\n pattern:\n /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\\b))/,\n greedy: true\n }\n ],\n // FIXME Not sure about the handling of ::, ', and #\n variable: [\n // ${^POSTMATCH}\n /[&*$@%]\\{\\^[A-Z]+\\}/, // $^V\n /[&*$@%]\\^[A-Z_]/, // ${...}\n /[&*$@%]#?(?=\\{)/, // $foo\n /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+(?![\\w$]))+(?:::)*/, // $1\n /[&*$@%]\\d+/, // $_, @_, %!\n // The negative lookahead prevents from breaking the %= operator\n /(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n ],\n filehandle: {\n // <>, <FOO>, _\n pattern: /<(?![<=])\\S*?>|\\b_\\b/,\n alias: 'symbol'\n },\n 'v-string': {\n // v1.2, 1.2.3\n pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n alias: 'string'\n },\n function: {\n pattern: /(\\bsub[ \\t]+)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n number:\n /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n operator:\n /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\\b/,\n punctuation: /[{}[\\];(),:]/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nmodule.exports = phpExtras\nphpExtras.displayName = 'phpExtras'\nphpExtras.aliases = []\nfunction phpExtras(Prism) {\n Prism.register(refractorPhp)\n Prism.languages.insertBefore('php', 'variable', {\n this: {\n pattern: /\\$this\\b/,\n alias: 'keyword'\n },\n global:\n /\\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\\b/,\n scope: {\n pattern: /\\b[\\w\\\\]+::/,\n inside: {\n keyword: /\\b(?:parent|self|static)\\b/,\n punctuation: /::|\\\\/\n }\n }\n })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = php\nphp.displayName = 'php'\nphp.aliases = []\nfunction php(Prism) {\n Prism.register(refractorMarkupTemplating)\n /**\n * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n * Modified by Miles Johnson: http://milesj.me\n * Rewritten by Tom Pavelec\n *\n * Supports PHP 5.3 - 8.0\n */\n ;(function (Prism) {\n var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/\n var constant = [\n {\n pattern: /\\b(?:false|true)\\b/i,\n alias: 'boolean'\n },\n {\n pattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n greedy: true,\n lookbehind: true\n },\n /\\b(?:null)\\b/i,\n /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/\n ]\n var number =\n /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n var operator =\n /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/\n var punctuation = /[{}\\[\\](),:;]/\n Prism.languages.php = {\n delimiter: {\n pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n alias: 'important'\n },\n comment: comment,\n variable: /\\$+(?:\\w+\\b|(?=\\{))/,\n package: {\n pattern:\n /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n 'class-name-definition': {\n pattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n 'function-definition': {\n pattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n {\n pattern:\n /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n alias: 'type-casting',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string|void)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n alias: 'type-declaration',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n // yield from\n pattern: /(\\byield\\s+)from\\b/i,\n lookbehind: true\n }, // `class` is always a keyword unlike other keywords\n /\\bclass\\b/i,\n {\n // https://www.php.net/manual/en/reserved.keywords.php\n //\n // keywords cannot be preceded by \"->\"\n // the complex lookbehind means `(?<!(?:->|::)\\s*)`\n pattern:\n /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n lookbehind: true\n }\n ],\n 'argument-name': {\n pattern: /([(,]\\s+)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n lookbehind: true\n },\n 'class-name': [\n {\n pattern:\n /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern:\n /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-declaration'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n alias: ['class-name-fully-qualified', 'static-context'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-hint'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: ['class-name-fully-qualified', 'return-type'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n function: {\n pattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n property: {\n pattern: /(->\\s*)\\w+/,\n lookbehind: true\n },\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n var string_interpolation = {\n pattern:\n /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n lookbehind: true,\n inside: Prism.languages.php\n }\n var string = [\n {\n pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n alias: 'nowdoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<'?|[';]$/\n }\n }\n }\n },\n {\n pattern:\n /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<\"?|[\";]$/\n }\n },\n interpolation: string_interpolation\n }\n },\n {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n alias: 'backtick-quoted-string',\n greedy: true\n },\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n alias: 'single-quoted-string',\n greedy: true\n },\n {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n alias: 'double-quoted-string',\n greedy: true,\n inside: {\n interpolation: string_interpolation\n }\n }\n ]\n Prism.languages.insertBefore('php', 'variable', {\n string: string,\n attribute: {\n pattern:\n /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n greedy: true,\n inside: {\n 'attribute-content': {\n pattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n // inside can appear subset of php\n inside: {\n comment: comment,\n string: string,\n 'attribute-class-name': [\n {\n pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'class-name',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n alias: ['class-name', 'class-name-fully-qualified'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n },\n delimiter: {\n pattern: /^#\\[|\\]$/,\n alias: 'punctuation'\n }\n }\n }\n })\n Prism.hooks.add('before-tokenize', function (env) {\n if (!/<\\?/.test(env.code)) {\n return\n }\n var phpPattern =\n /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'php',\n phpPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php')\n })\n })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = phpdoc\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\nfunction phpdoc(Prism) {\n Prism.register(refractorPhp)\n Prism.register(refractorJavadoclike)\n ;(function (Prism) {\n var typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source\n Prism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n pattern: RegExp(\n '(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' +\n typeExpression +\n '\\\\s+)?)\\\\$\\\\w+'\n ),\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('phpdoc', 'keyword', {\n 'class-name': [\n {\n pattern: RegExp(\n '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' +\n typeExpression\n ),\n lookbehind: true,\n inside: {\n keyword:\n /\\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\\b/,\n punctuation: /[|\\\\[\\]()]/\n }\n }\n ]\n })\n Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n })(Prism)\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = plsql\nplsql.displayName = 'plsql'\nplsql.aliases = []\nfunction plsql(Prism) {\n Prism.register(refractorSql)\n Prism.languages.plsql = Prism.languages.extend('sql', {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|--.*/,\n greedy: true\n },\n // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-reserved-words-keywords.html\n keyword:\n /\\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\\b/i,\n // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-language-fundamentals.html#GUID-96A42F7C-7A71-4B90-8255-CA9C8BD9722E\n operator: /:=?|=>|[<>^~!]=|\\.\\.|\\|\\||\\*\\*|[-+*/%<>=@]/\n })\n Prism.languages.insertBefore('plsql', 'operator', {\n label: {\n pattern: /<<\\s*\\w+\\s*>>/,\n alias: 'symbol'\n }\n })\n}\n","'use strict'\n\nmodule.exports = powerquery\npowerquery.displayName = 'powerquery'\npowerquery.aliases = []\nfunction powerquery(Prism) {\n // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n Prism.languages.powerquery = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n 'quoted-identifier': {\n pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n string: {\n pattern: /(?:#!)?\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n constant: [\n /\\bDay\\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\\b/,\n /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n /\\bOccurrence\\.(?:All|First|Last)\\b/,\n /\\bOrder\\.(?:Ascending|Descending)\\b/,\n /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n /\\bJoinKind\\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\\b/,\n /\\bGroupKind\\.(?:Global|Local)\\b/,\n /\\bExtraValues\\.(?:Error|Ignore|List)\\b/,\n /\\bJoinAlgorithm\\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\\b/,\n /\\bJoinSide\\.(?:Left|Right)\\b/,\n /\\bPrecision\\.(?:Decimal|Double)\\b/,\n /\\bRelativePosition\\.From(?:End|Start)\\b/,\n /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\\b/,\n /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n /\\bnull\\b/\n ],\n boolean: /\\b(?:false|true)\\b/,\n keyword:\n /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n function: {\n pattern: /(^|[^#\\w.])[a-z_][\\w.]*(?=\\s*\\()/i,\n lookbehind: true\n },\n 'data-type': {\n pattern:\n /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\\b/,\n alias: 'class-name'\n },\n number: {\n pattern:\n /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n lookbehind: true\n },\n operator: /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n punctuation: /[,;\\[\\](){}]/\n }\n Prism.languages.pq = Prism.languages['powerquery']\n Prism.languages.mscript = Prism.languages['powerquery']\n}\n","'use strict'\n\nmodule.exports = powershell\npowershell.displayName = 'powershell'\npowershell.aliases = []\nfunction powershell(Prism) {\n ;(function (Prism) {\n var powershell = (Prism.languages.powershell = {\n comment: [\n {\n pattern: /(^|[^`])<#[\\s\\S]*?#>/,\n lookbehind: true\n },\n {\n pattern: /(^|[^`])#.*/,\n lookbehind: true\n }\n ],\n string: [\n {\n pattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n greedy: true,\n inside: null // see below\n },\n {\n pattern: /'(?:[^']|'')*'/,\n greedy: true\n }\n ],\n // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n namespace: /\\[[a-z](?:\\[(?:\\[[^\\]]*\\]|[^\\[\\]])*\\]|[^\\[\\]])*\\]/i,\n boolean: /\\$(?:false|true)\\b/i,\n variable: /\\$\\w+\\b/,\n // Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n // Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n function: [\n /\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n /\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n ],\n // per http://technet.microsoft.com/en-us/library/hh847744.aspx\n keyword:\n /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n operator: {\n pattern:\n /(^|\\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n lookbehind: true\n },\n punctuation: /[|{}[\\];(),.]/\n }) // Variable interpolation inside strings, and nested expressions\n powershell.string[0].inside = {\n function: {\n // Allow for one level of nesting\n pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n lookbehind: true,\n inside: powershell\n },\n boolean: powershell.boolean,\n variable: powershell.variable\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = processing\nprocessing.displayName = 'processing'\nprocessing.aliases = []\nfunction processing(Prism) {\n Prism.languages.processing = Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n // Spaces are allowed between function name and parenthesis\n function: /\\b\\w+(?=\\s*\\()/,\n operator: /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n })\n Prism.languages.insertBefore('processing', 'number', {\n // Special case: XML is a type\n constant: /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n type: {\n pattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n alias: 'class-name'\n }\n })\n}\n","'use strict'\n\nmodule.exports = prolog\nprolog.displayName = 'prolog'\nprolog.aliases = []\nfunction prolog(Prism) {\n Prism.languages.prolog = {\n // Syntax depends on the implementation\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n greedy: true\n },\n // Depending on the implementation, strings may allow escaped newlines and quote-escape\n string: {\n pattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1(?!\\1)/,\n greedy: true\n },\n builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n function: /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n number: /\\b\\d+(?:\\.\\d*)?/,\n // Custom operators are allowed\n operator: /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n punctuation: /[(){}\\[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = promql\npromql.displayName = 'promql'\npromql.aliases = []\nfunction promql(Prism) {\n // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n ;(function (Prism) {\n // PromQL Aggregation Operators\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n var aggregations = [\n 'sum',\n 'min',\n 'max',\n 'avg',\n 'group',\n 'stddev',\n 'stdvar',\n 'count',\n 'count_values',\n 'bottomk',\n 'topk',\n 'quantile'\n ] // PromQL vector matching + the by and without clauses\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n var vectorMatching = [\n 'on',\n 'ignoring',\n 'group_right',\n 'group_left',\n 'by',\n 'without'\n ] // PromQL offset modifier\n // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n var offsetModifier = ['offset']\n var keywords = aggregations.concat(vectorMatching, offsetModifier)\n Prism.languages.promql = {\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n 'vector-match': {\n // Match the comma-separated label lists inside vector matching:\n pattern: new RegExp(\n '((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'\n ),\n lookbehind: true,\n inside: {\n 'label-key': {\n pattern: /\\b[^,]+\\b/,\n alias: 'attr-name'\n },\n punctuation: /[(),]/\n }\n },\n 'context-labels': {\n pattern: /\\{[^{}]*\\}/,\n inside: {\n 'label-key': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:=|![=~]))/,\n alias: 'attr-name'\n },\n 'label-value': {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true,\n alias: 'attr-value'\n },\n punctuation: /\\{|\\}|=~?|![=~]|,/\n }\n },\n 'context-range': [\n {\n pattern: /\\[[\\w\\s:]+\\]/,\n // [1m]\n inside: {\n punctuation: /\\[|\\]|:/,\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n },\n {\n pattern: /(\\boffset\\s+)\\w+/,\n // offset 1m\n lookbehind: true,\n inside: {\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n }\n ],\n keyword: new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number:\n /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n operator: /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|or|unless)\\b/i,\n punctuation: /[{};()`,.[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = properties\nproperties.displayName = 'properties'\nproperties.aliases = []\nfunction properties(Prism) {\n Prism.languages.properties = {\n comment: /^[ \\t]*[#!].*$/m,\n 'attr-value': {\n pattern:\n /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n lookbehind: true\n },\n 'attr-name': /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?= *[=:]| )/m,\n punctuation: /[=:]/\n }\n}\n","'use strict'\n\nmodule.exports = protobuf\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\nfunction protobuf(Prism) {\n ;(function (Prism) {\n var builtinTypes =\n /\\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\\b/\n Prism.languages.protobuf = Prism.languages.extend('clike', {\n 'class-name': [\n {\n pattern:\n /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n lookbehind: true\n },\n {\n pattern:\n /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n lookbehind: true\n }\n ],\n keyword:\n /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i\n })\n Prism.languages.insertBefore('protobuf', 'operator', {\n map: {\n pattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /[<>.,]/,\n builtin: builtinTypes\n }\n },\n builtin: builtinTypes,\n 'positional-class-name': {\n pattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /\\./\n }\n },\n annotation: {\n pattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n lookbehind: true\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = psl\npsl.displayName = 'psl'\npsl.aliases = []\nfunction psl(Prism) {\n Prism.languages.psl = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n symbol: /\\\\[ntrbA-Z\"\\\\]/\n }\n },\n 'heredoc-string': {\n pattern: /<<<([a-zA-Z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\1\\b/,\n alias: 'string',\n greedy: true\n },\n keyword:\n /\\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\\b/,\n constant:\n /\\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\\b/,\n boolean: /\\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\\b/,\n variable: /\\b(?:PslDebug|errno|exit_status)\\b/,\n builtin: {\n pattern:\n /\\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\\b/,\n alias: 'builtin-function'\n },\n 'foreach-variable': {\n pattern:\n /(\\bforeach\\s+(?:(?:\\w+\\b|\"(?:\\\\.|[^\\\\\"])*\")\\s+){0,2})[_a-zA-Z]\\w*(?=\\s*\\()/,\n lookbehind: true,\n greedy: true\n },\n function: /\\b[_a-z]\\w*\\b(?=\\s*\\()/i,\n number: /\\b(?:0x[0-9a-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator: /--|\\+\\+|&&=?|\\|\\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\\.|[:?]/,\n punctuation: /[(){}\\[\\];,]/\n }\n}\n","'use strict'\n\nmodule.exports = pug\npug.displayName = 'pug'\npug.aliases = []\nfunction pug(Prism) {\n ;(function (Prism) {\n // TODO:\n // - Add CSS highlighting inside <style> tags\n // - Add support for multi-line code blocks\n // - Add support for interpolation #{} and !{}\n // - Add support for tag interpolation #[]\n // - Add explicit support for plain text using |\n // - Add support for markup embedded in plain text\n Prism.languages.pug = {\n // Multiline stuff should appear before the rest\n // This handles both single-line and multi-line comments\n comment: {\n pattern: /(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/m,\n lookbehind: true\n },\n // All the tag-related part is in lookbehind\n // so that it can be highlighted by the \"tag\" pattern\n 'multiline-script': {\n pattern:\n /(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n // See at the end of the file for known filters\n filter: {\n pattern:\n /(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n text: /\\S[\\s\\S]*/\n }\n },\n 'multiline-plain-text': {\n pattern:\n /(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true\n },\n markup: {\n pattern: /(^[\\t ]*)<.+/m,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\n)[\\t ]*)doctype(?: .+)?/,\n lookbehind: true\n },\n // This handle all conditional and loop keywords\n 'flow-control': {\n pattern:\n /(^[\\t ]*)(?:case|default|each|else|if|unless|when|while)\\b(?: .+)?/m,\n lookbehind: true,\n inside: {\n each: {\n pattern: /^each .+? in\\b/,\n inside: {\n keyword: /\\b(?:each|in)\\b/,\n punctuation: /,/\n }\n },\n branch: {\n pattern: /^(?:case|default|else|if|unless|when|while)\\b/,\n alias: 'keyword'\n },\n rest: Prism.languages.javascript\n }\n },\n keyword: {\n pattern: /(^[\\t ]*)(?:append|block|extends|include|prepend)\\b.+/m,\n lookbehind: true\n },\n mixin: [\n // Declaration\n {\n pattern: /(^[\\t ]*)mixin .+/m,\n lookbehind: true,\n inside: {\n keyword: /^mixin/,\n function: /\\w+(?=\\s*\\(|\\s*$)/,\n punctuation: /[(),.]/\n }\n }, // Usage\n {\n pattern: /(^[\\t ]*)\\+.+/m,\n lookbehind: true,\n inside: {\n name: {\n pattern: /^\\+\\w+/,\n alias: 'function'\n },\n rest: Prism.languages.javascript\n }\n }\n ],\n script: {\n pattern: /(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'plain-text': {\n pattern:\n /(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]).+/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,\n lookbehind: true,\n inside: {\n attributes: [\n {\n pattern: /&[^(]+\\([^)]+\\)/,\n inside: Prism.languages.javascript\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*(?!\\s))(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'attr-name': /[\\w-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[!=(),]+/\n }\n }\n ],\n punctuation: /:/,\n 'attr-id': /#[\\w\\-]+/,\n 'attr-class': /\\.[\\w\\-]+/\n }\n },\n code: [\n {\n pattern: /(^[\\t ]*(?:-|!?=)).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n punctuation: /[.\\-!=|]+/\n }\n var filter_pattern =\n /(^([\\t ]*)):<filter_name>(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/\n .source // Non exhaustive list of available filters and associated languages\n var filters = [\n {\n filter: 'atpl',\n language: 'twig'\n },\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'ejs',\n 'handlebars',\n 'less',\n 'livescript',\n 'markdown',\n {\n filter: 'sass',\n language: 'scss'\n },\n 'stylus'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('<filter_name>', function () {\n return filter.filter\n }),\n 'm'\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n text: {\n pattern: /\\S[\\s\\S]*/,\n alias: [filter.language, 'language-' + filter.language],\n inside: Prism.languages[filter.language]\n }\n }\n }\n }\n }\n Prism.languages.insertBefore('pug', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = puppet\npuppet.displayName = 'puppet'\npuppet.aliases = []\nfunction puppet(Prism) {\n ;(function (Prism) {\n Prism.languages.puppet = {\n heredoc: [\n // Matches the content of a quoted heredoc string (subject to interpolation)\n {\n pattern:\n /(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/ // See interpolation below\n }\n }, // Matches the content of an unquoted heredoc string (no interpolation)\n {\n pattern:\n /(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/\n }\n }, // Matches the start tag of heredoc strings\n {\n pattern: /@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,\n alias: 'string',\n inside: {\n punctuation: {\n pattern: /(\\().+?(?=\\))/,\n lookbehind: true\n }\n }\n }\n ],\n 'multiline-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n regex: {\n // Must be prefixed with the keyword \"node\" or a non-word char\n pattern:\n /((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,\n lookbehind: true,\n greedy: true,\n inside: {\n // Extended regexes must have the x flag. They can contain single-line comments.\n 'extended-regex': {\n pattern: /^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,\n inside: {\n comment: /#.*/\n }\n }\n }\n },\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n string: {\n // Allow for one nested level of double quotes inside interpolation\n pattern:\n /([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|\\$(?!\\{)|(?!\\1)[^\\\\$]|\\\\[\\s\\S])*\\1/,\n greedy: true,\n inside: {\n 'double-quoted': {\n pattern: /^\"[\\s\\S]*\"$/,\n inside: {\n // See interpolation below\n }\n }\n }\n },\n variable: {\n pattern: /\\$(?:::)?\\w+(?:::\\w+)*/,\n inside: {\n punctuation: /::/\n }\n },\n 'attr-name': /(?:\\b\\w+|\\*)(?=\\s*=>)/,\n function: [\n {\n pattern: /(\\.)(?!\\d)\\w+/,\n lookbehind: true\n },\n /\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/\n ],\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n // Includes words reserved for future use\n keyword:\n /\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,\n datatype: {\n pattern:\n /\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,\n alias: 'symbol'\n },\n operator:\n /=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,\n punctuation: /[\\[\\]{}().,;]|:+/\n }\n var interpolation = [\n {\n // Allow for one nested level of braces inside interpolation\n pattern:\n /(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,\n lookbehind: true,\n inside: {\n 'short-variable': {\n // Negative look-ahead prevent wrong highlighting of functions\n pattern: /(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n },\n delimiter: {\n pattern: /^\\$/,\n alias: 'variable'\n },\n rest: Prism.languages.puppet\n }\n },\n {\n pattern: /(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n }\n ]\n Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation\n Prism.languages.puppet['string'].inside[\n 'double-quoted'\n ].inside.interpolation = interpolation\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pure\npure.displayName = 'pure'\npure.aliases = []\nfunction pure(Prism) {\n ;(function (Prism) {\n // https://agraef.github.io/pure-docs/pure.html#lexical-matters\n Prism.languages.pure = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true\n },\n /#!.+/\n ],\n 'inline-lang': {\n pattern: /%<[\\s\\S]+?%>/,\n greedy: true,\n inside: {\n lang: {\n pattern: /(^%< *)-\\*-.+?-\\*-/,\n lookbehind: true,\n alias: 'comment'\n },\n delimiter: {\n pattern: /^%<.*|%>$/,\n alias: 'punctuation'\n }\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n number: {\n // The look-behind prevents wrong highlighting of the .. operator\n pattern:\n /((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?L?)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\n function:\n /\\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,\n special: {\n pattern: /\\b__[a-z]+__\\b/i,\n alias: 'builtin'\n },\n // Any combination of operator chars can be an operator\n // eslint-disable-next-line no-misleading-character-class\n operator:\n /(?:[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]|\\b_+\\b)+|\\b(?:and|div|mod|not|or)\\b/,\n // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?\n punctuation: /[(){}\\[\\];,|]/\n }\n var inlineLanguages = [\n 'c',\n {\n lang: 'c++',\n alias: 'cpp'\n },\n 'fortran'\n ]\n var inlineLanguageRe = /%< *-\\*- *<lang>\\d* *-\\*-[\\s\\S]+?%>/.source\n inlineLanguages.forEach(function (lang) {\n var alias = lang\n if (typeof lang !== 'string') {\n alias = lang.alias\n lang = lang.lang\n }\n if (Prism.languages[alias]) {\n var o = {}\n o['inline-lang-' + alias] = {\n pattern: RegExp(\n inlineLanguageRe.replace(\n '<lang>',\n lang.replace(/([.+*?\\/\\\\(){}\\[\\]])/g, '\\\\$1')\n ),\n 'i'\n ),\n inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)\n }\n o['inline-lang-' + alias].inside.rest = Prism.util.clone(\n Prism.languages[alias]\n )\n Prism.languages.insertBefore('pure', 'inline-lang', o)\n }\n }) // C is the default inline language\n if (Prism.languages.c) {\n Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(\n Prism.languages.c\n )\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = purebasic\npurebasic.displayName = 'purebasic'\npurebasic.aliases = []\nfunction purebasic(Prism) {\n /*\nOriginal Code by Bas Groothedde\n!!MANY THANKS!! I never would have made this, regex and me will never be best friends ;)\n==> https://codepen.io/ImagineProgramming/details/JYydBy/\nslightly changed to pass all tests\n*/\n // PureBasic support, steal stuff from ansi-c\n Prism.languages.purebasic = Prism.languages.extend('clike', {\n comment: /;.*/,\n keyword:\n /\\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\\b/i,\n function: /\\b\\w+(?:\\.\\w+)?\\s*(?=\\()/,\n number: /(?:\\$[\\da-f]+|\\b-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)\\b/i,\n operator:\n /(?:@\\*?|\\?|\\*)\\w+|-[>-]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|?\\||[~^%?*/@]/\n })\n Prism.languages.insertBefore('purebasic', 'keyword', {\n tag: /#\\w+\\$?/,\n asm: {\n pattern: /(^[\\t ]*)!.*/m,\n lookbehind: true,\n alias: 'tag',\n inside: {\n comment: /;.*/,\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n // Anonymous label references, i.e.: jmp @b\n 'label-reference-anonymous': {\n pattern: /(!\\s*j[a-z]+\\s+)@[fb]/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n // Named label reference, i.e.: jne label1\n 'label-reference-addressed': {\n pattern: /(!\\s*j[a-z]+\\s+)[A-Z._?$@][\\w.?$@~#]*/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n keyword: [\n /\\b(?:extern|global)\\b[^;\\r\\n]*/i,\n /\\b(?:CPU|DEFAULT|FLOAT)\\b.*/\n ],\n function: {\n pattern: /^([\\t ]*!\\s*)[\\da-z]+(?=\\s|$)/im,\n lookbehind: true\n },\n 'function-inline': {\n pattern: /(:\\s*)[\\da-z]+(?=\\s)/i,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n pattern: /^([\\t ]*!\\s*)[A-Za-z._?$@][\\w.?$@~#]*(?=:)/m,\n lookbehind: true,\n alias: 'fasm-label'\n },\n register:\n /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\\d+)\\b/i,\n number:\n /(?:\\b|-|(?=\\$))(?:0[hx](?:[\\da-f]*\\.)?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-/%<>=&|$!,.:]/\n }\n }\n })\n delete Prism.languages.purebasic['class-name']\n delete Prism.languages.purebasic['boolean']\n Prism.languages.pbfasm = Prism.languages['purebasic']\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = purescript\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\nfunction purescript(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.purescript = Prism.languages.extend('haskell', {\n keyword:\n /\\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b|∀/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|hiding|import)\\b/,\n punctuation: /\\./\n }\n },\n // These are builtin functions only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\\b/,\n operator: [\n // Infix operators\n Prism.languages.haskell.operator[0], // ASCII operators\n Prism.languages.haskell.operator[2], // All UTF16 Unicode operator symbols\n // This regex is equivalent to /(?=[\\x80-\\uFFFF])[\\p{gc=Math_Symbol}\\p{gc=Currency_Symbol}\\p{Modifier_Symbol}\\p{Other_Symbol}]/u\n // See https://github.com/PrismJS/prism/issues/3006 for more details.\n /[\\xa2-\\xa6\\xa8\\xa9\\xac\\xae-\\xb1\\xb4\\xb8\\xd7\\xf7\\u02c2-\\u02c5\\u02d2-\\u02df\\u02e5-\\u02eb\\u02ed\\u02ef-\\u02ff\\u0375\\u0384\\u0385\\u03f6\\u0482\\u058d-\\u058f\\u0606-\\u0608\\u060b\\u060e\\u060f\\u06de\\u06e9\\u06fd\\u06fe\\u07f6\\u07fe\\u07ff\\u09f2\\u09f3\\u09fa\\u09fb\\u0af1\\u0b70\\u0bf3-\\u0bfa\\u0c7f\\u0d4f\\u0d79\\u0e3f\\u0f01-\\u0f03\\u0f13\\u0f15-\\u0f17\\u0f1a-\\u0f1f\\u0f34\\u0f36\\u0f38\\u0fbe-\\u0fc5\\u0fc7-\\u0fcc\\u0fce\\u0fcf\\u0fd5-\\u0fd8\\u109e\\u109f\\u1390-\\u1399\\u166d\\u17db\\u1940\\u19de-\\u19ff\\u1b61-\\u1b6a\\u1b74-\\u1b7c\\u1fbd\\u1fbf-\\u1fc1\\u1fcd-\\u1fcf\\u1fdd-\\u1fdf\\u1fed-\\u1fef\\u1ffd\\u1ffe\\u2044\\u2052\\u207a-\\u207c\\u208a-\\u208c\\u20a0-\\u20bf\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211e-\\u2123\\u2125\\u2127\\u2129\\u212e\\u213a\\u213b\\u2140-\\u2144\\u214a-\\u214d\\u214f\\u218a\\u218b\\u2190-\\u2307\\u230c-\\u2328\\u232b-\\u2426\\u2440-\\u244a\\u249c-\\u24e9\\u2500-\\u2767\\u2794-\\u27c4\\u27c7-\\u27e5\\u27f0-\\u2982\\u2999-\\u29d7\\u29dc-\\u29fb\\u29fe-\\u2b73\\u2b76-\\u2b95\\u2b97-\\u2bff\\u2ce5-\\u2cea\\u2e50\\u2e51\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u2ffb\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303e\\u303f\\u309b\\u309c\\u3190\\u3191\\u3196-\\u319f\\u31c0-\\u31e3\\u3200-\\u321e\\u322a-\\u3247\\u3250\\u3260-\\u327f\\u328a-\\u32b0\\u32c0-\\u33ff\\u4dc0-\\u4dff\\ua490-\\ua4c6\\ua700-\\ua716\\ua720\\ua721\\ua789\\ua78a\\ua828-\\ua82b\\ua836-\\ua839\\uaa77-\\uaa79\\uab5b\\uab6a\\uab6b\\ufb29\\ufbb2-\\ufbc1\\ufdfc\\ufdfd\\ufe62\\ufe64-\\ufe66\\ufe69\\uff04\\uff0b\\uff1c-\\uff1e\\uff3e\\uff40\\uff5c\\uff5e\\uffe0-\\uffe6\\uffe8-\\uffee\\ufffc\\ufffd]/\n ]\n })\n Prism.languages.purs = Prism.languages.purescript\n}\n","'use strict'\n\nmodule.exports = python\npython.displayName = 'python'\npython.aliases = ['py']\nfunction python(Prism) {\n Prism.languages.python = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n 'string-interpolation': {\n pattern:\n /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n greedy: true,\n inside: {\n interpolation: {\n // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n pattern:\n /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n lookbehind: true,\n inside: {\n 'format-spec': {\n pattern: /(:)[^:(){}]+(?=\\}$)/,\n lookbehind: true\n },\n 'conversion-option': {\n pattern: /![sra](?=[:}]$)/,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n greedy: true\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n lookbehind: true\n },\n 'class-name': {\n pattern: /(\\bclass\\s+)\\w+/i,\n lookbehind: true\n },\n decorator: {\n pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n lookbehind: true,\n alias: ['annotation', 'punctuation'],\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n builtin:\n /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n boolean: /\\b(?:False|None|True)\\b/,\n number:\n /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.python['string-interpolation'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.python\n Prism.languages.py = Prism.languages.python\n}\n","'use strict'\n\nmodule.exports = q\nq.displayName = 'q'\nq.aliases = []\nfunction q(Prism) {\n Prism.languages.q = {\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n comment: [\n // From http://code.kx.com/wiki/Reference/Slash:\n // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.\n {\n pattern: /([\\t )\\]}])\\/.*/,\n lookbehind: true,\n greedy: true\n }, // From http://code.kx.com/wiki/Reference/Slash:\n // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.\n // A / on a line by itself begins a multiline comment which is terminated by the next \\ on a line by itself.\n // If a / is not matched by a \\, the multiline comment is unterminated and continues to end of file.\n // The / and \\ must be the first char on the line, but may be followed by any amount of whitespace.\n {\n pattern:\n /(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r(?!\\n)))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,\n lookbehind: true,\n greedy: true\n }, // From http://code.kx.com/wiki/Reference/Slash:\n // A \\ on a line by itself with no preceding matching / will comment to end of file.\n {\n pattern: /^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,\n greedy: true\n },\n {\n pattern: /^#!.+/m,\n greedy: true\n }\n ],\n symbol: /`(?::\\S+|[\\w.]*)/,\n datetime: {\n pattern:\n /0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,\n alias: 'number'\n },\n // The negative look-ahead prevents bad highlighting\n // of verbs 0: and 1:\n number:\n /\\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\\da-fA-F]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?[hjfeb]?)/,\n keyword:\n /\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,\n adverb: {\n pattern: /['\\/\\\\]:?|\\beach\\b/,\n alias: 'function'\n },\n verb: {\n pattern: /(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?~=|$&#@^]):?|\\b_\\b:?/,\n alias: 'operator'\n },\n punctuation: /[(){}\\[\\];.]/\n }\n}\n","'use strict'\n\nmodule.exports = qml\nqml.displayName = 'qml'\nqml.aliases = []\nfunction qml(Prism) {\n ;(function (Prism) {\n var jsString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|'(?:\\\\.|[^\\\\'\\r\\n])*'/.source\n var jsComment = /\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source\n var jsExpr =\n /(?:[^\\\\()[\\]{}\"'/]|<string>|\\/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[\\s\\S])/.source\n .replace(/<string>/g, function () {\n return jsString\n })\n .replace(/<comment>/g, function () {\n return jsComment\n }) // the pattern will blow up, so only a few iterations\n for (var i = 0; i < 2; i++) {\n jsExpr = jsExpr.replace(/<expr>/g, function () {\n return jsExpr\n })\n }\n jsExpr = jsExpr.replace(/<expr>/g, '[^\\\\s\\\\S]')\n Prism.languages.qml = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n 'javascript-function': {\n pattern: RegExp(\n /((?:^|;)[ \\t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n 'class-name': {\n pattern: /((?:^|[:;])[ \\t]*)(?!\\d)\\w+(?=[ \\t]*\\{|[ \\t]+on\\b)/m,\n lookbehind: true\n },\n property: [\n {\n pattern: /((?:^|[;{])[ \\t]*)(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true\n },\n {\n pattern:\n /((?:^|[;{])[ \\t]*)property[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true,\n inside: {\n keyword: /^property/,\n property: /\\w+(?:\\.\\w+)*/\n }\n }\n ],\n 'javascript-expression': {\n pattern: RegExp(\n /(:[ \\t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n keyword: /\\b(?:as|import|on)\\b/,\n punctuation: /[{}[\\]:;,]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = qore\nqore.displayName = 'qore'\nqore.aliases = []\nfunction qore(Prism) {\n Prism.languages.qore = Prism.languages.extend('clike', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,\n lookbehind: true\n },\n // Overridden to allow unescaped multi-line strings\n string: {\n pattern: /(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\$?\\b(?!\\d)\\w+(?=\\()/,\n number:\n /\\b(?:0b[01]+|0x(?:[\\da-f]*\\.)?[\\da-fp\\-]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e\\d+)?[df]|(?:\\d+(?:\\.\\d+)?|\\.\\d+))\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,\n lookbehind: true\n },\n variable: /\\$(?!\\d)\\w+\\b/\n })\n}\n","'use strict'\n\nmodule.exports = qsharp\nqsharp.displayName = 'qsharp'\nqsharp.aliases = ['qs']\nfunction qsharp(Prism) {\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n } // https://docs.microsoft.com/en-us/azure/quantum/user-guide/language/typesystem/\n // https://github.com/microsoft/qsharp-language/tree/main/Specifications/Language/5_Grammar\n var keywordKinds = {\n // keywords which represent a return or variable type\n type: 'Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero',\n // all other keywords\n other:\n 'Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within'\n } // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var keywords = RegExp(\n keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.other)\n ) // types\n var identifier = /\\b[A-Za-z_]\\w*\\b/.source\n var qualifiedName = replace(/<<0>>(?:\\s*\\.\\s*<<0>>)*/.source, [identifier])\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n } // strings\n var regularString = /\"(?:\\\\.|[^\\\\\"])*\"/.source\n Prism.languages.qsharp = Prism.languages.extend('clike', {\n comment: /\\/\\/.*/,\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n // open Microsoft.Quantum.Canon;\n // open Microsoft.Quantum.Canon as CN;\n pattern: re(/(\\b(?:as|open)\\s+)<<0>>(?=\\s*(?:;|as\\b))/.source, [\n qualifiedName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // namespace Quantum.App1;\n pattern: re(/(\\bnamespace\\s+)<<0>>(?=\\s*\\{)/.source, [qualifiedName]),\n lookbehind: true,\n inside: typeInside\n }\n ],\n keyword: keywords,\n number:\n /(?:\\b0(?:x[\\da-f]+|b[01]+|o[0-7]+)|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d*)?)(?:e[-+]?\\d+)?)l?\\b/i,\n operator:\n /\\band=|\\bor=|\\band\\b|\\bnot\\b|\\bor\\b|<[-=]|[-=]>|>>>=?|<<<=?|\\^\\^\\^=?|\\|\\|\\|=?|&&&=?|w\\/=?|~~~|[*\\/+\\-^=!%]=?/,\n punctuation: /::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('qsharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n }) // single line\n var interpolationExpr = nested(\n replace(/\\{(?:[^\"{}]|<<0>>|<<self>>)*\\}/.source, [regularString]),\n 2\n )\n Prism.languages.insertBefore('qsharp', 'string', {\n 'interpolation-string': {\n pattern: re(/\\$\"(?:\\\\.|<<0>>|[^\\\\\"{])*\"/.source, [interpolationExpr]),\n greedy: true,\n inside: {\n interpolation: {\n pattern: re(/((?:^|[^\\\\])(?:\\\\\\\\)*)<<0>>/.source, [\n interpolationExpr\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-qsharp',\n inside: Prism.languages.qsharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n })(Prism)\n Prism.languages.qs = Prism.languages.qsharp\n}\n","'use strict'\n\nmodule.exports = r\nr.displayName = 'r'\nr.aliases = []\nfunction r(Prism) {\n Prism.languages.r = {\n comment: /#.*/,\n string: {\n pattern: /(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'percent-operator': {\n // Includes user-defined operators\n // and %%, %*%, %/%, %in%, %o%, %x%\n pattern: /%[^%\\s]*%/,\n alias: 'operator'\n },\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n ellipsis: /\\.\\.(?:\\.|\\d+)/,\n number: [\n /\\b(?:Inf|NaN)\\b/,\n /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n ],\n keyword:\n /\\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\\b/,\n operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n punctuation: /[(){}\\[\\],;]/\n }\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = racket\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\nfunction racket(Prism) {\n Prism.register(refractorScheme)\n Prism.languages.racket = Prism.languages.extend('scheme', {\n 'lambda-parameter': {\n // the racket lambda syntax is a lot more complex, so we won't even attempt to capture it.\n // this will just prevent false positives of the `function` pattern\n pattern: /([(\\[]lambda\\s+[(\\[])[^()\\[\\]'\\s]+/,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('racket', 'string', {\n lang: {\n pattern: /^#lang.+/m,\n greedy: true,\n alias: 'keyword'\n }\n })\n Prism.languages.rkt = Prism.languages.racket\n}\n","'use strict'\n\nmodule.exports = reason\nreason.displayName = 'reason'\nreason.aliases = []\nfunction reason(Prism) {\n Prism.languages.reason = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n // 'class-name' must be matched *after* 'constructor' defined below\n 'class-name': /\\b[A-Z]\\w*/,\n keyword:\n /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,\n operator:\n /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/\n })\n Prism.languages.insertBefore('reason', 'class-name', {\n char: {\n pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n greedy: true\n },\n // Negative look-ahead prevents from matching things like String.capitalize\n constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n label: {\n pattern: /\\b[a-z]\\w*(?=::)/,\n alias: 'symbol'\n }\n }) // We can't match functions property, so let's not even try.\n delete Prism.languages.reason.function\n}\n","'use strict'\n\nmodule.exports = regex\nregex.displayName = 'regex'\nregex.aliases = []\nfunction regex(Prism) {\n ;(function (Prism) {\n var specialEscape = {\n pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/,\n alias: 'escape'\n }\n var escape =\n /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/\n var charSet = {\n pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var charSetWithoutDot = {\n pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n var range = RegExp(rangeChar + '-' + rangeChar) // the name of a capturing group\n var groupName = {\n pattern: /(<|')[^<>']+(?=[>']$)/,\n lookbehind: true,\n alias: 'variable'\n }\n Prism.languages.regex = {\n 'char-class': {\n pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n lookbehind: true,\n inside: {\n 'char-class-negation': {\n pattern: /(^\\[)\\^/,\n lookbehind: true,\n alias: 'operator'\n },\n 'char-class-punctuation': {\n pattern: /^\\[|\\]$/,\n alias: 'punctuation'\n },\n range: {\n pattern: range,\n inside: {\n escape: escape,\n 'range-punctuation': {\n pattern: /-/,\n alias: 'operator'\n }\n }\n },\n 'special-escape': specialEscape,\n 'char-set': charSetWithoutDot,\n escape: escape\n }\n },\n 'special-escape': specialEscape,\n 'char-set': charSet,\n backreference: [\n {\n // a backreference which is not an octal escape\n pattern: /\\\\(?![123][0-7]{2})[1-9]/,\n alias: 'keyword'\n },\n {\n pattern: /\\\\k<[^<>']+>/,\n alias: 'keyword',\n inside: {\n 'group-name': groupName\n }\n }\n ],\n anchor: {\n pattern: /[$^]|\\\\[ABbGZz]/,\n alias: 'function'\n },\n escape: escape,\n group: [\n {\n // https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n // https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n // (), (?<name>), (?'name'), (?>), (?:), (?=), (?!), (?<=), (?<!), (?is-m), (?i-m:)\n pattern:\n /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,\n alias: 'punctuation',\n inside: {\n 'group-name': groupName\n }\n },\n {\n pattern: /\\)/,\n alias: 'punctuation'\n }\n ],\n quantifier: {\n pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n alias: 'number'\n },\n alternation: {\n pattern: /\\|/,\n alias: 'keyword'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = rego\nrego.displayName = 'rego'\nrego.aliases = []\nfunction rego(Prism) {\n // https://www.openpolicyagent.org/docs/latest/policy-reference/\n Prism.languages.rego = {\n comment: /#.*/,\n property: {\n pattern:\n /(^|[^\\\\.])(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`|\\b[a-z_]\\w*\\b)(?=\\s*:(?!=))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:as|default|else|import|not|null|package|set(?=\\s*\\()|some|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: {\n pattern: /\\b[a-z_]\\w*\\b(?:\\s*\\.\\s*\\b[a-z_]\\w*\\b)*(?=\\s*\\()/i,\n inside: {\n namespace: /\\b\\w+\\b(?=\\s*\\.)/,\n punctuation: /\\./\n }\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n operator: /[-+*/%|&]|[<>:=]=?|!=|\\b_\\b/,\n punctuation: /[,;.\\[\\]{}()]/\n }\n}\n","'use strict'\n\nmodule.exports = renpy\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\nfunction renpy(Prism) {\n Prism.languages.renpy = {\n comment: {\n pattern: /(^|[^\\\\])#.+/,\n lookbehind: true\n },\n string: {\n pattern:\n /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\])*\\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\()/i,\n property:\n /\\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\\b/,\n tag: /\\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\\b|\\$/,\n keyword:\n /\\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\\b/,\n boolean: /\\b(?:[Ff]alse|[Tt]rue)\\b/,\n number:\n /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n operator:\n /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:and|at|not|or|with)\\b/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.rpy = Prism.languages.renpy\n}\n","'use strict'\n\nmodule.exports = rest\nrest.displayName = 'rest'\nrest.aliases = []\nfunction rest(Prism) {\n Prism.languages.rest = {\n table: [\n {\n pattern:\n /(^[\\t ]*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1[+|].+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/m,\n lookbehind: true,\n inside: {\n punctuation: /\\||(?:\\+[=-]+)+\\+/\n }\n },\n {\n pattern:\n /(^[\\t ]*)=+ [ =]*=(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1=+ [ =]*=(?=(?:\\r?\\n|\\r){2}|\\s*$)/m,\n lookbehind: true,\n inside: {\n punctuation: /[=-]+/\n }\n }\n ],\n // Directive-like patterns\n 'substitution-def': {\n pattern: /(^[\\t ]*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,\n lookbehind: true,\n inside: {\n substitution: {\n pattern: /^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,\n alias: 'attr-value',\n inside: {\n punctuation: /^\\||\\|$/\n }\n },\n directive: {\n pattern: /( )(?! )[^:]+::/,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n }\n }\n },\n 'link-target': [\n {\n pattern: /(^[\\t ]*\\.\\. )\\[[^\\]]+\\]/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]$/\n }\n },\n {\n pattern: /(^[\\t ]*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^_|:$/\n }\n }\n ],\n directive: {\n pattern: /(^[\\t ]*\\.\\. )[^:]+::/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n },\n comment: {\n // The two alternatives try to prevent highlighting of blank comments\n pattern:\n /(^[\\t ]*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,\n lookbehind: true\n },\n title: [\n // Overlined and underlined\n {\n pattern:\n /^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,\n inside: {\n punctuation:\n /^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }, // Underlined only\n {\n pattern:\n /(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,\n lookbehind: true,\n inside: {\n punctuation: /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }\n ],\n hr: {\n pattern:\n /((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,\n lookbehind: true,\n alias: 'punctuation'\n },\n field: {\n pattern: /(^[\\t ]*):[^:\\r\\n]+:(?= )/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n 'command-line-option': {\n pattern:\n /(^[\\t ]*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'literal-block': {\n pattern: /::(?:\\r?\\n|\\r){2}([ \\t]+)(?![ \\t]).+(?:(?:\\r?\\n|\\r)\\1.+)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^::/,\n alias: 'punctuation'\n }\n }\n },\n 'quoted-literal-block': {\n pattern:\n /::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,\n alias: 'punctuation'\n }\n }\n },\n 'list-bullet': {\n pattern:\n /(^[\\t ]*)(?:[*+\\-•‣⁃]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'doctest-block': {\n pattern: /(^[\\t ]*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /^>>>/\n }\n },\n inline: [\n {\n pattern:\n /(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s)(?:(?!\\2).)*\\S\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,\n lookbehind: true,\n inside: {\n bold: {\n pattern: /(^\\*\\*).+(?=\\*\\*$)/,\n lookbehind: true\n },\n italic: {\n pattern: /(^\\*).+(?=\\*$)/,\n lookbehind: true\n },\n 'inline-literal': {\n pattern: /(^``).+(?=``$)/,\n lookbehind: true,\n alias: 'symbol'\n },\n role: {\n pattern: /^:[^:]+:|:[^:]+:$/,\n alias: 'function',\n inside: {\n punctuation: /^:|:$/\n }\n },\n 'interpreted-text': {\n pattern: /(^`).+(?=`$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n substitution: {\n pattern: /(^\\|).+(?=\\|$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n punctuation: /\\*\\*?|``?|\\|/\n }\n }\n ],\n link: [\n {\n pattern: /\\[[^\\[\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]_$/\n }\n },\n {\n pattern:\n /(?:\\b[a-z\\d]+(?:[_.:+][a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,\n alias: 'string',\n inside: {\n punctuation: /^_?`|`$|`?_?_$/\n }\n }\n ],\n // Line block start,\n // quote attribution,\n // explicit markup start,\n // and anonymous hyperlink target shortcut (__)\n punctuation: {\n pattern: /(^[\\t ]*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,\n lookbehind: true\n }\n }\n}\n","'use strict'\n\nmodule.exports = rip\nrip.displayName = 'rip'\nrip.aliases = []\nfunction rip(Prism) {\n Prism.languages.rip = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n char: {\n pattern: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n regex: {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /(?:=>|->)|\\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\\b/,\n builtin: /@|\\bSystem\\b/,\n boolean: /\\b(?:false|true)\\b/,\n date: /\\b\\d{4}-\\d{2}-\\d{2}\\b/,\n time: /\\b\\d{2}:\\d{2}:\\d{2}\\b/,\n datetime: /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,\n symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n }\n}\n","'use strict'\n\nmodule.exports = roboconf\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\nfunction roboconf(Prism) {\n Prism.languages.roboconf = {\n comment: /#.*/,\n keyword: {\n pattern:\n /(^|\\s)(?:(?:external|import)\\b|(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{))/,\n lookbehind: true\n },\n component: {\n pattern: /[\\w-]+(?=[ \\t]*\\{)/,\n alias: 'variable'\n },\n property: /[\\w.-]+(?=[ \\t]*:)/,\n value: {\n pattern: /(=[ \\t]*(?![ \\t]))[^,;]+/,\n lookbehind: true,\n alias: 'attr-value'\n },\n optional: {\n pattern: /\\(optional\\)/,\n alias: 'builtin'\n },\n wildcard: {\n pattern: /(\\.)\\*/,\n lookbehind: true,\n alias: 'operator'\n },\n punctuation: /[{},.;:=]/\n }\n}\n","'use strict'\n\nmodule.exports = robotframework\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = []\nfunction robotframework(Prism) {\n ;(function (Prism) {\n var comment = {\n pattern: /(^[ \\t]*| {2}|\\t)#.*/m,\n lookbehind: true,\n greedy: true\n }\n var variable = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)[$@&%]\\{(?:[^{}\\r\\n]|\\{[^{}\\r\\n]*\\})*\\}/,\n lookbehind: true,\n inside: {\n punctuation: /^[$@&%]\\{|\\}$/\n }\n }\n function createSection(name, inside) {\n var extendecInside = {}\n extendecInside['section-header'] = {\n pattern: /^ ?\\*{3}.+?\\*{3}/,\n alias: 'keyword'\n } // copy inside tokens\n for (var token in inside) {\n extendecInside[token] = inside[token]\n }\n extendecInside['tag'] = {\n pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /\\[|\\]/\n }\n }\n extendecInside['variable'] = variable\n extendecInside['comment'] = comment\n return {\n pattern: RegExp(\n /^ ?\\*{3}[ \\t]*<name>[ \\t]*\\*{3}(?:.|[\\r\\n](?!\\*{3}))*/.source.replace(\n /<name>/g,\n function () {\n return name\n }\n ),\n 'im'\n ),\n alias: 'section',\n inside: extendecInside\n }\n }\n var docTag = {\n pattern:\n /(\\[Documentation\\](?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n }\n var testNameLike = {\n pattern: /([\\r\\n] ?)(?!#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n alias: 'function',\n inside: {\n variable: variable\n }\n }\n var testPropertyLike = {\n pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)(?!\\[|\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n inside: {\n variable: variable\n }\n }\n Prism.languages['robotframework'] = {\n settings: createSection('Settings', {\n documentation: {\n pattern:\n /([\\r\\n] ?Documentation(?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n },\n property: {\n pattern: /([\\r\\n] ?)(?!\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true\n }\n }),\n variables: createSection('Variables'),\n 'test-cases': createSection('Test Cases', {\n 'test-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n keywords: createSection('Keywords', {\n 'keyword-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n tasks: createSection('Tasks', {\n 'task-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n comment: comment\n }\n Prism.languages.robot = Prism.languages['robotframework']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ruby\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\nfunction ruby(Prism) {\n /**\n * Original by Samuel Flores\n *\n * Adds the following new token classes:\n * constant, builtin, variable, symbol, regex\n */\n ;(function (Prism) {\n Prism.languages.ruby = Prism.languages.extend('clike', {\n comment: {\n pattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n operator:\n /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n punctuation: /[(){}[\\].,;]/\n })\n Prism.languages.insertBefore('ruby', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n })\n var interpolation = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n }\n delete Prism.languages.ruby.function\n var percentExpression =\n '(?:' +\n [\n /([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n /\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n ].join('|') +\n ')'\n var symbolName =\n /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/\n .source\n Prism.languages.insertBefore('ruby', 'keyword', {\n 'regex-literal': [\n {\n pattern: RegExp(\n /%r/.source + percentExpression + /[egimnosux]{0,6}/.source\n ),\n greedy: true,\n inside: {\n interpolation: interpolation,\n regex: /[\\s\\S]+/\n }\n },\n {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: interpolation,\n regex: /[\\s\\S]+/\n }\n }\n ],\n variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n symbol: [\n {\n pattern: RegExp(/(^|[^:]):/.source + symbolName),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: RegExp(\n /([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n 'method-definition': {\n pattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n lookbehind: true,\n inside: {\n function: /\\b\\w+$/,\n keyword: /^self\\b/,\n 'class-name': /^\\w+/,\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('ruby', 'string', {\n 'string-literal': [\n {\n pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern:\n /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n inside: {\n symbol: /\\b\\w+/,\n punctuation: /^<<[-~]?/\n }\n },\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n inside: {\n symbol: /\\b\\w+/,\n punctuation: /^<<[-~]?'|'$/\n }\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n 'command-literal': [\n {\n pattern: RegExp(/%x/.source + percentExpression),\n greedy: true,\n inside: {\n interpolation: interpolation,\n command: {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n },\n {\n pattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n command: {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n }\n ]\n })\n delete Prism.languages.ruby.string\n Prism.languages.insertBefore('ruby', 'number', {\n builtin:\n /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n constant: /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n })\n Prism.languages.rb = Prism.languages.ruby\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = rust\nrust.displayName = 'rust'\nrust.aliases = []\nfunction rust(Prism) {\n ;(function (Prism) {\n var multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source\n for (var i = 0; i < 2; i++) {\n // support 4 levels of nested comments\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return multilineComment\n })\n }\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return /[^\\s\\S]/.source\n })\n Prism.languages.rust = {\n comment: [\n {\n pattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n greedy: true\n },\n char: {\n pattern:\n /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n greedy: true\n },\n attribute: {\n pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n greedy: true,\n alias: 'attr-name',\n inside: {\n string: null // see below\n }\n },\n // Closure params should not be confused with bitwise OR |\n 'closure-params': {\n pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'closure-punctuation': {\n pattern: /^\\||\\|$/,\n alias: 'punctuation'\n },\n rest: null // see below\n }\n },\n 'lifetime-annotation': {\n pattern: /'\\w+/,\n alias: 'symbol'\n },\n 'fragment-specifier': {\n pattern: /(\\$\\w+:)[a-z]+/,\n lookbehind: true,\n alias: 'punctuation'\n },\n variable: /\\$\\w+/,\n 'function-definition': {\n pattern: /(\\bfn\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n 'type-definition': {\n pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n 'module-declaration': [\n {\n pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n lookbehind: true,\n alias: 'namespace'\n },\n {\n pattern:\n /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /::/\n }\n }\n ],\n keyword: [\n // https://github.com/rust-lang/reference/blob/master/src/keywords.md\n /\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, // primitives and str\n // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/\n ],\n // functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n // and Rust's naming conventions recommend snake_case anyway.\n // https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n macro: {\n pattern: /\\b\\w+!/,\n alias: 'property'\n },\n constant: /\\b[A-Z_][A-Z_\\d]+\\b/,\n 'class-name': /\\b[A-Z]\\w*\\b/,\n namespace: {\n pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n inside: {\n punctuation: /::/\n }\n },\n // Hex, oct, bin, dec numbers with visual separators and type suffix\n number:\n /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n }\n Prism.languages.rust['closure-params'].inside.rest = Prism.languages.rust\n Prism.languages.rust['attribute'].inside['string'] =\n Prism.languages.rust['string']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sas\nsas.displayName = 'sas'\nsas.aliases = []\nfunction sas(Prism) {\n ;(function (Prism) {\n var stringPattern = /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))/.source\n var number = /\\b(?:\\d[\\da-f]*x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i\n var numericConstant = {\n pattern: RegExp(stringPattern + '[bx]'),\n alias: 'number'\n }\n var macroVariable = {\n pattern: /&[a-z_]\\w*/i\n }\n var macroKeyword = {\n pattern:\n /((?:^|\\s|=|\\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var step = {\n pattern: /(^|\\s)(?:proc\\s+\\w+|data(?!=)|quit|run)\\b/i,\n alias: 'keyword',\n lookbehind: true\n }\n var comment = [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^[ \\t]*|;\\s*)\\*[^;]*;/m,\n lookbehind: true\n }\n ]\n var string = {\n pattern: RegExp(stringPattern),\n greedy: true\n }\n var punctuation = /[$%@.(){}\\[\\];,\\\\]/\n var func = {\n pattern: /%?\\b\\w+(?=\\()/,\n alias: 'keyword'\n }\n var args = {\n function: func,\n 'arg-value': {\n pattern: /(=\\s*)[A-Z\\.]+/i,\n lookbehind: true\n },\n operator: /=/,\n 'macro-variable': macroVariable,\n arg: {\n pattern: /[A-Z]+/i,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n var format = {\n pattern: /\\b(?:format|put)\\b=?[\\w'$.]+/i,\n inside: {\n keyword: /^(?:format|put)(?==)/i,\n equals: /=/,\n format: {\n pattern: /(?:\\w|\\$\\d)+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var altformat = {\n pattern: /\\b(?:format|put)\\s+[\\w']+(?:\\s+[$.\\w]+)+(?=;)/i,\n inside: {\n keyword: /^(?:format|put)/i,\n format: {\n pattern: /[\\w$]+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var globalStatements = {\n pattern:\n /((?:^|\\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\\d?)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var submitStatement = {\n pattern: /(^|\\s)(?:submit(?:\\s+(?:load|norun|parseonly))?|endsubmit)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var actionSets =\n /aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/\n .source\n var casActions = {\n pattern: RegExp(\n /(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+/.source.replace(\n /<act>/g,\n function () {\n return actionSets\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: {\n keyword: RegExp(\n /(?:<act>)\\.[a-z]+\\b/.source.replace(/<act>/g, function () {\n return actionSets\n }),\n 'i'\n ),\n action: {\n pattern: /(?:action)/i,\n alias: 'keyword'\n },\n comment: comment,\n function: func,\n 'arg-value': args['arg-value'],\n operator: args.operator,\n argument: args.arg,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n }\n var keywords = {\n pattern:\n /((?:^|\\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\\b/i,\n lookbehind: true\n }\n Prism.languages.sas = {\n datalines: {\n pattern: /^([ \\t]*)(?:cards|(?:data)?lines);[\\s\\S]+?^[ \\t]*;/im,\n lookbehind: true,\n alias: 'string',\n inside: {\n keyword: {\n pattern: /^(?:cards|(?:data)?lines)/i\n },\n punctuation: /;/\n }\n },\n 'proc-sql': {\n pattern:\n /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n sql: {\n pattern: RegExp(\n /^[ \\t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n 'global-statements': globalStatements,\n 'sql-statements': {\n pattern:\n /(^|\\s)(?:disconnect\\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-groovy': {\n pattern:\n /(^proc\\s+groovy(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n groovy: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-groovy',\n inside: Prism.languages.groovy\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-lua': {\n pattern:\n /(^proc\\s+lua(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n lua: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-lua',\n inside: Prism.languages.lua\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-cas': {\n pattern:\n /(^proc\\s+cas(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n 'statement-var': {\n pattern: /((?:^|\\s)=?)saveresult\\s[^;]+/im,\n lookbehind: true,\n inside: {\n statement: {\n pattern: /^saveresult\\s+\\S+/i,\n inside: {\n keyword: /^(?:saveresult)/i\n }\n },\n rest: args\n }\n },\n 'cas-actions': casActions,\n statement: {\n pattern:\n /((?:^|\\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,\n lookbehind: true,\n inside: args\n },\n step: step,\n keyword: keywords,\n function: func,\n format: format,\n altformat: altformat,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-args': {\n pattern: RegExp(\n /(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n inside: args\n },\n /*Special keywords within macros*/\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'macro-string-functions': {\n pattern:\n /((?:^|\\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n lookbehind: true,\n inside: {\n function: {\n pattern: /%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,\n alias: 'keyword'\n },\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'escaped-char': {\n pattern: /%['\"()<>=¬^~;,#]/\n },\n punctuation: punctuation\n }\n },\n 'macro-declaration': {\n pattern: /^%macro[^;]+(?=;)/im,\n inside: {\n keyword: /%macro/i\n }\n },\n 'macro-end': {\n pattern: /^%mend[^;]+(?=;)/im,\n inside: {\n keyword: /%mend/i\n }\n },\n /*%_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz); */\n macro: {\n pattern: /%_\\w+(?=\\()/,\n alias: 'keyword'\n },\n input: {\n pattern: /\\binput\\s[-\\w\\s/*.$&]+;/i,\n inside: {\n input: {\n alias: 'keyword',\n pattern: /^input/i\n },\n comment: comment,\n number: number,\n 'numeric-constant': numericConstant\n }\n },\n 'options-args': {\n pattern: /(^options)[-'\"|/\\\\<>*+=:()\\w\\s]*(?=;)/im,\n lookbehind: true,\n inside: args\n },\n 'cas-actions': casActions,\n comment: comment,\n function: func,\n format: format,\n altformat: altformat,\n 'numeric-constant': numericConstant,\n datetime: {\n // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt\n pattern: RegExp(stringPattern + '(?:dt?|t)'),\n alias: 'number'\n },\n string: string,\n step: step,\n keyword: keywords,\n // In SAS Studio syntax highlighting, these operators are styled like keywords\n 'operator-keyword': {\n pattern: /\\b(?:eq|ge|gt|in|le|lt|ne|not)\\b/i,\n alias: 'operator'\n },\n // Decimal (1.2e23), hexadecimal (0c1x)\n number: number,\n operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/,\n punctuation: punctuation\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sass\nsass.displayName = 'sass'\nsass.aliases = []\nfunction sass(Prism) {\n ;(function (Prism) {\n Prism.languages.sass = Prism.languages.extend('css', {\n // Sass comments don't need to be closed, only indented\n comment: {\n pattern: /^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t].+)*/m,\n lookbehind: true,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sass', 'atrule', {\n // We want to consume the whole line\n 'atrule-line': {\n // Includes support for = and + shortcuts\n pattern: /^(?:[ \\t]*)[@+=].+/m,\n greedy: true,\n inside: {\n atrule: /(?:@[\\w-]+|[+=])/\n }\n }\n })\n delete Prism.languages.sass.atrule\n var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n var operator = [\n /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|not|or)\\b/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ]\n Prism.languages.insertBefore('sass', 'property', {\n // We want to consume the whole line\n 'variable-line': {\n pattern: /^[ \\t]*\\$.+/m,\n greedy: true,\n inside: {\n punctuation: /:/,\n variable: variable,\n operator: operator\n }\n },\n // We want to consume the whole line\n 'property-line': {\n pattern: /^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s].*)/m,\n greedy: true,\n inside: {\n property: [\n /[^:\\s]+(?=\\s*:)/,\n {\n pattern: /(:)[^:\\s]+/,\n lookbehind: true\n }\n ],\n punctuation: /:/,\n variable: variable,\n operator: operator,\n important: Prism.languages.sass.important\n }\n }\n })\n delete Prism.languages.sass.property\n delete Prism.languages.sass.important // Now that whole lines for other patterns are consumed,\n // what's left should be selectors\n Prism.languages.insertBefore('sass', 'punctuation', {\n selector: {\n pattern:\n /^([ \\t]*)\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*)*/m,\n lookbehind: true,\n greedy: true\n }\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nmodule.exports = scala\nscala.displayName = 'scala'\nscala.aliases = []\nfunction scala(Prism) {\n Prism.register(refractorJava)\n Prism.languages.scala = Prism.languages.extend('java', {\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword:\n /<-|=>|\\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\\b/,\n number:\n /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n builtin:\n /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n symbol: /'[^\\d\\s\\\\]\\w*/\n })\n Prism.languages.insertBefore('scala', 'triple-quoted-string', {\n 'string-interpolation': {\n pattern:\n /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n greedy: true,\n inside: {\n id: {\n pattern: /^\\w+/,\n greedy: true,\n alias: 'function'\n },\n escape: {\n pattern: /\\\\\\$\"|\\$[$\"]/,\n greedy: true,\n alias: 'symbol'\n },\n interpolation: {\n pattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n greedy: true,\n inside: {\n punctuation: /^\\$\\{?|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.scala\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n delete Prism.languages.scala['class-name']\n delete Prism.languages.scala['function']\n}\n","'use strict'\n\nmodule.exports = scheme\nscheme.displayName = 'scheme'\nscheme.aliases = []\nfunction scheme(Prism) {\n ;(function (Prism) {\n Prism.languages.scheme = {\n // this supports \"normal\" single-line comments:\n // ; comment\n // and (potentially nested) multiline comments:\n // #| comment #| nested |# still comment |#\n // (only 1 level of nesting is supported)\n comment:\n /;.*|#;\\s*(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\[(?:[^\\[\\]]|\\[[^\\[\\]]*\\])*\\])|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#))*\\|#)*\\|#/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n symbol: {\n pattern: /'[^()\\[\\]#'\\s]+/,\n greedy: true\n },\n char: {\n pattern:\n /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\S)/,\n greedy: true\n },\n 'lambda-parameter': [\n // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30\n {\n pattern:\n /((?:^|[^'`#])[(\\[]lambda\\s+)(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)/,\n lookbehind: true\n },\n {\n pattern: /((?:^|[^'`#])[(\\[]lambda\\s+[(\\[])[^()\\[\\]']+/,\n lookbehind: true\n }\n ],\n keyword: {\n pattern:\n /((?:^|[^'`#])[(\\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\\*)?|let\\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n builtin: {\n // all functions of the base library of R7RS plus some of built-ins of R5Rs\n pattern:\n /((?:^|[^'`#])[(\\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\\?|boolean=?\\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\\?|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)|close-(?:input-port|output-port|port)|complex\\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\\??|eq\\?|equal\\?|eqv\\?|error|error-object(?:-irritants|-message|\\?)|eval|even\\?|exact(?:-integer-sqrt|-integer\\?|\\?)?|expt|features|file-error\\?|floor(?:-quotient|-remainder|\\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\\??|input-port(?:-open\\?|\\?)|integer(?:->char|\\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null\\?|number(?:->string|\\?)|numerator|odd\\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\\?|\\?)|pair\\?|peek-char|peek-u8|port\\?|positive\\?|procedure\\?|quotient|raise|raise-continuable|rational\\?|rationalize|read-(?:bytevector|bytevector!|char|error\\?|line|string|u8)|real\\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)?|substring|symbol(?:->string|\\?|=\\?)|syntax-error|textual-port\\?|truncate(?:-quotient|-remainder|\\/)?|u8-ready\\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\\?)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n operator: {\n pattern: /((?:^|[^'`#])[(\\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n number: {\n // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).\n //\n // <number> := <num 2>|<num 8>|<num 10>|<num 16>\n // <num R> := <prefix R><complex R>\n // <complex R> := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>\n // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\\.0)?i\n // <real R> := [+-]?<ureal R>|[+-](?:inf|nan)\\.0\n // <ureal R> := <uint R>(?:\\/<uint R>)?\n // | <decimal R>\n //\n // <decimal 10> := (?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?\n // <uint R> := <digit R>+\n // <prefix R> := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>\n // <radix 2> := #b\n // <radix 8> := #o\n // <radix 10> := (?:#d)?\n // <radix 16> := #x\n // <digit 2> := [01]\n // <digit 8> := [0-7]\n // <digit 10> := \\d\n // <digit 16> := [0-9a-f]\n //\n // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all\n // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)\n // pattern:\n pattern: RegExp(\n SortedBNF({\n '<ureal dec>':\n /\\d+(?:\\/\\d+)|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[esfdl][+-]?\\d+)?/.source,\n '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i/.source,\n '<complex dec>':\n /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/\n .source,\n '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,\n '<ureal box>': /[0-9a-f]+(?:\\/[0-9a-f]+)?/.source,\n '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\\.0)?i/.source,\n '<complex box>':\n /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/\n .source,\n '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/\n .source,\n '<number>': /(^|[()\\[\\]\\s])(?:<num dec>|<num box>)(?=[()\\[\\]\\s]|$)/\n .source\n }),\n 'i'\n ),\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[()\\[\\]\\s])#(?:[ft]|false|true)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n function: {\n pattern:\n /((?:^|[^'`#])[(\\[])(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[()\\[\\]\\s])\\|(?:[^\\\\|]|\\\\.)*\\|(?=[()\\[\\]\\s]|$)/,\n lookbehind: true,\n greedy: true\n },\n punctuation: /[()\\[\\]']/\n }\n /**\n * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.\n *\n * @param {Record<string, string>} grammar\n * @returns {string}\n */\n function SortedBNF(grammar) {\n for (var key in grammar) {\n grammar[key] = grammar[key].replace(/<[\\w\\s]+>/g, function (key) {\n return '(?:' + grammar[key].trim() + ')'\n })\n } // return the last item\n return grammar[key]\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = scss\nscss.displayName = 'scss'\nscss.aliases = []\nfunction scss(Prism) {\n Prism.languages.scss = Prism.languages.extend('css', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n atrule: {\n pattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n inside: {\n rule: /@[\\w-]+/ // See rest below\n }\n },\n // url, compassified\n url: /(?:[-a-z]+-)?url(?=\\()/i,\n // CSS selector regex is not appropriate for Sass\n // since there can be lot more things (var, @ directive, nesting..)\n // a selector must start at the end of a property or after a brace (end of other rules or nesting)\n // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n // the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n // can \"pass\" as a selector- e.g: proper#{$erty})\n // this one was hard to do, so please be careful if you edit this one :)\n selector: {\n // Initial look-ahead is used to prevent matching of blank selectors\n pattern:\n /(?=\\S)[^@;{}()]?(?:[^@;{}()\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]))/,\n inside: {\n parent: {\n pattern: /&/,\n alias: 'important'\n },\n placeholder: /%[-\\w]+/,\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n },\n property: {\n pattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n inside: {\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n }\n })\n Prism.languages.insertBefore('scss', 'atrule', {\n keyword: [\n /@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\\b/i,\n {\n pattern: /( )(?:from|through)(?= )/,\n lookbehind: true\n }\n ]\n })\n Prism.languages.insertBefore('scss', 'important', {\n // var and interpolated vars\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n })\n Prism.languages.insertBefore('scss', 'function', {\n 'module-modifier': {\n pattern: /\\b(?:as|hide|show|with)\\b/i,\n alias: 'keyword'\n },\n placeholder: {\n pattern: /%[-\\w]+/,\n alias: 'selector'\n },\n statement: {\n pattern: /\\B!(?:default|optional)\\b/i,\n alias: 'keyword'\n },\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n operator: {\n pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|not|or)(?=\\s)/,\n lookbehind: true\n }\n })\n Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","'use strict'\nvar refractorBash = require('./bash.js')\nmodule.exports = shellSession\nshellSession.displayName = 'shellSession'\nshellSession.aliases = []\nfunction shellSession(Prism) {\n Prism.register(refractorBash)\n ;(function (Prism) {\n // CAREFUL!\n // The following patterns are concatenated, so the group referenced by a back reference is non-obvious!\n var strings = [\n // normal string\n /\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/.source,\n /'[^']*'/.source,\n /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/.source, // here doc\n // 2 capturing groups\n /<<-?\\s*([\"']?)(\\w+)\\1\\s[\\s\\S]*?[\\r\\n]\\2/.source\n ].join('|')\n Prism.languages['shell-session'] = {\n command: {\n pattern: RegExp(\n // user info\n /^/.source +\n '(?:' + // <user> \":\" ( <path> )?\n (/[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+(?::[^\\0-\\x1F$#%*?\"<>:;|]+)?/\n .source +\n '|' + // <path>\n // Since the path pattern is quite general, we will require it to start with a special character to\n // prevent false positives.\n /[/~.][^\\0-\\x1F$#%*?\"<>@:;|]*/.source) +\n ')?' + // shell symbol\n /[$#%](?=\\s)/.source + // bash command\n /(?:[^\\\\\\r\\n \\t'\"<$]|[ \\t](?:(?!#)|#.*$)|\\\\(?:[^\\r]|\\r\\n?)|\\$(?!')|<(?!<)|<<str>>)+/.source.replace(\n /<<str>>/g,\n function () {\n return strings\n }\n ),\n 'm'\n ),\n greedy: true,\n inside: {\n info: {\n // foo@bar:~/files$ exit\n // foo@bar$ exit\n // ~/files$ exit\n pattern: /^[^#$%]+/,\n alias: 'punctuation',\n inside: {\n user: /^[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+/,\n punctuation: /:/,\n path: /[\\s\\S]+/\n }\n },\n bash: {\n pattern: /(^[$#%]\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n alias: 'language-bash',\n inside: Prism.languages.bash\n },\n 'shell-symbol': {\n pattern: /^[$#%]/,\n alias: 'important'\n }\n }\n },\n output: /.(?:.*(?:[\\r\\n]|.$))*/\n }\n Prism.languages['sh-session'] = Prism.languages['shellsession'] =\n Prism.languages['shell-session']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = smali\nsmali.displayName = 'smali'\nsmali.aliases = []\nfunction smali(Prism) {\n // Test files for the parser itself:\n // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\n Prism.languages.smali = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\(?:.|u[\\da-fA-F]{4}))'/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(^|[^L])L(?:(?:\\w+|`[^`\\r\\n]*`)\\/)*(?:[\\w$]+|`[^`\\r\\n]*`)(?=\\s*;)/,\n lookbehind: true,\n inside: {\n 'class-name': {\n pattern: /(^L|\\/)(?:[\\w$]+|`[^`\\r\\n]*`)$/,\n lookbehind: true\n },\n namespace: {\n pattern: /^(L)(?:(?:\\w+|`[^`\\r\\n]*`)\\/)+/,\n lookbehind: true,\n inside: {\n punctuation: /\\//\n }\n },\n builtin: /^L/\n }\n },\n builtin: [\n {\n // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types\n pattern: /([();\\[])[BCDFIJSVZ]+/,\n lookbehind: true\n },\n {\n // e.g. .field mWifiOnUid:I\n pattern: /([\\w$>]:)[BCDFIJSVZ]/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /(\\.end\\s+)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.-])\\.(?!\\d)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^\\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\\w.-])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^|[^\\w.-])(?:\\w+|<[\\w$-]+>)(?=\\()/,\n lookbehind: true\n },\n field: {\n pattern: /[\\w$]+(?=:)/,\n alias: 'variable'\n },\n register: {\n pattern: /(^|[^\\w.-])[vp]\\d(?![\\w.-])/,\n lookbehind: true,\n alias: 'variable'\n },\n boolean: {\n pattern: /(^|[^\\w.-])(?:false|true)(?![\\w.-])/,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^/\\w.-])-?(?:NAN|INFINITY|0x(?:[\\dA-F]+(?:\\.[\\dA-F]*)?|\\.[\\dA-F]+)(?:p[+-]?[\\dA-F]+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)[dflst]?(?![\\w.-])/i,\n lookbehind: true\n },\n label: {\n pattern: /(:)\\w+/,\n lookbehind: true,\n alias: 'property'\n },\n operator: /->|\\.\\.|[\\[=]/,\n punctuation: /[{}(),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = smalltalk\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\nfunction smalltalk(Prism) {\n Prism.languages.smalltalk = {\n comment: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n char: {\n pattern: /\\$./,\n greedy: true\n },\n string: {\n pattern: /'(?:''|[^'])*'/,\n greedy: true\n },\n symbol: /#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\n 'block-arguments': {\n pattern: /(\\[\\s*):[^\\[|]*\\|/,\n lookbehind: true,\n inside: {\n variable: /:[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n 'temporary-variables': {\n pattern: /\\|[^|]+\\|/,\n inside: {\n variable: /[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n keyword: /\\b(?:new|nil|self|super)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: [\n /\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,\n /\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/\n ],\n operator: /[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,\n punctuation: /[.;:?\\[\\](){}]/\n }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = smarty\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\nfunction smarty(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.smarty = {\n comment: {\n pattern: /^\\{\\*[\\s\\S]*?\\*\\}/,\n greedy: true\n },\n 'embedded-php': {\n pattern: /^\\{php\\}[\\s\\S]*?\\{\\/php\\}/,\n greedy: true,\n inside: {\n smarty: {\n pattern: /^\\{php\\}|\\{\\/php\\}$/,\n inside: null // see below\n },\n php: {\n pattern: /[\\s\\S]+/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n },\n string: [\n {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\{[^{}]*\\}|`[^`]*`/,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^[{`]|[`}]$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n variable: /\\$\\w+/\n }\n },\n {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n greedy: true\n }\n ],\n keyword: {\n pattern: /(^\\{\\/?)[a-z_]\\w*\\b(?!\\()/i,\n lookbehind: true,\n greedy: true\n },\n delimiter: {\n pattern: /^\\{\\/?|\\}$/,\n greedy: true,\n alias: 'punctuation'\n },\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n variable: [\n /\\$(?!\\d)\\w+/,\n /#(?!\\d)\\w+#/,\n {\n pattern: /(\\.|->|\\w\\s*=)(?!\\d)\\w+\\b(?!\\()/,\n lookbehind: true\n },\n {\n pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(\\|\\s*)@?[a-z_]\\w*|\\b[a-z_]\\w*(?=\\()/i,\n lookbehind: true\n },\n 'attr-name': /\\b[a-z_]\\w*(?=\\s*=)/i,\n boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n punctuation: /[\\[\\](){}.,:`]|->/,\n operator: [\n /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n /\\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\\b/\n ]\n }\n Prism.languages.smarty['embedded-php'].inside.smarty.inside =\n Prism.languages.smarty\n Prism.languages.smarty.string[0].inside.interpolation.inside.expression.inside =\n Prism.languages.smarty\n var string = /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/\n var smartyPattern = RegExp(\n // comments\n /\\{\\*[\\s\\S]*?\\*\\}/.source +\n '|' + // php tags\n /\\{php\\}[\\s\\S]*?\\{\\/php\\}/.source +\n '|' + // smarty blocks\n /\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>)*\\})*\\})*\\}/.source.replace(\n /<str>/g,\n function () {\n return string.source\n }\n ),\n 'g'\n ) // Tokenize all inline Smarty expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var smartyLiteralStart = '{literal}'\n var smartyLiteralEnd = '{/literal}'\n var smartyLiteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'smarty',\n smartyPattern,\n function (match) {\n // Smarty tags inside {literal} block are ignored\n if (match === smartyLiteralEnd) {\n smartyLiteralMode = false\n }\n if (!smartyLiteralMode) {\n if (match === smartyLiteralStart) {\n smartyLiteralMode = true\n }\n return true\n }\n return false\n }\n )\n }) // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sml\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\nfunction sml(Prism) {\n // https://smlfamily.github.io/sml97-defn.pdf\n // https://people.mpi-sws.org/~rossberg/sml.html\n ;(function (Prism) {\n var keywords =\n /\\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\\b/i\n Prism.languages.sml = {\n // allow one level of nesting\n comment:\n /\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*)|\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*))*\\*\\))*\\*\\)/,\n string: {\n pattern: /#?\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': [\n {\n // This is only an approximation since the real grammar is context-free\n //\n // Why the main loop so complex?\n // The main loop is approximately the same as /(?:\\s*(?:[*,]|->)\\s*<TERMINAL>)*/ which is, obviously, a lot\n // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be\n // followed by a long identifier.\n pattern: RegExp(\n /((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*/.source\n .replace(/<NOT-LAST>/g, function () {\n return /\\s*(?:[*,]|->)/.source\n })\n .replace(/<TERMINAL>/g, function () {\n return /(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*/\n .source\n })\n .replace(/<LONG-ID>/g, function () {\n return /(?!<KEYWORD>)[a-z\\d_][\\w'.]*/.source\n })\n .replace(/<KEYWORD>/g, function () {\n return keywords.source\n }),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n {\n pattern:\n /((?:^|[^\\w'])(?:datatype|exception|functor|signature|structure|type)\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n }\n ],\n function: {\n pattern: /((?:^|[^\\w'])fun\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n },\n keyword: keywords,\n variable: {\n pattern: /(^|[^\\w'])'[\\w']*/,\n lookbehind: true\n },\n number: /~?\\b(?:\\d+(?:\\.\\d+)?(?:e~?\\d+)?|0x[\\da-f]+)\\b/i,\n word: {\n pattern: /\\b0w(?:\\d+|x[\\da-f]+)\\b/i,\n alias: 'constant'\n },\n boolean: /\\b(?:false|true)\\b/i,\n operator: /\\.\\.\\.|:[>=:]|=>?|->|[<>]=?|[!+\\-*/^#|@~]/,\n punctuation: /[(){}\\[\\].:,;]/\n }\n Prism.languages.sml['class-name'][0].inside = Prism.languages.sml\n Prism.languages.smlnj = Prism.languages.sml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = solidity\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\nfunction solidity(Prism) {\n Prism.languages.solidity = Prism.languages.extend('clike', {\n 'class-name': {\n pattern:\n /(\\b(?:contract|enum|interface|library|new|struct|using)\\s+)(?!\\d)[\\w$]+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\\b/,\n operator: /=>|->|:=|=:|\\*\\*|\\+\\+|--|\\|\\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/\n })\n Prism.languages.insertBefore('solidity', 'keyword', {\n builtin:\n /\\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\\d|3[0-2])?)\\b/\n })\n Prism.languages.insertBefore('solidity', 'number', {\n version: {\n pattern: /([<>]=?|\\^)\\d+\\.\\d+\\.\\d+\\b/,\n lookbehind: true,\n alias: 'number'\n }\n })\n Prism.languages.sol = Prism.languages.solidity\n}\n","'use strict'\n\nmodule.exports = solutionFile\nsolutionFile.displayName = 'solutionFile'\nsolutionFile.aliases = []\nfunction solutionFile(Prism) {\n ;(function (Prism) {\n var guid = {\n // https://en.wikipedia.org/wiki/Universally_unique_identifier#Format\n pattern: /\\{[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}\\}/i,\n alias: 'constant',\n inside: {\n punctuation: /[{}]/\n }\n }\n Prism.languages['solution-file'] = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true,\n inside: {\n guid: guid\n }\n },\n object: {\n // Foo\n // Bar(\"abs\") = 9\n // EndBar\n // Prop = TRUE\n // EndFoo\n pattern:\n /^([ \\t]*)(?:([A-Z]\\w*)\\b(?=.*(?:\\r\\n?|\\n)(?:\\1[ \\t].*(?:\\r\\n?|\\n))*\\1End\\2(?=[ \\t]*$))|End[A-Z]\\w*(?=[ \\t]*$))/m,\n lookbehind: true,\n greedy: true,\n alias: 'keyword'\n },\n property: {\n pattern: /^([ \\t]*)(?!\\s)[^\\r\\n\"#=()]*[^\\s\"#=()](?=\\s*=)/m,\n lookbehind: true,\n inside: {\n guid: guid\n }\n },\n guid: guid,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n operator: /=/,\n punctuation: /[(),]/\n }\n Prism.languages['sln'] = Prism.languages['solution-file']\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = soy\nsoy.displayName = 'soy'\nsoy.aliases = []\nfunction soy(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n var stringPattern = /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var numberPattern = /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/\n Prism.languages.soy = {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(\\s)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'command-arg': {\n pattern:\n /(\\{+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /\\./\n }\n },\n parameter: {\n pattern: /(\\{+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: [\n {\n pattern:\n /(\\{+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,\n lookbehind: true\n },\n /\\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\\b/\n ],\n delimiter: {\n pattern: /^\\{+\\/?|\\/?\\}+$/,\n alias: 'punctuation'\n },\n property: /\\w+(?==)/,\n variable: {\n pattern: /\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+\\]))*/,\n inside: {\n string: {\n pattern: stringPattern,\n greedy: true\n },\n number: numberPattern,\n punctuation: /[\\[\\].?]/\n }\n },\n string: {\n pattern: stringPattern,\n greedy: true\n },\n function: [\n /\\w+(?=\\()/,\n {\n pattern: /(\\|[^\\S\\r\\n]*)\\w+/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:false|true)\\b/,\n number: numberPattern,\n operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n punctuation: /[{}()\\[\\]|.,:]/\n } // Tokenize all inline Soy expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var soyPattern = /\\{\\{.+?\\}\\}|\\{.+?\\}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g\n var soyLitteralStart = '{literal}'\n var soyLitteralEnd = '{/literal}'\n var soyLitteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'soy',\n soyPattern,\n function (match) {\n // Soy tags inside {literal} block are ignored\n if (match === soyLitteralEnd) {\n soyLitteralMode = false\n }\n if (!soyLitteralMode) {\n if (match === soyLitteralStart) {\n soyLitteralMode = true\n }\n return true\n }\n return false\n }\n )\n }) // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy')\n })\n })(Prism)\n}\n","'use strict'\nvar refractorTurtle = require('./turtle.js')\nmodule.exports = sparql\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\nfunction sparql(Prism) {\n Prism.register(refractorTurtle)\n Prism.languages.sparql = Prism.languages.extend('turtle', {\n boolean: /\\b(?:false|true)\\b/i,\n variable: {\n pattern: /[?$]\\w+/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sparql', 'punctuation', {\n keyword: [\n /\\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\\b/i,\n /\\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\\b(?=\\s*\\()/i,\n /\\b(?:BASE|GRAPH|PREFIX)\\b/i\n ]\n })\n Prism.languages.rq = Prism.languages.sparql\n}\n","'use strict'\n\nmodule.exports = splunkSpl\nsplunkSpl.displayName = 'splunkSpl'\nsplunkSpl.aliases = []\nfunction splunkSpl(Prism) {\n Prism.languages['splunk-spl'] = {\n comment: /`comment\\(\"(?:\\\\.|[^\\\\\"])*\"\\)`/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true\n },\n // https://docs.splunk.com/Documentation/Splunk/7.3.0/SearchReference/ListOfSearchCommands\n keyword:\n /\\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b/i,\n 'operator-word': {\n pattern: /\\b(?:and|as|by|not|or|xor)\\b/i,\n alias: 'operator'\n },\n function: /\\b\\w+(?=\\s*\\()/,\n property: /\\b\\w+(?=\\s*=(?!=))/,\n date: {\n // MM/DD/YYYY(:HH:MM:SS)?\n pattern: /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}(?:(?::\\d{1,2}){3})?\\b/,\n alias: 'number'\n },\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /\\b(?:f|false|t|true)\\b/i,\n operator: /[<>=]=?|[-+*/%|]/,\n punctuation: /[()[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = sqf\nsqf.displayName = 'sqf'\nsqf.aliases = []\nfunction sqf(Prism) {\n Prism.languages.sqf = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:(?:\"\")?[^\"])*\"(?!\")|'(?:[^'])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function:\n /\\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\\b/i,\n number:\n /(?:\\$|\\b0x)[\\da-f]+\\b|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+)?)(?:e[+-]?\\d+)?\\b/i,\n operator: /##|>>|&&|\\|\\||[!=<>]=?|[-+*/%#^]|\\b(?:and|mod|not|or)\\b/i,\n 'magic-variable': {\n pattern:\n /\\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\\b/i,\n alias: 'keyword'\n },\n constant: /\\bDIK(?:_[a-z\\d]+)+\\b/i\n })\n Prism.languages.insertBefore('sqf', 'string', {\n macro: {\n pattern: /(^[ \\t]*)#[a-z](?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /#[a-z]+\\b/i,\n alias: 'keyword'\n },\n comment: Prism.languages.sqf.comment\n }\n }\n })\n delete Prism.languages.sqf['class-name']\n}\n","'use strict'\n\nmodule.exports = sql\nsql.displayName = 'sql'\nsql.aliases = []\nfunction sql(Prism) {\n Prism.languages.sql = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n variable: [\n {\n pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n greedy: true\n },\n /@[\\w.$]+/\n ],\n string: {\n pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n greedy: true,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /^`|`$/\n }\n },\n function:\n /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n // Should we highlight user defined functions too?\n keyword:\n /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n punctuation: /[;[\\]()`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = squirrel\nsquirrel.displayName = 'squirrel'\nsquirrel.aliases = []\nfunction squirrel(Prism) {\n Prism.languages.squirrel = Prism.languages.extend('clike', {\n comment: [\n Prism.languages.clike['comment'][0],\n {\n pattern: /(^|[^\\\\:])(?:\\/\\/|#).*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\\\\\"'@])(?:@\"(?:[^\"]|\"\")*\"(?!\")|\"(?:[^\\\\\\r\\n\"]|\\\\.)*\")/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|enum|extends|instanceof)\\s+)\\w+(?:\\.\\w+)*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\\b/,\n number: /\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.(?:\\d+|[eE][+-]?\\d+))?)\\b/,\n operator: /\\+\\+|--|<=>|<[-<]|>>>?|&&?|\\|\\|?|[-+*/%!=<>]=?|[~^]|::?/,\n punctuation: /[(){}\\[\\],;.]/\n })\n Prism.languages.insertBefore('squirrel', 'string', {\n char: {\n pattern: /(^|[^\\\\\"'])'(?:[^\\\\']|\\\\(?:[xuU][0-9a-fA-F]{0,8}|[\\s\\S]))'/,\n lookbehind: true,\n greedy: true\n }\n })\n Prism.languages.insertBefore('squirrel', 'operator', {\n 'attribute-punctuation': {\n pattern: /<\\/|\\/>/,\n alias: 'important'\n },\n lambda: {\n pattern: /@(?=\\()/,\n alias: 'operator'\n }\n })\n}\n","'use strict'\n\nmodule.exports = stan\nstan.displayName = 'stan'\nstan.aliases = []\nfunction stan(Prism) {\n ;(function (Prism) {\n // https://mc-stan.org/docs/2_28/reference-manual/bnf-grammars.html\n var higherOrderFunctions =\n /\\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\\b/\n Prism.languages.stan = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|#(?!include).*/,\n string: {\n // String literals can contain spaces and any printable ASCII characters except for \" and \\\n // https://mc-stan.org/docs/2_24/reference-manual/print-statements-section.html#string-literals\n pattern: /\"[\\x20\\x21\\x23-\\x5B\\x5D-\\x7E]*\"/,\n greedy: true\n },\n directive: {\n pattern: /^([ \\t]*)#include\\b.*/m,\n lookbehind: true,\n alias: 'property'\n },\n 'function-arg': {\n pattern: RegExp(\n '(' +\n higherOrderFunctions.source +\n /\\s*\\(\\s*/.source +\n ')' +\n /[a-zA-Z]\\w*/.source\n ),\n lookbehind: true,\n alias: 'function'\n },\n constraint: {\n pattern: /(\\b(?:int|matrix|real|row_vector|vector)\\s*)<[^<>]*>/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /(=\\s*)\\S(?:\\S|\\s+(?!\\s))*?(?=\\s*(?:>$|,\\s*\\w+\\s*=))/,\n lookbehind: true,\n inside: null // see below\n },\n property: /\\b[a-z]\\w*(?=\\s*=)/i,\n operator: /=/,\n punctuation: /^<|>$|,/\n }\n },\n keyword: [\n {\n pattern:\n /\\bdata(?=\\s*\\{)|\\b(?:functions|generated|model|parameters|quantities|transformed)\\b/,\n alias: 'program-block'\n },\n /\\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\\b/, // these are functions that are known to take another function as their first argument.\n higherOrderFunctions\n ],\n function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n number:\n /(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:E[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n boolean: /\\b(?:false|true)\\b/,\n operator: /<-|\\.[*/]=?|\\|\\|?|&&|[!=<>+\\-*/]=?|['^%~?:]/,\n punctuation: /[()\\[\\]{},;]/\n }\n Prism.languages.stan.constraint.inside.expression.inside =\n Prism.languages.stan\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = stylus\nstylus.displayName = 'stylus'\nstylus.aliases = []\nfunction stylus(Prism) {\n ;(function (Prism) {\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n lookbehind: true\n } // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n var inside = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n url: {\n pattern: /\\burl\\(([\"']?).*?\\1\\)/i,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n interpolation: null,\n // See below\n func: null,\n // See below\n important: /\\B!(?:important|optional)\\b/i,\n keyword: {\n pattern: /(^|\\s+)(?:(?:else|for|if|return|unless)(?=\\s|$)|@[\\w-]+)/,\n lookbehind: true\n },\n hexcode: /#[\\da-f]{3,6}/i,\n color: [\n /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n {\n pattern:\n /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n boolean: /\\b(?:false|true)\\b/,\n operator: [\n // We want non-word chars around \"-\" because it is\n // accepted in property names.\n /~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.{2,3}|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/\n ],\n number: number,\n punctuation: /[{}()\\[\\];:,]/\n }\n inside['interpolation'] = {\n pattern: /\\{[^\\r\\n}:]+\\}/,\n alias: 'variable',\n inside: {\n delimiter: {\n pattern: /^\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: inside\n }\n }\n inside['func'] = {\n pattern: /[\\w-]+\\([^)]*\\).*/,\n inside: {\n function: /^[^(]+/,\n rest: inside\n }\n }\n Prism.languages.stylus = {\n 'atrule-declaration': {\n pattern: /(^[ \\t]*)@.+/m,\n lookbehind: true,\n inside: {\n atrule: /^@[\\w-]+/,\n rest: inside\n }\n },\n 'variable-declaration': {\n pattern: /(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:\\{[^{}]*\\}|\\S.*|$)/m,\n lookbehind: true,\n inside: {\n variable: /^\\S+/,\n rest: inside\n }\n },\n statement: {\n pattern: /(^[ \\t]*)(?:else|for|if|return|unless)[ \\t].+/m,\n lookbehind: true,\n inside: {\n keyword: /^\\S+/,\n rest: inside\n }\n },\n // A property/value pair cannot end with a comma or a brace\n // It cannot have indented content unless it ended with a semicolon\n 'property-declaration': {\n pattern:\n /((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)(?!\\s)[^{\\r\\n]*(?:;|[^{\\r\\n,]$(?!(?:\\r?\\n|\\r)(?:\\{|\\2[ \\t])))/m,\n lookbehind: true,\n inside: {\n property: {\n pattern: /^[^\\s:]+/,\n inside: {\n interpolation: inside.interpolation\n }\n },\n rest: inside\n }\n },\n // A selector can contain parentheses only as part of a pseudo-element\n // It can span multiple lines.\n // It must end with a comma or an accolade or have indented content.\n selector: {\n pattern:\n /(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t])))/m,\n lookbehind: true,\n inside: {\n interpolation: inside.interpolation,\n comment: inside.comment,\n punctuation: /[{},]/\n }\n },\n func: inside.func,\n string: inside.string,\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n interpolation: inside.interpolation,\n punctuation: /[{}()\\[\\];:.]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = swift\nswift.displayName = 'swift'\nswift.aliases = []\nfunction swift(Prism) {\n Prism.languages.swift = {\n comment: {\n // Nested comments are supported up to 2 levels\n pattern:\n /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/,\n lookbehind: true,\n greedy: true\n },\n 'string-literal': [\n // https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html\n {\n pattern: RegExp(\n /(^|[^\"#])/.source +\n '(?:' + // single-line string\n /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/\n .source +\n '|' + // multi-line string\n /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/\n .source +\n ')' +\n /(?![\"#])/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n lookbehind: true,\n inside: null // see below\n },\n 'interpolation-punctuation': {\n pattern: /^\\)|\\\\\\($/,\n alias: 'punctuation'\n },\n punctuation: /\\\\(?=[\\r\\n])/,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: RegExp(\n /(^|[^\"#])(#+)/.source +\n '(?:' + // single-line string\n /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/\n .source +\n '|' + // multi-line string\n /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source +\n ')' +\n '\\\\2'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n lookbehind: true,\n inside: null // see below\n },\n 'interpolation-punctuation': {\n pattern: /^\\)|\\\\#+\\($/,\n alias: 'punctuation'\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n directive: {\n // directives with conditions\n pattern: RegExp(\n /#/.source +\n '(?:' +\n (/(?:elseif|if)\\b/.source +\n '(?:[ \\t]*' + // This regex is a little complex. It's equivalent to this:\n // (?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*<round>)?|<round>)(?:[ \\t]*(?:&&|\\|\\|))?\n // where <round> is a general parentheses expression.\n /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/\n .source +\n ')+') +\n '|' +\n /(?:else|endif)\\b/.source +\n ')'\n ),\n alias: 'property',\n inside: {\n 'directive-name': /^#\\w+/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n operator: /!|&&|\\|\\||[<>]=?/,\n punctuation: /[(),]/\n }\n },\n literal: {\n pattern:\n /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/,\n alias: 'constant'\n },\n 'other-directive': {\n pattern: /#\\w+\\b/,\n alias: 'property'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'atrule'\n },\n 'function-definition': {\n pattern: /(\\bfunc\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n // https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID141\n pattern:\n /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/,\n lookbehind: true,\n alias: 'important'\n },\n keyword:\n /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n nil: {\n pattern: /\\bnil\\b/,\n alias: 'constant'\n },\n 'short-argument': /\\$\\d+\\b/,\n omit: {\n pattern: /\\b_\\b/,\n alias: 'keyword'\n },\n number:\n /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n // A class name must start with an upper-case letter and be either 1 letter long or contain a lower-case letter.\n 'class-name': /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n // Operators are generic in Swift. Developers can even create new operators (e.g. +++).\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html#ID481\n // This regex only supports ASCII operators.\n operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/,\n punctuation: /[{}[\\]();,.:\\\\]/\n }\n Prism.languages.swift['string-literal'].forEach(function (rule) {\n rule.inside['interpolation'].inside = Prism.languages.swift\n })\n}\n","'use strict'\n\nmodule.exports = systemd\nsystemd.displayName = 'systemd'\nsystemd.aliases = []\nfunction systemd(Prism) {\n // https://www.freedesktop.org/software/systemd/man/systemd.syntax.html\n ;(function (Prism) {\n var comment = {\n pattern: /^[;#].*/m,\n greedy: true\n }\n var quotesSource = /\"(?:[^\\r\\n\"\\\\]|\\\\(?:[^\\r]|\\r\\n?))*\"(?!\\S)/.source\n Prism.languages.systemd = {\n comment: comment,\n section: {\n pattern: /^\\[[^\\n\\r\\[\\]]*\\](?=[ \\t]*$)/m,\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'section-name': {\n pattern: /[\\s\\S]+/,\n alias: 'selector'\n }\n }\n },\n key: {\n pattern: /^[^\\s=]+(?=[ \\t]*=)/m,\n greedy: true,\n alias: 'attr-name'\n },\n value: {\n // This pattern is quite complex because of two properties:\n // 1) Quotes (strings) must be preceded by a space. Since we can't use lookbehinds, we have to \"resolve\"\n // the lookbehind. You will see this in the main loop where spaces are handled separately.\n // 2) Line continuations.\n // After line continuations, empty lines and comments are ignored so we have to consume them.\n pattern: RegExp(\n /(=[ \\t]*(?!\\s))/.source + // the value either starts with quotes or not\n '(?:' +\n quotesSource +\n '|(?=[^\"\\r\\n]))' + // main loop\n '(?:' +\n (/[^\\s\\\\]/.source + // handle spaces separately because of quotes\n '|' +\n '[ \\t]+(?:(?![ \\t\"])|' +\n quotesSource +\n ')' + // line continuation\n '|' +\n /\\\\[\\r\\n]+(?:[#;].*[\\r\\n]+)*(?![#;])/.source) +\n ')*'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'attr-value',\n inside: {\n comment: comment,\n quoted: {\n pattern: RegExp(/(^|\\s)/.source + quotesSource),\n lookbehind: true,\n greedy: true\n },\n punctuation: /\\\\$/m,\n boolean: {\n pattern: /^(?:false|no|off|on|true|yes)$/,\n greedy: true\n }\n }\n },\n punctuation: /=/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = t4Cs\nt4Cs.displayName = 't4Cs'\nt4Cs.aliases = []\nfunction t4Cs(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorCsharp)\n Prism.languages.t4 = Prism.languages['t4-cs'] =\n Prism.languages['t4-templating'].createT4('csharp')\n}\n","'use strict'\n\nmodule.exports = t4Templating\nt4Templating.displayName = 't4Templating'\nt4Templating.aliases = []\nfunction t4Templating(Prism) {\n ;(function (Prism) {\n function createBlock(prefix, inside, contentAlias) {\n return {\n pattern: RegExp('<#' + prefix + '[\\\\s\\\\S]*?#>'),\n alias: 'block',\n inside: {\n delimiter: {\n pattern: RegExp('^<#' + prefix + '|#>$'),\n alias: 'important'\n },\n content: {\n pattern: /[\\s\\S]+/,\n inside: inside,\n alias: contentAlias\n }\n }\n }\n }\n function createT4(insideLang) {\n var grammar = Prism.languages[insideLang]\n var className = 'language-' + insideLang\n return {\n block: {\n pattern: /<#[\\s\\S]+?#>/,\n inside: {\n directive: createBlock('@', {\n 'attr-value': {\n pattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/,\n inside: {\n punctuation: /^=|^[\"']|[\"']$/\n }\n },\n keyword: /\\b\\w+(?=\\s)/,\n 'attr-name': /\\b\\w+/\n }),\n expression: createBlock('=', grammar, className),\n 'class-feature': createBlock('\\\\+', grammar, className),\n standard: createBlock('', grammar, className)\n }\n }\n }\n }\n Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {\n value: createT4\n })\n })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorVbnet = require('./vbnet.js')\nmodule.exports = t4Vb\nt4Vb.displayName = 't4Vb'\nt4Vb.aliases = []\nfunction t4Vb(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorVbnet)\n Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","'use strict'\nvar refractorYaml = require('./yaml.js')\nmodule.exports = tap\ntap.displayName = 'tap'\ntap.aliases = []\nfunction tap(Prism) {\n Prism.register(refractorYaml)\n // https://en.wikipedia.org/wiki/Test_Anything_Protocol\n Prism.languages.tap = {\n fail: /not ok[^#{\\n\\r]*/,\n pass: /ok[^#{\\n\\r]*/,\n pragma: /pragma [+-][a-z]+/,\n bailout: /bail out!.*/i,\n version: /TAP version \\d+/i,\n plan: /\\b\\d+\\.\\.\\d+(?: +#.*)?/,\n subtest: {\n pattern: /# Subtest(?:: .*)?/,\n greedy: true\n },\n punctuation: /[{}]/,\n directive: /#.*/,\n yamlish: {\n pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n lookbehind: true,\n inside: Prism.languages.yaml,\n alias: 'language-yaml'\n }\n }\n}\n","'use strict'\n\nmodule.exports = tcl\ntcl.displayName = 'tcl'\ntcl.aliases = []\nfunction tcl(Prism) {\n Prism.languages.tcl = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,\n lookbehind: true\n },\n {\n pattern: /(\\$)\\{[^}]+\\}/,\n lookbehind: true\n },\n {\n pattern: /(^[\\t ]*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^[\\t ]*proc[ \\t]+)\\S+/m,\n lookbehind: true\n },\n builtin: [\n {\n pattern:\n /(^[\\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\\b/m,\n lookbehind: true\n },\n /\\b(?:else|elseif)\\b/\n ],\n scope: {\n pattern: /(^[\\t ]*)(?:global|upvar|variable)\\b/m,\n lookbehind: true,\n alias: 'constant'\n },\n keyword: {\n pattern:\n /(^[\\t ]*|\\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n lookbehind: true\n },\n operator:\n /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|in|ne|ni)\\b/,\n punctuation: /[{}()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = textile\ntextile.displayName = 'textile'\ntextile.aliases = []\nfunction textile(Prism) {\n ;(function (Prism) {\n // We don't allow for pipes inside parentheses\n // to not break table pattern |(. foo |). bar |\n var modifierRegex = /\\([^|()\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}/.source // Opening and closing parentheses which are not a modifier\n // This pattern is necessary to prevent exponential backtracking\n var parenthesesRegex = /\\)|\\((?![^|()\\n]+\\))/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function withModifier(source, flags) {\n return RegExp(\n source\n .replace(/<MOD>/g, function () {\n return '(?:' + modifierRegex + ')'\n })\n .replace(/<PAR>/g, function () {\n return '(?:' + parenthesesRegex + ')'\n }),\n flags || ''\n )\n }\n var modifierTokens = {\n css: {\n pattern: /\\{[^{}]+\\}/,\n inside: {\n rest: Prism.languages.css\n }\n },\n 'class-id': {\n pattern: /(\\()[^()]+(?=\\))/,\n lookbehind: true,\n alias: 'attr-value'\n },\n lang: {\n pattern: /(\\[)[^\\[\\]]+(?=\\])/,\n lookbehind: true,\n alias: 'attr-value'\n },\n // Anything else is punctuation (the first pattern is for row/col spans inside tables)\n punctuation: /[\\\\\\/]\\d+|\\S/\n }\n var textile = (Prism.languages.textile = Prism.languages.extend('markup', {\n phrase: {\n pattern: /(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,\n lookbehind: true,\n inside: {\n // h1. Header 1\n 'block-tag': {\n pattern: withModifier(/^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\./.source),\n inside: {\n modifier: {\n pattern: withModifier(\n /(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n tag: /^[a-z]\\w*/,\n punctuation: /\\.$/\n }\n },\n // # List item\n // * List item\n list: {\n pattern: withModifier(/^[*#]+<MOD>*\\s+\\S.*/.source, 'm'),\n inside: {\n modifier: {\n pattern: withModifier(/(^[*#]+)<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /^[*#]+/\n }\n },\n // | cell | cell | cell |\n table: {\n // Modifiers can be applied to the row: {color:red}.|1|2|3|\n // or the cell: |{color:red}.1|2|3|\n pattern: withModifier(\n /^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|/\n .source,\n 'm'\n ),\n inside: {\n modifier: {\n // Modifiers for rows after the first one are\n // preceded by a pipe and a line feed\n pattern: withModifier(\n /(^|\\|(?:\\r?\\n|\\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)/\n .source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /\\||^\\./\n }\n },\n inline: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(\n /(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])/\n .source\n ),\n lookbehind: true,\n inside: {\n // Note: superscripts and subscripts are not handled specifically\n // *bold*, **bold**\n bold: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // _italic_, __italic__\n italic: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // ??cite??\n cite: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n lookbehind: true,\n alias: 'string'\n },\n // @code@\n code: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n // +inserted+\n inserted: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n lookbehind: true\n },\n // -deleted-\n deleted: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n lookbehind: true\n },\n // %span%\n span: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^%<MOD>*).+?(?=%)/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(\n /(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /[*_%?@+\\-^~]+/\n }\n },\n // [alias]http://example.com\n 'link-ref': {\n pattern: /^\\[[^\\]]+\\]\\S+$/m,\n inside: {\n string: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\])\\S+$/,\n lookbehind: true\n },\n punctuation: /[\\[\\]]/\n }\n },\n // \"text\":http://example.com\n // \"text\":link-ref\n link: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(\n /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n ),\n inside: {\n text: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\"<MOD>*)[^\"]+(?=\")/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(/(^\")<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[\":]/\n }\n },\n // !image.jpg!\n // !image.jpg(Title)!:http://example.com\n image: {\n pattern: withModifier(\n /!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?/\n .source\n ),\n inside: {\n source: {\n pattern: withModifier(\n /(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)/\n .source\n ),\n lookbehind: true,\n alias: 'url'\n },\n modifier: {\n pattern: withModifier(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[!:]/\n }\n },\n // Footnote[1]\n footnote: {\n pattern: /\\b\\[\\d+\\]/,\n alias: 'comment',\n inside: {\n punctuation: /\\[|\\]/\n }\n },\n // CSS(Cascading Style Sheet)\n acronym: {\n pattern: /\\b[A-Z\\d]+\\([^)]+\\)/,\n inside: {\n comment: {\n pattern: /(\\()[^()]+(?=\\))/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n // Prism(C)\n mark: {\n pattern: /\\b\\((?:C|R|TM)\\)/,\n alias: 'comment',\n inside: {\n punctuation: /[()]/\n }\n }\n }\n }\n }))\n var phraseInside = textile['phrase'].inside\n var nestedPatterns = {\n inline: phraseInside['inline'],\n link: phraseInside['link'],\n image: phraseInside['image'],\n footnote: phraseInside['footnote'],\n acronym: phraseInside['acronym'],\n mark: phraseInside['mark']\n } // Only allow alpha-numeric HTML tags, not XML tags\n textile.tag.pattern =\n /<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i // Allow some nesting\n var phraseInlineInside = phraseInside['inline'].inside\n phraseInlineInside['bold'].inside = nestedPatterns\n phraseInlineInside['italic'].inside = nestedPatterns\n phraseInlineInside['inserted'].inside = nestedPatterns\n phraseInlineInside['deleted'].inside = nestedPatterns\n phraseInlineInside['span'].inside = nestedPatterns // Allow some styles inside table cells\n var phraseTableInside = phraseInside['table'].inside\n phraseTableInside['inline'] = nestedPatterns['inline']\n phraseTableInside['link'] = nestedPatterns['link']\n phraseTableInside['image'] = nestedPatterns['image']\n phraseTableInside['footnote'] = nestedPatterns['footnote']\n phraseTableInside['acronym'] = nestedPatterns['acronym']\n phraseTableInside['mark'] = nestedPatterns['mark']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = toml\ntoml.displayName = 'toml'\ntoml.aliases = []\nfunction toml(Prism) {\n ;(function (Prism) {\n var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\n /**\n * @param {string} pattern\n */\n function insertKey(pattern) {\n return pattern.replace(/__/g, function () {\n return key\n })\n }\n Prism.languages.toml = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n table: {\n pattern: RegExp(\n insertKey(\n /(^[\\t ]*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])/.source\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name'\n },\n key: {\n pattern: RegExp(\n insertKey(/(^[\\t ]*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)/.source),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n string: {\n pattern:\n /\"\"\"(?:\\\\[\\s\\S]|[^\\\\])*?\"\"\"|'''[\\s\\S]*?'''|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n date: [\n {\n // Offset Date-Time, Local Date-Time, Local Date\n pattern:\n /\\b\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?\\b/i,\n alias: 'number'\n },\n {\n // Local Time\n pattern: /\\b\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?\\b/,\n alias: 'number'\n }\n ],\n number:\n /(?:\\b0(?:x[\\da-zA-Z]+(?:_[\\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\\b|[-+]?\\b\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?\\b|[-+]?\\b(?:inf|nan)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /[.,=[\\]{}]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = tremor\ntremor.displayName = 'tremor'\ntremor.aliases = []\nfunction tremor(Prism) {\n ;(function (Prism) {\n Prism.languages.tremor = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n 'interpolated-string': null,\n // see below\n extractor: {\n pattern: /\\b[a-z_]\\w*\\|(?:[^\\r\\n\\\\|]|\\\\(?:\\r\\n|[\\s\\S]))*\\|/i,\n greedy: true,\n inside: {\n regex: {\n pattern: /(^re)\\|[\\s\\S]+/,\n lookbehind: true\n },\n function: /^\\w+/,\n value: /\\|[\\s\\S]+/\n }\n },\n identifier: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())\\b/,\n keyword:\n /\\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\\b/,\n boolean: /\\b(?:false|null|true)\\b/i,\n number:\n /\\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee][+-]?[\\d_]+)?)\\b/,\n 'pattern-punctuation': {\n pattern: /%(?=[({[])/,\n alias: 'punctuation'\n },\n operator:\n /[-+*\\/%~!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\\b/,\n punctuation: /::|[;\\[\\]()\\{\\},.:]/\n }\n var interpolationPattern =\n /#\\{(?:[^\"{}]|\\{[^{}]*\\}|\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\")*\\}/.source\n Prism.languages.tremor['interpolated-string'] = {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n '\"\"\"(?:' +\n /[^\"\\\\#]|\\\\[\\s\\S]|\"(?!\"\")|#(?!\\{)/.source +\n '|' +\n interpolationPattern +\n ')*\"\"\"' +\n '|' +\n '\"(?:' +\n /[^\"\\\\\\r\\n#]|\\\\(?:\\r\\n|[\\s\\S])|#(?!\\{)/.source +\n '|' +\n interpolationPattern +\n ')*\"' +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n inside: {\n punctuation: /^#\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.tremor\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.troy = Prism.languages['tremor']\n Prism.languages.trickle = Prism.languages['tremor']\n })(Prism)\n}\n","'use strict'\nvar refractorJsx = require('./jsx.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = tsx\ntsx.displayName = 'tsx'\ntsx.aliases = []\nfunction tsx(Prism) {\n Prism.register(refractorJsx)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript)\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript) // doesn't work with TS because TS is too complex\n delete Prism.languages.tsx['parameter']\n delete Prism.languages.tsx['literal-property'] // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n var tag = Prism.languages.tsx.tag\n tag.pattern = RegExp(\n /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n tag.pattern.flags\n )\n tag.lookbehind = true\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = tt2\ntt2.displayName = 'tt2'\ntt2.aliases = []\nfunction tt2(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.tt2 = Prism.languages.extend('clike', {\n comment: /#.*|\\[%#[\\s\\S]*?%\\]/,\n keyword:\n /\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\\b/,\n punctuation: /[[\\]{},()]/\n })\n Prism.languages.insertBefore('tt2', 'number', {\n operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|not|or)\\b/,\n variable: {\n pattern: /\\b[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*\\b/i\n }\n })\n Prism.languages.insertBefore('tt2', 'keyword', {\n delimiter: {\n pattern: /^(?:\\[%|%%)-?|-?%\\]$/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('tt2', 'string', {\n 'single-quoted-string': {\n pattern: /'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,\n greedy: true,\n alias: 'string'\n },\n 'double-quoted-string': {\n pattern: /\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,\n greedy: true,\n alias: 'string',\n inside: {\n variable: {\n pattern: /\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i\n }\n }\n }\n }) // The different types of TT2 strings \"replace\" the C-like standard string\n delete Prism.languages.tt2.string\n Prism.hooks.add('before-tokenize', function (env) {\n var tt2Pattern = /\\[%[\\s\\S]+?%\\]/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'tt2',\n tt2Pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = turtle\nturtle.displayName = 'turtle'\nturtle.aliases = []\nfunction turtle(Prism) {\n Prism.languages.turtle = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'multiline-string': {\n pattern:\n /\"\"\"(?:(?:\"\"?)?(?:[^\"\\\\]|\\\\.))*\"\"\"|'''(?:(?:''?)?(?:[^'\\\\]|\\\\.))*'''/,\n greedy: true,\n alias: 'string',\n inside: {\n comment: /#.*/\n }\n },\n string: {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n url: {\n pattern:\n /<(?:[^\\x00-\\x20<>\"{}|^`\\\\]|\\\\(?:u[\\da-fA-F]{4}|U[\\da-fA-F]{8}))*>/,\n greedy: true,\n inside: {\n punctuation: /[<>]/\n }\n },\n function: {\n pattern:\n /(?:(?![-.\\d\\xB7])[-.\\w\\xB7\\xC0-\\uFFFD]+)?:(?:(?![-.])(?:[-.:\\w\\xC0-\\uFFFD]|%[\\da-f]{2}|\\\\.)+)?/i,\n inside: {\n 'local-name': {\n pattern: /([^:]*:)[\\s\\S]+/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]+/,\n inside: {\n punctuation: /:/\n }\n }\n }\n },\n number: /[+-]?\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[{}.,;()[\\]]|\\^\\^/,\n boolean: /\\b(?:false|true)\\b/,\n keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:base|graph|prefix)\\b/i],\n tag: {\n pattern: /@[a-z]+(?:-[a-z\\d]+)*/i,\n inside: {\n punctuation: /@/\n }\n }\n }\n Prism.languages.trig = Prism.languages['turtle']\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = twig\ntwig.displayName = 'twig'\ntwig.aliases = []\nfunction twig(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.languages.twig = {\n comment: /^\\{#[\\s\\S]*?#\\}$/,\n 'tag-name': {\n pattern: /(^\\{%-?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n }\n },\n keyword: /\\b(?:even|if|odd)\\b/,\n boolean: /\\b(?:false|null|true)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern:\n /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n punctuation: /[()\\[\\]{}:.,]/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'twig') {\n return\n }\n var pattern = /\\{(?:#[\\s\\S]*?#|%[\\s\\S]*?%|\\{[\\s\\S]*?\\})\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig')\n })\n}\n","'use strict'\n\nmodule.exports = typescript\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\nfunction typescript(Prism) {\n ;(function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n builtin:\n /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n }) // The keywords TypeScript adds to JavaScript\n Prism.languages.typescript.keyword.push(\n /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, // This is for `import type *, {}`\n /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n ) // doesn't work with TS because TS is too complex\n delete Prism.languages.typescript['parameter']\n delete Prism.languages.typescript['literal-property'] // a version of typescript specifically for highlighting types\n var typeInside = Prism.languages.extend('typescript', {})\n delete typeInside['class-name']\n Prism.languages.typescript['class-name'].inside = typeInside\n Prism.languages.insertBefore('typescript', 'function', {\n decorator: {\n pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n inside: {\n at: {\n pattern: /^@/,\n alias: 'operator'\n },\n function: /^[\\s\\S]+/\n }\n },\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n })\n Prism.languages.ts = Prism.languages.typescript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = typoscript\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\nfunction typoscript(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\\b/\n Prism.languages.typoscript = {\n comment: [\n {\n // multiline comments /* */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n // double-slash comments - ignored when backslashes or colon is found in front\n // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol\n pattern: /(^|[^\\\\:= \\t]|(?:^|[^= \\t])[ \\t]+)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n },\n {\n // hash comments - ignored when leading quote is found for hex colors in strings\n pattern: /(^|[^\"'])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n function: [\n {\n // old include style\n pattern:\n /<INCLUDE_TYPOSCRIPT:\\s*source\\s*=\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*>/,\n inside: {\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n inside: {\n keyword: keywords\n }\n },\n keyword: {\n pattern: /INCLUDE_TYPOSCRIPT/\n }\n }\n },\n {\n // new include style\n pattern: /@import\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')/,\n inside: {\n string: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/\n }\n }\n ],\n string: {\n pattern: /^([^=]*=[< ]?)(?:(?!\\]\\n).)*/,\n lookbehind: true,\n inside: {\n function: /\\{\\$.*\\}/,\n // constants include\n keyword: keywords,\n number: /^\\d+$/,\n punctuation: /[,|:]/\n }\n },\n keyword: keywords,\n number: {\n // special highlighting for indexes of arrays in tags\n pattern: /\\b\\d+\\s*[.{=]/,\n inside: {\n operator: /[.{=]/\n }\n },\n tag: {\n pattern: /\\.?[-\\w\\\\]+\\.?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:|]/,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/\n }\n Prism.languages.tsconfig = Prism.languages.typoscript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = unrealscript\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\nfunction unrealscript(Prism) {\n Prism.languages.unrealscript = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n category: {\n pattern:\n /(\\b(?:(?:autoexpand|hide|show)categories|var)\\s*\\()[^()]+(?=\\))/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n metadata: {\n pattern: /(\\w\\s*)<\\s*\\w+\\s*=[^<>|=\\r\\n]+(?:\\|\\s*\\w+\\s*=[^<>|=\\r\\n]+)*>/,\n lookbehind: true,\n greedy: true,\n inside: {\n property: /\\b\\w+(?=\\s*=)/,\n operator: /=/,\n punctuation: /[<>|]/\n }\n },\n macro: {\n pattern: /`\\w+/,\n alias: 'property'\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|enum|extends|interface|state(?:\\(\\))?|struct|within)\\s+)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n // https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html\n operator:\n />>|<<|--|\\+\\+|\\*\\*|[-+*/~!=<>$@]=?|&&?|\\|\\|?|\\^\\^?|[?:%]|\\b(?:ClockwiseFrom|Cross|Dot)\\b/,\n punctuation: /[()[\\]{};,.]/\n }\n Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","'use strict'\n\nmodule.exports = uorazor\nuorazor.displayName = 'uorazor'\nuorazor.aliases = []\nfunction uorazor(Prism) {\n Prism.languages.uorazor = {\n 'comment-hash': {\n pattern: /#.*/,\n alias: 'comment',\n greedy: true\n },\n 'comment-slash': {\n pattern: /\\/\\/.*/,\n alias: 'comment',\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n },\n greedy: true\n },\n 'source-layers': {\n pattern:\n /\\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\\b/i,\n alias: 'function'\n },\n 'source-commands': {\n pattern:\n /\\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\\b/,\n alias: 'function'\n },\n 'tag-name': {\n pattern: /(^\\{%-?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n alias: 'punctuation'\n },\n function:\n /\\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\\b/,\n keyword:\n /\\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\\b/,\n boolean: /\\b(?:false|null|true)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern:\n /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n punctuation: /[()\\[\\]{}:.,]/\n }\n}\n","'use strict'\n\nmodule.exports = uri\nuri.displayName = 'uri'\nuri.aliases = ['url']\nfunction uri(Prism) {\n // https://tools.ietf.org/html/rfc3986#appendix-A\n Prism.languages.uri = {\n scheme: {\n pattern: /^[a-z][a-z0-9+.-]*:/im,\n greedy: true,\n inside: {\n 'scheme-delimiter': /:$/\n }\n },\n fragment: {\n pattern: /#[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n inside: {\n 'fragment-delimiter': /^#/\n }\n },\n query: {\n pattern: /\\?[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n inside: {\n 'query-delimiter': {\n pattern: /^\\?/,\n greedy: true\n },\n 'pair-delimiter': /[&;]/,\n pair: {\n pattern: /^[^=][\\s\\S]*/,\n inside: {\n key: /^[^=]+/,\n value: {\n pattern: /(^=)[\\s\\S]+/,\n lookbehind: true\n }\n }\n }\n }\n },\n authority: {\n pattern: RegExp(\n /^\\/\\//.source + // [ userinfo \"@\" ]\n /(?:[\\w\\-.~!$&'()*+,;=%:]*@)?/.source + // host\n ('(?:' + // IP-literal\n /\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]/\n .source +\n '|' + // IPv4address or registered name\n /[\\w\\-.~!$&'()*+,;=%]*/.source +\n ')') + // [ \":\" port ]\n /(?::\\d*)?/.source,\n 'm'\n ),\n inside: {\n 'authority-delimiter': /^\\/\\//,\n 'user-info-segment': {\n pattern: /^[\\w\\-.~!$&'()*+,;=%:]*@/,\n inside: {\n 'user-info-delimiter': /@$/,\n 'user-info': /^[\\w\\-.~!$&'()*+,;=%:]+/\n }\n },\n 'port-segment': {\n pattern: /:\\d*$/,\n inside: {\n 'port-delimiter': /^:/,\n port: /^\\d+/\n }\n },\n host: {\n pattern: /[\\s\\S]+/,\n inside: {\n 'ip-literal': {\n pattern: /^\\[[\\s\\S]+\\]$/,\n inside: {\n 'ip-literal-delimiter': /^\\[|\\]$/,\n 'ipv-future': /^v[\\s\\S]+/,\n 'ipv6-address': /^[\\s\\S]+/\n }\n },\n 'ipv4-address':\n /^(?:(?:[03-9]\\d?|[12]\\d{0,2})\\.){3}(?:[03-9]\\d?|[12]\\d{0,2})$/\n }\n }\n }\n },\n path: {\n pattern: /^[\\w\\-.~!$&'()*+,;=%:@/]+/m,\n inside: {\n 'path-separator': /\\//\n }\n }\n }\n Prism.languages.url = Prism.languages.uri\n}\n","'use strict'\n\nmodule.exports = v\nv.displayName = 'v'\nv.aliases = []\nfunction v(Prism) {\n ;(function (Prism) {\n var interpolationExpr = {\n pattern: /[\\s\\S]+/,\n inside: null\n }\n Prism.languages.v = Prism.languages.extend('clike', {\n string: {\n pattern: /r?([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n alias: 'quoted-string',\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[^{}]*\\}|\\w+(?:\\.\\w+(?:\\([^\\(\\)]*\\))?|\\[[^\\[\\]]+\\])*)/,\n lookbehind: true,\n inside: {\n 'interpolation-variable': {\n pattern: /^\\$\\w[\\s\\S]*$/,\n alias: 'variable'\n },\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n 'interpolation-expression': interpolationExpr\n }\n }\n }\n },\n 'class-name': {\n pattern: /(\\b(?:enum|interface|struct|type)\\s+)(?:C\\.)?\\w+/,\n lookbehind: true\n },\n keyword:\n /(?:\\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\\$(?:else|for|if)|#(?:flag|include))\\b/,\n number:\n /\\b(?:0x[a-f\\d]+(?:_[a-f\\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?)\\b/i,\n operator:\n /~|\\?|[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\.?/,\n builtin:\n /\\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\\b/\n })\n interpolationExpr.inside = Prism.languages.v\n Prism.languages.insertBefore('v', 'string', {\n char: {\n pattern: /`(?:\\\\`|\\\\?[^`]{1,2})`/,\n // using {1,2} instead of `u` flag for compatibility\n alias: 'rune'\n }\n })\n Prism.languages.insertBefore('v', 'operator', {\n attribute: {\n pattern:\n /(^[\\t ]*)\\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\\]/m,\n lookbehind: true,\n alias: 'annotation',\n inside: {\n punctuation: /[\\[\\]]/,\n keyword: /\\w+/\n }\n },\n generic: {\n pattern: /<\\w+>(?=\\s*[\\)\\{])/,\n inside: {\n punctuation: /[<>]/,\n 'class-name': /\\w+/\n }\n }\n })\n Prism.languages.insertBefore('v', 'function', {\n 'generic-function': {\n // e.g. foo<T>( ...\n pattern: /\\b\\w+\\s*<\\w+>(?=\\()/,\n inside: {\n function: /^\\w+/,\n generic: {\n pattern: /<\\w+>/,\n inside: Prism.languages.v.generic.inside\n }\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = vala\nvala.displayName = 'vala'\nvala.aliases = []\nfunction vala(Prism) {\n Prism.languages.vala = Prism.languages.extend('clike', {\n // Classes copied from prism-csharp\n 'class-name': [\n {\n // (Foo bar, Bar baz)\n pattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=(?:\\?\\s+|\\*?\\s+\\*?)\\w)/,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // [Foo]\n pattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo : Bar\n pattern:\n /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo\n pattern:\n /((?:\\b(?:class|enum|interface|new|struct)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n ],\n keyword:\n /\\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\\b/i,\n function: /\\b\\w+(?=\\s*\\()/,\n number:\n /(?:\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?:f|u?l?)?/i,\n operator:\n /\\+\\+|--|&&|\\|\\||<<=?|>>=?|=>|->|~|[+\\-*\\/%&^|=!<>]=?|\\?\\??|\\.\\.\\./,\n punctuation: /[{}[\\];(),.:]/,\n constant: /\\b[A-Z0-9_]+\\b/\n })\n Prism.languages.insertBefore('vala', 'string', {\n 'raw-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n 'template-string': {\n pattern: /@\"[\\s\\S]*?\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$(?:\\([^)]*\\)|[a-zA-Z]\\w*)/,\n inside: {\n delimiter: {\n pattern: /^\\$\\(?|\\)$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.vala\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('vala', 'keyword', {\n regex: {\n pattern:\n /\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[imsx]{0,4}(?=\\s*(?:$|[\\r\\n,.;})\\]]))/,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\//,\n 'regex-flags': /^[a-z]+$/\n }\n }\n })\n}\n","'use strict'\nvar refractorBasic = require('./basic.js')\nmodule.exports = vbnet\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\nfunction vbnet(Prism) {\n Prism.register(refractorBasic)\n Prism.languages.vbnet = Prism.languages.extend('basic', {\n comment: [\n {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n {\n pattern: /(^|[^\\\\:])'.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,\n punctuation: /[,;:(){}]/\n })\n}\n","'use strict'\n\nmodule.exports = velocity\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\nfunction velocity(Prism) {\n ;(function (Prism) {\n Prism.languages.velocity = Prism.languages.extend('markup', {})\n var velocity = {\n variable: {\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+\\])*|\\{[^}]+\\})/i,\n lookbehind: true,\n inside: {} // See below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n number: /\\b\\d+\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator:\n /[=!<>]=?|[+*/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,\n punctuation: /[(){}[\\]:,.]/\n }\n velocity.variable.inside = {\n string: velocity['string'],\n function: {\n pattern: /([^\\w-])[a-z][\\w-]*(?=\\()/,\n lookbehind: true\n },\n number: velocity['number'],\n boolean: velocity['boolean'],\n punctuation: velocity['punctuation']\n }\n Prism.languages.insertBefore('velocity', 'comment', {\n unparsed: {\n pattern: /(^|[^\\\\])#\\[\\[[\\s\\S]*?\\]\\]#/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^#\\[\\[|\\]\\]#$/\n }\n },\n 'velocity-comment': [\n {\n pattern: /(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n {\n pattern: /(^|[^\\\\])##.*/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n }\n ],\n directive: {\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})|\\bin\\b/,\n inside: {\n punctuation: /[{}]/\n }\n },\n rest: velocity\n }\n },\n variable: velocity['variable']\n })\n Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =\n Prism.languages.velocity\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = verilog\nverilog.displayName = 'verilog'\nverilog.aliases = []\nfunction verilog(Prism) {\n Prism.languages.verilog = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'kernel-function': {\n // support for any kernel function (ex: $display())\n pattern: /\\B\\$\\w+\\b/,\n alias: 'property'\n },\n // support for user defined constants (ex: `define)\n constant: /\\B`\\w+\\b/,\n function: /\\b\\w+(?=\\()/,\n // support for verilog and system verilog keywords\n keyword:\n /\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,\n // bold highlighting for all verilog and system verilog logic blocks\n important: /\\b(?:always|always_comb|always_ff|always_latch)\\b(?: *@)?/,\n // support for time ticks, vectors, and real numbers\n number:\n /\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b(?:\\d*[._])?\\d+(?:e[-+]?\\d+)?/i,\n operator: /[-+{}^~%*\\/?=!<>&|]+/,\n punctuation: /[[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vhdl\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\nfunction vhdl(Prism) {\n Prism.languages.vhdl = {\n comment: /--.+/,\n // support for all logic vectors\n 'vhdl-vectors': {\n pattern: /\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,\n alias: 'number'\n },\n // support for operator overloading included\n 'quoted-function': {\n pattern: /\"\\S+?\"(?=\\()/,\n alias: 'function'\n },\n string: /\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n constant: /\\b(?:library|use)\\b/i,\n // support for predefined attributes included\n keyword:\n /\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\w+(?=\\()/,\n // decimal, based, physical, and exponential numbers supported\n number: /'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,\n operator:\n /[<>]=?|:=|[-+*/&=]|\\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\\b/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vim\nvim.displayName = 'vim'\nvim.aliases = []\nfunction vim(Prism) {\n Prism.languages.vim = {\n string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n comment: /\".*/,\n function: /\\b\\w+(?=\\()/,\n keyword:\n /\\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n builtin:\n /\\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator:\n /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n punctuation: /[{}[\\](),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = visualBasic\nvisualBasic.displayName = 'visualBasic'\nvisualBasic.aliases = []\nfunction visualBasic(Prism) {\n Prism.languages['visual-basic'] = {\n comment: {\n pattern: /(?:[']|REM\\b)(?:[^\\r\\n_]|_(?:\\r\\n?|\\n)?)*/i,\n inside: {\n keyword: /^REM/i\n }\n },\n directive: {\n pattern:\n /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\\b_[ \\t]*(?:\\r\\n?|\\n)|.)+/i,\n alias: 'property',\n greedy: true\n },\n string: {\n pattern: /\\$?[\"“”](?:[\"“”]{2}|[^\"“”])*[\"“”]C?/i,\n greedy: true\n },\n date: {\n pattern:\n /#[ \\t]*(?:\\d+([/-])\\d+\\1\\d+(?:[ \\t]+(?:\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?))?|\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?)[ \\t]*#/i,\n alias: 'number'\n },\n number:\n /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:[FRD]|U?[ILS])?/i,\n boolean: /\\b(?:False|Nothing|True)\\b/i,\n keyword:\n /\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,\n operator: /[+\\-*/\\\\^<=>&#@$%!]|\\b_(?=[ \\t]*[\\r\\n])/,\n punctuation: /[{}().,:?]/\n }\n Prism.languages.vb = Prism.languages['visual-basic']\n Prism.languages.vba = Prism.languages['visual-basic']\n}\n","'use strict'\n\nmodule.exports = warpscript\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\nfunction warpscript(Prism) {\n Prism.languages.warpscript = {\n comment: /#.*|\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern:\n /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'|<'(?:[^\\\\']|'(?!>)|\\\\.)*'>/,\n greedy: true\n },\n variable: /\\$\\S+/,\n macro: {\n pattern: /@\\S+/,\n alias: 'property'\n },\n // WarpScript doesn't have any keywords, these are all functions under the control category\n // https://www.warp10.io/tags/control\n keyword:\n /\\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\\b/,\n number:\n /[+-]?\\b(?:NaN|Infinity|\\d+(?:\\.\\d*)?(?:[Ee][+-]?\\d+)?|0x[\\da-fA-F]+|0b[01]+)\\b/,\n boolean: /\\b(?:F|T|false|true)\\b/,\n punctuation: /<%|%>|[{}[\\]()]/,\n // Some operators from the \"operators\" category\n // https://www.warp10.io/tags/operators\n operator:\n /==|&&?|\\|\\|?|\\*\\*?|>>>?|<<|[<>!~]=?|[-/%^]|\\+!?|\\b(?:AND|NOT|OR)\\b/\n }\n}\n","'use strict'\n\nmodule.exports = wasm\nwasm.displayName = 'wasm'\nwasm.aliases = []\nfunction wasm(Prism) {\n Prism.languages.wasm = {\n comment: [\n /\\(;[\\s\\S]*?;\\)/,\n {\n pattern: /;;.*/,\n greedy: true\n }\n ],\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n greedy: true\n },\n keyword: [\n {\n pattern: /\\b(?:align|offset)=/,\n inside: {\n operator: /=/\n }\n },\n {\n pattern:\n /\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n /\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n ],\n variable: /\\$[\\w!#$%&'*+\\-./:<=>?@\\\\^`|~]+/,\n number:\n /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,\n punctuation: /[()]/\n }\n}\n","'use strict'\n\nmodule.exports = webIdl\nwebIdl.displayName = 'webIdl'\nwebIdl.aliases = []\nfunction webIdl(Prism) {\n ;(function (Prism) {\n var id = /(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])/.source\n var type =\n '(?:' +\n /\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])/.source +\n '|' +\n /\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])/.source +\n '|' +\n /(?!(?:unrestricted|unsigned)\\b)/.source +\n id +\n /(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?/.source +\n ')' +\n /(?:\\s*\\?)?/.source\n var typeInside = {}\n Prism.languages['web-idl'] = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n namespace: {\n pattern: RegExp(/(\\bnamespace\\s+)/.source + id),\n lookbehind: true\n },\n 'class-name': [\n {\n pattern:\n /(^|[^\\w-])(?:iterable|maplike|setlike)\\s*<(?:[^<>]|<[^<>]*>)*>/,\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: RegExp(\n /(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)/.source +\n type\n ),\n lookbehind: true,\n inside: typeInside\n },\n {\n // callback return type\n pattern: RegExp(\n '(' + /\\bcallback\\s+/.source + id + /\\s*=\\s*/.source + ')' + type\n ),\n lookbehind: true,\n inside: typeInside\n },\n {\n // typedef\n pattern: RegExp(/(\\btypedef\\b\\s*)/.source + type),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: RegExp(\n /(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)/\n .source + id\n ),\n lookbehind: true\n },\n {\n // inheritance\n pattern: RegExp(/(:\\s*)/.source + id),\n lookbehind: true\n }, // includes and implements\n RegExp(id + /(?=\\s+(?:implements|includes)\\b)/.source),\n {\n pattern: RegExp(/(\\b(?:implements|includes)\\s+)/.source + id),\n lookbehind: true\n },\n {\n // function return type, parameter types, and dictionary members\n pattern: RegExp(\n type +\n '(?=' +\n /\\s*(?:\\.{3}\\s*)?/.source +\n id +\n /\\s*[(),;=]/.source +\n ')'\n ),\n inside: typeInside\n }\n ],\n builtin:\n /\\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\\b/,\n keyword: [\n /\\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\\b/, // type keywords\n /\\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\\b/\n ],\n boolean: /\\b(?:false|true)\\b/,\n number: {\n pattern:\n /(^|[^\\w-])-?(?:0x[0-9a-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|NaN|Infinity)(?![\\w-])/i,\n lookbehind: true\n },\n operator: /\\.{3}|[=:?<>-]/,\n punctuation: /[(){}[\\].,;]/\n }\n for (var key in Prism.languages['web-idl']) {\n if (key !== 'class-name') {\n typeInside[key] = Prism.languages['web-idl'][key]\n }\n }\n Prism.languages['webidl'] = Prism.languages['web-idl']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = wiki\nwiki.displayName = 'wiki'\nwiki.aliases = []\nfunction wiki(Prism) {\n Prism.languages.wiki = Prism.languages.extend('markup', {\n 'block-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n alias: 'comment'\n },\n heading: {\n pattern: /^(=+)[^=\\r\\n].*?\\1/m,\n inside: {\n punctuation: /^=+|=+$/,\n important: /.+/\n }\n },\n emphasis: {\n // TODO Multi-line\n pattern: /('{2,5}).+?\\1/,\n inside: {\n 'bold-italic': {\n pattern: /(''''').+?(?=\\1)/,\n lookbehind: true,\n alias: ['bold', 'italic']\n },\n bold: {\n pattern: /(''')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n italic: {\n pattern: /('')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n punctuation: /^''+|''+$/\n }\n },\n hr: {\n pattern: /^-{4,}/m,\n alias: 'punctuation'\n },\n url: [\n /ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:PMID|RFC) +\\d+/i,\n /\\[\\[.+?\\]\\]|\\[.+?\\]/\n ],\n variable: [\n /__[A-Z]+__/, // FIXME Nested structures should be handled\n // {{formatnum:{{#expr:{{{3}}}}}}}\n /\\{{3}.+?\\}{3}/,\n /\\{\\{.+?\\}\\}/\n ],\n symbol: [/^#redirect/im, /~{3,5}/],\n // Handle table attrs:\n // {|\n // ! style=\"text-align:left;\"| Item\n // |}\n 'table-tag': {\n pattern: /((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,\n lookbehind: true,\n inside: {\n 'table-bar': {\n pattern: /\\|$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.markup['tag'].inside\n }\n },\n punctuation: /^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m\n })\n Prism.languages.insertBefore('wiki', 'tag', {\n // Prevent highlighting inside <nowiki>, <source> and <pre> tags\n nowiki: {\n pattern: /<(nowiki|pre|source)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i,\n inside: {\n tag: {\n pattern: /<(?:nowiki|pre|source)\\b[^>]*>|<\\/(?:nowiki|pre|source)>/i,\n inside: Prism.languages.markup['tag'].inside\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = wolfram\nwolfram.displayName = 'wolfram'\nwolfram.aliases = ['mathematica', 'wl', 'nb']\nfunction wolfram(Prism) {\n Prism.languages.wolfram = {\n // Allow one level of nesting - note: regex taken from applescipt\n comment: /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\\b/,\n context: {\n pattern: /\\b\\w+`+\\w*/,\n alias: 'class-name'\n },\n blank: {\n pattern: /\\b\\w+_\\b/,\n alias: 'regex'\n },\n 'global-variable': {\n pattern: /\\$\\w+/,\n alias: 'variable'\n },\n boolean: /\\b(?:False|True)\\b/,\n number:\n /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n operator:\n /\\/\\.|;|=\\.|\\^=|\\^:=|:=|<<|>>|<\\||\\|>|:>|\\|->|->|<-|@@@|@@|@|\\/@|=!=|===|==|=|\\+|-|\\^|\\[\\/-+%=\\]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.mathematica = Prism.languages.wolfram\n Prism.languages.wl = Prism.languages.wolfram\n Prism.languages.nb = Prism.languages.wolfram\n}\n","'use strict'\n\nmodule.exports = wren\nwren.displayName = 'wren'\nwren.aliases = []\nfunction wren(Prism) {\n // https://wren.io/\n Prism.languages.wren = {\n // Multiline comments in Wren can have nested multiline comments\n // Comments: // and /* */\n comment: [\n {\n // support 3 levels of nesting\n // regex: \\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/\n pattern:\n /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*))*\\*\\/)*\\*\\/)*\\*\\//,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // Triple quoted strings are multiline but cannot have interpolation (raw strings)\n // Based on prism-python.js\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n // see below\n 'string-literal': null,\n // #!/usr/bin/env wren on the first line\n hashbang: {\n pattern: /^#!\\/.+/,\n greedy: true,\n alias: 'comment'\n },\n // Attributes are special keywords to add meta data to classes\n attribute: {\n // #! attributes are stored in class properties\n // #!myvar = true\n // #attributes are not stored and dismissed at compilation\n pattern: /#!?[ \\t\\u3000]*\\w+/,\n alias: 'keyword'\n },\n 'class-name': [\n {\n // class definition\n // class Meta {}\n pattern: /(\\bclass\\s+)\\w+/,\n lookbehind: true\n }, // A class must always start with an uppercase.\n // File.read\n /\\b[A-Z][a-z\\d_]*\\b/\n ],\n // A constant can be a variable, class, property or method. Just named in all uppercase letters\n constant: /\\b[A-Z][A-Z\\d_]*\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n keyword:\n /\\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n // Functions can be Class.method()\n function: /\\b[a-z_]\\w*(?=\\s*[({])/i,\n operator: /<<|>>|[=!<>]=?|&&|\\|\\||[-+*/%~^&|?:]|\\.{2,3}/,\n punctuation: /[\\[\\](){}.,;]/\n }\n Prism.languages.wren['string-literal'] = {\n // A single quote string is multiline and can have interpolation (similar to JS backticks ``)\n pattern:\n /(^|[^\\\\\"])\"(?:[^\\\\\"%]|\\\\[\\s\\S]|%(?!\\()|%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\))*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n // \"%(interpolation)\"\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\)/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /^(%\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: Prism.languages.wren\n },\n 'interpolation-punctuation': {\n pattern: /^%\\(|\\)$/,\n alias: 'punctuation'\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n}\n","'use strict'\n\nmodule.exports = xeora\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\nfunction xeora(Prism) {\n ;(function (Prism) {\n Prism.languages.xeora = Prism.languages.extend('markup', {\n constant: {\n pattern: /\\$(?:DomainContents|PageRenderDuration)\\$/,\n inside: {\n punctuation: {\n pattern: /\\$/\n }\n }\n },\n variable: {\n pattern: /\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[$.]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n 'function-inline': {\n pattern:\n /\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\$/,\n inside: {\n variable: {\n pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,\n inside: {\n punctuation: {\n pattern: /[,.|]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n punctuation: {\n pattern: /\\$\\w:|[$:?.,|]/\n }\n },\n alias: 'function'\n },\n 'function-block': {\n pattern:\n /\\$XF:\\{[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\}:XF\\$/,\n inside: {\n punctuation: {\n pattern: /[$:{}?.,|]/\n }\n },\n alias: 'function'\n },\n 'directive-inline': {\n pattern: /\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\/\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n }\n },\n alias: 'function'\n },\n 'directive-block-open': {\n pattern:\n /\\$\\w+:\\{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\w.]+:\\{(?:![A-Z]+)?/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n },\n attribute: {\n pattern: /![A-Z]+$/,\n inside: {\n punctuation: {\n pattern: /!/\n }\n },\n alias: 'keyword'\n }\n },\n alias: 'function'\n },\n 'directive-block-separator': {\n pattern: /\\}:[-\\w.]+:\\{/,\n inside: {\n punctuation: {\n pattern: /[:{}]/\n }\n },\n alias: 'function'\n },\n 'directive-block-close': {\n pattern: /\\}:[-\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[:{}$]/\n }\n },\n alias: 'function'\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n variable: Prism.languages.xeora['function-inline'].inside['variable']\n },\n Prism.languages.xeora['function-block']\n )\n Prism.languages.xeoracube = Prism.languages.xeora\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = xmlDoc\nxmlDoc.displayName = 'xmlDoc'\nxmlDoc.aliases = []\nfunction xmlDoc(Prism) {\n ;(function (Prism) {\n /**\n * If the given language is present, it will insert the given doc comment grammar token into it.\n *\n * @param {string} lang\n * @param {any} docComment\n */\n function insertDocComment(lang, docComment) {\n if (Prism.languages[lang]) {\n Prism.languages.insertBefore(lang, 'comment', {\n 'doc-comment': docComment\n })\n }\n }\n var tag = Prism.languages.markup.tag\n var slashDocComment = {\n pattern: /\\/\\/\\/.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n var tickDocComment = {\n pattern: /'''.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n insertDocComment('csharp', slashDocComment)\n insertDocComment('fsharp', slashDocComment)\n insertDocComment('vbnet', tickDocComment)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = xojo\nxojo.displayName = 'xojo'\nxojo.aliases = []\nfunction xojo(Prism) {\n Prism.languages.xojo = {\n comment: {\n pattern: /(?:'|\\/\\/|Rem\\b).+/i,\n greedy: true\n },\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n number: [/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i, /&[bchou][a-z\\d]+/i],\n directive: {\n pattern: /#(?:Else|ElseIf|Endif|If|Pragma)\\b/i,\n alias: 'property'\n },\n keyword:\n /\\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\\b/i,\n operator:\n /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\\b/i,\n punctuation: /[.,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = xquery\nxquery.displayName = 'xquery'\nxquery.aliases = []\nfunction xquery(Prism) {\n ;(function (Prism) {\n Prism.languages.xquery = Prism.languages.extend('markup', {\n 'xquery-comment': {\n pattern: /\\(:[\\s\\S]*?:\\)/,\n greedy: true,\n alias: 'comment'\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,\n greedy: true\n },\n extension: {\n pattern: /\\(#.+?#\\)/,\n alias: 'symbol'\n },\n variable: /\\$[-\\w:]+/,\n axis: {\n pattern:\n /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,\n lookbehind: true,\n alias: 'operator'\n },\n 'keyword-operator': {\n pattern:\n /(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern:\n /(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,\n lookbehind: true\n },\n function: /[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\n 'xquery-element': {\n pattern: /(element\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'tag'\n },\n 'xquery-attribute': {\n pattern: /(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'attr-name'\n },\n builtin: {\n pattern:\n /(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,\n operator: [\n /[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ],\n punctuation: /[[\\](){},;:/]/\n })\n Prism.languages.xquery.tag.pattern =\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n Prism.languages.xquery['tag'].inside['attr-value'].pattern =\n /=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['punctuation'] =\n /^=\"|\"$/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {\n // Allow for two levels of nesting\n pattern: /\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}/,\n inside: Prism.languages.xquery,\n alias: 'language-xquery'\n } // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{' && // Ignore `{{`\n (!tokens[i + 1] ||\n tokens[i + 1].type !== 'punctuation' ||\n tokens[i + 1].content !== '{') &&\n (!tokens[i - 1] ||\n tokens[i - 1].type !== 'plain-text' ||\n tokens[i - 1].content !== '{')\n ) {\n // Here we might have entered an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else if (token.type !== 'comment') {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside an XQuery expression.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n if (/^\\s+$/.test(plainText)) {\n tokens[i] = plainText\n } else {\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'xquery') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = yaml\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\nfunction yaml(Prism) {\n ;(function (Prism) {\n // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n var anchorOrAlias = /[*&][^\\s[\\]{},]+/ // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n var tag =\n /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/ // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n var properties =\n '(?:' +\n tag.source +\n '(?:[ \\t]+' +\n anchorOrAlias.source +\n ')?|' +\n anchorOrAlias.source +\n '(?:[ \\t]+' +\n tag.source +\n ')?)' // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n // This is a simplified version that doesn't support \"#\" and multiline keys\n // All these long scarry character classes are simplified versions of YAML's characters\n var plainKey =\n /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n /<PLAIN>/g,\n function () {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n .source\n }\n )\n var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n /**\n *\n * @param {string} value\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function createValuePattern(value, flags) {\n flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n var pattern =\n /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<value>>/g, function () {\n return value\n })\n return RegExp(pattern, flags)\n }\n Prism.languages.yaml = {\n scalar: {\n pattern: RegExp(\n /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n /<<prop>>/g,\n function () {\n return properties\n }\n )\n ),\n lookbehind: true,\n alias: 'string'\n },\n comment: /#.*/,\n key: {\n pattern: RegExp(\n /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<key>>/g, function () {\n return '(?:' + plainKey + '|' + string + ')'\n })\n ),\n lookbehind: true,\n greedy: true,\n alias: 'atrule'\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'important'\n },\n datetime: {\n pattern: createValuePattern(\n /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n .source\n ),\n lookbehind: true,\n alias: 'number'\n },\n boolean: {\n pattern: createValuePattern(/false|true/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n null: {\n pattern: createValuePattern(/null|~/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n string: {\n pattern: createValuePattern(string),\n lookbehind: true,\n greedy: true\n },\n number: {\n pattern: createValuePattern(\n /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n tag: tag,\n important: anchorOrAlias,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n }\n Prism.languages.yml = Prism.languages.yaml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = yang\nyang.displayName = 'yang'\nyang.aliases = []\nfunction yang(Prism) {\n Prism.languages.yang = {\n // https://tools.ietf.org/html/rfc6020#page-34\n // http://www.yang-central.org/twiki/bin/view/Main/YangExamples\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"|'[^']*'/,\n greedy: true\n },\n keyword: {\n pattern: /(^|[{};\\r\\n][ \\t]*)[a-z_][\\w.-]*/i,\n lookbehind: true\n },\n namespace: {\n pattern: /(\\s)[a-z_][\\w.-]*(?=:)/i,\n lookbehind: true\n },\n boolean: /\\b(?:false|true)\\b/,\n operator: /\\+/,\n punctuation: /[{};:]/\n }\n}\n","'use strict'\n\nmodule.exports = zig\nzig.displayName = 'zig'\nzig.aliases = []\nfunction zig(Prism) {\n ;(function (Prism) {\n function literal(str) {\n return function () {\n return str\n }\n }\n var keyword =\n /\\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\\b/\n var IDENTIFIER = '\\\\b(?!' + keyword.source + ')(?!\\\\d)\\\\w+\\\\b'\n var ALIGN = /align\\s*\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var PREFIX_TYPE_OP =\n /(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)/.source.replace(\n /<ALIGN>/g,\n literal(ALIGN)\n )\n var SUFFIX_EXPR =\n /(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))/.source.replace(\n /<ID>/g,\n literal(IDENTIFIER)\n )\n var TYPE =\n '(?!\\\\s)(?:!?\\\\s*(?:' + PREFIX_TYPE_OP + '\\\\s*)*' + SUFFIX_EXPR + ')+'\n /*\n * A simplified grammar for Zig compile time type literals:\n *\n * TypeExpr = ( \"!\"? PREFIX_TYPE_OP* SUFFIX_EXPR )+\n *\n * SUFFIX_EXPR = ( \\b \"promise\" \\b | ( \\b \"error\" \".\" )? IDENTIFIER ( \".\" IDENTIFIER )* (?! \\s+ IDENTIFIER ) )\n *\n * PREFIX_TYPE_OP = \"?\"\n * | \\b \"promise\" \"->\"\n * | ( \"[\" [^\\[\\]]* \"]\" | \"*\" | \"**\" ) ( ALIGN | \"const\" \\b | \"volatile\" \\b | \"allowzero\" \\b )*\n *\n * ALIGN = \"align\" \"(\" ( [^()] | \"(\" [^()]* \")\" )* \")\"\n *\n * IDENTIFIER = \\b (?! KEYWORD ) [a-zA-Z_] \\w* \\b\n *\n */\n Prism.languages.zig = {\n comment: [\n {\n pattern: /\\/\\/[/!].*/,\n alias: 'doc-comment'\n },\n /\\/{2}.*/\n ],\n string: [\n {\n // \"string\" and c\"string\"\n pattern: /(^|[^\\\\@])c?\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n {\n // multiline strings and c-strings\n pattern: /([\\r\\n])([ \\t]+c?\\\\{2}).*(?:(?:\\r\\n?|\\n)\\2.*)*/,\n lookbehind: true,\n greedy: true\n }\n ],\n char: {\n // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n pattern:\n /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|[\\uD800-\\uDFFF]{2}|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n lookbehind: true,\n greedy: true\n },\n builtin: /\\B@(?!\\d)\\w+(?=\\s*\\()/,\n label: {\n pattern:\n /(\\b(?:break|continue)\\s*:\\s*)\\w+\\b|\\b(?!\\d)\\w+\\b(?=\\s*:\\s*(?:\\{|while\\b))/,\n lookbehind: true\n },\n 'class-name': [\n // const Foo = struct {};\n /\\b(?!\\d)\\w+(?=\\s*=\\s*(?:(?:extern|packed)\\s+)?(?:enum|struct|union)\\s*[({])/,\n {\n // const x: i32 = 9;\n // var x: Bar;\n // fn foo(x: bool, y: f32) void {}\n pattern: RegExp(\n /(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n // extern fn foo(x: f64) f64; (optional alignment)\n pattern: RegExp(\n /(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n 'builtin-type': {\n pattern:\n /\\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\\b/,\n alias: 'keyword'\n },\n keyword: keyword,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n number:\n /\\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\\d]+(?:\\.[a-fA-F\\d]*)?(?:[pP][+-]?[a-fA-F\\d]+)?|\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator:\n /\\.[*?]|\\.{2,3}|[-=]>|\\*\\*|\\+\\+|\\|\\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,\n punctuation: /[.:,;(){}[\\]]/\n }\n Prism.languages.zig['class-name'].forEach(function (obj) {\n if (obj.inside === null) {\n obj.inside = Prism.languages.zig\n }\n })\n })(Prism)\n}\n","/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\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\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\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\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prisms API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what youre doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\n/**\n * Stringify one point, a position (start and end points), or a nodes\n * positional information.\n *\n * @param {Node|NodeLike|Position|Point|null} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point|undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position|undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number|undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n /**\n * Constructor of a message for `reason` at `place` from `origin`.\n * When an error is passed in as `reason`, copies the `stack`.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n */\n constructor(reason, place, origin) {\n /** @type {[string|null, string|null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n position.start = place\n }\n }\n\n // Fields from `Error`\n this.name = stringifyPosition(place) || '1:1'\n this.message = typeof reason === 'object' ? reason.message : reason\n this.stack = typeof reason === 'object' ? reason.stack : ''\n\n /**\n * Reason for message.\n * @type {string}\n */\n this.reason = this.message\n /**\n * If true, marks associated file as no longer processable.\n * @type {boolean?}\n */\n // eslint-disable-next-line no-unused-expressions\n this.fatal\n /**\n * Starting line of error.\n * @type {number?}\n */\n this.line = position.start.line\n /**\n * Starting column of error.\n * @type {number?}\n */\n this.column = position.start.column\n /**\n * Namespace of warning.\n * @type {string?}\n */\n this.source = parts[0]\n /**\n * Category of message.\n * @type {string?}\n */\n this.ruleId = parts[1]\n /**\n * Full range information, when available.\n * Has start and end properties, both set to an object with line and column, set to number?.\n * @type {Position?}\n */\n this.position = position\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /* eslint-disable no-unused-expressions */\n /**\n * You can use this to specify the source value thats being reported, which\n * is deemed incorrect.\n * @type {string?}\n */\n this.actual\n /**\n * You can use this to suggest values that should be used instead of\n * `actual`, one or more values that are deemed as acceptable.\n * @type {Array<string>?}\n */\n this.expected\n /**\n * You may add a file property with a path of a file (used throughout the VFile ecosystem).\n * @type {string?}\n */\n this.file\n /**\n * You may add a url property with a link to documentation for the message.\n * @type {string?}\n */\n this.url\n /**\n * You may add a note property with a long form description of the message (supported by vfile-reporter).\n * @type {string?}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Nodes internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * @param {Array<string>} segments\n * @returns {string}\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string|undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * @param {boolean} allowAboveRoot\n * @returns {string}\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number|undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * @param {string} path\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I dont think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileURLOrPath) {\n return (\n fileURLOrPath !== null &&\n typeof fileURLOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileURLOrPath.href &&\n // @ts-expect-error: indexable.\n fileURLOrPath.origin\n )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string|URL} path\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * @param {URL} url\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {Record<string, unknown> & {type: string, position?: Position|undefined}} NodeLike\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n * This is a copy of the typing from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Value|Options|VFile|URL} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {Value} [value]\n * @property {string} [cwd]\n * @property {Array<string>} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {Data} [data]\n *\n * @typedef Map\n * Raw source map, see:\n * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * @property {Array<string>} sources\n * @property {Array<string>} names\n * @property {string|undefined} [sourceRoot]\n * @property {Array<string>|undefined} [sourcesContent]\n * @property {string} mappings\n * @property {string} file\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration: a bunch of keys that will be shallow copied over to the new\n * file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * @typedef {<T = ReporterSettings>(files: Array<VFile>, options: T) => string} Reporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * If `options` is `string` or `Buffer`, its treated as `{value: options}`.\n * If `options` is a `URL`, its treated as `{path: options}`.\n * If `options` is a `VFile`, shallow copies its data over to the new file.\n * All fields in `options` are set on the newly created `VFile`.\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * Its not possible to set either `dirname` or `extname` without setting\n * either `history`, `path`, `basename`, or `stem` as well.\n *\n * @param {Compatible} [value]\n */\n constructor(value) {\n /** @type {Options} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n // @ts-expect-error Looks like a buffer.\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n // @ts-expect-error Looks like file or options.\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n * Its OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n * The first is the original path and the last is the current path.\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n * This is used by vfile reporters.\n * @type {boolean}\n */\n this.stored\n\n /**\n * Sometimes files have a non-string, compiled, representation.\n * This can be stored in the `result` field.\n * One example is when turning markdown into React nodes.\n * This is used by unified to store non-string results.\n * @type {unknown}\n */\n this.result\n\n /**\n * Sometimes files have a source map associated with them.\n * This can be stored in the `map` field.\n * This should be a `Map` type, which is equivalent to the `RawSourceMap`\n * type from the `source-map` module.\n * @type {Map|undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined) {\n // @ts-expect-error: TS is confused by the different types for `history`.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) this[prop] = options[prop]\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n * @param {string|URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n * Cannot be set if theres no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if theres no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding} [encoding='utf8']\n * When `value` is a `Buffer`, `encoding` is a character encoding to\n * understand it as (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding)\n }\n\n /**\n * Constructs a new `VFileMessage`, where `fatal` is set to `false`, and\n * associates it with the file by adding it to `vfile.messages` and setting\n * `message.file` to the current filepath.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Like `VFile#message()`, but associates an informational message where\n * `fatal` is set to `null`.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Like `VFile#message()`, but associates a fatal message where `fatal` is\n * set to `true`, and then immediately throws it.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {never}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string|undefined} path\n * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback\n * @typedef {(...input: Array<any>) => any} Middleware\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or were done.\n *\n * @param {Error|null|undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record<string, unknown>} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record<string, unknown>|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` cant be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the nodes plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n var {includeImageAlt = true} = options || {}\n return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n return (\n (node &&\n typeof node === 'object' &&\n // @ts-ignore looks like a literal.\n (node.value ||\n // @ts-ignore looks like an image.\n (includeImageAlt ? node.alt : '') ||\n // @ts-ignore looks like a parent.\n ('children' in node && all(node.children, includeImageAlt)) ||\n (Array.isArray(node) && all(node, includeImageAlt)))) ||\n ''\n )\n}\n\n/**\n * @param {Array.<unknown>} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n /** @type {Array.<string>} */\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt)\n }\n\n return result.join('')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if theres only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, its fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, its fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let code\n\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {unknown[]} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record<string, unknown>} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but its already used in the wild by\n // extensions.\n\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (theyre still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether theres a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n } // If we have concrete content, such as block HTML or fenced code,\n // we cant have containers “pierce” into them, so we can immediately\n // start.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n } // If we do have flow, it could still be a blank line,\n // but wed be interrupting it w/ a new container if theres a current\n // construct.\n\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream) // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line cant “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // Weve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: theres still something open, which means its a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (theyre still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record<string, number>} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // If theres one more token (which is the cases for lines that end in an\n // EOF), thats perfect: the last point we found starts it.\n // If there isnt then make sure any remaining content is added to it.\n\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n } // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices arent affected.\n\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n/**\n * Content is transparent: its parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n /** @type {State} */\n\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n /** @type {Initializer} */\n\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Dont do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we cant hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean|undefined} */\n\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Resolver[]} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesnt receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_index'|'_bufferIndex'>} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n\n const columnStart = {}\n /** @type {Array<Construct>} */\n\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n\n let chunks = []\n /** @type {Array<Token>} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if were not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If were in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n /** @type {Effects['exit']} */\n\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record<string, unknown>} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Array<Construct>|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesnt work because `inspect` in document does a check\n // w/o a bogus, which doesnt make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\n\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n /**\n * Move the current point a bit forward in the line when its on a column\n * skip.\n *\n * @returns {void}\n */\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'start'|'end'>} token\n * @returns {Array<Chunk>}\n */\n\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n\n let view\n\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record<string, unknown> & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine, // Cant be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As were closing flow, were no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* To do: remove in the future once weve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesnt need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines cant exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines cant exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n // If this is a lazy line, it cant be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // Itll always exist: we dont tokenize if it isnt there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed well add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, well keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable<Code>} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesnt have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * Note that `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While were in an instruction instead of a declaration, were on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n } // More dashes.\n\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n /** @type {State} */\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`&not`, for instance), which leads to situations where parsing the assumed\n // named reference of `&notit;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`&semi;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n /** @type {State} */\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, weve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we cant have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // Its a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once weve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesnt need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * Note that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but its\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then dont match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! Its not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n /** @type {State} */\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We cant have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once weve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesnt need this */\n\n /* Hidden footnotes hook. */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs dont work, and virtual spaces dont make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n /** @type {State} */\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Array<Chunk>}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {UnistParent & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record<string, unknown> & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n * @typedef {Record<string, Record<string, unknown>|Array<unknown>> & {canContainEols: Array<string>, transforms: Array<Transform>, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial<NormalizedExtension>} Extension\n * An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token|undefined, right: Token) => void} OnEnterError\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token, right: Token) => void} OnExitError\n *\n * @typedef CompileContext\n * mdast compiler context\n * @property {Array<Node | Fragment>} stack\n * @property {Array<[Token, OnEnterError|undefined]>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n * Set data into the key-value store.\n * @property {<K extends string>(key: K) => CompileData[K]} getData\n * Get data from the key-value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<N extends Node>(this: CompileContext, node: N, token: Token, onError?: OnEnterError) => N} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {NormalizedExtension} config\n * Configuration.\n *\n * @typedef {{mdastExtensions?: Array<Extension|Array<Extension>>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n */\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n/**\n * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when its a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options) => Root) &\n * ((value: Value, options?: Options) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {Options} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n /** @type {NormalizedExtension} */\n // @ts-expect-error: our base has all required fields, so the result will too.\n const config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n options.mdastExtensions || []\n )\n /** @type {CompileData} */\n\n const data = {}\n return compile\n /**\n * @param {Array<Event>} events\n * @returns {Root}\n */\n\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {CompileContext['stack']} */\n\n const stack = [tree]\n /** @type {CompileContext['tokenStack']} */\n\n const tokenStack = []\n /** @type {Array<number>} */\n\n const listStack = []\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n\n const context = {\n stack,\n tokenStack,\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n let index = -1\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length > 0) {\n const tail = tokenStack[tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n } // Figure out `root` position.\n\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n index = -1\n\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token|undefined} */\n\n let listItem\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number|undefined} */\n\n let firstBlankLineIndex\n /** @type {boolean|undefined} */\n\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n } // Fix position.\n\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n } // Create a new list item.\n\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n } // @ts-expect-error Patched.\n\n events[start][1]._spread = listSpread\n return length\n }\n /**\n * @type {CompileContext['setData']}\n * @param [value]\n */\n\n function setData(key, value) {\n data[key] = value\n }\n /**\n * @type {CompileContext['getData']}\n * @template {string} K\n * @param {K} key\n * @returns {CompileData[K]}\n */\n\n function getData(key) {\n return data[key]\n }\n /**\n * @param {Point} d\n * @returns {Point}\n */\n\n function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n }\n /**\n * @param {(token: Token) => Node} create\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function opener(create, and) {\n return open\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n /** @type {CompileContext['buffer']} */\n\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n /**\n * @type {CompileContext['enter']}\n * @template {Node} N\n * @this {CompileContext}\n * @param {N} node\n * @param {Token} token\n * @param {OnEnterError} [errorHandler]\n * @returns {N}\n */\n\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler]) // @ts-expect-error: `end` will be patched later.\n\n node.position = {\n start: point(token.start)\n }\n return node\n }\n /**\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function closer(and) {\n return close\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n /**\n * @type {CompileContext['exit']}\n * @this {CompileContext}\n * @param {Token} token\n * @param {OnExitError} [onExitError]\n * @returns {Node}\n */\n\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): its not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n\n node.position.end = point(token.end)\n return node\n }\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n\n function resume() {\n return toString(this.stack.pop())\n } //\n // Handlers.\n //\n\n /** @type {Handle} */\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n /** @type {Handle} */\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor =\n /** @type {List} */\n this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n /** @type {Handle} */\n\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.lang = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.meta = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n /** @type {Handle} */\n\n function onexitcodefenced() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n /** @type {Handle} */\n\n function onexitcodeindented() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n /** @type {Handle} */\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n const label = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitatxheadingsequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n /** @type {Handle} */\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n /** @type {Handle} */\n\n function onexitsetextheadinglinesequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n /** @type {Handle} */\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n /** @type {Handle} */\n\n function onenterdata(token) {\n const parent =\n /** @type {Parent} */\n this.stack[this.stack.length - 1]\n /** @type {Node} */\n\n let tail = parent.children[parent.children.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text() // @ts-expect-error: well add `end` later.\n\n tail.position = {\n start: point(token.start)\n } // @ts-expect-error: Assume `parent` accepts `text`.\n\n parent.children.push(tail)\n }\n\n this.stack.push(tail)\n }\n /** @type {Handle} */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n\n // If were at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n /** @type {Handle} */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n /** @type {Handle} */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexithtmltext() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitcodetext() {\n const data = this.resume()\n const node =\n /** @type {InlineCode} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitlink() {\n const context =\n /** @type {Link & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitimage() {\n const context =\n /** @type {Image & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitlabeltext(token) {\n const ancestor =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 2]\n const string = this.sliceSerialize(token)\n ancestor.label = decodeString(string)\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitlabel() {\n const fragment =\n /** @type {Fragment} */\n this.stack[this.stack.length - 1]\n const value = this.resume()\n const node =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // Assume a reference.\n\n setData('inReference', true)\n\n if (node.type === 'link') {\n // @ts-expect-error: Assume static phrasing content.\n node.children = fragment.children\n } else {\n node.alt = value\n }\n }\n /** @type {Handle} */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitresource() {\n setData('inReference')\n }\n /** @type {Handle} */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n /** @type {Handle} */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node =\n /** @type {LinkReference|ImageReference} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n // @ts-expect-error `decodeNamedCharacterReference` can return false for\n // invalid named character references, but everything weve tokenized is\n // valid.\n value = decodeNamedCharacterReference(data)\n }\n\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n /** @type {Handle} */\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n } //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n /** @returns {Code} */\n\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n /** @returns {InlineCode} */\n\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n /** @returns {Definition} */\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n /** @returns {Emphasis} */\n\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n /** @returns {Heading} */\n\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n /** @returns {Break} */\n\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n /** @returns {HTML} */\n\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n /** @returns {Image} */\n\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n /** @returns {Link} */\n\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {List}\n */\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n /** @returns {Paragraph} */\n\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n /** @returns {Strong} */\n\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n /** @returns {Text} */\n\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n /** @returns {ThematicBreak} */\n\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n/**\n * @param {Extension} combined\n * @param {Array<Extension|Array<Extension>>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n\n return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n /** @type {string} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n const list = key === 'canContainEols' || key === 'transforms'\n const maybe = own.call(combined, key) ? combined[key] : undefined\n /* c8 ignore next */\n\n const left = maybe || (combined[key] = list ? [] : {})\n const right = extension[key]\n\n if (right) {\n if (list) {\n // @ts-expect-error: `left` is an array.\n combined[key] = [...left, ...right]\n } else {\n Object.assign(left, right)\n }\n }\n }\n }\n}\n/** @type {OnEnterError} */\n\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\n */\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n /**\n * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri` below).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * Then, a regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`,\n * or `/^https?$/i` for `img[src]`.\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string|undefined} url\n * @param {RegExp} [protocol]\n * @returns {string}\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n\n if (!protocol) {\n return value\n }\n\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, its relative.\n colon < 0 || // If the first colon is after a `?`, `#`, or `/`, its not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) || // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n/**\n * Normalize a URL (such as used in definitions).\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n\n let replace = '' // A correct percent encoded value.\n\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n } // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n } // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1) // A correct surrogate pair.\n\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n } // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n } // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n\n if (skip) {\n index += skip\n skip = 0\n }\n }\n\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given nodes type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given nodes type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types.js').Action} Action\n * @typedef {import('./complex-types.js').Index} Index\n * @typedef {import('./complex-types.js').ActionTuple} ActionTuple\n * @typedef {import('./complex-types.js').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this nodes children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n * Tree to walk\n * @param [test]\n * `unist-util-is`-compatible test\n * @param visitor\n * Function called for nodes that pass `test`.\n * @param [reverse=false]\n * Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types.js').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types.js').Visitor<Node>} visitor\n * @param {boolean} [reverse=false]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n * Tree to walk\n * @param [test]\n * `unist-util-is`-compatible test\n * @param visitor\n * Function called for nodes that pass `test`.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types.js').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types.js').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {Record<string, unknown> & {type: string, position?: PositionLike|undefined}} NodeLike\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial<Point>} PointLike\n *\n * @typedef PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n */\n\nexport const pointStart = point('start')\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Position}\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start'|'end'} type\n */\nfunction point(type) {\n return point\n\n /**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record<string, Definition>} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Reference>} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splittings been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * <https://github.com/micromark/micromark-extension-footnote>\n// * <https://github.com/syntax-tree/mdast-util-footnote>\n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Footnote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnote(state, node) {\n const footnoteById = state.footnoteById\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(state, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Raw | Element | null}\n * hast node.\n */\nexport function html(state, node) {\n if (state.dangerous) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function imageReference(state, node) {\n const def = state.definition(node.identifier)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function linkReference(state, node) {\n const def = state.definition(node.identifier)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastRoot | HastElement}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start.line && end.line) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(node, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastText | HastElement}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract<MdastNodes, MdastParent>} MdastParents\n *\n * @typedef EmbeddedHastFields\n * hast fields.\n * @property {string | null | undefined} [hName]\n * Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n * Generate an element with these properties instead.\n * @property {Array<HastElementContent> | null | undefined} [hChildren]\n * Generate an element with this content instead.\n *\n * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData\n * mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n * mdast node with embedded hast data.\n *\n * @typedef PointLike\n * Point-like value.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @typedef PositionLike\n * Position-like value.\n * @property {PointLike | null | undefined} [start]\n * Point-like value.\n * @property {PointLike | null | undefined} [end]\n * Point-like value.\n *\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * hast node.\n *\n * @callback HFunctionProps\n * Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {HastProperties} props\n * Properties.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @callback HFunctionNoProps\n * Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @typedef HFields\n * Info on `state`.\n * @property {boolean} dangerous\n * Whether HTML is allowed.\n * @property {string} clobberPrefix\n * Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n * Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n * HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n * Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n * Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n * Definition cache.\n * @property {Record<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Record<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {Handler} unknownHandler\n * Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n * Copy a nodes positional info.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one\n * Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n * Like `state` but lower-level and usable on non-elements.\n * Deprecated: use `patch` and `applyData`.\n * @property {Array<string>} passThrough\n * List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute on footnotes to prevent it from\n * *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call (affects\n * screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (note that `id: 'footnote-label'`\n * is always added as footnote calls use it with `aria-describedby` to\n * provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes.\n * @property {Array<string> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record<string, Handler>} Handlers\n * Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n * Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Record<string, MdastFootnoteDefinition>} */\n const footnoteById = {}\n\n // To do: next major: add `options` to state, remove:\n // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n // `unknownHandler`.\n\n // To do: next major: move to `state.options.allowDangerousHtml`.\n state.dangerous = dangerous\n // To do: next major: move to `state.options`.\n state.clobberPrefix =\n settings.clobberPrefix === undefined || settings.clobberPrefix === null\n ? 'user-content-'\n : settings.clobberPrefix\n // To do: next major: move to `state.options`.\n state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n // To do: next major: move to `state.options`.\n state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n // To do: next major: move to `state.options`.\n state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n className: ['sr-only']\n }\n // To do: next major: move to `state.options`.\n state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n // To do: next major: move to `state.options`.\n state.unknownHandler = settings.unknownHandler\n // To do: next major: move to `state.options`.\n state.passThrough = settings.passThrough\n\n state.handlers = {...handlers, ...settings.handlers}\n\n // To do: next major: replace utility with `definitionById` object, so we\n // only walk once (as we need footnotes too).\n state.definition = definitions(tree)\n state.footnoteById = footnoteById\n /** @type {Array<string>} */\n state.footnoteOrder = []\n /** @type {Record<string, number>} */\n state.footnoteCounts = {}\n\n state.patch = patch\n state.applyData = applyData\n state.one = oneBound\n state.all = allBound\n state.wrap = wrap\n // To do: next major: remove `augment`.\n state.augment = augment\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, its fine!\n return state\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n *\n * @param {MdastNodeWithData | PositionLike | null | undefined} left\n * @param {HastElementContent} right\n * @returns {HastElementContent}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {MdastData} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n // @ts-expect-error: fine.\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n /* c8 ignore stop */\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function state(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n /* c8 ignore stop */\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n function oneBound(node, parent) {\n // @ts-expect-error: thats a state :)\n return one(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function allBound(parent) {\n // @ts-expect-error: thats a state :)\n return all(state, parent)\n }\n}\n\n/**\n * Copy a nodes positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {void}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {Type | HastElement}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {Type | HastElement} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent is likely to keep the content around (otherwise: pass\n // `hChildren`).\n else {\n result = {\n type: 'element',\n tagName: hName,\n properties: {},\n children: []\n }\n\n // To do: next major: take the children from the `root`, or inject the\n // raw/text/comment or so into the element?\n // if ('children' in node) {\n // // @ts-expect-error: assume `children` are allowed in elements.\n // result.children = node.children\n // } else {\n // // @ts-expect-error: assume `node` is allowed in elements.\n // result.children.push(node)\n // }\n }\n }\n\n if (result.type === 'element' && hProperties) {\n result.properties = {...result.properties, ...hProperties}\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n // @ts-expect-error: assume valid children are defined.\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n const type = node && node.type\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(state.handlers, type)) {\n return state.handlers[type](state, node, parent)\n }\n\n if (state.passThrough && state.passThrough.includes(type)) {\n // To do: next major: deep clone.\n // @ts-expect-error: types of passed through nodes are expected to be added manually.\n return 'children' in node ? {...node, children: all(state, node)} : node\n }\n\n if (state.unknownHandler) {\n return state.unknownHandler(state, node, parent)\n }\n\n return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = one(state, nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastText | HastElement}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastText | HastElement} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: all(state, node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n * Whether to add line endings at start and end.\n * @returns {Array<Type | HastText>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<Type | HastText>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n * Node to check.\n * @returns {boolean}\n * Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones dont:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isnt in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesnt have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If theres a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array<ElementContent>} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesnt seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * Its highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * Its likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array<string>} [allowedElements]\n * @property {Array<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n\n return undefined\n })\n }\n }\n}\n","/**\n * @param {unknown} thing\n * @returns {boolean}\n */\nexport function whitespace(thing) {\n /** @type {string} */\n var value =\n // @ts-ignore looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text'\n ? // @ts-ignore looks like a text.\n thing.value || ''\n : thing\n\n // HTML whitespace expression.\n // See <https://html.spec.whatwg.org/#space-character>.\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let prop = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","export const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * Parse space separated tokens to an array of strings.\n *\n * @param {string} value Space separated tokens\n * @returns {Array.<string>} Tokens\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated tokens.\n *\n * @param {Array.<string|number>} values Tokens\n * @returns {string} Space separated tokens\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {Object} StringifyOptions\n * @property {boolean} [padLeft=true] Whether to pad a space before a token (`boolean`, default: `true`).\n * @property {boolean} [padRight=false] Whether to pad a space after a token (`boolean`, default: `false`).\n */\n\n/**\n * Parse comma separated tokens to an array.\n *\n * @param {string} value\n * @returns {Array.<string>}\n */\nexport function parse(value) {\n /** @type {Array.<string>} */\n var tokens = []\n var input = String(value || '')\n var index = input.indexOf(',')\n var start = 0\n /** @type {boolean} */\n var end\n /** @type {string} */\n var token\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings to comma separated tokens.\n *\n * @param {Array.<string|number>} values\n * @param {StringifyOptions} [options]\n * @returns {string}\n */\nexport function stringify(values, options) {\n var settings = options || {}\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === '') {\n values = values.concat('')\n }\n\n return values\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","import StyleToObject from './index.js';\n\nexport default StyleToObject;\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType<T>} ComponentType<T>\n */\n\n/**\n * @template T\n * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps\n * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType<CodeProps>} CodeComponent\n * @typedef {ComponentType<HeadingProps>} HeadingComponent\n * @typedef {ComponentType<LiProps>} LiComponent\n * @typedef {ComponentType<OrderedListProps>} OrderedListComponent\n * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent\n * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent\n * @typedef {ComponentType<TableRowProps>} TableRowComponent\n * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableDataCellComponent|ReactMarkdownNames} td\n * @property {TableHeaderCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {uriTransformer} from './uri-transformer.js'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array<ReactNode>} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: <https://github.com/facebook/react/pull/7081>.\n // See: <https://github.com/facebook/react/pull/7515>.\n // See: <https://github.com/remarkjs/remark-react/issues/64>.\n // See: <https://github.com/remarkjs/react-markdown/issues/576>.\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n !whitespace(child)\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const transform =\n options.transformLinkUri === undefined\n ? uriTransformer\n : options.transformLinkUri\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Record<string, unknown>} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = [\n name,\n position.start.line,\n position.start.column,\n index\n ].join('-')\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && transform) {\n properties.href = transform(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Record<string, string>} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map(String)\n .join('')\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record<string, Deprecation>} */\nconst deprecated = {\n plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n .use(options.remarkPlugins || [])\n .use(remarkRehype, {\n ...options.remarkRehypeOptions,\n allowDangerousHtml: true\n })\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react'; // Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n\n return classNameCombinations[key];\n}\n\nexport function createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\nexport default function createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n\n if (!useInlineStyles) {\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []); // For compatibility with older versions of react-syntax-highlighter\n\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n\n var children = childrenCreator(node.children);\n return /*#__PURE__*/React.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return /*#__PURE__*/React.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\n\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n \"float\": 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return /*#__PURE__*/React.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\n\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n\n return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines;\n var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n properties['className'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread(_objectSpread({}, properties.style), {}, {\n display: 'flex'\n });\n }\n\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\n\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n flattenCodeTree(node.children, classNames).forEach(function (i) {\n return newTree.push(i);\n });\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines\n });\n }\n\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return children;\n }\n\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n }; // if it's the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n\n if (stringChild) {\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [lastLineInPreviousSpan];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it's neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segement\".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n\n // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n } // must be refractor/prism, then\n\n\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\n\nexport default function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, _excluded);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre-wrap'\n });\n } else {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre'\n });\n }\n\n if (!astGenerator) {\n return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n }\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n\n\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}","import highlight from './highlight';\nimport defaultStyle from './styles/prism/prism';\nimport refractor from 'refractor';\nimport supportedLanguages from './languages/prism/supported-languages';\nvar highlighter = highlight(refractor, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"black\",\n \"background\": \"none\",\n \"textShadow\": \"0 1px white\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"black\",\n \"background\": \"#f5f2f0\",\n \"textShadow\": \"0 1px white\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \".5em 0\",\n \"overflow\": \"auto\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#f5f2f0\",\n \"padding\": \".1em\",\n \"borderRadius\": \".3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"slategray\"\n },\n \"prolog\": {\n \"color\": \"slategray\"\n },\n \"doctype\": {\n \"color\": \"slategray\"\n },\n \"cdata\": {\n \"color\": \"slategray\"\n },\n \"punctuation\": {\n \"color\": \"#999\"\n },\n \"namespace\": {\n \"Opacity\": \".7\"\n },\n \"property\": {\n \"color\": \"#905\"\n },\n \"tag\": {\n \"color\": \"#905\"\n },\n \"boolean\": {\n \"color\": \"#905\"\n },\n \"number\": {\n \"color\": \"#905\"\n },\n \"constant\": {\n \"color\": \"#905\"\n },\n \"symbol\": {\n \"color\": \"#905\"\n },\n \"deleted\": {\n \"color\": \"#905\"\n },\n \"selector\": {\n \"color\": \"#690\"\n },\n \"attr-name\": {\n \"color\": \"#690\"\n },\n \"string\": {\n \"color\": \"#690\"\n },\n \"char\": {\n \"color\": \"#690\"\n },\n \"builtin\": {\n \"color\": \"#690\"\n },\n \"inserted\": {\n \"color\": \"#690\"\n },\n \"operator\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \"entity\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\",\n \"cursor\": \"help\"\n },\n \"url\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \".language-css .token.string\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \".style .token.string\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \"atrule\": {\n \"color\": \"#07a\"\n },\n \"attr-value\": {\n \"color\": \"#07a\"\n },\n \"keyword\": {\n \"color\": \"#07a\"\n },\n \"function\": {\n \"color\": \"#DD4A68\"\n },\n \"class-name\": {\n \"color\": \"#DD4A68\"\n },\n \"regex\": {\n \"color\": \"#e90\"\n },\n \"important\": {\n \"color\": \"#e90\",\n \"fontWeight\": \"bold\"\n },\n \"variable\": {\n \"color\": \"#e90\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n }\n};","export default (function (astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n});","//\n// This file has been auto-generated by the `npm run build-languages-prism` task\n//\nexport default ['abap', 'abnf', 'actionscript', 'ada', 'agda', 'al', 'antlr4', 'apacheconf', 'apex', 'apl', 'applescript', 'aql', 'arduino', 'arff', 'asciidoc', 'asm6502', 'asmatmel', 'aspnet', 'autohotkey', 'autoit', 'avisynth', 'avro-idl', 'bash', 'basic', 'batch', 'bbcode', 'bicep', 'birb', 'bison', 'bnf', 'brainfuck', 'brightscript', 'bro', 'bsl', 'c', 'cfscript', 'chaiscript', 'cil', 'clike', 'clojure', 'cmake', 'cobol', 'coffeescript', 'concurnas', 'coq', 'cpp', 'crystal', 'csharp', 'cshtml', 'csp', 'css-extras', 'css', 'csv', 'cypher', 'd', 'dart', 'dataweave', 'dax', 'dhall', 'diff', 'django', 'dns-zone-file', 'docker', 'dot', 'ebnf', 'editorconfig', 'eiffel', 'ejs', 'elixir', 'elm', 'erb', 'erlang', 'etlua', 'excel-formula', 'factor', 'false', 'firestore-security-rules', 'flow', 'fortran', 'fsharp', 'ftl', 'gap', 'gcode', 'gdscript', 'gedcom', 'gherkin', 'git', 'glsl', 'gml', 'gn', 'go-module', 'go', 'graphql', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hcl', 'hlsl', 'hoon', 'hpkp', 'hsts', 'http', 'ichigojam', 'icon', 'icu-message-format', 'idris', 'iecst', 'ignore', 'inform7', 'ini', 'io', 'j', 'java', 'javadoc', 'javadoclike', 'javascript', 'javastacktrace', 'jexl', 'jolie', 'jq', 'js-extras', 'js-templates', 'jsdoc', 'json', 'json5', 'jsonp', 'jsstacktrace', 'jsx', 'julia', 'keepalived', 'keyman', 'kotlin', 'kumir', 'kusto', 'latex', 'latte', 'less', 'lilypond', 'liquid', 'lisp', 'livescript', 'llvm', 'log', 'lolcode', 'lua', 'magma', 'makefile', 'markdown', 'markup-templating', 'markup', 'matlab', 'maxscript', 'mel', 'mermaid', 'mizar', 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', 'naniscript', 'nasm', 'neon', 'nevod', 'nginx', 'nim', 'nix', 'nsis', 'objectivec', 'ocaml', 'opencl', 'openqasm', 'oz', 'parigp', 'parser', 'pascal', 'pascaligo', 'pcaxis', 'peoplecode', 'perl', 'php-extras', 'php', 'phpdoc', 'plsql', 'powerquery', 'powershell', 'processing', 'prolog', 'promql', 'properties', 'protobuf', 'psl', 'pug', 'puppet', 'pure', 'purebasic', 'purescript', 'python', 'q', 'qml', 'qore', 'qsharp', 'r', 'racket', 'reason', 'regex', 'rego', 'renpy', 'rest', 'rip', 'roboconf', 'robotframework', 'ruby', 'rust', 'sas', 'sass', 'scala', 'scheme', 'scss', 'shell-session', 'smali', 'smalltalk', 'smarty', 'sml', 'solidity', 'solution-file', 'soy', 'sparql', 'splunk-spl', 'sqf', 'sql', 'squirrel', 'stan', 'stylus', 'swift', 'systemd', 't4-cs', 't4-templating', 't4-vb', 'tap', 'tcl', 'textile', 'toml', 'tremor', 'tsx', 'tt2', 'turtle', 'twig', 'typescript', 'typoscript', 'unrealscript', 'uorazor', 'uri', 'v', 'vala', 'vbnet', 'velocity', 'verilog', 'vhdl', 'vim', 'visual-basic', 'warpscript', 'wasm', 'web-idl', 'wiki', 'wolfram', 'wren', 'xeora', 'xml-doc', 'xojo', 'xquery', 'yaml', 'yang', 'zig'];","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"none\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#111b27\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \"0.5em 0\",\n \"overflow\": \"auto\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"#3c526d\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"background\": \"#3c526d\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"#3c526d\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"background\": \"#3c526d\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"#3c526d\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"background\": \"#3c526d\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"#3c526d\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"background\": \"#3c526d\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#111b27\",\n \"padding\": \"0.1em 0.3em\",\n \"borderRadius\": \"0.3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"#8da1b9\"\n },\n \"prolog\": {\n \"color\": \"#8da1b9\"\n },\n \"doctype\": {\n \"color\": \"#8da1b9\"\n },\n \"cdata\": {\n \"color\": \"#8da1b9\"\n },\n \"punctuation\": {\n \"color\": \"#e3eaf2\"\n },\n \"delimiter.important\": {\n \"color\": \"#66cccc\",\n \"fontWeight\": \"inherit\"\n },\n \"selector.parent\": {\n \"color\": \"#66cccc\"\n },\n \"tag\": {\n \"color\": \"#66cccc\"\n },\n \"tag.punctuation\": {\n \"color\": \"#66cccc\"\n },\n \"attr-name\": {\n \"color\": \"#e6d37a\"\n },\n \"boolean\": {\n \"color\": \"#e6d37a\"\n },\n \"boolean.important\": {\n \"color\": \"#e6d37a\"\n },\n \"number\": {\n \"color\": \"#e6d37a\"\n },\n \"constant\": {\n \"color\": \"#e6d37a\"\n },\n \"selector.attribute\": {\n \"color\": \"#e6d37a\"\n },\n \"class-name\": {\n \"color\": \"#6cb8e6\"\n },\n \"key\": {\n \"color\": \"#6cb8e6\"\n },\n \"parameter\": {\n \"color\": \"#6cb8e6\"\n },\n \"property\": {\n \"color\": \"#6cb8e6\"\n },\n \"property-access\": {\n \"color\": \"#6cb8e6\"\n },\n \"variable\": {\n \"color\": \"#6cb8e6\"\n },\n \"attr-value\": {\n \"color\": \"#91d076\"\n },\n \"inserted\": {\n \"color\": \"#91d076\"\n },\n \"color\": {\n \"color\": \"#91d076\"\n },\n \"selector.value\": {\n \"color\": \"#91d076\"\n },\n \"string\": {\n \"color\": \"#91d076\"\n },\n \"string.url-link\": {\n \"color\": \"#91d076\"\n },\n \"builtin\": {\n \"color\": \"#f4adf4\"\n },\n \"keyword-array\": {\n \"color\": \"#f4adf4\"\n },\n \"package\": {\n \"color\": \"#f4adf4\"\n },\n \"regex\": {\n \"color\": \"#f4adf4\"\n },\n \"function\": {\n \"color\": \"#c699e3\"\n },\n \"selector.class\": {\n \"color\": \"#c699e3\"\n },\n \"selector.id\": {\n \"color\": \"#c699e3\"\n },\n \"atrule.rule\": {\n \"color\": \"#e9ae7e\"\n },\n \"combinator\": {\n \"color\": \"#e9ae7e\"\n },\n \"keyword\": {\n \"color\": \"#e9ae7e\"\n },\n \"operator\": {\n \"color\": \"#e9ae7e\"\n },\n \"pseudo-class\": {\n \"color\": \"#e9ae7e\"\n },\n \"pseudo-element\": {\n \"color\": \"#e9ae7e\"\n },\n \"selector\": {\n \"color\": \"#e9ae7e\"\n },\n \"unit\": {\n \"color\": \"#e9ae7e\"\n },\n \"deleted\": {\n \"color\": \"#cd6660\"\n },\n \"important\": {\n \"color\": \"#cd6660\",\n \"fontWeight\": \"bold\"\n },\n \"keyword-this\": {\n \"color\": \"#6cb8e6\",\n \"fontWeight\": \"bold\"\n },\n \"this\": {\n \"color\": \"#6cb8e6\",\n \"fontWeight\": \"bold\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n },\n \"entity\": {\n \"cursor\": \"help\"\n },\n \".language-markdown .token.title\": {\n \"color\": \"#6cb8e6\",\n \"fontWeight\": \"bold\"\n },\n \".language-markdown .token.title .token.punctuation\": {\n \"color\": \"#6cb8e6\",\n \"fontWeight\": \"bold\"\n },\n \".language-markdown .token.blockquote.punctuation\": {\n \"color\": \"#f4adf4\"\n },\n \".language-markdown .token.code\": {\n \"color\": \"#66cccc\"\n },\n \".language-markdown .token.hr.punctuation\": {\n \"color\": \"#6cb8e6\"\n },\n \".language-markdown .token.url .token.content\": {\n \"color\": \"#91d076\"\n },\n \".language-markdown .token.url-link\": {\n \"color\": \"#e6d37a\"\n },\n \".language-markdown .token.list.punctuation\": {\n \"color\": \"#f4adf4\"\n },\n \".language-markdown .token.table-header\": {\n \"color\": \"#e3eaf2\"\n },\n \".language-json .token.operator\": {\n \"color\": \"#e3eaf2\"\n },\n \".language-scss .token.variable\": {\n \"color\": \"#66cccc\"\n },\n \"token.tab:not(:empty):before\": {\n \"color\": \"#8da1b9\"\n },\n \"token.cr:before\": {\n \"color\": \"#8da1b9\"\n },\n \"token.lf:before\": {\n \"color\": \"#8da1b9\"\n },\n \"token.space:before\": {\n \"color\": \"#8da1b9\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6da\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6da\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6da\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6da\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n \"color\": \"#111b27\",\n \"background\": \"#8da1b9\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n \"color\": \"#111b27\",\n \"background\": \"#8da1b9\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n \"color\": \"#111b27\",\n \"background\": \"#8da1b9\"\n },\n \".line-highlight.line-highlight\": {\n \"background\": \"linear-gradient(to right, #3c526d5f 70%, #3c526d55)\"\n },\n \".line-highlight.line-highlight:before\": {\n \"backgroundColor\": \"#8da1b9\",\n \"color\": \"#111b27\",\n \"boxShadow\": \"0 1px #3c526d\"\n },\n \".line-highlight.line-highlight[data-end]:after\": {\n \"backgroundColor\": \"#8da1b9\",\n \"color\": \"#111b27\",\n \"boxShadow\": \"0 1px #3c526d\"\n },\n \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n \"backgroundColor\": \"#8da1b918\"\n },\n \".line-numbers.line-numbers .line-numbers-rows\": {\n \"borderRight\": \"1px solid #0b121b\",\n \"background\": \"#0b121b7a\"\n },\n \".line-numbers .line-numbers-rows > span:before\": {\n \"color\": \"#8da1b9da\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n \"color\": \"#e6d37a\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n \"color\": \"#e6d37a\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n \"color\": \"#e6d37a\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n \"color\": \"#f4adf4\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n \"color\": \"#f4adf4\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n \"color\": \"#f4adf4\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n \"color\": \"#6cb8e6\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n \"color\": \"#6cb8e6\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n \"color\": \"#6cb8e6\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n \"color\": \"#c699e3\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n \"color\": \"#c699e3\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n \"color\": \"#c699e3\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"#cd66601f\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"#cd66601f\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"#91d0761f\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"#91d0761f\"\n },\n \".command-line .command-line-prompt\": {\n \"borderRight\": \"1px solid #0b121b\"\n },\n \".command-line .command-line-prompt > span:before\": {\n \"color\": \"#8da1b9da\"\n }\n};","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiControl,\n asciiDigit,\n markdownLineEndingOrSpace,\n markdownLineEnding,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nconst www = {\n tokenize: tokenizeWww,\n partial: true\n}\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n}\nconst path = {\n tokenize: tokenizePath,\n partial: true\n}\nconst punctuation = {\n tokenize: tokenizePunctuation,\n partial: true\n}\nconst namedCharacterReference = {\n tokenize: tokenizeNamedCharacterReference,\n partial: true\n}\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n}\nconst httpAutolink = {\n tokenize: tokenizeHttpAutolink,\n previous: previousHttp\n}\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n}\n/** @type {ConstructRecord} */\n\nconst text = {}\n/** @type {Extension} */\n\nexport const gfmAutolinkLiteral = {\n text\n}\nlet code = 48 // Add alphanumerics.\n\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n if (code === 58) code = 65\n else if (code === 91) code = 97\n}\n\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n/** @type {Tokenizer} */\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean} */\n\n let hasDot\n /** @type {boolean|undefined} */\n\n let hasDigitInLastSegment\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n /** @type {State} */\n\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n if (code === 64) {\n effects.consume(code)\n return label\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (code === 46) {\n return effects.check(punctuation, done, dotContinuation)(code)\n }\n\n if (code === 45 || code === 95) {\n return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n }\n\n if (asciiAlphanumeric(code)) {\n if (!hasDigitInLastSegment && asciiDigit(code)) {\n hasDigitInLastSegment = true\n }\n\n effects.consume(code)\n return label\n }\n\n return done(code)\n }\n /** @type {State} */\n\n function dotContinuation(code) {\n effects.consume(code)\n hasDot = true\n hasDigitInLastSegment = undefined\n return label\n }\n /** @type {State} */\n\n function dashOrUnderscoreContinuation(code) {\n effects.consume(code)\n return afterDashOrUnderscore\n }\n /** @type {State} */\n\n function afterDashOrUnderscore(code) {\n if (code === 46) {\n return effects.check(punctuation, nok, dotContinuation)(code)\n }\n\n return label(code)\n }\n /** @type {State} */\n\n function done(code) {\n if (hasDot && !hasDigitInLastSegment) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n (code !== 87 && code !== 119) ||\n !previousWww(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww') // For `www.` we check instead of attempt, because when it matches, GH\n // treats it as part of a domain (yes, it says a valid domain must come\n // after `www.`, but thats not how its implemented by them).\n\n return effects.check(\n www,\n effects.attempt(domain, effects.attempt(path, done), nok),\n nok\n )(code)\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n (code !== 72 && code !== 104) ||\n !previousHttp(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n effects.consume(code)\n return t1\n }\n /** @type {State} */\n\n function t1(code) {\n if (code === 84 || code === 116) {\n effects.consume(code)\n return t2\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function t2(code) {\n if (code === 84 || code === 116) {\n effects.consume(code)\n return p\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function p(code) {\n if (code === 80 || code === 112) {\n effects.consume(code)\n return s\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function s(code) {\n if (code === 83 || code === 115) {\n effects.consume(code)\n return colon\n }\n\n return colon(code)\n }\n /** @type {State} */\n\n function colon(code) {\n if (code === 58) {\n effects.consume(code)\n return slash1\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function slash1(code) {\n if (code === 47) {\n effects.consume(code)\n return slash2\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function slash2(code) {\n if (code === 47) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null ||\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWww(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return w2\n }\n /** @type {State} */\n\n function w2(code) {\n if (code === 87 || code === 119) {\n effects.consume(code)\n return w3\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function w3(code) {\n if (code === 87 || code === 119) {\n effects.consume(code)\n return dot\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function dot(code) {\n if (code === 46) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean|undefined} */\n let hasUnderscoreInLastSegment\n /** @type {boolean|undefined} */\n\n let hasUnderscoreInLastLastSegment\n return domain\n /** @type {State} */\n\n function domain(code) {\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n done,\n punctuationContinuation\n )(code)\n }\n\n if (code === 46 || code === 95) {\n return effects.check(punctuation, done, punctuationContinuation)(code)\n } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so thats Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n\n if (\n code === null ||\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 && unicodePunctuation(code))\n ) {\n return done(code)\n }\n\n effects.consume(code)\n return domain\n }\n /** @type {State} */\n\n function punctuationContinuation(code) {\n if (code === 46) {\n hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n hasUnderscoreInLastSegment = undefined\n effects.consume(code)\n return domain\n }\n\n if (code === 95) hasUnderscoreInLastSegment = true\n effects.consume(code)\n return domain\n }\n /** @type {State} */\n\n function done(code) {\n if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePath(effects, ok) {\n let balance = 0\n return inPath\n /** @type {State} */\n\n function inPath(code) {\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n ok,\n continuedPunctuation\n )(code)\n }\n\n if (code === 40) {\n balance++\n }\n\n if (code === 41) {\n return effects.check(\n punctuation,\n parenAtPathEnd,\n continuedPunctuation\n )(code)\n }\n\n if (pathEnd(code)) {\n return ok(code)\n }\n\n if (trailingPunctuation(code)) {\n return effects.check(punctuation, ok, continuedPunctuation)(code)\n }\n\n effects.consume(code)\n return inPath\n }\n /** @type {State} */\n\n function continuedPunctuation(code) {\n effects.consume(code)\n return inPath\n }\n /** @type {State} */\n\n function parenAtPathEnd(code) {\n balance--\n return balance < 0 ? ok(code) : continuedPunctuation(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return inside\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return inside\n }\n\n if (code === 59) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n // If the named character reference is followed by the end of the path, its\n // not continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePunctuation(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return after\n }\n /** @type {State} */\n\n function after(code) {\n // Check the next.\n if (trailingPunctuation(code)) {\n effects.consume(code)\n return after\n } // If the punctuation marker is followed by the end of the path, its not\n // continued punctuation.\n\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction trailingPunctuation(code) {\n return (\n code === 33 ||\n code === 34 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 60 ||\n code === 63 ||\n code === 95 ||\n code === 126\n )\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction pathEnd(code) {\n return code === null || code === 60 || markdownLineEndingOrSpace(code)\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction gfmAtext(code) {\n return (\n code === 43 ||\n code === 45 ||\n code === 46 ||\n code === 95 ||\n asciiAlphanumeric(code)\n )\n}\n/** @type {Previous} */\n\nfunction previousWww(code) {\n return (\n code === null ||\n code === 40 ||\n code === 42 ||\n code === 95 ||\n code === 126 ||\n markdownLineEndingOrSpace(code)\n )\n}\n/** @type {Previous} */\n\nfunction previousHttp(code) {\n return code === null || !asciiAlpha(code)\n}\n/** @type {Previous} */\n\nfunction previousEmail(code) {\n return code !== 47 && previousHttp(code)\n}\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\n\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n\n while (index--) {\n const token = events[index][1]\n\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n } // @ts-expect-error If weve seen this token, and it was marked as not\n // having any unbalanced bracket before it, we can exit.\n\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n\n if (events.length > 0 && !result) {\n // @ts-expect-error Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n\n return result\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @returns {Extension}\n */\n\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Array<string>} */\n // @ts-expect-error Its fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {Token} */\n\n let labelStart // Find an opening.\n\n while (index--) {\n const token = self.events[index][1]\n\n if (token.type === 'labelImage') {\n labelStart = token\n break\n } // Exit if weve walked far enough.\n\n if (\n token.type === 'gfmFootnoteCall' ||\n token.type === 'labelLink' ||\n token.type === 'label' ||\n token.type === 'image' ||\n token.type === 'link'\n ) {\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code)\n }\n\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n\n if (id.charCodeAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code)\n }\n\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return ok(code)\n }\n}\n/** @type {Resolver} */\n\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length\n /** @type {Token|undefined} */\n\n let labelStart // Find an opening.\n\n while (index--) {\n if (\n events[index][1].type === 'labelImage' &&\n events[index][0] === 'enter'\n ) {\n labelStart = events[index][1]\n break\n }\n }\n\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = 'data'\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker' // The whole (without `!`):\n\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // The `^` marker\n\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n } // Increment the end 1 character.\n\n marker.end.column++\n marker.end.offset++\n marker.end._bufferIndex++\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n }\n const chunk = {\n type: 'chunkString',\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n }\n /** @type {Array<Event>} */\n\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n ['enter', call, context], // The `[`\n events[index + 3],\n events[index + 4], // The `^`.\n ['enter', marker, context],\n ['exit', marker, context], // Everything in between.\n ['enter', string, context],\n ['enter', chunk, context],\n ['exit', chunk, context],\n ['exit', string, context], // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n ['exit', call, context]\n ]\n events.splice(index, events.length - index + 1, ...replacement)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this\n /** @type {Array<string>} */\n // @ts-expect-error Its fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('gfmFootnoteCall')\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return callStart\n }\n /** @type {State} */\n\n function callStart(code) {\n if (code !== 94) return nok(code)\n effects.enter('gfmFootnoteCallMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallMarker')\n effects.enter('gfmFootnoteCallString')\n effects.enter('chunkString').contentType = 'string'\n return callData\n }\n /** @type {State} */\n\n function callData(code) {\n /** @type {Token} */\n let token\n\n if (code === null || code === 91 || size++ > 999) {\n return nok(code)\n }\n\n if (code === 93) {\n if (!data) {\n return nok(code)\n }\n\n effects.exit('chunkString')\n token = effects.exit('gfmFootnoteCallString')\n return defined.includes(normalizeIdentifier(self.sliceSerialize(token)))\n ? end(code)\n : nok(code)\n }\n\n effects.consume(code)\n\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n\n return code === 92 ? callEscape : callData\n }\n /** @type {State} */\n\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return callData\n }\n\n return callData(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n effects.exit('gfmFootnoteCall')\n return ok\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this\n /** @type {Array<string>} */\n // @ts-expect-error Its fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {string} */\n\n let identifier\n let size = 0\n /** @type {boolean|undefined} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true\n effects.enter('gfmFootnoteDefinitionLabel')\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n return labelStart\n }\n /** @type {State} */\n\n function labelStart(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionMarker')\n effects.enter('gfmFootnoteDefinitionLabelString')\n return atBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n /** @type {Token} */\n let token\n\n if (code === null || code === 91 || size > 999) {\n return nok(code)\n }\n\n if (code === 93) {\n if (!data) {\n return nok(code)\n }\n\n token = effects.exit('gfmFootnoteDefinitionLabelString')\n identifier = normalizeIdentifier(self.sliceSerialize(token))\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n effects.exit('gfmFootnoteDefinitionLabel')\n return labelAfter\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n size++\n return atBreak\n }\n\n effects.enter('chunkString').contentType = 'string'\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n markdownLineEnding(code) ||\n code === 91 ||\n code === 93 ||\n size > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n\n size++\n effects.consume(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n\n return factorySpace(effects, done, 'gfmFootnoteDefinitionWhitespace')\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function done(code) {\n if (!defined.includes(identifier)) {\n defined.push(identifier)\n }\n\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n/** @type {Exiter} */\n\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition')\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'gfmFootnoteDefinitionIndent',\n 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === 4\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef Options\n * Configuration (optional).\n * @property {boolean} [singleTilde=true]\n * Whether to support strikethrough with a single tilde (`boolean`, default:\n * `true`).\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfmStrikethrough(options = {}) {\n let single = options.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n }\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n\n function resolveAllStrikethrough(events, context) {\n let index = -1 // Walk through all events.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n let open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n } // Opening.\n\n const nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ] // Between.\n\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n /** @type {Tokenizer} */\n\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape'\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n /** @type {State} */\n\n function more(code) {\n const before = classifyCharacter(previous)\n\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open = !after || (after === 2 && Boolean(before))\n token._close = !before || (before === 2 && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n */\n\n/**\n * @typedef {'left'|'center'|'right'|'none'} Align\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Extension} */\nexport const gfmTable = {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolve: resolveTable\n }\n }\n}\nconst nextPrefixedOrBlank = {\n tokenize: tokenizeNextPrefixedOrBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1\n /** @type {boolean|undefined} */\n\n let inHead\n /** @type {boolean|undefined} */\n\n let inDelimiterRow\n /** @type {boolean|undefined} */\n\n let inRow\n /** @type {number|undefined} */\n\n let contentStart\n /** @type {number|undefined} */\n\n let contentEnd\n /** @type {number|undefined} */\n\n let cellStart\n /** @type {boolean|undefined} */\n\n let seenCellInRow\n\n while (++index < events.length) {\n const token = events[index][1]\n\n if (inRow) {\n if (token.type === 'temporaryTableCellContent') {\n contentStart = contentStart || index\n contentEnd = index\n }\n\n if (\n // Combine separate content parts into one.\n (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n contentEnd\n ) {\n const content = {\n type: 'tableContent',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n /** @type {Token} */\n\n const text = {\n type: 'chunkText',\n start: content.start,\n end: content.end,\n // @ts-expect-error Its fine.\n contentType: 'text'\n }\n events.splice(\n contentStart,\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n )\n index -= contentEnd - contentStart - 3\n contentStart = undefined\n contentEnd = undefined\n }\n }\n\n if (\n events[index][0] === 'exit' &&\n cellStart !== undefined &&\n cellStart + (seenCellInRow ? 0 : 1) < index &&\n (token.type === 'tableCellDivider' ||\n (token.type === 'tableRow' &&\n (cellStart + 3 < index ||\n events[cellStart][1].type !== 'whitespace')))\n ) {\n const cell = {\n type: inDelimiterRow\n ? 'tableDelimiter'\n : inHead\n ? 'tableHeader'\n : 'tableData',\n start: events[cellStart][1].start,\n end: events[index][1].end\n }\n events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n 'exit',\n cell,\n context\n ])\n events.splice(cellStart, 0, ['enter', cell, context])\n index += 2\n cellStart = index + 1\n seenCellInRow = true\n }\n\n if (token.type === 'tableRow') {\n inRow = events[index][0] === 'enter'\n\n if (inRow) {\n cellStart = index + 1\n seenCellInRow = false\n }\n }\n\n if (token.type === 'tableDelimiterRow') {\n inDelimiterRow = events[index][0] === 'enter'\n\n if (inDelimiterRow) {\n cellStart = index + 1\n seenCellInRow = false\n }\n }\n\n if (token.type === 'tableHead') {\n inHead = events[index][0] === 'enter'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n /** @type {Array<Align>} */\n\n const align = []\n let tableHeaderCount = 0\n /** @type {boolean|undefined} */\n\n let seenDelimiter\n /** @type {boolean|undefined} */\n\n let hasDash\n return start\n /** @type {State} */\n\n function start(code) {\n // @ts-expect-error Custom.\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent') // Cant be space or eols at the start of a construct, so were in a cell.\n\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function cellDividerHead(code) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n /** @type {State} */\n\n function cellBreakHead(code) {\n if (code === null || markdownLineEnding(code)) {\n return atRowEndHead(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n if (code === 124) {\n return cellDividerHead(code)\n } // Anything else is cell content.\n\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function inWhitespaceHead(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n /** @type {State} */\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n /** @type {State} */\n\n function inCellContentEscapeHead(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n } // Anything else.\n\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n const originalInterrupt = self.interrupt\n self.interrupt = true\n return effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n function (code) {\n self.interrupt = originalInterrupt\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n },\n function (code) {\n self.interrupt = originalInterrupt\n return nok(code)\n }\n )(code)\n }\n /** @type {State} */\n\n function atDelimiterRowBreak(code) {\n if (code === null || markdownLineEnding(code)) {\n return rowEndDelimiter(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n align.push('none')\n return inFillerDelimiter\n }\n\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n } // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inWhitespaceDelimiter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function inFillerDelimiter(code) {\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function afterLeftAlignment(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n } // Anything else is not ok.\n\n return nok(code)\n }\n /** @type {State} */\n\n function afterRightAlignment(code) {\n if (code === null || markdownLineEnding(code)) {\n return rowEndDelimiter(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n } // `|`\n\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow') // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\n\n if (!hasDash || tableHeaderCount !== align.length) {\n return nok(code)\n }\n\n if (code === null) {\n return tableClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableClose,\n effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n factorySpace(effects, bodyStart, 'linePrefix', 4),\n tableClose\n )\n )(code)\n }\n /** @type {State} */\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n /** @type {State} */\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n /** @type {State} */\n\n function rowStartBody(code) {\n effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent') // Cant be space or eols at the start of a construct, so were in a cell.\n\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function cellDividerBody(code) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n /** @type {State} */\n\n function cellBreakBody(code) {\n if (code === null || markdownLineEnding(code)) {\n return atRowEndBody(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n } // `|`\n\n if (code === 124) {\n return cellDividerBody(code)\n } // Anything else is cell content.\n\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function inWhitespaceBody(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n /** @type {State} */\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n /** @type {State} */\n\n function inCellContentEscapeBody(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n } // Anything else.\n\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function atRowEndBody(code) {\n effects.exit('tableRow')\n\n if (code === null) {\n return tableBodyClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableBodyClose,\n effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n factorySpace(effects, rowStartBody, 'linePrefix', 4),\n tableBodyClose\n )\n )(code)\n }\n /** @type {State} */\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeRowEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n // Blank or interrupting line.\n if (\n self.parser.lazy[self.now().line] ||\n code === null ||\n markdownLineEnding(code)\n ) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1] // Indented code can interrupt delimiter and body rows.\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return nok(code)\n }\n\n self._gfmTableDynamicInterruptHack = true\n return effects.check(\n self.parser.constructs.flow,\n function (code) {\n self._gfmTableDynamicInterruptHack = false\n return nok(code)\n },\n function (code) {\n self._gfmTableDynamicInterruptHack = false\n return ok(code)\n }\n )(code)\n }\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n // This is a check, so we dont care about tokens, but we open a bogus one\n // so were valid.\n effects.enter('check') // EOL.\n\n effects.consume(code)\n return whitespace\n }\n /** @type {State} */\n\n function whitespace(code) {\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n } // EOF or whitespace\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n return ok(code)\n } // Anything else.\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n}\nexport const gfmTaskListItem = {\n text: {\n [91]: tasklistCheck\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n return open\n /** @type {State} */\n\n function open(code) {\n if (\n // Exit if theres stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n /** @type {State} */\n\n function inside(code) {\n // To match how GH works in comments, use `markdownSpace` (`[ \\t]`) instead\n // of `markdownLineEndingOrSpace` (`[ \\t\\r\\n]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n const self = this\n return factorySpace(effects, after, 'whitespace')\n /** @type {State} */\n\n function after(code) {\n const tail = self.events[self.events.length - 1]\n return (\n // We either found spaces…\n ((tail && tail[1].type === 'whitespace') || // …or it was followed by a line ending, in which case, there has to be\n // non-whitespace after that line ending, because otherwise wed get an\n // EOF as the content is closed with blank lines.\n markdownLineEnding(code)) &&\n code !== null\n ? ok(code)\n : nok(code)\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Support GFM or markdown on github.com.\n *\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral,\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable,\n gfmTaskListItem\n ])\n}\n\n/**\n * Support to compile GFM to HTML.\n *\n * @param {HtmlOptions} [options]\n * @returns {HtmlExtension}\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml,\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml,\n gfmTableHtml,\n gfmTagfilterHtml,\n gfmTaskListItemHtml\n ])\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {Test} [ignore]\n * `unist-util-is` test used to assert parents\n *\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {Content|Root} Node\n * @typedef {Exclude<Extract<Node, import('mdast').Parent>, Root>} Parent\n *\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n *\n * @typedef RegExpMatchObject\n * @property {number} index\n * @property {string} input\n * @property {[Root, ...Array<Parent>, Text]} stack\n *\n * @typedef {string|RegExp} Find\n * @typedef {string|ReplaceFunction} Replace\n *\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * @typedef {Record<string, Replace>} FindAndReplaceSchema\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * @typedef {Array<Pair>} Pairs\n */\n\n/**\n * @callback ReplaceFunction\n * @param {...any} parameters\n * @returns {Array<PhrasingContent>|PhrasingContent|string|false|undefined|null}\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param tree mdast tree\n * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp`\n * @param [replace] Value to insert.\n * * When `string`, turned into a Text node.\n * * When `Function`, called with the results of calling `RegExp.exec` as\n * arguments, in which case it can return a single or a list of `Node`,\n * a `string` (which is wrapped in a `Text` node), or `false` to not replace\n * @param [options] Configuration.\n */\nexport const findAndReplace =\n /**\n * @type {(\n * ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) &\n * ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node)\n * )}\n **/\n (\n /**\n * @param {Node} tree\n * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find\n * @param {Replace|Options} [replace]\n * @param {Options} [options]\n */\n function (tree, find, replace, options) {\n /** @type {Options|undefined} */\n let settings\n /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n let schema\n\n if (typeof find === 'string' || find instanceof RegExp) {\n // @ts-expect-error dont expect options twice.\n schema = [[find, replace]]\n settings = options\n } else {\n schema = find\n // @ts-expect-error dont expect replace twice.\n settings = replace\n }\n\n if (!settings) {\n settings = {}\n }\n\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(schema)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n return tree\n\n /** @type {import('unist-util-visit-parents/complex-types').BuildVisitor<Root, 'text'>} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parent|undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = /** @type {Parent} */ (parents[index])\n\n if (\n ignored(\n parent,\n // @ts-expect-error mdast vs. unist parent.\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n // @ts-expect-error: stack is fine.\n return handler(node, parents)\n }\n }\n\n /**\n * @param {Text} node\n * @param {[Root, ...Array<Parent>]} parents\n * @returns {VisitorResult}\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n // @ts-expect-error: TS is wrong, some of these children can be text.\n const index = parent.children.indexOf(node)\n let change = false\n /** @type {Array<PhrasingContent>} */\n let nodes = []\n /** @type {number|undefined} */\n let position\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n if (value !== false) {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n }\n )\n\n/**\n * @param {FindAndReplaceSchema|FindAndReplaceList} schema\n * @returns {Pairs}\n */\nfunction toPairs(schema) {\n /** @type {Pairs} */\n const result = []\n\n if (typeof schema !== 'object') {\n throw new TypeError('Expected array or object as schema')\n }\n\n if (Array.isArray(schema)) {\n let index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n /** @type {string} */\n let key\n\n for (key in schema) {\n if (own.call(schema, key)) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n }\n\n return result\n}\n\n/**\n * @param {Find} find\n * @returns {RegExp}\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * @param {Replace} replace\n * @returns {ReplaceFunction}\n */\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when its always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent\n */\n\nimport {ccount} from 'ccount'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\n\nconst inConstruct = 'phrasing'\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/** @type {FromMarkdownExtension} */\nexport const gfmAutolinkLiteralFromMarkdown = {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmAutolinkLiteralToMarkdown = {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {character: ':', before: '[ps]', after: '\\\\/', inConstruct, notInConstruct}\n ]\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = /** @type {Link} */ (this.stack[this.stack.length - 1])\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {PhrasingContent} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[_-\\d]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string|undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n /** @type {number} */\n let closingParenIndex\n /** @type {number} */\n let openingParens\n /** @type {number} */\n let closingParens\n /** @type {string|undefined} */\n let trail\n\n if (trailExec) {\n url = url.slice(0, trailExec.index)\n trail = trailExec[0]\n closingParenIndex = trail.indexOf(')')\n openingParens = ccount(url, '(')\n closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","/**\n * @typedef {import('mdast').Association} Association\n */\n\nimport {decodeString} from 'micromark-util-decode-string'\n\n/**\n * The `label` of an association is the string value: character escapes and\n * references work, and casing is intact.\n * The `identifier` is used to match one association to another: controversially,\n * character escapes and references dont work in this matching: `&copy;` does\n * not match `©`, and `\\+` does not match `+`.\n * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\\nb`\n * matches `a b`.\n * So, we do prefer the label when figuring out how were going to serialize:\n * it has whitespace, casing, and we can ignore most useless character escapes\n * and all character references.\n *\n * @param {Association} node\n * @returns {string}\n */\nexport function association(node) {\n if (node.label || !node.identifier) {\n return node.label || ''\n }\n\n return decodeString(node.identifier)\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\n/**\n * Functions to track output positions.\n * This info isnt used yet but suchs functionality allows line wrapping,\n * and theoretically source maps (though, is there practical use in that?).\n *\n * @param {TrackFields} options_\n */\nexport function track(options_) {\n // Defaults are used to prevent crashes when older utilities somehow activate\n // this code.\n /* c8 ignore next 5 */\n const options = options_ || {}\n const now = options.now || {}\n let lineShift = options.lineShift || 0\n let line = now.line || 1\n let column = now.column || 1\n\n return {move, current, shift}\n\n /**\n * Get the current tracked info.\n *\n * @returns {{now: Point, lineShift: number}}\n */\n function current() {\n return {now: {line, column}, lineShift}\n }\n\n /**\n * Define an increased line shift (the typical indent for lines).\n *\n * @param {number} value\n */\n function shift(value) {\n lineShift += value\n }\n\n /**\n * Move past a string.\n *\n * @param {string} value\n * @returns {string}\n */\n function move(value = '') {\n const chunks = value.split(/\\r?\\n|\\r/g)\n const tail = chunks[chunks.length - 1]\n line += chunks.length - 1\n column =\n chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift\n return value\n }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Join} Join\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {TrackFields} safeOptions\n * @returns {string}\n */\nexport function containerFlow(parent, context, safeOptions) {\n const indexStack = context.indexStack\n const children = parent.children || []\n const tracker = track(safeOptions)\n /** @type {Array<string>} */\n const results = []\n let index = -1\n\n indexStack.push(-1)\n\n while (++index < children.length) {\n const child = children[index]\n\n indexStack[indexStack.length - 1] = index\n\n results.push(\n tracker.move(\n context.handle(child, parent, context, {\n before: '\\n',\n after: '\\n',\n ...tracker.current()\n })\n )\n )\n\n if (child.type !== 'list') {\n context.bulletLastUsed = undefined\n }\n\n if (index < children.length - 1) {\n results.push(tracker.move(between(child, children[index + 1])))\n }\n }\n\n indexStack.pop()\n\n return results.join('')\n\n /**\n * @param {Node} left\n * @param {Node} right\n * @returns {string}\n */\n function between(left, right) {\n let index = context.join.length\n\n while (index--) {\n const result = context.join[index](left, right, parent, context)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return '\\n'.repeat(1 + result)\n }\n\n if (result === false) {\n return '\\n\\n<!---->\\n\\n'\n }\n }\n\n return '\\n\\n'\n }\n}\n","/**\n * @callback Map\n * @param {string} value\n * @param {number} line\n * @param {boolean} blank\n * @returns {string}\n */\n\nconst eol = /\\r?\\n|\\r/g\n\n/**\n * @param {string} value\n * @param {Map} map\n * @returns {string}\n */\nexport function indentLines(value, map) {\n /** @type {Array<string>} */\n const result = []\n let start = 0\n let line = 0\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n /**\n * @param {string} value\n */\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Unsafe} pattern\n * @returns {RegExp}\n */\nexport function patternCompile(pattern) {\n if (!pattern._compiled) {\n const before =\n (pattern.atBreak ? '[\\\\r\\\\n][\\\\t ]*' : '') +\n (pattern.before ? '(?:' + pattern.before + ')' : '')\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (pattern.after ? '(?:' + pattern.after + ')' : ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array<string>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array<string>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (!list) {\n return none\n }\n\n if (typeof list === 'string') {\n list = [list]\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n */\n\nimport {patternCompile} from './pattern-compile.js'\nimport {patternInScope} from './pattern-in-scope.js'\n\n/**\n * @param {Context} context\n * @param {string|null|undefined} input\n * @param {SafeOptions & {encode?: Array<string>}} config\n * @returns {string}\n */\nexport function safe(context, input, config) {\n const value = (config.before || '') + (input || '') + (config.after || '')\n /** @type {Array<number>} */\n const positions = []\n /** @type {Array<string>} */\n const result = []\n /** @type {Record<number, {before: boolean, after: boolean}>} */\n const infos = {}\n let index = -1\n\n while (++index < context.unsafe.length) {\n const pattern = context.unsafe[index]\n\n if (!patternInScope(context.stack, pattern)) {\n continue\n }\n\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = expression.exec(value))) {\n const before = 'before' in pattern || Boolean(pattern.atBreak)\n const after = 'after' in pattern\n const position = match.index + (before ? match[1].length : 0)\n\n if (positions.includes(position)) {\n if (infos[position].before && !before) {\n infos[position].before = false\n }\n\n if (infos[position].after && !after) {\n infos[position].after = false\n }\n } else {\n positions.push(position)\n infos[position] = {before, after}\n }\n }\n }\n\n positions.sort(numerical)\n\n let start = config.before ? config.before.length : 0\n const end = value.length - (config.after ? config.after.length : 0)\n index = -1\n\n while (++index < positions.length) {\n const position = positions[index]\n\n // Character before or after matched:\n if (position < start || position >= end) {\n continue\n }\n\n // If this character is supposed to be escaped because it has a condition on\n // the next character, and the next character is definitly being escaped,\n // then skip this escape.\n if (\n (position + 1 < end &&\n positions[index + 1] === position + 1 &&\n infos[position].after &&\n !infos[position + 1].before &&\n !infos[position + 1].after) ||\n (positions[index - 1] === position - 1 &&\n infos[position].before &&\n !infos[position - 1].before &&\n !infos[position - 1].after)\n ) {\n continue\n }\n\n if (start !== position) {\n // If we have to use a character reference, an ampersand would be more\n // correct, but as backslashes only care about punctuation, either will\n // do the trick\n result.push(escapeBackslashes(value.slice(start, position), '\\\\'))\n }\n\n start = position\n\n if (\n /[!-/:-@[-`{-~]/.test(value.charAt(position)) &&\n (!config.encode || !config.encode.includes(value.charAt(position)))\n ) {\n // Character escape.\n result.push('\\\\')\n } else {\n // Character reference.\n result.push(\n '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';'\n )\n start++\n }\n }\n\n result.push(escapeBackslashes(value.slice(start, end), config.after))\n\n return result.join('')\n}\n\n/**\n * @param {number} a\n * @param {number} b\n * @returns {number}\n */\nfunction numerical(a, b) {\n return a - b\n}\n\n/**\n * @param {string} value\n * @param {string} after\n * @returns {string}\n */\nfunction escapeBackslashes(value, after) {\n const expression = /\\\\(?=[!-/:-@[-`{-~])/g\n /** @type {Array<number>} */\n const positions = []\n /** @type {Array<string>} */\n const results = []\n const whole = value + after\n let index = -1\n let start = 0\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = expression.exec(whole))) {\n positions.push(match.index)\n }\n\n while (++index < positions.length) {\n if (start !== positions[index]) {\n results.push(value.slice(start, positions[index]))\n }\n\n results.push('\\\\')\n start = positions[index]\n }\n\n results.push(value.slice(start))\n\n return results.join('')\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n */\n\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {association} from 'mdast-util-to-markdown/lib/util/association.js'\nimport {containerFlow} from 'mdast-util-to-markdown/lib/util/container-flow.js'\nimport {indentLines} from 'mdast-util-to-markdown/lib/util/indent-lines.js'\nimport {safe} from 'mdast-util-to-markdown/lib/util/safe.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/**\n * @returns {FromMarkdownExtension}\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteDefinitionLabelString() {\n this.buffer()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteDefinition(token) {\n this.exit(token)\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteCallString() {\n this.buffer()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteCallString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteCall(token) {\n this.exit(token)\n }\n}\n\n/**\n * @returns {ToMarkdownExtension}\n */\nexport function gfmFootnoteToMarkdown() {\n footnoteReference.peek = footnoteReferencePeek\n\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\n function footnoteReference(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteReference')\n const subexit = context.enter('reference')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n }\n\n /** @type {ToMarkdownHandle} */\n function footnoteReferencePeek() {\n return '['\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\n function footnoteDefinition(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteDefinition')\n const subexit = context.enter('label')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n indentLines(containerFlow(node, context, tracker.current()), map)\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' ') + line\n }\n\n return line\n }\n }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n * @typedef {import('../types.js').Context} Context\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {SafeOptions} safeOptions\n * @returns {string}\n */\nexport function containerPhrasing(parent, context, safeOptions) {\n const indexStack = context.indexStack\n const children = parent.children || []\n /** @type {Array<string>} */\n const results = []\n let index = -1\n let before = safeOptions.before\n\n indexStack.push(-1)\n let tracker = track(safeOptions)\n\n while (++index < children.length) {\n const child = children[index]\n /** @type {string} */\n let after\n\n indexStack[indexStack.length - 1] = index\n\n if (index + 1 < children.length) {\n // @ts-expect-error: hush, its actually a `zwitch`.\n let handle = context.handle.handlers[children[index + 1].type]\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, context, {\n before: '',\n after: '',\n ...tracker.current()\n }).charAt(0)\n : ''\n } else {\n after = safeOptions.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When wed serialize that, in most cases that would be seen as html\n // (flow).\n // As we cant escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15>\n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n\n // To do: does this work to reset tracker?\n tracker = track(safeOptions)\n tracker.move(results.join(''))\n }\n\n results.push(\n tracker.move(\n context.handle(child, parent, context, {\n ...tracker.current(),\n before,\n after\n })\n )\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n indexStack.pop()\n\n return results.join('')\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmStrikethroughFromMarkdown = {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmStrikethroughToMarkdown = {\n unsafe: [{character: '~', inConstruct: 'phrasing'}],\n handlers: {delete: handleDelete}\n}\n\nhandleDelete.peek = peekDelete\n\n/** @type {FromMarkdownHandle} */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n const exit = context.enter('emphasis')\n let value = tracker.move('~~')\n value += containerPhrasing(node, context, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {patternCompile} from '../util/pattern-compile.js'\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @type {Handle}\n * @param {InlineCode} node\n */\nexport function inlineCode(node, _, context) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs dont count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We cant escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < context.unsafe.length) {\n const pattern = context.unsafe[index]\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray|null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @type {Handle}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|Array<string|null|undefined>} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesnt place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please dont use this: it could create fragile structures\n * > that arent understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please dont use this: it could create fragile structures\n * > that arent understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isnt visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {Array<Array<string|null|undefined>>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array<number>} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array<Array<string>>} Cells per row. */\n const cellMatrix = []\n /** @type {Array<Array<number>>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array<number>} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we dont align delimiters, but otherwise wed\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array<string>} */\n const row = []\n /** @type {Array<number>} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array<string>} */\n const row = []\n /** @type {Array<number>} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array<string>} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array<string>} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Dont add the opening space if were not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').AlignType} AlignType\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext\n * @typedef {import('mdast-util-to-markdown').SafeOptions} SafeOptions\n *\n * @typedef Options\n * @property {boolean} [tableCellPadding=true]\n * @property {boolean} [tablePipeAlign=true]\n * @property {MarkdownTableOptions['stringLength']} [stringLength]\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {inlineCode} from 'mdast-util-to-markdown/lib/handle/inline-code.js'\nimport {markdownTable} from 'markdown-table'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTableFromMarkdown = {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterTable(token) {\n /** @type {Array<'left'|'right'|'center'|'none'>} */\n // @ts-expect-error: `align` is custom.\n const align = token._align\n this.enter(\n {\n type: 'table',\n align: align.map((d) => (d === 'none' ? null : d)),\n children: []\n },\n token\n )\n this.setData('inTable', true)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exit(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/** @type {FromMarkdownHandle} */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1])\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes dont (but cant escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, context, safeOptions) {\n return serializeData(\n handleTableAsData(node, context, safeOptions),\n // @ts-expect-error: fixed in `markdown-table@3.0.1`.\n node.align\n )\n }\n\n /**\n * This function isnt really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, context, safeOptions) {\n const row = handleTableRowAsData(node, context, safeOptions)\n // `markdown-table` will always add an align row\n const value = serializeData([row])\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, context, safeOptions) {\n const exit = context.enter('tableCell')\n const subexit = context.enter('phrasing')\n const value = containerPhrasing(node, context, {\n ...safeOptions,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array<Array<string>>} matrix\n * @param {Array<string>} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n alignDelimiters,\n padding,\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array<Array<string>>} */\n const result = []\n const subexit = context.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(\n children[index],\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableRowAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array<string>} */\n const result = []\n const subexit = context.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(\n children[index],\n node,\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, context) {\n let value = inlineCode(node, parent, context)\n\n if (context.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('../util/indent-lines.js').Map} Map\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\nimport {containerFlow} from '../util/container-flow.js'\nimport {indentLines} from '../util/indent-lines.js'\nimport {track} from '../util/track.js'\n\n/**\n * @type {Handle}\n * @param {ListItem} node\n */\nexport function listItem(node, parent, context, safeOptions) {\n const listItemIndent = checkListItemIndent(context)\n let bullet = context.bulletCurrent || checkBullet(context)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (context.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = track(safeOptions)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = context.enter('listItem')\n const value = indentLines(\n containerFlow(node, context, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude<Options['listItemIndent'], undefined>}\n */\nexport function checkListItemIndent(context) {\n const style = context.options.listItemIndent || 'tab'\n\n // To do: remove in a major.\n // @ts-expect-error: deprecated.\n if (style === 1 || style === '1') {\n return 'one'\n }\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude<Options['bullet'], undefined>}\n */\nexport function checkBullet(context) {\n const marker = context.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {Extract<import('mdast').Root|import('mdast').Content, import('unist').Parent>} Parent\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {listItem} from 'mdast-util-to-markdown/lib/handle/list-item.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTaskListItemFromMarkdown = {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmTaskListItemToMarkdown = {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitCheck(token) {\n const node = /** @type {ListItem} */ (this.stack[this.stack.length - 2])\n // Were always in a paragraph, in a list item.\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = /** @type {Parent} */ (this.stack[this.stack.length - 2])\n const node = /** @type {Paragraph} */ (this.stack[this.stack.length - 1])\n const siblings = parent.children\n const head = node.children[0]\n let index = -1\n /** @type {Paragraph|undefined} */\n let firstParaghraph\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean' &&\n head &&\n head.type === 'text'\n ) {\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, context, safeOptions) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = track(safeOptions)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = listItem(node, parent, context, {\n ...safeOptions,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-gfm-table').Options} Options\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * @returns {Array<FromMarkdownExtension>}\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown,\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown,\n gfmTableFromMarkdown,\n gfmTaskListItemFromMarkdown\n ]\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown,\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown,\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown\n ]\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options\n */\n\nimport {gfm} from 'micromark-extension-gfm'\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\n\n/**\n * Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function remarkGfm(options = {}) {\n const data = this.data()\n\n add('micromarkExtensions', gfm(options))\n add('fromMarkdownExtensions', gfmFromMarkdown())\n add('toMarkdownExtensions', gfmToMarkdown(options))\n\n /**\n * @param {string} field\n * @param {unknown} value\n */\n function add(field, value) {\n const list = /** @type {unknown[]} */ (\n // Other extensions\n /* c8 ignore next 2 */\n data[field] ? data[field] : (data[field] = [])\n )\n\n list.push(value)\n }\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n */\n\nvar search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @param selector A simple CSS selector.\n * Can contain a tag-name (`foo`), classes (`.bar`), and an ID (`#baz`).\n * Multiple classes are allowed.\n * Uses the last ID if multiple IDs are found.\n * @param [defaultTagName='div'] Tag name to use if `selector` does not specify one.\n */\nexport const parseSelector =\n /**\n * @type {(\n * <Selector extends string, DefaultTagName extends string = 'div'>(selector?: Selector, defaultTagName?: DefaultTagName) => Element & {tagName: import('./extract.js').ExtractTagName<Selector, DefaultTagName>}\n * )}\n */\n (\n /**\n * @param {string} [selector]\n * @param {string} [defaultTagName='div']\n * @returns {Element}\n */\n function (selector, defaultTagName = 'div') {\n var value = selector || ''\n /** @type {Properties} */\n var props = {}\n var start = 0\n /** @type {string} */\n var subvalue\n /** @type {string} */\n var previous\n /** @type {RegExpMatchArray} */\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n defaultTagName = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (Array.isArray(props.className)) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {\n type: 'element',\n tagName: defaultTagName,\n properties: props,\n children: []\n }\n }\n )\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {Root['children'][number]} Child\n * @typedef {Child|Root} Node\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {Root|Element} HResult\n * @typedef {string|number} HStyleValue\n * @typedef {Record<string, HStyleValue>} HStyle\n * @typedef {string|number|boolean|null|undefined} HPrimitiveValue\n * @typedef {Array<string|number>} HArrayValue\n * @typedef {HPrimitiveValue|HArrayValue} HPropertyValue\n * @typedef {{[property: string]: HPropertyValue|HStyle}} HProperties\n * Acceptable properties value.\n *\n * @typedef {string|number|null|undefined} HPrimitiveChild\n * @typedef {Array<Node|HPrimitiveChild>} HArrayChild\n * @typedef {Node|HPrimitiveChild|HArrayChild} HChild\n * Acceptable child value\n */\n\nimport {find, normalize} from 'property-information'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {parse as spaces} from 'space-separated-tokens'\nimport {parse as commas} from 'comma-separated-tokens'\n\nconst buttonTypes = new Set(['menu', 'submit', 'reset', 'button'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * @param {string} defaultTagName\n * @param {Array<string>} [caseSensitive]\n */\nexport function core(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n const h =\n /**\n * @type {{\n * (): Root\n * (selector: null|undefined, ...children: Array<HChild>): Root\n * (selector: string, properties?: HProperties, ...children: Array<HChild>): Element\n * (selector: string, ...children: Array<HChild>): Element\n * }}\n */\n (\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @param {string|null} [selector]\n * @param {HProperties|HChild} [properties]\n * @param {Array<HChild>} children\n * @returns {HResult}\n */\n function (selector, properties, ...children) {\n let index = -1\n /** @type {HResult} */\n let node\n\n if (selector === undefined || selector === null) {\n node = {type: 'root', children: []}\n // @ts-expect-error Properties are not supported for roots.\n children.unshift(properties)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n node.tagName = node.tagName.toLowerCase()\n if (adjust && own.call(adjust, node.tagName)) {\n node.tagName = adjust[node.tagName]\n }\n\n // Handle props.\n if (isProperties(properties, node.tagName)) {\n /** @type {string} */\n let key\n\n for (key in properties) {\n if (own.call(properties, key)) {\n // @ts-expect-error `node.properties` is set.\n addProperty(schema, node.properties, key, properties[key])\n }\n }\n } else {\n children.unshift(properties)\n }\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\n }\n\n if (node.type === 'element' && node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n )\n\n return h\n}\n\n/**\n * @param {HProperties|HChild} value\n * @param {string} name\n * @returns {value is HProperties}\n */\nfunction isProperties(value, name) {\n if (\n value === null ||\n value === undefined ||\n typeof value !== 'object' ||\n Array.isArray(value)\n ) {\n return false\n }\n\n if (name === 'input' || !value.type || typeof value.type !== 'string') {\n return true\n }\n\n if ('children' in value && Array.isArray(value.children)) {\n return false\n }\n\n if (name === 'button') {\n return buttonTypes.has(value.type.toLowerCase())\n }\n\n return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * @param {Properties} properties\n * @param {string} key\n * @param {HStyle|HPropertyValue} value\n * @returns {void}\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n let index = -1\n /** @type {HPropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === undefined || value === null) return\n\n if (typeof value === 'number') {\n // Ignore NaN.\n if (Number.isNaN(value)) return\n\n result = value\n }\n // Booleans.\n else if (typeof value === 'boolean') {\n result = value\n }\n // Handle list values.\n else if (typeof value === 'string') {\n if (info.spaceSeparated) {\n result = spaces(value)\n } else if (info.commaSeparated) {\n result = commas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = value.concat()\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array<string|number>} */\n const finalResult = []\n\n while (++index < result.length) {\n // @ts-expect-error Assume no booleans in array.\n finalResult[index] = parsePrimitive(info, info.property, result[index])\n }\n\n result = finalResult\n }\n\n // Class names (which can be added both on the `selector` and here).\n if (info.property === 'className' && Array.isArray(properties.className)) {\n // @ts-expect-error Assume no booleans in `className`.\n result = properties.className.concat(result)\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array<Child>} nodes\n * @param {HChild} value\n * @returns {void}\n */\nfunction addChild(nodes, value) {\n let index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * @param {string} name\n * @param {HPrimitiveValue} value\n * @returns {HPrimitiveValue}\n */\nfunction parsePrimitive(info, name, value) {\n if (typeof value === 'string') {\n if (info.number && value && !Number.isNaN(Number(value))) {\n return Number(value)\n }\n\n if (\n (info.boolean || info.overloadedBoolean) &&\n (value === '' || normalize(value) === normalize(name))\n ) {\n return true\n }\n }\n\n return value\n}\n\n/**\n * @param {HStyle} value\n * @returns {string}\n */\nfunction style(value) {\n /** @type {Array<string>} */\n const result = []\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n result.push([key, value[key]].join(': '))\n }\n }\n\n return result.join('; ')\n}\n\n/**\n * @param {Array<string>} values\n * @returns {Record<string, string>}\n */\nfunction createAdjustMap(values) {\n /** @type {Record<string, string>} */\n const result = {}\n let index = -1\n\n while (++index < values.length) {\n result[values[index].toLowerCase()] = values[index]\n }\n\n return result\n}\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * @typedef {import('./core.js').HChild} Child\n * @typedef {import('./core.js').HProperties} Properties\n *\n * @typedef {import('./jsx-classic').Element} s.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @typedef {import('./core.js').HChild} Child Acceptable child value\n * @typedef {import('./core.js').HProperties} Properties Acceptable properties value.\n *\n * @typedef {import('./jsx-classic').Element} h.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} h.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n */\n\nimport {html} from 'property-information'\nimport {core} from './core.js'\n\nexport const h = core(html, 'div')\n","/**\n * Map of web namespaces.\n *\n * @type {Record<string, string>}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {Parent['children'][number]} Child\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {Child|Root} Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Location} P5Location\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').Node} P5Node\n *\n * @typedef {'html'|'svg'} Space\n *\n * @callback Handler\n * @param {Context} ctx\n * @param {P5Node} node\n * @param {Array.<Child>} [children]\n * @returns {Node}\n *\n * @typedef Options\n * @property {Space} [space='html'] Whether the root of the tree is in the `'html'` or `'svg'` space. If an element in with the SVG namespace is found in `ast`, `fromParse5` automatically switches to the SVG space when entering the element, and switches back when leaving\n * @property {VFile} [file] `VFile`, used to add positional information to nodes. If given, the file should have the original HTML source as its contents\n * @property {boolean} [verbose=false] Whether to add extra positional information about starting tags, closing tags, and attributes to elements. Note: not used without `file`\n *\n * @typedef Context\n * @property {Schema} schema\n * @property {VFile|undefined} file\n * @property {boolean|undefined} verbose\n * @property {boolean} location\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n\n// Handlers.\nconst map = {\n '#document': root,\n '#document-fragment': root,\n '#text': text,\n '#comment': comment,\n '#documentType': doctype\n}\n\n/**\n * Transform Parse5s AST to a hast tree.\n *\n * @param {P5Node} ast\n * @param {Options|VFile} [options]\n */\nexport function fromParse5(ast, options = {}) {\n /** @type {Options} */\n let settings\n /** @type {VFile|undefined} */\n let file\n\n if (isFile(options)) {\n file = options\n settings = {}\n } else {\n file = options.file\n settings = options\n }\n\n return transform(\n {\n schema: settings.space === 'svg' ? svg : html,\n file,\n verbose: settings.verbose,\n location: false\n },\n ast\n )\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {P5Node} ast\n * @returns {Node}\n */\nfunction transform(ctx, ast) {\n const schema = ctx.schema\n /** @type {Handler} */\n // @ts-expect-error: index is fine.\n const fn = own.call(map, ast.nodeName) ? map[ast.nodeName] : element\n /** @type {Array.<Child>|undefined} */\n let children\n\n // Element.\n if ('tagName' in ast) {\n ctx.schema = ast.namespaceURI === webNamespaces.svg ? svg : html\n }\n\n if ('childNodes' in ast) {\n children = nodes(ctx, ast.childNodes)\n }\n\n const result = fn(ctx, ast, children)\n\n if ('sourceCodeLocation' in ast && ast.sourceCodeLocation && ctx.file) {\n // @ts-expect-error Its fine.\n const position = createLocation(ctx, result, ast.sourceCodeLocation)\n\n if (position) {\n ctx.location = true\n result.position = position\n }\n }\n\n ctx.schema = schema\n\n return result\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {Array.<P5Node>} children\n * @returns {Array.<Child>}\n */\nfunction nodes(ctx, children) {\n let index = -1\n /** @type {Array.<Child>} */\n const result = []\n\n while (++index < children.length) {\n // @ts-expect-error Assume no roots in children.\n result[index] = transform(ctx, children[index])\n }\n\n return result\n}\n\n/**\n * Transform a document.\n * Stores `ast.quirksMode` in `node.data.quirksMode`.\n *\n * @type {Handler}\n * @param {P5Document} ast\n * @param {Array.<Child>} children\n * @returns {Root}\n */\nfunction root(ctx, ast, children) {\n /** @type {Root} */\n const result = {\n type: 'root',\n children,\n data: {quirksMode: ast.mode === 'quirks' || ast.mode === 'limited-quirks'}\n }\n\n if (ctx.file && ctx.location) {\n const doc = String(ctx.file)\n const loc = location(doc)\n result.position = {\n start: loc.toPoint(0),\n end: loc.toPoint(doc.length)\n }\n }\n\n return result\n}\n\n/**\n * Transform a doctype.\n *\n * @type {Handler}\n * @returns {Doctype}\n */\nfunction doctype() {\n // @ts-expect-error Types are out of date.\n return {type: 'doctype'}\n}\n\n/**\n * Transform a text.\n *\n * @type {Handler}\n * @param {P5Text} ast\n * @returns {Text}\n */\nfunction text(_, ast) {\n return {type: 'text', value: ast.value}\n}\n\n/**\n * Transform a comment.\n *\n * @type {Handler}\n * @param {P5Comment} ast\n * @returns {Comment}\n */\nfunction comment(_, ast) {\n return {type: 'comment', value: ast.data}\n}\n\n/**\n * Transform an element.\n *\n * @type {Handler}\n * @param {P5Element} ast\n * @param {Array.<ElementChild>} children\n * @returns {Element}\n */\nfunction element(ctx, ast, children) {\n const fn = ctx.schema.space === 'svg' ? s : h\n let index = -1\n /** @type {Object.<string, string>} */\n const props = {}\n\n while (++index < ast.attrs.length) {\n const attribute = ast.attrs[index]\n props[(attribute.prefix ? attribute.prefix + ':' : '') + attribute.name] =\n attribute.value\n }\n\n const result = fn(ast.tagName, props, children)\n\n if (result.tagName === 'template' && 'content' in ast) {\n const pos = ast.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n /** @type {Root} */\n // @ts-expect-error Types are wrong.\n const content = transform(ctx, ast.content)\n\n if (startTag && endTag && ctx.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n return result\n}\n\n/**\n * Create clean positional information.\n *\n * @param {Context} ctx\n * @param {Node} node\n * @param {P5ElementLocation} location\n * @returns {Position|null}\n */\nfunction createLocation(ctx, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: <https://github.com/inikulin/parse5/issues/109>.\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (ctx.verbose) {\n /** @type {Object.<string, Position|null>} */\n const props = {}\n /** @type {string} */\n let key\n\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n props[find(ctx.schema, key).property] = position(location.attrs[key])\n }\n }\n\n node.data = {\n position: {\n opening: position(location.startTag),\n closing: location.endTag ? position(location.endTag) : null,\n properties: props\n }\n }\n }\n }\n\n return result\n}\n\n/**\n * @param {P5Location} loc\n * @returns {Position|null}\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n // @ts-expect-error `null` is fine.\n return start || end ? {start, end} : null\n}\n\n/**\n * @param {Point} point\n * @returns {Point|null}\n */\nfunction point(point) {\n return point.line && point.column ? point : null\n}\n\n/**\n * @param {VFile|Options} value\n * @returns {value is VFile}\n */\nfunction isFile(value) {\n return 'messages' in value\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {Pick<Point, 'line'|'column'>} PositionalPoint\n * @typedef {Required<Point>} FullPoint\n * @typedef {NonNullable<Point['offset']>} Offset\n */\n\n/**\n * Get transform functions for the given `document`.\n *\n * @param {string|Uint8Array|VFile} file\n */\nexport function location(file) {\n var value = String(file)\n /** @type {Array.<number>} */\n var indices = []\n var search = /\\r?\\n|\\r/g\n\n while (search.test(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {toPoint, toOffset}\n\n /**\n * Get the line and column-based `point` for `offset` in the bound indices.\n * Returns a point with `undefined` values when given invalid or out of bounds\n * input.\n *\n * @param {Offset} offset\n * @returns {FullPoint}\n */\n function toPoint(offset) {\n var index = -1\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset\n }\n }\n }\n }\n\n return {line: undefined, column: undefined, offset: undefined}\n }\n\n /**\n * Get the `offset` for a line and column-based `point` in the bound indices.\n * Returns `-1` when given invalid or out of bounds input.\n *\n * @param {PositionalPoint} point\n * @returns {Offset}\n */\n function toOffset(point) {\n var line = point && point.line\n var column = point && point.column\n /** @type {number} */\n var offset\n\n if (\n typeof line === 'number' &&\n typeof column === 'number' &&\n !Number.isNaN(line) &&\n !Number.isNaN(column) &&\n line - 1 in indices\n ) {\n offset = (indices[line - 2] || 0) + column - 1 || 0\n }\n\n return offset > -1 && offset < indices[indices.length - 1] ? offset : -1\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('unist-util-is').AssertPredicate<Element>} AssertElement\n * @typedef {import('unist-util-is').AssertPredicate<Text>} AssertText\n * @typedef {import('unist-util-is').AssertPredicate<Root>} AssertRoot\n *\n * @callback CreateElementLike\n * @param {string} name\n * @param {any} attributes\n * @param {Array.<string|any>} [children]\n * @returns {any}\n *\n * @typedef Context\n * @property {html|svg} schema\n * @property {string|null} prefix\n * @property {number} key\n * @property {boolean} react\n * @property {boolean} vue\n * @property {boolean} vdom\n * @property {boolean} hyperscript\n *\n * @typedef Options\n * @property {string|null} [prefix]\n * @property {'html'|'svg'} [space]\n */\n\nimport {html, svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {webNamespaces} from 'web-namespaces'\nimport {convert} from 'unist-util-is'\n\nconst ns = /** @type {Record<string, string>} */ (webNamespaces)\nconst toReact = /** @type {Record<string, string>} */ (hastToReact)\n\nconst own = {}.hasOwnProperty\n\n/** @type {AssertRoot} */\n// @ts-expect-error its correct.\nconst root = convert('root')\n/** @type {AssertElement} */\n// @ts-expect-error its correct.\nconst element = convert('element')\n/** @type {AssertText} */\n// @ts-expect-error its correct.\nconst text = convert('text')\n\n/**\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element|Root} tree\n * @param {string|boolean|Options} [options]\n * @returns {ReturnType<H>}\n */\nexport function toH(h, tree, options) {\n if (typeof h !== 'function') {\n throw new TypeError('h is not a function')\n }\n\n const r = react(h)\n const v = vue(h)\n const vd = vdom(h)\n /** @type {string|boolean|null|undefined} */\n let prefix\n /** @type {Element} */\n let node\n\n if (typeof options === 'string' || typeof options === 'boolean') {\n prefix = options\n options = {}\n } else {\n if (!options) options = {}\n prefix = options.prefix\n }\n\n if (root(tree)) {\n // @ts-expect-error Allow `doctypes` in there, well filter them out later.\n node =\n tree.children.length === 1 && element(tree.children[0])\n ? tree.children[0]\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: tree.children\n }\n } else if (element(tree)) {\n node = tree\n } else {\n throw new Error(\n // @ts-expect-error runtime.\n 'Expected root or element, not `' + ((tree && tree.type) || tree) + '`'\n )\n }\n\n return transform(h, node, {\n schema: options.space === 'svg' ? svg : html,\n prefix:\n prefix === undefined || prefix === null\n ? r || v || vd\n ? 'h-'\n : null\n : typeof prefix === 'string'\n ? prefix\n : prefix\n ? 'h-'\n : null,\n key: 0,\n react: r,\n vue: v,\n vdom: vd,\n hyperscript: hyperscript(h)\n })\n}\n\n/**\n * Transform a hast node through a hyperscript interface to *anything*!\n *\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element} node\n * @param {Context} ctx\n */\nfunction transform(h, node, ctx) {\n const parentSchema = ctx.schema\n let schema = parentSchema\n let name = node.tagName\n /** @type {Record<string, unknown>} */\n const attributes = {}\n /** @type {Array.<ReturnType<H>|string>} */\n const nodes = []\n let index = -1\n /** @type {string} */\n let key\n\n if (parentSchema.space === 'html' && name.toLowerCase() === 'svg') {\n schema = svg\n ctx.schema = schema\n }\n\n for (key in node.properties) {\n if (node.properties && own.call(node.properties, key)) {\n addAttribute(attributes, key, node.properties[key], ctx, name)\n }\n }\n\n if (ctx.vdom) {\n if (schema.space === 'html') {\n name = name.toUpperCase()\n } else if (schema.space) {\n attributes.namespace = ns[schema.space]\n }\n }\n\n if (ctx.prefix) {\n ctx.key++\n attributes.key = ctx.prefix + ctx.key\n }\n\n if (node.children) {\n while (++index < node.children.length) {\n const value = node.children[index]\n\n if (element(value)) {\n nodes.push(transform(h, value, ctx))\n } else if (text(value)) {\n nodes.push(value.value)\n }\n }\n }\n\n // Restore parent schema.\n ctx.schema = parentSchema\n\n // Ensure no React warnings are triggered for void elements having children\n // passed in.\n return nodes.length > 0\n ? h.call(node, name, attributes, nodes)\n : h.call(node, name, attributes)\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n * @param {string} name\n */\n// eslint-disable-next-line complexity, max-params\nfunction addAttribute(props, prop, value, ctx, name) {\n const info = find(ctx.schema, prop)\n /** @type {string|undefined} */\n let subprop\n\n // Ignore nullish and `NaN` values.\n // Ignore `false` and falsey known booleans for hyperlike DSLs.\n if (\n value === undefined ||\n value === null ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (value === false && (ctx.vue || ctx.vdom || ctx.hyperscript)) ||\n (!value && info.boolean && (ctx.vue || ctx.vdom || ctx.hyperscript))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // Treat `true` and truthy known booleans.\n if (info.boolean && ctx.hyperscript) {\n value = ''\n }\n\n // VDOM, Vue, and React accept `style` as object.\n if (\n info.property === 'style' &&\n typeof value === 'string' &&\n (ctx.react || ctx.vue || ctx.vdom)\n ) {\n value = parseStyle(value, name)\n }\n\n if (ctx.vue) {\n if (info.property !== 'style') subprop = 'attrs'\n } else if (!info.mustUseProperty) {\n if (ctx.vdom) {\n if (info.property !== 'style') subprop = 'attributes'\n } else if (ctx.hyperscript) {\n subprop = 'attrs'\n }\n }\n\n if (subprop) {\n props[subprop] = Object.assign(props[subprop] || {}, {\n [info.attribute]: value\n })\n } else if (info.space && ctx.react) {\n props[toReact[info.property] || info.property] = value\n } else {\n props[info.attribute] = value\n }\n}\n\n/**\n * Check if `h` is `react.createElement`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction react(h) {\n /** @type {unknown} */\n const node = h('div', {})\n return Boolean(\n node &&\n // @ts-expect-error Looks like a React node.\n ('_owner' in node || '_store' in node) &&\n // @ts-expect-error Looks like a React node.\n (node.key === undefined || node.key === null)\n )\n}\n\n/**\n * Check if `h` is `hyperscript`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction hyperscript(h) {\n return 'context' in h && 'cleanup' in h\n}\n\n/**\n * Check if `h` is `virtual-dom/h`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vdom(h) {\n /** @type {unknown} */\n const node = h('div', {})\n // @ts-expect-error Looks like a vnode.\n return node.type === 'VirtualNode'\n}\n\n/**\n * Check if `h` is Vue.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vue(h) {\n /** @type {unknown} */\n const node = h('div', {})\n // @ts-expect-error Looks like a Vue node.\n return Boolean(node && node.context && node.context._isVue)\n}\n\n/**\n * @param {string} value\n * @param {string} tagName\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value, tagName) {\n /** @type {Record<string, string>} */\n const result = {}\n\n try {\n style(value, (name, value) => {\n if (name.slice(0, 4) === '-ms-') name = 'ms-' + name.slice(4)\n\n result[\n name.replace(\n /-([a-z])/g,\n /**\n * @param {string} _\n * @param {string} $1\n * @returns {string}\n */ (_, $1) => $1.toUpperCase()\n )\n ] = value\n })\n } catch (error) {\n error.message =\n tagName + '[style]' + error.message.slice('undefined'.length)\n throw error\n }\n\n return result\n}\n","var own = {}.hasOwnProperty\n\n/**\n * @callback Handler\n * @param {...unknown} value\n * @return {unknown}\n *\n * @typedef {Record<string, Handler>} Handlers\n *\n * @typedef {Object} Options\n * @property {Handler} [unknown]\n * @property {Handler} [invalid]\n * @property {Handlers} [handlers]\n */\n\n/**\n * Handle values based on a property.\n *\n * @param {string} key\n * @param {Options} [options]\n */\nexport function zwitch(key, options) {\n var settings = options || {}\n\n /**\n * Handle one value.\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesnt have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and its result is returned.\n *\n * @param {...unknown} [value]\n * @this {unknown}\n * @returns {unknown}\n * @property {Handler} invalid\n * @property {Handler} unknown\n * @property {Handlers} handlers\n */\n function one(value) {\n var fn = one.invalid\n var handlers = one.handlers\n\n if (value && own.call(value, key)) {\n fn = own.call(handlers, value[key]) ? handlers[value[key]] : one.unknown\n }\n\n if (fn) {\n return fn.apply(this, arguments)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n return one\n}\n","/**\n * @typedef {import('parse5').Node} P5Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').ParentNode} P5Parent\n * @typedef {Exclude<P5Node, P5Document|P5Fragment>} P5Child\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('property-information').Info} Info\n * @typedef {'html'|'svg'} Space\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {Parent['children'][number]} Child\n * @typedef {Child|Root} Node\n *\n * @callback Handle\n * @param {Node} node\n * @param {Schema} schema\n * @returns {P5Node}\n */\n\nimport {html, svg, find} from 'property-information'\nimport {toH} from 'hast-to-hyperscript'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nvar own = {}.hasOwnProperty\n\nvar one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a tree from hast to Parse5s AST.\n *\n * @param {Node} tree\n * @param {Space} [space='html']\n * @returns {P5Node}\n */\nexport function toParse5(tree, space) {\n // @ts-ignore Types are wrong.\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Document}\n */\nfunction root(node, schema) {\n /** @type {P5Document} */\n var p5 = {\n nodeName: '#document',\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Fragment}\n */\nfunction fragment(node, schema) {\n /** @type {P5Fragment} */\n var p5 = {nodeName: '#document-fragment', childNodes: []}\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Doctype} node\n * @returns {P5Doctype}\n */\nfunction doctype(node) {\n return patch(node, {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Text} node\n * @returns {P5Text}\n */\nfunction text(node) {\n return patch(node, {\n nodeName: '#text',\n value: node.value,\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Comment} node\n * @returns {P5Comment}\n */\nfunction comment(node) {\n return patch(node, {\n nodeName: '#comment',\n data: node.value,\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Element} node\n * @returns {P5Element}\n */\nfunction element(node, schema) {\n /** @type {Space} */\n // @ts-ignore Assume space.\n var space = schema.space\n return toH(h, Object.assign({}, node, {children: []}), {space})\n\n /**\n * @param {string} name\n * @param {Object.<string, string|boolean|number>} attrs\n */\n function h(name, attrs) {\n /** @type {Array.<P5Attribute>} */\n var values = []\n /** @type {Info} */\n var info\n /** @type {P5Attribute} */\n var value\n /** @type {string} */\n var key\n /** @type {number} */\n var index\n /** @type {P5Element} */\n var p5\n\n for (key in attrs) {\n if (!own.call(attrs, key) || attrs[key] === false) {\n continue\n }\n\n info = find(schema, key)\n\n if (info.boolean && !attrs[key]) {\n continue\n }\n\n value = {name: key, value: attrs[key] === true ? '' : String(attrs[key])}\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n index = key.indexOf(':')\n\n if (index < 0) {\n value.prefix = ''\n } else {\n value.name = key.slice(index + 1)\n value.prefix = key.slice(0, index)\n }\n\n value.namespace = webNamespaces[info.space]\n }\n\n values.push(value)\n }\n\n if (schema.space === 'html' && node.tagName === 'svg') schema = svg\n\n p5 = patch(node, {\n nodeName: name,\n tagName: name,\n attrs: values,\n namespaceURI: webNamespaces[schema.space],\n childNodes: [],\n parentNode: undefined\n })\n\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n\n // @ts-ignore Types are wrong.\n if (name === 'template') p5.content = fragment(node.content, schema)\n\n return p5\n }\n}\n\n/**\n * @param {Array.<Child>} children\n * @param {P5Parent} p5\n * @param {Schema} schema\n * @returns {Array.<P5Child>}\n */\nfunction all(children, p5, schema) {\n var index = -1\n /** @type {Array.<P5Child>} */\n var result = []\n /** @type {P5Child} */\n var child\n\n if (children) {\n while (++index < children.length) {\n // @ts-ignore Assume child.\n child = one(children[index], schema)\n\n // @ts-ignore types are wrong.\n child.parentNode = p5\n\n result.push(child)\n }\n }\n\n return result\n}\n\n/**\n * Patch specific properties.\n *\n * @template {P5Node} T\n * @param {Node} node\n * @param {T} p5\n * @returns {T}\n */\nfunction patch(node, p5) {\n var position = node.position\n\n if (position && position.start && position.end) {\n // @ts-ignore Types are wrong.\n p5.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n\n return p5\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'isindex',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'nextid',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {Omit<import('parse5').Element, 'parentNode'>} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {Omit<import('parse5').Location, 'startOffset' | 'endOffset'> & {startOffset: number|undefined, endOffset: number|undefined}} P5Location\n * @typedef {import('parse5').ParserOptions} P5ParserOptions\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {import('../complex-types').Raw} Raw\n *\n * @typedef {Omit<Comment, 'value'> & {value: {stitch: Node}}} Stitch\n *\n * @typedef Options\n * @property {Array<string>} [passThrough]\n * List of custom hast node types to pass through (keep) in hast.\n * If the passed through nodes have children, those children are expected to\n * be hast and will be handled.\n *\n * @typedef HiddenTokenizer\n * @property {Array<HiddenLocationTracker>} __mixins\n * Way too simple, but works for us.\n * @property {HiddenPreprocessor} preprocessor\n * @property {(value: string) => void} write\n * @property {() => number} _consume\n * @property {Array<HiddenToken>} tokenQueue\n * @property {string} state\n * @property {string} returnState\n * @property {number} charRefCode\n * @property {Array<number>} tempBuff\n * @property {Function} _flushCodePointsConsumedAsCharacterReference\n * @property {string} lastStartTagName\n * @property {number} consumedAfterSnapshot\n * @property {boolean} active\n * @property {HiddenToken|undefined} currentCharacterToken\n * @property {HiddenToken|undefined} currentToken\n * @property {unknown} currentAttr\n * @property {Function} NAMED_CHARACTER_REFERENCE_STATE\n * @property {Function} NUMERIC_CHARACTER_REFERENCE_END_STATE\n *\n * @typedef {Record<string, unknown> & {location: P5Location}} HiddenToken\n *\n * @typedef HiddenPreprocessor\n * @property {string|undefined} html\n * @property {number} pos\n * @property {number} lastGapPos\n * @property {number} lastCharPos\n * @property {Array<number>} gapStack\n * @property {boolean} skipNextNewLine\n * @property {boolean} lastChunkWritten\n * @property {boolean} endOfChunkHit\n *\n * @typedef HiddenLocationTracker\n * @property {P5Location|undefined} currentAttrLocation\n * @property {P5Location} ctLoc\n * @property {HiddenPosTracker} posTracker\n *\n * @typedef HiddenPosTracker\n * @property {boolean} isEol\n * @property {number} lineStartPos\n * @property {number} droppedBufferSize\n * @property {number} offset\n * @property {number} col\n * @property {number} line\n */\n\n// @ts-expect-error: untyped.\nimport Parser from 'parse5/lib/parser/index.js'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst inTemplateMode = 'IN_TEMPLATE_MODE'\nconst dataState = 'DATA_STATE'\nconst characterToken = 'CHARACTER_TOKEN'\nconst startTagToken = 'START_TAG_TOKEN'\nconst endTagToken = 'END_TAG_TOKEN'\nconst commentToken = 'COMMENT_TOKEN'\nconst doctypeToken = 'DOCTYPE_TOKEN'\n\n/** @type {P5ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Given a hast tree and an optional vfile (for positional info), return a new\n * parsed-again hast tree.\n *\n * @param tree\n * Original hast tree.\n * @param file\n * Virtual file for positional info, optional.\n * @param options\n * Configuration.\n */\nexport const raw =\n /**\n * @type {(\n * ((tree: Node, file: VFile|undefined, options?: Options) => Node) &\n * ((tree: Node, options?: Options) => Node)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {VFile} [file]\n * @param {Options} [options]\n */\n function (tree, file, options) {\n let index = -1\n const parser = new Parser(parseOptions)\n const one = zwitch('type', {\n // @ts-expect-error: hush.\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n // @ts-expect-error: hush.\n unknown\n })\n /** @type {boolean|undefined} */\n let stitches\n /** @type {HiddenTokenizer|undefined} */\n let tokenizer\n /** @type {HiddenPreprocessor|undefined} */\n let preprocessor\n /** @type {HiddenPosTracker|undefined} */\n let posTracker\n /** @type {HiddenLocationTracker|undefined} */\n let locationTracker\n\n if (isOptions(file)) {\n options = file\n file = undefined\n }\n\n if (options && options.passThrough) {\n while (++index < options.passThrough.length) {\n // @ts-expect-error: hush.\n one.handlers[options.passThrough[index]] = stitch\n }\n }\n\n const result = fromParse5(\n documentMode(tree) ? document() : fragment(),\n file\n )\n\n if (stitches) {\n visit(result, 'comment', (node, index, parent) => {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent !== null && index !== null) {\n // @ts-expect-error: assume the stitch is allowed.\n parent.children[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n tree.type !== 'root' &&\n result.type === 'root' &&\n result.children.length === 1\n ) {\n return result.children[0]\n }\n\n return result\n\n /**\n * @returns {P5Fragment}\n */\n function fragment() {\n /** @type {P5Element} */\n const context = {\n nodeName: 'template',\n tagName: 'template',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Element} */\n const mock = {\n nodeName: 'documentmock',\n tagName: 'documentmock',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Fragment} */\n const doc = {nodeName: '#document-fragment', childNodes: []}\n\n parser._bootstrap(mock, context)\n parser._pushTmplInsertionMode(inTemplateMode)\n parser._initTokenizerForFragmentParsing()\n parser._insertFakeRootElement()\n parser._resetInsertionMode()\n parser._findFormInFragmentContext()\n\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n resetTokenizer()\n\n parser._adoptNodes(mock.childNodes[0], doc)\n\n return doc\n }\n\n /**\n * @returns {P5Document}\n */\n function document() {\n /** @type {P5Document} */\n const doc = parser.treeAdapter.createDocument()\n\n parser._bootstrap(doc, undefined)\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n resetTokenizer()\n\n return doc\n }\n\n /**\n * @param {Array<Content>} nodes\n * @returns {void}\n */\n function all(nodes) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n one(nodes[index])\n }\n }\n }\n\n /**\n * @param {Root} node\n * @returns {void}\n */\n function root(node) {\n all(node.children)\n }\n\n /**\n * @param {Element} node\n * @returns {void}\n */\n function element(node) {\n resetTokenizer()\n parser._processToken(startTag(node), webNamespaces.html)\n\n all(node.children)\n\n if (!htmlVoidElements.includes(node.tagName)) {\n resetTokenizer()\n parser._processToken(endTag(node))\n }\n }\n\n /**\n * @param {Text} node\n * @returns {void}\n */\n function text(node) {\n resetTokenizer()\n parser._processToken({\n type: characterToken,\n chars: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Doctype} node\n * @returns {void}\n */\n function doctype(node) {\n resetTokenizer()\n parser._processToken({\n type: doctypeToken,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Comment|Stitch} node\n * @returns {void}\n */\n function comment(node) {\n resetTokenizer()\n parser._processToken({\n type: commentToken,\n data: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Raw} node\n * @returns {void}\n */\n function handleRaw(node) {\n const start = pointStart(node)\n const line = start.line || 1\n const column = start.column || 1\n const offset = start.offset || 0\n\n /* c8 ignore next 4 */\n if (!preprocessor) throw new Error('Expected `preprocessor`')\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n if (!locationTracker) throw new Error('Expected `locationTracker`')\n\n // Reset preprocessor:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/preprocessor.js#L17>.\n preprocessor.html = undefined\n preprocessor.pos = -1\n preprocessor.lastGapPos = -1\n preprocessor.lastCharPos = -1\n preprocessor.gapStack = []\n preprocessor.skipNextNewLine = false\n preprocessor.lastChunkWritten = false\n preprocessor.endOfChunkHit = false\n\n // Reset preprocessor mixin:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/position-tracking/preprocessor-mixin.js>.\n posTracker.isEol = false\n posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n posTracker.droppedBufferSize = offset\n posTracker.offset = 0\n posTracker.col = 1\n posTracker.line = line\n\n // Reset location tracker:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js>.\n locationTracker.currentAttrLocation = undefined\n locationTracker.ctLoc = createParse5Location(node)\n\n // See the code for `parse` and `parseFragment`:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/parser/index.js#L371>.\n tokenizer.write(node.value)\n parser._runParsingLoop(null)\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n if (\n tokenizer.state === 'NAMED_CHARACTER_REFERENCE_STATE' ||\n tokenizer.state === 'NUMERIC_CHARACTER_REFERENCE_END_STATE'\n ) {\n preprocessor.lastChunkWritten = true\n tokenizer[tokenizer.state](tokenizer._consume())\n }\n }\n\n /**\n * @param {Node} node\n */\n function stitch(node) {\n stitches = true\n\n /** @type {Node} */\n let clone\n\n // Recurse, because to somewhat handle `[<x>]</x>` (where `[]` denotes the\n // passed through node).\n if ('children' in node) {\n clone = {\n ...node,\n children: raw(\n {type: 'root', children: node.children},\n file,\n options\n // @ts-expect-error Assume a given parent yields a parent.\n ).children\n }\n } else {\n clone = {...node}\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}})\n }\n\n function resetTokenizer() {\n /* c8 ignore next 2 */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n\n // Process final characters if theyre still there after hibernating.\n // Similar to:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js#L95>.\n const token = tokenizer.currentCharacterToken\n\n if (token) {\n token.location.endLine = posTracker.line\n token.location.endCol = posTracker.col + 1\n token.location.endOffset = posTracker.offset + 1\n parser._processToken(token)\n }\n\n // Reset tokenizer:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/index.js#L218-L234>.\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n tokenizer.tokenQueue = []\n tokenizer.state = dataState\n tokenizer.returnState = ''\n tokenizer.charRefCode = -1\n tokenizer.tempBuff = []\n tokenizer.lastStartTagName = ''\n tokenizer.consumedAfterSnapshot = -1\n tokenizer.active = false\n tokenizer.currentCharacterToken = undefined\n tokenizer.currentToken = undefined\n tokenizer.currentAttr = undefined\n }\n }\n )\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction startTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: startTagToken,\n tagName: node.tagName,\n selfClosing: false,\n attrs: attributes(node),\n location\n }\n}\n\n/**\n * @param {Element} node\n * @returns {Array<P5Attribute>}\n */\nfunction attributes(node) {\n return toParse5({\n tagName: node.tagName,\n type: 'element',\n properties: node.properties,\n children: []\n // @ts-expect-error Assume element.\n }).attrs\n}\n\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction endTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: endTagToken,\n tagName: node.tagName,\n attrs: [],\n location\n }\n}\n\n/**\n * @param {Node} node\n */\nfunction unknown(node) {\n throw new Error('Cannot compile `' + node.type + '` node')\n}\n\n/**\n * @param {Node} node\n * @returns {boolean}\n */\nfunction documentMode(node) {\n const head = node.type === 'root' ? node.children[0] : node\n return Boolean(\n head &&\n (head.type === 'doctype' ||\n (head.type === 'element' && head.tagName === 'html'))\n )\n}\n\n/**\n * @param {Node|Stitch} node\n * @returns {P5Location}\n */\nfunction createParse5Location(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n return {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n}\n\n/**\n * @param {VFile|Options|undefined} value\n * @return {value is Options}\n */\nfunction isOptions(value) {\n return Boolean(value && !('message' in value && 'messages' in value))\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} Options\n * @typedef {import('hast-util-raw')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Plugin to parse the tree again (and raw nodes).\n * Keeping positional info OK. 🙌\n *\n * @type {import('unified').Plugin<[Options?] | Array<void>, Root>}\n */\nexport default function rehypeRaw(options = {}) {\n return (tree, file) => {\n // Assume that when a root was given, its also returned.\n const result = /** @type {Root} */ (raw(tree, file, options))\n return result\n }\n}\n","import * as React from \"react\";\nconst SVGComponent = (props) => (\n <svg\n height={512}\n style={{\n enableBackground: \"new 0 0 512 512\",\n }}\n viewBox=\"0 0 512 512\"\n width={512}\n xmlSpace=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path d=\"m184.7 413.1 2.1-1.8 156.5-136c5.3-4.6 8.6-11.5 8.6-19.2 0-7.7-3.4-14.6-8.6-19.2L187.1 101l-2.6-2.3C182 97 179 96 175.8 96c-8.7 0-15.8 7.4-15.8 16.6v286.8c0 9.2 7.1 16.6 15.8 16.6 3.3 0 6.4-1.1 8.9-2.9z\" />\n <path\n style={{\n fill: \"#fff\",\n strokeWidth: 0.498539,\n }}\n d=\"M171.101 414.868c-4.514-1.611-8.561-5.771-10.18-10.464-.834-2.42-1.217-288.516-.393-293.894.907-5.921 3.926-10.216 8.895-12.657 3.95-1.94 9.155-1.937 12.793.007 3.343 1.785 161.905 139.906 164.376 143.184 3.021 4.01 4.472 8.2 4.757 13.742.186 3.605.037 5.49-.609 7.727-1.173 4.064-3.454 8.202-5.94 10.774-1.146 1.186-37.704 33.115-81.239 70.955-55.39 48.142-79.907 69.15-81.66 69.97-3.43 1.606-7.454 1.85-10.8.656z\"\n />\n </svg>\n);\nexport default SVGComponent;\n","import * as React from \"react\";\nconst SVGComponent = (props) => (\n <svg\n height={512}\n style={{\n enableBackground: \"new 0 0 512 512\",\n }}\n viewBox=\"0 0 512 512\"\n width={512}\n xmlSpace=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path d=\"m98.9 184.7 1.8 2.1 136 156.5c4.6 5.3 11.5 8.6 19.2 8.6 7.7 0 14.6-3.4 19.2-8.6L411 187.1l2.3-2.6c1.7-2.5 2.7-5.5 2.7-8.7 0-8.7-7.4-15.8-16.6-15.8H112.6c-9.2 0-16.6 7.1-16.6 15.8 0 3.3 1.1 6.4 2.9 8.9z\" />\n <path\n style={{\n fill: \"#fff\",\n strokeWidth: 0.498539,\n }}\n d=\"M248.273 350.336c-4.083-1.397-7.187-3.22-9.662-5.673-1.064-1.054-32.92-37.549-70.793-81.098-48.133-55.35-69.23-79.958-70.096-81.76-1.803-3.758-1.753-8.546.131-12.382 2.335-4.755 6.517-7.824 12.058-8.848 4.16-.769 288.018-.769 292.178 0 5.54 1.024 9.723 4.093 12.058 8.848 1.847 3.762 1.927 9.146.186 12.495-1.265 2.433-139.44 161.51-142.47 164.02-6.161 5.108-16.1 6.96-23.59 4.398z\"\n />\n </svg>\n);\nexport default SVGComponent;\n","import './App.css';\nimport { useState, useCallback } from \"react\";\nimport data from \"./data\";\nimport ReactMarkdown from 'react-markdown';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { coldarkDark } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport remarkGfm from 'remark-gfm';\nimport rehypeRaw from 'rehype-raw';\nimport RightArrow from \"./components/right_arrow\";\nimport DownArrow from \"./components/down_arrow\";\n\nfunction debounce(fn, wait, immediate) {\n let timeout;\n\n return (...args) => {\n const context = this;\n\n const later = () => {\n timeout = null;\n if (!immediate) fn.apply(context, args);\n };\n\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) {\n fn.apply(context, args);\n }\n };\n}\n\nfunction filterData(data, filter = \"\", typeFilter = \"all\") {\n \n if (typeFilter === \"all\" && filter.length) return data;\n\n const typeFilteredItems = {};\n typeFilteredItems.items = typeFilter !== \"all\" ? data.items.filter(item => item.type === typeFilter) : data.items;\n\n if (filter.length) return typeFilteredItems;\n\n const filtered = {};\n filtered.items = filter.length ? typeFilteredItems.items.filter(item => {\n return item.title.toLowerCase().includes(filter.toLowerCase()) || item.content.toLowerCase().includes(filter.toLowerCase());\n }) : typeFilteredItems.items;\n\n return filtered;\n};\n\nfunction App() {\n const [filter, setFilter] = useState(\"\");\n const [typeFilter, setTypeFilter] = useState(\"all\");\n const [expandedItems, setExpandedItems] = useState([]);\n const [expandedCategories, setExpandedCategories] = useState([]);\n\n function handleFilter(event) {\n debounce(setFilter(event.target.value), 300);\n }\n\n const handleExpandItem = useCallback((event) => {\n const newExpanded = expandedItems.includes(event) ? expandedItems.filter(i => i !== event) : [...expandedItems, event];\n setExpandedItems(newExpanded);\n }, [expandedItems]);\n\n const handleCategoryClick = useCallback((event) => {\n const newExpandedCategory = expandedCategories.includes(event) ? expandedCategories.filter(i => i !== event) : [...expandedCategories, event];\n setExpandedCategories(newExpandedCategory);\n }, [expandedCategories]);\n\n function expandAll() {\n setExpandedCategories(data.categories.map(category => category.title));\n }\n\n function collapseAll() {\n setExpandedItems([]);\n setExpandedCategories([]);\n }\n\n function clearFilters() {\n setFilter(\"\");\n setTypeFilter(\"all\");\n }\n\n const filtered = filter.length || typeFilter !== \"all\" ? filterData(data, filter, typeFilter) : data;\n\n return (\n <div className=\"App\">\n <div className={\"inputFilter\"}>\n <span align=\"center\"><input type=\"text\" onChange={handleFilter} value={filter} /><button onClick={clearFilters}>Clear Search</button></span>\n <span align=\"center\"> 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝<a href=\"https://github.com/tteck/Proxmox/blob/main/LICENSE\"><img alt=\"License MIT\" src=\"https://img.shields.io/badge/license-MIT-blue\" /></a> <a href=\"https://github.com/tteck/Proxmox/discussions\"><img src=\"https://img.shields.io/badge/%F0%9F%92%AC-Discussions-teal\" alt=\"Discussions\" /></a> <a href=\"https://github.com/tteck/Proxmox/blob/main/CHANGELOG.md\"><img src=\"https://img.shields.io/badge/🔶-Changelog-maroon\" alt=\"Changelog\" /></a> <a href=\"https://github.com/tteck/Proxmox/blob/main/USER_SUBMITTED_GUIDES.md\"><img src=\"https://img.shields.io/badge/🧭-Guides-navy\" alt=\"Guides\" /></a> <a href=\"https://ko-fi.com/D1D7EP4GF\"><img src=\"https://img.shields.io/badge/%E2%98%95-Buy%20me%20a%20coffee-brown\" alt=\"Buy me a coffee\" /></a></span><br></br>\n \n </div>\n {filtered.items.length === 0 && <div>No items match your criteria <button onClick={clearFilters}>Clear Filters</button></div>}\n <span align=\"center\"> 󠁝 󠁝 󠁝 󠁝 󠁝 📦 WE HAVE MOVED! Kindly update your bookmarks to <a href=\"https://helper-scripts.com\" target=\"_blank\" rel=\"noopener noreferrer\">https://Helper-Scripts.com</a></span>\n \n <div><span onClick={expandAll}> 󠀠 󠀠 󠀠 󠀠 󠀠</span> 󠀠 <span onClick={collapseAll}> 󠀠 󠀠 󠀠 󠀠 󠀠</span></div>\n {filtered.items?.map((item, index) => {\n return <div className={\"App-items\"} key={item.title} >\n {(index === 0 || filtered.items[index === 0 ? 0 : index - 1].category !== item.category) && <div onClick={() => handleCategoryClick(item.category)} className={\"itemCategory\"}>\n {item.category}{(((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) || expandedCategories.includes(item.category)) ? <DownArrow className=\"navArrow\" alt=\"Expanded\" /> : <RightArrow className=\"navArrow\" alt=\"Collapsed\" />} </div>}\n\n {(((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) || expandedCategories.includes(item.category)) && <span onClick={() => handleExpandItem(item.title)} className={\"itemTitle\"}>{item.title}</span>}\n\n {\n ((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) && <div className=\"item\">\n <ReactMarkdown\n children={item.content}\n remarkPlugins={[remarkGfm]}\n rehypePlugins={[rehypeRaw]}\n components={{\n code({ node, inline, className, children, ...props }) {\n const match = /language-(\\w+)/.exec(className || '');\n return !inline && match ? (\n <>\n <CopyButton valueToCopy={String(children)} />\n <SyntaxHighlighter\n children={String(children).replace(/\\n$/, '')}\n style={coldarkDark}\n language={match[1]}\n PreTag=\"div\"\n {...props}\n />\n </>\n ) : (\n <code className={className} {...props}>\n {children}\n </code>\n );\n }\n }}\n />\n </div>}\n </div>;\n })}\n </div>\n );\n}\n\nfunction CopyButton({ valueToCopy }) {\n const [copied, setCopied] = useState(false);\n\n function handleClick(text) {\n navigator.clipboard.writeText(text);\n setCopied(true);\n\n setTimeout(() => {\n setCopied(false);\n }, 2000);\n }\n\n return (\n <button\n className={`copy-button ${copied ? 'copied' : ''}`}\n onClick={() => handleClick(valueToCopy)}\n >\n {copied ? 'Copied!' : 'Copy'}\n </button>\n );\n}\n\nexport default App;\n\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n\n"],"names":["hasOwn","Object","prototype","hasOwnProperty","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","value","newValue","writable","getProperty","module","exports","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","selector","defaultTagName","subvalue","previous","match","props","start","search","lastIndex","exec","slice","index","id","className","push","type","tagName","properties","children","find","require","normalize","parseSelector","spaces","commas","schema","caseSensitive","adjust","values","result","toLowerCase","createAdjustMap","property","node","own","isChildren","unshift","addProperty","addChild","content","info","undefined","spaceSeparated","commaSeparated","commaOrSpaceSeparated","join","style","concat","parsePrimitive","parsePrimitives","isNode","nodes","Error","String","number","positiveNumber","isNaN","Number","boolean","overloadedBoolean","html","factory","displayName","val","input","indexOf","end","trim","DefinedInfo","Info","data","normal","prop","Type","valid","test","charAt","attribute","replace","dash","camelcase","toUpperCase","datasetToProperty","cap","kebab","datasetToAttribute","$0","merge","xlink","xml","xmlns","aria","types","create","booleanish","transform","_","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","caseInsensitiveTransform","space","attributes","acceptcharset","classname","htmlfor","httpequiv","mustUseProperty","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","capture","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","default","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","language","list","loading","loop","low","manifest","max","maxLength","media","method","min","minLength","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextMenu","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","selected","shape","size","sizes","slot","span","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","wrap","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","clear","code","codeBase","codeType","color","compact","declare","event","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","summary","text","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","results","security","unselectable","caseSensitiveTransform","Schema","definition","defined","checks","checksLength","mask","check","mark","this","proto","xtend","definitions","apply","powers","increment","Math","pow","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","split","whiteSpace","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","str","TypeError","lineno","column","updatePosition","lines","lastIndexOf","position","line","Position","whitespace","source","errorsList","error","msg","err","reason","filename","silent","re","m","comments","c","comment","pos","declaration","ret","decl","decls","declarations","character","charCodeAt","alphabetical","decimal","isBuffer","el","characters","entity","document","createElement","innerHTML","textContent","legacy","invalid","hexadecimal","alphanumerical","decodeEntity","option","settings","defaults","indent","entityCharacters","namedEntity","terminated","reference","following","warning","output","begin","prev","next","diff","additional","nonTerminated","handleText","handleReference","handleWarning","textContext","referenceContext","warningContext","queue","now","parseError","noop","fromCharCode","hexa","deci","tests","prohibited","parseInt","bases","disallowed","flush","offset","messages","parse","Function","DOCUMENT_MODE","VALID_DOCTYPE_NAME","QUIRKS_MODE_PUBLIC_ID_PREFIXES","QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES","QUIRKS_MODE_PUBLIC_IDS","LIMITED_QUIRKS_PUBLIC_ID_PREFIXES","LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES","enquoteDoctypeId","quote","hasPrefix","publicId","prefixes","isConforming","token","systemId","getDocumentMode","QUIRKS","LIMITED_QUIRKS","NO_QUIRKS","serializeContent","controlCharacterInInputStream","noncharacterInInputStream","surrogateInInputStream","nonVoidHtmlElementStartTagWithTrailingSolidus","endTagWithAttributes","endTagWithTrailingSolidus","unexpectedSolidusInTag","unexpectedNullCharacter","unexpectedQuestionMarkInsteadOfTagName","invalidFirstCharacterOfTagName","unexpectedEqualsSignBeforeAttributeName","missingEndTagName","unexpectedCharacterInAttributeName","unknownNamedCharacterReference","missingSemicolonAfterCharacterReference","unexpectedCharacterAfterDoctypeSystemIdentifier","unexpectedCharacterInUnquotedAttributeValue","eofBeforeTagName","eofInTag","missingAttributeValue","missingWhitespaceBetweenAttributes","missingWhitespaceAfterDoctypePublicKeyword","missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers","missingWhitespaceAfterDoctypeSystemKeyword","missingQuoteBeforeDoctypePublicIdentifier","missingQuoteBeforeDoctypeSystemIdentifier","missingDoctypePublicIdentifier","missingDoctypeSystemIdentifier","abruptDoctypePublicIdentifier","abruptDoctypeSystemIdentifier","cdataInHtmlContent","incorrectlyOpenedComment","eofInScriptHtmlCommentLikeText","eofInDoctype","nestedComment","abruptClosingOfEmptyComment","eofInComment","incorrectlyClosedComment","eofInCdata","absenceOfDigitsInNumericCharacterReference","nullCharacterReference","surrogateCharacterReference","characterReferenceOutsideUnicodeRange","controlCharacterReference","noncharacterCharacterReference","missingWhitespaceBeforeDoctypeName","missingDoctypeName","invalidCharacterSequenceAfterDoctypeName","duplicateAttribute","nonConformingDoctype","missingDoctype","misplacedDoctype","endTagWithoutMatchingOpenElement","closingOfElementWithOpenChildElements","disallowedContentInNoscriptInHead","openElementsLeftAfterEof","abandonedHeadElementChild","misplacedStartTagForHeadElement","nestedNoscriptInHead","eofInElementThatCanContainOnlyText","Tokenizer","HTML","$","TAG_NAMES","NS","NAMESPACES","ATTRS","MIME_TYPES","SVG_ATTRS_ADJUSTMENT_MAP","attributename","attributetype","basefrequency","baseprofile","calcmode","clippathunits","diffuseconstant","edgemode","filterunits","glyphref","gradienttransform","gradientunits","kernelmatrix","kernelunitlength","keypoints","keysplines","keytimes","lengthadjust","limitingconeangle","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","numoctaves","pathlength","patterncontentunits","patterntransform","patternunits","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","refx","refy","repeatcount","repeatdur","requiredextensions","requiredfeatures","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","surfacescale","systemlanguage","tablevalues","targetx","targety","textlength","viewbox","viewtarget","xchannelselector","ychannelselector","zoomandpan","XML_ATTRS_ADJUSTMENT_MAP","namespace","XLINK","XML","XMLNS","SVG_TAG_NAMES_ADJUSTMENT_MAP","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","clippath","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","foreignobject","lineargradient","radialgradient","textpath","EXITS_FOREIGN_CONTENT","B","BIG","BLOCKQUOTE","BODY","BR","CENTER","CODE","DD","DIV","DL","DT","EM","EMBED","H1","H2","H3","H4","H5","H6","HEAD","HR","I","IMG","LI","LISTING","MENU","META","NOBR","OL","P","PRE","RUBY","S","SMALL","SPAN","STRONG","STRIKE","SUB","SUP","TABLE","TT","U","UL","VAR","causesExit","startTagToken","tn","FONT","getTokenAttr","COLOR","SIZE","FACE","adjustTokenMathMLAttrs","attrs","adjustTokenSVGAttrs","adjustedAttrName","adjustTokenXMLAttrs","adjustedAttrEntry","adjustTokenSVGTagName","adjustedTagName","isIntegrationPoint","ns","foreignNS","MATHML","ANNOTATION_XML","ENCODING","SVG","FOREIGN_OBJECT","DESC","TITLE","isHtmlIntegrationPoint","MI","MO","MN","MS","MTEXT","isMathMLTextIntegrationPoint","TYPE","ACTION","PROMPT","NAME","A","ADDRESS","APPLET","AREA","ARTICLE","ASIDE","BASE","BASEFONT","BGSOUND","BUTTON","CAPTION","COL","COLGROUP","DETAILS","DIALOG","DIR","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAME","FRAMESET","HEADER","HGROUP","IMAGE","INPUT","IFRAME","KEYGEN","LABEL","LINK","MAIN","MALIGNMARK","MARQUEE","MATH","MGLYPH","NAV","NOFRAMES","NOEMBED","NOSCRIPT","OBJECT","OPTGROUP","OPTION","PARAM","PLAINTEXT","RB","RP","RT","RTC","SCRIPT","SECTION","SELECT","SOURCE","STYLE","SUMMARY","TBODY","TEMPLATE","TEXTAREA","TFOOT","TD","TH","THEAD","TR","TRACK","WBR","XMP","SPECIAL_ELEMENTS","UNDEFINED_CODE_POINTS","REPLACEMENT_CHARACTER","CODE_POINTS","EOF","NULL","TABULATION","CARRIAGE_RETURN","LINE_FEED","FORM_FEED","SPACE","EXCLAMATION_MARK","QUOTATION_MARK","NUMBER_SIGN","AMPERSAND","APOSTROPHE","HYPHEN_MINUS","SOLIDUS","DIGIT_0","DIGIT_9","SEMICOLON","LESS_THAN_SIGN","EQUALS_SIGN","GREATER_THAN_SIGN","QUESTION_MARK","LATIN_CAPITAL_A","LATIN_CAPITAL_F","LATIN_CAPITAL_X","LATIN_CAPITAL_Z","RIGHT_SQUARE_BRACKET","GRAVE_ACCENT","LATIN_SMALL_A","LATIN_SMALL_F","LATIN_SMALL_X","LATIN_SMALL_Z","CODE_POINT_SEQUENCES","DASH_DASH_STRING","DOCTYPE_STRING","CDATA_START_STRING","SCRIPT_STRING","PUBLIC_STRING","SYSTEM_STRING","isSurrogate","cp","isSurrogatePair","getSurrogatePairCodePoint","cp1","cp2","isControlCodePoint","isUndefinedCodePoint","Mixin","host","opts","super","posTracker","onParseError","_setErrorLocation","startLine","endLine","startCol","endCol","col","startOffset","endOffset","_reportError","_getOverriddenMethods","mxn","_err","ErrorReportingMixinBase","ErrorReportingTokenizerMixin","LocationInfoTokenizerMixin","parser","ctLoc","locBeforeToken","orig","_bootstrap","fragmentContext","install","tokenizer","_processInputToken","location","beforeToken","PositionTrackingPreprocessorMixin","preprocessor","lastErrOffset","ErrorReportingPreprocessorMixin","preprocessorMixin","stack","onItemPop","pop","current","popAllUpToHtmlElement","stackTop","items","remove","element","LocationInfoOpenElementStackMixin","treeAdapter","lastStartTagToken","lastFosterParentingLocation","currentToken","_setStartLocation","loc","assign","startTag","setNodeSourceCodeLocation","_setEndLocation","closingToken","getNodeSourceCodeLocation","getTagName","endLoc","END_TAG_TOKEN","endTag","updateNodeSourceCodeLocation","tokenizerMixin","openElements","_runParsingLoop","scriptHandler","_processTokenInForeignContent","_processToken","hasInScope","_setDocumentType","documentChildren","getChildNodes","cnLength","isDocumentTypeNode","_attachElementToTree","_appendElement","namespaceURI","_insertElement","_insertTemplate","tmplContent","getTemplateContent","_insertFakeRootElement","_appendCommentNode","parent","commentNode","_findFosterParentingLocation","_insertCharacters","hasFosterParent","_shouldFosterParentOnInsertion","currentTmplContent","siblings","textNodeIdx","beforeElement","textNode","currentAttrLocation","_getCurrentLocation","_attachCurrentAttrLocationInfo","currentAttr","methods","_createStartTagToken","_createEndTagToken","_createCommentToken","_createDoctypeToken","initialName","_createCharacterToken","ch","currentCharacterToken","_createEOFToken","_createAttr","attrNameFirstCh","_leaveAttrName","toState","_leaveAttrValue","_emitCurrentToken","EOF_TOKEN","_emitCurrentCharacterToken","keys","MODE","forEach","modeName","state","isEol","lineStartPos","droppedBufferSize","advance","retreat","dropParsedChunk","prevPos","reduction","FormattingElementList","entries","bookmark","_getNoahArkConditionCandidates","newElement","candidates","neAttrsLength","getAttrList","neTagName","neNamespaceURI","getNamespaceURI","entry","MARKER_ENTRY","elementAttrs","idx","_ensureNoahArkCondition","cLength","neAttrs","neAttrsMap","neAttr","j","cAttr","splice","NOAH_ARK_CAPACITY","insertMarker","pushElement","ELEMENT_ENTRY","insertElementAfterBookmark","bookmarkIdx","removeEntry","clearToLastMarker","getElementEntryInScopeWithTagName","getElementEntry","OpenElementStack","LocationInfoParserMixin","ErrorReportingParserMixin","defaultTreeAdapter","mergeOptions","doctype","foreignContent","ERR","unicode","DEFAULT_OPTIONS","scriptingEnabled","sourceCodeLocationInfo","HIDDEN_INPUT_TYPE","INITIAL_MODE","BEFORE_HTML_MODE","BEFORE_HEAD_MODE","IN_HEAD_MODE","IN_HEAD_NO_SCRIPT_MODE","AFTER_HEAD_MODE","IN_BODY_MODE","TEXT_MODE","IN_TABLE_MODE","IN_TABLE_TEXT_MODE","IN_CAPTION_MODE","IN_COLUMN_GROUP_MODE","IN_TABLE_BODY_MODE","IN_ROW_MODE","IN_CELL_MODE","IN_SELECT_MODE","IN_SELECT_IN_TABLE_MODE","IN_TEMPLATE_MODE","AFTER_BODY_MODE","IN_FRAMESET_MODE","AFTER_FRAMESET_MODE","AFTER_AFTER_BODY_MODE","AFTER_AFTER_FRAMESET_MODE","INSERTION_MODE_RESET_MAP","TEMPLATE_INSERTION_MODE_SWITCH_MAP","TOKEN_HANDLERS","CHARACTER_TOKEN","tokenInInitialMode","NULL_CHARACTER_TOKEN","WHITESPACE_CHARACTER_TOKEN","ignoreToken","COMMENT_TOKEN","appendComment","DOCTYPE_TOKEN","p","mode","forceQuirks","setDocumentMode","insertionMode","START_TAG_TOKEN","tokenBeforeHtml","tokenBeforeHead","startTagInBody","headElement","tokenInHead","insertCharacters","startTagInHead","endTagInHead","tokenInHeadNoScript","tokenAfterHead","framesetOk","characterInBody","whitespaceCharacterInBody","endTagInBody","eofInBody","pendingScript","originalInsertionMode","characterInTable","startTagInTable","endTagInTable","pendingCharacterTokens","hasNonWhitespacePendingCharacterToken","tokenInTableText","hasInTableScope","generateImpliedEndTags","popUntilTagNamePopped","activeFormattingElements","tokenInColumnGroup","ackSelfClosing","currentTagName","clearBackToTableBodyContext","_insertFakeElement","hasTableBodyContextInTableScope","clearBackToTableRowContext","_closeTableCell","startTagInSelect","endTagInSelect","_resetInsertionMode","newInsertionMode","_popTmplInsertionMode","_pushTmplInsertionMode","eofInTemplate","tokenAfterBody","stopParsing","isRootHtmlElementCurrent","tokenAfterAfterBody","appendCommentToDocument","aaObtainFormattingElementEntry","formattingElementEntry","contains","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","_isSpecialElement","popUntilElementPopped","aaInnerLoop","formattingElement","lastElement","nextElement","getCommonAncestor","elementEntry","counterOverflow","aaRecreateElementFromEntry","detachNode","appendChild","aaInsertLastNodeInCommonAncestor","commonAncestor","_isElementCausesFosterParenting","_fosterParentElement","aaReplaceFormattingElement","_adoptNodes","insertAfter","callAdoptionAgency","stopped","_switchToTextParsing","RCDATA","RAWTEXT","SCRIPT_DATA","tmplCount","generateImpliedEndTagsThoroughly","errCode","_reconstructActiveFormattingElements","addressStartTagInBody","hasInButtonScope","_closePElement","preStartTagInBody","skipNextNewLine","bStartTagInBody","appletStartTagInBody","areaStartTagInBody","paramStartTagInBody","noembedStartTagInBody","optgroupStartTagInBody","rbStartTagInBody","genericStartTagInBody","activeElementEntry","aStartTagInBody","numberedHeaderStartTagInBody","elementTn","closeTn","generateImpliedEndTagsWithExclusion","listItemStartTagInBody","hrStartTagInBody","rtStartTagInBody","xmpStartTagInBody","selfClosing","svgStartTagInBody","adoptAttributes","htmlStartTagInBody","bodyElement","tryPeekProperlyNestedBodyElement","bodyStartTagInBody","inTemplate","formElement","formStartTagInBody","nobrStartTagInBody","mathStartTagInBody","menuStartTagInBody","tableStartTagInBody","inputType","inputStartTagInBody","imageStartTagInBody","buttonStartTagInBody","iframeStartTagInBody","selectStartTagInBody","framesetStartTagInBody","textareaStartTagInBody","plaintextStartTagInBody","addressEndTagInBody","appletEndTagInBody","pEndTagInBody","hasInListItemScope","liEndTagInBody","ddEndTagInBody","hasNumberedHeaderInScope","popUntilNumberedHeaderPopped","numberedHeaderEndTagInBody","brEndTagInBody","bodyEndTagInBody","htmlEndTagInBody","formEndTagInBody","tmplInsertionModeStackTop","curTn","tokenInTable","clearBackToTableContext","tdStartTagInTable","colStartTagInTable","formStartTagInTable","tableStartTagInTable","tbodyStartTagInTable","inputStartTagInTable","captionStartTagInTable","colgroupStartTagInTable","savedFosterParentingState","fosterParentingEnabled","_processTokenInBodyMode","hasInSelectScope","prevOpenElement","prevOpenElementTn","createDocument","write","parseFragment","documentMock","_initTokenizerForFragmentParsing","_findFormInFragmentContext","rootElement","getFirstChild","fragment","createDocumentFragment","tmplInsertionModeStack","currentTmplInsertionMode","_setupTokenizerCDATAMode","getNextToken","HIBERNATION_TOKEN","chars","substr","runParsingLoopForCurrentChunk","writeCallback","script","_getAdjustedCurrentElement","allowCDATA","_isIntegrationPoint","nextTokenizerState","switchToPlaintextParsing","getParentNode","setDocumentType","tmpl","setTemplateContent","createCommentNode","_fosterParentText","insertText","donor","recipient","child","_shouldProcessTokenInForeignContent","isCharacterToken","characterInForeignContent","nullCharacterInForeignContent","currentNs","startTagInForeignContent","endTagInForeignContent","listLength","unopenIdx","popUntilTableCellPopped","last","_resetInsertionModeForSelect","selectIdx","ancestor","openElement","insertBefore","insertTextBefore","isImpliedEndTagRequired","isImpliedEndTagRequiredThoroughly","isScopingElement","_indexOf","_isInTemplate","_updateCurrentElement","oldElement","referenceElement","insertionIdx","poppedElement","elementIdx","exclusionTagName","Preprocessor","neTree","$$","C1_CONTROLS_REFERENCE_REPLACEMENTS","DATA_STATE","RCDATA_STATE","RAWTEXT_STATE","SCRIPT_DATA_STATE","PLAINTEXT_STATE","TAG_OPEN_STATE","END_TAG_OPEN_STATE","TAG_NAME_STATE","RCDATA_LESS_THAN_SIGN_STATE","RCDATA_END_TAG_OPEN_STATE","RCDATA_END_TAG_NAME_STATE","RAWTEXT_LESS_THAN_SIGN_STATE","RAWTEXT_END_TAG_OPEN_STATE","RAWTEXT_END_TAG_NAME_STATE","SCRIPT_DATA_LESS_THAN_SIGN_STATE","SCRIPT_DATA_END_TAG_OPEN_STATE","SCRIPT_DATA_END_TAG_NAME_STATE","SCRIPT_DATA_ESCAPE_START_STATE","SCRIPT_DATA_ESCAPE_START_DASH_STATE","SCRIPT_DATA_ESCAPED_STATE","SCRIPT_DATA_ESCAPED_DASH_STATE","SCRIPT_DATA_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE","BEFORE_ATTRIBUTE_NAME_STATE","ATTRIBUTE_NAME_STATE","AFTER_ATTRIBUTE_NAME_STATE","BEFORE_ATTRIBUTE_VALUE_STATE","ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE","ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE","ATTRIBUTE_VALUE_UNQUOTED_STATE","AFTER_ATTRIBUTE_VALUE_QUOTED_STATE","SELF_CLOSING_START_TAG_STATE","BOGUS_COMMENT_STATE","MARKUP_DECLARATION_OPEN_STATE","COMMENT_START_STATE","COMMENT_START_DASH_STATE","COMMENT_STATE","COMMENT_LESS_THAN_SIGN_STATE","COMMENT_LESS_THAN_SIGN_BANG_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE","COMMENT_END_DASH_STATE","COMMENT_END_STATE","COMMENT_END_BANG_STATE","DOCTYPE_STATE","BEFORE_DOCTYPE_NAME_STATE","DOCTYPE_NAME_STATE","AFTER_DOCTYPE_NAME_STATE","AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE","BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE","DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE","BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE","AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE","BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE","DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE","BOGUS_DOCTYPE_STATE","CDATA_SECTION_STATE","CDATA_SECTION_BRACKET_STATE","CDATA_SECTION_END_STATE","CHARACTER_REFERENCE_STATE","NAMED_CHARACTER_REFERENCE_STATE","AMBIGUOUS_AMPERSAND_STATE","NUMERIC_CHARACTER_REFERENCE_STATE","HEXADEMICAL_CHARACTER_REFERENCE_START_STATE","DECIMAL_CHARACTER_REFERENCE_START_STATE","HEXADEMICAL_CHARACTER_REFERENCE_STATE","DECIMAL_CHARACTER_REFERENCE_STATE","NUMERIC_CHARACTER_REFERENCE_END_STATE","isWhitespace","isAsciiDigit","isAsciiUpper","isAsciiLower","isAsciiLetter","isAsciiAlphaNumeric","isAsciiUpperHexDigit","isAsciiLowerHexDigit","toAsciiLowerCodePoint","toChar","toAsciiLowerChar","findNamedEntityTreeBranch","nodeIx","branchCount","lo","hi","mid","midCp","tokenQueue","returnState","charRefCode","tempBuff","lastStartTagName","consumedAfterSnapshot","active","_errOnNextCodePoint","_consume","_unconsume","_ensureHibernation","shift","chunk","isLastChunk","insertHtmlAtCurrentPos","endOfChunkHit","_reconsumeInState","_consumeSequenceIfMatch","startCp","consumedCount","isMatch","patternLength","patternCp","patternPos","_isTempBufferEqualToScriptString","ct","_emitEOFToken","_appendCharToCurrentCharacterToken","_emitCodePoint","_emitSeveralCodePoints","codePoints","_emitChars","_matchNamedCharacterReference","excess","inNode","HAS_DATA_FLAG","_isCharacterReferenceInAttribute","_isCharacterReferenceAttributeQuirk","withSemicolon","nextCp","_flushCodePointsConsumedAsCharacterReference","matchResult","isAsciiHexDigit","replacement","DATA","attrName","Uint16Array","lastGapPos","lastCharPos","gapStack","lastChunkWritten","bufferWaterline","_addGap","_processSurrogate","substring","_checkForProblematicCharacters","nodeName","childNodes","parentNode","createTextNode","newNode","referenceNode","templateElement","contentElement","doctypeNode","prevNode","recipientAttrsMap","getTextNodeContent","getCommentNodeContent","getDocumentTypeNodeName","getDocumentTypeNodePublicId","getDocumentTypeNodeSystemId","isTextNode","isCommentNode","isElementNode","sourceCodeLocation","endLocation","reduce","merged","optObj","originalMethods","overriddenMethods","Ctor","__mixins","mixin","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ca","a","b","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","ja","ka","la","ma","v","d","e","f","g","acceptsBooleans","attributeName","attributeNamespace","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","Ma","Na","Oa","prepareStackTrace","set","Reflect","construct","l","h","k","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","get","getValue","setValue","stopTracking","Ua","Wa","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","valueOf","firstChild","removeChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","tb","menuitem","area","base","br","embed","hr","img","keygen","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","tel","time","url","week","me","ne","oe","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","console","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","onclick","createElementNS","T","Hj","Ij","Jj","Kj","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","dl","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","JSON","stringify","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","StyleToObject","hasIterator","len","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","map","count","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","ctx","globalThis","self","global","restore","Prism","manual","disableWorkerMessageHandler","decode","markup","css","clike","js","Refractor","refract","register","grammar","languages","highlight","sup","util","alias","registered","listLanguages","encode","tokens","Token","env","stringifyAll","classes","hooks","run","refractor","abap","lookbehind","keyword","operator","punctuation","aliases","abnf","coreRules","greedy","inside","terminal","repetition","RegExp","rule","actionscript","ada","variable","agda","function","antlr4","command","annotation","constant","g4","apacheconf","regex","refractorSql","apex","keywords","insertClassName","classNameInside","sql","trigger","apl","statement","assignment","dfn","applescript","aql","identifier","refractorCpp","arduino","builtin","ino","arff","asciidoc","quoted","interpreted","table","specifiers","admonition","callout","macro","inline","italic","bold","copyFromAsciiDoc","o","rest","adoc","asm6502","directive","asmatmel","refractorCsharp","aspnet","csharp","javascript","autohotkey","important","autoit","avisynth","replacements","allinternals","argument","avs","avroIdl","avdl","bash","envVars","commandAfterHeredoc","insideString","environment","shebang","toBeCopied","shell","basic","batch","parameter","bbcode","shortcode","bicep","interpolation","expression","datatype","decorator","birb","metadata","refractorC","bison","delimiter","bnf","rbnf","brainfuck","pointer","decrement","branching","brightscript","bro","bsl","oscript","cfscript","cfc","chaiscript","cpp","cil","clojure","cmake","inserted","cobol","level","coffeescript","coffee","concurnas","langext","conc","coq","commentSource","punct","modName","generic","refractorRuby","crystal","ruby","args","expansion","nested","depthLog2","keywordKinds","keywordsToPattern","words","typeDeclarationKeywords","nonTypeKeywords","nonContextualKeywords","nestedRound","genericName","typeExpressionWithoutTuple","tupleElement","tuple","typeExpression","typeInside","regularString","verbatimString","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","attr","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolationRound","dotnet","cs","cshtml","commentLike","stringLike","round","square","curly","angle","tagAttrs","tagContent","tagRegion","block","razor","csp","none","hash","cssExtras","selectorInside","class","combinator","unit","hexcode","atrule","addInlined","addAttribute","csv","cypher","relationship","dart","packagePrefix","generics","dataweave","dax","measure","dhall","coord","PREFIXES","unchanged","refractorMarkupTemplating","django","filter","markupTemplating","buildPlaceholders","tokenizePlaceholders","jinja2","dnsZoneFile","docker","spaceAfterBackSlash","stringRule","commentRule","instruction","dockerfile","dot","ID","IDInside","withID","gv","ebnf","special","editorconfig","section","eiffel","ejs","eta","elixir","doc","atom","elm","hvariable","erb","erlang","refractorLua","etlua","lua","excelFormula","sheet","file","path","cell","row","factor","comment_inside","string_inside","regexp","combinators","arrToWordsRegExp","builtins","$false","firestoreSecurityRules","flow","fortran","fsharp","ftl","FTL_EXPR","gap","continuation","gcode","checksum","gdscript","gedcom","gherkin","tableRow","pystring","feature","scenario","outline","git","deleted","glsl","gml","gamemakerlanguage","gn","gni","goModule","go","graphql","description","markdown","scalar","validTokens","currentIndex","startToken","inputVariables","isTokenType","getToken","definitionEnd","findClosingBracket","addAlias","mutationEnd","varToken","close","stackHeight","groovy","haml","filters","all_filters","handlebars","brackets","hbs","haskell","hs","haxe","reification","hcl","heredoc","hlsl","hoon","hpkp","hsts","http","headerValueOf","uri","header","langs","httpLanguages","json","plain","suffixTypes","getSuffixPattern","contentType","suffix","ichigojam","icon","icuMessageFormat","stringPattern","argumentSource","nestedMessage","refractorHaskell","idris","idr","iecst","address","ignore","gitignore","hgignore","npmignore","inform7","substitution","verb","ini","io","adverb","conjunction","java","classNamePrefix","refractorJava","refractorJavadoclike","javadoc","codeLinePattern","memberReference","field","javadoclike","addSupport","javaDocLike","docLanguage","tokenName","docCommentSupport","hashbang","javastacktrace","exceptions","more","jexl","jolie","aggregates","redirects","jq","stringInterpolation","jsExtras","withId","imports","spread","arrow","dom","maybeClassNameTokens","jsTemplates","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","getPlaceholder","counter","tokenizeWithHooks","tokenize","tokenizeInterpolationExpression","tempGrammar","tokenizeEmbedded","_tokens","placeholderCounter","placeholderMap","embeddedTokens","interpolationExpression","placeholders","walkTokens","s","before","middle","after","afterTokens","Boolean","supportedLanguages","typescript","ts","tsx","stringContent","findTemplateStrings","embedded","refractorTypescript","jsdoc","parameterPrefix","example","null","webmanifest","refractorJson","json5","jsonp","jsstacktrace","braces","stringifyToken","openedTags","notTagNorBrace","openedBraces","plainText","julia","keepalived","ip","keyman","kotlin","interpolationInside","kt","kts","kumir","nonId","wrapId","prolog","kum","kusto","latex","funcPattern","insideEqu","cdata","equation","headline","tex","refractorPhp","latte","php","markupLatte","less","refractorScheme","lilypond","schemeExpression","ly","liquid","empty","insideRaw","tagMatch","lisp","simple_form","primitive","marker","par","nestedPar","heading","interactive","defvar","defun","lambda","car","arg","varform","forms","arglist","sublist","elisp","emacs","livescript","llvm","exception","separator","domain","uuid","lolcode","magma","generator","makefile","inner","createInline","tableCell","tableLine","yaml","blockquote","strike","codeLang","codeBlock","cls","tagPattern","fromCodePoint","known","KNOWN_ENTITY_NAMES","plugins","autoloader","floor","loadLanguages","ele","getElementById","amp","lt","gt","quot","defineProperties","placeholderPattern","replaceFilter","tokenStack","includedCdataInside","def","mathml","svg","ssml","rss","matlab","maxscript","mel","flag","mermaid","mizar","mongodb","operators","operatorsSource","monkey","moonscript","moon","n1ql","n4js","n4jsd","nand2tetrisHdl","naniscript","expressionDef","params","getTextContent","define","nani","bracket","bracketsIndex","isBracketsBalanced","nasm","neon","literal","nevod","fields","quantifier","colon","nginx","nim","nix","antiquotation","nsis","objectivec","objc","ocaml","variant","opencl","openqasm","qasm","oz","parigp","pascal","asm","objectpascal","pascaligo","accum","pcaxis","tlist","px","peoplecode","pcode","perl","filehandle","phpExtras","package","string_interpolation","phpdoc","plsql","powerquery","pq","mscript","powershell","processing","promql","vectorMatching","protobuf","builtinTypes","psl","pug","each","branch","filter_pattern","puppet","pure","inlineLanguageRe","purebasic","pbfasm","purescript","purs","python","py","qml","jsString","jsComment","jsExpr","qore","qsharp","qualifiedName","interpolationExpr","qs","ellipsis","racket","rkt","specialEscape","rangeChar","groupName","backreference","anchor","group","alternation","rego","renpy","rpy","rip","roboconf","component","optional","wildcard","robotframework","createSection","extendecInside","docTag","testNameLike","testPropertyLike","documentation","variables","tasks","robot","percentExpression","symbolName","rust","multilineComment","sas","numericConstant","macroVariable","macroKeyword","format","equals","altformat","globalStatements","submitStatement","actionSets","casActions","datalines","sass","scala","SortedBNF","scss","refractorBash","shellSession","strings","user","smali","smalltalk","smarty","smartyPattern","smartyLiteralMode","sml","word","smlnj","solidity","sol","solutionFile","guid","soy","numberPattern","soyLitteralMode","refractorTurtle","sparql","rq","splunkSpl","sqf","squirrel","stan","higherOrderFunctions","constraint","stylus","swift","nil","omit","systemd","quotesSource","refractorT4Templating","t4Cs","t4","createT4","t4Templating","createBlock","contentAlias","insideLang","standard","refractorVbnet","t4Vb","refractorYaml","tap","fail","pass","pragma","bailout","plan","subtest","yamlish","tcl","textile","modifierRegex","parenthesesRegex","withModifier","modifierTokens","phrase","modifier","image","footnote","acronym","phraseInside","nestedPatterns","phraseInlineInside","phraseTableInside","toml","insertKey","tremor","extractor","troy","trickle","refractorJsx","tt2","turtle","trig","twig","at","typoscript","tsconfig","unrealscript","category","uscript","uorazor","query","pair","authority","port","vala","refractorBasic","vbnet","velocity","unparsed","verilog","vhdl","vim","visualBasic","vba","warpscript","wasm","webIdl","wiki","emphasis","nowiki","wolfram","blank","mathematica","wren","xeora","xeoracube","xmlDoc","insertDocComment","docComment","slashDocComment","tickDocComment","xojo","xquery","extension","anchorOrAlias","plainKey","createValuePattern","yml","yang","zig","IDENTIFIER","ALIGN","_self","uniqueId","plainTextGrammar","objId","deepClone","visited","getLanguage","parentElement","setLanguage","classList","currentScript","scripts","getElementsByTagName","isActive","defaultActivation","no","plaintext","txt","redef","insert","root","newToken","old","DFS","propertyType","highlightAll","highlightAllUnder","container","elements","highlightElement","insertHighlightedCode","highlightedCode","hasAttribute","Worker","worker","onmessage","evt","postMessage","immediateClose","tokenList","LinkedList","addAfter","head","matchGrammar","all","callbacks","matchedStr","matchPattern","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","currentNode","reach","removeCount","from","to","matchStr","removeFrom","removeRange","nestedRematch","highlightAutomaticallyCallback","readyState","requestAnimationFrame","WorkerGlobalScope","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","toStringTag","stringifyPosition","point","VFileMessage","place","origin","parts","fatal","ruleId","actual","expected","note","basename","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","segments","sep","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","proc","cwd","isUrl","fileURLOrPath","urlToPath","URL","protocol","hostname","pathname","third","decodeURIComponent","getPathFromURLPosix","VFile","buffer","history","stored","assertNonEmpty","assertPart","stem","encoding","part","bail","getPrototypeOf","middleware","called","parameters","fnExpectsCallback","unified","transformers","fns","pipeline","middlewareIndex","fn","use","middelware","trough","attachers","frozen","freezeIndex","processor","assertUnfrozen","Parser","Compiler","freeze","attacher","transformer","POSITIVE_INFINITY","addPlugin","addList","addPreset","plugin","isPlainObj","vfile","assertParser","newable","assertCompiler","assertNode","compile","executor","reject","tree","runSync","complete","assertDone","process","processSync","destination","asyncName","looksLikeAVFile","includeImageAlt","one","chunkStart","combineExtensions","extensions","syntaxExtension","hook","right","constructs","existing","asciiAlpha","regexCheck","asciiDigit","asciiHexDigit","asciiAlphanumeric","asciiPunctuation","asciiAtext","asciiControl","markdownLineEndingOrSpace","markdownLineEnding","markdownSpace","unicodeWhitespace","unicodePunctuation","factorySpace","limit","enter","consume","exit","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","item","containerState","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","events","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","seen","nok","disable","blankLine","partial","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","childEvents","gaps","breaks","_gfmTasklistFirstContentOfListItem","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","initial","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","tabs","bufferIndex","_index","_bufferIndex","createTokenizer","initialize","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","expectedCode","startIndex","startBufferIndex","endIndex","endBufferIndex","sliceChunks","chunkIndex","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","resolveTo","thematicBreak","sequence","initialSize","atMarker","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","factoryLabel","markerType","labelEscape","factoryTitle","atFirstTitleBreak","atTitleBreak","titleEscape","factoryWhitespace","normalizeIdentifier","labelAfter","titleConstruct","codeIndented","afterStartPrefix","afterPrefix","indentedContent","headingAtx","fenceOpenInside","headingBreak","setextUnderline","paragraph","closingSequence","closingSequenceEnd","htmlBlockNames","htmlRawNames","htmlFlow","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","htmlLineEnd","continuationRawEndTag","codeFenced","closingFenceConstruct","closingSequenceStart","sizeOpen","nonLazyLine","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","balanced","afterLabelEnd","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","insideSpan","destinationAfter","between","afterLabel","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","declarationOpen","tagOpen","commentOpen","cdataOpen","commentStart","commentStartDash","commentClose","atLineEnding","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","labelStartLink","hardBreakEscape","codeText","tailExitIndex","headEnterIndex","resolveText","decodeNumericCharacterReference","characterEscapeOrReference","decodeString","$1","$2","hex","fromMarkdown","config","configure","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","listStack","resume","setData","getData","prepareList","handler","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","depth","referenceType","ordered","compiler","postprocess","defaultConstructs","atCarriageReturn","endPosition","preprocess","combined","normalizeUri","skip","convert","castFactory","typeFactory","anyFactory","propsFactory","visitParents","visitor","reverse","parents","visit","subresult","grandparents","toResult","pointStart","pointEnd","clean","footnoteReference","safeId","footnoteOrder","footnoteCounts","reuseCounter","clobberPrefix","dataFootnoteRef","patch","applyData","revert","subtype","contents","listItemLoose","trimLines","trimLine","codePointAt","handlers","break","footnoteById","dangerous","imageReference","inlineCode","linkReference","loose","listLoose","firstRow","tableContent","cellIndex","cells","alignValue","footnoteDefinition","createState","allowDangerousHtml","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","footnoteBackLabel","unknownHandler","passThrough","augment","hName","hProperties","hChildren","defaultUnknownHandler","toHast","foot","listItems","referenceIndex","backReferences","backReference","dataFootnoteBackref","tailTail","dataFootnotes","footer","bridge","mutate","onContextLost","onContextRestored","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillRule","floodColor","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textDecoration","textRendering","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","orient","orientation","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","htmlBase","svgBase","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","thing","dashes","hastToReact","padRight","padLeft","protocols","uriTransformer","first","tableElements","childrenToReact","childIndex","toReact","skipHtml","transformLinkUri","parentSchema","listDepth","components","React","ReactIs","linkTarget","transformImageUri","getInputElement","getElementsBeforeCount","textAlign","isHeader","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","styleReplacer","parseStyle","deprecated","renderers","astPlugins","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","warn","remarkParse","remarkPlugins","remarkRehype","remarkRehypeOptions","rehypePlugins","hastNode","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_arrayLikeToArray","arr2","_toConsumableArray","iter","minLen","_defineProperty","_extends","ownKeys","enumerableOnly","symbols","sym","_objectSpread","getOwnPropertyDescriptors","propTypes","classNameCombinations","getClassNameCombinations","classNames","arrLength","powerSetPermutations","createStyleObject","elementStyle","stylesheet","nonTokenClassNames","classNamesCombinations","styleObject","createClassNameString","_ref","_ref$style","useInlineStyles","TagName","childrenCreator","childrenCount","createChildren","allStylesheetSelectors","startingClassName","_excluded","newLineRegex","AllLineNumbers","_ref2","codeString","codeStyle","_ref2$containerStyle","containerStyle","paddingRight","_ref2$numberStyle","numberStyle","startingLineNumber","getAllLineNumbers","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","num","defaultLineNumberStyle","minWidth","userSelect","customLineNumberStyle","createLineElement","_ref3","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","flattenCodeTree","newTree","processLines","codeTree","wrapLines","_ref4","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","_loop","splitValue","newChild","_line","stringChild","lastLineInPreviousSpan","newElem","_line2","_line3","defaultRenderer","_ref5","isHighlightJs","astGenerator","highlightAuto","defaultAstGenerator","defaultStyle","highlighter","_ref7","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","hljs","backgroundColor","generatorClassName","preProps","defaultCodeValue","_ref6","hasLanguage","checkForListedLanguage","getCodeTree","www","w2","w3","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","namedCharacterReference","punctuationContinuation","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","wwwAutolink","previousWww","previousUnbalanced","httpAutolink","previousHttp","t1","t2","slash1","slash2","emailAutolink","hasDot","hasDigitInLastSegment","gfmAtext","previousEmail","atext","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","gfmAutolinkLiteral","_gfmAutolinkLiteralWalkedInto","tokenizePotentialGfmFootnoteCall","gfmFootnotes","resolveToPotentialGfmFootnoteCall","tokenizeGfmFootnoteCall","callStart","callData","callEscape","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","gfmStrikethrough","single","singleTilde","tokenizeStrikethrough","resolveAllStrikethrough","strikethrough","gfmTable","seenDelimiter","hasDash","tableHeaderCount","_align","cellDividerHead","inCellContentHead","cellBreakHead","originalInterrupt","tokenizeRowEnd","atDelimiterRowBreak","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","inHead","inDelimiterRow","inRow","cellStart","seenCellInRow","tasklistCheck","spaceThenNonSpace","gfmTaskListItem","gfm","ccount","findAndReplace","ignored","pairs","toExpression","toFunction","toPairs","pairIndex","grandparent","change","matchObject","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","findUrl","findEmail","literalAutolink","literalAutolinkEmail","enterLiteralAutolinkValue","literalAutolinkHttp","literalAutolinkWww","gfmAutolinkLiteralToMarkdown","unsafe","isCorrectDomain","trailExec","closingParenIndex","openingParens","closingParens","trail","splitUrl","association","options_","lineShift","move","containerFlow","safeOptions","indexStack","tracker","handle","bulletLastUsed","eol","indentLines","patternCompile","_compiled","patternInScope","listInScope","safe","positions","infos","sort","numerical","escapeBackslashes","whole","gfmFootnoteToMarkdown","peek","subexit","containerPhrasing","gfmStrikethroughFromMarkdown","gfmStrikethroughToMarkdown","handleDelete","serialize","defaultStringLength","toAlignment","gfmTableFromMarkdown","tableData","enterCell","tableHeader","gfmTableToMarkdown","padding","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","serializeData","handleTableRowAsData","handleTableAsData","handleTableCell","matrix","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","columnIndex","delimiterStart","delimiterEnd","markdownTable","listItemIndent","checkListItemIndent","bullet","bulletCurrent","checkBullet","incrementListMarker","gfmTaskListItemFromMarkdown","taskListCheckValueChecked","exitCheck","taskListCheckValueUnchecked","firstParaghraph","gfmTaskListItemToMarkdown","checkable","checkbox","gfmFromMarkdown","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","gfmToMarkdown","remarkGfm","buttonTypes","core","isProperties","finalResult","webNamespaces","ast","verbose","opening","closing","createLocation","quirksMode","indices","toPoint","toOffset","isFile","toH","react","_isVue","vue","vdom","hyperscript","subprop","zwitch","unknown","p5","htmlVoidElements","endTagToken","parseOptions","raw","resetTokenizer","createParse5Location","locationTracker","stitches","stitch","fromParse5","mock","toParse5","rehypeRaw","CopyButton","valueToCopy","copied","setCopied","handleClick","clipboard","writeText","setFilter","typeFilter","setTypeFilter","expandedItems","setExpandedItems","expandedCategories","setExpandedCategories","handleExpandItem","newExpanded","handleCategoryClick","newExpandedCategory","clearFilters","filtered","typeFilteredItems","filterData","wait","immediate","timeout","debounce","coldarkDark","ReactDOM"],"sourceRoot":""}