{"version":3,"file":"scripts.min.js","mappings":"sEAOA,MAEMA,EAAiB,gBAyBjBC,EAAcC,IAClB,IAAIC,EAAWD,EAAQE,aAAa,kBAEpC,IAAKD,GAAyB,MAAbA,EAAkB,CACjC,IAAIE,EAAWH,EAAQE,aAAa,QAMpC,IAAKC,IAAcA,EAASC,SAAS,OAASD,EAASE,WAAW,KAChE,OAAO,KAILF,EAASC,SAAS,OAASD,EAASE,WAAW,OACjDF,EAAW,IAAIA,EAASG,MAAM,KAAK,MAGrCL,EAAWE,GAAyB,MAAbA,EAAmBA,EAASI,OAAS,KAG9D,OAAON,GA0CHO,EAAuBR,IAC3BA,EAAQS,cAAc,IAAIC,MAAMZ,KAG5Ba,EAAYC,MACXA,GAAsB,iBAARA,UAIO,IAAfA,EAAIC,SACbD,EAAMA,EAAI,SAGmB,IAAjBA,EAAIE,UAGdC,EAAaH,GACbD,EAAUC,GACLA,EAAIC,OAASD,EAAI,GAAKA,EAGZ,iBAARA,GAAoBA,EAAII,OAAS,EACnCC,SAASC,cAAcN,GAGzB,KAiBHO,EAAYnB,MACXW,EAAUX,IAAgD,IAApCA,EAAQoB,iBAAiBJ,SAIgB,YAA7DK,iBAAiBrB,GAASsB,iBAAiB,cAyD9CC,EAAY,KAChB,MAAM,OAAEC,GAAWC,OAEnB,OAAID,IAAWP,SAASS,KAAKC,aAAa,qBACjCH,EAGF,MAGHI,EAA4B,GAiB5BC,EAAQ,IAAuC,QAAjCZ,SAASa,gBAAgBC,IAmBvCC,EAAUC,IACU,mBAAbA,GACTA,KAIEC,EAAyB,CAACD,EAAUE,EAAmBC,GAAoB,KAC/E,IAAKA,EAEH,YADAJ,EAAQC,GAIV,MACMI,EA1LiCrC,CAAAA,IACvC,IAAKA,EACH,OAAO,EAIT,IAAI,mBAAEsC,EAAkB,gBAAEC,GAAoBd,OAAOJ,iBAAiBrB,GAEtE,MAAMwC,EAA0BC,OAAOC,WAAWJ,GAC5CK,EAAuBF,OAAOC,WAAWH,GAG/C,OAAKC,GAA4BG,GAKjCL,EAAqBA,EAAmBhC,MAAM,KAAK,GACnDiC,EAAkBA,EAAgBjC,MAAM,KAAK,GArFf,KAuFtBmC,OAAOC,WAAWJ,GAAsBG,OAAOC,WAAWH,KAPzD,GA6KgBK,CAAiCT,GADlC,EAGxB,IAAIU,GAAS,EAEb,MAAMC,EAAU,EAAGC,OAAAA,MACbA,IAAWZ,IAIfU,GAAS,EACTV,EAAkBa,oBAAoBlD,EAAgBgD,GACtDd,EAAQC,KAGVE,EAAkBc,iBAAiBnD,EAAgBgD,GACnDI,YAAW,KACJL,GACHrC,EAAqB2B,KAEtBE,ICzQCc,EAAiB,qBACjBC,EAAiB,OACjBC,EAAgB,SAChBC,EAAgB,GACtB,IAAIC,EAAW,EACf,MAAMC,EAAe,CACnBC,WAAY,YACZC,WAAY,YAERC,EAAoB,4BACpBC,EAAe,IAAIC,IAAI,CAC3B,QACA,WACA,UACA,YACA,cACA,aACA,iBACA,YACA,WACA,YACA,cACA,YACA,UACA,WACA,QACA,oBACA,aACA,YACA,WACA,cACA,cACA,cACA,YACA,eACA,gBACA,eACA,gBACA,aACA,QACA,OACA,SACA,QACA,SACA,SACA,UACA,WACA,OACA,SACA,eACA,SACA,OACA,mBACA,mBACA,QACA,QACA,WASF,SAASC,EAAY9D,EAAS+D,GAC5B,OAAQA,GAAO,GAAGA,MAAQR,OAAiBvD,EAAQuD,UAAYA,IAGjE,SAASS,EAAShE,GAChB,MAAM+D,EAAMD,EAAY9D,GAKxB,OAHAA,EAAQuD,SAAWQ,EACnBT,EAAcS,GAAOT,EAAcS,IAAQ,GAEpCT,EAAcS,GAsCvB,SAASE,EAAYC,EAAQpB,EAASqB,EAAqB,MACzD,MAAMC,EAAeC,OAAOC,KAAKJ,GAEjC,IAAK,IAAIK,EAAI,EAAGC,EAAMJ,EAAapD,OAAQuD,EAAIC,EAAKD,IAAK,CACvD,MAAME,EAAQP,EAAOE,EAAaG,IAElC,GAAIE,EAAMC,kBAAoB5B,GAAW2B,EAAMN,qBAAuBA,EACpE,OAAOM,EAIX,OAAO,KAGT,SAASE,EAAgBC,EAAmB9B,EAAS+B,GACnD,MAAMC,EAAgC,iBAAZhC,EACpB4B,EAAkBI,EAAaD,EAAe/B,EAEpD,IAAIiC,EAAYC,EAAaJ,GAO7B,OANiBhB,EAAaqB,IAAIF,KAGhCA,EAAYH,GAGP,CAACE,EAAYJ,EAAiBK,GAGvC,SAASG,EAAWlF,EAAS4E,EAAmB9B,EAAS+B,EAAcM,GACrE,GAAiC,iBAAtBP,IAAmC5E,EAC5C,OAUF,GAPK8C,IACHA,EAAU+B,EACVA,EAAe,MAKblB,EAAkByB,KAAKR,GAAoB,CAC7C,MAAMS,EAASC,GACN,SAAUb,GACf,IAAKA,EAAMc,eAAkBd,EAAMc,gBAAkBd,EAAMe,iBAAmBf,EAAMe,eAAeC,SAAShB,EAAMc,eAChH,OAAOD,EAAGI,KAAKC,KAAMlB,IAKvBI,EACFA,EAAeQ,EAAOR,GAEtB/B,EAAUuC,EAAOvC,GAIrB,MAAOgC,EAAYJ,EAAiBK,GAAaJ,EAAgBC,EAAmB9B,EAAS+B,GACvFX,EAASF,EAAShE,GAClB4F,EAAW1B,EAAOa,KAAeb,EAAOa,GAAa,IACrDc,EAAa5B,EAAY2B,EAAUlB,EAAiBI,EAAahC,EAAU,MAEjF,GAAI+C,EAGF,YAFAA,EAAWV,OAASU,EAAWV,QAAUA,GAK3C,MAAMpB,EAAMD,EAAYY,EAAiBE,EAAkBkB,QAAQ3C,EAAgB,KAC7EmC,EAAKR,EA3Fb,SAAoC9E,EAASC,EAAUqF,GACrD,OAAO,SAASxC,EAAQ2B,GACtB,MAAMsB,EAAc/F,EAAQgG,iBAAiB/F,GAE7C,IAAK,IAAI,OAAE8C,GAAW0B,EAAO1B,GAAUA,IAAW4C,KAAM5C,EAASA,EAAOkD,WACtE,IAAK,IAAI1B,EAAIwB,EAAY/E,OAAQuD,KAC/B,GAAIwB,EAAYxB,KAAOxB,EAOrB,OANA0B,EAAMe,eAAiBzC,EAEnBD,EAAQqC,QACVe,EAAaC,IAAInG,EAASyE,EAAM2B,KAAMnG,EAAUqF,GAG3CA,EAAGe,MAAMtD,EAAQ,CAAC0B,IAM/B,OAAO,MAyEP6B,CAA2BtG,EAAS8C,EAAS+B,GAxGjD,SAA0B7E,EAASsF,GACjC,OAAO,SAASxC,EAAQ2B,GAOtB,OANAA,EAAMe,eAAiBxF,EAEnB8C,EAAQqC,QACVe,EAAaC,IAAInG,EAASyE,EAAM2B,KAAMd,GAGjCA,EAAGe,MAAMrG,EAAS,CAACyE,KAiG1B8B,CAAiBvG,EAAS8C,GAE5BwC,EAAGnB,mBAAqBW,EAAahC,EAAU,KAC/CwC,EAAGZ,gBAAkBA,EACrBY,EAAGH,OAASA,EACZG,EAAG/B,SAAWQ,EACd6B,EAAS7B,GAAOuB,EAEhBtF,EAAQiD,iBAAiB8B,EAAWO,EAAIR,GAG1C,SAAS0B,EAAcxG,EAASkE,EAAQa,EAAWjC,EAASqB,GAC1D,MAAMmB,EAAKrB,EAAYC,EAAOa,GAAYjC,EAASqB,GAE9CmB,IAILtF,EAAQgD,oBAAoB+B,EAAWO,EAAImB,QAAQtC,WAC5CD,EAAOa,GAAWO,EAAG/B,WAe9B,SAASyB,EAAaP,GAGpB,OADAA,EAAQA,EAAMqB,QAAQ1C,EAAgB,IAC/BI,EAAaiB,IAAUA,EAGhC,MAAMyB,EAAe,CACnBQ,GAAG1G,EAASyE,EAAO3B,EAAS+B,GAC1BK,EAAWlF,EAASyE,EAAO3B,EAAS+B,GAAc,IAGpD8B,IAAI3G,EAASyE,EAAO3B,EAAS+B,GAC3BK,EAAWlF,EAASyE,EAAO3B,EAAS+B,GAAc,IAGpDsB,IAAInG,EAAS4E,EAAmB9B,EAAS+B,GACvC,GAAiC,iBAAtBD,IAAmC5E,EAC5C,OAGF,MAAO8E,EAAYJ,EAAiBK,GAAaJ,EAAgBC,EAAmB9B,EAAS+B,GACvF+B,EAAc7B,IAAcH,EAC5BV,EAASF,EAAShE,GAClB6G,EAAcjC,EAAkBvE,WAAW,KAEjD,QAA+B,IAApBqE,EAAiC,CAE1C,IAAKR,IAAWA,EAAOa,GACrB,OAIF,YADAyB,EAAcxG,EAASkE,EAAQa,EAAWL,EAAiBI,EAAahC,EAAU,MAIhF+D,GACFxC,OAAOC,KAAKJ,GAAQ4C,SAAQC,KAhDlC,SAAkC/G,EAASkE,EAAQa,EAAWiC,GAC5D,MAAMC,EAAoB/C,EAAOa,IAAc,GAE/CV,OAAOC,KAAK2C,GAAmBH,SAAQI,IACrC,GAAIA,EAAW9G,SAAS4G,GAAY,CAClC,MAAMvC,EAAQwC,EAAkBC,GAEhCV,EAAcxG,EAASkE,EAAQa,EAAWN,EAAMC,gBAAiBD,EAAMN,wBA0CrEgD,CAAyBnH,EAASkE,EAAQ6C,EAAcnC,EAAkBwC,MAAM,OAIpF,MAAMH,EAAoB/C,EAAOa,IAAc,GAC/CV,OAAOC,KAAK2C,GAAmBH,SAAQO,IACrC,MAAMH,EAAaG,EAAYvB,QAAQzC,EAAe,IAEtD,IAAKuD,GAAehC,EAAkBxE,SAAS8G,GAAa,CAC1D,MAAMzC,EAAQwC,EAAkBI,GAEhCb,EAAcxG,EAASkE,EAAQa,EAAWN,EAAMC,gBAAiBD,EAAMN,yBAK7EmD,QAAQtH,EAASyE,EAAO8C,GACtB,GAAqB,iBAAV9C,IAAuBzE,EAChC,OAAO,KAGT,MAAMwH,EAAIjG,IACJwD,EAAYC,EAAaP,GACzBmC,EAAcnC,IAAUM,EACxB0C,EAAW7D,EAAaqB,IAAIF,GAElC,IAAI2C,EACAC,GAAU,EACVC,GAAiB,EACjBC,GAAmB,EACnBC,EAAM,KA4CV,OA1CIlB,GAAeY,IACjBE,EAAcF,EAAE9G,MAAM+D,EAAO8C,GAE7BC,EAAExH,GAASsH,QAAQI,GACnBC,GAAWD,EAAYK,uBACvBH,GAAkBF,EAAYM,gCAC9BH,EAAmBH,EAAYO,sBAG7BR,GACFK,EAAM7G,SAASiH,YAAY,cAC3BJ,EAAIK,UAAUpD,EAAW4C,GAAS,IAElCG,EAAM,IAAIM,YAAY3D,EAAO,CAC3BkD,QAAAA,EACAU,YAAY,SAKI,IAATd,GACTlD,OAAOC,KAAKiD,GAAMT,SAAQwB,IACxBjE,OAAOkE,eAAeT,EAAKQ,EAAK,CAC9BE,IAAG,IACMjB,EAAKe,QAMhBT,GACFC,EAAIW,iBAGFb,GACF5H,EAAQS,cAAcqH,GAGpBA,EAAID,uBAA2C,IAAhBH,GACjCA,EAAYe,iBAGPX,IAIX,ICpVA,SAASY,EAAcC,GACrB,MAAY,SAARA,GAIQ,UAARA,IAIAA,IAAQlG,OAAOkG,GAAKC,WACfnG,OAAOkG,GAGJ,KAARA,GAAsB,SAARA,EACT,KAGFA,GAGT,SAASE,EAAiBP,GACxB,OAAOA,EAAIxC,QAAQ,UAAUgD,GAAO,IAAIA,EAAIC,kBAG9C,MAgDA,EAhDoB,CAClBC,iBAAiBhJ,EAASsI,EAAKW,GAC7BjJ,EAAQkJ,aAAa,WAAWL,EAAiBP,KAAQW,IAG3DE,oBAAoBnJ,EAASsI,GAC3BtI,EAAQoJ,gBAAgB,WAAWP,EAAiBP,OAGtDe,kBAAkBrJ,GAChB,IAAKA,EACH,MAAO,GAGT,MAAMsJ,EAAa,GAUnB,OARAjF,OAAOC,KAAKtE,EAAQuJ,SACjBC,QAAOlB,GAAOA,EAAIjI,WAAW,QAC7ByG,SAAQwB,IACP,IAAImB,EAAUnB,EAAIxC,QAAQ,MAAO,IACjC2D,EAAUA,EAAQC,OAAO,GAAGX,cAAgBU,EAAQrC,MAAM,EAAGqC,EAAQzI,QACrEsI,EAAWG,GAAWf,EAAc1I,EAAQuJ,QAAQjB,OAGjDgB,GAGTK,iBAAgB,CAAC3J,EAASsI,IACjBI,EAAc1I,EAAQE,aAAa,WAAW2I,EAAiBP,OAGxEsB,OAAO5J,GACL,MAAM6J,EAAO7J,EAAQ8J,wBAErB,MAAO,CACLC,IAAKF,EAAKE,IAAMtI,OAAOuI,YACvBC,KAAMJ,EAAKI,KAAOxI,OAAOyI,cAI7BC,SAASnK,IACA,CACL+J,IAAK/J,EAAQoK,UACbH,KAAMjK,EAAQqK,cCiBpB,EA1EuB,CACrBC,KAAI,CAACrK,EAAUD,EAAUiB,SAASa,kBACzB,GAAGyI,UAAUC,QAAQC,UAAUzE,iBAAiBN,KAAK1F,EAASC,IAGvEyK,QAAO,CAACzK,EAAUD,EAAUiB,SAASa,kBAC5B0I,QAAQC,UAAUvJ,cAAcwE,KAAK1F,EAASC,GAGvD0K,SAAQ,CAAC3K,EAASC,IACT,GAAGsK,UAAUvK,EAAQ2K,UACzBnB,QAAOoB,GAASA,EAAMC,QAAQ5K,KAGnC6K,QAAQ9K,EAASC,GACf,MAAM6K,EAAU,GAEhB,IAAIC,EAAW/K,EAAQiG,WAEvB,KAAO8E,GAAYA,EAASjK,WAAakK,KAAKC,cArBhC,IAqBgDF,EAASjK,UACjEiK,EAASF,QAAQ5K,IACnB6K,EAAQI,KAAKH,GAGfA,EAAWA,EAAS9E,WAGtB,OAAO6E,GAGTK,KAAKnL,EAASC,GACZ,IAAImL,EAAWpL,EAAQqL,uBAEvB,KAAOD,GAAU,CACf,GAAIA,EAASP,QAAQ5K,GACnB,MAAO,CAACmL,GAGVA,EAAWA,EAASC,uBAGtB,MAAO,IAGTC,KAAKtL,EAASC,GACZ,IAAIqL,EAAOtL,EAAQuL,mBAEnB,KAAOD,GAAM,CACX,GAAIA,EAAKT,QAAQ5K,GACf,MAAO,CAACqL,GAGVA,EAAOA,EAAKC,mBAGd,MAAO,IAGTC,kBAAkBxL,GAChB,MAAMyL,EAAa,CACjB,IACA,SACA,QACA,WACA,SACA,UACA,aACA,4BACAC,KAAIzL,GAAY,GAAGA,2BAAiC0L,KAAK,MAE3D,OAAOhG,KAAK2E,KAAKmB,EAAYzL,GAASwJ,QAAOoC,IH6D9B5L,CAAAA,IACZA,GAAWA,EAAQc,WAAakK,KAAKC,gBAItCjL,EAAQ6L,UAAUpG,SAAS,mBAIC,IAArBzF,EAAQ8L,SACV9L,EAAQ8L,SAGV9L,EAAQ2B,aAAa,aAAoD,UAArC3B,EAAQE,aAAa,aG1EV6L,CAAWH,IAAOzK,EAAUyK,OC1E9EI,EAAa,IAAIC,IAEvB,GACEC,IAAIlM,EAASsI,EAAK6D,GACXH,EAAW/G,IAAIjF,IAClBgM,EAAWE,IAAIlM,EAAS,IAAIiM,KAG9B,MAAMG,EAAcJ,EAAWxD,IAAIxI,GAI9BoM,EAAYnH,IAAIqD,IAA6B,IAArB8D,EAAYC,KAMzCD,EAAYF,IAAI5D,EAAK6D,GAJnBG,QAAQC,MAAM,+EAA+EC,MAAMC,KAAKL,EAAY9H,QAAQ,QAOhIkE,IAAG,CAACxI,EAASsI,IACP0D,EAAW/G,IAAIjF,IACVgM,EAAWxD,IAAIxI,GAASwI,IAAIF,IAG9B,KAGToE,OAAO1M,EAASsI,GACd,IAAK0D,EAAW/G,IAAIjF,GAClB,OAGF,MAAMoM,EAAcJ,EAAWxD,IAAIxI,GAEnCoM,EAAYO,OAAOrE,GAGM,IAArB8D,EAAYC,MACdL,EAAWW,OAAO3M,KCqBxB,QApDA,MACE4M,YAAY5M,IACVA,EAAUe,EAAWf,MAMrB2F,KAAKkH,SAAW7M,EAChB,MAAS2F,KAAKkH,SAAUlH,KAAKiH,YAAYE,SAAUnH,OAGrDoH,UACE,SAAYpH,KAAKkH,SAAUlH,KAAKiH,YAAYE,UAC5C,MAAiBnH,KAAKkH,SAAUlH,KAAKiH,YAAYI,WAEjD3I,OAAO4I,oBAAoBtH,MAAMmB,SAAQoG,IACvCvH,KAAKuH,GAAgB,QAIzBC,eAAelL,EAAUjC,EAASoN,GAAa,GAC7ClL,EAAuBD,EAAUjC,EAASoN,GAK5CC,mBAAmBrN,GACjB,OAAO,MAASe,EAAWf,GAAU2F,KAAKmH,UAG5CO,2BAA2BrN,EAASsN,EAAS,IAC3C,OAAO3H,KAAK4H,YAAYvN,IAAY,IAAI2F,KAAK3F,EAA2B,iBAAXsN,EAAsBA,EAAS,MAGnFE,qBACT,MAtCY,QAyCHC,kBACT,MAAM,IAAIC,MAAM,uEAGPZ,sBACT,MAAO,MAAMnH,KAAK8H,OAGTT,uBACT,MAAO,IAAIrH,KAAKmH,aC1CdW,EAAO,WAUPE,EAAU,CACdC,SAAU,IACVC,UAAU,EACVC,OAAO,EACPC,MAAO,QACPC,MAAM,EACNC,OAAO,GAGHC,EAAc,CAClBN,SAAU,mBACVC,SAAU,UACVC,MAAO,mBACPC,MAAO,mBACPC,KAAM,UACNC,MAAO,WAGHE,EAAa,OACbC,EAAa,OACbC,EAAiB,OACjBC,EAAkB,QAElBC,EAAmB,CACvB,UAAkBD,EAClB,WAAmBD,GAIfG,EAAa,mBAcbC,EAAoB,SASpBC,EAAuB,wBAiB7B,MAAMC,UAAiB,EACrB/B,YAAY5M,EAASsN,GACnBsB,MAAM5O,GAEN2F,KAAKkJ,OAAS,KACdlJ,KAAKmJ,UAAY,KACjBnJ,KAAKoJ,eAAiB,KACtBpJ,KAAKqJ,WAAY,EACjBrJ,KAAKsJ,YAAa,EAClBtJ,KAAKuJ,aAAe,KACpBvJ,KAAKwJ,YAAc,EACnBxJ,KAAKyJ,YAAc,EAEnBzJ,KAAK0J,QAAU1J,KAAK2J,WAAWhC,GAC/B3H,KAAK4J,mBAAqB,UA3BF,uBA2B8C5J,KAAKkH,UAC3ElH,KAAK6J,gBAAkB,iBAAkBvO,SAASa,iBAAmB2N,UAAUC,eAAiB,EAChG/J,KAAKgK,cAAgBlJ,QAAQhF,OAAOmO,cAEpCjK,KAAKkK,qBAKIlC,qBACT,OAAOA,EAGEF,kBACT,OAAOA,EAKTnC,OACE3F,KAAKmK,OAAO3B,GAGd4B,mBAGO9O,SAAS+O,QAAU7O,EAAUwE,KAAKkH,WACrClH,KAAK2F,OAITH,OACExF,KAAKmK,OAAO1B,GAGdL,MAAMtJ,GACCA,IACHkB,KAAKqJ,WAAY,GAGf,UApEmB,2CAoEwBrJ,KAAKkH,YAClDrM,EAAqBmF,KAAKkH,UAC1BlH,KAAKsK,OAAM,IAGbC,cAAcvK,KAAKmJ,WACnBnJ,KAAKmJ,UAAY,KAGnBmB,MAAMxL,GACCA,IACHkB,KAAKqJ,WAAY,GAGfrJ,KAAKmJ,YACPoB,cAAcvK,KAAKmJ,WACnBnJ,KAAKmJ,UAAY,MAGfnJ,KAAK0J,SAAW1J,KAAK0J,QAAQzB,WAAajI,KAAKqJ,YACjDrJ,KAAKwK,kBAELxK,KAAKmJ,UAAYsB,aACdnP,SAASoP,gBAAkB1K,KAAKoK,gBAAkBpK,KAAK2F,MAAMgF,KAAK3K,MACnEA,KAAK0J,QAAQzB,WAKnB2C,GAAGC,GACD7K,KAAKoJ,eAAiB,UAAuBL,EAAsB/I,KAAKkH,UACxE,MAAM4D,EAAc9K,KAAK+K,cAAc/K,KAAKoJ,gBAE5C,GAAIyB,EAAQ7K,KAAKkJ,OAAO7N,OAAS,GAAKwP,EAAQ,EAC5C,OAGF,GAAI7K,KAAKsJ,WAEP,YADA,MAAiBtJ,KAAKkH,SAAU2B,GAAY,IAAM7I,KAAK4K,GAAGC,KAI5D,GAAIC,IAAgBD,EAGlB,OAFA7K,KAAKoI,aACLpI,KAAKsK,QAIP,MAAMU,EAAQH,EAAQC,EACpBtC,EACAC,EAEFzI,KAAKmK,OAAOa,EAAOhL,KAAKkJ,OAAO2B,IAKjClB,WAAWhC,GAOT,OANAA,EAAS,IACJK,KACA,oBAA8BhI,KAAKkH,aAChB,iBAAXS,EAAsBA,EAAS,INhGxB,EAACsD,EAAetD,EAAQuD,KAC9CxM,OAAOC,KAAKuM,GAAa/J,SAAQgK,IAC/B,MAAMC,EAAgBF,EAAYC,GAC5B7H,EAAQqE,EAAOwD,GACfE,EAAY/H,GAAStI,EAAUsI,GAAS,UArH5CrI,OADSA,EAsHsDqI,GApH1D,GAAGrI,IAGL,GAAGgI,SAASlD,KAAK9E,GAAKqQ,MAAM,eAAe,GAAGlI,cALxCnI,IAAAA,EAwHX,IAAK,IAAIsQ,OAAOH,GAAe3L,KAAK4L,GAClC,MAAM,IAAIG,UACR,GAAGP,EAAcQ,0BAA0BN,qBAA4BE,yBAAiCD,WM0F5GM,CAAgB5D,EAAMH,EAAQY,GACvBZ,EAGTgE,eACE,MAAMC,EAAYC,KAAKC,IAAI9L,KAAKyJ,aAEhC,GAAImC,GAnMgB,GAoMlB,OAGF,MAAMG,EAAYH,EAAY5L,KAAKyJ,YAEnCzJ,KAAKyJ,YAAc,EAEdsC,GAIL/L,KAAKmK,OAAO4B,EAAY,EAAIpD,EAAkBD,GAGhDwB,qBACMlK,KAAK0J,QAAQxB,UACf,KAAgBlI,KAAKkH,SApLL,uBAoL8BpI,GAASkB,KAAKgM,SAASlN,KAG5C,UAAvBkB,KAAK0J,QAAQtB,QACf,KAAgBpI,KAAKkH,SAvLF,0BAuL8BpI,GAASkB,KAAKoI,MAAMtJ,KACrE,KAAgBkB,KAAKkH,SAvLF,0BAuL8BpI,GAASkB,KAAKsK,MAAMxL,MAGnEkB,KAAK0J,QAAQpB,OAAStI,KAAK6J,iBAC7B7J,KAAKiM,0BAITA,0BACE,MAAMC,EAAqBpN,GAClBkB,KAAKgK,gBAnKO,QAoKhBlL,EAAMqN,aArKY,UAqKwBrN,EAAMqN,aAG/CC,EAAQtN,IACRoN,EAAmBpN,GACrBkB,KAAKwJ,YAAc1K,EAAMuN,QACfrM,KAAKgK,gBACfhK,KAAKwJ,YAAc1K,EAAMwN,QAAQ,GAAGD,UAIlCE,EAAOzN,IAEXkB,KAAKyJ,YAAc3K,EAAMwN,SAAWxN,EAAMwN,QAAQjR,OAAS,EACzD,EACAyD,EAAMwN,QAAQ,GAAGD,QAAUrM,KAAKwJ,aAG9BgD,EAAM1N,IACNoN,EAAmBpN,KACrBkB,KAAKyJ,YAAc3K,EAAMuN,QAAUrM,KAAKwJ,aAG1CxJ,KAAK2L,eACsB,UAAvB3L,KAAK0J,QAAQtB,QASfpI,KAAKoI,QACDpI,KAAKuJ,cACPkD,aAAazM,KAAKuJ,cAGpBvJ,KAAKuJ,aAAehM,YAAWuB,GAASkB,KAAKsK,MAAMxL,IA3Q5B,IA2Q6DkB,KAAK0J,QAAQzB,YAIrG,OAtNsB,qBAsNiBjI,KAAKkH,UAAU/F,SAAQuL,IAC5D,KAAgBA,EAvOG,yBAuOwB5N,GAASA,EAAMgE,sBAGxD9C,KAAKgK,eACP,KAAgBhK,KAAKkH,SA7OD,2BA6O8BpI,GAASsN,EAAMtN,KACjE,KAAgBkB,KAAKkH,SA7OH,yBA6O8BpI,GAAS0N,EAAI1N,KAE7DkB,KAAKkH,SAAShB,UAAUyG,IAnOG,mBAqO3B,KAAgB3M,KAAKkH,SArPF,0BAqP8BpI,GAASsN,EAAMtN,KAChE,KAAgBkB,KAAKkH,SArPH,yBAqP8BpI,GAASyN,EAAKzN,KAC9D,KAAgBkB,KAAKkH,SArPJ,wBAqP8BpI,GAAS0N,EAAI1N,MAIhEkN,SAASlN,GACP,GAAI,kBAAkBW,KAAKX,EAAM1B,OAAOwP,SACtC,OAGF,MAAMb,EAAYnD,EAAiB9J,EAAM6D,KACrCoJ,IACFjN,EAAMgE,iBACN9C,KAAKmK,OAAO4B,IAIhBhB,cAAc1Q,GAKZ,OAJA2F,KAAKkJ,OAAS7O,GAAWA,EAAQiG,WAC/B,OArPgB,iBAqPmBjG,EAAQiG,YAC3C,GAEKN,KAAKkJ,OAAO2D,QAAQxS,GAG7ByS,gBAAgB9B,EAAO+B,GACrB,MAAMC,EAAShC,IAAUxC,EACzB,MNpDyB,EAACyE,EAAMF,EAAeG,EAAeC,KAChE,IAAItC,EAAQoC,EAAKJ,QAAQE,GAGzB,IAAe,IAAXlC,EACF,OAAOoC,GAAMC,GAAiBC,EAAiBF,EAAK5R,OAAS,EAAI,GAGnE,MAAM+R,EAAaH,EAAK5R,OAQxB,OANAwP,GAASqC,EAAgB,GAAK,EAE1BC,IACFtC,GAASA,EAAQuC,GAAcA,GAG1BH,EAAKpB,KAAKwB,IAAI,EAAGxB,KAAKyB,IAAIzC,EAAOuC,EAAa,MMoC5CG,CAAqBvN,KAAKkJ,OAAQ6D,EAAeC,EAAQhN,KAAK0J,QAAQrB,MAG/EmF,mBAAmB5N,EAAe6N,GAChC,MAAMC,EAAc1N,KAAK+K,cAAcnL,GACjC+N,EAAY3N,KAAK+K,cAAc,UAAuBhC,EAAsB/I,KAAKkH,WAEvF,OAAO,UAAqBlH,KAAKkH,SA7RjB,oBA6RwC,CACtDtH,cAAAA,EACAmM,UAAW0B,EACX3G,KAAM6G,EACN/C,GAAI8C,IAIRE,2BAA2BvT,GACzB,GAAI2F,KAAK4J,mBAAoB,CAC3B,MAAMiE,EAAkB,UAhRN,UAgR8C7N,KAAK4J,oBAErEiE,EAAgB3H,UAAUa,OAAO+B,GACjC+E,EAAgBpK,gBAAgB,gBAEhC,MAAMqK,EAAa,OA/QE,mBA+QsC9N,KAAK4J,oBAEhE,IAAK,IAAIhL,EAAI,EAAGA,EAAIkP,EAAWzS,OAAQuD,IACrC,GAAI9B,OAAOiR,SAASD,EAAWlP,GAAGrE,aAAa,oBAAqB,MAAQyF,KAAK+K,cAAc1Q,GAAU,CACvGyT,EAAWlP,GAAGsH,UAAUyG,IAAI7D,GAC5BgF,EAAWlP,GAAG2E,aAAa,eAAgB,QAC3C,QAMRiH,kBACE,MAAMnQ,EAAU2F,KAAKoJ,gBAAkB,UAAuBL,EAAsB/I,KAAKkH,UAEzF,IAAK7M,EACH,OAGF,MAAM2T,EAAkBlR,OAAOiR,SAAS1T,EAAQE,aAAa,oBAAqB,IAE9EyT,GACFhO,KAAK0J,QAAQuE,gBAAkBjO,KAAK0J,QAAQuE,iBAAmBjO,KAAK0J,QAAQzB,SAC5EjI,KAAK0J,QAAQzB,SAAW+F,GAExBhO,KAAK0J,QAAQzB,SAAWjI,KAAK0J,QAAQuE,iBAAmBjO,KAAK0J,QAAQzB,SAIzEkC,OAAO+D,EAAkB7T,GACvB,MAAM2Q,EAAQhL,KAAKmO,kBAAkBD,GAC/BnB,EAAgB,UAAuBhE,EAAsB/I,KAAKkH,UAClEkH,EAAqBpO,KAAK+K,cAAcgC,GACxCsB,EAAchU,GAAW2F,KAAK8M,gBAAgB9B,EAAO+B,GAErDuB,EAAmBtO,KAAK+K,cAAcsD,GACtCE,EAAYzN,QAAQd,KAAKmJ,WAEzB6D,EAAShC,IAAUxC,EACnBgG,EAAuBxB,EAjUR,sBADF,oBAmUbyB,EAAiBzB,EAjUH,qBACA,qBAiUdS,EAAqBzN,KAAK0O,kBAAkB1D,GAElD,GAAIqD,GAAeA,EAAYnI,UAAUpG,SAASgJ,GAEhD,YADA9I,KAAKsJ,YAAa,GAIpB,GAAItJ,KAAKsJ,WACP,OAIF,GADmBtJ,KAAKwN,mBAAmBa,EAAaZ,GACzCvL,iBACb,OAGF,IAAK6K,IAAkBsB,EAErB,OAGFrO,KAAKsJ,YAAa,EAEdiF,GACFvO,KAAKoI,QAGPpI,KAAK4N,2BAA2BS,GAChCrO,KAAKoJ,eAAiBiF,EAEtB,MAAMM,EAAmB,KACvB,UAAqB3O,KAAKkH,SAAU2B,EAAY,CAC9CjJ,cAAeyO,EACftC,UAAW0B,EACX3G,KAAMsH,EACNxD,GAAI0D,KAIR,GAAItO,KAAKkH,SAAShB,UAAUpG,SA5WP,SA4WmC,CACtDuO,EAAYnI,UAAUyG,IAAI8B,GN1PjBpU,CAAAA,IAEbA,EAAQuU,cM0PJC,CAAOR,GAEPtB,EAAc7G,UAAUyG,IAAI6B,GAC5BH,EAAYnI,UAAUyG,IAAI6B,GAE1B,MAAMM,EAAmB,KACvBT,EAAYnI,UAAUa,OAAOyH,EAAsBC,GACnDJ,EAAYnI,UAAUyG,IAAI7D,GAE1BiE,EAAc7G,UAAUa,OAAO+B,EAAmB2F,EAAgBD,GAElExO,KAAKsJ,YAAa,EAElB/L,WAAWoR,EAAkB,IAG/B3O,KAAKwH,eAAesH,EAAkB/B,GAAe,QAErDA,EAAc7G,UAAUa,OAAO+B,GAC/BuF,EAAYnI,UAAUyG,IAAI7D,GAE1B9I,KAAKsJ,YAAa,EAClBqF,IAGEJ,GACFvO,KAAKsK,QAIT6D,kBAAkBpC,GAChB,MAAK,CAACpD,EAAiBD,GAAgBjO,SAASsR,GAI5C7P,IACK6P,IAAcrD,EAAiBD,EAAaD,EAG9CuD,IAAcrD,EAAiBF,EAAaC,EAP1CsD,EAUX2C,kBAAkB1D,GAChB,MAAK,CAACxC,EAAYC,GAAYhO,SAASuQ,GAInC9O,IACK8O,IAAUvC,EAAaC,EAAiBC,EAG1CqC,IAAUvC,EAAaE,EAAkBD,EAPvCsC,EAYXtD,yBAAyBrN,EAASsN,GAChC,MAAMoH,EAAO/F,EAASgG,oBAAoB3U,EAASsN,GAEnD,IAAI,QAAE+B,GAAYqF,EACI,iBAAXpH,IACT+B,EAAU,IACLA,KACA/B,IAIP,MAAMsH,EAA2B,iBAAXtH,EAAsBA,EAAS+B,EAAQvB,MAE7D,GAAsB,iBAAXR,EACToH,EAAKnE,GAAGjD,QACH,GAAsB,iBAAXsH,EAAqB,CACrC,QAA4B,IAAjBF,EAAKE,GACd,MAAM,IAAIzD,UAAU,oBAAoByD,MAG1CF,EAAKE,UACIvF,EAAQzB,UAAYyB,EAAQwF,OACrCH,EAAK3G,QACL2G,EAAKzE,SAIT5C,uBAAuBC,GACrB,OAAO3H,KAAKmP,MAAK,WACfnG,EAASoG,kBAAkBpP,KAAM2H,MAIrCD,2BAA2B5I,GACzB,MAAM1B,ENtdqB/C,CAAAA,IAC7B,MAAMC,EAAWF,EAAYC,GAE7B,OAAOC,EAAWgB,SAASC,cAAcjB,GAAY,MMmdpC+U,CAAuBrP,MAEtC,IAAK5C,IAAWA,EAAO8I,UAAUpG,SA7cT,YA8ctB,OAGF,MAAM6H,EAAS,IACV,oBAA8BvK,MAC9B,oBAA8B4C,OAE7BsP,EAAatP,KAAKzF,aAAa,oBAEjC+U,IACF3H,EAAOM,UAAW,GAGpBe,EAASoG,kBAAkBhS,EAAQuK,GAE/B2H,GACFtG,EAASpB,YAAYxK,GAAQwN,GAAG0E,GAGlCxQ,EAAMgE,kBN1UiByM,IAAAA,EAjBAjT,EMqW3B,KAAgBhB,SA7ea,6BAkBD,sCA2dyC0N,EAASwG,qBAE9E,KAAgB1T,OAhfY,6BAgfiB,KAC3C,MAAM2T,EAAY,OA7dO,6BA+dzB,IAAK,IAAI7Q,EAAI,EAAGC,EAAM4Q,EAAUpU,OAAQuD,EAAIC,EAAKD,IAC/CoK,EAASoG,kBAAkBK,EAAU7Q,GAAIoK,EAASpB,YAAY6H,EAAU7Q,QN1VjD2Q,EMqWRvG,ENtXQ1M,EAkBN,KACjB,MAAMuF,EAAIjG,IAEV,GAAIiG,EAAG,CACL,MAAM6N,EAAOH,EAAOzH,KACd6H,EAAqB9N,EAAElC,GAAG+P,GAChC7N,EAAElC,GAAG+P,GAAQH,EAAOK,gBACpB/N,EAAElC,GAAG+P,GAAMG,YAAcN,EACzB1N,EAAElC,GAAG+P,GAAMI,WAAa,KACtBjO,EAAElC,GAAG+P,GAAQC,EACNJ,EAAOK,mBA3BQ,YAAxBtU,SAASyU,YAEN9T,EAA0BZ,QAC7BC,SAASgC,iBAAiB,oBAAoB,KAC5CrB,EAA0BkF,SAAQ7E,GAAYA,SAIlDL,EAA0BsJ,KAAKjJ,IAE/BA,IM6WJ,W,cC9kBO,IAAI0T,ECCAnL,ECDAoL,E,mDFCX,SAAWD,GACPA,EAAQE,YAAc,SAAUC,EAAKC,GAEjC,YADW,IAAPA,IAAiBA,EAAK,KACtBD,EACOpC,SAASoC,GAEbC,GAAoB,iBAAPA,EAAkBrC,SAASqC,GAAM,GAN7D,CAQGJ,IAAYA,EAAU,KCPzB,SAAWnL,GACP,IAAI7J,EAAY,SAAUX,GAAW,OAAOA,aAAmBgW,aAC/DxL,EAAQyL,UAAY,SAAUjW,EAASkW,GACnC7R,OAAOC,KAAK4R,GAAQxK,KAAI,SAAUpD,GAC9BtI,EAAQmW,MAAM7N,GAAO4N,EAAO5N,OAGpCkC,EAAQ4L,aAAe,SAAUpW,GAC7B,IAAIqW,EAAgB5U,OAAOJ,iBAAiBrB,GAC5C,MAAO,CACHsW,OAAQX,EAAQE,YAAYQ,EAAcC,QAC1CC,QAAS,CACLxM,IAAK4L,EAAQE,YAAYQ,EAAcG,YACvCC,OAAQd,EAAQE,YAAYQ,EAAcK,gBAE9CC,OAAQ,CACJ5M,IAAK4L,EAAQE,YAAYQ,EAAcO,gBACvCH,OAAQd,EAAQE,YAAYQ,EAAcQ,sBAItDrM,EAAQzJ,WAAa,SAAUf,GAC3B,GAAIW,EAAUX,GACV,OAAOA,EAEX,IAAI8W,EAAsB7V,SAASC,cAAclB,GACjD,GAAIW,EAAUmW,GACV,OAAOA,EAEX,MAAM,IAAIpJ,MAAM,4CAEpBlD,EAAQtB,aAAe,SAAUlJ,EAAS+W,EAAW9N,GACjDjJ,EAAQkJ,aAAa6N,EAAW9N,IAEpCuB,EAAQtK,aAAe,SAAUF,EAAS+W,GACtC,OAAO/W,EAAQE,aAAa6W,IAnCpC,CAqCGvM,IAAYA,EAAU,KCtCzB,SAAWoL,GACPA,EAAOlP,GAAK,SAAU1G,EAASyE,EAAOxC,GAElC,OADAjC,EAAQiD,iBAAiBwB,EAAOxC,GACzB,CACH+U,QAAS,WAAc,OAAOhX,GAAWA,EAAQgD,oBAAoByB,EAAOxC,MAJxF,CAOG2T,IAAWA,EAAS,KCRvB,IAaWqB,ECZPC,EDDAC,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAI,GACR,IAAK,IAAIC,KAAKH,EAAO/S,OAAOoG,UAAU+M,eAAe9R,KAAK0R,EAAGG,IAAMF,EAAE7E,QAAQ+E,GAAK,IAC9ED,EAAEC,GAAKH,EAAEG,IACb,GAAS,MAALH,GAAqD,mBAAjC/S,OAAOoT,sBACtB,KAAIlT,EAAI,EAAb,IAAgBgT,EAAIlT,OAAOoT,sBAAsBL,GAAI7S,EAAIgT,EAAEvW,OAAQuD,IAC3D8S,EAAE7E,QAAQ+E,EAAEhT,IAAM,GAAKF,OAAOoG,UAAUiN,qBAAqBhS,KAAK0R,EAAGG,EAAEhT,MACvE+S,EAAEC,EAAEhT,IAAM6S,EAAEG,EAAEhT,KAE1B,OAAO+S,IAKX,SAAWL,GACP,IAAIU,EAAuB,oBACvBC,EAA0B,SAAU3V,GACpC4V,sBAAsB5V,IAEtB6V,EAAgB,SAAUC,GAC1B,IAAIC,EAAKD,EAAQE,YAAaA,OAAqB,IAAPD,EAAgB,IAAMA,EAAIE,EAAKH,EAAQI,mBACnF,MAAO,OAASF,EAAc,YADqG,IAAPC,EAAgB,SAAWA,GAC5F,OAI/DjB,EAAQmB,eAAiB,SAAUpY,GAE/B,IADgBwK,EAAQtK,aAAaF,EAAS2X,GAC9B,CACZ,IAAIrB,EAAS9L,EAAQ4L,aAAapW,GAASsW,OAC3C,OAAOA,GAAUA,EAAS,EAE9B,MAA+D,SAAxD9L,EAAQtK,aAAaF,EAAS2X,IAEzCV,EAAQoB,KAAO,SAAUrY,EAAS+X,GAC9B,IAAIC,EACJ,IAZW,SAAUhY,GAAW,MAA+D,UAAxDwK,EAAQtK,aAAaF,EAAS2X,GAYjEW,CAAStY,GAAb,CAGoC,QAAnCgY,EAAKD,EAAQQ,wBAAqC,IAAPP,GAAyBA,EAAGtS,KAAKqS,GAC7E,IAAIG,EAAK1N,EAAQ4L,aAAapW,GAAUsW,EAAS4B,EAAG5B,OAAQkC,EAAYrB,EAAOe,EAAI,CAAC,WACpF1N,EAAQyL,UAAUjW,EAAS,CAAEyY,WAAY,KACzCb,GAAwB,WACpBpN,EAAQyL,UAAUjW,EAAS,CACvB0Y,SAAU,SACVpC,OAAQA,EAAS,KACjBE,WAAYgC,EAAUjC,QAAQxM,IAAM,KACpC2M,cAAe8B,EAAUjC,QAAQE,OAAS,KAC1CG,eAAgB4B,EAAU7B,OAAO5M,IAAM,KACvC8M,kBAAmB2B,EAAU7B,OAAOF,OAAS,KAC7CgC,WAAYX,EAAcC,KAE9BH,GAAwB,WACpBpN,EAAQyL,UAAUjW,EAAS,CACvBsW,OAAQ,IACRE,WAAY,IACZE,cAAe,IACfE,eAAgB,IAChBC,kBAAmB,MAEvB,IAAIpS,EAAQmR,EAAOlP,GAAG1G,EAAS,iBAAiB,WAC5C,IAAIgY,EACJvT,EAAMuS,UAC4B,QAAjCgB,EAAKD,EAAQY,sBAAmC,IAAPX,GAAyBA,EAAGtS,KAAKqS,YAIvFvN,EAAQtB,aAAalJ,EAAS2X,EAAsB,WAExDV,EAAQ2B,KAAO,SAAU5Y,EAAS+X,GAC9B,IAAIC,EACJ,IA9CU,SAAUhY,GAAW,MAA+D,SAAxDwK,EAAQtK,aAAaF,EAAS2X,GA8ChEkB,CAAQ7Y,GAAZ,CAGoC,QAAnCgY,EAAKD,EAAQQ,wBAAqC,IAAPP,GAAyBA,EAAGtS,KAAKqS,GAC7EvN,EAAQyL,UAAUjW,EAAS,CACvByY,WAAY,GACZK,QAAS,QACTxC,OAAQ,OACRE,WAAY,GACZE,cAAe,GACfE,eAAgB,GAChBC,kBAAmB,KAEvB,IAAIqB,EAAK1N,EAAQ4L,aAAapW,GAAUsW,EAAS4B,EAAG5B,OAAQkC,EAAYrB,EAAOe,EAAI,CAAC,WACpF1N,EAAQyL,UAAUjW,EAAS,CACvB8Y,QAAS,SAEblB,GAAwB,WACpBpN,EAAQyL,UAAUjW,EAAS,CACvB8Y,QAAS,QACTJ,SAAU,SACVpC,OAAQ,IACRE,WAAY,IACZE,cAAe,IACfE,eAAgB,IAChBC,kBAAmB,IACnB4B,WAAYX,EAAcC,KAE9BH,GAAwB,WACpBpN,EAAQyL,UAAUjW,EAAS,CACvBsW,OAAQA,EAAS,KACjBE,WAAYgC,EAAUjC,QAAQxM,IAAM,KACpC2M,cAAe8B,EAAUjC,QAAQE,OAAS,KAC1CG,eAAgB4B,EAAU7B,OAAO5M,IAAM,KACvC8M,kBAAmB2B,EAAU7B,OAAOF,OAAS,OAEjD,IAAIhS,EAAQmR,EAAOlP,GAAG1G,EAAS,iBAAiB,WAC5C,IAAIgY,EACJxN,EAAQyL,UAAUjW,EAAS,CACvBsW,OAAQ,GACRoC,SAAU,GACVlC,WAAY,GACZE,cAAe,GACfE,eAAgB,GAChBC,kBAAmB,KAEvBpS,EAAMuS,UAC4B,QAAjCgB,EAAKD,EAAQY,sBAAmC,IAAPX,GAAyBA,EAAGtS,KAAKqS,YAIvFvN,EAAQtB,aAAalJ,EAAS2X,EAAsB,UA3G5D,CA6GGV,IAAYA,EAAU,KCzHzB,SAAWC,GACPA,EAAKxQ,GAAK,SAAU1G,EAAS+X,GACzBd,EAAQoB,KAAKrY,EAAS+X,IAF9B,CAIGb,IAASA,EAAO,KACZ,ICNH6B,EDMOV,EAAO,SAAUrY,EAAS+X,GACjCb,EAAKxQ,GAAG8D,EAAQzJ,WAAWf,GAAU+X,KCNzC,SAAWgB,GACPA,EAAKrS,GAAK,SAAU1G,EAAS+X,GACzBd,EAAQ2B,KAAK5Y,EAAS+X,IAF9B,CAIGgB,IAASA,EAAO,KACZ,ICNHC,EDMOJ,EAAO,SAAU5Y,EAAS+X,GACjCgB,EAAKrS,GAAG8D,EAAQzJ,WAAWf,GAAU+X,KCNzC,SAAWiB,GACPA,EAAOtS,GAAK,SAAU1G,EAAS+X,GACvBd,EAAQmB,eAAepY,GACvBiX,EAAQoB,KAAKrY,EAAS+X,GAGtBd,EAAQ2B,KAAK5Y,EAAS+X,IANlC,CASGiB,IAAWA,EAAS,KAChB,IAAIC,EAAS,SAAUjZ,EAAS+X,GACnCiB,EAAOtS,GAAG8D,EAAQzJ,WAAWf,GAAU+X,K,qDCb3C,aAcA,yBAA8B,GAAO,Q,IAAEA,EAAO,UAExCmB,EAAOjY,SAASkY,qBAAqBpB,EAAQqB,iBAAiB,GAC9DC,EAAoB,MAAPH,EAAcA,EAAI3E,aAAe,EAwBlD,GArBsBtT,SAAS+E,iBAAiB,IAAI+R,EAAQuB,WAAU,KAEtDxS,SAAQ,SAACyS,EAAmB/I,GAC1C+I,EAAKtW,iBAAiB,SAAS,SAACwB,GAC9BA,EAAMgE,iBAEN,IAAM+Q,EAAc/U,EAAMgV,cACpBC,EAAOF,EAAYjQ,QAAQoQ,gBAC3BC,EAASJ,EAAYK,cACrBC,EAAiB7Y,SAASC,cAAc,IAAI6W,EAAQgC,UAAS,KAAKL,EAAI,MAG5EM,SAASN,KAAOA,GAGhB,IAAAT,QAAOa,EAAgB,IACvBF,EAAO/N,UAAUoN,OAAO,GAAGlB,EAAQkC,uBAKpCxY,OAAOuY,SAASN,KAAK,CACtB,IAAMA,EAAOjY,OAAOuY,SAASN,KAAK5T,QAAQ,IAAK,IACzCoU,EAAiBjZ,SAASC,cAAc,IAAI6W,EAAQgC,UAAS,KAAKL,EAAI,MAG5E,GAAGQ,EAAe,CAChB,IAAM,EAAcA,EAAepQ,wBAAwBC,IAAMtI,OAAO0Y,QAAUd,EAC5ES,EAAiB7Y,SAASC,cAAc,IAAI6W,EAAQgC,UAAS,KAAKL,EAAI,MAE5EQ,EAAeL,cAAchO,UAAUyG,IAAI,GAAGyF,EAAQkC,kBAGtD,IAAArB,MAAKkB,EAAgB,CACnBnB,eAAgB,WAEdlX,OAAO2Y,SAAS,CACdrQ,IAAK,EACLE,KAAM,EACNoQ,SAAU,kB,wDC3DtB,EAAQ,KAcR,4BAAiC,GAAO,Q,IAAEtC,EAAO,UAE3CmB,EAAOjY,SAASkY,qBAAqBpB,EAAQqB,iBAAiB,GAC9DC,EAAoB,MAAPH,EAAcA,EAAI3E,aAAe,EAiBlD,GAdsBtT,SAAS+E,iBAAiB,IAAI+R,EAAQuB,WAAU,KAEtDxS,SAAQ,SAACyS,GACvBA,EAAKtW,iBAAiB,SAAS,SAACwB,GAC9BA,EAAMgE,iBAEN,IAAMiR,EAAOH,EAAKrZ,aAAa6X,EAAQuB,YAGvCU,SAASN,KAAOA,QAKjBjY,OAAOuY,SAASN,KAAK,CACtB,IAAMA,EAAOjY,OAAOuY,SAASN,KACvBY,EAAerZ,SAASC,cAAc,IAAI6W,EAAQuB,WAAU,KAAKI,EAAI,MACrEa,EAAgBtZ,SAASC,cAAcwY,GAG7C,GAAGY,GAAgBC,EAAc,CAC/B,IAAMC,EAAcD,EAAczQ,wBAAwBC,IAAMtI,OAAO0Y,QAAUd,EACjFkB,EAAc1O,UAAUoN,OAAO,GAAGlB,EAAQkC,iBAC1CK,EAAazO,UAAUoN,OAAO,GAAGlB,EAAQ0C,eAGzChZ,OAAO2Y,SAAS,CACdrQ,IAAKyQ,EACLvQ,KAAM,EACNoQ,SAAU,gBChDdK,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,IAOV,OAHAE,EAAoBL,GAAUI,EAAQA,EAAOD,QAASJ,GAG/CK,EAAOD,QCpBfJ,EAAoBO,EAAI,CAACH,EAASI,KACjC,IAAI,IAAI7S,KAAO6S,EACXR,EAAoBS,EAAED,EAAY7S,KAASqS,EAAoBS,EAAEL,EAASzS,IAC5EjE,OAAOkE,eAAewS,EAASzS,EAAK,CAAE+S,YAAY,EAAM7S,IAAK2S,EAAW7S,MCJ3EqS,EAAoBS,EAAI,CAACxa,EAAK0a,IAAUjX,OAAOoG,UAAU+M,eAAe9R,KAAK9E,EAAK0a,GCClFX,EAAoBY,EAAKR,IACH,oBAAXS,QAA0BA,OAAOC,aAC1CpX,OAAOkE,eAAewS,EAASS,OAAOC,YAAa,CAAExS,MAAO,WAE7D5E,OAAOkE,eAAewS,EAAS,aAAc,CAAE9R,OAAO,K,kBCLvD,EACA,EAEIyS,EAHJ,SACA,SAEIA,EAASja,OACC,QAAd,EAAAia,EAAOC,eAAO,QAAdD,EAAOC,QAAY,IACA,QAAnB,KAAAD,EAAOC,SAAQC,YAAI,UAAJA,KAIf,SAAkB,IAIlB,SAA2BhB,GAEzB3Z,SAAS+E,iBAAiB,IAAI4U,EAAQ,kBAAkB9T,SAAQ,SAAC0C,GAC7DA,EAAOvG,iBAAiB,SAAS,YAOvC,SAA4BuG,EAAgBoR,GAE1C3Z,SAAS+E,iBAAiB,IAAI4U,EAAQ,sBACnC9T,SAAQ,SAAC+U,GAERA,EAAW1F,MAAM2C,QAAU,QAGb,aAAXtP,GAAyBsS,KAAKC,MAAMF,EAAW3b,aAAa,oBAAoBE,SAASoJ,MAC1FqS,EAAW1F,MAAM2C,QAAU,YAdzBkD,CAAmBxS,EAAOtJ,aAAa,eAAgB0a,SAR/DqB,CAD0B,cAHA,QAA5B,KAAAP,EAAOC,SAAQO,qBAAa,UAAbA,cAAkB,EAAAA,eACF,QAA/B,KAAAR,EAAOC,SAAQQ,wBAAgB,UAAhBA,iBAAqB,EAAAA,mB","sources":["webpack://app-faq4/./node_modules/bs5/js/src/util/index.js","webpack://app-faq4/./node_modules/bs5/js/src/dom/event-handler.js","webpack://app-faq4/./node_modules/bs5/js/src/dom/manipulator.js","webpack://app-faq4/./node_modules/bs5/js/src/dom/selector-engine.js","webpack://app-faq4/./node_modules/bs5/js/src/dom/data.js","webpack://app-faq4/./node_modules/bs5/js/src/base-component.js","webpack://app-faq4/./node_modules/bs5/js/src/carousel.js","webpack://app-faq4/./node_modules/slidetoggle/dist/utils/Numbers.js","webpack://app-faq4/./node_modules/slidetoggle/dist/utils/Element.js","webpack://app-faq4/./node_modules/slidetoggle/dist/utils/Event.js","webpack://app-faq4/./node_modules/slidetoggle/dist/utils/Animate.js","webpack://app-faq4/./node_modules/slidetoggle/dist/common/hide.js","webpack://app-faq4/./node_modules/slidetoggle/dist/common/show.js","webpack://app-faq4/./node_modules/slidetoggle/dist/common/toggle.js","webpack://app-faq4/./src/ts/lib-2sxc-accordion.ts","webpack://app-faq4/./src/ts/lib-2sxc-bs5-accordion.ts","webpack://app-faq4/webpack/bootstrap","webpack://app-faq4/webpack/runtime/define property getters","webpack://app-faq4/webpack/runtime/hasOwnProperty shorthand","webpack://app-faq4/webpack/runtime/make namespace object","webpack://app-faq4/./src/ts/index.ts"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransition\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst customEventsRegex = /^(mouseenter|mouseleave)/i\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n let typeEvent = getTypeEvent(originalTypeEvent)\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn)\n } else {\n handler = wrapFn(handler)\n }\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible } from '../util/index'\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(', ')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\nimport {\n executeAfterTransition,\n getElement\n} from './util/index'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.1.3'\n\nclass BaseComponent {\n constructor(element) {\n element = getElement(element)\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n Object.getOwnPropertyNames(this).forEach(propertyName => {\n this[propertyName] = null\n })\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isRTL,\n isVisible,\n getNextActiveElement,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const hasPointerPenTouch = event => {\n return this._pointerEvent &&\n (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n const start = event => {\n if (hasPointerPenTouch(event)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (hasPointerPenTouch(event)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, event => event.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(direction)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap)\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n if (this._isSliding) {\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const triggerSlidEvent = () => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n setTimeout(triggerSlidEvent, 0)\n }\n\n this._queueCallback(completeCallBack, activeElement, true)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n triggerSlidEvent()\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n const data = Carousel.getOrCreateInstance(element, config)\n\n let { _config } = data\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n","export var Numbers;\n(function (Numbers) {\n Numbers.parseOrElse = function (str, or) {\n if (or === void 0) { or = '0'; }\n if (str) {\n return parseInt(str);\n }\n return or && typeof or === 'string' ? parseInt(or) : 0;\n };\n})(Numbers || (Numbers = {}));\n//# sourceMappingURL=Numbers.js.map","import { Numbers } from './Numbers';\nexport var Element;\n(function (Element) {\n var isElement = function (element) { return element instanceof HTMLElement; };\n Element.setStyles = function (element, styles) {\n Object.keys(styles).map(function (key) {\n element.style[key] = styles[key];\n });\n };\n Element.getBoxStyles = function (element) {\n var computedValue = window.getComputedStyle(element);\n return {\n height: Numbers.parseOrElse(computedValue.height),\n padding: {\n top: Numbers.parseOrElse(computedValue.paddingTop),\n bottom: Numbers.parseOrElse(computedValue.paddingBottom),\n },\n border: {\n top: Numbers.parseOrElse(computedValue.borderTopWidth),\n bottom: Numbers.parseOrElse(computedValue.borderBottomWidth),\n },\n };\n };\n Element.getElement = function (element) {\n if (isElement(element)) {\n return element;\n }\n var elementFromSelector = document.querySelector(element);\n if (isElement(elementFromSelector)) {\n return elementFromSelector;\n }\n throw new Error('Your element does not exist in the DOM.');\n };\n Element.setAttribute = function (element, attribute, value) {\n element.setAttribute(attribute, value);\n };\n Element.getAttribute = function (element, attribute) {\n return element.getAttribute(attribute);\n };\n})(Element || (Element = {}));\n//# sourceMappingURL=Element.js.map","export var Events;\n(function (Events) {\n Events.on = function (element, event, callback) {\n element.addEventListener(event, callback);\n return {\n destroy: function () { return element && element.removeEventListener(event, callback); },\n };\n };\n})(Events || (Events = {}));\n//# sourceMappingURL=Event.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Element } from './Element';\nimport { Events } from './Event';\nexport var Animate;\n(function (Animate) {\n var slideToggleAttribute = 'data-slide-toggle';\n var onRequestAnimationFrame = function (callback) {\n requestAnimationFrame(callback);\n };\n var getTransition = function (options) {\n var _a = options.miliseconds, miliseconds = _a === void 0 ? 200 : _a, _b = options.transitionFunction, transitionFunction = _b === void 0 ? 'linear' : _b;\n return \"all \" + miliseconds + \"ms \" + transitionFunction + \" 0s\";\n };\n var isHidden = function (element) { return Element.getAttribute(element, slideToggleAttribute) === 'false'; };\n var isShown = function (element) { return Element.getAttribute(element, slideToggleAttribute) === 'true'; };\n Animate.shouldCollapse = function (element) {\n var attribute = Element.getAttribute(element, slideToggleAttribute);\n if (!attribute) {\n var height = Element.getBoxStyles(element).height;\n return height && height > 0;\n }\n return Element.getAttribute(element, slideToggleAttribute) === 'true';\n };\n Animate.hide = function (element, options) {\n var _a;\n if (isHidden(element)) {\n return;\n }\n (_a = options.onAnimationStart) === null || _a === void 0 ? void 0 : _a.call(options);\n var _b = Element.getBoxStyles(element), height = _b.height, boxStyles = __rest(_b, [\"height\"]);\n Element.setStyles(element, { transition: '' });\n onRequestAnimationFrame(function () {\n Element.setStyles(element, {\n overflow: 'hidden',\n height: height + \"px\",\n paddingTop: boxStyles.padding.top + \"px\",\n paddingBottom: boxStyles.padding.bottom + \"px\",\n borderTopWidth: boxStyles.border.top + \"px\",\n borderBottomWidth: boxStyles.border.bottom + \"px\",\n transition: getTransition(options),\n });\n onRequestAnimationFrame(function () {\n Element.setStyles(element, {\n height: '0',\n paddingTop: '0',\n paddingBottom: '0',\n borderTopWidth: '0',\n borderBottomWidth: '0',\n });\n var event = Events.on(element, 'transitionend', function () {\n var _a;\n event.destroy();\n (_a = options.onAnimationEnd) === null || _a === void 0 ? void 0 : _a.call(options);\n });\n });\n });\n Element.setAttribute(element, slideToggleAttribute, 'false');\n };\n Animate.show = function (element, options) {\n var _a;\n if (isShown(element)) {\n return;\n }\n (_a = options.onAnimationStart) === null || _a === void 0 ? void 0 : _a.call(options);\n Element.setStyles(element, {\n transition: '',\n display: 'block',\n height: 'auto',\n paddingTop: '',\n paddingBottom: '',\n borderTopWidth: '',\n borderBottomWidth: '',\n });\n var _b = Element.getBoxStyles(element), height = _b.height, boxStyles = __rest(_b, [\"height\"]);\n Element.setStyles(element, {\n display: 'none',\n });\n onRequestAnimationFrame(function () {\n Element.setStyles(element, {\n display: 'block',\n overflow: 'hidden',\n height: '0',\n paddingTop: '0',\n paddingBottom: '0',\n borderTopWidth: '0',\n borderBottomWidth: '0',\n transition: getTransition(options),\n });\n onRequestAnimationFrame(function () {\n Element.setStyles(element, {\n height: height + \"px\",\n paddingTop: boxStyles.padding.top + \"px\",\n paddingBottom: boxStyles.padding.bottom + \"px\",\n borderTopWidth: boxStyles.border.top + \"px\",\n borderBottomWidth: boxStyles.border.bottom + \"px\",\n });\n var event = Events.on(element, 'transitionend', function () {\n var _a;\n Element.setStyles(element, {\n height: '',\n overflow: '',\n paddingTop: '',\n paddingBottom: '',\n borderTopWidth: '',\n borderBottomWidth: '',\n });\n event.destroy();\n (_a = options.onAnimationEnd) === null || _a === void 0 ? void 0 : _a.call(options);\n });\n });\n });\n Element.setAttribute(element, slideToggleAttribute, 'true');\n };\n})(Animate || (Animate = {}));\n//# sourceMappingURL=Animate.js.map","import { Animate, Element } from '../utils';\nvar Hide;\n(function (Hide) {\n Hide.on = function (element, options) {\n Animate.hide(element, options);\n };\n})(Hide || (Hide = {}));\nexport var hide = function (element, options) {\n Hide.on(Element.getElement(element), options);\n};\n//# sourceMappingURL=hide.js.map","import { Animate, Element } from '../utils';\nvar Show;\n(function (Show) {\n Show.on = function (element, options) {\n Animate.show(element, options);\n };\n})(Show || (Show = {}));\nexport var show = function (element, options) {\n Show.on(Element.getElement(element), options);\n};\n//# sourceMappingURL=show.js.map","import { Animate, Element } from '../utils';\nvar Toggle;\n(function (Toggle) {\n Toggle.on = function (element, options) {\n if (Animate.shouldCollapse(element)) {\n Animate.hide(element, options);\n }\n else {\n Animate.show(element, options);\n }\n };\n})(Toggle || (Toggle = {}));\nexport var toggle = function (element, options) {\n Toggle.on(Element.getElement(element), options);\n};\n//# sourceMappingURL=toggle.js.map","import { hide, show, toggle } from 'slidetoggle';\r\nimport { AccordionOptions } from './lib-2sxc-accordion-options';\r\n\r\n/*\r\n This is a shared code used in various 2sxc apps. Make sure that they are in sync, so if you improve it, improve all 2sxc apps which use this. \r\n ATM they are:\r\n - Accordion\r\n - FAQ\r\n - App School System\r\n\r\n The master with the newest / best version must always be the Accordion, the others should then get a fresh copy.\r\n Because this is shared, all parameters like DOM-IDs etc. must be provided in the Init-call that it can work across apps\r\n*/ \r\n\r\nexport function initAccordion({ domId, options } : { domId: string, options: AccordionOptions }) {\r\n // get navHight for correct scrollposition\r\n var nav = (document.getElementsByTagName(options.tagStickyHeader)[0] as HTMLElement);\r\n var navHeight = (nav != null ? nav.offsetHeight : 0);\r\n\r\n // attach click to all accordions when loading\r\n var accordionOpener = document.querySelectorAll(`[${options.attrParent}]`);\r\n\r\n accordionOpener.forEach((elem: HTMLElement, index) => {\t\r\n elem.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n\r\n const currentElem = event.currentTarget as HTMLElement;\r\n const hash = currentElem.dataset.accordionParent;\r\n const parent = currentElem.parentElement;\t\r\n const targetOpenElem = document.querySelector(`[${options.attrChild}=\"${hash}\"]`) as HTMLElement;\t\t\r\n\r\n // add hash to url\r\n location.hash = hash;\r\n\r\n // open / close mechanic for slide\r\n toggle(targetOpenElem, {});\r\n parent.classList.toggle(`${options.classIsExpanded}`);\r\n })\r\n });\r\n\r\n // get hash from url and open specific item\r\n if(window.location.hash){\r\n const hash = window.location.hash.replace('#', '');\r\n const targetHashElem = document.querySelector(`[${options.attrChild}=\"${hash}\"]`);\r\n \r\n // if target element exists scroll to element and open it\r\n if(targetHashElem){\r\n const elemOffsetX = targetHashElem.getBoundingClientRect().top + window.scrollY - navHeight;\r\n const targetOpenElem = document.querySelector(`[${options.attrChild}=\"${hash}\"]`) as HTMLElement;\t\t\r\n\r\n targetHashElem.parentElement.classList.add(`${options.classIsExpanded}`);\r\n\r\n // open accordion\r\n show(targetOpenElem, {\r\n onAnimationEnd: () => {\r\n // scroll to element which should open then\r\n window.scrollTo({\r\n top: elemOffsetX,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}","require('../../node_modules/bs5/js/src/carousel');\r\nimport { AccordionOptions } from './lib-2sxc-accordion-options';\r\n\r\n/*\r\n This is a shared code used in various 2sxc apps. Make sure that they are in sync, so if you improve it, improve all 2sxc apps which use this. \r\n ATM they are:\r\n - Accordion\r\n - FAQ\r\n - App School System\r\n\r\n The master with the newest / best version must always be the Accordion, the others should then get a fresh copy.\r\n Because this is shared, all parameters like DOM-IDs etc. must be provided in the Init-call that it can work across apps\r\n*/ \r\n\r\nexport function initAccordionBs5({ domId, options } : { domId: string, options: AccordionOptions }) {\r\n // get navHight for correct scrollposition\r\n var nav = (document.getElementsByTagName(options.tagStickyHeader)[0] as HTMLElement);\r\n var navHeight = (nav != null ? nav.offsetHeight : 0);\r\n\r\n // attach click to all accordions when loading\r\n var accordionOpener = document.querySelectorAll(`[${options.attrParent}]`);\r\n\r\n accordionOpener.forEach((elem: HTMLElement) => {\t\r\n elem.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n\r\n const hash = elem.getAttribute(options.attrParent);\r\n \r\n // add hash to url\r\n location.hash = hash;\r\n })\r\n });\r\n\r\n // get hash from url and open specific item\r\n if(window.location.hash){\r\n const hash = window.location.hash;\r\n const targetButton = document.querySelector(`[${options.attrParent}=\"${hash}\"]`);\r\n const targetContent = document.querySelector(hash);\r\n \r\n // if target element exists scroll to element and open it\r\n if(targetButton && targetContent){\r\n const elemOffsetX = targetContent.getBoundingClientRect().top + window.scrollY - navHeight;\r\n targetContent.classList.toggle(`${options.classIsExpanded}`);\r\n targetButton.classList.toggle(`${options.classInactive}`);\r\n\r\n // scroll to element which should open then\r\n window.scrollTo({\r\n top: elemOffsetX,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\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","// 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__.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};","import { initAccordion } from './lib-2sxc-accordion';\r\nimport { initAccordionBs5 } from './lib-2sxc-bs5-accordion';\r\n\r\nvar winAny = window as any;\r\nwinAny.appFaq4 ??= {};\r\nwinAny.appFaq4.init ??= initFaq4;\r\nwinAny.appFaq4.initAccordion ??= initAccordion;\r\nwinAny.appFaq4.initAccordionBs5 ??= initAccordionBs5;\r\n\r\nfunction initFaq4({ moduleId } : { moduleId: string }) {\r\n initFilterButtons(moduleId);\r\n}\r\n\r\nfunction initFilterButtons(moduleId: string): void {\r\n // get all filter buttons and add listener\r\n document.querySelectorAll(`.${moduleId} [data-filter]`).forEach((filter) => {\r\n filter.addEventListener('click', () => {\r\n // if clicked, apply new filter\r\n displayFilterItems(filter.getAttribute('data-filter'), moduleId);\r\n });\r\n });\r\n}\r\n\r\nfunction displayFilterItems(filter: string, moduleId: string): void {\r\n // get all filter elements\r\n document.querySelectorAll(`.${moduleId} [data-filterelem]`)\r\n .forEach((filterElem: HTMLElement) => {\r\n // display all elements\r\n filterElem.style.display = \"none\";\r\n\r\n // display element based on filter match\r\n if(filter === 'nofilter' || JSON.parse(filterElem.getAttribute('data-filterelem')).includes(filter)) {\r\n filterElem.style.display = \"block\"\r\n }\r\n });\r\n}"],"names":["TRANSITION_END","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","jquery","nodeType","getElement","length","document","querySelector","isVisible","getClientRects","getComputedStyle","getPropertyValue","getjQuery","jQuery","window","body","hasAttribute","DOMContentLoadedCallbacks","isRTL","documentElement","dir","execute","callback","executeAfterTransition","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","handler","target","removeEventListener","addEventListener","setTimeout","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","Set","getUidEvent","uid","getEvent","findHandler","events","delegationSelector","uidEventList","Object","keys","i","len","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","has","addHandler","oneOff","test","wrapFn","fn","relatedTarget","delegateTarget","contains","call","this","handlers","previousFn","replace","domElements","querySelectorAll","parentNode","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","Boolean","on","one","inNamespace","isNamespace","forEach","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","slice","keyHandlers","trigger","args","$","isNative","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","normalizeData","val","toString","normalizeDataKey","chr","toLowerCase","setDataAttribute","value","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","pageYOffset","left","pageXOffset","position","offsetTop","offsetLeft","find","concat","Element","prototype","findOne","children","child","matches","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","focusableChildren","focusables","map","join","el","classList","disabled","isDisabled","elementMap","Map","set","instance","instanceMap","size","console","error","Array","from","remove","delete","constructor","_element","DATA_KEY","dispose","EVENT_KEY","getOwnPropertyNames","propertyName","_queueCallback","isAnimated","static","config","getInstance","VERSION","NAME","Error","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLID","CLASS_NAME_ACTIVE","SELECTOR_ACTIVE_ITEM","Carousel","super","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","order","componentName","configTypes","property","expectedTypes","valueType","match","RegExp","TypeError","toUpperCase","typeCheckConfig","_handleSwipe","absDeltax","Math","abs","direction","_keydown","_addTouchEventListeners","hasPointerPenTouch","pointerType","start","clientX","touches","move","end","clearTimeout","itemImg","add","tagName","indexOf","_getItemByOrder","activeElement","isNext","list","shouldGetNext","isCycleAllowed","listLength","max","min","getNextActiveElement","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","triggerSlidEvent","offsetHeight","reflow","completeCallBack","data","getOrCreateInstance","action","ride","each","carouselInterface","getElementFromSelector","slideIndex","plugin","dataApiClickHandler","carousels","name","JQUERY_NO_CONFLICT","jQueryInterface","Constructor","noConflict","readyState","Numbers","Events","parseOrElse","str","or","HTMLElement","setStyles","styles","style","getBoxStyles","computedValue","height","padding","paddingTop","bottom","paddingBottom","border","borderTopWidth","borderBottomWidth","elementFromSelector","attribute","destroy","Animate","Hide","__rest","s","e","t","p","hasOwnProperty","getOwnPropertySymbols","propertyIsEnumerable","slideToggleAttribute","onRequestAnimationFrame","requestAnimationFrame","getTransition","options","_a","miliseconds","_b","transitionFunction","shouldCollapse","hide","isHidden","onAnimationStart","boxStyles","transition","overflow","onAnimationEnd","show","isShown","display","Show","Toggle","toggle","nav","getElementsByTagName","tagStickyHeader","navHeight","attrParent","elem","currentElem","currentTarget","hash","accordionParent","parent","parentElement","targetOpenElem","attrChild","location","classIsExpanded","targetHashElem","scrollY","scrollTo","behavior","targetButton","targetContent","elemOffsetX","classInactive","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","d","definition","o","enumerable","prop","r","Symbol","toStringTag","winAny","appFaq4","init","filterElem","JSON","parse","displayFilterItems","initFilterButtons","initAccordion","initAccordionBs5"],"sourceRoot":""}