{"version":3,"file":"c4e2c3f3942eeb92519f31970fd95ae964204d72.js","mappings":"mHAEAA,OAAOC,eAAeC,EAAS,aAA/B,CACEC,OAAO,IAKT,IAHyBC,EAGrBC,EAAQ,EAAQ,MAChBC,GAJqBF,EAIYC,IAHR,iBAAPD,GAAmB,YAAaA,EAAKA,EAAY,QAAIA,EAoBvEG,EAAW,WAQb,OAPAA,EAAWP,OAAOQ,QAAU,SAAkBC,GAC5C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE9C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOX,OAAOgB,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE5E,OAAON,CACT,EACOF,EAASY,MAAMC,KAAMP,UAC9B,EACIQ,EAAuC,oBAAfC,WAA6BA,WAA+B,oBAAXC,OAAyBA,YAA2B,IAAX,EAAAC,EAAyB,EAAAA,EAAyB,oBAATC,KAAuBA,KAAO,CAAC,EAC9L,SAASC,EAAcC,GACrB,OAAOA,GAAKA,EAAEC,YAAc5B,OAAOgB,UAAUC,eAAeC,KAAKS,EAAG,WAAaA,EAAW,QAAIA,CAClG,CACA,SAASE,EAAqBC,EAAIC,GAChC,OAEGD,EAFIC,EAAS,CACd7B,QAAS,CAAC,GACE6B,EAAO7B,SAAU6B,EAAO7B,OACxC,CACA,IAAI8B,EAASH,GAAqB,SAAUE,EAAQ7B,GAClDF,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQ+B,YAAS,EAKjB,SAAWA,GACTA,EAAiB,SAAI,WACrBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAgB,QAAI,eACpBA,EAAgB,QAAI,iBACpBA,EAAkB,UAAI,YACtBA,EAAW,GAAI,KACfA,EAAc,MAAI,aAClBA,EAAuB,eAAI,uBAC3BA,EAAuB,eAAI,uBAC3BA,EAAc,MAAI,QAClBA,EAAkB,UAAI,YACtBA,EAAmB,WAAI,aACvBA,EAA0B,kBAAI,mBAC/B,CApBD,CAoBY/B,EAAQ+B,SAAW/B,EAAQ+B,OAAS,CAAC,GACnD,IACAP,EAAcM,GACCA,EAAOC,OAAtB,IACIC,EAAUL,GAAqB,SAAUE,EAAQ7B,GACnDF,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQiC,aAAU,EAKlB,SAAWA,GACTA,EAAmB,UAAI,YACvBA,EAAyB,gBAAI,kBAC7BA,EAAyB,gBAAI,kBAC7BA,EAAwB,eAAI,uBAC7B,CALD,CAKajC,EAAQiC,UAAYjC,EAAQiC,QAAU,CAAC,GACtD,IACAT,EAAcQ,GACEA,EAAQC,QAAxB,IACIC,EAAQP,GAAqB,SAAUE,EAAQ7B,GAOjD,IAAImC,EANJrC,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAMT,SAAWkC,GACTA,EAAY,KAAI,OAChBA,EAAc,OAAI,SAClBA,EAAiB,UAAI,YACrBA,EAAY,KAAI,OAChBA,EAAmB,YAAI,cACvBA,EAAiB,UAAI,WACtB,CAPD,CAOGA,IAAUA,EAAQ,CAAC,IACtBnC,EAAQoC,QAAUD,CACpB,IACAX,EAAcU,GACd,IAAIG,EAAoBV,GAAqB,SAAUE,EAAQ7B,GAC7D,IAcIsC,EAdAC,EAAgBpB,GAAkBA,EAAeoB,eAAiB,SAAUC,EAAIC,EAAMC,GACxF,GAAIA,GAA6B,IAArB/B,UAAUC,OAAc,IAAK,IAA4B+B,EAAxBlC,EAAI,EAAGmC,EAAIH,EAAK7B,OAAYH,EAAImC,EAAGnC,KAC1EkC,GAAQlC,KAAKgC,IACVE,IAAIA,EAAKE,MAAM/B,UAAUgC,MAAM9B,KAAKyB,EAAM,EAAGhC,IAClDkC,EAAGlC,GAAKgC,EAAKhC,IAGjB,OAAO+B,EAAGO,OAAOJ,GAAME,MAAM/B,UAAUgC,MAAM9B,KAAKyB,GACpD,EACIO,EAAkB7B,GAAkBA,EAAe6B,iBAAmB,SAAUC,GAClF,OAAOA,GAAOA,EAAIvB,WAAauB,EAAM,CACnC,QAAWA,EAEf,EAEAnD,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQkD,SAAWlD,EAAQmD,cAAgBnD,EAAQoD,gBAAkBpD,EAAQqD,SAAWrD,EAAQsD,WAAatD,EAAQuD,YAAcvD,EAAQwD,aAAexD,EAAQyD,iBAAmBzD,EAAQ0D,sBAAmB,EAChN,IAAIC,EAAUX,EAAgBd,GAK9BlC,EAAQ0D,iBAAmB,CAAC5B,EAAOC,OAAO6B,UAAW9B,EAAOC,OAAO8B,UAAW/B,EAAOC,OAAO+B,UAAWhC,EAAOC,OAAOgC,UAAWjC,EAAOC,OAAOiC,UAAWlC,EAAOC,OAAOkC,UAAWnC,EAAOC,OAAOmC,UAAWpC,EAAOC,OAAOoC,QAASrC,EAAOC,OAAOqC,QAAStC,EAAOC,OAAOsC,GAAIvC,EAAOC,OAAOuC,MAAOxC,EAAOC,OAAOwC,eAAgBzC,EAAOC,OAAOyC,eAAgB1C,EAAOC,OAAO0C,OAI1WzE,EAAQyD,iBAAmB,CAAC3B,EAAOC,OAAO6B,UAAW9B,EAAOC,OAAO8B,UAAW/B,EAAOC,OAAO+B,UAAWhC,EAAOC,OAAOgC,UAAWjC,EAAOC,OAAOiC,UAAWlC,EAAOC,OAAOkC,UAAWnC,EAAOC,OAAOmC,UAAWpC,EAAOC,OAAOoC,QAASrC,EAAOC,OAAOqC,QAAStC,EAAOC,OAAOsC,GAAIvC,EAAOC,OAAOuC,MAAOxC,EAAOC,OAAOwC,eAAgBzC,EAAOC,OAAOyC,gBAC5UxE,EAAQwD,aAAe,CAAC1B,EAAOC,OAAO0C,MAAO3C,EAAOC,OAAO2C,UAAW5C,EAAOC,OAAO4C,WAAY7C,EAAOC,OAAO6C,mBAI9G5E,EAAQuD,YAAc,CAACzB,EAAOC,OAAOsC,GAAIvC,EAAOC,OAAOwC,eAAgBzC,EAAOC,OAAOyC,gBAMrFxE,EAAQsD,aAAchB,EAAK,CAAC,GAAMR,EAAOC,OAAOoC,SAAW,CAACrC,EAAOC,OAAO8C,WAAYvC,EAAGR,EAAOC,OAAOqC,SAAW,CAACtC,EAAOC,OAAO8C,WAAYvC,EAAGR,EAAOC,OAAO8C,WAAa7E,EAAQyD,iBAAkBnB,EAAGR,EAAOC,OAAOuC,OAAS,CAACxC,EAAOC,OAAO6B,WAAYtB,EAAGR,EAAOC,OAAO0C,OAAS,CAAC3C,EAAOC,OAAO2C,WAAYpC,EAAGR,EAAOC,OAAO2C,WAAa,CAAC5C,EAAOC,OAAO4C,WAAY7C,EAAOC,OAAO6C,mBAAoBtC,EAAGR,EAAOC,OAAO4C,YAAc,CAAC7C,EAAOC,OAAO6B,WAAYtB,EAAGR,EAAOC,OAAO6C,mBAAqB,CAAC9C,EAAOC,OAAO6B,WAAYtB,GAIrgBtC,EAAQqD,SAAW,CAACvB,EAAOC,OAAO8B,UAAW/B,EAAOC,OAAO+B,UAAWhC,EAAOC,OAAOgC,UAAWjC,EAAOC,OAAOiC,UAAWlC,EAAOC,OAAOkC,UAAWnC,EAAOC,OAAOmC,WAI/JlE,EAAQoD,gBAAkBb,EAAc,CAACT,EAAOC,OAAO6B,WAAY5D,EAAQqD,UAAU,GAIrFrD,EAAQmD,cAAgB,CAACrB,EAAOC,OAAO+C,SAAUhD,EAAOC,OAAO6B,UAAW9B,EAAOC,OAAO8B,UAAW/B,EAAOC,OAAO+B,UAAWhC,EAAOC,OAAOgC,UAAWjC,EAAOC,OAAOiC,UAAWlC,EAAOC,OAAOkC,UAAWnC,EAAOC,OAAOmC,UAAWpC,EAAOC,OAAOoC,QAASrC,EAAOC,OAAOqC,QAAStC,EAAOC,OAAO8C,UAAW/C,EAAOC,OAAOsC,GAAIvC,EAAOC,OAAOuC,MAAOxC,EAAOC,OAAOwC,eAAgBzC,EAAOC,OAAOyC,eAAgBxC,EAAQC,QAAQ8C,UAAW/C,EAAQC,QAAQ+C,gBAAiBhD,EAAQC,QAAQgD,gBAAiBjD,EAAQC,QAAQsC,eAAgB,QAIvgBvE,EAAQkD,SAAW,CAACS,EAAQvB,QAAQ8C,KAAMvB,EAAQvB,QAAQ+C,KAAMxB,EAAQvB,QAAQgD,OAAQzB,EAAQvB,QAAQiD,UAC1G,IACA7D,EAAca,GACYA,EAAkBa,SAClBb,EAAkBc,cAClBd,EAAkBe,gBAClBf,EAAkBgB,SAClBhB,EAAkBiB,WAClBjB,EAAkBkB,YAClBlB,EAAkBmB,aAClBnB,EAAkBoB,iBAClBpB,EAAkBqB,iBAR5C,IASI4B,EAAQ3D,GAAqB,SAAUE,EAAQ7B,GACjDF,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,GAEX,IACAuB,EAAc8D,GACd,IAAIC,EAAY5D,GAAqB,SAAUE,EAAQ7B,GACrDF,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,GAEX,IACAuB,EAAc+D,GACd,IAAIC,EAAgB7D,GAAqB,SAAUE,EAAQ7B,GACzDF,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAOT,IAAIwF,EAAiB,CACnBC,SAAU5D,EAAOC,OAAO+C,SACxBa,KAAM,CAAC,EACPC,QAAS,CAAC,CACRF,SAAU5D,EAAOC,OAAO6B,UACxB+B,KAAM,CAAC,EACPC,QAAS,CAAC,CACRF,SAAU,OACVzF,MAAO,GACPiC,MAAO,GACPyD,KAAM,CAAC,OAIb3F,EAAQoC,QAAUqD,CACpB,IACAjE,EAAcgE,GACd,IAAIK,EAAUlE,GAAqB,SAAUE,EAAQ7B,GAUnD,SAAS8F,EAASC,EAAK9F,GACrB,IAAK,IAAI+F,EAAK,EAAG1D,EAAKxC,OAAOmG,KAAKF,GAAMC,EAAK1D,EAAG1B,OAAQoF,IAAM,CAE5D,GAAI/F,IAAU8F,EADJzD,EAAG0D,IAEX,OAAO,CAEX,CACA,OAAO,CACT,CAjBAlG,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQkG,OAASlG,EAAQmG,QAAUnG,EAAQoG,cAAW,EAqBtDpG,EAAQoG,SAHR,SAAkBC,GAChB,OAAOP,EAAS9D,EAAQC,QAASoE,EAAKX,SACxC,EAQA1F,EAAQmG,QAHR,SAAiBE,GACf,OAAOP,EAAShE,EAAOC,OAAQsE,EAAKX,SACtC,EAQA1F,EAAQkG,OAHR,SAAgBG,GACd,MAAyB,SAAlBA,EAAKX,QACd,CAEF,IACAlE,EAAcqE,GACEA,EAAQK,OACRL,EAAQM,QACRN,EAAQO,SAFxB,IAGIE,EAAO3E,GAAqB,SAAUE,EAAQ7B,GAChD,IAAIuG,EAAkBpF,GAAkBA,EAAeoF,kBAAoBzG,OAAO0G,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QACjGC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOhH,OAAOiH,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEhF,WAAaoF,EAAKE,UAAYF,EAAKG,gBAClEH,EAAO,CACLI,YAAY,EACZC,IAAK,WACH,OAAOT,EAAEC,EACX,IAGJ7G,OAAOC,eAAe0G,EAAGG,EAAIE,EAC/B,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACVC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACZ,GACIS,EAAqBjG,GAAkBA,EAAeiG,qBAAuBtH,OAAO0G,OAAS,SAAUC,EAAGY,GAC5GvH,OAAOC,eAAe0G,EAAG,UAAW,CAClCS,YAAY,EACZjH,MAAOoH,GAEX,EAAI,SAAUZ,EAAGY,GACfZ,EAAW,QAAIY,CACjB,GACIC,EAAenG,GAAkBA,EAAemG,cAAgB,SAAUZ,EAAG1G,GAC/E,IAAK,IAAIa,KAAK6F,EAAa,YAAN7F,GAAoBf,OAAOgB,UAAUC,eAAeC,KAAKhB,EAASa,IAAI0F,EAAgBvG,EAAS0G,EAAG7F,EACzH,EACI0G,EAAepG,GAAkBA,EAAeoG,cAAgB,SAAUtE,GAC5E,GAAIA,GAAOA,EAAIvB,WAAY,OAAOuB,EAClC,IAAIuE,EAAS,CAAC,EACd,GAAW,MAAPvE,EAAa,IAAK,IAAI0D,KAAK1D,EAAe,YAAN0D,GAAmB7G,OAAOgB,UAAUC,eAAeC,KAAKiC,EAAK0D,IAAIJ,EAAgBiB,EAAQvE,EAAK0D,GAEtI,OADAS,EAAmBI,EAAQvE,GACpBuE,CACT,EACIxE,EAAkB7B,GAAkBA,EAAe6B,iBAAmB,SAAUC,GAClF,OAAOA,GAAOA,EAAIvB,WAAauB,EAAM,CACnC,QAAWA,EAEf,EACAnD,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQ6F,QAAU7F,EAAQyF,eAAiBzF,EAAQmC,MAAQnC,EAAQiC,QAAUjC,EAAQ+B,YAAS,EAC9FjC,OAAOC,eAAeC,EAAS,SAAU,CACvCkH,YAAY,EACZC,IAAK,WACH,OAAOrF,EAAOC,MAChB,IAEFjC,OAAOC,eAAeC,EAAS,UAAW,CACxCkH,YAAY,EACZC,IAAK,WACH,OAAOnF,EAAQC,OACjB,IAEFnC,OAAOC,eAAeC,EAAS,QAAS,CACtCkH,YAAY,EACZC,IAAK,WACH,OAAOnE,EAAgBd,GAAOE,OAChC,IAEFkF,EAAajF,EAAmBrC,GAChCsH,EAAahC,EAAOtF,GACpBsH,EAAa/B,EAAWvF,GACxBF,OAAOC,eAAeC,EAAS,iBAAkB,CAC/CkH,YAAY,EACZC,IAAK,WACH,OAAOnE,EAAgBwC,GAAepD,OACxC,IAEF,IAAIqF,EAAYF,EAAa1B,GAC7B7F,EAAQ6F,QAAU4B,CACpB,IACAjG,EAAc8E,GACd,IAqCIhE,EAAIoF,EArCJC,EAASrB,EAAKT,QAEd+B,GADStB,EAAKb,eACLa,EAAKnE,OACd0F,EAASvB,EAAKrE,QACd6F,EAASxB,EAAKvE,OASlB,SAASgG,EAA0BC,EAAOC,GACxC,OAAOD,EAAME,KAAI,SAAU7B,EAAM8B,GAC/B,OAV6BC,EAUEC,EAAqBhC,EAAM4B,GAVpBK,EAU8BH,EATlEhI,EAAMoI,eAAeH,IAA4B,OAAhBA,EAAQE,IACpCnI,EAAMqI,aAAaJ,EAAS,CACjCE,IAAKA,IAGFF,EANT,IAAiCA,EAASE,CAWxC,GACF,CACA,SAASD,EAAqBhC,EAAM4B,GAClC,IAAIQ,EAAaR,EAAQQ,WACvBC,EAAaT,EAAQS,WACrBC,EAAaV,EAAQU,WACvB,GAAIhB,EAAOzB,OAAOG,GAChB,OAAOA,EAAKnE,MAAM0G,QAAO,SAAU3I,EAAO4I,GACxC,OAAKH,EAAWG,EAAKC,MAGdJ,EAAWG,EAAKC,MAAM7I,GAFpBA,CAGX,GAAG0I,EAAaA,EAAWtC,EAAKpG,OAASoG,EAAKpG,OAE9C,IAAI8I,EAAWhB,EAA0B1B,EAAKT,QAASqC,GACvD,OAAK5B,EAAKX,UAAa+C,EAAWpC,EAAKX,UAGhC+C,EAAWpC,EAAKX,UAAUW,EAAM0C,GAF9B3I,EAAe4I,cAAc5I,EAAe6I,SAAU,KAAMF,EAIzE,CAEA,IAAIG,IAAwB5G,EAAK,CAAC,GAAMwF,EAAOhD,UAAY,SAAUuB,EAAM0C,GACzE,OAAOA,CACT,EAAGzG,EAAGwF,EAAOlE,WAAa,SAAUyC,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,IAAK,KAAMD,EACjD,EAAGzG,EAAGwF,EAAOjE,WAAa,SAAUwC,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAOhE,WAAa,SAAUuC,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAO/D,WAAa,SAAUsC,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAO9D,WAAa,SAAUqC,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAO7D,WAAa,SAAUoC,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAO5D,WAAa,SAAUmC,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAOvD,gBAAkB,SAAU8B,EAAM0C,GAC7C,OAAO3I,EAAe4I,cAAc,MAAO,KAAMD,EACnD,EAAGzG,EAAGwF,EAAO1D,SAAW,SAAUiC,EAAM0C,GACtC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAO3D,SAAW,SAAUkC,EAAM0C,GACtC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAOjD,WAAa,SAAUwB,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAOxD,OAAS,SAAU+B,EAAM0C,GACpC,OAAO3I,EAAe4I,cAAc,aAAc,KAAMD,EAC1D,EAAGzG,EAAGwF,EAAOzD,IAAM,WACjB,OAAOjE,EAAe4I,cAAc,KAAM,KAC5C,EAAG1G,EAAGwF,EAAOrD,OAAS,SAAU4B,EAAM0C,GACpC,OAAO3I,EAAe4I,cAAc,QAAS,KAAM5I,EAAe4I,cAAc,QAAS,KAAMD,GACjG,EAAGzG,EAAGwF,EAAOpD,WAAa,SAAU2B,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAOlD,mBAAqB,SAAUyB,EAAM0C,GAChD,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGwF,EAAOnD,YAAc,SAAU0B,EAAM0C,GACzC,OAAO3I,EAAe4I,cAAc,KAAM,KAAMD,EAClD,EAAGzG,EAAGuF,EAAO5C,iBAAmB,SAAUoB,GACxC,OAAO8C,EAActB,EAAO5C,gBAAiBoB,EAC/C,EAAG/D,EAAGuF,EAAO7C,iBAAmB,SAAUqB,GACxC,OAAO8C,EAActB,EAAO7C,gBAAiBqB,EAC/C,EAAG/D,EAAGuF,EAAOtD,gBAAkB,SAAU8B,GACvC,OAAO8C,EAActB,EAAOtD,eAAgB8B,EAC9C,EAAG/D,EAAGuF,EAAO9C,WAAa,SAAUsB,EAAM0C,GACxC,OAAO3I,EAAe4I,cAAc,IAAK,CACvCI,KAAM/C,EAAKV,KAAK0D,KACfN,EACL,EAAGzG,GACCgH,IAAwB5B,EAAK,CAAC,GAAME,EAAO1C,MAAQ,SAAUqE,GAC/D,OAAOnJ,EAAe4I,cAAc,IAAK,KAAMO,EACjD,EAAG7B,EAAGE,EAAOxC,QAAU,SAAUmE,GAC/B,OAAOnJ,EAAe4I,cAAc,IAAK,KAAMO,EACjD,EAAG7B,EAAGE,EAAOvC,WAAa,SAAUkE,GAClC,OAAOnJ,EAAe4I,cAAc,IAAK,KAAMO,EACjD,EAAG7B,EAAGE,EAAOzC,MAAQ,SAAUoE,GAC7B,OAAOnJ,EAAe4I,cAAc,OAAQ,KAAMO,EACpD,EAAG7B,EAAGE,EAAO4B,aAAe,SAAUD,GACpC,OAAOnJ,EAAe4I,cAAc,MAAO,KAAMO,EACnD,EAAG7B,EAAGE,EAAO6B,WAAa,SAAUF,GAClC,OAAOnJ,EAAe4I,cAAc,MAAO,KAAMO,EACnD,EAAG7B,GACH,SAASyB,EAAcL,EAAMzC,GAC3B,OAAOjG,EAAe4I,cAAc,OAAQ,CAC1CV,IAAKjC,EAAKV,KAAK+D,OAAOC,IAAIC,IACzB,SAAUvD,EAAKX,SAAU,QAASW,EAAKV,KAAK+D,OAAOC,IAAIC,GAC5D,CAiBA5J,EAAQ6J,0BAbR,SAAmCC,EAAkB7B,GAInD,YAHgB,IAAZA,IACFA,EAAU,CAAC,GAER6B,EAGEzB,EAAqByB,EAAkB,CAC5CrB,WAAYpI,EAASA,EAAS,CAAC,EAAG6I,GAAuBjB,EAAQQ,YACjEC,WAAYrI,EAASA,EAAS,CAAC,EAAGiJ,GAAuBrB,EAAQS,YACjEC,WAAYV,EAAQU,aALb,IAOX,C,iCCzcA7I,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQ+B,YAAS,EAKjB,SAAWA,GACTA,EAAiB,SAAI,WACrBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAgB,QAAI,eACpBA,EAAgB,QAAI,iBACpBA,EAAkB,UAAI,YACtBA,EAAW,GAAI,KACfA,EAAc,MAAI,aAClBA,EAAuB,eAAI,uBAC3BA,EAAuB,eAAI,uBAC3BA,EAAc,MAAI,QAClBA,EAAkB,UAAI,YACtBA,EAAmB,WAAI,aACvBA,EAA0B,kBAAI,mBAC/B,CApBD,CAoBY/B,EAAQ+B,SAAW/B,EAAQ+B,OAAS,CAAC,G,oCC5BjDjC,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAET,IAAI8J,EAAW,EAAQ,KAKnBtE,EAAiB,CACnBC,SAAUqE,EAAShI,OAAO+C,SAC1Ba,KAAM,CAAC,EACPC,QAAS,CAAC,CACRF,SAAUqE,EAAShI,OAAO6B,UAC1B+B,KAAM,CAAC,EACPC,QAAS,CAAC,CACRF,SAAU,OACVzF,MAAO,GACPiC,MAAO,GACPyD,KAAM,CAAC,OAIb3F,EAAA,QAAkByF,C,oCCtBlB3F,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQkG,OAASlG,EAAQmG,QAAUnG,EAAQoG,cAAW,EACtD,IAAI2D,EAAW,EAAQ,KACnBC,EAAY,EAAQ,MAKxB,SAASlE,EAASC,EAAK9F,GACrB,IAAK,IAAI+F,EAAK,EAAG1D,EAAKxC,OAAOmG,KAAKF,GAAMC,EAAK1D,EAAG1B,OAAQoF,IAAM,CAE5D,GAAI/F,IAAU8F,EADJzD,EAAG0D,IAEX,OAAO,CAEX,CACA,OAAO,CACT,CAOAhG,EAAQoG,SAHR,SAAkBC,GAChB,OAAOP,EAASkE,EAAU/H,QAASoE,EAAKX,SAC1C,EAQA1F,EAAQmG,QAHR,SAAiBE,GACf,OAAOP,EAASiE,EAAShI,OAAQsE,EAAKX,SACxC,EAQA1F,EAAQkG,OAHR,SAAgBG,GACd,MAAyB,SAAlBA,EAAKX,QACd,C,mCCtCA,IAAIa,EAAkBrF,MAAQA,KAAKqF,kBAAoBzG,OAAO0G,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOhH,OAAOiH,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEhF,WAAaoF,EAAKE,UAAYF,EAAKG,gBAClEH,EAAO,CACLI,YAAY,EACZC,IAAK,WACH,OAAOT,EAAEC,EACX,IAGJ7G,OAAOC,eAAe0G,EAAGG,EAAIE,EAC/B,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACVC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACZ,GACIS,EAAqBlG,MAAQA,KAAKkG,qBAAuBtH,OAAO0G,OAAS,SAAUC,EAAGY,GACxFvH,OAAOC,eAAe0G,EAAG,UAAW,CAClCS,YAAY,EACZjH,MAAOoH,GAEX,EAAI,SAAUZ,EAAGY,GACfZ,EAAW,QAAIY,CACjB,GACIC,EAAepG,MAAQA,KAAKoG,cAAgB,SAAUZ,EAAG1G,GAC3D,IAAK,IAAIa,KAAK6F,EAAa,YAAN7F,GAAoBf,OAAOgB,UAAUC,eAAeC,KAAKhB,EAASa,IAAI0F,EAAgBvG,EAAS0G,EAAG7F,EACzH,EACI0G,EAAerG,MAAQA,KAAKqG,cAAgB,SAAUtE,GACxD,GAAIA,GAAOA,EAAIvB,WAAY,OAAOuB,EAClC,IAAIuE,EAAS,CAAC,EACd,GAAW,MAAPvE,EAAa,IAAK,IAAI0D,KAAK1D,EAAe,YAAN0D,GAAmB7G,OAAOgB,UAAUC,eAAeC,KAAKiC,EAAK0D,IAAIJ,EAAgBiB,EAAQvE,EAAK0D,GAEtI,OADAS,EAAmBI,EAAQvE,GACpBuE,CACT,EACIxE,EAAkB9B,MAAQA,KAAK8B,iBAAmB,SAAUC,GAC9D,OAAOA,GAAOA,EAAIvB,WAAauB,EAAM,CACnC,QAAWA,EAEf,EACAnD,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQ6F,QAAU7F,EAAQyF,eAAiBzF,EAAQmC,MAAQnC,EAAQiC,QAAUjC,EAAQ+B,YAAS,EAC9F,IAAIgI,EAAW,EAAQ,KACvBjK,OAAOC,eAAeC,EAAS,SAAU,CACvCkH,YAAY,EACZC,IAAK,WACH,OAAO4C,EAAShI,MAClB,IAEF,IAAIiI,EAAY,EAAQ,MACxBlK,OAAOC,eAAeC,EAAS,UAAW,CACxCkH,YAAY,EACZC,IAAK,WACH,OAAO6C,EAAU/H,OACnB,IAEF,IAAI0B,EAAU,EAAQ,MACtB7D,OAAOC,eAAeC,EAAS,QAAS,CACtCkH,YAAY,EACZC,IAAK,WACH,OAAOnE,EAAgBW,GAASvB,OAClC,IAEFkF,EAAa,EAAQ,MAAwBtH,GAC7CsH,EAAa,EAAQ,MAAYtH,GACjCsH,EAAa,EAAQ,MAAgBtH,GACrC,IAAIiK,EAAkB,EAAQ,MAC9BnK,OAAOC,eAAeC,EAAS,iBAAkB,CAC/CkH,YAAY,EACZC,IAAK,WACH,OAAOnE,EAAgBiH,GAAiB7H,OAC1C,IAEF,IAAIyD,EAAU0B,EAAa,EAAQ,OACnCvH,EAAQ6F,QAAUA,C,kCC3ElB/F,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQiC,aAAU,EAKlB,SAAWA,GACTA,EAAmB,UAAI,YACvBA,EAAyB,gBAAI,kBAC7BA,EAAyB,gBAAI,kBAC7BA,EAAwB,eAAI,uBAC7B,CALD,CAKajC,EAAQiC,UAAYjC,EAAQiC,QAAU,CAAC,G,kCCPpD,IAAIE,EANJrC,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAMT,SAAWkC,GACTA,EAAY,KAAI,OAChBA,EAAc,OAAI,SAClBA,EAAiB,UAAI,YACrBA,EAAY,KAAI,OAChBA,EAAmB,YAAI,cACvBA,EAAiB,UAAI,WACtB,CAPD,CAOGA,IAAUA,EAAQ,CAAC,IACtBnC,EAAA,QAAkBmC,C,kCCflBrC,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,G,oCCDT,IAcIqC,EAdAC,EAAgBrB,MAAQA,KAAKqB,eAAiB,SAAUC,EAAIC,EAAMC,GACpE,GAAIA,GAA6B,IAArB/B,UAAUC,OAAc,IAAK,IAA4B+B,EAAxBlC,EAAI,EAAGmC,EAAIH,EAAK7B,OAAYH,EAAImC,EAAGnC,KAC1EkC,GAAQlC,KAAKgC,IACVE,IAAIA,EAAKE,MAAM/B,UAAUgC,MAAM9B,KAAKyB,EAAM,EAAGhC,IAClDkC,EAAGlC,GAAKgC,EAAKhC,IAGjB,OAAO+B,EAAGO,OAAOJ,GAAME,MAAM/B,UAAUgC,MAAM9B,KAAKyB,GACpD,EACIO,EAAkB9B,MAAQA,KAAK8B,iBAAmB,SAAUC,GAC9D,OAAOA,GAAOA,EAAIvB,WAAauB,EAAM,CACnC,QAAWA,EAEf,EAEAnD,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQkD,SAAWlD,EAAQmD,cAAgBnD,EAAQoD,gBAAkBpD,EAAQqD,SAAWrD,EAAQsD,WAAatD,EAAQuD,YAAcvD,EAAQwD,aAAexD,EAAQyD,iBAAmBzD,EAAQ0D,sBAAmB,EAChN,IAAIqG,EAAW,EAAQ,KACnBC,EAAY,EAAQ,MACpBrG,EAAUX,EAAgB,EAAQ,OAKtChD,EAAQ0D,iBAAmB,CAACqG,EAAShI,OAAO6B,UAAWmG,EAAShI,OAAO8B,UAAWkG,EAAShI,OAAO+B,UAAWiG,EAAShI,OAAOgC,UAAWgG,EAAShI,OAAOiC,UAAW+F,EAAShI,OAAOkC,UAAW8F,EAAShI,OAAOmC,UAAW6F,EAAShI,OAAOoC,QAAS4F,EAAShI,OAAOqC,QAAS2F,EAAShI,OAAOsC,GAAI0F,EAAShI,OAAOuC,MAAOyF,EAAShI,OAAOwC,eAAgBwF,EAAShI,OAAOyC,eAAgBuF,EAAShI,OAAO0C,OAItYzE,EAAQyD,iBAAmB,CAACsG,EAAShI,OAAO6B,UAAWmG,EAAShI,OAAO8B,UAAWkG,EAAShI,OAAO+B,UAAWiG,EAAShI,OAAOgC,UAAWgG,EAAShI,OAAOiC,UAAW+F,EAAShI,OAAOkC,UAAW8F,EAAShI,OAAOmC,UAAW6F,EAAShI,OAAOoC,QAAS4F,EAAShI,OAAOqC,QAAS2F,EAAShI,OAAOsC,GAAI0F,EAAShI,OAAOuC,MAAOyF,EAAShI,OAAOwC,eAAgBwF,EAAShI,OAAOyC,gBACtWxE,EAAQwD,aAAe,CAACuG,EAAShI,OAAO0C,MAAOsF,EAAShI,OAAO2C,UAAWqF,EAAShI,OAAO4C,WAAYoF,EAAShI,OAAO6C,mBAItH5E,EAAQuD,YAAc,CAACwG,EAAShI,OAAOsC,GAAI0F,EAAShI,OAAOwC,eAAgBwF,EAAShI,OAAOyC,gBAM3FxE,EAAQsD,aAAchB,EAAK,CAAC,GAAMyH,EAAShI,OAAOoC,SAAW,CAAC4F,EAAShI,OAAO8C,WAAYvC,EAAGyH,EAAShI,OAAOqC,SAAW,CAAC2F,EAAShI,OAAO8C,WAAYvC,EAAGyH,EAAShI,OAAO8C,WAAa7E,EAAQyD,iBAAkBnB,EAAGyH,EAAShI,OAAOuC,OAAS,CAACyF,EAAShI,OAAO6B,WAAYtB,EAAGyH,EAAShI,OAAO0C,OAAS,CAACsF,EAAShI,OAAO2C,WAAYpC,EAAGyH,EAAShI,OAAO2C,WAAa,CAACqF,EAAShI,OAAO4C,WAAYoF,EAAShI,OAAO6C,mBAAoBtC,EAAGyH,EAAShI,OAAO4C,YAAc,CAACoF,EAAShI,OAAO6B,WAAYtB,EAAGyH,EAAShI,OAAO6C,mBAAqB,CAACmF,EAAShI,OAAO6B,WAAYtB,GAIriBtC,EAAQqD,SAAW,CAAC0G,EAAShI,OAAO8B,UAAWkG,EAAShI,OAAO+B,UAAWiG,EAAShI,OAAOgC,UAAWgG,EAAShI,OAAOiC,UAAW+F,EAAShI,OAAOkC,UAAW8F,EAAShI,OAAOmC,WAI3KlE,EAAQoD,gBAAkBb,EAAc,CAACwH,EAAShI,OAAO6B,WAAY5D,EAAQqD,UAAU,GAIvFrD,EAAQmD,cAAgB,CAAC4G,EAAShI,OAAO+C,SAAUiF,EAAShI,OAAO6B,UAAWmG,EAAShI,OAAO8B,UAAWkG,EAAShI,OAAO+B,UAAWiG,EAAShI,OAAOgC,UAAWgG,EAAShI,OAAOiC,UAAW+F,EAAShI,OAAOkC,UAAW8F,EAAShI,OAAOmC,UAAW6F,EAAShI,OAAOoC,QAAS4F,EAAShI,OAAOqC,QAAS2F,EAAShI,OAAO8C,UAAWkF,EAAShI,OAAOsC,GAAI0F,EAAShI,OAAOuC,MAAOyF,EAAShI,OAAOwC,eAAgBwF,EAAShI,OAAOyC,eAAgBwF,EAAU/H,QAAQ8C,UAAWiF,EAAU/H,QAAQ+C,gBAAiBgF,EAAU/H,QAAQgD,gBAAiB+E,EAAU/H,QAAQsC,eAAgB,QAI7iBvE,EAAQkD,SAAW,CAACS,EAAQvB,QAAQ8C,KAAMvB,EAAQvB,QAAQ+C,KAAMxB,EAAQvB,QAAQgD,OAAQzB,EAAQvB,QAAQiD,U,kCCzDxGvF,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,G,+BCDT,MAyBMiK,EAAY,CAACC,EAAOlC,KACxB,GAAuB,iBAAVkC,IAAsBtH,MAAMuH,QAAQD,GAC/C,MAAM,IAAIE,UAAU,gDAEtBpC,EAAUnI,OAAOQ,OAAO,CACtBgK,YAAY,GACXrC,GAOH,GAJEkC,EADEtH,MAAMuH,QAAQD,GACRA,EAAMjC,KAAIzG,GAAKA,EAAE8I,SAAQC,QAAO/I,GAAKA,EAAEb,SAAQ6J,KAAK,KAEpDN,EAAMI,OAEK,IAAjBJ,EAAMvJ,OACR,MAAO,GAET,GAAqB,IAAjBuJ,EAAMvJ,OACR,OAAOqH,EAAQqC,WAAaH,EAAMO,cAAgBP,EAAMQ,cAO1D,OALqBR,IAAUA,EAAMQ,gBAEnCR,EA9CsBS,KACxB,IAAIC,GAAkB,EAClBC,GAAkB,EAClBC,GAAsB,EAC1B,IAAK,IAAItK,EAAI,EAAGA,EAAImK,EAAOhK,OAAQH,IAAK,CACtC,MAAMuK,EAAYJ,EAAOnK,GACrBoK,GAAmB,WAAWI,KAAKD,IAAcA,EAAUN,gBAAkBM,GAC/EJ,EAASA,EAAO9H,MAAM,EAAGrC,GAAK,IAAMmK,EAAO9H,MAAMrC,GACjDoK,GAAkB,EAClBE,EAAsBD,EACtBA,GAAkB,EAClBrK,KACSqK,GAAmBC,GAAuB,WAAWE,KAAKD,IAAcA,EAAUL,gBAAkBK,GAC7GJ,EAASA,EAAO9H,MAAM,EAAGrC,EAAI,GAAK,IAAMmK,EAAO9H,MAAMrC,EAAI,GACzDsK,EAAsBD,EACtBA,GAAkB,EAClBD,GAAkB,IAElBA,EAAkBG,EAAUL,gBAAkBK,GAAaA,EAAUN,gBAAkBM,EACvFD,EAAsBD,EACtBA,EAAkBE,EAAUN,gBAAkBM,GAAaA,EAAUL,gBAAkBK,EAE3F,CACA,OAAOJ,CAAM,EAuBHM,CAAkBf,IAE5BA,EAAQA,EAAMgB,QAAQ,YAAa,IAAIR,cAAcQ,QAAQ,mBAAmB,CAACC,EAAGC,IAAOA,EAAGX,gBAAeS,QAAQ,cAAczE,GAAKA,EAAEgE,gBAhBtHjJ,EAiBD0I,EAjBMlC,EAAQqC,WAAa7I,EAAE6J,OAAO,GAAGZ,cAAgBjJ,EAAEqB,MAAM,GAAKrB,EAAnEA,KAiBK,EAE3BI,EAAO7B,QAAUkK,EAEjBrI,EAAO7B,QAAP,QAAyBkK,C,iECvDrBqB,EAA4B,mBAAXC,QAAoD,iBAApBA,OAAOC,SAAwB,SAAU1F,GAC5F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAyB,mBAAXyF,QAAyBzF,EAAI2F,cAAgBF,QAAUzF,IAAQyF,OAAO1K,UAAY,gBAAkBiF,CAC3H,EACI4F,EAuBK,SAAUC,EAAKnL,GACpB,GAAIoC,MAAMuH,QAAQwB,GAChB,OAAOA,EACF,GAAIJ,OAAOC,YAAY3L,OAAO8L,GACnC,OA1BJ,SAAuBA,EAAKnL,GAC1B,IAAIoL,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKnF,EACT,IACE,IAAK,IAAiCoF,EAA7BjG,EAAK4F,EAAIJ,OAAOC,cAAmBK,GAAMG,EAAKjG,EAAGkG,QAAQC,QAChEN,EAAKO,KAAKH,EAAGhM,QACTQ,GAAKoL,EAAKjL,SAAWH,GAF8CqL,GAAK,GAIhF,CAAE,MAAOO,GACPN,GAAK,EACLC,EAAKK,CACP,CAAE,QACA,KACOP,GAAM9F,EAAW,QAAGA,EAAW,QACtC,CAAE,QACA,GAAI+F,EAAI,MAAMC,CAChB,CACF,CACA,OAAOH,CACT,CAKWS,CAAcV,EAAKnL,GAE1B,MAAM,IAAI4J,UAAU,uDAExB,EAEF,SAASkC,EAAmBX,GAC1B,GAAI/I,MAAMuH,QAAQwB,GAAM,CACtB,IAAK,IAAInL,EAAI,EAAG+L,EAAO3J,MAAM+I,EAAIhL,QAASH,EAAImL,EAAIhL,OAAQH,IACxD+L,EAAK/L,GAAKmL,EAAInL,GAEhB,OAAO+L,CACT,CACE,OAAO3J,MAAMJ,KAAKmJ,EAEtB,CAEA,IAAIa,EAAkB,CAAC,EA8CnBC,EAAoB,SAA2BC,EAAWC,GAC5D,IAAIC,EAAUD,EAASC,QACrBC,EAAWF,EAASE,SACpBC,EAAUH,EAASG,QACrB,OAAIA,EACKJ,EAAUxF,IAAI4F,EAAU,IAAMD,EAAW,IAAMD,GAEjDF,EAAUxF,IAAI2F,EAAW,IAAMD,EACxC,EAkEIG,EAAa,SAASA,EAAW7C,EAAO8C,EAAWC,EAASC,GAC9D,GAAIF,EAAU9C,GACZ,OAAO+C,EAAQ/C,GAEjB,GAAIA,GAA2E,iBAAhD,IAAVA,EAAwB,YAAcoB,EAAQpB,IAAsB,CACvF,IAAK,IAAI7B,KAAO6B,EAEVA,EAAMpJ,eAAeuH,KACvB6B,EAAM7B,GAAO0E,EAAW7C,EAAM7B,GAAM2E,EAAWC,EAASC,IAGxDA,IACFhD,EAlCa,SAAsBA,GACvC,GAAItH,MAAMuH,QAAQD,GAChB,OAAOA,EAAMK,QAAO,SAAU4C,GAC5B,OAAOA,IAAQX,CACjB,IAEF,IAAK,IAAInE,KAAO6B,EACVA,EAAM7B,KAASmE,UACVtC,EAAM7B,GAGjB,OAAO6B,CACT,CAsBckD,CAAalD,GAEzB,CACA,OAAOA,CACT,EACImD,EAAgB,SAAuBX,EAAWY,EAAMJ,GAC1D,IAAIK,EA3EgB,SAAyBb,EAAWY,GACxD,IAAIE,EAAYF,EAAK5D,IACnBb,EAAO2E,EAAU3E,KACjBgE,EAAWW,EAAUX,SACvB,GAAa,iBAAThE,EAAyB,CAC3B,IAAI4E,EAAMH,EAAK5D,IAAI+D,IACfC,EAAS,qDACb,IAAKA,EAAO1C,KAAKyC,GACf,OAAOjB,EAET,IAAImB,EAAaF,EAAIG,MAAMF,GACzBG,EAAcnC,EAAeiC,EAAY,GAEzCb,GADIe,EAAY,GACNA,EAAY,IACtBC,EAAWD,EAAY,GACrBE,EAAoBlB,EAASmB,MAAM,KAAK,GAC5C,OAAOvB,EAAkBC,EAAW,CAClCG,SAAUkB,EACVnB,QAASkB,EACThB,QAASA,KACLN,CACR,CACA,IAAII,EAAUU,EAAK5D,IAAIC,GACvB,OAAO8C,EAAkBC,EAAW,CAClCG,SAAUA,EACVD,QAASA,KACLJ,CACR,CAgDqByB,CAAgBvB,EAAWY,GAC9C,OAAIC,IAAiBf,EACZU,EAAmBK,EAAeD,EAEpCC,CACT,EAoDA,UA7BsB,SAAyBW,EAAUlG,GAEvD,GADAA,EAAUA,GAAW,CAAC,GACjBkG,EAASC,MACZ,MAAO,GAET,IAAIC,EAAgB,IAAKF,GACrBG,EAAcxO,OAAOmG,KAAKoI,EAAcE,UAAY,CAAC,GAAG3F,QAAO,SAAU4F,EAAK1F,GAChF,MAAO,GAAG/F,OAAOwJ,EAAmBiC,GAAMjC,EAAmB4B,EAASI,SAASzF,IACjF,GAAG,IACC2F,EAAa,GAAG1L,OAAOwJ,EAAmB8B,EAAcD,OAAQ7B,EAAmB+B,IAAc9D,QAAO,SAAUkE,GACpH,OAAOC,QAAQD,EAAO/E,IACxB,IACIgD,EAAY,IAAIiC,IAAIH,EAAW7F,QAAO,SAAUiG,EAAKH,GACvD,IApJ+C/E,EAoJ3CmF,GApJ2CnF,EAoJf+E,EAAO/E,IAnJlCA,EAAIoF,MAAQ,CAACpF,EAAIb,KAAO,IAAMa,EAAIC,GAAID,EAAIoF,MAAMpF,IAAIC,GAAK,IAAMD,EAAIb,KAAO,IAAMa,EAAIC,IAAM,CAACD,EAAIb,KAAO,IAAMa,EAAIC,KAmJzE1B,KAAI,SAAUI,GACxD,MAAO,CAACA,EAAKoG,EACf,IAEA,OADAG,EAAIzC,KAAKnL,MAAM4N,EAAKtC,EAAmBuC,IAChCD,CACT,GAAG,KASH,OARAJ,EAAWO,SAAQ,SAAUC,GAC3B,IAAIC,EA1Cc,SAAyBD,EAAME,GACnD,OAAKtM,MAAMuH,QAAQ+E,GAGDrP,OAAOmG,KAAKgJ,GAAMzE,QAAO,SAAU4E,GACnD,OAA4C,IAArCD,EAAgBE,QAAQD,EACjC,IACmBxG,QAAO,SAAU0G,EAAUC,GAE5C,OADAD,EAASC,GAAcN,EAAKM,GACrBD,CACT,GAAG,CAAC,GARKL,CASX,CA+BsBO,CAAgBP,EAAMhH,EAAQkH,iBAChDrP,OAAOQ,OAAO2O,EAAMjC,EAAWkC,GAAa,SAAUzN,GACpD,OArLuBgO,EAqLThO,IApLDgO,EAAO9F,KAA2B,SAApB8F,EAAO9F,IAAIb,MAQvB,SAAwB2G,GAC3C,OAAOA,GAAUA,EAAO9F,KAA2B,iBAApB8F,EAAO9F,IAAIb,IAC5C,CA0K0B4G,CAAejO,GArL5B,IAAgBgO,CAsLzB,IAAG,SAAUlC,GACX,OAAOD,EAAcX,EAAWY,EAAMtF,EAAQkF,iBAChD,GAAGlF,EAAQkF,kBACb,IACOkB,EAAcD,KACvB,C,sBClPiEvM,EAAO7B,QAC/D,WACP,aAEA,IAAI2P,EAAmBC,SAAS9O,UAAU+O,SACtCrJ,EAAS1G,OAAO0G,OAClBzG,EAAiBD,OAAOC,eACxBgH,EAA2BjH,OAAOiH,yBAClC+I,EAAsBhQ,OAAOgQ,oBAC7BC,EAAwBjQ,OAAOiQ,sBAC/BC,EAAmBlQ,OAAOmQ,eACxB3N,EAAKxC,OAAOgB,UACdC,EAAiBuB,EAAGvB,eACpBmP,EAAuB5N,EAAG4N,qBACxBC,EAAqD,mBAA1BJ,EAC3BK,EAA8B,mBAAZC,QASlBC,EAAc,WAChB,GAAIF,EACF,OAAO,WACL,OAAO,IAAIC,OACb,EAEF,IAAIE,EAAqB,WACvB,SAASA,IACPrP,KAAKsP,MAAQ,GACbtP,KAAKuP,QAAU,EACjB,CAWA,OAVAF,EAAMzP,UAAU4P,IAAM,SAAUpI,GAC9B,SAAUpH,KAAKsP,MAAMnB,QAAQ/G,EAC/B,EACAiI,EAAMzP,UAAUqG,IAAM,SAAUmB,GAC9B,OAAOpH,KAAKuP,QAAQvP,KAAKsP,MAAMnB,QAAQ/G,GACzC,EACAiI,EAAMzP,UAAU6P,IAAM,SAAUrI,EAAKrI,GACnCiB,KAAKsP,MAAMpE,KAAK9D,GAChBpH,KAAKuP,QAAQrE,KAAKnM,EACpB,EACOsQ,CACT,CAhByB,GAiBzB,OAAO,WACL,OAAO,IAAIA,CACb,CACF,CA1BkB,GAqCdK,EAAgB,SAAUnB,EAAQoB,GACpC,IAAI/P,EAAY2O,EAAOqB,WAAad,EAAiBP,GACrD,IAAK3O,EACH,OAAO0F,EAAO,MAEhB,IAAIuK,EAAcjQ,EAAU4K,YAC5B,GAAIqF,IAAgBF,EAAM/Q,OACxB,OAAOgB,IAAc+P,EAAM/Q,OAAOgB,UAAY,CAAC,EAAI0F,EAAO1F,GAE5D,IAAK6O,EAAiB3O,KAAK+P,GAAa1B,QAAQ,iBAC9C,IACE,OAAO,IAAI0B,CACb,CAAE,MAAOzO,GAAK,CAEhB,OAAOkE,EAAO1F,EAChB,EAaIkQ,EAAsB,SAAUvB,EAAQoB,EAAOI,EAAYC,GAC7D,IAAIC,EAAQP,EAAcnB,EAAQoB,GAGlC,IAAK,IAAIvI,KADT4I,EAAMP,IAAIlB,EAAQ0B,GACF1B,EACV1O,EAAeC,KAAKyO,EAAQnH,KAC9B6I,EAAM7I,GAAO2I,EAAWxB,EAAOnH,GAAM4I,IAGzC,GAAIf,EAEF,IADA,IAAIiB,EAAUrB,EAAsBN,GAC3BtH,EAAQ,EAAGkJ,EAAWD,EAAQxQ,OAAQ0Q,OAAS,EAAQnJ,EAAQkJ,IAAYlJ,EAClFmJ,EAASF,EAAQjJ,GACb+H,EAAqBlP,KAAKyO,EAAQ6B,KACpCH,EAAMG,GAAUL,EAAWxB,EAAO6B,GAASJ,IAIjD,OAAOC,CACT,EAaII,EAAuB,SAAU9B,EAAQoB,EAAOI,EAAYC,GAC9D,IAAIC,EAAQP,EAAcnB,EAAQoB,GAElCK,EAAMP,IAAIlB,EAAQ0B,GAElB,IADA,IAAIK,EAAarB,EAAoBL,EAAoBL,GAAQ1M,OAAOgN,EAAsBN,IAAWK,EAAoBL,GACpHtH,EAAQ,EAAGsJ,EAAWD,EAAW5Q,OAAQ8Q,OAAW,EAAQC,OAAa,EAAQxJ,EAAQsJ,IAAYtJ,EAE5G,GAAiB,YADjBuJ,EAAWF,EAAWrJ,KACoB,WAAbuJ,EAE3B,GADAC,EAAa5K,EAAyB0I,EAAQiC,GAC9B,CAETC,EAAWxK,KAAQwK,EAAWhB,MACjCgB,EAAW1R,MAAQgR,EAAWxB,EAAOiC,GAAWR,IAElD,IACEnR,EAAeoR,EAAOO,EAAUC,EAClC,CAAE,MAAOC,GAEPT,EAAMO,GAAYC,EAAW1R,KAC/B,CACF,MAGEkR,EAAMO,GAAYT,EAAWxB,EAAOiC,GAAWR,GAIrD,OAAOC,CACT,EAUIU,EAAiB,SAAUlE,GAC7B,IAAImE,EAAQ,GAgBZ,OAfInE,EAAOoE,SACTD,GAAS,KAEPnE,EAAOqE,aACTF,GAAS,KAEPnE,EAAOsE,YACTH,GAAS,KAEPnE,EAAOuE,UACTJ,GAAS,KAEPnE,EAAOwE,SACTL,GAAS,KAEJA,CACT,EAGI1H,EAAUvH,MAAMuH,QAChB6F,EAAiBnQ,OAAOmQ,eACxBmC,EAAc,WAChB,MAA0B,oBAAfhR,WACFA,WAEW,oBAATG,KACFA,KAEa,oBAAXF,OACFA,YAEa,IAAX,EAAAC,EACF,EAAAA,GAEL+Q,SAAWA,QAAQT,OACrBS,QAAQT,MAAM,qDAET1Q,KACT,CAjBkB,GAqClB,SAASoR,EAAKrS,EAAOgI,GAEnB,IAAIsK,KAActK,IAAWA,EAAQsK,UACjC1B,EAAQ5I,GAAWA,EAAQ4I,OAASuB,EACpCI,EAAiBD,EAAWhB,EAAuBP,EAUnDC,EAAa,SAAUhR,EAAOiR,GAChC,IAAKjR,GAA0B,iBAAVA,EACnB,OAAOA,EAET,GAAIiR,EAAMR,IAAIzQ,GACZ,OAAOiR,EAAM/J,IAAIlH,GAEnB,IAMIkR,EANArQ,EAAYb,EAAM6Q,WAAab,EAAehQ,GAC9C8Q,EAAcjQ,GAAaA,EAAU4K,YAEzC,IAAKqF,GAAeA,IAAgBF,EAAM/Q,OACxC,OAAO0S,EAAevS,EAAO4Q,EAAOI,EAAYC,GAIlD,GAAI9G,EAAQnK,GAAQ,CAElB,GAAIsS,EACF,OAAOhB,EAAqBtR,EAAO4Q,EAAOI,EAAYC,GAExDC,EAAQ,IAAIJ,EACZG,EAAMP,IAAI1Q,EAAOkR,GACjB,IAAK,IAAIhJ,EAAQ,EAAGkJ,EAAWpR,EAAMW,OAAQuH,EAAQkJ,IAAYlJ,EAC/DgJ,EAAMhJ,GAAS8I,EAAWhR,EAAMkI,GAAQ+I,GAE1C,OAAOC,CACT,CAEA,GAAIlR,aAAiB4Q,EAAM4B,KACzB,OAAO,IAAI1B,EAAY9Q,EAAMyS,WAG/B,GAAIzS,aAAiB4Q,EAAM8B,OAGzB,OAFAxB,EAAQ,IAAIJ,EAAY9Q,EAAM2S,OAAQ3S,EAAM6R,OAASD,EAAe5R,KAC9D4S,UAAY5S,EAAM4S,UACjB1B,EAGT,GAAIN,EAAMjC,KAAO3O,aAAiB4Q,EAAMjC,IAMtC,OALAuC,EAAQ,IAAIJ,EACZG,EAAMP,IAAI1Q,EAAOkR,GACjBlR,EAAM+O,SAAQ,SAAU/O,EAAOqI,GAC7B6I,EAAMR,IAAIrI,EAAK2I,EAAWhR,EAAOiR,GACnC,IACOC,EAGT,GAAIN,EAAMiC,KAAO7S,aAAiB4Q,EAAMiC,IAMtC,OALA3B,EAAQ,IAAIJ,EACZG,EAAMP,IAAI1Q,EAAOkR,GACjBlR,EAAM+O,SAAQ,SAAU/O,GACtBkR,EAAM4B,IAAI9B,EAAWhR,EAAOiR,GAC9B,IACOC,EAGT,GAAIN,EAAMmC,MAAQ/S,aAAiB4Q,EAAMmC,KACvC,OAAO/S,EAAM6C,MAAM,EAAG7C,EAAMgT,KAAMhT,EAAM6I,MAG1C,GAAI+H,EAAMqC,QAAUrC,EAAMqC,OAAOC,SAASlT,GAIxC,OAHAkR,EAAQN,EAAMqC,OAAOE,YAAcvC,EAAMqC,OAAOE,YAAYnT,EAAMW,QAAU,IAAImQ,EAAY9Q,EAAMW,QAClGsQ,EAAMP,IAAI1Q,EAAOkR,GACjBlR,EAAMqS,KAAKnB,GACJA,EAGT,GAAIN,EAAMwC,YAAa,CAErB,GAAIxC,EAAMwC,YAAYC,OAAOrT,GAG3B,OAFAkR,EAAQ,IAAIJ,EAAY9Q,EAAMsT,OAAOzQ,MAAM,IAC3CoO,EAAMP,IAAI1Q,EAAOkR,GACVA,EAGT,GAAIlR,aAAiB4Q,EAAMwC,YAGzB,OAFAlC,EAAQlR,EAAM6C,MAAM,GACpBoO,EAAMP,IAAI1Q,EAAOkR,GACVA,CAEX,CAEA,MAEsB,mBAAflR,EAAMuT,MAEbvT,aAAiBwT,OAEjB5C,EAAMR,SAAWpQ,aAAiB4Q,EAAMR,SAExCQ,EAAM6C,SAAWzT,aAAiB4Q,EAAM6C,QAC/BzT,EAGFuS,EAAevS,EAAO4Q,EAAOI,EAAYC,EAClD,EACA,OAAOD,EAAWhR,EAAOqQ,IAC3B,CAsBA,OAlBAgC,EAAKlQ,QAAUkQ,EAYfA,EAAKqB,OAAS,SAAoB1T,EAAOgI,GACvC,OAAOqK,EAAKrS,EAAO,CACjBsS,UAAU,EACV1B,MAAO5I,EAAUA,EAAQ4I,WAAQ,GAErC,EACOyB,CACT,CAjWkFsB,E,kBCClF,IAAIC,EAAoC,oBAAZC,QACxBC,EAAwB,mBAARnF,IAChBoF,EAAwB,mBAARlB,IAChBmB,EAAwC,mBAAhBZ,eAAgCA,YAAYC,OAIxE,SAASY,EAAMC,EAAGC,GAEhB,GAAID,IAAMC,EAAG,OAAO,EACpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,GAAID,EAAEzI,cAAgB0I,EAAE1I,YAAa,OAAO,EAC5C,IAAI9K,EAAQH,EAAGwF,EA4BXoO,EA3BJ,GAAIxR,MAAMuH,QAAQ+J,GAAI,CAEpB,IADAvT,EAASuT,EAAEvT,SACGwT,EAAExT,OAAQ,OAAO,EAC/B,IAAKH,EAAIG,EAAgB,GAARH,KAAY,IAAKyT,EAAMC,EAAE1T,GAAI2T,EAAE3T,IAAK,OAAO,EAC5D,OAAO,CACT,CAuBA,GAAIsT,GAAUI,aAAavF,KAAOwF,aAAaxF,IAAK,CAClD,GAAIuF,EAAElB,OAASmB,EAAEnB,KAAM,OAAO,EAE9B,IADAoB,EAAKF,EAAErF,YACErO,EAAI4T,EAAGnI,QAAQC,UAAWiI,EAAE1D,IAAIjQ,EAAER,MAAM,IAAK,OAAO,EAE7D,IADAoU,EAAKF,EAAErF,YACErO,EAAI4T,EAAGnI,QAAQC,UAAW+H,EAAMzT,EAAER,MAAM,GAAImU,EAAEjN,IAAI1G,EAAER,MAAM,KAAM,OAAO,EAChF,OAAO,CACT,CACA,GAAI+T,GAAUG,aAAarB,KAAOsB,aAAatB,IAAK,CAClD,GAAIqB,EAAElB,OAASmB,EAAEnB,KAAM,OAAO,EAE9B,IADAoB,EAAKF,EAAErF,YACErO,EAAI4T,EAAGnI,QAAQC,UAAWiI,EAAE1D,IAAIjQ,EAAER,MAAM,IAAK,OAAO,EAC7D,OAAO,CACT,CAGA,GAAIgU,GAAkBZ,YAAYC,OAAOa,IAAMd,YAAYC,OAAOc,GAAI,CAEpE,IADAxT,EAASuT,EAAEvT,SACGwT,EAAExT,OAAQ,OAAO,EAC/B,IAAKH,EAAIG,EAAgB,GAARH,KAAY,GAAI0T,EAAE1T,KAAO2T,EAAE3T,GAAI,OAAO,EACvD,OAAO,CACT,CACA,GAAI0T,EAAEzI,cAAgBiH,OAAQ,OAAOwB,EAAEvB,SAAWwB,EAAExB,QAAUuB,EAAErC,QAAUsC,EAAEtC,MAK5E,GAAIqC,EAAEG,UAAYxU,OAAOgB,UAAUwT,SAAgC,mBAAdH,EAAEG,SAA+C,mBAAdF,EAAEE,QAAwB,OAAOH,EAAEG,YAAcF,EAAEE,UAC3I,GAAIH,EAAEtE,WAAa/P,OAAOgB,UAAU+O,UAAkC,mBAAfsE,EAAEtE,UAAiD,mBAAfuE,EAAEvE,SAAyB,OAAOsE,EAAEtE,aAAeuE,EAAEvE,WAKhJ,IADAjP,GADAqF,EAAOnG,OAAOmG,KAAKkO,IACLvT,UACCd,OAAOmG,KAAKmO,GAAGxT,OAAQ,OAAO,EAC7C,IAAKH,EAAIG,EAAgB,GAARH,KAAY,IAAKX,OAAOgB,UAAUC,eAAeC,KAAKoT,EAAGnO,EAAKxF,IAAK,OAAO,EAK3F,GAAIoT,GAAkBM,aAAaL,QAAS,OAAO,EAGnD,IAAKrT,EAAIG,EAAgB,GAARH,KACf,IAAiB,WAAZwF,EAAKxF,IAA+B,QAAZwF,EAAKxF,IAA4B,QAAZwF,EAAKxF,KAAiB0T,EAAEI,YAarEL,EAAMC,EAAElO,EAAKxF,IAAK2T,EAAEnO,EAAKxF,KAAM,OAAO,EAK7C,OAAO,CACT,CACA,OAAO0T,GAAMA,GAAKC,GAAMA,CAC1B,CAGAvS,EAAO7B,QAAU,SAAiBmU,EAAGC,GACnC,IACE,OAAOF,EAAMC,EAAGC,EAClB,CAAE,MAAOxC,GACP,IAAKA,EAAM4C,SAAW,IAAI3G,MAAM,oBAO9B,OADAwE,QAAQoC,KAAK,mDACN,EAGT,MAAM7C,CACR,CACF,C,yEC0IM8C,EAsSuBC,EACvBC,EAAQC,E,qFA1iBVC,EACI,iBADJA,EAEI,iBAFJA,EAGK,kBAELC,EAAY,CACdC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,SAAU,WACVC,OAAQ,SACRC,MAAO,QACPC,MAAO,SAKLC,GAHkB5V,OAAOmG,KAAK8O,GAAW7M,KAAI,SAAUyN,GACzD,OAAOZ,EAAUY,EACnB,IAEW,WADPD,EAEQ,UAFRA,EAGI,OAHJA,EAIS,aAJTA,EAKU,YALVA,EAMS,WANTA,EAOI,OAPJA,EAQQ,WARRA,EASG,MATHA,EAUG,MAVHA,EAWM,SAENE,EAAgB,CAClBC,UAAW,YACXC,QAAS,UACTC,MAAO,YACPC,gBAAiB,kBACjBC,YAAa,cACb,aAAc,YACdC,SAAU,WACVC,SAAU,YAERC,EACa,eADbA,EAEK,QAFLA,EAGyB,0BAHzBA,EAIsB,sBAJtBA,EAKc,gBAEdC,EAAevW,OAAOmG,KAAK2P,GAAehN,QAAO,SAAU7C,EAAKuC,GAElE,OADAvC,EAAI6P,EAActN,IAAQA,EACnBvC,CACT,GAAG,CAAC,GACAuQ,EAAoB,CAACvB,EAAUO,SAAUP,EAAUQ,OAAQR,EAAUS,OACrEe,EAAmB,oBACnBhL,EAA4B,mBAAXC,QAAoD,iBAApBA,OAAOC,SAAwB,SAAU1F,GAC5F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAyB,mBAAXyF,QAAyBzF,EAAI2F,cAAgBF,QAAUzF,IAAQyF,OAAO1K,UAAY,gBAAkBiF,CAC3H,EAMIyQ,EAAc,WAChB,SAASC,EAAiB/M,EAAQgN,GAChC,IAAK,IAAIjW,EAAI,EAAGA,EAAIiW,EAAM9V,OAAQH,IAAK,CACrC,IAAIkR,EAAa+E,EAAMjW,GACvBkR,EAAWzK,WAAayK,EAAWzK,aAAc,EACjDyK,EAAW1K,cAAe,EACtB,UAAW0K,IAAYA,EAAW3K,UAAW,GACjDlH,OAAOC,eAAe2J,EAAQiI,EAAWrJ,IAAKqJ,EAChD,CACF,CACA,OAAO,SAAUZ,EAAa4F,EAAYC,GAGxC,OAFID,GAAYF,EAAiB1F,EAAYjQ,UAAW6V,GACpDC,GAAaH,EAAiB1F,EAAa6F,GACxC7F,CACT,CACF,CAfkB,GAgBd8F,EAAW/W,OAAOQ,QAAU,SAAUoJ,GACxC,IAAK,IAAIjJ,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAImS,EAASjS,UAAUF,GACvB,IAAK,IAAI6H,KAAOsK,EACV9S,OAAOgB,UAAUC,eAAeC,KAAK4R,EAAQtK,KAC/CoB,EAAOpB,GAAOsK,EAAOtK,GAG3B,CACA,OAAOoB,CACT,EAeIoN,EAA0B,SAAU/Q,EAAKE,GAC3C,IAAIyD,EAAS,CAAC,EACd,IAAK,IAAIjJ,KAAKsF,EACRE,EAAKoJ,QAAQ5O,IAAM,GAClBX,OAAOgB,UAAUC,eAAeC,KAAK+E,EAAKtF,KAC/CiJ,EAAOjJ,GAAKsF,EAAItF,IAElB,OAAOiJ,CACT,EAOIqN,EAA0B,SAAiCC,GAE7D,OAAe,OADFrW,UAAUC,OAAS,QAAsBiG,IAAjBlG,UAAU,KAAmBA,UAAU,IAEnEsW,OAAOD,GAETC,OAAOD,GAAK7L,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAC9H,EACI+L,EAAwB,SAA+BC,GACzD,IAAIC,EAAiBC,EAAqBF,EAAWpC,EAAUU,OAC3D6B,EAAoBD,EAAqBF,EAAWf,GACxD,GAAIkB,GAAqBF,EAEvB,OAAOE,EAAkBnM,QAAQ,OAAO,WACtC,OAAOtI,MAAMuH,QAAQgN,GAAkBA,EAAe3M,KAAK,IAAM2M,CACnE,IAEF,IAAIG,EAAwBF,EAAqBF,EAAWf,GAC5D,OAAOgB,GAAkBG,QAAyB1Q,CACpD,EACI2Q,EAAyB,SAAgCL,GAC3D,OAAOE,EAAqBF,EAAWf,IAAwC,WAAa,CAC9F,EACIqB,EAA6B,SAAoCC,EAASP,GAC5E,OAAOA,EAAU3M,QAAO,SAAUkM,GAChC,YAAiC,IAAnBA,EAAMgB,EACtB,IAAGxP,KAAI,SAAUwO,GACf,OAAOA,EAAMgB,EACf,IAAG9O,QAAO,SAAU+O,EAAUC,GAC5B,OAAOf,EAAS,CAAC,EAAGc,EAAUC,EAChC,GAAG,CAAC,EACN,EACIC,EAA0B,SAAiCC,EAAmBX,GAChF,OAAOA,EAAU3M,QAAO,SAAUkM,GAChC,YAAwC,IAA1BA,EAAM3B,EAAUC,KAChC,IAAG9M,KAAI,SAAUwO,GACf,OAAOA,EAAM3B,EAAUC,KACzB,IAAG+C,UAAUnP,QAAO,SAAUoP,EAAkBC,GAC9C,IAAKD,EAAiBpX,OAEpB,IADA,IAAIqF,EAAOnG,OAAOmG,KAAKgS,GACdxX,EAAI,EAAGA,EAAIwF,EAAKrF,OAAQH,IAAK,CACpC,IACIyX,EADejS,EAAKxF,GACiBkK,cACzC,IAA0D,IAAtDmN,EAAkBzI,QAAQ6I,IAAiCD,EAAIC,GACjE,OAAOF,EAAiBjV,OAAOkV,EAEnC,CAEF,OAAOD,CACT,GAAG,GACL,EACIG,EAAuB,SAA8BC,EAASN,EAAmBX,GAEnF,IAAIkB,EAAmB,CAAC,EACxB,OAAOlB,EAAU3M,QAAO,SAAUkM,GAChC,QAAI7T,MAAMuH,QAAQsM,EAAM0B,WAGM,IAAnB1B,EAAM0B,IACf3D,GAAK,WAAa2D,EAAU,mDAAwD7M,EAAQmL,EAAM0B,IAAY,MAEzG,EACT,IAAGlQ,KAAI,SAAUwO,GACf,OAAOA,EAAM0B,EACf,IAAGL,UAAUnP,QAAO,SAAU0P,EAAcC,GAC1C,IAAIC,EAAmB,CAAC,EACxBD,EAAa/N,QAAO,SAAUyN,GAG5B,IAFA,IAAIQ,OAAsB,EACtBxS,EAAOnG,OAAOmG,KAAKgS,GACdxX,EAAI,EAAGA,EAAIwF,EAAKrF,OAAQH,IAAK,CACpC,IAAIiY,EAAezS,EAAKxF,GACpByX,EAAwBQ,EAAa/N,eAGiB,IAAtDmN,EAAkBzI,QAAQ6I,IAAmCO,IAAwB/C,GAAiE,cAA3CuC,EAAIQ,GAAqB9N,eAAoCuN,IAA0BxC,GAAmE,eAA7CuC,EAAIC,GAAuBvN,gBACrP8N,EAAsBP,IAGyB,IAA7CJ,EAAkBzI,QAAQqJ,IAAyBA,IAAiBhD,GAA6BgD,IAAiBhD,GAA2BgD,IAAiBhD,IAChK+C,EAAsBC,EAE1B,CACA,IAAKD,IAAwBR,EAAIQ,GAC/B,OAAO,EAET,IAAIxY,EAAQgY,EAAIQ,GAAqB9N,cAOrC,OANK0N,EAAiBI,KACpBJ,EAAiBI,GAAuB,CAAC,GAEtCD,EAAiBC,KACpBD,EAAiBC,GAAuB,CAAC,IAEtCJ,EAAiBI,GAAqBxY,KACzCuY,EAAiBC,GAAqBxY,IAAS,GACxC,EAGX,IAAG8X,UAAU/I,SAAQ,SAAUiJ,GAC7B,OAAOK,EAAalM,KAAK6L,EAC3B,IAIA,IADA,IAAIhS,EAAOnG,OAAOmG,KAAKuS,GACd/X,EAAI,EAAGA,EAAIwF,EAAKrF,OAAQH,IAAK,CACpC,IAAIiY,EAAezS,EAAKxF,GACpBkY,EAAW,IAAa,CAAC,EAAGN,EAAiBK,GAAeF,EAAiBE,IACjFL,EAAiBK,GAAgBC,CACnC,CACA,OAAOL,CACT,GAAG,IAAIP,SACT,EACIV,EAAuB,SAA8BF,EAAWzF,GAClE,IAAK,IAAIjR,EAAI0W,EAAUvW,OAAS,EAAGH,GAAK,EAAGA,IAAK,CAC9C,IAAIiW,EAAQS,EAAU1W,GACtB,GAAIiW,EAAM3V,eAAe2Q,GACvB,OAAOgF,EAAMhF,EAEjB,CACA,OAAO,IACT,EAkBIkH,GACElE,EAAQjC,KAAKoG,MACV,SAAUC,GACf,IAAIC,EAActG,KAAKoG,MACnBE,EAAcrE,EAAQ,IACxBA,EAAQqE,EACRD,EAASC,IAETC,YAAW,WACTJ,EAAYE,EACd,GAAG,EAEP,GAEEG,EAAc,SAAqBrP,GACrC,OAAOsP,aAAatP,EACtB,EACIuP,EAA0C,oBAAX9X,OAAyBA,OAAO8X,uBAAyB9X,OAAO8X,sBAAsBC,KAAK/X,SAAWA,OAAOgY,6BAA+BhY,OAAOiY,0BAA4BV,EAAc,EAAAtX,EAAO6X,uBAAyBP,EAC5PW,GAAyC,oBAAXlY,OAAyBA,OAAOkY,sBAAwBlY,OAAOmY,4BAA8BnY,OAAOoY,yBAA2BR,EAAc,EAAA3X,EAAOiY,sBAAwBN,EAC1MxE,GAAO,SAAciF,GACvB,OAAOrH,SAAmC,mBAAjBA,QAAQoC,MAAuBpC,QAAQoC,KAAKiF,EACvE,EACIC,GAAkB,KAgBlBC,GAAmB,SAA0BC,EAAUC,GACzD,IAAIC,EAAUF,EAASE,QACrBC,EAAiBH,EAASG,eAC1BC,EAAiBJ,EAASI,eAC1BC,EAAWL,EAASK,SACpBC,EAAWN,EAASM,SACpBC,EAAeP,EAASO,aACxBC,EAAsBR,EAASQ,oBAC/BC,EAAaT,EAASS,WACtBC,EAAYV,EAASU,UACrBC,EAAQX,EAASW,MACjBC,EAAkBZ,EAASY,gBAC7BC,GAAiB3F,EAAUE,KAAM+E,GACjCU,GAAiB3F,EAAUI,KAAM8E,GACjCU,GAAYH,EAAOC,GACnB,IAAIG,EAAa,CACfb,QAASc,GAAW9F,EAAUC,KAAM+E,GACpCG,SAAUW,GAAW9F,EAAUK,KAAM8E,GACrCC,SAAUU,GAAW9F,EAAUM,KAAM8E,GACrCC,aAAcS,GAAW9F,EAAUO,SAAU8E,GAC7CE,WAAYO,GAAW9F,EAAUQ,OAAQ+E,GACzCC,UAAWM,GAAW9F,EAAUS,MAAO+E,IAErCO,EAAY,CAAC,EACbC,EAAc,CAAC,EACnBjb,OAAOmG,KAAK2U,GAAY5L,SAAQ,SAAU0I,GACxC,IAAIsD,EAAsBJ,EAAWlD,GACnCuD,EAAUD,EAAoBC,QAC9BC,EAAUF,EAAoBE,QAC5BD,EAAQra,SACVka,EAAUpD,GAAWuD,GAEnBC,EAAQta,SACVma,EAAYrD,GAAWkD,EAAWlD,GAASwD,QAE/C,IACApB,GAAMA,IACNO,EAAoBR,EAAUiB,EAAWC,EAC3C,EACII,GAAe,SAAsBC,GACvC,OAAOvY,MAAMuH,QAAQgR,GAAiBA,EAAc3Q,KAAK,IAAM2Q,CACjE,EACIT,GAAc,SAAqBH,EAAOa,QACvB,IAAVb,GAAyBc,SAASd,QAAUA,IACrDc,SAASd,MAAQW,GAAaX,IAEhCE,GAAiB3F,EAAUU,MAAO4F,EACpC,EACIX,GAAmB,SAA0BtC,EAASiD,GACxD,IAAIE,EAAaD,SAASE,qBAAqBpD,GAAS,GACxD,GAAKmD,EAAL,CAOA,IAJA,IAAIE,EAAwBF,EAAWG,aAAanF,GAChDoF,EAAmBF,EAAwBA,EAAsBxN,MAAM,KAAO,GAC9E2N,EAAqB,GAAG7Y,OAAO4Y,GAC/BE,EAAgB/b,OAAOmG,KAAKoV,GACvB5a,EAAI,EAAGA,EAAIob,EAAcjb,OAAQH,IAAK,CAC7C,IAAIqb,EAAYD,EAAcpb,GAC1BR,EAAQob,EAAWS,IAAc,GACjCP,EAAWG,aAAaI,KAAe7b,GACzCsb,EAAWQ,aAAaD,EAAW7b,IAEQ,IAAzC0b,EAAiBtM,QAAQyM,IAC3BH,EAAiBvP,KAAK0P,GAExB,IAAIE,EAAcJ,EAAmBvM,QAAQyM,IACxB,IAAjBE,GACFJ,EAAmBK,OAAOD,EAAa,EAE3C,CACA,IAAK,IAAIhW,EAAK4V,EAAmBhb,OAAS,EAAGoF,GAAM,EAAGA,IACpDuV,EAAWW,gBAAgBN,EAAmB5V,IAE5C2V,EAAiB/a,SAAWgb,EAAmBhb,OACjD2a,EAAWW,gBAAgB3F,GAClBgF,EAAWG,aAAanF,KAAsBsF,EAAcpR,KAAK,MAC1E8Q,EAAWQ,aAAaxF,EAAkBsF,EAAcpR,KAAK,KAzB/D,CA2BF,EACIoQ,GAAa,SAAoB/R,EAAMqT,GACzC,IAAIC,EAAcd,SAASe,MAAQf,SAASgB,cAAcvH,EAAUG,MAChEqH,EAAWH,EAAYI,iBAAiB1T,EAAO,IAAMyN,EAAmB,KACxE2E,EAAUrY,MAAM/B,UAAUgC,MAAM9B,KAAKub,GACrCtB,EAAU,GACVwB,OAAgB,EAuCpB,OAtCIN,GAAQA,EAAKvb,QACfub,EAAKnN,SAAQ,SAAUiJ,GACrB,IAAIyE,EAAapB,SAAStS,cAAcF,GACxC,IAAK,IAAIgT,KAAa7D,EACpB,GAAIA,EAAIlX,eAAe+a,GACrB,GAAIA,IAAcpG,EAChBgH,EAAWC,UAAY1E,EAAI0E,eACtB,GAAIb,IAAcpG,EACnBgH,EAAWE,WACbF,EAAWE,WAAWC,QAAU5E,EAAI4E,QAEpCH,EAAWI,YAAYxB,SAASyB,eAAe9E,EAAI4E,cAEhD,CACL,IAAI5c,OAAkC,IAAnBgY,EAAI6D,GAA6B,GAAK7D,EAAI6D,GAC7DY,EAAWX,aAAaD,EAAW7b,EACrC,CAGJyc,EAAWX,aAAaxF,EAAkB,QAGtC2E,EAAQ8B,MAAK,SAAUC,EAAa9U,GAEtC,OADAsU,EAAgBtU,EACTuU,EAAWQ,YAAYD,EAChC,IACE/B,EAAQe,OAAOQ,EAAe,GAE9BxB,EAAQ7O,KAAKsQ,EAEjB,IAEFxB,EAAQlM,SAAQ,SAAUiJ,GACxB,OAAOA,EAAIkF,WAAWC,YAAYnF,EACpC,IACAgD,EAAQjM,SAAQ,SAAUiJ,GACxB,OAAOmE,EAAYU,YAAY7E,EACjC,IACO,CACLiD,QAASA,EACTD,QAASA,EAEb,EACIoC,GAAoC,SAA2ChC,GACjF,OAAOvb,OAAOmG,KAAKoV,GAAYzS,QAAO,SAAUoO,EAAK1O,GACnD,IAAIgV,OAAkC,IAApBjC,EAAW/S,GAAuBA,EAAM,KAAQ+S,EAAW/S,GAAO,IAAO,GAAKA,EAChG,OAAO0O,EAAMA,EAAM,IAAMsG,EAAOA,CAClC,GAAG,GACL,EAmBIC,GAAuC,SAA8ClC,GACvF,IAAImC,EAAY7c,UAAUC,OAAS,QAAsBiG,IAAjBlG,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACrF,OAAOb,OAAOmG,KAAKoV,GAAYzS,QAAO,SAAU7C,EAAKuC,GAEnD,OADAvC,EAAI6P,EAActN,IAAQA,GAAO+S,EAAW/S,GACrCvC,CACT,GAAGyX,EACL,EAsCIC,GAAmB,SAA0B3U,EAAMqT,EAAMuB,GAC3D,OAAQ5U,GACN,KAAKiM,EAAUU,MACb,MAAO,CACLkI,YAAa,WACX,OAnCuEnD,EAmC5B2B,EAAK3B,MAnC8Ba,EAmCvBc,EAAK1B,iBA/BnDmD,EAAa,CAC5BtV,IAAKkS,IACOjE,IAAoB,EAC9BG,EAAQ6G,GAAqClC,EADTuC,GAEjC,CAAC,gBAAoB7I,EAAUU,MAAOiB,EAAO8D,IARlB,IAA6CA,EAAOa,EAClFuC,EAMAlH,CA6BE,EACA7G,SAAU,WACR,OAtEkB,SAA+B/G,EAAM0R,EAAOa,EAAYqC,GAClF,IAAIG,EAAkBR,GAAkChC,GACpDyC,EAAiB3C,GAAaX,GAClC,OAAOqD,EAAkB,IAAM/U,EAAO,IAAMyN,EAAmB,WAAesH,EAAkB,IAAM9G,EAAwB+G,EAAgBJ,GAAU,KAAO5U,EAAO,IAAM,IAAMA,EAAO,IAAMyN,EAAmB,WAAeQ,EAAwB+G,EAAgBJ,GAAU,KAAO5U,EAAO,GACnS,CAkEiBiV,CAAsBjV,EAAMqT,EAAK3B,MAAO2B,EAAK1B,gBAAiBiD,EACvE,GAEJ,KAAK5I,EACL,KAAKA,EACH,MAAO,CACL6I,YAAa,WACX,OAAOJ,GAAqCpB,EAC9C,EACAtM,SAAU,WACR,OAAOwN,GAAkClB,EAC3C,GAEJ,QACE,MAAO,CACLwB,YAAa,WACX,OA5CyB,SAAsC7U,EAAMqT,GAC7E,OAAOA,EAAKjU,KAAI,SAAU+P,EAAKxX,GAC7B,IAAIud,EACAC,IAAaD,EAAa,CAC5B1V,IAAK7H,IACO8V,IAAoB,EAAMyH,GAYxC,OAXAle,OAAOmG,KAAKgS,GAAKjJ,SAAQ,SAAU8M,GACjC,IAAIoC,EAAkBtI,EAAckG,IAAcA,EAClD,GAAIoC,IAAoBxI,GAA6BwI,IAAoBxI,EAAyB,CAChG,IAAI9P,EAAUqS,EAAI0E,WAAa1E,EAAI4E,QACnCoB,EAAUE,wBAA0B,CAClCC,OAAQxY,EAEZ,MACEqY,EAAUC,GAAmBjG,EAAI6D,EAErC,IACO,gBAAoBhT,EAAMmV,EACnC,GACF,CAyBiBI,CAA6BvV,EAAMqT,EAC5C,EACAtM,SAAU,WACR,OApFiB,SAA8B/G,EAAMqT,EAAMuB,GACnE,OAAOvB,EAAKvT,QAAO,SAAUoO,EAAKiB,GAChC,IAAIqG,EAAgBxe,OAAOmG,KAAKgS,GAAKzN,QAAO,SAAUsR,GACpD,QAASA,IAAcpG,GAA6BoG,IAAcpG,EACpE,IAAG9M,QAAO,SAAUgC,EAAQkR,GAC1B,IAAIwB,OAAiC,IAAnBrF,EAAI6D,GAA6BA,EAAYA,EAAY,KAAQ/E,EAAwBkB,EAAI6D,GAAY4B,GAAU,IACrI,OAAO9S,EAASA,EAAS,IAAM0S,EAAOA,CACxC,GAAG,IACCiB,EAAatG,EAAI0E,WAAa1E,EAAI4E,SAAW,GAC7C2B,GAAqD,IAArClI,EAAkBjH,QAAQvG,GAC9C,OAAOkO,EAAM,IAAMlO,EAAO,IAAMyN,EAAmB,WAAe+H,GAAiBE,EAAgB,KAAO,IAAMD,EAAa,KAAOzV,EAAO,IAC7I,GAAG,GACL,CAwEiB2V,CAAqB3V,EAAMqT,EAAMuB,EAC1C,GAGR,EACIgB,GAAmB,SAA0BC,GAC/C,IAAI5E,EAAU4E,EAAK5E,QACjBC,EAAiB2E,EAAK3E,eACtB0D,EAASiB,EAAKjB,OACdzD,EAAiB0E,EAAK1E,eACtBC,EAAWyE,EAAKzE,SAChBC,EAAWwE,EAAKxE,SAChBC,EAAeuE,EAAKvE,aACpBE,EAAaqE,EAAKrE,WAClBC,EAAYoE,EAAKpE,UACjBqE,EAAaD,EAAKnE,MAClBA,OAAuB3T,IAAf+X,EAA2B,GAAKA,EACxCnE,EAAkBkE,EAAKlE,gBACzB,MAAO,CACLoE,KAAMpB,GAAiB1I,EAAUC,KAAM+E,EAAS2D,GAChD1D,eAAgByD,GAAiB3I,EAAsBkF,EAAgB0D,GACvEzD,eAAgBwD,GAAiB3I,EAAsBmF,EAAgByD,GACvEnQ,KAAMkQ,GAAiB1I,EAAUK,KAAM8E,EAAUwD,GACjDoB,KAAMrB,GAAiB1I,EAAUM,KAAM8E,EAAUuD,GACjDqB,SAAUtB,GAAiB1I,EAAUO,SAAU8E,EAAcsD,GAC7DsB,OAAQvB,GAAiB1I,EAAUQ,OAAQ+E,EAAYoD,GACvDuB,MAAOxB,GAAiB1I,EAAUS,MAAO+E,EAAWmD,GACpDlD,MAAOiD,GAAiB1I,EAAUU,MAAO,CACvC+E,MAAOA,EACPC,gBAAiBA,GAChBiD,GAEP,EA4MIwB,GAAoB,KAngBC,SAA4B/H,GACnD,MAAO,CACL4C,QAASlC,EAAwB,CAACnC,EAAqBA,GAAwByB,GAC/E6C,eAAgBvC,EAA2B3C,EAAsBqC,GACjEgI,MAAO9H,EAAqBF,EAAWf,GACvCsH,OAAQrG,EAAqBF,EAAWf,GACxC6D,eAAgBxC,EAA2B3C,EAAsBqC,GACjE+C,SAAU/B,EAAqBpD,EAAUK,KAAM,CAACM,EAAoBA,GAAsByB,GAC1FgD,SAAUhC,EAAqBpD,EAAUM,KAAM,CAACK,EAAqBA,EAAwBA,EAA0BA,EAAyBA,GAA2ByB,GAC3KiD,aAAcjC,EAAqBpD,EAAUO,SAAU,CAACI,GAA4ByB,GACpFkD,oBAAqB7C,EAAuBL,GAC5CmD,WAAYnC,EAAqBpD,EAAUQ,OAAQ,CAACG,EAAoBA,GAA4ByB,GACpGoD,UAAWpC,EAAqBpD,EAAUS,MAAO,CAACE,GAA0ByB,GAC5EqD,MAAOtD,EAAsBC,GAC7BsD,gBAAiBhD,EAA2B3C,EAAuBqC,GAEvE,IAwB8B,SAAiC0C,GACzDF,IACFJ,GAAqBI,IAEnBE,EAASsF,MACXxF,GAAkBR,GAAsB,WACtCS,GAAiBC,GAAU,WACzBF,GAAkB,IACpB,GACF,KAEAC,GAAiBC,GACjBF,GAAkB,KAEtB,GA6coF+E,GAA5D,EAHJ,WAClB,OAAO,IACT,IAEIU,IA5MyBzK,EA4MHuK,GA1MjBrK,EAAQD,EAAS,SAAUyK,GAEhC,SAASC,IAEP,OAlfe,SAAUC,EAAUxO,GACvC,KAAMwO,aAAoBxO,GACxB,MAAM,IAAI1G,UAAU,oCAExB,CA6eMmV,CAAete,KAAMoe,GA1bK,SAAU/d,EAAMP,GAC9C,IAAKO,EACH,MAAM,IAAIke,eAAe,6DAE3B,OAAOze,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BO,EAAPP,CAC5E,CAsba0e,CAA0Bxe,KAAMme,EAAiBpe,MAAMC,KAAMP,WACtE,CAuJA,OA1mBW,SAAUgf,EAAUC,GACjC,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIvV,UAAU,kEAAoEuV,GAE1FD,EAAS7e,UAAYhB,OAAO0G,OAAOoZ,GAAcA,EAAW9e,UAAW,CACrE4K,YAAa,CACXzL,MAAO0f,EACPzY,YAAY,EACZF,UAAU,EACVC,cAAc,KAGd2Y,IAAY9f,OAAO+f,eAAiB/f,OAAO+f,eAAeF,EAAUC,GAAcD,EAAS7O,UAAY8O,EAC7G,CAkcIE,CAASR,EAAeD,GAKxBC,EAAcxe,UAAUif,sBAAwB,SAA+BC,GAC7E,OAAQ,IAAQ9e,KAAKwV,MAAOsJ,EAC9B,EACAV,EAAcxe,UAAUmf,yBAA2B,SAAkCC,EAAOC,GAC1F,IAAKA,EACH,OAAO,KAET,OAAQD,EAAMpX,MACZ,KAAKiM,EAAUQ,OACf,KAAKR,EAAUO,SACb,MAAO,CACLqH,UAAWwD,GAEf,KAAKpL,EAAUS,MACb,MAAO,CACLqH,QAASsD,GAGf,MAAM,IAAI1M,MAAM,IAAMyM,EAAMpX,KAAO,qGACrC,EACAwW,EAAcxe,UAAUsf,yBAA2B,SAAkCzB,GACnF,IAAI0B,EACAH,EAAQvB,EAAKuB,MACfI,EAAoB3B,EAAK2B,kBACzBC,EAAgB5B,EAAK4B,cACrBJ,EAAiBxB,EAAKwB,eACxB,OAAOtJ,EAAS,CAAC,EAAGyJ,IAAoBD,EAAwB,CAAC,GAAyBH,EAAMpX,MAAQ,GAAG/F,OAAOud,EAAkBJ,EAAMpX,OAAS,GAAI,CAAC+N,EAAS,CAAC,EAAG0J,EAAerf,KAAK+e,yBAAyBC,EAAOC,MAAoBE,GAC/O,EACAf,EAAcxe,UAAU0f,sBAAwB,SAA+BC,GAC7E,IAAIC,EAAwBC,EACxBT,EAAQO,EAAMP,MAChBU,EAAWH,EAAMG,SACjBL,EAAgBE,EAAMF,cACtBJ,EAAiBM,EAAMN,eACzB,OAAQD,EAAMpX,MACZ,KAAKiM,EAAUU,MACb,OAAOoB,EAAS,CAAC,EAAG+J,IAAWF,EAAyB,CAAC,GAA0BR,EAAMpX,MAAQqX,EAAgBO,EAAuBjG,gBAAkB5D,EAAS,CAAC,EAAG0J,GAAgBG,IACzL,KAAK3L,EAAUE,KACb,OAAO4B,EAAS,CAAC,EAAG+J,EAAU,CAC5B5G,eAAgBnD,EAAS,CAAC,EAAG0J,KAEjC,KAAKxL,EAAUI,KACb,OAAO0B,EAAS,CAAC,EAAG+J,EAAU,CAC5B3G,eAAgBpD,EAAS,CAAC,EAAG0J,KAGnC,OAAO1J,EAAS,CAAC,EAAG+J,IAAWD,EAAyB,CAAC,GAA0BT,EAAMpX,MAAQ+N,EAAS,CAAC,EAAG0J,GAAgBI,GAChI,EACArB,EAAcxe,UAAU+f,4BAA8B,SAAqCP,EAAmBM,GAC5G,IAAIE,EAAoBjK,EAAS,CAAC,EAAG+J,GAKrC,OAJA9gB,OAAOmG,KAAKqa,GAAmBtR,SAAQ,SAAU+R,GAC/C,IAAIC,EACJF,EAAoBjK,EAAS,CAAC,EAAGiK,IAAoBE,EAAyB,CAAC,GAA0BD,GAAkBT,EAAkBS,GAAiBC,GAChK,IACOF,CACT,EACAxB,EAAcxe,UAAUmgB,sBAAwB,SAA+Bf,EAAOC,GAgBpF,OAAO,CACT,EACAb,EAAcxe,UAAUogB,mBAAqB,SAA4BnY,EAAU6X,GACjF,IAAIO,EAASjgB,KACTof,EAAoB,CAAC,EAkCzB,OAjCA,mBAAuBvX,GAAU,SAAUmX,GACzC,GAAKA,GAAUA,EAAMxJ,MAArB,CAGA,IAAI0K,EAAelB,EAAMxJ,MACvByJ,EAAiBiB,EAAarY,SAE5BwX,EA7L4B,SAA2C7J,GACjF,IAAI2K,EAAiB1gB,UAAUC,OAAS,QAAsBiG,IAAjBlG,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC1F,OAAOb,OAAOmG,KAAKyQ,GAAO9N,QAAO,SAAU7C,EAAKuC,GAE9C,OADAvC,EAAIsQ,EAAa/N,IAAQA,GAAOoO,EAAMpO,GAC/BvC,CACT,GAAGsb,EACL,CAuL4BC,CADLxK,EAAwBsK,EAAc,CAAC,cAGtD,OADAD,EAAOF,sBAAsBf,EAAOC,GAC5BD,EAAMpX,MACZ,KAAKiM,EAAUK,KACf,KAAKL,EAAUM,KACf,KAAKN,EAAUO,SACf,KAAKP,EAAUQ,OACf,KAAKR,EAAUS,MACb8K,EAAoBa,EAAOf,yBAAyB,CAClDF,MAAOA,EACPI,kBAAmBA,EACnBC,cAAeA,EACfJ,eAAgBA,IAElB,MACF,QACES,EAAWO,EAAOX,sBAAsB,CACtCN,MAAOA,EACPU,SAAUA,EACVL,cAAeA,EACfJ,eAAgBA,IAxBtB,CA4BF,IACAS,EAAW1f,KAAK2f,4BAA4BP,EAAmBM,EAEjE,EACAtB,EAAcxe,UAAUygB,OAAS,WAC/B,IAAIC,EAAStgB,KAAKwV,MAChB3N,EAAWyY,EAAOzY,SAClB2N,EAAQI,EAAwB0K,EAAQ,CAAC,aACvCZ,EAAW/J,EAAS,CAAC,EAAGH,GAI5B,OAHI3N,IACF6X,EAAW1f,KAAKggB,mBAAmBnY,EAAU6X,IAExC,gBAAoBjM,EAAWiM,EACxC,EACApK,EAAY8I,EAAe,KAAM,CAAC,CAChChX,IAAK,YAuBLqI,IAAK,SAAgB8Q,GACnB9M,EAAU8M,UAAYA,CACxB,KAEKnC,CACT,CA7JwB,CA6JtB,aAAkB1K,EAAO8M,UAAY,CACrC7C,KAAM,WACN7E,eAAgB,WAChBjR,SAAU,cAAoB,CAAC,YAAkB,UAAiB,WAClE4Y,aAAc,WACdxC,MAAO,SACPpI,wBAAyB,SACzBkD,eAAgB,WAChB1M,KAAM,YAAkB,YACxBuR,KAAM,YAAkB,YACxBC,SAAU,YAAkB,YAC5B1E,oBAAqB,SACrB2E,OAAQ,YAAkB,YAC1BC,MAAO,YAAkB,YACzBzE,MAAO,WACPC,gBAAiB,WACjBmH,cAAe,YACdhN,EAAOiN,aAAe,CACvB1C,OAAO,EACPpI,yBAAyB,GACxBnC,EAAOkN,KAAOnN,EAAUmN,KAAMlN,EAAOmN,OAAS,WAC/C,IAAIC,EAAcrN,EAAUoN,SAiB5B,OAhBKC,IAEHA,EAActD,GAAiB,CAC7B3E,QAAS,GACTC,eAAgB,CAAC,EACjBjD,yBAAyB,EACzBkD,eAAgB,CAAC,EACjBC,SAAU,GACVC,SAAU,GACVC,aAAc,GACdE,WAAY,GACZC,UAAW,GACXC,MAAO,GACPC,gBAAiB,CAAC,KAGfuH,CACT,EAAGnN,GAOLuK,GAAa6C,aAAe7C,GAAa2C,OACzC,M,oCCvvBA,IAHyB7hB,EAGrBC,EAAQ,EAAQ,MAChBC,GAJqBF,EAIYC,IAHR,iBAAPD,GAAmB,YAAaA,EAAKA,EAAY,QAAIA,EAI3E,SAASgiB,EAAgBnc,EAAKuC,EAAKrI,GAWjC,OAVIqI,KAAOvC,EACTjG,OAAOC,eAAegG,EAAKuC,EAAK,CAC9BrI,MAAOA,EACPiH,YAAY,EACZD,cAAc,EACdD,UAAU,IAGZjB,EAAIuC,GAAOrI,EAEN8F,CACT,CAMA,IAAI0b,IAAiC,oBAAXpgB,SAA0BA,OAAOia,WAAYja,OAAOia,SAAStS,eA0EvFnH,EAAO7B,QAzEP,SAAwBmiB,EAAoBC,EAA2B1D,GACrE,GAAkC,mBAAvByD,EACT,MAAM,IAAI1O,MAAM,iDAElB,GAAyC,mBAA9B2O,EACT,MAAM,IAAI3O,MAAM,wDAElB,QAAgC,IAArBiL,GAAgE,mBAArBA,EACpD,MAAM,IAAIjL,MAAM,mEAKlB,OAAO,SAAc4O,GACnB,GAAgC,mBAArBA,EACT,MAAM,IAAI5O,MAAM,sDAElB,IACI6O,EADAC,EAAmB,GAEvB,SAASC,IACPF,EAAQH,EAAmBI,EAAiBra,KAAI,SAAUqX,GACxD,OAAOA,EAAS7I,KAClB,KACI+L,EAAWhB,UACbW,EAA0BE,GACjB5D,IACT4D,EAAQ5D,EAAiB4D,GAE7B,CACA,IAAIG,EACJ,SAAUC,GApCd,IAAwB/C,EAAUC,EAsC5B,SAAS6C,IACP,OAAOC,EAAezhB,MAAMC,KAAMP,YAAcO,IAClD,CAxC4B0e,EAqCD8C,GArCT/C,EAqCH8C,GApCV3hB,UAAYhB,OAAO0G,OAAOoZ,EAAW9e,WAC9C6e,EAAS7e,UAAU4K,YAAciU,EACjCA,EAAS7O,UAAY8O,EAyCjB6C,EAAWX,KAAO,WAChB,OAAOQ,CACT,EACAG,EAAWV,OAAS,WAClB,GAAIU,EAAWhB,UACb,MAAM,IAAIhO,MAAM,oFAElB,IAAIkP,EAAgBL,EAGpB,OAFAA,OAAQzb,EACR0b,EAAmB,GACZI,CACT,EACA,IAAIC,EAASH,EAAW3hB,UAgBxB,OAfA8hB,EAAOC,0BAA4B,WACjCN,EAAiBnW,KAAKlL,MACtBshB,GACF,EACAI,EAAOE,mBAAqB,WAC1BN,GACF,EACAI,EAAOG,qBAAuB,WAC5B,IAAI5a,EAAQoa,EAAiBlT,QAAQnO,MACrCqhB,EAAiBtG,OAAO9T,EAAO,GAC/Bqa,GACF,EACAI,EAAOrB,OAAS,WACd,OAAOnhB,EAAe4I,cAAcqZ,EAAkBnhB,KAAKwV,MAC7D,EACO+L,CACT,CArCA,CAqCEtiB,EAAM6iB,eAGR,OAFAd,EAAgBO,EAAY,cAAe,cA1D7C,SAAwBJ,GACtB,OAAOA,EAAiBY,aAAeZ,EAAiB1M,MAAQ,WAClE,CAwD6DuN,CAAeb,GAAoB,KAC9FH,EAAgBO,EAAY,YAAahB,GAClCgB,CACT,CACF,C,uBChGuB,EAAQ,KAG/BU,CAAiB,O,8oBCymBQ,MAAAC,EC/lBeC,IAAA,oBAAAC,kBAAA,YAAAA,iBAERxiB,UA2L5B,SAAAyiB,EAgBFC,EACAjjB,EACA4T,EACA1T,EACAgjB,GA4BA,YA5BA,IAAAA,IAAAA,EAAuB,CAAC,GAajBC,EAAA,GAKFvP,EAAA,CACHwP,QAAAljB,EACAmjB,WAAYJ,EACZ,kBAAkB,GAClBvE,MAAAyE,EAAA,GACKD,EAAA,CACHI,QAAStjB,EAAW,EAAI,eAAAujB,EAa5BN,EACAjjB,EACA4T,EACA1T,EACAgjB,EACA/iB,EACAF,EACAiG,GAEA,MAAA7D,EAAoC,CAAC,EAEjClC,IACFkC,EAAamhB,gBAAkBrjB,EAAA,UAE3ByT,GACFvR,EAAaohB,MAAQvjB,EACrBmC,EAAaygB,OAASI,EACtB7gB,EAAamhB,gBAAkBrjB,EAC/BkC,EAAaqhB,SAAA,6BACJ9P,GAAA,cAMAA,KALTvR,EAAaqhB,SAAA,WACbrhB,EAAashB,IAAM,EACnBthB,EAAauhB,KAAO,EACpBvhB,EAAawhB,OAAS,EACtBxhB,EAAayhB,MAAQ,IAUrB7jB,IACFoC,EAAa0hB,UAAY9jB,GAGvBiG,IACF7D,EAAa2hB,eAAiB9d,GAEhC,MAAA+d,EAAAd,EAAA,GACKF,EAAA,CACH,eAAc,EACd,yBAAyB,GACzBvE,MAAAyE,EAAA,CACEG,QAAStjB,EAAW,EAAI,EACxBkkB,WAAA,wBACG7hB,KAeP,OAJI4hB,CAAA,CAgF8C,MAAAE,EAAA,aAAAC,EC9UE,SAAAC,GAGpD,IAHmEC,OACnEtkB,EADmEyjB,MAEnE7P,EAFmEkP,OAGnE5iB,GAAAmkB,EAEA,oBAAIrkB,EAAAijB,EAAAA,cAAA,wBAEiBvE,MAAO,CAAE6F,WAAgBrkB,EAAS0T,EAAS,2BAI5D5T,EAAAijB,EAAAA,cAAA,OAEKvE,MAAO,CAAE8F,SAAU5Q,EAAO6Q,QAAA,UAC7BxB,EAAAA,cAAA,OACEyB,IAAI,GACJC,KAAK,6BACO,OACZC,IAAA,mDAAwD1kB,EAAA,YAAkB0T,EAAA,kEAC1E8K,MAAO,CACL8F,SAAA,OACAC,QAAA,QACAf,SAAA,mBAAAmB,EAWV,SAAAjR,GAAA,IAAuBpL,SAAEtI,GAAA0T,EAAasP,EAAA4B,EAAAlR,EAAAuQ,GACpC,OAAAlB,EAAAA,cACGjjB,EAAAA,SAAA,KACCijB,EAAAA,cAACmB,EAAAjB,EAAA,GAAUD,IACVhjB,EAEmC,OAAA6kB,EAAA,8CAAAC,EAAA,oCAAAC,ECtEC,SAAAjlB,GAAA,IAAe4kB,IAC1DhR,EAD0DsR,OAE1DhlB,EAF0DkjB,QAG1DF,EAH0DwB,IAI1DvkB,EAAA,GAJ0DkjB,WAK1DpjB,GAAAD,EACGkG,EAAA4e,EAAA9kB,EAAA+kB,GAEH,OAAA9B,EAAAA,cAAA,MAAAE,EAAA,GAEQjd,EAAA,CACJif,SAAS,QACT/B,QAASF,EACT0B,IAAK3kB,EAAa2T,OAAA,EAAM,WACb3T,OAAA,EAAa2T,EACxBsR,OAAQjlB,EAAaC,OAAA,EAAS,cAChBD,OAAA,EAAaC,EAC3BwkB,IAAKvkB,IAAA,EAAAilB,EAKoC,SAAAplB,GAAA,IAAiBqlB,SAC9DzR,EAD8D0R,QAE9DplB,EAAU,GAFoDmjB,WAG9DH,GAAA,GAAaljB,EACVG,EAAA2kB,EAAA9kB,EAAAglB,GAEH,MAAA/kB,EAAcE,EAAMolB,QAAA,MAAS3R,OAAA,EAAAA,EAAU2R,OAAArf,EAErC+c,EAAAA,cAACgC,EAAA9B,EAAA,GAAUhjB,EAAWyT,EAAA,CAAU2R,MAAOtlB,EAAOojB,WAAYH,KAG5D,OAAKhjB,EAAQG,OAAA4iB,EAAAA,cAAA,eAMR/iB,EAAQyH,KAAI6d,IAAA,IAAGC,MAAAzlB,EAAOklB,OAAAtR,EAAQrL,KAAArI,GAAAslB,EAAA,OAC7BvC,EAAAA,cAAA,UACElb,IAAQ/H,EAAA,IAASE,EAAA,IAAQ0T,EACzBrL,KAAMrI,EACNulB,MAAOzlB,EACPklB,OAAQhC,EAAatP,OAAA,EAAS,cAChBsP,OAAA,EAAatP,EAC3B2R,MAAOtlB,GAAA,IAGViG,GAAAA,CAAA,MAAAwf,EAKPT,EAAM9D,UAAY,CAChByD,IAAKX,EAAAA,OAAAA,WACLS,IAAKT,EAAAA,OAAAA,WACLsB,MAAOtB,EAAAA,OACPiB,OAAQjB,EAAAA,OACRZ,WAAYY,EAAAA,MAGdmB,EAAQ1C,YAAA,UACR0C,EAAQjE,UAAY,CAClBuD,IAAKT,EAAAA,OAAAA,WACLZ,WAAYY,EAAAA,KACZoB,SAAUpB,EAAAA,MAAgB,CACxBW,IAAKX,EAAAA,OAAAA,WACLiB,OAAQjB,EAAAA,OACRsB,MAAOtB,EAAAA,SAETqB,QAASrB,EAAAA,QACPA,EAAAA,UAAoB,CAClBA,EAAAA,MAAgB,CACdwB,MAAOxB,EAAAA,OAAAA,WACP1b,KAAM0b,EAAAA,OACNsB,MAAOtB,EAAAA,OACPiB,OAAQjB,EAAAA,OAAAA,aAEVA,EAAAA,MAAgB,CACdwB,MAAOxB,EAAAA,OACP1b,KAAM0b,EAAAA,OAAAA,WACNsB,MAAOtB,EAAAA,OACPiB,OAAQjB,EAAAA,OAAAA,iBAAiB,MAAA0B,EAAA,aAAAC,EC5G/B,SAAA5lB,GAAA,IAAqBqlB,SAAEzR,GAAA5T,EAAaE,EAAA4kB,EAAA9kB,EAAA2lB,GAClC,OAAI/R,EAAAqP,EAAAA,cAECmC,EAAAjC,EAAA,GACKjjB,EAAA,CACJmlB,SAAU,CACRT,IAAKhR,GAAA,iBAGP8Q,IAAI,MAAAzB,EAAAA,cAAA,MAAAE,EAAA,GAIQjjB,GAAA,EAItB0lB,EAAYlD,YAAA,cACZkD,EAAYzE,UAAY,CACtBkE,SAAUpB,EAAAA,OACVqB,QAAA,OAAAI,EAASN,EAAQjE,gBAAA,EAARuE,EAAmBJ,QAC5BZ,IAAK,SAAUzB,EAAOjjB,EAAU4T,GAC9B,OAAKqP,EAAMjjB,GAAA,IAAAkT,MAAA,iBAKSlT,EAAA,kBAA4B4T,EAAA,gCChCvC,MAAAiS,EAAoC,SAAmB7lB,GAClE,OAAAijB,EAAAA,cAAAA,EAAAA,SAAA,KAEIA,EAAAA,cAACmC,EAAAjC,EAAA,GAAYnjB,IACbijB,EAAAA,cAAA,gBACEA,EAAAA,cAACmC,EAAAjC,EAAA,GAAYnjB,EAAA,CAAOqjB,YAAA,MAAY,EAMxCwC,EAAUnD,YAAA,YACVmD,EAAU1E,UAAYiE,EAAQjE,UAAA,MAAA2E,EC2G2B,SACvD7C,EACAjjB,EACA4T,GAAA,QAAAmS,EAAA3lB,UAAAC,OACGH,EAAA,IAAAoC,MAAAyjB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA9lB,EAAA8lB,EAAA,GAAA5lB,UAAA4lB,GAAA,OAEE/C,EAAMyB,KAAA,KAAOzB,EAAMyB,IAAAuB,IAAAA,OAAAA,MAAAA,IAAA,CAMAhD,EAAOjjB,EAAU4T,GAAApR,OAAkBtC,IAAA,IAAAgT,MAAA,iCAJtBU,EAAA,4JAAAsS,EAOd,CACvBC,MAAOF,IAAAA,OAAAA,WACPvB,IAAKoB,GAAAM,EAAA,8FAAAC,EAAA,sBAAAC,ECjHY,IAAA/T,IACnB,IAAAgU,EAAAC,EAiCA,MAAAC,EAAkD,SAAAxD,GAAA,IAA6ByD,GAC7E1mB,EAAA,MAD6EmmB,MAE7EvS,EAF6E8K,MAG7Erc,EAH6EmhB,gBAI7ES,EAJ6E0C,UAK7EV,EACAzQ,MAAOzU,EANsE6lB,YAO7EtmB,EAP6EumB,OAQ7E1gB,EAR6E2gB,QAS7EC,GAAA9D,EACG+D,EAAAlC,EAAA7B,EAAAmD,GAEH,MAAM3C,MAAEwD,EAAFnE,OAASjP,EAATyQ,OAAiBxd,GAAW8M,EAAAsT,EAAA,SNOlCjE,EACAjjB,EACA4T,GAIA,MAAA1T,EAAoC,CAAC,EAErC,IAAAgjB,EAAA,uBAmBA,MAde,UAGXtP,GACF1T,EAAaujB,MAAQR,EACrB/iB,EAAa4iB,OAAS9iB,GAAA,gBACb4T,IAKTsP,EAAA,yDAGK,CACLyD,UAAAzD,EACA,4BAA4B,GAC5BxE,MAAOxe,EAAA,CMrCyB,CAKd+mB,EAAOpT,EAAQ/M,IAHjC4X,MAAOyI,EACPR,UAAWvgB,GAAA8gB,EACRE,EAAAtC,EAAAoC,EAAAb,GAAAgB,GAEQnE,EAAAA,EAAAA,UAAAoE,GACInnB,EAAAA,EAAAA,UAAQ,IAAMonB,KAAKC,UAAU5T,EAAM6T,SAAS,CAAC7T,EAAM6T,SAGhE1mB,IACFklB,EAAYllB,GAGd,MAAAG,EAAA,SLxCA+hB,EACAjjB,EACA4T,GAEA,IAAA1T,EAAA,GAWA,MAAM,cAVF+iB,IACF/iB,EAAA,+CACG0T,EAAS5T,EAAS,kCAInBijB,IACF/iB,EAAA,0BAAkCF,EAAA,iIAAqI4T,EAAA,YAAkB5T,EAAA,yIAAAE,CAAA,CK4B3L,CAAuB4G,EAAQmgB,EAAOpT,GA+HtC,OA7HA5T,EAAAA,EAAAA,YAAU,KACHsmB,IACHA,EAA6B,wDAAyBtT,MACpDyU,IAAA,IAAGC,oBAAA1E,EAAqB2E,qBAAA5nB,GAAA0nB,EAAA,OACtBlB,EAAcvD,EAEP,CACL0E,oBAAA1E,EACA2E,qBAAA5nB,EAAA,KAQR,MAAAijB,EAAiBoE,EAAKhQ,QAAQ0E,cAAA,2BAG9B,GAAIkH,GAAYJ,IAkCd,OAjCII,EAAS4E,UAAA,MAEXvnB,GAAAA,EAAc,CACZwnB,WAAA,IAAW,MAEb3hB,GAAAA,EAAS,CACP2hB,WAAA,IAIFrP,YAAW,KACTwK,EAAStH,gBAAA,2BACR,WAEHrb,GAAAA,EAAc,CACZwnB,WAAA,IAGF7E,EAAS8E,iBAAA,QAAyB,SAAA/nB,IAChCijB,EAAS+E,oBAAA,OAA4BhoB,GAAA,MAErCmG,GAAAA,EAAS,CACP2hB,WAAA,IAGFrP,YAAW,KACTwK,EAAStH,gBAAA,2BACR,YAIP2K,EAAW9T,IAAI8U,GAKjB,GAAId,GAAeF,EAAWnW,IAAImX,GAChC,OAGF,IAAAtnB,EAAAE,EAkCA,OAhCAqmB,EAA2BtT,MACzBgV,IAAwB,IAArBN,oBAAA1E,EAAqB2E,qBAAA1E,GAAA+E,EACjBZ,EAAKhQ,UAIVgQ,EAAKhQ,QAAQ+E,UAAY6G,EAAAE,EAAA,CACvB+E,WAAA,EACAC,SAAU7B,EAAWnW,IAAImX,GACzBnB,MAAAvS,GACGoT,IAGAV,EAAWnW,IAAImX,KAClBtnB,EAAiB4Y,uBAAsB,KACjCyO,EAAKhQ,UACPnX,EAAkBgjB,EAChBmE,EAAKhQ,QACLiQ,EACAhB,EACAjkB,EACA/B,EACA6F,EACA4gB,GAAA,SASL,KACD/mB,GACFgZ,qBAAqBhZ,GAEnBE,GACFA,GAAA,IAGH,CAAC0T,KAGJ1N,EAAAA,EAAAA,kBAAgB,KACVogB,EAAWnW,IAAImX,IAAad,IAC9Ba,EAAKhQ,QAAQ+E,UAAYoK,EAAArD,EAAA,CACvB+E,UAAW5B,EAAWnW,IAAImX,GAC1Ba,SAAU7B,EAAWnW,IAAImX,GACzBnB,MAAAvS,GACGoT,IAAA,MAIL1mB,GAAAA,EAAc,CACZwnB,WAAA,IAAW,MAEb3hB,GAAAA,EAAS,CACP2hB,WAAA,IAAW,GAGd,CAAClU,KAAA1T,EAAAA,EAAAA,eAGiBF,EAAAmjB,EAAA,GAChBiE,EAAA,CACH1I,MAAAyE,EAAA,GACKgE,EACA9kB,EAAA,CACHmhB,gBAAAS,IAEF0C,UAAcvgB,GAAS6f,EAAA,IAAgBA,EAAA,IACvCmC,IAAKf,EACLzJ,wBAAyB,CACvBC,OAAQ3c,GAEVmnB,0BAAA,IAA0B,EAAAC,GAIkC1U,EAAAA,EAAAA,OAC9D,SAAqBqP,GACnB,OAAKA,EAAMkD,OASDjmB,EAAAA,EAAAA,eAKWumB,EAAqBxD,GAZ9B,QAgBhBqF,EAAYnH,UAAY+E,EACxBoC,EAAY5F,YAAA,oBAAA6F,EAAA,mPAAAC,ECxL6C,SACvDvF,EACAjjB,GAAA,QAAAyoB,EAAAroB,UAAAC,OACGuT,EAAA,IAAAtR,MAAAmmB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA9U,EAAA8U,EAAA,GAAAtoB,UAAAsoB,GAAA,oBAGDzF,EAAMqB,QAAA,UACLtkB,GAAA,WAAwBA,IACzBijB,EAAMjjB,GAAAimB,IAAAA,OAAAA,MAAAA,IAAA,CAMgBhD,EAAOjjB,GAAAwC,OAAaoR,IAAA,IAAAV,MAAA,IAHpClT,EAAA,KAAaijB,EAAMjjB,GAAA,iDAAA2oB,EAMR,IAAApW,IAAQ,CAAC,QAAD,4BAAAqW,EAEJ,CACvBhE,IAAKqB,IAAAA,OAAAA,WACLvB,IAAKoB,EACLrC,MAAO+E,EACP1F,OAAQ0F,EACRjD,MAAOU,IAAAA,OACP3B,OAASrB,IACP,YAAIA,EAAMqB,SAGNqE,EAAaxY,IAAI8S,EAAMqB,QAI3B,OAAO,IAAPpR,MAAA,iBACmB+P,EAAMqB,OAAA,wHAAAuE,GAhF3B7oB,ECLgBsoB,EDOT,SAAP1U,GAAA,IAA4BgR,IAC1B1kB,EACA4oB,YAAa5F,EAFa6F,QAG1B5oB,GAAAyT,EAmBG3T,EAAA6kB,EAAAlR,EAAA2U,GAMH,OAJIpoB,GACF2R,QAAQoC,KAAK/T,GAGX+iB,EAAAD,EAAAA,cACMjjB,EAAAmjB,EAAA,CAAYgD,MAAOjD,GAAejjB,KAE5C6R,QAAQoC,KAAA,mBAAyBhU,GAEvB,QA6Ce,IAhF3BF,ECHF6oB,EAAYnG,YAAA,cACZmG,EAAY1H,UAAYyH,C,wCClBpBI,EAAyBC,EAAQ,MAGrCxpB,EAAQ,EAOR,SAAuB2e,EAGpB1W,GAAe,IAHM,IACtBwhB,EAAG,WACHC,GACD/K,OAAS,IAAP1W,IAAAA,EAAU,CAAC,GACZ,MAAM0hB,EAAW7B,KAAK8B,MAAMH,GAE5B,IAAKC,IAAeA,EAAW9oB,OAC7B,OAAO,EAAIipB,EAAuBhgB,2BAA2B8f,EAAU1hB,GAIzE,MAAM6hB,EAAgB,CACpB1b,MAAO,CAAC,CACNzE,IAAK,CACHb,KAAK,SAEP6gB,aAEFpb,SAAU,CACRwb,MAAOL,EAAWlf,QAAOiW,IAAA,IAAC,WACxBuJ,GACDvJ,EAAA,MAAe,oBAAVuJ,CAAgC,IAAE9hB,KAAI+hB,IACnC,IAAKA,EACVtgB,IAAK,CACHb,KAAK,QACLc,GAAIqgB,EAAUC,mBAIpBC,MAAOT,EAAWlf,QAAO4f,IAAA,IAAC,WACxBJ,GACDI,EAAA,MAAe,oBAAVJ,CAAgC,IAAE9hB,KAAI+hB,IACnC,IAAKA,EACVtgB,IAAK,CACHb,KAAK,QACLc,GAAIqgB,EAAUC,qBAMlBG,GAAW,EAAIC,EAA2BloB,SAAS0nB,EAAe,CACtE3c,kBAAkB,IAEpB,OAAO,EAAI0c,EAAuBhgB,2BAA2BwgB,EAAS,GAAGV,SAAU1hB,EACrF,EAlDA,IAAI4hB,EAAyBL,EAAQ,MAEjCc,EAA6Bf,EAAuBC,EAAQ,M,4KCChE,MAAMe,EAAUA,EACdC,aACAC,mBACAC,WACA5hB,OACA6hB,SACAC,iBACAC,eACA3D,YACA4D,eAEA,MAAOC,EAASC,IAAcC,EAAAA,EAAAA,WAAS,IAChCtH,EAASuH,IAAcD,EAAAA,EAAAA,WAAS,GACjCE,GAAOC,EAAAA,EAAAA,UACPC,GAAYD,EAAAA,EAAAA,UACZE,GAAYC,EAAAA,EAAAA,YAAWC,EAAAA,IAEtBvrB,EAAOwrB,IAAYR,EAAAA,EAAAA,UAAS,IAanC,OAAQF,EAkCN5qB,EAAAA,cAAA,OAAK+mB,UCjEmB,sCDkEtB/mB,EAAAA,cAAA,OAAK+mB,UCtEc,mCDuEjB/mB,EAAAA,cAACurB,EAAAA,EAAI,CAAC/V,KAAM,QAAS1C,KAAM,KAAM0Y,MAAO,aAE1CxrB,EAAAA,cAAA,aAAOyrB,EAAAA,EAAAA,IAAQ,2BAA4BN,KArC7CnrB,EAAAA,cAAA,QACEwoB,IAAKwC,EACLU,SAfkBrI,IACpBA,EAAEsI,iBACFZ,GAAW,GACXa,MAAMpB,EAAQ,CACZqB,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAElBC,KAAMpE,KAAKC,UAAU,CAAE,CAACjf,GAAO7I,MAC9BuT,MAAM2Y,GAAQnB,EAA0B,MAAfmB,EAAIC,SAAgB,EAO9ClF,WAAWmF,EAAAA,EAAAA,GC1CC,2BD0CoBvB,GCpChB,+BDoC6C5D,IAE5DsD,GACCrqB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,QAAQne,KAAK,WAAWoe,UCxCjB,kCDyCbsD,GAGLrqB,EAAAA,cAAA,OAAK+mB,UC7CiB,sCD8CpB/mB,EAAAA,cAAA,SACEwoB,IAAK0C,EACLviB,KAAMA,EACN6M,KAAM7M,EACNyjB,YAAa9B,EACbvD,WAAWmF,EAAAA,EAAAA,GCrDE,gCDqDwBzB,GACrC4B,SAAWhJ,GAAMiI,EAASjI,EAAE9Z,OAAOzJ,OACnCwsB,UAAQ,EACRxsB,MAAOA,IAGTE,EAAAA,cAAA,UACE+mB,WAAWmF,EAAAA,EAAAA,GC7DG,iCD6DwBxB,GACtC6B,SAAU/I,GAEVxjB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,UAClB4hB,KAYV,EAGUiC,EAAY,CACvBnC,WAAYoC,IAAAA,OACZnC,iBAAkBmC,IAAAA,OAClB9jB,KAAM8jB,IAAAA,OACNlC,SAAUkC,IAAAA,OAAAA,WACVjC,OAAQiC,IAAAA,OAAAA,WACRhC,eAAgBgC,IAAAA,OAChB/B,aAAc+B,IAAAA,OACd1F,UAAW0F,IAAAA,OACX9B,SAAU8B,IAAAA,MAEZrC,EAAQ7I,UAAYiL,EACpBpC,EAAQ1I,aAAe,CACrB2I,WAAY,GACZC,iBAAkB,GAClB3hB,KAAM,OACN4hB,SAAU,GACVE,eAAgB,GAChBC,aAAc,GACd3D,UAAW,GACX4D,UAAU,GAGZ,O,yJEhGW+B,EAAiB,2CACjB,EAAO,iCCJlB,MAAMC,EAAaA,EACjBC,WACAxjB,OACAyjB,MACAC,OACAhJ,WACAiJ,QACAC,cACAC,cACAlG,eAEA/mB,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GDdS,uCCgBL,SAAbpI,GDZiB,uCCahBiJ,GDfa,oCCgBbC,GAAeC,IDnBA,qCCoBhBD,GDhBmB,wCCiBnBjG,IAGDkG,EACCjtB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,IAAIne,KAAK,YAAYoe,UD5BX,yCC6BhBkG,GAGHjtB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAK+mB,UDhCiB,8CCiCnB6F,GACC5sB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,IACHne,KAAMqkB,EAAc,KAAO,gBAC3BE,QAASF,GAAe,YACxBjG,UDlCE,gCCoCD6F,GAGJxjB,GACCpJ,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,IACHne,KAAK,KACLukB,QAASF,EAAc,YAAc,GACrCjG,UDrCI,kCCuCH3d,KAIN0jB,aAAI,EAAJA,EAAMrsB,QAAS,GACdT,EAAAA,cAAA,OAAK+mB,UDtDY,2CCuDd+F,EAAK/kB,KAAI,CAAC8kB,EAAKM,IACdntB,EAAAA,cAACotB,EAAAA,EAAI,CACHjlB,IAAK0kB,EAAIzjB,KACTgE,KAAMyf,EACNQ,UAAQ,EACRC,WAAS,EACTvG,WAAWmF,EAAAA,EAAAA,GACTqB,EACQ,IAARJ,GDtDK,sCCuDLI,IAGDV,EAAIzjB,WAMX0jB,SAAAA,EAAMrsB,SAAUosB,GAChB7sB,EAAAA,cAAA,WACEA,EAAAA,cAACotB,EAAAA,EAAI,CACHhgB,KAAMyf,EACNQ,UAAQ,EACRC,WAAS,EACTvG,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAuBA,IAEzCV,EAAIzjB,SASNojB,EAAY,CACvBI,SAAUH,IAAAA,OACVQ,YAAaR,IAAAA,OACbrjB,KAAMqjB,IAAAA,OACNI,IAAKJ,IAAAA,MAASe,EAAAA,GACdV,KAAML,IAAAA,QAAWA,IAAAA,MAASe,EAAAA,IAC1B1J,SAAU2I,IAAAA,OACVM,MAAON,IAAAA,KACP1F,UAAW0F,IAAAA,QAEbE,EAAWpL,UAAYiL,EAEvBG,EAAWjL,aAAe,CACxBkL,SAAU,GACVK,YAAa,GACbnJ,SAAU,QACViJ,OAAO,EACPhG,UAAW,GACX+F,KAAM,IAGRH,EAAWpL,UAAYiL,EAEvB,O,6IC/GWiB,EAAO,2BACPC,EAAgB,oCAChBC,EAAkB,sCAClBC,EAAiB,qC,UCI5B,SAAS,EAAShoB,GAChB,OAAe,OAARA,GAA+B,iBAARA,GAAoB,gBAAiBA,GAAOA,EAAI2F,cAAgB5L,MAChG,CACA,SAASkuB,EAAOtkB,EAAQyb,QACP,IAAXzb,IACFA,EAAS,CAAC,QAEA,IAARyb,IACFA,EAAM,CAAC,GAETrlB,OAAOmG,KAAKkf,GAAKnW,SAAQ1G,SACI,IAAhBoB,EAAOpB,GAAsBoB,EAAOpB,GAAO6c,EAAI7c,GAAc,EAAS6c,EAAI7c,KAAS,EAASoB,EAAOpB,KAASxI,OAAOmG,KAAKkf,EAAI7c,IAAM1H,OAAS,GACpJotB,EAAOtkB,EAAOpB,GAAM6c,EAAI7c,GAC1B,GAEJ,CACA,MAAM2lB,EAAc,CAClB/B,KAAM,CAAC,EACP5D,mBAAoB,EACpBC,sBAAuB,EACvB2F,cAAe,CACbC,OAAQ,EACRC,SAAU,IAEZ9R,gBACE,OAAO,IACT,EACAE,mBACE,MAAO,EACT,EACA6R,iBACE,OAAO,IACT,EACAC,cACE,MAAO,CACLC,YAAa,EAEjB,EACAvlB,gBACE,MAAO,CACLD,SAAU,GACVylB,WAAY,GACZvP,MAAO,CAAC,EACRlD,eAAgB,EAChBP,uBACE,MAAO,EACT,EAEJ,EACAiT,kBACE,MAAO,CAAC,CACV,EACAC,aACE,OAAO,IACT,EACAC,SAAU,CACRC,KAAM,GACNC,KAAM,GACNC,SAAU,GACV1lB,KAAM,GACN2lB,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,KAGZ,SAAS,IACP,MAAMC,EAA0B,oBAAb7T,SAA2BA,SAAW,CAAC,EAE1D,OADA0S,EAAOmB,EAAKlB,GACLkB,CACT,CACA,MAAMC,EAAY,CAChB9T,SAAU2S,EACVoB,UAAW,CACTC,UAAW,IAEbX,SAAU,CACRC,KAAM,GACNC,KAAM,GACNC,SAAU,GACV1lB,KAAM,GACN2lB,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,IAEVK,QAAS,CACPC,eAAgB,EAChBC,YAAa,EACbC,KAAM,EACNC,OAAQ,GAEVC,YAAa,WACX,OAAO1uB,IACT,EACAonB,mBAAoB,EACpBC,sBAAuB,EACvBsH,mBACE,MAAO,CACLC,mBACE,MAAO,EACT,EAEJ,EACAC,QAAS,EACTtd,OAAQ,EACRud,OAAQ,CAAC,EACThX,aAAc,EACdE,eAAgB,EAChB+W,aACE,MAAO,CAAC,CACV,EACA9W,sBAAsBL,GACpB,MAA0B,oBAAfE,YACTF,IACO,MAEFE,WAAWF,EAAU,EAC9B,EACAS,qBAAqB3P,GACO,oBAAfoP,YAGXE,aAAatP,EACf,GAEF,SAAS,IACP,MAAMsmB,EAAwB,oBAAX7uB,OAAyBA,OAAS,CAAC,EAEtD,OADA2sB,EAAOkC,EAAKd,GACLc,CACT,CC9HA,SAAS,EAASpX,EAAUqX,GAI1B,YAHc,IAAVA,IACFA,EAAQ,GAEHnX,WAAWF,EAAUqX,EAC9B,CACA,SAAS,IACP,OAAO1d,KAAKoG,KACd,CAeA,SAAS,EAAauX,EAAIC,QACX,IAATA,IACFA,EAAO,KAET,MAAMhvB,EAAS,IACf,IAAIivB,EACAC,EACAC,EACJ,MAAMC,EAtBR,SAA0BL,GACxB,MAAM/uB,EAAS,IACf,IAAI4d,EAUJ,OATI5d,EAAOwuB,mBACT5Q,EAAQ5d,EAAOwuB,iBAAiBO,EAAI,QAEjCnR,GAASmR,EAAGM,eACfzR,EAAQmR,EAAGM,cAERzR,IACHA,EAAQmR,EAAGnR,OAENA,CACT,CASmB,CAAiBmR,GA6BlC,OA5BI/uB,EAAOsvB,iBACTJ,EAAeE,EAASG,WAAaH,EAASI,gBAC1CN,EAAatiB,MAAM,KAAKrN,OAAS,IACnC2vB,EAAeA,EAAatiB,MAAM,MAAM/F,KAAIiM,GAAKA,EAAEhJ,QAAQ,IAAK,OAAMV,KAAK,OAI7E+lB,EAAkB,IAAInvB,EAAOsvB,gBAAiC,SAAjBJ,EAA0B,GAAKA,KAE5EC,EAAkBC,EAASK,cAAgBL,EAASM,YAAcN,EAASO,aAAeP,EAASQ,aAAeR,EAASG,WAAaH,EAASX,iBAAiB,aAAa3kB,QAAQ,aAAc,sBACrMmlB,EAASE,EAAgB3gB,WAAW5B,MAAM,MAE/B,MAAToiB,IAE0BE,EAAxBlvB,EAAOsvB,gBAAgCH,EAAgBU,IAEhC,KAAlBZ,EAAO1vB,OAA8BuwB,WAAWb,EAAO,KAE5Ca,WAAWb,EAAO,KAE3B,MAATD,IAE0BE,EAAxBlvB,EAAOsvB,gBAAgCH,EAAgBY,IAEhC,KAAlBd,EAAO1vB,OAA8BuwB,WAAWb,EAAO,KAE5Ca,WAAWb,EAAO,KAEjCC,GAAgB,CACzB,CACA,SAAS,EAAS9pB,GAChB,MAAoB,iBAANA,GAAwB,OAANA,GAAcA,EAAEiF,aAAkE,WAAnD5L,OAAOgB,UAAU+O,SAAS7O,KAAKyF,GAAG3D,MAAM,GAAI,EAC7G,CAQA,SAAS,IACP,MAAMN,EAAK1C,OAAOa,UAAUC,QAAU,OAAIiG,EAAYlG,UAAU,IAC1D0wB,EAAW,CAAC,YAAa,cAAe,aAC9C,IAAK,IAAI5wB,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,GAAK,EAAG,CAC5C,MAAM6wB,EAAa7wB,EAAI,GAAKE,UAAUC,QAAUH,OAAIoG,EAAYlG,UAAUF,GAC1E,GAAI6wB,UAZQjrB,EAYmDirB,IAV3C,oBAAXjwB,aAAwD,IAAvBA,OAAOkwB,YAC1ClrB,aAAgBkrB,YAElBlrB,IAA2B,IAAlBA,EAAKX,UAAoC,KAAlBW,EAAKX,YAOkC,CAC1E,MAAM8rB,EAAY1xB,OAAOmG,KAAKnG,OAAOwxB,IAAa9mB,QAAOlC,GAAO+oB,EAAShiB,QAAQ/G,GAAO,IACxF,IAAK,IAAImpB,EAAY,EAAGC,EAAMF,EAAU5wB,OAAQ6wB,EAAYC,EAAKD,GAAa,EAAG,CAC/E,MAAME,EAAUH,EAAUC,GACpB3qB,EAAOhH,OAAOiH,yBAAyBuqB,EAAYK,QAC5C9qB,IAATC,GAAsBA,EAAKI,aACzB,EAAS1E,EAAGmvB,KAAa,EAASL,EAAWK,IAC3CL,EAAWK,GAASC,WACtBpvB,EAAGmvB,GAAWL,EAAWK,GAEzB,EAAOnvB,EAAGmvB,GAAUL,EAAWK,KAEvB,EAASnvB,EAAGmvB,KAAa,EAASL,EAAWK,KACvDnvB,EAAGmvB,GAAW,CAAC,EACXL,EAAWK,GAASC,WACtBpvB,EAAGmvB,GAAWL,EAAWK,GAEzB,EAAOnvB,EAAGmvB,GAAUL,EAAWK,KAGjCnvB,EAAGmvB,GAAWL,EAAWK,GAG/B,CACF,CACF,CArCF,IAAgBtrB,EAsCd,OAAO7D,CACT,CACA,SAAS,EAAe4tB,EAAIyB,EAASC,GACnC1B,EAAGnR,MAAM8S,YAAYF,EAASC,EAChC,CACA,SAASE,EAAqBrT,GAC5B,IAAI,OACFsT,EAAM,eACNC,EAAc,KACdC,GACExT,EACJ,MAAMtd,EAAS,IACT+wB,GAAiBH,EAAOI,UAC9B,IACIC,EADAC,EAAY,KAEhB,MAAMC,EAAWP,EAAOQ,OAAOC,MAC/BT,EAAOU,UAAU1T,MAAM2T,eAAiB,OACxCvxB,EAAOkY,qBAAqB0Y,EAAOY,gBACnC,MAAMC,EAAMZ,EAAiBE,EAAgB,OAAS,OAChDW,EAAe,CAACnb,EAASlO,IACd,SAARopB,GAAkBlb,GAAWlO,GAAkB,SAARopB,GAAkBlb,GAAWlO,EAEvEspB,EAAU,KACdV,GAAO,IAAI7f,MAAOC,UACA,OAAd6f,IACFA,EAAYD,GAEd,MAAMW,EAAWC,KAAKC,IAAID,KAAKE,KAAKd,EAAOC,GAAaC,EAAU,GAAI,GAChEa,EAAe,GAAMH,KAAKI,IAAIL,EAAWC,KAAKK,IAAM,EAC1D,IAAIC,EAAkBpB,EAAgBiB,GAAgBnB,EAAiBE,GAOvE,GANIW,EAAaS,EAAiBtB,KAChCsB,EAAkBtB,GAEpBD,EAAOU,UAAUc,SAAS,CACxB,CAACtB,GAAOqB,IAENT,EAAaS,EAAiBtB,GAUhC,OATAD,EAAOU,UAAU1T,MAAMyU,SAAW,SAClCzB,EAAOU,UAAU1T,MAAM2T,eAAiB,GACxC5Z,YAAW,KACTiZ,EAAOU,UAAU1T,MAAMyU,SAAW,GAClCzB,EAAOU,UAAUc,SAAS,CACxB,CAACtB,GAAOqB,GACR,SAEJnyB,EAAOkY,qBAAqB0Y,EAAOY,gBAGrCZ,EAAOY,eAAiBxxB,EAAO8X,sBAAsB6Z,EAAQ,EAE/DA,GACF,CAIA,SAAS,EAAgB5qB,EAASurB,GAIhC,YAHiB,IAAbA,IACFA,EAAW,IAEN,IAAIvrB,EAAQW,UAAUyB,QAAO4lB,GAAMA,EAAGwD,QAAQD,IACvD,CACA,SAAS,EAAc1b,EAAK4b,QACV,IAAZA,IACFA,EAAU,IAEZ,MAAMzD,EAAK9U,SAAStS,cAAciP,GAElC,OADAmY,EAAG0D,UAAU/gB,OAAQlQ,MAAMuH,QAAQypB,GAAWA,EAAU,CAACA,IAClDzD,CACT,CAqCA,SAAS2D,EAAa3D,EAAI4D,GAExB,OADe,IACDnE,iBAAiBO,EAAI,MAAMN,iBAAiBkE,EAC5D,CACA,SAAS,EAAa5D,GACpB,IACI3vB,EADAyf,EAAQkQ,EAEZ,GAAIlQ,EAAO,CAGT,IAFAzf,EAAI,EAEuC,QAAnCyf,EAAQA,EAAM+T,kBACG,IAAnB/T,EAAMxa,WAAgBjF,GAAK,GAEjC,OAAOA,CACT,CAEF,CACA,SAAS,EAAe2vB,EAAIuD,GAC1B,MAAMO,EAAU,GAChB,IAAIC,EAAS/D,EAAGgE,cAChB,KAAOD,GACDR,EACEQ,EAAOP,QAAQD,IAAWO,EAAQ9nB,KAAK+nB,GAE3CD,EAAQ9nB,KAAK+nB,GAEfA,EAASA,EAAOC,cAElB,OAAOF,CACT,CAWA,SAASG,EAAiBjE,EAAInd,EAAMqhB,GAClC,MAAMjzB,EAAS,IACf,OAAIizB,EACKlE,EAAY,UAATnd,EAAmB,cAAgB,gBAAkBke,WAAW9vB,EAAOwuB,iBAAiBO,EAAI,MAAMN,iBAA0B,UAAT7c,EAAmB,eAAiB,eAAiBke,WAAW9vB,EAAOwuB,iBAAiBO,EAAI,MAAMN,iBAA0B,UAAT7c,EAAmB,cAAgB,kBAE9Qmd,EAAGmE,WACZ,CC5QA,IAAIC,EAeAC,EAoDAC,EA1DJ,SAASC,IAIP,OAHKH,IACHA,EAVJ,WACE,MAAMnzB,EAAS,IACTia,EAAW,IACjB,MAAO,CACLsZ,aAActZ,EAASuZ,iBAAmBvZ,EAASuZ,gBAAgB5V,OAAS,mBAAoB3D,EAASuZ,gBAAgB5V,MACzH6V,SAAU,iBAAkBzzB,GAAUA,EAAO0zB,eAAiBzZ,aAAoBja,EAAO0zB,eAE7F,CAGcC,IAELR,CACT,CA4CA,SAASS,EAAUC,GAOjB,YANkB,IAAdA,IACFA,EAAY,CAAC,GAEVT,IACHA,EA/CJ,SAAoB5f,GAClB,IAAI,UACFya,QACY,IAAVza,EAAmB,CAAC,EAAIA,EAC5B,MAAM2f,EAAUG,IACVtzB,EAAS,IACT8zB,EAAW9zB,EAAOguB,UAAU8F,SAC5BC,EAAK9F,GAAajuB,EAAOguB,UAAUC,UACnC+F,EAAS,CACbC,KAAK,EACLC,SAAS,GAELC,EAAcn0B,EAAO2uB,OAAOhM,MAC5ByR,EAAep0B,EAAO2uB,OAAO3M,OAC7BkS,EAAUH,EAAGvnB,MAAM,+BACzB,IAAI6nB,EAAON,EAAGvnB,MAAM,wBACpB,MAAM8nB,EAAOP,EAAGvnB,MAAM,2BAChB+nB,GAAUF,GAAQN,EAAGvnB,MAAM,8BAC3BgoB,EAAuB,UAAbV,EAChB,IAAIW,EAAqB,aAAbX,EAqBZ,OAjBKO,GAAQI,GAAStB,EAAQM,OADV,CAAC,YAAa,YAAa,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YACxGzlB,QAAQ,GAAGtM,OAAOyyB,EAAa,KAAKzyB,OAAO0yB,KAAkB,IAC9GC,EAAON,EAAGvnB,MAAM,uBACX6nB,IAAMA,EAAO,CAAC,EAAG,EAAG,WACzBI,GAAQ,GAINP,IAAYM,IACdR,EAAOU,GAAK,UACZV,EAAOE,SAAU,IAEfG,GAAQE,GAAUD,KACpBN,EAAOU,GAAK,MACZV,EAAOC,KAAM,GAIRD,CACT,CAMmBW,CAAWd,IAErBT,CACT,CAsBA,SAASwB,IAIP,OAHKvB,IACHA,EAtBJ,WACE,MAAMrzB,EAAS,IACf,IAAI60B,GAAqB,EACzB,SAASC,IACP,MAAMf,EAAK/zB,EAAOguB,UAAUC,UAAU3kB,cACtC,OAAOyqB,EAAG/lB,QAAQ,WAAa,GAAK+lB,EAAG/lB,QAAQ,UAAY,GAAK+lB,EAAG/lB,QAAQ,WAAa,CAC1F,CACA,GAAI8mB,IAAY,CACd,MAAMf,EAAKne,OAAO5V,EAAOguB,UAAUC,WACnC,GAAI8F,EAAG7mB,SAAS,YAAa,CAC3B,MAAO6nB,EAAOC,GAASjB,EAAGnnB,MAAM,YAAY,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAAK/F,KAAIouB,GAAOC,OAAOD,KAC1FJ,EAAqBE,EAAQ,IAAgB,KAAVA,GAAgBC,EAAQ,CAC7D,CACF,CACA,MAAO,CACLF,SAAUD,GAAsBC,IAChCD,qBACAM,UAAW,+CAA+CvrB,KAAK5J,EAAOguB,UAAUC,WAEpF,CAGcmH,IAEL/B,CACT,CA+IA,IAAIgC,EAAgB,CAClBC,GAAGC,EAAQC,EAASC,GAClB,MAAMv1B,EAAOL,KACb,IAAKK,EAAKw1B,iBAAmBx1B,EAAKy1B,UAAW,OAAOz1B,EACpD,GAAuB,mBAAZs1B,EAAwB,OAAOt1B,EAC1C,MAAMyqB,EAAS8K,EAAW,UAAY,OAKtC,OAJAF,EAAO3oB,MAAM,KAAKe,SAAQioB,IACnB11B,EAAKw1B,gBAAgBE,KAAQ11B,EAAKw1B,gBAAgBE,GAAS,IAChE11B,EAAKw1B,gBAAgBE,GAAOjL,GAAQ6K,EAAQ,IAEvCt1B,CACT,EACA21B,KAAKN,EAAQC,EAASC,GACpB,MAAMv1B,EAAOL,KACb,IAAKK,EAAKw1B,iBAAmBx1B,EAAKy1B,UAAW,OAAOz1B,EACpD,GAAuB,mBAAZs1B,EAAwB,OAAOt1B,EAC1C,SAAS41B,IACP51B,EAAK61B,IAAIR,EAAQO,GACbA,EAAYE,uBACPF,EAAYE,eAErB,IAAK,IAAI/Q,EAAO3lB,UAAUC,OAAQ02B,EAAO,IAAIz0B,MAAMyjB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E+Q,EAAK/Q,GAAQ5lB,UAAU4lB,GAEzBsQ,EAAQ51B,MAAMM,EAAM+1B,EACtB,CAEA,OADAH,EAAYE,eAAiBR,EACtBt1B,EAAKo1B,GAAGC,EAAQO,EAAaL,EACtC,EACAS,MAAMV,EAASC,GACb,MAAMv1B,EAAOL,KACb,IAAKK,EAAKw1B,iBAAmBx1B,EAAKy1B,UAAW,OAAOz1B,EACpD,GAAuB,mBAAZs1B,EAAwB,OAAOt1B,EAC1C,MAAMyqB,EAAS8K,EAAW,UAAY,OAItC,OAHIv1B,EAAKi2B,mBAAmBnoB,QAAQwnB,GAAW,GAC7Ct1B,EAAKi2B,mBAAmBxL,GAAQ6K,GAE3Bt1B,CACT,EACAk2B,OAAOZ,GACL,MAAMt1B,EAAOL,KACb,IAAKK,EAAKw1B,iBAAmBx1B,EAAKy1B,UAAW,OAAOz1B,EACpD,IAAKA,EAAKi2B,mBAAoB,OAAOj2B,EACrC,MAAM4G,EAAQ5G,EAAKi2B,mBAAmBnoB,QAAQwnB,GAI9C,OAHI1uB,GAAS,GACX5G,EAAKi2B,mBAAmBvb,OAAO9T,EAAO,GAEjC5G,CACT,EACA61B,IAAIR,EAAQC,GACV,MAAMt1B,EAAOL,KACb,OAAKK,EAAKw1B,iBAAmBx1B,EAAKy1B,UAAkBz1B,EAC/CA,EAAKw1B,iBACVH,EAAO3oB,MAAM,KAAKe,SAAQioB,SACD,IAAZJ,EACTt1B,EAAKw1B,gBAAgBE,GAAS,GACrB11B,EAAKw1B,gBAAgBE,IAC9B11B,EAAKw1B,gBAAgBE,GAAOjoB,SAAQ,CAAC0oB,EAAcvvB,MAC7CuvB,IAAiBb,GAAWa,EAAaL,gBAAkBK,EAAaL,iBAAmBR,IAC7Ft1B,EAAKw1B,gBAAgBE,GAAOhb,OAAO9T,EAAO,EAC5C,GAEJ,IAEK5G,GAZ2BA,CAapC,EACAo2B,OACE,MAAMp2B,EAAOL,KACb,IAAKK,EAAKw1B,iBAAmBx1B,EAAKy1B,UAAW,OAAOz1B,EACpD,IAAKA,EAAKw1B,gBAAiB,OAAOx1B,EAClC,IAAIq1B,EACAjxB,EACAiyB,EACJ,IAAK,IAAI5O,EAAQroB,UAAUC,OAAQ02B,EAAO,IAAIz0B,MAAMmmB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFqO,EAAKrO,GAAStoB,UAAUsoB,GAEH,iBAAZqO,EAAK,IAAmBz0B,MAAMuH,QAAQktB,EAAK,KACpDV,EAASU,EAAK,GACd3xB,EAAO2xB,EAAKx0B,MAAM,EAAGw0B,EAAK12B,QAC1Bg3B,EAAUr2B,IAEVq1B,EAASU,EAAK,GAAGV,OACjBjxB,EAAO2xB,EAAK,GAAG3xB,KACfiyB,EAAUN,EAAK,GAAGM,SAAWr2B,GAE/BoE,EAAKkyB,QAAQD,GAcb,OAboB/0B,MAAMuH,QAAQwsB,GAAUA,EAASA,EAAO3oB,MAAM,MACtDe,SAAQioB,IACd11B,EAAKi2B,oBAAsBj2B,EAAKi2B,mBAAmB52B,QACrDW,EAAKi2B,mBAAmBxoB,SAAQ0oB,IAC9BA,EAAaz2B,MAAM22B,EAAS,CAACX,KAAUtxB,GAAM,IAG7CpE,EAAKw1B,iBAAmBx1B,EAAKw1B,gBAAgBE,IAC/C11B,EAAKw1B,gBAAgBE,GAAOjoB,SAAQ0oB,IAClCA,EAAaz2B,MAAM22B,EAASjyB,EAAK,GAErC,IAEKpE,CACT,GAqhBF,MAAMu2B,EAAuB,CAAC7F,EAAQ8F,KACpC,IAAK9F,GAAUA,EAAO+E,YAAc/E,EAAOQ,OAAQ,OACnD,MACMuF,EAAUD,EAAQE,QADIhG,EAAOiG,UAAY,eAAiB,IAAIn1B,OAAOkvB,EAAOQ,OAAO0F,aAEzF,GAAIH,EAAS,CACX,IAAII,EAASJ,EAAQ1b,cAAc,IAAIvZ,OAAOkvB,EAAOQ,OAAO4F,sBACvDD,GAAUnG,EAAOiG,YAChBF,EAAQM,WACVF,EAASJ,EAAQM,WAAWhc,cAAc,IAAIvZ,OAAOkvB,EAAOQ,OAAO4F,qBAGnElf,uBAAsB,KAChB6e,EAAQM,aACVF,EAASJ,EAAQM,WAAWhc,cAAc,IAAIvZ,OAAOkvB,EAAOQ,OAAO4F,qBAC/DD,GAAQA,EAAOG,SACrB,KAIFH,GAAQA,EAAOG,QACrB,GAEIC,EAAS,CAACvG,EAAQ9pB,KACtB,IAAK8pB,EAAOwG,OAAOtwB,GAAQ,OAC3B,MAAM4vB,EAAU9F,EAAOwG,OAAOtwB,GAAOmU,cAAc,oBAC/Cyb,GAASA,EAAQ7b,gBAAgB,UAAU,EAE3Cwc,EAAUzG,IACd,IAAKA,GAAUA,EAAO+E,YAAc/E,EAAOQ,OAAQ,OACnD,IAAIkG,EAAS1G,EAAOQ,OAAOmG,oBAC3B,MAAMlH,EAAMO,EAAOwG,OAAO73B,OAC1B,IAAK8wB,IAAQiH,GAAUA,EAAS,EAAG,OACnCA,EAASzF,KAAKE,IAAIuF,EAAQjH,GAC1B,MAAMmH,EAAgD,SAAhC5G,EAAOQ,OAAOoG,cAA2B5G,EAAO6G,uBAAyB5F,KAAK6F,KAAK9G,EAAOQ,OAAOoG,eACjHG,EAAc/G,EAAO+G,YAC3B,GAAI/G,EAAOQ,OAAOwG,MAAQhH,EAAOQ,OAAOwG,KAAKC,KAAO,EAAG,CACrD,MAAMC,EAAeH,EACfI,EAAiB,CAACD,EAAeR,GASvC,OARAS,EAAehtB,QAAQvJ,MAAMJ,KAAK,CAChC7B,OAAQ+3B,IACPzwB,KAAI,CAACkD,EAAG3K,IACF04B,EAAeN,EAAgBp4B,UAExCwxB,EAAOwG,OAAOzpB,SAAQ,CAACgpB,EAASv3B,KAC1B24B,EAAe7qB,SAASypB,EAAQqB,SAASb,EAAOvG,EAAQxxB,EAAE,GAGlE,CACA,MAAM64B,EAAuBN,EAAcH,EAAgB,EAC3D,GAAI5G,EAAOQ,OAAO1Q,QAAUkQ,EAAOQ,OAAO8G,KACxC,IAAK,IAAI94B,EAAIu4B,EAAcL,EAAQl4B,GAAK64B,EAAuBX,EAAQl4B,GAAK,EAAG,CAC7E,MAAM+4B,GAAa/4B,EAAIixB,EAAMA,GAAOA,GAChC8H,EAAYR,GAAeQ,EAAYF,IAAsBd,EAAOvG,EAAQuH,EAClF,MAEA,IAAK,IAAI/4B,EAAIyyB,KAAKC,IAAI6F,EAAcL,EAAQ,GAAIl4B,GAAKyyB,KAAKE,IAAIkG,EAAuBX,EAAQjH,EAAM,GAAIjxB,GAAK,EACtGA,IAAMu4B,IAAgBv4B,EAAI64B,GAAwB74B,EAAIu4B,IACxDR,EAAOvG,EAAQxxB,EAGrB,EAuIF,IAAIg5B,EAAS,CACXC,WAvtBF,WACE,MAAMzH,EAAS/wB,KACf,IAAI8iB,EACAX,EACJ,MAAM+M,EAAK6B,EAAO7B,GAEhBpM,OADiC,IAAxBiO,EAAOQ,OAAOzO,OAAiD,OAAxBiO,EAAOQ,OAAOzO,MACtDiO,EAAOQ,OAAOzO,MAEdoM,EAAGuJ,YAGXtW,OADkC,IAAzB4O,EAAOQ,OAAOpP,QAAmD,OAAzB4O,EAAOQ,OAAOpP,OACtD4O,EAAOQ,OAAOpP,OAEd+M,EAAGwJ,aAEA,IAAV5V,GAAeiO,EAAO4H,gBAA6B,IAAXxW,GAAgB4O,EAAO6H,eAKnE9V,EAAQA,EAAQ+V,SAAShG,EAAa3D,EAAI,iBAAmB,EAAG,IAAM2J,SAAShG,EAAa3D,EAAI,kBAAoB,EAAG,IACvH/M,EAASA,EAAS0W,SAAShG,EAAa3D,EAAI,gBAAkB,EAAG,IAAM2J,SAAShG,EAAa3D,EAAI,mBAAqB,EAAG,IACrHmG,OAAOyD,MAAMhW,KAAQA,EAAQ,GAC7BuS,OAAOyD,MAAM3W,KAASA,EAAS,GACnCvjB,OAAOQ,OAAO2xB,EAAQ,CACpBjO,QACAX,SACApQ,KAAMgf,EAAO4H,eAAiB7V,EAAQX,IAE1C,EA2rBE4W,aA1rBF,WACE,MAAMhI,EAAS/wB,KACf,SAASg5B,EAAkBxoB,GACzB,OAAIugB,EAAO4H,eACFnoB,EAGF,CACL,MAAS,SACT,aAAc,cACd,iBAAkB,eAClB,cAAe,aACf,eAAgB,gBAChB,eAAgB,cAChB,gBAAiB,iBACjB,YAAe,gBACfA,EACJ,CACA,SAASyoB,EAA0B9zB,EAAM+zB,GACvC,OAAOjJ,WAAW9qB,EAAKypB,iBAAiBoK,EAAkBE,KAAW,EACvE,CACA,MAAM3H,EAASR,EAAOQ,QAChB,UACJE,EAAS,SACT0H,EACApnB,KAAMqnB,EACNC,aAAcC,EAAG,SACjBC,GACExI,EACEyI,EAAYzI,EAAO0I,SAAWlI,EAAOkI,QAAQC,QAC7CC,EAAuBH,EAAYzI,EAAO0I,QAAQlC,OAAO73B,OAASqxB,EAAOwG,OAAO73B,OAChF63B,EAAS,EAAgB4B,EAAU,IAAIt3B,OAAOkvB,EAAOQ,OAAO0F,WAAY,mBACxE2C,EAAeJ,EAAYzI,EAAO0I,QAAQlC,OAAO73B,OAAS63B,EAAO73B,OACvE,IAAIm6B,EAAW,GACf,MAAMC,EAAa,GACbC,EAAkB,GACxB,IAAIC,EAAezI,EAAO0I,mBACE,mBAAjBD,IACTA,EAAezI,EAAO0I,mBAAmBn6B,KAAKixB,IAEhD,IAAImJ,EAAc3I,EAAO4I,kBACE,mBAAhBD,IACTA,EAAc3I,EAAO4I,kBAAkBr6B,KAAKixB,IAE9C,MAAMqJ,EAAyBrJ,EAAO8I,SAASn6B,OACzC26B,EAA2BtJ,EAAO+I,WAAWp6B,OACnD,IAAI46B,EAAe/I,EAAO+I,aACtBC,GAAiBP,EACjBQ,EAAgB,EAChBvzB,EAAQ,EACZ,QAA0B,IAAfmyB,EACT,OAE0B,iBAAjBkB,GAA6BA,EAAansB,QAAQ,MAAQ,EACnEmsB,EAAerK,WAAWqK,EAAarwB,QAAQ,IAAK,KAAO,IAAMmvB,EAChC,iBAAjBkB,IAChBA,EAAerK,WAAWqK,IAE5BvJ,EAAO0J,aAAeH,EAGtB/C,EAAOzpB,SAAQgpB,IACTwC,EACFxC,EAAQ/Y,MAAM2c,WAAa,GAE3B5D,EAAQ/Y,MAAM4c,YAAc,GAE9B7D,EAAQ/Y,MAAM6c,aAAe,GAC7B9D,EAAQ/Y,MAAM8c,UAAY,EAAE,IAI1BtJ,EAAOuJ,gBAAkBvJ,EAAOwJ,UAClC,EAAetJ,EAAW,kCAAmC,IAC7D,EAAeA,EAAW,iCAAkC,KAE9D,MAAMuJ,EAAczJ,EAAOwG,MAAQxG,EAAOwG,KAAKC,KAAO,GAAKjH,EAAOgH,KAMlE,IAAIkD,EALAD,GACFjK,EAAOgH,KAAKmD,WAAWtB,GAKzB,MAAMuB,EAAgD,SAAzB5J,EAAOoG,eAA4BpG,EAAO6J,aAAex8B,OAAOmG,KAAKwsB,EAAO6J,aAAa9xB,QAAOlC,QACnE,IAA1CmqB,EAAO6J,YAAYh0B,GAAKuwB,gBACrCj4B,OAAS,EACZ,IAAK,IAAIH,EAAI,EAAGA,EAAIq6B,EAAcr6B,GAAK,EAAG,CAExC,IAAI87B,EAKJ,GANAJ,EAAY,EAER1D,EAAOh4B,KAAI87B,EAAQ9D,EAAOh4B,IAC1By7B,GACFjK,EAAOgH,KAAKuD,YAAY/7B,EAAG87B,EAAOzB,EAAcZ,IAE9CzB,EAAOh4B,IAAyC,SAAnCszB,EAAawI,EAAO,WAArC,CAEA,GAA6B,SAAzB9J,EAAOoG,cAA0B,CAC/BwD,IACF5D,EAAOh4B,GAAGwe,MAAMib,EAAkB,UAAY,IAEhD,MAAMuC,EAAc5M,iBAAiB0M,GAC/BG,EAAmBH,EAAMtd,MAAM2R,UAC/B+L,EAAyBJ,EAAMtd,MAAM4R,gBAO3C,GANI6L,IACFH,EAAMtd,MAAM2R,UAAY,QAEtB+L,IACFJ,EAAMtd,MAAM4R,gBAAkB,QAE5B4B,EAAOmK,aACTT,EAAYlK,EAAO4H,eAAiBxF,EAAiBkI,EAAO,SAAS,GAAQlI,EAAiBkI,EAAO,UAAU,OAC1G,CAEL,MAAMvY,EAAQmW,EAA0BsC,EAAa,SAC/CI,EAAc1C,EAA0BsC,EAAa,gBACrDK,EAAe3C,EAA0BsC,EAAa,iBACtDb,EAAazB,EAA0BsC,EAAa,eACpDZ,EAAc1B,EAA0BsC,EAAa,gBACrDM,EAAYN,EAAY3M,iBAAiB,cAC/C,GAAIiN,GAA2B,eAAdA,EACfZ,EAAYnY,EAAQ4X,EAAaC,MAC5B,CACL,MAAM,YACJlC,EAAW,YACXpF,GACEgI,EACJJ,EAAYnY,EAAQ6Y,EAAcC,EAAelB,EAAaC,GAAetH,EAAcoF,EAC7F,CACF,CACI+C,IACFH,EAAMtd,MAAM2R,UAAY8L,GAEtBC,IACFJ,EAAMtd,MAAM4R,gBAAkB8L,GAE5BlK,EAAOmK,eAAcT,EAAYjJ,KAAK8J,MAAMb,GAClD,MACEA,GAAa7B,GAAc7H,EAAOoG,cAAgB,GAAK2C,GAAgB/I,EAAOoG,cAC1EpG,EAAOmK,eAAcT,EAAYjJ,KAAK8J,MAAMb,IAC5C1D,EAAOh4B,KACTg4B,EAAOh4B,GAAGwe,MAAMib,EAAkB,UAAY,GAAGn3B,OAAOo5B,EAAW,OAGnE1D,EAAOh4B,KACTg4B,EAAOh4B,GAAGw8B,gBAAkBd,GAE9BlB,EAAgB7uB,KAAK+vB,GACjB1J,EAAOuJ,gBACTP,EAAgBA,EAAgBU,EAAY,EAAIT,EAAgB,EAAIF,EAC9C,IAAlBE,GAA6B,IAANj7B,IAASg7B,EAAgBA,EAAgBnB,EAAa,EAAIkB,GAC3E,IAAN/6B,IAASg7B,EAAgBA,EAAgBnB,EAAa,EAAIkB,GAC1DtI,KAAKgK,IAAIzB,GAAiB,OAAUA,EAAgB,GACpDhJ,EAAOmK,eAAcnB,EAAgBvI,KAAK8J,MAAMvB,IAChDtzB,EAAQsqB,EAAO0K,gBAAmB,GAAGpC,EAAS3uB,KAAKqvB,GACvDT,EAAW5uB,KAAKqvB,KAEZhJ,EAAOmK,eAAcnB,EAAgBvI,KAAK8J,MAAMvB,KAC/CtzB,EAAQ+qB,KAAKE,IAAInB,EAAOQ,OAAO2K,mBAAoBj1B,IAAU8pB,EAAOQ,OAAO0K,gBAAmB,GAAGpC,EAAS3uB,KAAKqvB,GACpHT,EAAW5uB,KAAKqvB,GAChBA,EAAgBA,EAAgBU,EAAYX,GAE9CvJ,EAAO0J,aAAeQ,EAAYX,EAClCE,EAAgBS,EAChBh0B,GAAS,CArE2D,CAsEtE,CAaA,GAZA8pB,EAAO0J,YAAczI,KAAKC,IAAIlB,EAAO0J,YAAarB,GAAcc,EAC5DZ,GAAOC,IAA+B,UAAlBhI,EAAO4K,QAAwC,cAAlB5K,EAAO4K,UAC1D1K,EAAU1T,MAAM+E,MAAQ,GAAGjhB,OAAOkvB,EAAO0J,YAAcH,EAAc,OAEnE/I,EAAO6K,iBACT3K,EAAU1T,MAAMib,EAAkB,UAAY,GAAGn3B,OAAOkvB,EAAO0J,YAAcH,EAAc,OAEzFU,GACFjK,EAAOgH,KAAKsE,kBAAkBpB,EAAWpB,EAAUb,IAIhDzH,EAAOuJ,eAAgB,CAC1B,MAAMwB,EAAgB,GACtB,IAAK,IAAI/8B,EAAI,EAAGA,EAAIs6B,EAASn6B,OAAQH,GAAK,EAAG,CAC3C,IAAIg9B,EAAiB1C,EAASt6B,GAC1BgyB,EAAOmK,eAAca,EAAiBvK,KAAK8J,MAAMS,IACjD1C,EAASt6B,IAAMwxB,EAAO0J,YAAcrB,GACtCkD,EAAcpxB,KAAKqxB,EAEvB,CACA1C,EAAWyC,EACPtK,KAAK8J,MAAM/K,EAAO0J,YAAcrB,GAAcpH,KAAK8J,MAAMjC,EAASA,EAASn6B,OAAS,IAAM,GAC5Fm6B,EAAS3uB,KAAK6lB,EAAO0J,YAAcrB,EAEvC,CACA,GAAII,GAAajI,EAAO8G,KAAM,CAC5B,MAAMtmB,EAAOgoB,EAAgB,GAAKO,EAClC,GAAI/I,EAAO0K,eAAiB,EAAG,CAC7B,MAAMO,EAASxK,KAAK6F,MAAM9G,EAAO0I,QAAQgD,aAAe1L,EAAO0I,QAAQiD,aAAenL,EAAO0K,gBACvFU,EAAY5qB,EAAOwf,EAAO0K,eAChC,IAAK,IAAI18B,EAAI,EAAGA,EAAIi9B,EAAQj9B,GAAK,EAC/Bs6B,EAAS3uB,KAAK2uB,EAASA,EAASn6B,OAAS,GAAKi9B,EAElD,CACA,IAAK,IAAIp9B,EAAI,EAAGA,EAAIwxB,EAAO0I,QAAQgD,aAAe1L,EAAO0I,QAAQiD,YAAan9B,GAAK,EACnD,IAA1BgyB,EAAO0K,gBACTpC,EAAS3uB,KAAK2uB,EAASA,EAASn6B,OAAS,GAAKqS,GAEhD+nB,EAAW5uB,KAAK4uB,EAAWA,EAAWp6B,OAAS,GAAKqS,GACpDgf,EAAO0J,aAAe1oB,CAE1B,CAEA,GADwB,IAApB8nB,EAASn6B,SAAcm6B,EAAW,CAAC,IAClB,IAAjBS,EAAoB,CACtB,MAAMlzB,EAAM2pB,EAAO4H,gBAAkBW,EAAM,aAAeN,EAAkB,eAC5EzB,EAAOjuB,QAAO,CAACY,EAAG0yB,MACXrL,EAAOwJ,UAAWxJ,EAAO8G,OAC1BuE,IAAerF,EAAO73B,OAAS,IAIlCoO,SAAQgpB,IACTA,EAAQ/Y,MAAM3W,GAAO,GAAGvF,OAAOy4B,EAAc,KAAK,GAEtD,CACA,GAAI/I,EAAOuJ,gBAAkBvJ,EAAOsL,qBAAsB,CACxD,IAAIC,EAAgB,EACpB/C,EAAgBjsB,SAAQivB,IACtBD,GAAiBC,GAAkBzC,GAAgB,EAAE,IAEvDwC,GAAiBxC,EACjB,MAAM0C,EAAUF,EAAgB1D,EAChCS,EAAWA,EAAS7yB,KAAIi2B,GAClBA,GAAQ,GAAWjD,EACnBiD,EAAOD,EAAgBA,EAAU9C,EAC9B+C,GAEX,CACA,GAAI1L,EAAO2L,yBAA0B,CACnC,IAAIJ,EAAgB,EAKpB,GAJA/C,EAAgBjsB,SAAQivB,IACtBD,GAAiBC,GAAkBzC,GAAgB,EAAE,IAEvDwC,GAAiBxC,EACbwC,EAAgB1D,EAAY,CAC9B,MAAM+D,GAAmB/D,EAAa0D,GAAiB,EACvDjD,EAAS/rB,SAAQ,CAACmvB,EAAMG,KACtBvD,EAASuD,GAAaH,EAAOE,CAAe,IAE9CrD,EAAWhsB,SAAQ,CAACmvB,EAAMG,KACxBtD,EAAWsD,GAAaH,EAAOE,CAAe,GAElD,CACF,CAOA,GANAv+B,OAAOQ,OAAO2xB,EAAQ,CACpBwG,SACAsC,WACAC,aACAC,oBAEExI,EAAOuJ,gBAAkBvJ,EAAOwJ,UAAYxJ,EAAOsL,qBAAsB,CAC3E,EAAepL,EAAW,kCAAmC,GAAG5vB,QAAQg4B,EAAS,GAAI,OACrF,EAAepI,EAAW,iCAAkC,GAAG5vB,OAAOkvB,EAAOhf,KAAO,EAAIgoB,EAAgBA,EAAgBr6B,OAAS,GAAK,EAAG,OACzI,MAAM29B,GAAiBtM,EAAO8I,SAAS,GACjCyD,GAAmBvM,EAAO+I,WAAW,GAC3C/I,EAAO8I,SAAW9I,EAAO8I,SAAS7yB,KAAIb,GAAKA,EAAIk3B,IAC/CtM,EAAO+I,WAAa/I,EAAO+I,WAAW9yB,KAAIb,GAAKA,EAAIm3B,GACrD,CAcA,GAbI1D,IAAiBD,GACnB5I,EAAO0F,KAAK,sBAEVoD,EAASn6B,SAAW06B,IAClBrJ,EAAOQ,OAAOgM,eAAexM,EAAOyM,gBACxCzM,EAAO0F,KAAK,yBAEVqD,EAAWp6B,SAAW26B,GACxBtJ,EAAO0F,KAAK,0BAEVlF,EAAOkM,qBACT1M,EAAO2M,uBAEJlE,GAAcjI,EAAOwJ,SAA8B,UAAlBxJ,EAAO4K,QAAwC,SAAlB5K,EAAO4K,QAAoB,CAC5F,MAAMwB,EAAsB,GAAG97B,OAAO0vB,EAAOqM,uBAAwB,mBAC/DC,EAA6B9M,EAAO7B,GAAG0D,UAAUkL,SAASH,GAC5D/D,GAAgBrI,EAAOwM,wBACpBF,GAA4B9M,EAAO7B,GAAG0D,UAAU/gB,IAAI8rB,GAChDE,GACT9M,EAAO7B,GAAG0D,UAAUyE,OAAOsG,EAE/B,CACF,EA8ZEK,iBA7ZF,SAA0BxM,GACxB,MAAMT,EAAS/wB,KACTi+B,EAAe,GACfzE,EAAYzI,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAC1D,IACIn6B,EADA2+B,EAAY,EAEK,iBAAV1M,EACTT,EAAOoN,cAAc3M,IACF,IAAVA,GACTT,EAAOoN,cAAcpN,EAAOQ,OAAOC,OAErC,MAAM4M,EAAkBn3B,GAClBuyB,EACKzI,EAAOwG,OAAOxG,EAAOsN,oBAAoBp3B,IAE3C8pB,EAAOwG,OAAOtwB,GAGvB,GAAoC,SAAhC8pB,EAAOQ,OAAOoG,eAA4B5G,EAAOQ,OAAOoG,cAAgB,EAC1E,GAAI5G,EAAOQ,OAAOuJ,gBACf/J,EAAOuN,eAAiB,IAAIxwB,SAAQutB,IACnC4C,EAAa/yB,KAAKmwB,EAAM,SAG1B,IAAK97B,EAAI,EAAGA,EAAIyyB,KAAK6F,KAAK9G,EAAOQ,OAAOoG,eAAgBp4B,GAAK,EAAG,CAC9D,MAAM0H,EAAQ8pB,EAAO+G,YAAcv4B,EACnC,GAAI0H,EAAQ8pB,EAAOwG,OAAO73B,SAAW85B,EAAW,MAChDyE,EAAa/yB,KAAKkzB,EAAgBn3B,GACpC,MAGFg3B,EAAa/yB,KAAKkzB,EAAgBrN,EAAO+G,cAI3C,IAAKv4B,EAAI,EAAGA,EAAI0+B,EAAav+B,OAAQH,GAAK,EACxC,QAA+B,IAApB0+B,EAAa1+B,GAAoB,CAC1C,MAAM4iB,EAAS8b,EAAa1+B,GAAGg/B,aAC/BL,EAAY/b,EAAS+b,EAAY/b,EAAS+b,CAC5C,EAIEA,GAA2B,IAAdA,KAAiBnN,EAAOU,UAAU1T,MAAMoE,OAAS,GAAGtgB,OAAOq8B,EAAW,MACzF,EAkXER,mBAjXF,WACE,MAAM3M,EAAS/wB,KACTu3B,EAASxG,EAAOwG,OAEhBiH,EAAczN,EAAOiG,UAAYjG,EAAO4H,eAAiB5H,EAAOU,UAAUgN,WAAa1N,EAAOU,UAAUiN,UAAY,EAC1H,IAAK,IAAIn/B,EAAI,EAAGA,EAAIg4B,EAAO73B,OAAQH,GAAK,EACtCg4B,EAAOh4B,GAAGo/B,mBAAqB5N,EAAO4H,eAAiBpB,EAAOh4B,GAAGk/B,WAAalH,EAAOh4B,GAAGm/B,WAAaF,EAAczN,EAAO6N,uBAE9H,EA0WEC,qBAzWF,SAA8B1N,QACV,IAAdA,IACFA,EAAYnxB,MAAQA,KAAKmxB,WAAa,GAExC,MAAMJ,EAAS/wB,KACTuxB,EAASR,EAAOQ,QAChB,OACJgG,EACA8B,aAAcC,EAAG,SACjBO,GACE9I,EACJ,GAAsB,IAAlBwG,EAAO73B,OAAc,YACkB,IAAhC63B,EAAO,GAAGoH,mBAAmC5N,EAAO2M,qBAC/D,IAAIoB,GAAgB3N,EAChBmI,IAAKwF,EAAe3N,GAGxBoG,EAAOzpB,SAAQgpB,IACbA,EAAQlE,UAAUyE,OAAO9F,EAAOwN,kBAAkB,IAEpDhO,EAAOiO,qBAAuB,GAC9BjO,EAAOuN,cAAgB,GACvB,IAAIhE,EAAe/I,EAAO+I,aACE,iBAAjBA,GAA6BA,EAAansB,QAAQ,MAAQ,EACnEmsB,EAAerK,WAAWqK,EAAarwB,QAAQ,IAAK,KAAO,IAAM8mB,EAAOhf,KACvC,iBAAjBuoB,IAChBA,EAAerK,WAAWqK,IAE5B,IAAK,IAAI/6B,EAAI,EAAGA,EAAIg4B,EAAO73B,OAAQH,GAAK,EAAG,CACzC,MAAM87B,EAAQ9D,EAAOh4B,GACrB,IAAI0/B,EAAc5D,EAAMsD,kBACpBpN,EAAOwJ,SAAWxJ,EAAOuJ,iBAC3BmE,GAAe1H,EAAO,GAAGoH,mBAE3B,MAAMO,GAAiBJ,GAAgBvN,EAAOuJ,eAAiB/J,EAAOoO,eAAiB,GAAKF,IAAgB5D,EAAMU,gBAAkBzB,GAC9H8E,GAAyBN,EAAejF,EAAS,IAAMtI,EAAOuJ,eAAiB/J,EAAOoO,eAAiB,GAAKF,IAAgB5D,EAAMU,gBAAkBzB,GACpJ+E,IAAgBP,EAAeG,GAC/BK,EAAaD,EAActO,EAAOgJ,gBAAgBx6B,IACtC8/B,GAAe,GAAKA,EAActO,EAAOhf,KAAO,GAAKutB,EAAa,GAAKA,GAAcvO,EAAOhf,MAAQstB,GAAe,GAAKC,GAAcvO,EAAOhf,QAE7Jgf,EAAOuN,cAAcpzB,KAAKmwB,GAC1BtK,EAAOiO,qBAAqB9zB,KAAK3L,GACjCg4B,EAAOh4B,GAAGqzB,UAAU/gB,IAAI0f,EAAOwN,oBAEjC1D,EAAMtJ,SAAWuH,GAAO4F,EAAgBA,EACxC7D,EAAMkE,iBAAmBjG,GAAO8F,EAAwBA,CAC1D,CACF,EA2TEI,eA1TF,SAAwBrO,GACtB,MAAMJ,EAAS/wB,KACf,QAAyB,IAAdmxB,EAA2B,CACpC,MAAMsO,EAAa1O,EAAOsI,cAAgB,EAAI,EAE9ClI,EAAYJ,GAAUA,EAAOI,WAAaJ,EAAOI,UAAYsO,GAAc,CAC7E,CACA,MAAMlO,EAASR,EAAOQ,OAChBmO,EAAiB3O,EAAO4O,eAAiB5O,EAAOoO,eACtD,IAAI,SACFpN,EAAQ,YACR6N,EAAW,MACXC,EAAK,aACLC,GACE/O,EACJ,MAAMgP,EAAeH,EACfI,EAASH,EACf,GAAuB,IAAnBH,EACF3N,EAAW,EACX6N,GAAc,EACdC,GAAQ,MACH,CACL9N,GAAYZ,EAAYJ,EAAOoO,gBAAkBO,EACjD,MAAMO,EAAqBjO,KAAKgK,IAAI7K,EAAYJ,EAAOoO,gBAAkB,EACnEe,EAAelO,KAAKgK,IAAI7K,EAAYJ,EAAO4O,gBAAkB,EACnEC,EAAcK,GAAsBlO,GAAY,EAChD8N,EAAQK,GAAgBnO,GAAY,EAChCkO,IAAoBlO,EAAW,GAC/BmO,IAAcnO,EAAW,EAC/B,CACA,GAAIR,EAAO8G,KAAM,CACf,MAAM8H,EAAkBpP,EAAOsN,oBAAoB,GAC7C+B,EAAiBrP,EAAOsN,oBAAoBtN,EAAOwG,OAAO73B,OAAS,GACnE2gC,EAAsBtP,EAAO+I,WAAWqG,GACxCG,EAAqBvP,EAAO+I,WAAWsG,GACvCG,EAAexP,EAAO+I,WAAW/I,EAAO+I,WAAWp6B,OAAS,GAC5D8gC,EAAexO,KAAKgK,IAAI7K,GAE5B2O,EADEU,GAAgBH,GACFG,EAAeH,GAAuBE,GAEtCC,EAAeD,EAAeD,GAAsBC,EAElET,EAAe,IAAGA,GAAgB,EACxC,CACAlhC,OAAOQ,OAAO2xB,EAAQ,CACpBgB,WACA+N,eACAF,cACAC,WAEEtO,EAAOkM,qBAAuBlM,EAAOuJ,gBAAkBvJ,EAAOkP,aAAY1P,EAAO8N,qBAAqB1N,GACtGyO,IAAgBG,GAClBhP,EAAO0F,KAAK,yBAEVoJ,IAAUG,GACZjP,EAAO0F,KAAK,oBAEVsJ,IAAiBH,GAAeI,IAAWH,IAC7C9O,EAAO0F,KAAK,YAEd1F,EAAO0F,KAAK,WAAY1E,EAC1B,EA8PE2O,oBA7PF,WACE,MAAM3P,EAAS/wB,MACT,OACJu3B,EAAM,OACNhG,EAAM,SACN4H,EAAQ,YACRrB,GACE/G,EACEyI,EAAYzI,EAAO0I,SAAWlI,EAAOkI,QAAQC,QAC7CiH,EAAmBlO,GAChB,EAAgB0G,EAAU,IAAIt3B,OAAO0vB,EAAO0F,YAAYp1B,OAAO4wB,EAAU,kBAAkB5wB,OAAO4wB,IAAW,GAKtH,IAAImO,EACJ,GAJArJ,EAAOzpB,SAAQgpB,IACbA,EAAQlE,UAAUyE,OAAO9F,EAAOsP,iBAAkBtP,EAAOuP,eAAgBvP,EAAOwP,eAAe,IAG7FvH,EACF,GAAIjI,EAAO8G,KAAM,CACf,IAAIuE,EAAa9E,EAAc/G,EAAO0I,QAAQgD,aAC1CG,EAAa,IAAGA,EAAa7L,EAAO0I,QAAQlC,OAAO73B,OAASk9B,GAC5DA,GAAc7L,EAAO0I,QAAQlC,OAAO73B,SAAQk9B,GAAc7L,EAAO0I,QAAQlC,OAAO73B,QACpFkhC,EAAcD,EAAiB,6BAA8B9+B,OAAO+6B,EAAY,MAClF,MACEgE,EAAcD,EAAiB,6BAA8B9+B,OAAOi2B,EAAa,YAGnF8I,EAAcrJ,EAAOO,GAEvB,GAAI8I,EAAa,CAEfA,EAAYhO,UAAU/gB,IAAI0f,EAAOsP,kBAGjC,IAAIG,EDhoBR,SAAwB9R,EAAIuD,GAC1B,MAAMwO,EAAU,GAChB,KAAO/R,EAAGgS,oBAAoB,CAC5B,MAAMl2B,EAAOkkB,EAAGgS,mBACZzO,EACEznB,EAAK0nB,QAAQD,IAAWwO,EAAQ/1B,KAAKF,GACpCi2B,EAAQ/1B,KAAKF,GACpBkkB,EAAKlkB,CACP,CACA,OAAOi2B,CACT,CCsnBoBE,CAAeP,EAAa,IAAI/+B,OAAO0vB,EAAO0F,WAAY,mBAAmB,GACzF1F,EAAO8G,OAAS2I,IAClBA,EAAYzJ,EAAO,IAEjByJ,GACFA,EAAUpO,UAAU/gB,IAAI0f,EAAOuP,gBAGjC,IAAIM,EDnpBR,SAAwBlS,EAAIuD,GAC1B,MAAM4O,EAAU,GAChB,KAAOnS,EAAGoS,wBAAwB,CAChC,MAAMC,EAAOrS,EAAGoS,uBACZ7O,EACE8O,EAAK7O,QAAQD,IAAW4O,EAAQn2B,KAAKq2B,GACpCF,EAAQn2B,KAAKq2B,GACpBrS,EAAKqS,CACP,CACA,OAAOF,CACT,CCyoBoBG,CAAeZ,EAAa,IAAI/+B,OAAO0vB,EAAO0F,WAAY,mBAAmB,GACzF1F,EAAO8G,MAAuB,KAAd+I,IAClBA,EAAY7J,EAAOA,EAAO73B,OAAS,IAEjC0hC,GACFA,EAAUxO,UAAU/gB,IAAI0f,EAAOwP,eAEnC,CACAhQ,EAAO0Q,mBACT,EA4MEC,kBArHF,SAA2BC,GACzB,MAAM5Q,EAAS/wB,KACTmxB,EAAYJ,EAAOsI,aAAetI,EAAOI,WAAaJ,EAAOI,WAC7D,SACJ0I,EAAQ,OACRtI,EACAuG,YAAa8J,EACbtJ,UAAWuJ,EACXzE,UAAW0E,GACT/Q,EACJ,IACIqM,EADAtF,EAAc6J,EAElB,MAAMI,EAAsBC,IAC1B,IAAI1J,EAAY0J,EAASjR,EAAO0I,QAAQgD,aAOxC,OANInE,EAAY,IACdA,EAAYvH,EAAO0I,QAAQlC,OAAO73B,OAAS44B,GAEzCA,GAAavH,EAAO0I,QAAQlC,OAAO73B,SACrC44B,GAAavH,EAAO0I,QAAQlC,OAAO73B,QAE9B44B,CAAS,EAKlB,QAH2B,IAAhBR,IACTA,EA/CJ,SAAmC/G,GACjC,MAAM,WACJ+I,EAAU,OACVvI,GACER,EACEI,EAAYJ,EAAOsI,aAAetI,EAAOI,WAAaJ,EAAOI,UACnE,IAAI2G,EACJ,IAAK,IAAIv4B,EAAI,EAAGA,EAAIu6B,EAAWp6B,OAAQH,GAAK,OACT,IAAtBu6B,EAAWv6B,EAAI,GACpB4xB,GAAa2I,EAAWv6B,IAAM4xB,EAAY2I,EAAWv6B,EAAI,IAAMu6B,EAAWv6B,EAAI,GAAKu6B,EAAWv6B,IAAM,EACtGu4B,EAAcv4B,EACL4xB,GAAa2I,EAAWv6B,IAAM4xB,EAAY2I,EAAWv6B,EAAI,KAClEu4B,EAAcv4B,EAAI,GAEX4xB,GAAa2I,EAAWv6B,KACjCu4B,EAAcv4B,GAOlB,OAHIgyB,EAAO0Q,sBACLnK,EAAc,QAA4B,IAAhBA,KAA6BA,EAAc,GAEpEA,CACT,CAwBkBoK,CAA0BnR,IAEtC8I,EAAS1rB,QAAQgjB,IAAc,EACjCiM,EAAYvD,EAAS1rB,QAAQgjB,OACxB,CACL,MAAMgR,EAAOnQ,KAAKE,IAAIX,EAAO2K,mBAAoBpE,GACjDsF,EAAY+E,EAAOnQ,KAAK8J,OAAOhE,EAAcqK,GAAQ5Q,EAAO0K,eAC9D,CAEA,GADImB,GAAavD,EAASn6B,SAAQ09B,EAAYvD,EAASn6B,OAAS,GAC5Do4B,IAAgB8J,EAQlB,OAPIxE,IAAc0E,IAChB/Q,EAAOqM,UAAYA,EACnBrM,EAAO0F,KAAK,yBAEV1F,EAAOQ,OAAO8G,MAAQtH,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,UAChE3I,EAAOuH,UAAYyJ,EAAoBjK,KAK3C,IAAIQ,EAEFA,EADEvH,EAAO0I,SAAWlI,EAAOkI,QAAQC,SAAWnI,EAAO8G,KACzC0J,EAAoBjK,GACvB/G,EAAOwG,OAAOO,GACXe,SAAS9H,EAAOwG,OAAOO,GAAatd,aAAa,4BAA8Bsd,EAAa,IAE5FA,EAEdl5B,OAAOQ,OAAO2xB,EAAQ,CACpB+Q,oBACA1E,YACAyE,oBACAvJ,YACAsJ,gBACA9J,gBAEE/G,EAAOqR,aACT5K,EAAQzG,GAEVA,EAAO0F,KAAK,qBACZ1F,EAAO0F,KAAK,oBACR1F,EAAOqR,aAAerR,EAAOQ,OAAO8Q,sBAClCR,IAAsBvJ,GACxBvH,EAAO0F,KAAK,mBAEd1F,EAAO0F,KAAK,eAEhB,EAgDE6L,mBA/CF,SAA4BpT,EAAIqT,GAC9B,MAAMxR,EAAS/wB,KACTuxB,EAASR,EAAOQ,OACtB,IAAI8J,EAAQnM,EAAG6H,QAAQ,IAAIl1B,OAAO0vB,EAAO0F,WAAY,oBAChDoE,GAAStK,EAAOiG,WAAauL,GAAQA,EAAK7iC,OAAS,GAAK6iC,EAAKl1B,SAAS6hB,IACzE,IAAIqT,EAAK3gC,MAAM2gC,EAAKp0B,QAAQ+gB,GAAM,EAAGqT,EAAK7iC,SAASoO,SAAQ00B,KACpDnH,GAASmH,EAAO9P,SAAW8P,EAAO9P,QAAQ,IAAI7wB,OAAO0vB,EAAO0F,WAAY,qBAC3EoE,EAAQmH,EACV,IAGJ,IACI5F,EADA6F,GAAa,EAEjB,GAAIpH,EACF,IAAK,IAAI97B,EAAI,EAAGA,EAAIwxB,EAAOwG,OAAO73B,OAAQH,GAAK,EAC7C,GAAIwxB,EAAOwG,OAAOh4B,KAAO87B,EAAO,CAC9BoH,GAAa,EACb7F,EAAar9B,EACb,KACF,CAGJ,IAAI87B,IAASoH,EAUX,OAFA1R,EAAO2R,kBAAe/8B,OACtBorB,EAAO4R,kBAAeh9B,GARtBorB,EAAO2R,aAAerH,EAClBtK,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAC1C3I,EAAO4R,aAAe9J,SAASwC,EAAM7gB,aAAa,2BAA4B,IAE9EuW,EAAO4R,aAAe/F,EAOtBrL,EAAOqR,0BAA+Cj9B,IAAxBorB,EAAO4R,cAA8B5R,EAAO4R,eAAiB5R,EAAO+G,aACpG/G,EAAO6R,qBAEX,GAuKA,IAAIzR,EAAY,CACd0R,aA5JF,SAA4B1T,QACb,IAATA,IACFA,EAAOnvB,KAAK24B,eAAiB,IAAM,KAErC,MACM,OACJpH,EACA8H,aAAcC,EAAG,UACjBnI,EAAS,UACTM,GALazxB,KAOf,GAAIuxB,EAAOuR,iBACT,OAAOxJ,GAAOnI,EAAYA,EAE5B,GAAII,EAAOwJ,QACT,OAAO5J,EAET,IAAI4R,EAAmB,EAAatR,EAAWtC,GAG/C,OAFA4T,GAde/iC,KAcY4+B,wBACvBtF,IAAKyJ,GAAoBA,GACtBA,GAAoB,CAC7B,EAwIEC,aAvIF,SAAsB7R,EAAW8R,GAC/B,MAAMlS,EAAS/wB,MAEbq5B,aAAcC,EAAG,OACjB/H,EAAM,UACNE,EAAS,SACTM,GACEhB,EACJ,IA0BImS,EA1BA3iC,EAAI,EACJ+lB,EAAI,EAEJyK,EAAO4H,eACTp4B,EAAI+4B,GAAOnI,EAAYA,EAEvB7K,EAAI6K,EAEFI,EAAOmK,eACTn7B,EAAIyxB,KAAK8J,MAAMv7B,GACf+lB,EAAI0L,KAAK8J,MAAMxV,IAEjByK,EAAOoS,kBAAoBpS,EAAOI,UAClCJ,EAAOI,UAAYJ,EAAO4H,eAAiBp4B,EAAI+lB,EAC3CiL,EAAOwJ,QACTtJ,EAAUV,EAAO4H,eAAiB,aAAe,aAAe5H,EAAO4H,gBAAkBp4B,GAAK+lB,EACpFiL,EAAOuR,mBACb/R,EAAO4H,eACTp4B,GAAKwwB,EAAO6N,wBAEZtY,GAAKyK,EAAO6N,wBAEdnN,EAAU1T,MAAM2R,UAAY,eAAe7tB,OAAOtB,EAAG,QAAQsB,OAAOykB,EAAG,QAAQzkB,OApBvE,EAoBiF,QAK3F,MAAM69B,EAAiB3O,EAAO4O,eAAiB5O,EAAOoO,eAEpD+D,EADqB,IAAnBxD,EACY,GAECvO,EAAYJ,EAAOoO,gBAAkBO,EAElDwD,IAAgBnR,GAClBhB,EAAOyO,eAAerO,GAExBJ,EAAO0F,KAAK,eAAgB1F,EAAOI,UAAW8R,EAChD,EA2FE9D,aA1FF,WACE,OAAQn/B,KAAK65B,SAAS,EACxB,EAyFE8F,aAxFF,WACE,OAAQ3/B,KAAK65B,SAAS75B,KAAK65B,SAASn6B,OAAS,EAC/C,EAuFE0jC,YAtFF,SAAqBjS,EAAWK,EAAO6R,EAAcC,EAAiBC,QAClD,IAAdpS,IACFA,EAAY,QAEA,IAAVK,IACFA,EAAQxxB,KAAKuxB,OAAOC,YAED,IAAjB6R,IACFA,GAAe,QAEO,IAApBC,IACFA,GAAkB,GAEpB,MAAMvS,EAAS/wB,MACT,OACJuxB,EAAM,UACNE,GACEV,EACJ,GAAIA,EAAOyS,WAAajS,EAAOkS,+BAC7B,OAAO,EAET,MAAMtE,EAAepO,EAAOoO,eACtBQ,EAAe5O,EAAO4O,eAC5B,IAAI+D,EAKJ,GAJiDA,EAA7CJ,GAAmBnS,EAAYgO,EAA6BA,EAAsBmE,GAAmBnS,EAAYwO,EAA6BA,EAAiCxO,EAGnLJ,EAAOyO,eAAekE,GAClBnS,EAAOwJ,QAAS,CAClB,MAAM4I,EAAM5S,EAAO4H,eACnB,GAAc,IAAVnH,EACFC,EAAUkS,EAAM,aAAe,cAAgBD,MAC1C,CACL,IAAK3S,EAAOuC,QAAQI,aAMlB,OALA5C,EAAqB,CACnBC,SACAC,gBAAiB0S,EACjBzS,KAAM0S,EAAM,OAAS,SAEhB,EAETlS,EAAUc,SAAS,CACjB,CAACoR,EAAM,OAAS,QAASD,EACzBE,SAAU,UAEd,CACA,OAAO,CACT,CAgCA,OA/Bc,IAAVpS,GACFT,EAAOoN,cAAc,GACrBpN,EAAOiS,aAAaU,GAChBL,IACFtS,EAAO0F,KAAK,wBAAyBjF,EAAO+R,GAC5CxS,EAAO0F,KAAK,oBAGd1F,EAAOoN,cAAc3M,GACrBT,EAAOiS,aAAaU,GAChBL,IACFtS,EAAO0F,KAAK,wBAAyBjF,EAAO+R,GAC5CxS,EAAO0F,KAAK,oBAET1F,EAAOyS,YACVzS,EAAOyS,WAAY,EACdzS,EAAO8S,oCACV9S,EAAO8S,kCAAoC,SAAuBvhB,GAC3DyO,IAAUA,EAAO+E,WAClBxT,EAAE9Z,SAAWxI,OACjB+wB,EAAOU,UAAUpK,oBAAoB,gBAAiB0J,EAAO8S,mCAC7D9S,EAAO8S,kCAAoC,YACpC9S,EAAO8S,kCACVR,GACFtS,EAAO0F,KAAK,iBAEhB,GAEF1F,EAAOU,UAAUrK,iBAAiB,gBAAiB2J,EAAO8S,sCAGvD,CACT,GAgBA,SAASC,EAAermB,GACtB,IAAI,OACFsT,EAAM,aACNsS,EAAY,UACZU,EAAS,KACTC,GACEvmB,EACJ,MAAM,YACJqa,EAAW,cACX8J,GACE7Q,EACJ,IAAIa,EAAMmS,EAKV,GAJKnS,IAC8BA,EAA7BkG,EAAc8J,EAAqB,OAAgB9J,EAAc8J,EAAqB,OAAkB,SAE9G7Q,EAAO0F,KAAK,aAAa50B,OAAOmiC,IAC5BX,GAAgBvL,IAAgB8J,EAAe,CACjD,GAAY,UAARhQ,EAEF,YADAb,EAAO0F,KAAK,uBAAuB50B,OAAOmiC,IAG5CjT,EAAO0F,KAAK,wBAAwB50B,OAAOmiC,IAC/B,SAARpS,EACFb,EAAO0F,KAAK,sBAAsB50B,OAAOmiC,IAEzCjT,EAAO0F,KAAK,sBAAsB50B,OAAOmiC,GAE7C,CACF,CA8ZA,IAAI3I,EAAQ,CACV4I,QApXF,SAAiBh9B,EAAOuqB,EAAO6R,EAAcE,EAAUW,QACvC,IAAVj9B,IACFA,EAAQ,QAEI,IAAVuqB,IACFA,EAAQxxB,KAAKuxB,OAAOC,YAED,IAAjB6R,IACFA,GAAe,GAEI,iBAAVp8B,IACTA,EAAQ4xB,SAAS5xB,EAAO,KAE1B,MAAM8pB,EAAS/wB,KACf,IAAI48B,EAAa31B,EACb21B,EAAa,IAAGA,EAAa,GACjC,MAAM,OACJrL,EAAM,SACNsI,EAAQ,WACRC,EAAU,cACV8H,EAAa,YACb9J,EACAuB,aAAcC,EAAG,UACjB7H,EAAS,QACTiI,GACE3I,EACJ,GAAIA,EAAOyS,WAAajS,EAAOkS,iCAAmC/J,IAAY6J,IAAaW,EACzF,OAAO,EAET,MAAM/B,EAAOnQ,KAAKE,IAAInB,EAAOQ,OAAO2K,mBAAoBU,GACxD,IAAIQ,EAAY+E,EAAOnQ,KAAK8J,OAAOc,EAAauF,GAAQpR,EAAOQ,OAAO0K,gBAClEmB,GAAavD,EAASn6B,SAAQ09B,EAAYvD,EAASn6B,OAAS,GAChE,MAAMyxB,GAAa0I,EAASuD,GAE5B,GAAI7L,EAAO0Q,oBACT,IAAK,IAAI1iC,EAAI,EAAGA,EAAIu6B,EAAWp6B,OAAQH,GAAK,EAAG,CAC7C,MAAM4kC,GAAuBnS,KAAK8J,MAAkB,IAAZ3K,GAClCiT,EAAiBpS,KAAK8J,MAAsB,IAAhBhC,EAAWv6B,IACvC8kC,EAAqBrS,KAAK8J,MAA0B,IAApBhC,EAAWv6B,EAAI,SACpB,IAAtBu6B,EAAWv6B,EAAI,GACpB4kC,GAAuBC,GAAkBD,EAAsBE,GAAsBA,EAAqBD,GAAkB,EAC9HxH,EAAar9B,EACJ4kC,GAAuBC,GAAkBD,EAAsBE,IACxEzH,EAAar9B,EAAI,GAEV4kC,GAAuBC,IAChCxH,EAAar9B,EAEjB,CAGF,GAAIwxB,EAAOqR,aAAexF,IAAe9E,EAAa,CACpD,IAAK/G,EAAOuT,iBAAmBhL,EAAMnI,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAOoO,eAAiBhO,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAOoO,gBAC1J,OAAO,EAET,IAAKpO,EAAOwT,gBAAkBpT,EAAYJ,EAAOI,WAAaA,EAAYJ,EAAO4O,iBAC1E7H,GAAe,KAAO8E,EACzB,OAAO,CAGb,CAOA,IAAImH,EAIJ,GAVInH,KAAgBgF,GAAiB,IAAMyB,GACzCtS,EAAO0F,KAAK,0BAId1F,EAAOyO,eAAerO,GAEQ4S,EAA1BnH,EAAa9E,EAAyB,OAAgB8E,EAAa9E,EAAyB,OAAwB,QAGpHwB,IAAQnI,IAAcJ,EAAOI,YAAcmI,GAAOnI,IAAcJ,EAAOI,UAczE,OAbAJ,EAAO2Q,kBAAkB9E,GAErBrL,EAAOkP,YACT1P,EAAOiN,mBAETjN,EAAO2P,sBACe,UAAlBnP,EAAO4K,QACTpL,EAAOiS,aAAa7R,GAEJ,UAAd4S,IACFhT,EAAOyT,gBAAgBnB,EAAcU,GACrChT,EAAO0T,cAAcpB,EAAcU,KAE9B,EAET,GAAIxS,EAAOwJ,QAAS,CAClB,MAAM4I,EAAM5S,EAAO4H,eACbt5B,EAAIi6B,EAAMnI,GAAaA,EAC7B,GAAc,IAAVK,EAAa,CACf,MAAMgI,EAAYzI,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QACtDF,IACFzI,EAAOU,UAAU1T,MAAM2T,eAAiB,OACxCX,EAAO2T,mBAAoB,GAEzBlL,IAAczI,EAAO4T,2BAA6B5T,EAAOQ,OAAOqT,aAAe,GACjF7T,EAAO4T,2BAA4B,EACnC1sB,uBAAsB,KACpBwZ,EAAUkS,EAAM,aAAe,aAAetkC,CAAC,KAGjDoyB,EAAUkS,EAAM,aAAe,aAAetkC,EAE5Cm6B,GACFvhB,uBAAsB,KACpB8Y,EAAOU,UAAU1T,MAAM2T,eAAiB,GACxCX,EAAO2T,mBAAoB,CAAK,GAGtC,KAAO,CACL,IAAK3T,EAAOuC,QAAQI,aAMlB,OALA5C,EAAqB,CACnBC,SACAC,eAAgB3xB,EAChB4xB,KAAM0S,EAAM,OAAS,SAEhB,EAETlS,EAAUc,SAAS,CACjB,CAACoR,EAAM,OAAS,OAAQtkC,EACxBukC,SAAU,UAEd,CACA,OAAO,CACT,CAuBA,OAtBA7S,EAAOoN,cAAc3M,GACrBT,EAAOiS,aAAa7R,GACpBJ,EAAO2Q,kBAAkB9E,GACzB7L,EAAO2P,sBACP3P,EAAO0F,KAAK,wBAAyBjF,EAAO+R,GAC5CxS,EAAOyT,gBAAgBnB,EAAcU,GACvB,IAAVvS,EACFT,EAAO0T,cAAcpB,EAAcU,GACzBhT,EAAOyS,YACjBzS,EAAOyS,WAAY,EACdzS,EAAO8T,gCACV9T,EAAO8T,8BAAgC,SAAuBviB,GACvDyO,IAAUA,EAAO+E,WAClBxT,EAAE9Z,SAAWxI,OACjB+wB,EAAOU,UAAUpK,oBAAoB,gBAAiB0J,EAAO8T,+BAC7D9T,EAAO8T,8BAAgC,YAChC9T,EAAO8T,8BACd9T,EAAO0T,cAAcpB,EAAcU,GACrC,GAEFhT,EAAOU,UAAUrK,iBAAiB,gBAAiB2J,EAAO8T,iCAErD,CACT,EAgOEC,YA/NF,SAAqB79B,EAAOuqB,EAAO6R,EAAcE,GAU/C,QATc,IAAVt8B,IACFA,EAAQ,QAEI,IAAVuqB,IACFA,EAAQxxB,KAAKuxB,OAAOC,YAED,IAAjB6R,IACFA,GAAe,GAEI,iBAAVp8B,EAAoB,CAE7BA,EADsB4xB,SAAS5xB,EAAO,GAExC,CACA,MAAM8pB,EAAS/wB,KACf,IAAI+kC,EAAW99B,EASf,OARI8pB,EAAOQ,OAAO8G,OACZtH,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAE1CqL,GAAsBhU,EAAO0I,QAAQgD,aAErCsI,EAAWhU,EAAOsN,oBAAoB0G,IAGnChU,EAAOkT,QAAQc,EAAUvT,EAAO6R,EAAcE,EACvD,EAuMEyB,UApMF,SAAmBxT,EAAO6R,EAAcE,QACxB,IAAV/R,IACFA,EAAQxxB,KAAKuxB,OAAOC,YAED,IAAjB6R,IACFA,GAAe,GAEjB,MAAMtS,EAAS/wB,MACT,QACJ05B,EAAO,OACPnI,EAAM,UACNiS,GACEzS,EACJ,IAAK2I,EAAS,OAAO3I,EACrB,IAAIkU,EAAW1T,EAAO0K,eACO,SAAzB1K,EAAOoG,eAAsD,IAA1BpG,EAAO0K,gBAAwB1K,EAAO2T,qBAC3ED,EAAWjT,KAAKC,IAAIlB,EAAO6G,qBAAqB,WAAW,GAAO,IAEpE,MAAMuN,EAAYpU,EAAO+G,YAAcvG,EAAO2K,mBAAqB,EAAI+I,EACjEzL,EAAYzI,EAAO0I,SAAWlI,EAAOkI,QAAQC,QACnD,GAAInI,EAAO8G,KAAM,CACf,GAAImL,IAAchK,GAAajI,EAAO6T,oBAAqB,OAAO,EAMlE,GALArU,EAAOsU,QAAQ,CACbtB,UAAW,SAGbhT,EAAOuU,YAAcvU,EAAOU,UAAU8T,WAClCxU,EAAO+G,cAAgB/G,EAAOwG,OAAO73B,OAAS,GAAK6xB,EAAOwJ,QAI5D,OAHA9iB,uBAAsB,KACpB8Y,EAAOkT,QAAQlT,EAAO+G,YAAcqN,EAAU,KAEzC,CAEX,CACA,OAAI5T,EAAO1Q,QAAUkQ,EAAO8O,MACnB9O,EAAOkT,QAAQ,EAAGzS,EAAO6R,EAAcE,GAEzCxS,EAAOkT,QAAQlT,EAAO+G,YAAcqN,EAC7C,EA+JEK,UA5JF,SAAmBhU,EAAO6R,EAAcE,QACxB,IAAV/R,IACFA,EAAQxxB,KAAKuxB,OAAOC,YAED,IAAjB6R,IACFA,GAAe,GAEjB,MAAMtS,EAAS/wB,MACT,OACJuxB,EAAM,SACNsI,EAAQ,WACRC,EAAU,aACVT,EAAY,QACZK,EAAO,UACP8J,GACEzS,EACJ,IAAK2I,EAAS,OAAO3I,EACrB,MAAMyI,EAAYzI,EAAO0I,SAAWlI,EAAOkI,QAAQC,QACnD,GAAInI,EAAO8G,KAAM,CACf,GAAImL,IAAchK,GAAajI,EAAO6T,oBAAqB,OAAO,EAClErU,EAAOsU,QAAQ,CACbtB,UAAW,SAGbhT,EAAOuU,YAAcvU,EAAOU,UAAU8T,UACxC,CAEA,SAASE,EAAUv5B,GACjB,OAAIA,EAAM,GAAW8lB,KAAK8J,MAAM9J,KAAKgK,IAAI9vB,IAClC8lB,KAAK8J,MAAM5vB,EACpB,CACA,MAAMi4B,EAAsBsB,EALVpM,EAAetI,EAAOI,WAAaJ,EAAOI,WAMtDuU,EAAqB7L,EAAS7yB,KAAIkF,GAAOu5B,EAAUv5B,KACzD,IAAIy5B,EAAW9L,EAAS6L,EAAmBv3B,QAAQg2B,GAAuB,GAC1E,QAAwB,IAAbwB,GAA4BpU,EAAOwJ,QAAS,CACrD,IAAI6K,EACJ/L,EAAS/rB,SAAQ,CAACmvB,EAAMG,KAClB+G,GAAuBlH,IAEzB2I,EAAgBxI,EAClB,SAE2B,IAAlBwI,IACTD,EAAW9L,EAAS+L,EAAgB,EAAIA,EAAgB,EAAIA,GAEhE,CACA,IAAIC,EAAY,EAShB,QARwB,IAAbF,IACTE,EAAY/L,EAAW3rB,QAAQw3B,GAC3BE,EAAY,IAAGA,EAAY9U,EAAO+G,YAAc,GACvB,SAAzBvG,EAAOoG,eAAsD,IAA1BpG,EAAO0K,gBAAwB1K,EAAO2T,qBAC3EW,EAAYA,EAAY9U,EAAO6G,qBAAqB,YAAY,GAAQ,EACxEiO,EAAY7T,KAAKC,IAAI4T,EAAW,KAGhCtU,EAAO1Q,QAAUkQ,EAAO6O,YAAa,CACvC,MAAMjuB,EAAYof,EAAOQ,OAAOkI,SAAW1I,EAAOQ,OAAOkI,QAAQC,SAAW3I,EAAO0I,QAAU1I,EAAO0I,QAAQlC,OAAO73B,OAAS,EAAIqxB,EAAOwG,OAAO73B,OAAS,EACvJ,OAAOqxB,EAAOkT,QAAQtyB,EAAW6f,EAAO6R,EAAcE,EACxD,CAAO,OAAIhS,EAAO8G,MAA+B,IAAvBtH,EAAO+G,aAAqBvG,EAAOwJ,SAC3D9iB,uBAAsB,KACpB8Y,EAAOkT,QAAQ4B,EAAWrU,EAAO6R,EAAcE,EAAS,KAEnD,GAEFxS,EAAOkT,QAAQ4B,EAAWrU,EAAO6R,EAAcE,EACxD,EA4FEuC,WAzFF,SAAoBtU,EAAO6R,EAAcE,GAQvC,YAPc,IAAV/R,IACFA,EAAQxxB,KAAKuxB,OAAOC,YAED,IAAjB6R,IACFA,GAAe,GAEFrjC,KACDikC,QADCjkC,KACc83B,YAAatG,EAAO6R,EAAcE,EACjE,EAiFEwC,eA9EF,SAAwBvU,EAAO6R,EAAcE,EAAUyC,QACvC,IAAVxU,IACFA,EAAQxxB,KAAKuxB,OAAOC,YAED,IAAjB6R,IACFA,GAAe,QAEC,IAAd2C,IACFA,EAAY,IAEd,MAAMjV,EAAS/wB,KACf,IAAIiH,EAAQ8pB,EAAO+G,YACnB,MAAMqK,EAAOnQ,KAAKE,IAAInB,EAAOQ,OAAO2K,mBAAoBj1B,GAClDm2B,EAAY+E,EAAOnQ,KAAK8J,OAAO70B,EAAQk7B,GAAQpR,EAAOQ,OAAO0K,gBAC7D9K,EAAYJ,EAAOsI,aAAetI,EAAOI,WAAaJ,EAAOI,UACnE,GAAIA,GAAaJ,EAAO8I,SAASuD,GAAY,CAG3C,MAAM6I,EAAclV,EAAO8I,SAASuD,GAEhCjM,EAAY8U,GADClV,EAAO8I,SAASuD,EAAY,GACH6I,GAAeD,IACvD/+B,GAAS8pB,EAAOQ,OAAO0K,eAE3B,KAAO,CAGL,MAAM0J,EAAW5U,EAAO8I,SAASuD,EAAY,GAEzCjM,EAAYwU,IADI5U,EAAO8I,SAASuD,GACOuI,GAAYK,IACrD/+B,GAAS8pB,EAAOQ,OAAO0K,eAE3B,CAGA,OAFAh1B,EAAQ+qB,KAAKC,IAAIhrB,EAAO,GACxBA,EAAQ+qB,KAAKE,IAAIjrB,EAAO8pB,EAAO+I,WAAWp6B,OAAS,GAC5CqxB,EAAOkT,QAAQh9B,EAAOuqB,EAAO6R,EAAcE,EACpD,EA4CEX,oBA3CF,WACE,MAAM7R,EAAS/wB,MACT,OACJuxB,EAAM,SACN4H,GACEpI,EACE4G,EAAyC,SAAzBpG,EAAOoG,cAA2B5G,EAAO6G,uBAAyBrG,EAAOoG,cAC/F,IACIW,EADA4N,EAAenV,EAAO4R,aAE1B,MAAMwD,EAAgBpV,EAAOiG,UAAY,eAAiB,IAAIn1B,OAAO0vB,EAAO0F,YAC5E,GAAI1F,EAAO8G,KAAM,CACf,GAAItH,EAAOyS,UAAW,OACtBlL,EAAYO,SAAS9H,EAAO2R,aAAaloB,aAAa,2BAA4B,IAC9E+W,EAAOuJ,eACLoL,EAAenV,EAAOqV,aAAezO,EAAgB,GAAKuO,EAAenV,EAAOwG,OAAO73B,OAASqxB,EAAOqV,aAAezO,EAAgB,GACxI5G,EAAOsU,UACPa,EAAenV,EAAOsV,cAAc,EAAgBlN,EAAU,GAAGt3B,OAAOskC,EAAe,8BAA+BtkC,OAAOy2B,EAAW,OAAQ,IAChJ,GAAS,KACPvH,EAAOkT,QAAQiC,EAAa,KAG9BnV,EAAOkT,QAAQiC,GAERA,EAAenV,EAAOwG,OAAO73B,OAASi4B,GAC/C5G,EAAOsU,UACPa,EAAenV,EAAOsV,cAAc,EAAgBlN,EAAU,GAAGt3B,OAAOskC,EAAe,8BAA+BtkC,OAAOy2B,EAAW,OAAQ,IAChJ,GAAS,KACPvH,EAAOkT,QAAQiC,EAAa,KAG9BnV,EAAOkT,QAAQiC,EAEnB,MACEnV,EAAOkT,QAAQiC,EAEnB,GA4MA,IAAI7N,EAAO,CACTiO,WAnMF,SAAoBC,GAClB,MAAMxV,EAAS/wB,MACT,OACJuxB,EAAM,SACN4H,GACEpI,EACJ,IAAKQ,EAAO8G,MAAQtH,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAAS,OACtD,EAAgBP,EAAU,IAAIt3B,OAAO0vB,EAAO0F,WAAY,mBAChEnpB,SAAQ,CAACohB,EAAIjoB,KAClBioB,EAAGrU,aAAa,0BAA2B5T,EAAM,IAEnD8pB,EAAOsU,QAAQ,CACbkB,iBACAxC,UAAWxS,EAAOuJ,oBAAiBn1B,EAAY,QAEnD,EAqLE0/B,QApLF,SAAiB1xB,GACf,IAAI,eACF4yB,EAAc,QACdtC,GAAU,EAAI,UACdF,EAAS,aACTf,EAAY,iBACZwD,EAAgB,aAChBvD,EAAY,aACZwD,QACY,IAAV9yB,EAAmB,CAAC,EAAIA,EAC5B,MAAMod,EAAS/wB,KACf,IAAK+wB,EAAOQ,OAAO8G,KAAM,OACzBtH,EAAO0F,KAAK,iBACZ,MAAM,OACJc,EAAM,eACNgN,EAAc,eACdD,EAAc,SACdnL,EAAQ,OACR5H,GACER,EAGJ,GAFAA,EAAOwT,gBAAiB,EACxBxT,EAAOuT,gBAAiB,EACpBvT,EAAO0I,SAAWlI,EAAOkI,QAAQC,QAanC,OAZIuK,IACG1S,EAAOuJ,gBAAuC,IAArB/J,EAAOqM,UAE1B7L,EAAOuJ,gBAAkB/J,EAAOqM,UAAY7L,EAAOoG,cAC5D5G,EAAOkT,QAAQlT,EAAO0I,QAAQlC,OAAO73B,OAASqxB,EAAOqM,UAAW,GAAG,GAAO,GACjErM,EAAOqM,YAAcrM,EAAO8I,SAASn6B,OAAS,GACvDqxB,EAAOkT,QAAQlT,EAAO0I,QAAQgD,aAAc,GAAG,GAAO,GAJtD1L,EAAOkT,QAAQlT,EAAO0I,QAAQlC,OAAO73B,OAAQ,GAAG,GAAO,IAO3DqxB,EAAOwT,eAAiBA,EACxBxT,EAAOuT,eAAiBA,OACxBvT,EAAO0F,KAAK,WAGd,MAAMkB,EAAyC,SAAzBpG,EAAOoG,cAA2B5G,EAAO6G,uBAAyB5F,KAAK6F,KAAK5H,WAAWsB,EAAOoG,cAAe,KACnI,IAAIyO,EAAe7U,EAAO6U,cAAgBzO,EACtCyO,EAAe7U,EAAO0K,gBAAmB,IAC3CmK,GAAgB7U,EAAO0K,eAAiBmK,EAAe7U,EAAO0K,gBAEhElL,EAAOqV,aAAeA,EACtB,MAAMM,EAAuB,GACvBC,EAAsB,GAC5B,IAAI7O,EAAc/G,EAAO+G,iBACO,IAArB0O,EACTA,EAAmBzV,EAAOsV,cAActV,EAAOwG,OAAOjuB,QAAO4lB,GAAMA,EAAG0D,UAAUkL,SAASvM,EAAOsP,oBAAmB,IAEnH/I,EAAc0O,EAEhB,MAAMI,EAAuB,SAAd7C,IAAyBA,EAClC8C,EAAuB,SAAd9C,IAAyBA,EACxC,IAAI+C,EAAkB,EAClBC,EAAiB,EAErB,GAAIP,EAAmBJ,EAAc,CACnCU,EAAkB9U,KAAKC,IAAImU,EAAeI,EAAkBjV,EAAO0K,gBACnE,IAAK,IAAI18B,EAAI,EAAGA,EAAI6mC,EAAeI,EAAkBjnC,GAAK,EAAG,CAC3D,MAAM0H,EAAQ1H,EAAIyyB,KAAK8J,MAAMv8B,EAAIg4B,EAAO73B,QAAU63B,EAAO73B,OACzDgnC,EAAqBx7B,KAAKqsB,EAAO73B,OAASuH,EAAQ,EACpD,CACF,MAAO,GAAIu/B,EAAyCzV,EAAOwG,OAAO73B,OAAwB,EAAf0mC,EAAkB,CAC3FW,EAAiB/U,KAAKC,IAAIuU,GAAoBzV,EAAOwG,OAAO73B,OAAwB,EAAf0mC,GAAmB7U,EAAO0K,gBAC/F,IAAK,IAAI18B,EAAI,EAAGA,EAAIwnC,EAAgBxnC,GAAK,EAAG,CAC1C,MAAM0H,EAAQ1H,EAAIyyB,KAAK8J,MAAMv8B,EAAIg4B,EAAO73B,QAAU63B,EAAO73B,OACzDinC,EAAoBz7B,KAAKjE,EAC3B,CACF,CAsBA,GArBI4/B,GACFH,EAAqB54B,SAAQ7G,IAC3B8pB,EAAOwG,OAAOtwB,GAAO+/B,mBAAoB,EACzC7N,EAAS8N,QAAQlW,EAAOwG,OAAOtwB,IAC/B8pB,EAAOwG,OAAOtwB,GAAO+/B,mBAAoB,CAAK,IAG9CJ,GACFD,EAAoB74B,SAAQ7G,IAC1B8pB,EAAOwG,OAAOtwB,GAAO+/B,mBAAoB,EACzC7N,EAAS+N,OAAOnW,EAAOwG,OAAOtwB,IAC9B8pB,EAAOwG,OAAOtwB,GAAO+/B,mBAAoB,CAAK,IAGlDjW,EAAOoW,eACsB,SAAzB5V,EAAOoG,eACT5G,EAAOgI,eAELxH,EAAOkM,qBACT1M,EAAO2M,qBAELuG,EACF,GAAIyC,EAAqBhnC,OAAS,GAAKmnC,EACrC,QAA8B,IAAnBN,EAAgC,CACzC,MAAMa,EAAwBrW,EAAO+I,WAAWhC,GAE1CuP,EADoBtW,EAAO+I,WAAWhC,EAAcgP,GACzBM,EAC7BX,EACF1V,EAAOiS,aAAajS,EAAOI,UAAYkW,IAEvCtW,EAAOkT,QAAQnM,EAAcgP,EAAiB,GAAG,GAAO,GACpD9D,IACFjS,EAAOuW,QAAQvW,EAAO4H,eAAiB,SAAW,WAAa0O,EAC/DtW,EAAOwW,gBAAgBxE,iBAAmBhS,EAAOI,WAGvD,MACM6R,IACFjS,EAAO+T,YAAYyB,EAAgB,GAAG,GAAO,GAC7CxV,EAAOwW,gBAAgBxE,iBAAmBhS,EAAOI,gBAGhD,GAAIwV,EAAoBjnC,OAAS,GAAKknC,EAC3C,QAA8B,IAAnBL,EAAgC,CACzC,MAAMa,EAAwBrW,EAAO+I,WAAWhC,GAE1CuP,EADoBtW,EAAO+I,WAAWhC,EAAciP,GACzBK,EAC7BX,EACF1V,EAAOiS,aAAajS,EAAOI,UAAYkW,IAEvCtW,EAAOkT,QAAQnM,EAAciP,EAAgB,GAAG,GAAO,GACnD/D,IACFjS,EAAOuW,QAAQvW,EAAO4H,eAAiB,SAAW,WAAa0O,EAC/DtW,EAAOwW,gBAAgBxE,iBAAmBhS,EAAOI,WAGvD,MACEJ,EAAO+T,YAAYyB,EAAgB,GAAG,GAAO,GAMnD,GAFAxV,EAAOwT,eAAiBA,EACxBxT,EAAOuT,eAAiBA,EACpBvT,EAAOyW,YAAczW,EAAOyW,WAAWC,UAAYxE,EAAc,CACnE,MAAMyE,EAAa,CACjBnB,iBACAxC,YACAf,eACAwD,mBACAvD,cAAc,GAEZthC,MAAMuH,QAAQ6nB,EAAOyW,WAAWC,SAClC1W,EAAOyW,WAAWC,QAAQ35B,SAAQqW,KAC3BA,EAAE2R,WAAa3R,EAAEoN,OAAO8G,MAAMlU,EAAEkhB,QAAQ,IACxCqC,EACHzD,QAAS9f,EAAEoN,OAAOoG,gBAAkBpG,EAAOoG,eAAgBsM,GAC3D,IAEKlT,EAAOyW,WAAWC,mBAAmB1W,EAAOvmB,aAAeumB,EAAOyW,WAAWC,QAAQlW,OAAO8G,MACrGtH,EAAOyW,WAAWC,QAAQpC,QAAQ,IAC7BqC,EACHzD,QAASlT,EAAOyW,WAAWC,QAAQlW,OAAOoG,gBAAkBpG,EAAOoG,eAAgBsM,GAGzF,CACAlT,EAAO0F,KAAK,UACd,EA0BEkR,YAzBF,WACE,MAAM5W,EAAS/wB,MACT,OACJuxB,EAAM,SACN4H,GACEpI,EACJ,IAAKQ,EAAO8G,MAAQtH,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAAS,OACrE3I,EAAOoW,eACP,MAAMS,EAAiB,GACvB7W,EAAOwG,OAAOzpB,SAAQgpB,IACpB,MAAM7vB,OAA4C,IAA7B6vB,EAAQ+Q,iBAAqF,EAAlD/Q,EAAQtc,aAAa,2BAAiCsc,EAAQ+Q,iBAC9HD,EAAe3gC,GAAS6vB,CAAO,IAEjC/F,EAAOwG,OAAOzpB,SAAQgpB,IACpBA,EAAQ9b,gBAAgB,0BAA0B,IAEpD4sB,EAAe95B,SAAQgpB,IACrBqC,EAAS+N,OAAOpQ,EAAQ,IAE1B/F,EAAOoW,eACPpW,EAAOkT,QAAQlT,EAAOuH,UAAW,EACnC,GAyDA,SAASwP,EAAa/R,GACpB,MAAMhF,EAAS/wB,KACToa,EAAW,IACXja,EAAS,IACTsE,EAAOssB,EAAOwW,gBACpB9iC,EAAKsjC,QAAQ78B,KAAK6qB,GAClB,MAAM,OACJxE,EAAM,QACN+V,EAAO,QACP5N,GACE3I,EACJ,IAAK2I,EAAS,OACd,IAAKnI,EAAOyW,eAAuC,UAAtBjS,EAAMkS,YAAyB,OAC5D,GAAIlX,EAAOyS,WAAajS,EAAOkS,+BAC7B,QAEG1S,EAAOyS,WAAajS,EAAOwJ,SAAWxJ,EAAO8G,MAChDtH,EAAOsU,UAET,IAAI/iB,EAAIyT,EACJzT,EAAE4lB,gBAAe5lB,EAAIA,EAAE4lB,eAC3B,IAAIC,EAAW7lB,EAAE9Z,OACjB,GAAiC,YAA7B+oB,EAAO6W,oBACJrX,EAAOU,UAAUqM,SAASqK,GAAW,OAE5C,GAAI,UAAW7lB,GAAiB,IAAZA,EAAE+lB,MAAa,OACnC,GAAI,WAAY/lB,GAAKA,EAAEgmB,OAAS,EAAG,OACnC,GAAI7jC,EAAK8jC,WAAa9jC,EAAK+jC,QAAS,OAGpC,MAAMC,IAAyBlX,EAAOmX,gBAA4C,KAA1BnX,EAAOmX,eAEzDC,EAAY5S,EAAM6S,aAAe7S,EAAM6S,eAAiB7S,EAAMwM,KAChEkG,GAAwBnmB,EAAE9Z,QAAU8Z,EAAE9Z,OAAO4uB,YAAcuR,IAC7DR,EAAWQ,EAAU,IAEvB,MAAME,EAAoBtX,EAAOsX,kBAAoBtX,EAAOsX,kBAAoB,IAAIhnC,OAAO0vB,EAAOmX,gBAC5FI,KAAoBxmB,EAAE9Z,SAAU8Z,EAAE9Z,OAAO4uB,YAG/C,GAAI7F,EAAOwX,YAAcD,EAvD3B,SAAwBrW,EAAU9U,GAahC,YAZa,IAATA,IACFA,EAAO3d,MAET,SAASgpC,EAAc9Z,GACrB,IAAKA,GAAMA,IAAO,KAAiBA,IAAO,IAAa,OAAO,KAC1DA,EAAG+Z,eAAc/Z,EAAKA,EAAG+Z,cAC7B,MAAMC,EAAQha,EAAG6H,QAAQtE,GACzB,OAAKyW,GAAUha,EAAGia,YAGXD,GAASF,EAAc9Z,EAAGia,cAAcxb,MAFtC,IAGX,CACOqb,CAAcrrB,EACvB,CAyC4CyrB,CAAeP,EAAmBV,GAAYA,EAASpR,QAAQ8R,IAEvG,YADA9X,EAAOsY,YAAa,GAGtB,GAAI9X,EAAO+X,eACJnB,EAASpR,QAAQxF,EAAO+X,cAAe,OAE9ChC,EAAQiC,SAAWjnB,EAAEknB,MACrBlC,EAAQmC,SAAWnnB,EAAEonB,MACrB,MAAMC,EAASrC,EAAQiC,SACjBK,EAAStC,EAAQmC,SAIjBI,EAAqBtY,EAAOsY,oBAAsBtY,EAAOuY,sBACzDC,EAAqBxY,EAAOwY,oBAAsBxY,EAAOyY,sBAC/D,GAAIH,IAAuBF,GAAUI,GAAsBJ,GAAUxpC,EAAO8pC,WAAaF,GAAqB,CAC5G,GAA2B,YAAvBF,EAGF,OAFA9T,EAAMnL,gBAIV,CACAhsB,OAAOQ,OAAOqF,EAAM,CAClB8jC,WAAW,EACXC,SAAS,EACT0B,qBAAqB,EACrBC,iBAAaxkC,EACbykC,iBAAazkC,IAEf2hC,EAAQqC,OAASA,EACjBrC,EAAQsC,OAASA,EACjBnlC,EAAK4lC,eAAiB,IACtBtZ,EAAOsY,YAAa,EACpBtY,EAAOyH,aACPzH,EAAOuZ,oBAAiB3kC,EACpB4rB,EAAOyU,UAAY,IAAGvhC,EAAK8lC,oBAAqB,GACpD,IAAI3f,GAAiB,EACjBud,EAASzV,QAAQjuB,EAAK+lC,qBACxB5f,GAAiB,EACS,WAAtBud,EAASjb,WACXzoB,EAAK8jC,WAAY,IAGjBnuB,EAAS4S,eAAiB5S,EAAS4S,cAAc0F,QAAQjuB,EAAK+lC,oBAAsBpwB,EAAS4S,gBAAkBmb,GACjH/tB,EAAS4S,cAAcC,OAEzB,MAAMwd,EAAuB7f,GAAkBmG,EAAO2Z,gBAAkBnZ,EAAOoZ,0BAC1EpZ,EAAOqZ,gCAAiCH,GAA0BtC,EAAS0C,mBAC9EvoB,EAAEsI,iBAEA2G,EAAOuZ,UAAYvZ,EAAOuZ,SAASpR,SAAW3I,EAAO+Z,UAAY/Z,EAAOyS,YAAcjS,EAAOwJ,SAC/FhK,EAAO+Z,SAAShD,eAElB/W,EAAO0F,KAAK,aAAcnU,EAC5B,CACA,SAASyoB,EAAYhV,GACnB,MAAM3b,EAAW,IACX2W,EAAS/wB,KACTyE,EAAOssB,EAAOwW,iBACd,OACJhW,EAAM,QACN+V,EACAjO,aAAcC,EAAG,QACjBI,GACE3I,EACJ,IAAK2I,EAAS,OACd,IAAKnI,EAAOyW,eAAuC,UAAtBjS,EAAMkS,YAAyB,OAC5D,IAAI3lB,EAAIyT,EAER,GADIzT,EAAE4lB,gBAAe5lB,EAAIA,EAAE4lB,gBACtBzjC,EAAK8jC,UAIR,YAHI9jC,EAAK2lC,aAAe3lC,EAAK0lC,aAC3BpZ,EAAO0F,KAAK,oBAAqBnU,IAIrC,MAAM0oB,EAAevmC,EAAKsjC,QAAQkD,WAAUC,GAAYA,EAASC,YAAc7oB,EAAE6oB,YAC7EH,GAAgB,IAAGvmC,EAAKsjC,QAAQiD,GAAgB1oB,GACpD,MAAM8oB,EAAc3mC,EAAKsjC,QAAQroC,OAAS,EAAI+E,EAAKsjC,QAAQ,GAAKzlB,EAC1DknB,EAAQ4B,EAAY5B,MACpBE,EAAQ0B,EAAY1B,MAC1B,GAAIpnB,EAAE+oB,wBAGJ,OAFA/D,EAAQqC,OAASH,OACjBlC,EAAQsC,OAASF,GAGnB,IAAK3Y,EAAO2Z,eAeV,OAdKpoB,EAAE9Z,OAAOkqB,QAAQjuB,EAAK+lC,qBACzBzZ,EAAOsY,YAAa,QAElB5kC,EAAK8jC,YACP3pC,OAAOQ,OAAOkoC,EAAS,CACrBqC,OAAQH,EACRI,OAAQF,EACR4B,MAAOva,EAAOuW,QAAQiC,SACtBgC,MAAOxa,EAAOuW,QAAQmC,SACtBF,SAAUC,EACVC,SAAUC,IAEZjlC,EAAK4lC,eAAiB,MAI1B,GAAI9Y,EAAOia,sBAAwBja,EAAO8G,KACxC,GAAItH,EAAO6H,cAET,GAAI8Q,EAAQpC,EAAQsC,QAAU7Y,EAAOI,WAAaJ,EAAO4O,gBAAkB+J,EAAQpC,EAAQsC,QAAU7Y,EAAOI,WAAaJ,EAAOoO,eAG9H,OAFA16B,EAAK8jC,WAAY,OACjB9jC,EAAK+jC,SAAU,QAGZ,GAAIgB,EAAQlC,EAAQqC,QAAU5Y,EAAOI,WAAaJ,EAAO4O,gBAAkB6J,EAAQlC,EAAQqC,QAAU5Y,EAAOI,WAAaJ,EAAOoO,eACrI,OAGJ,GAAI/kB,EAAS4S,eACP1K,EAAE9Z,SAAW4R,EAAS4S,eAAiB1K,EAAE9Z,OAAOkqB,QAAQjuB,EAAK+lC,mBAG/D,OAFA/lC,EAAK+jC,SAAU,OACfzX,EAAOsY,YAAa,GAOxB,GAHI5kC,EAAKylC,qBACPnZ,EAAO0F,KAAK,YAAanU,GAEvBA,EAAEmpB,eAAiBnpB,EAAEmpB,cAAc/rC,OAAS,EAAG,OACnD4nC,EAAQiC,SAAWC,EACnBlC,EAAQmC,SAAWC,EACnB,MAAMgC,EAAQpE,EAAQiC,SAAWjC,EAAQqC,OACnCgC,EAAQrE,EAAQmC,SAAWnC,EAAQsC,OACzC,GAAI7Y,EAAOQ,OAAOyU,WAAahU,KAAK4Z,KAAKF,GAAS,EAAIC,GAAS,GAAK5a,EAAOQ,OAAOyU,UAAW,OAC7F,QAAgC,IAArBvhC,EAAK0lC,YAA6B,CAC3C,IAAI0B,EACA9a,EAAO4H,gBAAkB2O,EAAQmC,WAAanC,EAAQsC,QAAU7Y,EAAO6H,cAAgB0O,EAAQiC,WAAajC,EAAQqC,OACtHllC,EAAK0lC,aAAc,EAGfuB,EAAQA,EAAQC,EAAQA,GAAS,KACnCE,EAA4D,IAA/C7Z,KAAK8Z,MAAM9Z,KAAKgK,IAAI2P,GAAQ3Z,KAAKgK,IAAI0P,IAAgB1Z,KAAKK,GACvE5tB,EAAK0lC,YAAcpZ,EAAO4H,eAAiBkT,EAAata,EAAOsa,WAAa,GAAKA,EAAata,EAAOsa,WAG3G,CASA,GARIpnC,EAAK0lC,aACPpZ,EAAO0F,KAAK,oBAAqBnU,QAEH,IAArB7d,EAAK2lC,cACV9C,EAAQiC,WAAajC,EAAQqC,QAAUrC,EAAQmC,WAAanC,EAAQsC,SACtEnlC,EAAK2lC,aAAc,IAGnB3lC,EAAK0lC,aAAepZ,EAAOgb,MAAQhb,EAAOQ,OAAOwa,MAAQhb,EAAOQ,OAAOwa,KAAKrS,SAAWj1B,EAAKsjC,QAAQroC,OAAS,EAE/G,YADA+E,EAAK8jC,WAAY,GAGnB,IAAK9jC,EAAK2lC,YACR,OAEFrZ,EAAOsY,YAAa,GACf9X,EAAOwJ,SAAWzY,EAAE0pB,YACvB1pB,EAAEsI,iBAEA2G,EAAO0a,2BAA6B1a,EAAO2a,QAC7C5pB,EAAE6pB,kBAEJ,IAAI9E,EAAOtW,EAAO4H,eAAiB+S,EAAQC,EACvCS,EAAcrb,EAAO4H,eAAiB2O,EAAQiC,SAAWjC,EAAQ+E,UAAY/E,EAAQmC,SAAWnC,EAAQgF,UACxG/a,EAAOgb,iBACTlF,EAAOrV,KAAKgK,IAAIqL,IAAS/N,EAAM,GAAK,GACpC8S,EAAcpa,KAAKgK,IAAIoQ,IAAgB9S,EAAM,GAAK,IAEpDgO,EAAQD,KAAOA,EACfA,GAAQ9V,EAAOib,WACXlT,IACF+N,GAAQA,EACR+E,GAAeA,GAEjB,MAAMK,EAAuB1b,EAAO2b,iBACpC3b,EAAOuZ,eAAiBjD,EAAO,EAAI,OAAS,OAC5CtW,EAAO2b,iBAAmBN,EAAc,EAAI,OAAS,OACrD,MAAMO,EAAS5b,EAAOQ,OAAO8G,OAAS9G,EAAOwJ,QACvC6R,EAAyC,SAA1B7b,EAAOuZ,gBAA6BvZ,EAAOuT,gBAA4C,SAA1BvT,EAAOuZ,gBAA6BvZ,EAAOwT,eAC7H,IAAK9/B,EAAK+jC,QAAS,CAQjB,GAPImE,GAAUC,GACZ7b,EAAOsU,QAAQ,CACbtB,UAAWhT,EAAOuZ,iBAGtB7lC,EAAKooC,eAAiB9b,EAAO8R,eAC7B9R,EAAOoN,cAAc,GACjBpN,EAAOyS,UAAW,CACpB,MAAMsJ,EAAM,IAAI3sC,OAAOuuB,YAAY,gBAAiB,CAClDqe,SAAS,EACTf,YAAY,IAEdjb,EAAOU,UAAUub,cAAcF,EACjC,CACAroC,EAAKwoC,qBAAsB,GAEvB1b,EAAO2b,aAAyC,IAA1Bnc,EAAOuT,iBAAqD,IAA1BvT,EAAOwT,gBACjExT,EAAOoc,eAAc,GAEvBpc,EAAO0F,KAAK,kBAAmBnU,EACjC,CACA,IAAI8qB,EACA3oC,EAAK+jC,SAAWiE,IAAyB1b,EAAO2b,kBAAoBC,GAAUC,GAAgB5a,KAAKgK,IAAIqL,IAAS,IAElHtW,EAAOsU,QAAQ,CACbtB,UAAWhT,EAAOuZ,eAClBtH,cAAc,IAEhBoK,GAAY,GAEdrc,EAAO0F,KAAK,aAAcnU,GAC1B7d,EAAK+jC,SAAU,EACf/jC,EAAKs+B,iBAAmBsE,EAAO5iC,EAAKooC,eACpC,IAAIQ,GAAsB,EACtBC,EAAkB/b,EAAO+b,gBAiD7B,GAhDI/b,EAAOia,sBACT8B,EAAkB,GAEhBjG,EAAO,GACLsF,GAAUC,IAAiBQ,GAAa3oC,EAAKs+B,kBAAoBxR,EAAOuJ,eAAiB/J,EAAOoO,eAAiBpO,EAAOhf,KAAO,EAAIgf,EAAOoO,iBAC5IpO,EAAOsU,QAAQ,CACbtB,UAAW,OACXf,cAAc,EACdwD,iBAAkB,IAGlB/hC,EAAKs+B,iBAAmBhS,EAAOoO,iBACjCkO,GAAsB,EAClB9b,EAAOgc,aACT9oC,EAAKs+B,iBAAmBhS,EAAOoO,eAAiB,IAAMpO,EAAOoO,eAAiB16B,EAAKooC,eAAiBxF,IAASiG,KAGxGjG,EAAO,IACZsF,GAAUC,IAAiBQ,GAAa3oC,EAAKs+B,kBAAoBxR,EAAOuJ,eAAiB/J,EAAO4O,eAAiB5O,EAAOhf,KAAO,EAAIgf,EAAO4O,iBAC5I5O,EAAOsU,QAAQ,CACbtB,UAAW,OACXf,cAAc,EACdwD,iBAAkBzV,EAAOwG,OAAO73B,QAAmC,SAAzB6xB,EAAOoG,cAA2B5G,EAAO6G,uBAAyB5F,KAAK6F,KAAK5H,WAAWsB,EAAOoG,cAAe,QAGvJlzB,EAAKs+B,iBAAmBhS,EAAO4O,iBACjC0N,GAAsB,EAClB9b,EAAOgc,aACT9oC,EAAKs+B,iBAAmBhS,EAAO4O,eAAiB,GAAK5O,EAAO4O,eAAiBl7B,EAAKooC,eAAiBxF,IAASiG,KAI9GD,IACF/qB,EAAE+oB,yBAA0B,IAIzBta,EAAOuT,gBAA4C,SAA1BvT,EAAOuZ,gBAA6B7lC,EAAKs+B,iBAAmBt+B,EAAKooC,iBAC7FpoC,EAAKs+B,iBAAmBt+B,EAAKooC,iBAE1B9b,EAAOwT,gBAA4C,SAA1BxT,EAAOuZ,gBAA6B7lC,EAAKs+B,iBAAmBt+B,EAAKooC,iBAC7FpoC,EAAKs+B,iBAAmBt+B,EAAKooC,gBAE1B9b,EAAOwT,gBAAmBxT,EAAOuT,iBACpC7/B,EAAKs+B,iBAAmBt+B,EAAKooC,gBAI3Btb,EAAOyU,UAAY,EAAG,CACxB,KAAIhU,KAAKgK,IAAIqL,GAAQ9V,EAAOyU,WAAavhC,EAAK8lC,oBAW5C,YADA9lC,EAAKs+B,iBAAmBt+B,EAAKooC,gBAT7B,IAAKpoC,EAAK8lC,mBAMR,OALA9lC,EAAK8lC,oBAAqB,EAC1BjD,EAAQqC,OAASrC,EAAQiC,SACzBjC,EAAQsC,OAAStC,EAAQmC,SACzBhlC,EAAKs+B,iBAAmBt+B,EAAKooC,oBAC7BvF,EAAQD,KAAOtW,EAAO4H,eAAiB2O,EAAQiC,SAAWjC,EAAQqC,OAASrC,EAAQmC,SAAWnC,EAAQsC,OAO5G,CACKrY,EAAOic,eAAgBjc,EAAOwJ,WAG/BxJ,EAAOuZ,UAAYvZ,EAAOuZ,SAASpR,SAAW3I,EAAO+Z,UAAYvZ,EAAOkM,uBAC1E1M,EAAO2Q,oBACP3Q,EAAO2P,uBAELnP,EAAOuZ,UAAYvZ,EAAOuZ,SAASpR,SAAW3I,EAAO+Z,UACvD/Z,EAAO+Z,SAASC,cAGlBha,EAAOyO,eAAe/6B,EAAKs+B,kBAE3BhS,EAAOiS,aAAav+B,EAAKs+B,kBAC3B,CACA,SAAS0K,EAAW1X,GAClB,MAAMhF,EAAS/wB,KACTyE,EAAOssB,EAAOwW,gBACdyD,EAAevmC,EAAKsjC,QAAQkD,WAAUC,GAAYA,EAASC,YAAcpV,EAAMoV,YAIrF,GAHIH,GAAgB,GAClBvmC,EAAKsjC,QAAQhtB,OAAOiwB,EAAc,GAEhC,CAAC,gBAAiB,aAAc,eAAgB,eAAe39B,SAAS0oB,EAAMnuB,MAAO,CAEvF,KADgB,CAAC,gBAAiB,eAAeyF,SAAS0oB,EAAMnuB,QAAUmpB,EAAOyC,QAAQyB,UAAYlE,EAAOyC,QAAQ8B,YAElH,MAEJ,CACA,MAAM,OACJ/D,EAAM,QACN+V,EACAjO,aAAcC,EAAG,WACjBQ,EAAU,QACVJ,GACE3I,EACJ,IAAK2I,EAAS,OACd,IAAKnI,EAAOyW,eAAuC,UAAtBjS,EAAMkS,YAAyB,OAC5D,IAAI3lB,EAAIyT,EAMR,GALIzT,EAAE4lB,gBAAe5lB,EAAIA,EAAE4lB,eACvBzjC,EAAKylC,qBACPnZ,EAAO0F,KAAK,WAAYnU,GAE1B7d,EAAKylC,qBAAsB,GACtBzlC,EAAK8jC,UAMR,OALI9jC,EAAK+jC,SAAWjX,EAAO2b,YACzBnc,EAAOoc,eAAc,GAEvB1oC,EAAK+jC,SAAU,OACf/jC,EAAK2lC,aAAc,GAIjB7Y,EAAO2b,YAAczoC,EAAK+jC,SAAW/jC,EAAK8jC,aAAwC,IAA1BxX,EAAOuT,iBAAqD,IAA1BvT,EAAOwT,iBACnGxT,EAAOoc,eAAc,GAIvB,MAAMO,EAAe,IACfC,EAAWD,EAAejpC,EAAK4lC,eAGrC,GAAItZ,EAAOsY,WAAY,CACrB,MAAMuE,EAAWtrB,EAAEigB,MAAQjgB,EAAEsmB,cAAgBtmB,EAAEsmB,eAC/C7X,EAAOuR,mBAAmBsL,GAAYA,EAAS,IAAMtrB,EAAE9Z,OAAQolC,GAC/D7c,EAAO0F,KAAK,YAAanU,GACrBqrB,EAAW,KAAOD,EAAejpC,EAAKopC,cAAgB,KACxD9c,EAAO0F,KAAK,wBAAyBnU,EAEzC,CAKA,GAJA7d,EAAKopC,cAAgB,IACrB,GAAS,KACF9c,EAAO+E,YAAW/E,EAAOsY,YAAa,EAAI,KAE5C5kC,EAAK8jC,YAAc9jC,EAAK+jC,UAAYzX,EAAOuZ,gBAAmC,IAAjBhD,EAAQD,MAAc5iC,EAAKs+B,mBAAqBt+B,EAAKooC,eAIrH,OAHApoC,EAAK8jC,WAAY,EACjB9jC,EAAK+jC,SAAU,OACf/jC,EAAK2lC,aAAc,GAMrB,IAAI0D,EAMJ,GATArpC,EAAK8jC,WAAY,EACjB9jC,EAAK+jC,SAAU,EACf/jC,EAAK2lC,aAAc,EAGjB0D,EADEvc,EAAOic,aACIlU,EAAMvI,EAAOI,WAAaJ,EAAOI,WAEhC1sB,EAAKs+B,iBAEjBxR,EAAOwJ,QACT,OAEF,GAAIxJ,EAAOuZ,UAAYvZ,EAAOuZ,SAASpR,QAIrC,YAHA3I,EAAO+Z,SAAS2C,WAAW,CACzBK,eAMJ,IAAIC,EAAY,EACZpR,EAAY5L,EAAOgJ,gBAAgB,GACvC,IAAK,IAAIx6B,EAAI,EAAGA,EAAIu6B,EAAWp6B,OAAQH,GAAKA,EAAIgyB,EAAO2K,mBAAqB,EAAI3K,EAAO0K,eAAgB,CACrG,MAAMkJ,EAAY5lC,EAAIgyB,EAAO2K,mBAAqB,EAAI,EAAI3K,EAAO0K,oBACxB,IAA9BnC,EAAWv6B,EAAI4lC,GACpB2I,GAAchU,EAAWv6B,IAAMuuC,EAAahU,EAAWv6B,EAAI4lC,KAC7D4I,EAAYxuC,EACZo9B,EAAY7C,EAAWv6B,EAAI4lC,GAAarL,EAAWv6B,IAE5CuuC,GAAchU,EAAWv6B,KAClCwuC,EAAYxuC,EACZo9B,EAAY7C,EAAWA,EAAWp6B,OAAS,GAAKo6B,EAAWA,EAAWp6B,OAAS,GAEnF,CACA,IAAIsuC,EAAmB,KACnBC,EAAkB,KAClB1c,EAAO1Q,SACLkQ,EAAO6O,YACTqO,EAAkB1c,EAAOkI,SAAWlI,EAAOkI,QAAQC,SAAW3I,EAAO0I,QAAU1I,EAAO0I,QAAQlC,OAAO73B,OAAS,EAAIqxB,EAAOwG,OAAO73B,OAAS,EAChIqxB,EAAO8O,QAChBmO,EAAmB,IAIvB,MAAME,GAASJ,EAAahU,EAAWiU,IAAcpR,EAC/CwI,EAAY4I,EAAYxc,EAAO2K,mBAAqB,EAAI,EAAI3K,EAAO0K,eACzE,GAAI0R,EAAWpc,EAAO4c,aAAc,CAElC,IAAK5c,EAAO6c,WAEV,YADArd,EAAOkT,QAAQlT,EAAO+G,aAGM,SAA1B/G,EAAOuZ,iBACL4D,GAAS3c,EAAO8c,gBAAiBtd,EAAOkT,QAAQ1S,EAAO1Q,QAAUkQ,EAAO8O,MAAQmO,EAAmBD,EAAY5I,GAAgBpU,EAAOkT,QAAQ8J,IAEtH,SAA1Bhd,EAAOuZ,iBACL4D,EAAQ,EAAI3c,EAAO8c,gBACrBtd,EAAOkT,QAAQ8J,EAAY5I,GACE,OAApB8I,GAA4BC,EAAQ,GAAKlc,KAAKgK,IAAIkS,GAAS3c,EAAO8c,gBAC3Etd,EAAOkT,QAAQgK,GAEfld,EAAOkT,QAAQ8J,GAGrB,KAAO,CAEL,IAAKxc,EAAO+c,YAEV,YADAvd,EAAOkT,QAAQlT,EAAO+G,aAGE/G,EAAOwd,aAAejsB,EAAE9Z,SAAWuoB,EAAOwd,WAAWC,QAAUlsB,EAAE9Z,SAAWuoB,EAAOwd,WAAWE,QAQ7GnsB,EAAE9Z,SAAWuoB,EAAOwd,WAAWC,OACxCzd,EAAOkT,QAAQ8J,EAAY5I,GAE3BpU,EAAOkT,QAAQ8J,IATe,SAA1Bhd,EAAOuZ,gBACTvZ,EAAOkT,QAA6B,OAArB+J,EAA4BA,EAAmBD,EAAY5I,GAE9C,SAA1BpU,EAAOuZ,gBACTvZ,EAAOkT,QAA4B,OAApBgK,EAA2BA,EAAkBF,GAOlE,CACF,CACA,SAASW,IACP,MAAM3d,EAAS/wB,MACT,OACJuxB,EAAM,GACNrC,GACE6B,EACJ,GAAI7B,GAAyB,IAAnBA,EAAGmE,YAAmB,OAG5B9B,EAAO6J,aACTrK,EAAO4d,gBAIT,MAAM,eACJrK,EAAc,eACdC,EAAc,SACd1K,GACE9I,EACEyI,EAAYzI,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAG1D3I,EAAOuT,gBAAiB,EACxBvT,EAAOwT,gBAAiB,EACxBxT,EAAOyH,aACPzH,EAAOgI,eACPhI,EAAO2P,sBACP,MAAMkO,EAAgBpV,GAAajI,EAAO8G,OACZ,SAAzB9G,EAAOoG,eAA4BpG,EAAOoG,cAAgB,KAAM5G,EAAO8O,OAAU9O,EAAO6O,aAAgB7O,EAAOQ,OAAOuJ,gBAAmB8T,EAGxI7d,EAAOQ,OAAO8G,OAASmB,EACzBzI,EAAO+T,YAAY/T,EAAOuH,UAAW,GAAG,GAAO,GAE/CvH,EAAOkT,QAAQlT,EAAO+G,YAAa,GAAG,GAAO,GAL/C/G,EAAOkT,QAAQlT,EAAOwG,OAAO73B,OAAS,EAAG,GAAG,GAAO,GAQjDqxB,EAAO8d,UAAY9d,EAAO8d,SAASC,SAAW/d,EAAO8d,SAASE,SAChE/2B,aAAa+Y,EAAO8d,SAASG,eAC7Bje,EAAO8d,SAASG,cAAgBl3B,YAAW,KACrCiZ,EAAO8d,UAAY9d,EAAO8d,SAASC,SAAW/d,EAAO8d,SAASE,QAChEhe,EAAO8d,SAASI,QAClB,GACC,MAGLle,EAAOwT,eAAiBA,EACxBxT,EAAOuT,eAAiBA,EACpBvT,EAAOQ,OAAOgM,eAAiB1D,IAAa9I,EAAO8I,UACrD9I,EAAOyM,eAEX,CACA,SAAS0R,EAAQ5sB,GACf,MAAMyO,EAAS/wB,KACV+wB,EAAO2I,UACP3I,EAAOsY,aACNtY,EAAOQ,OAAO4d,eAAe7sB,EAAEsI,iBAC/BmG,EAAOQ,OAAO6d,0BAA4Bre,EAAOyS,YACnDlhB,EAAE6pB,kBACF7pB,EAAE+sB,6BAGR,CACA,SAASC,KACP,MAAMve,EAAS/wB,MACT,UACJyxB,EAAS,aACT4H,EAAY,QACZK,GACE3I,EACJ,IAAK2I,EAAS,OAWd,IAAIwJ,EAVJnS,EAAOoS,kBAAoBpS,EAAOI,UAC9BJ,EAAO4H,eACT5H,EAAOI,WAAaM,EAAU8d,WAE9Bxe,EAAOI,WAAaM,EAAU+d,UAGP,IAArBze,EAAOI,YAAiBJ,EAAOI,UAAY,GAC/CJ,EAAO2Q,oBACP3Q,EAAO2P,sBAEP,MAAMhB,EAAiB3O,EAAO4O,eAAiB5O,EAAOoO,eAEpD+D,EADqB,IAAnBxD,EACY,GAEC3O,EAAOI,UAAYJ,EAAOoO,gBAAkBO,EAEzDwD,IAAgBnS,EAAOgB,UACzBhB,EAAOyO,eAAenG,GAAgBtI,EAAOI,UAAYJ,EAAOI,WAElEJ,EAAO0F,KAAK,eAAgB1F,EAAOI,WAAW,EAChD,CACA,SAASjL,GAAO5D,GACd,MAAMyO,EAAS/wB,KACf42B,EAAqB7F,EAAQzO,EAAE9Z,QAC3BuoB,EAAOQ,OAAOwJ,SAA2C,SAAhChK,EAAOQ,OAAOoG,gBAA6B5G,EAAOQ,OAAOkP,YAGtF1P,EAAOwH,QACT,CACA,IAAIkX,IAAqB,EACzB,SAASC,KAAsB,CAC/B,MAAMha,GAAS,CAAC3E,EAAQjG,KACtB,MAAM1Q,EAAW,KACX,OACJmX,EAAM,GACNrC,EAAE,UACFuC,EAAS,OACT0C,GACEpD,EACE4e,IAAYpe,EAAO2a,OACnB0D,EAAuB,OAAX9kB,EAAkB,mBAAqB,sBACnD+kB,EAAe/kB,EAGrBoE,EAAG0gB,GAAW,cAAe7e,EAAO+W,aAAc,CAChDgI,SAAS,IAEX11B,EAASw1B,GAAW,cAAe7e,EAAOga,YAAa,CACrD+E,SAAS,EACTH,YAEFv1B,EAASw1B,GAAW,YAAa7e,EAAO0c,WAAY,CAClDqC,SAAS,IAEX11B,EAASw1B,GAAW,gBAAiB7e,EAAO0c,WAAY,CACtDqC,SAAS,IAEX11B,EAASw1B,GAAW,aAAc7e,EAAO0c,WAAY,CACnDqC,SAAS,IAEX11B,EAASw1B,GAAW,eAAgB7e,EAAO0c,WAAY,CACrDqC,SAAS,IAEX11B,EAASw1B,GAAW,cAAe7e,EAAO0c,WAAY,CACpDqC,SAAS,KAIPve,EAAO4d,eAAiB5d,EAAO6d,2BACjClgB,EAAG0gB,GAAW,QAAS7e,EAAOme,SAAS,GAErC3d,EAAOwJ,SACTtJ,EAAUme,GAAW,SAAU7e,EAAOue,UAIpC/d,EAAOwe,qBACThf,EAAO8e,GAAc1b,EAAOC,KAAOD,EAAOE,QAAU,0CAA4C,wBAAyBqa,GAAU,GAEnI3d,EAAO8e,GAAc,iBAAkBnB,GAAU,GAInDxf,EAAG0gB,GAAW,OAAQ7e,EAAO7K,OAAQ,CACnCypB,SAAS,GACT,EA8BJ,MAAMK,GAAgB,CAACjf,EAAQQ,IACtBR,EAAOgH,MAAQxG,EAAOwG,MAAQxG,EAAOwG,KAAKC,KAAO,EAqN1D,IAGIiY,GAAW,CACbC,MAAM,EACNnM,UAAW,aACXwI,gBAAgB,EAChBnE,kBAAmB,UACnBxD,aAAc,EACdpT,MAAO,IACPuJ,SAAS,EACTgV,sBAAsB,EACtBI,gBAAgB,EAChBjE,QAAQ,EACRkE,gBAAgB,EAChB1W,SAAS,EACT8Q,kBAAmB,wDAEnB1nB,MAAO,KACPX,OAAQ,KAERshB,gCAAgC,EAEhCrV,UAAW,KACXiiB,IAAK,KAELxG,oBAAoB,EACpBE,mBAAoB,GAEpBtJ,YAAY,EAEZrE,gBAAgB,EAEhB0G,kBAAkB,EAElB3G,OAAQ,QAIRf,iBAAaz1B,EACb2qC,gBAAiB,SAEjBhW,aAAc,EACd3C,cAAe,EACfsE,eAAgB,EAChBC,mBAAoB,EACpBgJ,oBAAoB,EACpBpK,gBAAgB,EAChB+B,sBAAsB,EACtB5C,mBAAoB,EAEpBE,kBAAmB,EAEnB8H,qBAAqB,EACrB/E,0BAA0B,EAE1BK,eAAe,EAEf7B,cAAc,EAEd8Q,WAAY,EACZX,WAAY,GACZ7D,eAAe,EACfsG,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBF,aAAc,IACdX,cAAc,EACd9C,gBAAgB,EAChB1E,UAAW,EACXiG,0BAA0B,EAC1BtB,0BAA0B,EAC1BC,+BAA+B,EAC/BY,qBAAqB,EAErB+E,mBAAmB,EAEnBhD,YAAY,EACZD,gBAAiB,IAEjB7P,qBAAqB,EAErByP,YAAY,EAEZiC,eAAe,EACfC,0BAA0B,EAC1BxM,qBAAqB,EAErBvK,MAAM,EACN+N,aAAc,KACdhB,qBAAqB,EAErBvkB,QAAQ,EAER0jB,gBAAgB,EAChBD,gBAAgB,EAChBgF,aAAc,KAEdP,WAAW,EACXL,eAAgB,oBAChBG,kBAAmB,KAEnB2H,kBAAkB,EAClBzS,wBAAyB,GAEzBH,uBAAwB,UAExB3G,WAAY,eACZ4J,iBAAkB,sBAClB9B,kBAAmB,uBACnB+B,eAAgB,oBAChBC,eAAgB,oBAChB0P,aAAc,iBACdtZ,mBAAoB,wBACpBO,oBAAqB,EAErB2K,oBAAoB,EAEpBqO,cAAc,GAEhB,SAASC,GAAmBpf,EAAQqf,GAClC,OAAO,SAAsB/rC,QACf,IAARA,IACFA,EAAM,CAAC,GAET,MAAMgsC,EAAkBjyC,OAAOmG,KAAKF,GAAK,GACnCisC,EAAejsC,EAAIgsC,GACG,iBAAjBC,GAA8C,OAAjBA,IAIR,IAA5Bvf,EAAOsf,KACTtf,EAAOsf,GAAmB,CACxBnX,SAAS,IAGW,eAApBmX,GAAoCtf,EAAOsf,IAAoBtf,EAAOsf,GAAiBnX,UAAYnI,EAAOsf,GAAiBpC,SAAWld,EAAOsf,GAAiBrC,SAChKjd,EAAOsf,GAAiBE,MAAO,GAE7B,CAAC,aAAc,aAAa5iC,QAAQ0iC,IAAoB,GAAKtf,EAAOsf,IAAoBtf,EAAOsf,GAAiBnX,UAAYnI,EAAOsf,GAAiB3hB,KACtJqC,EAAOsf,GAAiBE,MAAO,GAE3BF,KAAmBtf,GAAU,YAAauf,GAIT,iBAA5Bvf,EAAOsf,IAAmC,YAAatf,EAAOsf,KACvEtf,EAAOsf,GAAiBnX,SAAU,GAE/BnI,EAAOsf,KAAkBtf,EAAOsf,GAAmB,CACtDnX,SAAS,IAEX,EAAOkX,EAAkB/rC,IATvB,EAAO+rC,EAAkB/rC,IAfzB,EAAO+rC,EAAkB/rC,EAyB7B,CACF,CAGA,MAAMmsC,GAAa,CACjBxb,gBACA+C,SACApH,YACA5N,WAlpDe,CACf4a,cA3EF,SAAuB7M,EAAU2R,GAC/B,MAAMlS,EAAS/wB,KACV+wB,EAAOQ,OAAOwJ,UACjBhK,EAAOU,UAAU1T,MAAMkzB,mBAAqB,GAAGpvC,OAAOyvB,EAAU,MAChEP,EAAOU,UAAU1T,MAAMmzB,gBAA+B,IAAb5f,EAAiB,MAAQ,IAEpEP,EAAO0F,KAAK,gBAAiBnF,EAAU2R,EACzC,EAqEEuB,gBAvCF,SAAyBnB,EAAcU,QAChB,IAAjBV,IACFA,GAAe,GAEjB,MAAMtS,EAAS/wB,MACT,OACJuxB,GACER,EACAQ,EAAOwJ,UACPxJ,EAAOkP,YACT1P,EAAOiN,mBAET8F,EAAe,CACb/S,SACAsS,eACAU,YACAC,KAAM,UAEV,EAsBES,cArBF,SAAuBpB,EAAcU,QACd,IAAjBV,IACFA,GAAe,GAEjB,MAAMtS,EAAS/wB,MACT,OACJuxB,GACER,EACJA,EAAOyS,WAAY,EACfjS,EAAOwJ,UACXhK,EAAOoN,cAAc,GACrB2F,EAAe,CACb/S,SACAsS,eACAU,YACAC,KAAM,QAEV,GAopDE3I,QACAhD,OACA6U,WA/iCe,CACfC,cA/BF,SAAuBgE,GACrB,MAAMpgB,EAAS/wB,KACf,IAAK+wB,EAAOQ,OAAOyW,eAAiBjX,EAAOQ,OAAOgM,eAAiBxM,EAAOqgB,UAAYrgB,EAAOQ,OAAOwJ,QAAS,OAC7G,MAAM7L,EAAyC,cAApC6B,EAAOQ,OAAO6W,kBAAoCrX,EAAO7B,GAAK6B,EAAOU,UAC5EV,EAAOiG,YACTjG,EAAOsgB,qBAAsB,GAE/BniB,EAAGnR,MAAMuzB,OAAS,OAClBpiB,EAAGnR,MAAMuzB,OAASH,EAAS,WAAa,OACpCpgB,EAAOiG,WACT/e,uBAAsB,KACpB8Y,EAAOsgB,qBAAsB,CAAK,GAGxC,EAkBEE,gBAjBF,WACE,MAAMxgB,EAAS/wB,KACX+wB,EAAOQ,OAAOgM,eAAiBxM,EAAOqgB,UAAYrgB,EAAOQ,OAAOwJ,UAGhEhK,EAAOiG,YACTjG,EAAOsgB,qBAAsB,GAE/BtgB,EAA2C,cAApCA,EAAOQ,OAAO6W,kBAAoC,KAAO,aAAarqB,MAAMuzB,OAAS,GACxFvgB,EAAOiG,WACT/e,uBAAsB,KACpB8Y,EAAOsgB,qBAAsB,CAAK,IAGxC,GAijCE3b,OA/Xa,CACb8b,aAzBF,WACE,MAAMzgB,EAAS/wB,KACToa,EAAW,KACX,OACJmX,GACER,EACJA,EAAO+W,aAAeA,EAAa5vB,KAAK6Y,GACxCA,EAAOga,YAAcA,EAAY7yB,KAAK6Y,GACtCA,EAAO0c,WAAaA,EAAWv1B,KAAK6Y,GAChCQ,EAAOwJ,UACThK,EAAOue,SAAWA,GAASp3B,KAAK6Y,IAElCA,EAAOme,QAAUA,EAAQh3B,KAAK6Y,GAC9BA,EAAO7K,OAASA,GAAOhO,KAAK6Y,GACvB0e,KACHr1B,EAASgN,iBAAiB,aAAcsoB,IACxCD,IAAqB,GAEvB/Z,GAAO3E,EAAQ,KACjB,EAOE0gB,aANF,WAEE/b,GADe11B,KACA,MACjB,GAiYEo7B,YAtQgB,CAChBuT,cApHF,WACE,MAAM5d,EAAS/wB,MACT,UACJs4B,EAAS,YACT8J,EAAW,OACX7Q,EAAM,GACNrC,GACE6B,EACEqK,EAAc7J,EAAO6J,YAC3B,IAAKA,GAAeA,GAAmD,IAApCx8B,OAAOmG,KAAKq2B,GAAa17B,OAAc,OAG1E,MAAMgyC,EAAa3gB,EAAO4gB,cAAcvW,EAAarK,EAAOQ,OAAO+e,gBAAiBvf,EAAO7B,IAC3F,IAAKwiB,GAAc3gB,EAAO6gB,oBAAsBF,EAAY,OAC5D,MACMG,GADuBH,KAActW,EAAcA,EAAYsW,QAAc/rC,IAClCorB,EAAO+gB,eAClDC,EAAc/B,GAAcjf,EAAQQ,GACpCygB,EAAahC,GAAcjf,EAAQ8gB,GACnCI,EAAa1gB,EAAOmI,QACtBqY,IAAgBC,GAClB9iB,EAAG0D,UAAUyE,OAAO,GAAGx1B,OAAO0vB,EAAOqM,uBAAwB,QAAS,GAAG/7B,OAAO0vB,EAAOqM,uBAAwB,gBAC/G7M,EAAOmhB,yBACGH,GAAeC,IACzB9iB,EAAG0D,UAAU/gB,IAAI,GAAGhQ,OAAO0vB,EAAOqM,uBAAwB,UACtDiU,EAAiB9Z,KAAKoa,MAAuC,WAA/BN,EAAiB9Z,KAAKoa,OAAsBN,EAAiB9Z,KAAKoa,MAA6B,WAArB5gB,EAAOwG,KAAKoa,OACtHjjB,EAAG0D,UAAU/gB,IAAI,GAAGhQ,OAAO0vB,EAAOqM,uBAAwB,gBAE5D7M,EAAOmhB,wBAIT,CAAC,aAAc,aAAc,aAAapkC,SAAQglB,IAChD,QAAsC,IAA3B+e,EAAiB/e,GAAuB,OACnD,MAAMsf,EAAmB7gB,EAAOuB,IAASvB,EAAOuB,GAAM4G,QAChD2Y,EAAkBR,EAAiB/e,IAAS+e,EAAiB/e,GAAM4G,QACrE0Y,IAAqBC,GACvBthB,EAAO+B,GAAMwf,WAEVF,GAAoBC,GACvBthB,EAAO+B,GAAMyf,QACf,IAEF,MAAMC,EAAmBX,EAAiB9N,WAAa8N,EAAiB9N,YAAcxS,EAAOwS,UACvF0O,EAAclhB,EAAO8G,OAASwZ,EAAiBla,gBAAkBpG,EAAOoG,eAAiB6a,GACzFE,EAAUnhB,EAAO8G,KACnBma,GAAoBpQ,GACtBrR,EAAO4hB,kBAET,EAAO5hB,EAAOQ,OAAQsgB,GACtB,MAAMe,EAAY7hB,EAAOQ,OAAOmI,QAC1BmZ,EAAU9hB,EAAOQ,OAAO8G,KAC9Bz5B,OAAOQ,OAAO2xB,EAAQ,CACpB2Z,eAAgB3Z,EAAOQ,OAAOmZ,eAC9BpG,eAAgBvT,EAAOQ,OAAO+S,eAC9BC,eAAgBxT,EAAOQ,OAAOgT,iBAE5B0N,IAAeW,EACjB7hB,EAAOuhB,WACGL,GAAcW,GACxB7hB,EAAOwhB,SAETxhB,EAAO6gB,kBAAoBF,EAC3B3gB,EAAO0F,KAAK,oBAAqBob,GAC7BzP,IACEqQ,GACF1hB,EAAO4W,cACP5W,EAAOuV,WAAWhO,GAClBvH,EAAOgI,iBACG2Z,GAAWG,GACrB9hB,EAAOuV,WAAWhO,GAClBvH,EAAOgI,gBACE2Z,IAAYG,GACrB9hB,EAAO4W,eAGX5W,EAAO0F,KAAK,aAAcob,EAC5B,EAyCEF,cAxCF,SAAuBvW,EAAazd,EAAMm1B,GAIxC,QAHa,IAATn1B,IACFA,EAAO,WAEJyd,GAAwB,cAATzd,IAAyBm1B,EAAa,OAC1D,IAAIpB,GAAa,EACjB,MAAMvxC,EAAS,IACT4yC,EAAyB,WAATp1B,EAAoBxd,EAAO6yC,YAAcF,EAAYpa,aACrEua,EAASr0C,OAAOmG,KAAKq2B,GAAap0B,KAAIksC,IAC1C,GAAqB,iBAAVA,GAA6C,IAAvBA,EAAM/kC,QAAQ,KAAY,CACzD,MAAMglC,EAAWljB,WAAWijB,EAAME,OAAO,IAEzC,MAAO,CACLr0C,MAFYg0C,EAAgBI,EAG5BD,QAEJ,CACA,MAAO,CACLn0C,MAAOm0C,EACPA,QACD,IAEHD,EAAOI,MAAK,CAACpgC,EAAGC,IAAM2lB,SAAS5lB,EAAElU,MAAO,IAAM85B,SAAS3lB,EAAEnU,MAAO,MAChE,IAAK,IAAIQ,EAAI,EAAGA,EAAI0zC,EAAOvzC,OAAQH,GAAK,EAAG,CACzC,MAAM,MACJ2zC,EAAK,MACLn0C,GACEk0C,EAAO1zC,GACE,WAAToe,EACExd,EAAO4uB,WAAW,eAAeltB,OAAO9C,EAAO,QAAQ2zB,UACzDgf,EAAawB,GAENn0C,GAAS+zC,EAAYra,cAC9BiZ,EAAawB,EAEjB,CACA,OAAOxB,GAAc,KACvB,GAwQElU,cAvKoB,CACpBA,cA9BF,WACE,MAAMzM,EAAS/wB,MAEboxC,SAAUkC,EAAS,OACnB/hB,GACER,GACE,mBACJkJ,GACE1I,EACJ,GAAI0I,EAAoB,CACtB,MAAMmG,EAAiBrP,EAAOwG,OAAO73B,OAAS,EACxC6zC,EAAqBxiB,EAAO+I,WAAWsG,GAAkBrP,EAAOgJ,gBAAgBqG,GAAuC,EAArBnG,EACxGlJ,EAAOqgB,SAAWrgB,EAAOhf,KAAOwhC,CAClC,MACExiB,EAAOqgB,SAAsC,IAA3BrgB,EAAO8I,SAASn6B,QAEN,IAA1B6xB,EAAO+S,iBACTvT,EAAOuT,gBAAkBvT,EAAOqgB,WAEJ,IAA1B7f,EAAOgT,iBACTxT,EAAOwT,gBAAkBxT,EAAOqgB,UAE9BkC,GAAaA,IAAcviB,EAAOqgB,WACpCrgB,EAAO8O,OAAQ,GAEbyT,IAAcviB,EAAOqgB,UACvBrgB,EAAO0F,KAAK1F,EAAOqgB,SAAW,OAAS,SAE3C,GAyKEze,QAzMY,CACZ6gB,WA7CF,WACE,MAAMziB,EAAS/wB,MACT,WACJyzC,EAAU,OACVliB,EAAM,IACN+H,EAAG,GACHpK,EAAE,OACFiF,GACEpD,EAEE2iB,EAzBR,SAAwB9lC,EAAS+lC,GAC/B,MAAMC,EAAgB,GAYtB,OAXAhmC,EAAQE,SAAQC,IACM,iBAATA,EACTnP,OAAOmG,KAAKgJ,GAAMD,SAAQ2lC,IACpB1lC,EAAK0lC,IACPG,EAAc1oC,KAAKyoC,EAASF,EAC9B,IAEuB,iBAAT1lC,GAChB6lC,EAAc1oC,KAAKyoC,EAAS5lC,EAC9B,IAEK6lC,CACT,CAWmBC,CAAe,CAAC,cAAetiB,EAAOwS,UAAW,CAChE,YAAahT,EAAOQ,OAAOuZ,UAAYvZ,EAAOuZ,SAASpR,SACtD,CACD,WAAcnI,EAAOkP,YACpB,CACD,IAAOnH,GACN,CACD,KAAQ/H,EAAOwG,MAAQxG,EAAOwG,KAAKC,KAAO,GACzC,CACD,cAAezG,EAAOwG,MAAQxG,EAAOwG,KAAKC,KAAO,GAA0B,WAArBzG,EAAOwG,KAAKoa,MACjE,CACD,QAAWhe,EAAOE,SACjB,CACD,IAAOF,EAAOC,KACb,CACD,WAAY7C,EAAOwJ,SAClB,CACD,SAAYxJ,EAAOwJ,SAAWxJ,EAAOuJ,gBACpC,CACD,iBAAkBvJ,EAAOkM,sBACvBlM,EAAOqM,wBACX6V,EAAWvoC,QAAQwoC,GACnBxkB,EAAG0D,UAAU/gB,OAAO4hC,GACpB1iB,EAAOmhB,sBACT,EAYE4B,cAXF,WACE,MACM,GACJ5kB,EAAE,WACFukB,GAHazzC,KAKfkvB,EAAG0D,UAAUyE,UAAUoc,GALRzzC,KAMRkyC,sBACT,IA4MM6B,GAAmB,CAAC,EAC1B,MAAMC,GACJxpC,cACE,IAAI0kB,EACAqC,EACJ,IAAK,IAAInM,EAAO3lB,UAAUC,OAAQ02B,EAAO,IAAIz0B,MAAMyjB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E+Q,EAAK/Q,GAAQ5lB,UAAU4lB,GAEL,IAAhB+Q,EAAK12B,QAAgB02B,EAAK,GAAG5rB,aAAwE,WAAzD5L,OAAOgB,UAAU+O,SAAS7O,KAAKs2B,EAAK,IAAIx0B,MAAM,GAAI,GAChG2vB,EAAS6E,EAAK,IAEblH,EAAIqC,GAAU6E,EAEZ7E,IAAQA,EAAS,CAAC,GACvBA,EAAS,EAAO,CAAC,EAAGA,GAChBrC,IAAOqC,EAAOrC,KAAIqC,EAAOrC,GAAKA,GAClC,MAAM9U,EAAW,IACjB,GAAImX,EAAOrC,IAA2B,iBAAdqC,EAAOrC,IAAmB9U,EAASkB,iBAAiBiW,EAAOrC,IAAIxvB,OAAS,EAAG,CACjG,MAAMu0C,EAAU,GAQhB,OAPA75B,EAASkB,iBAAiBiW,EAAOrC,IAAIphB,SAAQglC,IAC3C,MAAMoB,EAAY,EAAO,CAAC,EAAG3iB,EAAQ,CACnCrC,GAAI4jB,IAENmB,EAAQ/oC,KAAK,IAAI8oC,GAAOE,GAAW,IAG9BD,CACT,CAGA,MAAMljB,EAAS/wB,KACf+wB,EAAOL,YAAa,EACpBK,EAAOuC,QAAUG,IACjB1C,EAAOoD,OAASJ,EAAU,CACxB3F,UAAWmD,EAAOnD,YAEpB2C,EAAOyC,QAAUuB,IACjBhE,EAAO8E,gBAAkB,CAAC,EAC1B9E,EAAOuF,mBAAqB,GAC5BvF,EAAOojB,QAAU,IAAIpjB,EAAOqjB,aACxB7iB,EAAO4iB,SAAWxyC,MAAMuH,QAAQqoB,EAAO4iB,UACzCpjB,EAAOojB,QAAQjpC,QAAQqmB,EAAO4iB,SAEhC,MAAMvD,EAAmB,CAAC,EAC1B7f,EAAOojB,QAAQrmC,SAAQ/L,IACrBA,EAAI,CACFwvB,SACAR,SACAsjB,aAAc1D,GAAmBpf,EAAQqf,GACzCnb,GAAI1E,EAAO0E,GAAGvd,KAAK6Y,GACnBiF,KAAMjF,EAAOiF,KAAK9d,KAAK6Y,GACvBmF,IAAKnF,EAAOmF,IAAIhe,KAAK6Y,GACrB0F,KAAM1F,EAAO0F,KAAKve,KAAK6Y,IACvB,IAIJ,MAAMujB,EAAe,EAAO,CAAC,EAAGrE,GAAUW,GAoG1C,OAjGA7f,EAAOQ,OAAS,EAAO,CAAC,EAAG+iB,EAAcP,GAAkBxiB,GAC3DR,EAAO+gB,eAAiB,EAAO,CAAC,EAAG/gB,EAAOQ,QAC1CR,EAAOwjB,aAAe,EAAO,CAAC,EAAGhjB,GAG7BR,EAAOQ,QAAUR,EAAOQ,OAAOkE,IACjC72B,OAAOmG,KAAKgsB,EAAOQ,OAAOkE,IAAI3nB,SAAQ0mC,IACpCzjB,EAAO0E,GAAG+e,EAAWzjB,EAAOQ,OAAOkE,GAAG+e,GAAW,IAGjDzjB,EAAOQ,QAAUR,EAAOQ,OAAO8E,OACjCtF,EAAOsF,MAAMtF,EAAOQ,OAAO8E,OAI7Bz3B,OAAOQ,OAAO2xB,EAAQ,CACpB2I,QAAS3I,EAAOQ,OAAOmI,QACvBxK,KAEAukB,WAAY,GAEZlc,OAAQ,GACRuC,WAAY,GACZD,SAAU,GACVE,gBAAiB,GAEjBpB,eACE,MAAmC,eAA5B5H,EAAOQ,OAAOwS,SACvB,EACAnL,aACE,MAAmC,aAA5B7H,EAAOQ,OAAOwS,SACvB,EAEAjM,YAAa,EACbQ,UAAW,EAEXsH,aAAa,EACbC,OAAO,EAEP1O,UAAW,EACXgS,kBAAmB,EACnBpR,SAAU,EACV0iB,SAAU,EACVjR,WAAW,EACX5E,wBAGE,OAAO5M,KAAK0iB,MAAM10C,KAAKmxB,UAAY,GAAK,IAAM,GAAK,EACrD,EAEAmT,eAAgBvT,EAAOQ,OAAO+S,eAC9BC,eAAgBxT,EAAOQ,OAAOgT,eAE9BgD,gBAAiB,CACfgB,eAAW5iC,EACX6iC,aAAS7iC,EACTukC,yBAAqBvkC,EACrB0kC,oBAAgB1kC,EAChBwkC,iBAAaxkC,EACbo9B,sBAAkBp9B,EAClBknC,oBAAgBlnC,EAChB4kC,wBAAoB5kC,EAEpB6kC,kBAAmBzZ,EAAOQ,OAAOiZ,kBAEjCqD,cAAe,EACf8G,kBAAchvC,EAEdivC,WAAY,GACZ3H,yBAAqBtnC,EACrBykC,iBAAazkC,EACboiC,QAAS,IAGXsB,YAAY,EAEZqB,eAAgB3Z,EAAOQ,OAAOmZ,eAC9BpD,QAAS,CACPqC,OAAQ,EACRC,OAAQ,EACRL,SAAU,EACVE,SAAU,EACVpC,KAAM,GAGRwN,aAAc,GACdC,aAAc,IAEhB/jB,EAAO0F,KAAK,WAGR1F,EAAOQ,OAAO2e,MAChBnf,EAAOmf,OAKFnf,CACT,CACAsV,cAAcvP,GACZ,MAAM,SACJqC,EAAQ,OACR5H,GACEvxB,KAEEmgC,EAAkB,EADT,EAAgBhH,EAAU,IAAIt3B,OAAO0vB,EAAO0F,WAAY,mBAC3B,IAC5C,OAAO,EAAaH,GAAWqJ,CACjC,CACA9B,oBAAoBp3B,GAClB,OAAOjH,KAAKqmC,cAAcrmC,KAAKu3B,OAAOjuB,QAAOwtB,GAA6D,EAAlDA,EAAQtc,aAAa,6BAAmCvT,IAAO,GACzH,CACAkgC,eACE,MACM,SACJhO,EAAQ,OACR5H,GAHavxB,UAKRu3B,OAAS,EAAgB4B,EAAU,IAAIt3B,OAAO0vB,EAAO0F,WAAY,kBAC1E,CACAsb,SACE,MAAMxhB,EAAS/wB,KACX+wB,EAAO2I,UACX3I,EAAO2I,SAAU,EACb3I,EAAOQ,OAAO2b,YAChBnc,EAAOoc,gBAETpc,EAAO0F,KAAK,UACd,CACA6b,UACE,MAAMvhB,EAAS/wB,KACV+wB,EAAO2I,UACZ3I,EAAO2I,SAAU,EACb3I,EAAOQ,OAAO2b,YAChBnc,EAAOwgB,kBAETxgB,EAAO0F,KAAK,WACd,CACAse,YAAYhjB,EAAUP,GACpB,MAAMT,EAAS/wB,KACf+xB,EAAWC,KAAKE,IAAIF,KAAKC,IAAIF,EAAU,GAAI,GAC3C,MAAMG,EAAMnB,EAAOoO,eAEbzoB,GADMqa,EAAO4O,eACIzN,GAAOH,EAAWG,EACzCnB,EAAOqS,YAAY1sB,OAA0B,IAAV8a,EAAwB,EAAIA,GAC/DT,EAAO2Q,oBACP3Q,EAAO2P,qBACT,CACAwR,uBACE,MAAMnhB,EAAS/wB,KACf,IAAK+wB,EAAOQ,OAAOmf,eAAiB3f,EAAO7B,GAAI,OAC/C,MAAM8lB,EAAMjkB,EAAO7B,GAAGlJ,UAAUjZ,MAAM,KAAKzD,QAAO0c,GACT,IAAhCA,EAAU7X,QAAQ,WAA+E,IAA5D6X,EAAU7X,QAAQ4iB,EAAOQ,OAAOqM,0BAE9E7M,EAAO0F,KAAK,oBAAqBue,EAAIzrC,KAAK,KAC5C,CACA0rC,gBAAgBne,GACd,MAAM/F,EAAS/wB,KACf,OAAI+wB,EAAO+E,UAAkB,GACtBgB,EAAQ9Q,UAAUjZ,MAAM,KAAKzD,QAAO0c,GACI,IAAtCA,EAAU7X,QAAQ,iBAAyE,IAAhD6X,EAAU7X,QAAQ4iB,EAAOQ,OAAO0F,cACjF1tB,KAAK,IACV,CACAk4B,oBACE,MAAM1Q,EAAS/wB,KACf,IAAK+wB,EAAOQ,OAAOmf,eAAiB3f,EAAO7B,GAAI,OAC/C,MAAMgmB,EAAU,GAChBnkB,EAAOwG,OAAOzpB,SAAQgpB,IACpB,MAAM2c,EAAa1iB,EAAOkkB,gBAAgBne,GAC1Coe,EAAQhqC,KAAK,CACX4rB,UACA2c,eAEF1iB,EAAO0F,KAAK,cAAeK,EAAS2c,EAAW,IAEjD1iB,EAAO0F,KAAK,gBAAiBye,EAC/B,CACAtd,qBAAqBud,EAAMC,QACZ,IAATD,IACFA,EAAO,gBAEK,IAAVC,IACFA,GAAQ,GAEV,MACM,OACJ7jB,EAAM,OACNgG,EAAM,WACNuC,EAAU,gBACVC,EACAhoB,KAAMqnB,EAAU,YAChBtB,GAPa93B,KASf,IAAIq1C,EAAM,EACV,GAAoC,iBAAzB9jB,EAAOoG,cAA4B,OAAOpG,EAAOoG,cAC5D,GAAIpG,EAAOuJ,eAAgB,CACzB,IACIwa,EADAra,EAAY1D,EAAOO,GAAeP,EAAOO,GAAaiE,gBAAkB,EAE5E,IAAK,IAAIx8B,EAAIu4B,EAAc,EAAGv4B,EAAIg4B,EAAO73B,OAAQH,GAAK,EAChDg4B,EAAOh4B,KAAO+1C,IAChBra,GAAa1D,EAAOh4B,GAAGw8B,gBACvBsZ,GAAO,EACHpa,EAAY7B,IAAYkc,GAAY,IAG5C,IAAK,IAAI/1C,EAAIu4B,EAAc,EAAGv4B,GAAK,EAAGA,GAAK,EACrCg4B,EAAOh4B,KAAO+1C,IAChBra,GAAa1D,EAAOh4B,GAAGw8B,gBACvBsZ,GAAO,EACHpa,EAAY7B,IAAYkc,GAAY,GAG9C,MAEE,GAAa,YAATH,EACF,IAAK,IAAI51C,EAAIu4B,EAAc,EAAGv4B,EAAIg4B,EAAO73B,OAAQH,GAAK,EAAG,EACnC61C,EAAQtb,EAAWv6B,GAAKw6B,EAAgBx6B,GAAKu6B,EAAWhC,GAAesB,EAAaU,EAAWv6B,GAAKu6B,EAAWhC,GAAesB,KAEhJic,GAAO,EAEX,MAGA,IAAK,IAAI91C,EAAIu4B,EAAc,EAAGv4B,GAAK,EAAGA,GAAK,EAAG,CACxBu6B,EAAWhC,GAAegC,EAAWv6B,GAAK65B,IAE5Dic,GAAO,EAEX,CAGJ,OAAOA,CACT,CACA9c,SACE,MAAMxH,EAAS/wB,KACf,IAAK+wB,GAAUA,EAAO+E,UAAW,OACjC,MAAM,SACJ+D,EAAQ,OACRtI,GACER,EAcJ,SAASiS,IACP,MAAMuS,EAAiBxkB,EAAOsI,cAAmC,EAApBtI,EAAOI,UAAiBJ,EAAOI,UACtEuS,EAAe1R,KAAKE,IAAIF,KAAKC,IAAIsjB,EAAgBxkB,EAAO4O,gBAAiB5O,EAAOoO,gBACtFpO,EAAOiS,aAAaU,GACpB3S,EAAO2Q,oBACP3Q,EAAO2P,qBACT,CACA,IAAI8U,EACJ,GApBIjkB,EAAO6J,aACTrK,EAAO4d,gBAET,IAAI5d,EAAO7B,GAAG5T,iBAAiB,qBAAqBxN,SAAQ+oB,IACtDA,EAAQ3P,UACV0P,EAAqB7F,EAAQ8F,EAC/B,IAEF9F,EAAOyH,aACPzH,EAAOgI,eACPhI,EAAOyO,iBACPzO,EAAO2P,sBASHnP,EAAOuZ,UAAYvZ,EAAOuZ,SAASpR,UAAYnI,EAAOwJ,QACxDiI,IACIzR,EAAOkP,YACT1P,EAAOiN,uBAEJ,CACL,IAA8B,SAAzBzM,EAAOoG,eAA4BpG,EAAOoG,cAAgB,IAAM5G,EAAO8O,QAAUtO,EAAOuJ,eAAgB,CAC3G,MAAMvD,EAASxG,EAAO0I,SAAWlI,EAAOkI,QAAQC,QAAU3I,EAAO0I,QAAQlC,OAASxG,EAAOwG,OACzFie,EAAazkB,EAAOkT,QAAQ1M,EAAO73B,OAAS,EAAG,GAAG,GAAO,EAC3D,MACE81C,EAAazkB,EAAOkT,QAAQlT,EAAO+G,YAAa,GAAG,GAAO,GAEvD0d,GACHxS,GAEJ,CACIzR,EAAOgM,eAAiB1D,IAAa9I,EAAO8I,UAC9C9I,EAAOyM,gBAETzM,EAAO0F,KAAK,SACd,CACAkc,gBAAgB8C,EAAcC,QACT,IAAfA,IACFA,GAAa,GAEf,MAAM3kB,EAAS/wB,KACT21C,EAAmB5kB,EAAOQ,OAAOwS,UAKvC,OAJK0R,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAE9DF,IAAiBE,GAAqC,eAAjBF,GAAkD,aAAjBA,IAG1E1kB,EAAO7B,GAAG0D,UAAUyE,OAAO,GAAGx1B,OAAOkvB,EAAOQ,OAAOqM,wBAAwB/7B,OAAO8zC,IAClF5kB,EAAO7B,GAAG0D,UAAU/gB,IAAI,GAAGhQ,OAAOkvB,EAAOQ,OAAOqM,wBAAwB/7B,OAAO4zC,IAC/E1kB,EAAOmhB,uBACPnhB,EAAOQ,OAAOwS,UAAY0R,EAC1B1kB,EAAOwG,OAAOzpB,SAAQgpB,IACC,aAAjB2e,EACF3e,EAAQ/Y,MAAM+E,MAAQ,GAEtBgU,EAAQ/Y,MAAMoE,OAAS,EACzB,IAEF4O,EAAO0F,KAAK,mBACRif,GAAY3kB,EAAOwH,UAddxH,CAgBX,CACA6kB,wBAAwB7R,GACtB,MAAMhT,EAAS/wB,KACX+wB,EAAOuI,KAAqB,QAAdyK,IAAwBhT,EAAOuI,KAAqB,QAAdyK,IACxDhT,EAAOuI,IAAoB,QAAdyK,EACbhT,EAAOsI,aAA2C,eAA5BtI,EAAOQ,OAAOwS,WAA8BhT,EAAOuI,IACrEvI,EAAOuI,KACTvI,EAAO7B,GAAG0D,UAAU/gB,IAAI,GAAGhQ,OAAOkvB,EAAOQ,OAAOqM,uBAAwB,QACxE7M,EAAO7B,GAAG0C,IAAM,QAEhBb,EAAO7B,GAAG0D,UAAUyE,OAAO,GAAGx1B,OAAOkvB,EAAOQ,OAAOqM,uBAAwB,QAC3E7M,EAAO7B,GAAG0C,IAAM,OAElBb,EAAOwH,SACT,CACAsd,MAAM3uC,GACJ,MAAM6pB,EAAS/wB,KACf,GAAI+wB,EAAO+kB,QAAS,OAAO,EAG3B,IAAI5mB,EAAKhoB,GAAW6pB,EAAOQ,OAAOrC,GAIlC,GAHkB,iBAAPA,IACTA,EAAK9U,SAASgB,cAAc8T,KAEzBA,EACH,OAAO,EAETA,EAAG6B,OAASA,EACR7B,EAAGjT,YAAciT,EAAGjT,WAAW0R,MAAwC,qBAAhCuB,EAAGjT,WAAW0R,KAAKT,WAC5D6D,EAAOiG,WAAY,GAErB,MAAM+e,EAAqB,IAClB,IAAIl0C,QAAQkvB,EAAOQ,OAAOkf,cAAgB,IAAIpnC,OAAO0D,MAAM,KAAKxD,KAAK,MAW9E,IAAIkoB,EATe,MACjB,GAAIvC,GAAMA,EAAGkI,YAAclI,EAAGkI,WAAWhc,cAAe,CAGtD,OAFY8T,EAAGkI,WAAWhc,cAAc26B,IAG1C,CACA,OAAO,EAAgB7mB,EAAI6mB,KAAsB,EAAE,EAGrCC,GAmBhB,OAlBKvkB,GAAaV,EAAOQ,OAAO6e,iBAC9B3e,EAAY,EAAc,MAAOV,EAAOQ,OAAOkf,cAC/CvhB,EAAGgY,OAAOzV,GACV,EAAgBvC,EAAI,IAAIrtB,OAAOkvB,EAAOQ,OAAO0F,aAAanpB,SAAQgpB,IAChErF,EAAUyV,OAAOpQ,EAAQ,KAG7Bl4B,OAAOQ,OAAO2xB,EAAQ,CACpB7B,KACAuC,YACA0H,SAAUpI,EAAOiG,YAAc9H,EAAGjT,WAAW0R,KAAKsoB,WAAa/mB,EAAGjT,WAAW0R,KAAO8D,EACpFykB,OAAQnlB,EAAOiG,UAAY9H,EAAGjT,WAAW0R,KAAOuB,EAChD4mB,SAAS,EAETxc,IAA8B,QAAzBpK,EAAG0C,IAAInoB,eAA6D,QAAlCopB,EAAa3D,EAAI,aACxDmK,aAA0C,eAA5BtI,EAAOQ,OAAOwS,YAAwD,QAAzB7U,EAAG0C,IAAInoB,eAA6D,QAAlCopB,EAAa3D,EAAI,cAC9GqK,SAAiD,gBAAvC1G,EAAapB,EAAW,cAE7B,CACT,CACAye,KAAKhhB,GACH,MAAM6B,EAAS/wB,KACf,GAAI+wB,EAAOqR,YAAa,OAAOrR,EAE/B,IAAgB,IADAA,EAAO8kB,MAAM3mB,GACN,OAAO6B,EAC9BA,EAAO0F,KAAK,cAGR1F,EAAOQ,OAAO6J,aAChBrK,EAAO4d,gBAIT5d,EAAOyiB,aAGPziB,EAAOyH,aAGPzH,EAAOgI,eACHhI,EAAOQ,OAAOgM,eAChBxM,EAAOyM,gBAILzM,EAAOQ,OAAO2b,YAAcnc,EAAO2I,SACrC3I,EAAOoc,gBAILpc,EAAOQ,OAAO8G,MAAQtH,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAChE3I,EAAOkT,QAAQlT,EAAOQ,OAAOqT,aAAe7T,EAAO0I,QAAQgD,aAAc,EAAG1L,EAAOQ,OAAO8Q,oBAAoB,GAAO,GAErHtR,EAAOkT,QAAQlT,EAAOQ,OAAOqT,aAAc,EAAG7T,EAAOQ,OAAO8Q,oBAAoB,GAAO,GAIrFtR,EAAOQ,OAAO8G,MAChBtH,EAAOuV,aAITvV,EAAOygB,eACP,MAAM2E,EAAe,IAAIplB,EAAO7B,GAAG5T,iBAAiB,qBAsBpD,OArBIyV,EAAOiG,WACTmf,EAAajrC,QAAQ6lB,EAAOmlB,OAAO56B,iBAAiB,qBAEtD66B,EAAaroC,SAAQ+oB,IACfA,EAAQ3P,SACV0P,EAAqB7F,EAAQ8F,GAE7BA,EAAQzP,iBAAiB,QAAQ9E,IAC/BsU,EAAqB7F,EAAQzO,EAAE9Z,OAAO,GAE1C,IAEFgvB,EAAQzG,GAGRA,EAAOqR,aAAc,EACrB5K,EAAQzG,GAGRA,EAAO0F,KAAK,QACZ1F,EAAO0F,KAAK,aACL1F,CACT,CACAqlB,QAAQC,EAAgBC,QACC,IAAnBD,IACFA,GAAiB,QAEC,IAAhBC,IACFA,GAAc,GAEhB,MAAMvlB,EAAS/wB,MACT,OACJuxB,EAAM,GACNrC,EAAE,UACFuC,EAAS,OACT8F,GACExG,EACJ,YAA6B,IAAlBA,EAAOQ,QAA0BR,EAAO+E,YAGnD/E,EAAO0F,KAAK,iBAGZ1F,EAAOqR,aAAc,EAGrBrR,EAAO0gB,eAGHlgB,EAAO8G,MACTtH,EAAO4W,cAIL2O,IACFvlB,EAAO+iB,gBACP5kB,EAAGlU,gBAAgB,SACnByW,EAAUzW,gBAAgB,SACtBuc,GAAUA,EAAO73B,QACnB63B,EAAOzpB,SAAQgpB,IACbA,EAAQlE,UAAUyE,OAAO9F,EAAOwN,kBAAmBxN,EAAOsP,iBAAkBtP,EAAOuP,eAAgBvP,EAAOwP,gBAC1GjK,EAAQ9b,gBAAgB,SACxB8b,EAAQ9b,gBAAgB,0BAA0B,KAIxD+V,EAAO0F,KAAK,WAGZ73B,OAAOmG,KAAKgsB,EAAO8E,iBAAiB/nB,SAAQ0mC,IAC1CzjB,EAAOmF,IAAIse,EAAU,KAEA,IAAnB6B,IACFtlB,EAAO7B,GAAG6B,OAAS,KDh+GzB,SAAqBlsB,GACnB,MAAM0J,EAAS1J,EACfjG,OAAOmG,KAAKwJ,GAAQT,SAAQ1G,IAC1B,IACEmH,EAAOnH,GAAO,IAChB,CAAE,MAAOkb,GAET,CACA,WACS/T,EAAOnH,EAChB,CAAE,MAAOkb,GAET,IAEJ,CCm9GMi0B,CAAYxlB,IAEdA,EAAO+E,WAAY,GAtCV,IAwCX,CACA0gB,sBAAsBC,GACpB,EAAO1C,GAAkB0C,EAC3B,CACW1C,8BACT,OAAOA,EACT,CACW9D,sBACT,OAAOA,EACT,CACAuG,qBAAqBz0C,GACdiyC,GAAOp0C,UAAUw0C,cAAaJ,GAAOp0C,UAAUw0C,YAAc,IAClE,MAAMD,EAAUH,GAAOp0C,UAAUw0C,YACd,mBAARryC,GAAsBoyC,EAAQhmC,QAAQpM,GAAO,GACtDoyC,EAAQjpC,KAAKnJ,EAEjB,CACAy0C,WAAW71C,GACT,OAAIgB,MAAMuH,QAAQvI,IAChBA,EAAOmN,SAAQtI,GAAKwuC,GAAO0C,cAAclxC,KAClCwuC,KAETA,GAAO0C,cAAc/1C,GACdqzC,GACT,EAEFp1C,OAAOmG,KAAKisC,IAAYljC,SAAQ6oC,IAC9B/3C,OAAOmG,KAAKisC,GAAW2F,IAAiB7oC,SAAQ8oC,IAC9C5C,GAAOp0C,UAAUg3C,GAAe5F,GAAW2F,GAAgBC,EAAY,GACvE,IAEJ5C,GAAO6C,IAAI,CAr6GX,SAAgBp5B,GACd,IAAI,OACFsT,EAAM,GACN0E,EAAE,KACFgB,GACEhZ,EACJ,MAAMtd,EAAS,IACf,IAAI22C,EAAW,KACXC,EAAiB,KACrB,MAAMC,EAAgB,KACfjmB,IAAUA,EAAO+E,WAAc/E,EAAOqR,cAC3C3L,EAAK,gBACLA,EAAK,UAAS,EAsCVwgB,EAA2B,KAC1BlmB,IAAUA,EAAO+E,WAAc/E,EAAOqR,aAC3C3L,EAAK,oBAAoB,EAE3BhB,EAAG,QAAQ,KACL1E,EAAOQ,OAAO4e,qBAAmD,IAA1BhwC,EAAO+2C,eAxC7CnmB,IAAUA,EAAO+E,WAAc/E,EAAOqR,cAC3C0U,EAAW,IAAII,gBAAetpC,IAC5BmpC,EAAiB52C,EAAO8X,uBAAsB,KAC5C,MAAM,MACJ6K,EAAK,OACLX,GACE4O,EACJ,IAAIomB,EAAWr0B,EACXob,EAAY/b,EAChBvU,EAAQE,SAAQyR,IACd,IAAI,eACF63B,EAAc,YACdC,EAAW,OACX7uC,GACE+W,EACA/W,GAAUA,IAAWuoB,EAAO7B,KAChCioB,EAAWE,EAAcA,EAAYv0B,OAASs0B,EAAe,IAAMA,GAAgBE,WACnFpZ,EAAYmZ,EAAcA,EAAYl1B,QAAUi1B,EAAe,IAAMA,GAAgBG,UAAS,IAE5FJ,IAAar0B,GAASob,IAAc/b,GACtC60B,GACF,GACA,IAEJF,EAASU,QAAQzmB,EAAO7B,MAoBxB/uB,EAAOinB,iBAAiB,SAAU4vB,GAClC72C,EAAOinB,iBAAiB,oBAAqB6vB,GAAyB,IAExExhB,EAAG,WAAW,KApBRshB,GACF52C,EAAOkY,qBAAqB0+B,GAE1BD,GAAYA,EAASW,WAAa1mB,EAAO7B,KAC3C4nB,EAASW,UAAU1mB,EAAO7B,IAC1B4nB,EAAW,MAiBb32C,EAAOknB,oBAAoB,SAAU2vB,GACrC72C,EAAOknB,oBAAoB,oBAAqB4vB,EAAyB,GAE7E,EACA,SAAkBx5B,GAChB,IAAI,OACFsT,EAAM,aACNsjB,EAAY,GACZ5e,EAAE,KACFgB,GACEhZ,EACJ,MAAMi6B,EAAY,GACZv3C,EAAS,IACTw3C,EAAS,SAAUnvC,EAAQzB,QACf,IAAZA,IACFA,EAAU,CAAC,GAEb,MACM+vC,EAAW,IADI32C,EAAOy3C,kBAAoBz3C,EAAO03C,yBACrBC,IAIhC,GAAI/mB,EAAOsgB,oBAAqB,OAChC,GAAyB,IAArByG,EAAUp4C,OAEZ,YADA+2B,EAAK,iBAAkBqhB,EAAU,IAGnC,MAAMC,EAAiB,WACrBthB,EAAK,iBAAkBqhB,EAAU,GACnC,EACI33C,EAAO8X,sBACT9X,EAAO8X,sBAAsB8/B,GAE7B53C,EAAO2X,WAAWigC,EAAgB,EACpC,IAEFjB,EAASU,QAAQhvC,EAAQ,CACvB2R,gBAA0C,IAAvBpT,EAAQoT,YAAoCpT,EAAQoT,WACvE69B,eAAwC,IAAtBjxC,EAAQixC,WAAmCjxC,EAAQixC,UACrEC,mBAAgD,IAA1BlxC,EAAQkxC,eAAuClxC,EAAQkxC,gBAE/EP,EAAUxsC,KAAK4rC,EACjB,EAyBAzC,EAAa,CACXyC,UAAU,EACVoB,gBAAgB,EAChBC,sBAAsB,IAExB1iB,EAAG,QA7BU,KACX,GAAK1E,EAAOQ,OAAOulB,SAAnB,CACA,GAAI/lB,EAAOQ,OAAO2mB,eAAgB,CAChC,MAAME,EAAmB,EAAernB,EAAOmlB,QAC/C,IAAK,IAAI32C,EAAI,EAAGA,EAAI64C,EAAiB14C,OAAQH,GAAK,EAChDo4C,EAAOS,EAAiB74C,GAE5B,CAEAo4C,EAAO5mB,EAAOmlB,OAAQ,CACpB8B,UAAWjnB,EAAOQ,OAAO4mB,uBAI3BR,EAAO5mB,EAAOU,UAAW,CACvBtX,YAAY,GAdqB,CAejC,IAcJsb,EAAG,WAZa,KACdiiB,EAAU5pC,SAAQgpC,IAChBA,EAASuB,YAAY,IAEvBX,EAAU38B,OAAO,EAAG28B,EAAUh4C,OAAO,GASzC,ICzOA,MAAM44C,GAAa,CAAC,eAAgB,eAAgB,mBAAoB,UAAW,OAAQ,aAAc,iBAAkB,oBAAqB,eAAgB,SAAU,UAAW,uBAAwB,iBAAkB,SAAU,oBAAqB,WAAY,SAAU,UAAW,iCAAkC,YAAa,MAAO,sBAAuB,sBAAuB,YAAa,cAAe,iBAAkB,mBAAoB,UAAW,cAAe,kBAAmB,gBAAiB,iBAAkB,0BAA2B,QAAS,kBAAmB,sBAAuB,sBAAuB,kBAAmB,wBAAyB,sBAAuB,qBAAsB,sBAAuB,4BAA6B,iBAAkB,eAAgB,aAAc,aAAc,gBAAiB,eAAgB,cAAe,kBAAmB,eAAgB,gBAAiB,iBAAkB,aAAc,2BAA4B,2BAA4B,gCAAiC,sBAAuB,oBAAqB,cAAe,mBAAoB,uBAAwB,cAAe,gBAAiB,2BAA4B,uBAAwB,QAAS,eAAgB,sBAAuB,UAAW,kBAAmB,kBAAmB,gBAAiB,aAAc,iBAAkB,oBAAqB,mBAAoB,yBAA0B,aAAc,mBAAoB,oBAAqB,iBAAkB,iBAAkB,eAAgB,qBAAsB,sBAAuB,qBAAsB,WAAY,iBAAkB,uBAE9nD,OAAQ,YAAa,cAAe,kBAAmB,aAAc,aAAc,aAAc,iBAAkB,cAAe,iBAAkB,UAAW,WAAY,aAAc,cAAe,cAAe,WAAY,aAAc,UAAW,UAAW,OAAQ,WAC/Q,SAAS,GAAS/yC,GAChB,MAAoB,iBAANA,GAAwB,OAANA,GAAcA,EAAEiF,aAAkE,WAAnD5L,OAAOgB,UAAU+O,SAAS7O,KAAKyF,GAAG3D,MAAM,GAAI,KAAoB2D,EAAEmrB,UACnI,CACA,SAAS,GAAOloB,EAAQyb,GACtB,MAAMkM,EAAW,CAAC,YAAa,cAAe,aAC9CvxB,OAAOmG,KAAKkf,GAAK3a,QAAOlC,GAAO+oB,EAAShiB,QAAQ/G,GAAO,IAAG0G,SAAQ1G,SACrC,IAAhBoB,EAAOpB,GAAsBoB,EAAOpB,GAAO6c,EAAI7c,GAAc,GAAS6c,EAAI7c,KAAS,GAASoB,EAAOpB,KAASxI,OAAOmG,KAAKkf,EAAI7c,IAAM1H,OAAS,EAChJukB,EAAI7c,GAAKspB,WAAYloB,EAAOpB,GAAO6c,EAAI7c,GAAU,GAAOoB,EAAOpB,GAAM6c,EAAI7c,IAE7EoB,EAAOpB,GAAO6c,EAAI7c,EACpB,GAEJ,CACA,SAASmxC,GAAgBhnB,GAIvB,YAHe,IAAXA,IACFA,EAAS,CAAC,GAELA,EAAOgd,iBAAkD,IAA7Bhd,EAAOgd,WAAWC,aAA8D,IAA7Bjd,EAAOgd,WAAWE,MAC1G,CACA,SAAS+J,GAAgBjnB,GAIvB,YAHe,IAAXA,IACFA,EAAS,CAAC,GAELA,EAAOknB,iBAA8C,IAAzBlnB,EAAOknB,WAAWvpB,EACvD,CACA,SAASwpB,GAAennB,GAItB,YAHe,IAAXA,IACFA,EAAS,CAAC,GAELA,EAAOonB,gBAA4C,IAAxBpnB,EAAOonB,UAAUzpB,EACrD,CACA,SAAS0pB,GAAcnF,QACF,IAAfA,IACFA,EAAa,IAEf,MAAM9gB,EAAU8gB,EAAW1mC,MAAM,KAAK/F,KAAImd,GAAKA,EAAE9a,SAAQC,QAAO6a,KAAOA,IACjE00B,EAAS,GAIf,OAHAlmB,EAAQ7kB,SAAQqW,IACV00B,EAAO1qC,QAAQgW,GAAK,GAAG00B,EAAO3tC,KAAKiZ,EAAE,IAEpC00B,EAAOtvC,KAAK,IACrB,CAOA,SAASknC,GAAazqB,GAIpB,YAHkB,IAAdA,IACFA,EAAY,IAETA,EACAA,EAAU3Y,SAAS,kBACjB2Y,EAD2C,kBAAkBnkB,OAAOmkB,GADpD,gBAGzB,CC3CA,SAASrQ,KAYP,OAXAA,GAAW/W,OAAOQ,OAASR,OAAOQ,OAAO8Y,OAAS,SAAU1P,GAC1D,IAAK,IAAIjJ,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAImS,EAASjS,UAAUF,GACvB,IAAK,IAAI6H,KAAOsK,EACV9S,OAAOgB,UAAUC,eAAeC,KAAK4R,EAAQtK,KAC/CoB,EAAOpB,GAAOsK,EAAOtK,GAG3B,CACA,OAAOoB,CACT,EACOmN,GAAS5V,MAAMC,KAAMP,UAC9B,CACA,SAASq5C,GAAmB95B,GAC1B,OAAOA,EAAMpX,MAAQoX,EAAMpX,KAAKma,aAAe/C,EAAMpX,KAAKma,YAAY1U,SAAS,cACjF,CACA,SAAS0rC,GAAgB50B,GACvB,MAAMoT,EAAS,GAQf,OAPA,mBAAuBpT,GAAGrW,SAAQkR,IAC5B85B,GAAmB95B,GACrBuY,EAAOrsB,KAAK8T,GACHA,EAAMxJ,OAASwJ,EAAMxJ,MAAM3N,UACpCkxC,GAAgB/5B,EAAMxJ,MAAM3N,UAAUiG,SAAQutB,GAAS9D,EAAOrsB,KAAKmwB,IACrE,IAEK9D,CACT,CACA,SAASyhB,GAAY70B,GACnB,MAAMoT,EAAS,GACT0hB,EAAQ,CACZ,kBAAmB,GACnB,gBAAiB,GACjB,gBAAiB,GACjB,cAAe,IAkBjB,OAhBA,mBAAuB90B,GAAGrW,SAAQkR,IAChC,GAAI85B,GAAmB95B,GACrBuY,EAAOrsB,KAAK8T,QACP,GAAIA,EAAMxJ,OAASwJ,EAAMxJ,MAAM0jC,MAAQD,EAAMj6B,EAAMxJ,MAAM0jC,MAC9DD,EAAMj6B,EAAMxJ,MAAM0jC,MAAMhuC,KAAK8T,QACxB,GAAIA,EAAMxJ,OAASwJ,EAAMxJ,MAAM3N,SAAU,CAC9C,MAAMsxC,EAAcJ,GAAgB/5B,EAAMxJ,MAAM3N,UAC5CsxC,EAAYz5C,OAAS,EACvBy5C,EAAYrrC,SAAQutB,GAAS9D,EAAOrsB,KAAKmwB,KAEzC4d,EAAM,iBAAiB/tC,KAAK8T,EAEhC,MACEi6B,EAAM,iBAAiB/tC,KAAK8T,EAC9B,IAEK,CACLuY,SACA0hB,QAEJ,CAsCA,SAASG,GAA0BxhC,EAAUyhC,GAE3C,MAAsB,oBAAXl5C,QAA+B,IAAAm5C,WAAU1hC,EAAUyhC,IACvD,IAAAE,iBAAgB3hC,EAAUyhC,EACnC,CACA,MAAMG,IAAkC,IAAAC,eAAc,MAIhDC,IAA6B,IAAAD,eAAc,MAI3C,IAAsB,IAAAE,aAAW,SAAUhmC,EAAOimC,GACtD,IAAI,UACF5zB,EACAjP,IAAK8iC,EAAM,MACXC,WAAYC,EAAa,MAAK,SAC9BlyC,EAAQ,SACRmyC,KACGC,QACS,IAAVtmC,EAAmB,CAAC,EAAIA,EACxBumC,GAAiB,EACrB,MAAOC,EAAkBC,IAAuB,IAAArwB,UAAS,WAClDswB,EAAaC,IAAkB,IAAAvwB,UAAS,OACxCwwB,EAAmBC,IAAwB,IAAAzwB,WAAS,GACrD0wB,GAAiB,IAAAvwB,SAAO,GACxBwwB,GAAc,IAAAxwB,QAAO,MACrBywB,GAAY,IAAAzwB,QAAO,MACnB0wB,GAAqB,IAAA1wB,QAAO,MAC5B2wB,GAAY,IAAA3wB,QAAO,MACnB4wB,GAAY,IAAA5wB,QAAO,MACnB6wB,GAAY,IAAA7wB,QAAO,MACnB8wB,GAAkB,IAAA9wB,QAAO,MACzB+wB,GAAiB,IAAA/wB,QAAO,OAE5BqH,OAAQ+iB,EAAY,aACpBC,EACA0F,KAAMiB,EAAS,OACfxlB,GCnJJ,SAAmB7wB,EAAKs2C,QACV,IAARt2C,IACFA,EAAM,CAAC,QAEW,IAAhBs2C,IACFA,GAAc,GAEhB,MAAM5pB,EAAS,CACbkE,GAAI,CAAC,GAEDC,EAAS,CAAC,EACV6e,EAAe,CAAC,EACtB,GAAOhjB,EAAQ0e,IACf1e,EAAOmf,cAAe,EACtBnf,EAAO2e,MAAO,EACd,MAAM+J,EAAO,CAAC,EACRmB,EAAgB9C,GAAWtxC,KAAII,GAAOA,EAAI6C,QAAQ,IAAK,MACvDoxC,EAAWz8C,OAAOQ,OAAO,CAAC,EAAGyF,GA2BnC,OA1BAjG,OAAOmG,KAAKs2C,GAAUvtC,SAAQ1G,SACJ,IAAbvC,EAAIuC,KACXg0C,EAAcjtC,QAAQ/G,IAAQ,EAC5B,GAASvC,EAAIuC,KACfmqB,EAAOnqB,GAAO,CAAC,EACfmtC,EAAantC,GAAO,CAAC,EACrB,GAAOmqB,EAAOnqB,GAAMvC,EAAIuC,IACxB,GAAOmtC,EAAantC,GAAMvC,EAAIuC,MAE9BmqB,EAAOnqB,GAAOvC,EAAIuC,GAClBmtC,EAAantC,GAAOvC,EAAIuC,IAES,IAA1BA,EAAI4mB,OAAO,YAAwC,mBAAbnpB,EAAIuC,GAC/C+zC,EACFzlB,EAAO,GAAG7zB,OAAOuF,EAAI,GAAGqC,eAAe5H,OAAOuF,EAAIgsC,OAAO,KAAOvuC,EAAIuC,GAEpEmqB,EAAOkE,GAAG,GAAG5zB,OAAOuF,EAAI,GAAGqC,eAAe5H,OAAOuF,EAAIgsC,OAAO,KAAOvuC,EAAIuC,GAGzE6yC,EAAK7yC,GAAOvC,EAAIuC,GAClB,IAEF,CAAC,aAAc,aAAc,aAAa0G,SAAQ1G,KAC5B,IAAhBmqB,EAAOnqB,KAAemqB,EAAOnqB,GAAO,CAAC,IACrB,IAAhBmqB,EAAOnqB,WAAuBmqB,EAAOnqB,EAAI,IAExC,CACLmqB,SACAgjB,eACA0F,OACAvkB,SAEJ,CDkGM4lB,CAAUrB,IACR,OACJ1iB,EAAM,MACN0hB,GACED,GAAYnxC,GACV0zC,EAAqB,KACzBf,GAAsBD,EAAkB,EAE1C37C,OAAOQ,OAAOk1C,EAAa7e,GAAI,CAC7B+lB,kBAAkBzqB,EAAQ4B,GACxBynB,EAAoBznB,EACtB,IAEF,MAAM8oB,EAAa,KAEjB78C,OAAOQ,OAAOk1C,EAAa7e,GAAIC,GAC/BwkB,GAAiB,EACjB,MAAMwB,EAAa,IACdpH,GAIL,UAFOoH,EAAWjL,aAClBkK,EAAUjkC,QAAU,IAAIs9B,GAAS0H,GAC7Bf,EAAUjkC,QAAQ+iB,SAAWkhB,EAAUjkC,QAAQ6a,OAAOkI,QAAQC,QAAS,CACzEihB,EAAUjkC,QAAQ+iB,QAAQlC,OAASA,EACnC,MAAMokB,EAAa,CACjB3rC,OAAO,EACPunB,SACAqkB,eAAgBtB,EAChBuB,sBAAsB,GAExB,GAAOlB,EAAUjkC,QAAQ6a,OAAOkI,QAASkiB,GACzC,GAAOhB,EAAUjkC,QAAQo7B,eAAerY,QAASkiB,EACnD,GAEGjB,EAAYhkC,SACf+kC,IAIEd,EAAUjkC,SACZikC,EAAUjkC,QAAQ+e,GAAG,oBAAqB8lB,GA8F5C,OAhFA,IAAAjC,YAAU,IACD,KACDqB,EAAUjkC,SAASikC,EAAUjkC,QAAQwf,IAAI,oBAAqBqlB,EAAmB,KAKzF,IAAAjC,YAAU,MACHmB,EAAe/jC,SAAWikC,EAAUjkC,UACvCikC,EAAUjkC,QAAQ+qB,oBAClBgZ,EAAe/jC,SAAU,EAC3B,IAIF0iC,IAA0B,KAIxB,GAHIQ,IACFA,EAAcljC,QAAUgkC,EAAYhkC,SAEjCgkC,EAAYhkC,QAcjB,OAbIikC,EAAUjkC,QAAQof,WACpB2lB,IC5KN,SAAqBh+B,EAAM62B,GACzB,IAAI,GACFplB,EAAE,OACFsf,EAAM,OACNC,EAAM,aACNqN,EAAY,YACZC,EAAW,OACXhrB,GACEtT,EACA86B,GAAgBjE,IAAiB9F,GAAUC,IAC7C1d,EAAOQ,OAAOgd,WAAWC,OAASA,EAClCzd,EAAO+gB,eAAevD,WAAWC,OAASA,EAC1Czd,EAAOQ,OAAOgd,WAAWE,OAASA,EAClC1d,EAAO+gB,eAAevD,WAAWE,OAASA,GAExC+J,GAAgBlE,IAAiBwH,IACnC/qB,EAAOQ,OAAOknB,WAAWvpB,GAAK4sB,EAC9B/qB,EAAO+gB,eAAe2G,WAAWvpB,GAAK4sB,GAEpCpD,GAAepE,IAAiByH,IAClChrB,EAAOQ,OAAOonB,UAAUzpB,GAAK6sB,EAC7BhrB,EAAO+gB,eAAe6G,UAAUzpB,GAAK6sB,GAEvChrB,EAAOmf,KAAKhhB,EACd,CDsJI8sB,CAAY,CACV9sB,GAAIwrB,EAAYhkC,QAChB83B,OAAQsM,EAAUpkC,QAClB+3B,OAAQsM,EAAUrkC,QAClBolC,aAAcd,EAAgBtkC,QAC9BqlC,YAAad,EAAevkC,QAC5Bqa,OAAQ4pB,EAAUjkC,SACjB49B,GACC0F,GAAUA,EAASW,EAAUjkC,SAE1B,KACDikC,EAAUjkC,UAAYikC,EAAUjkC,QAAQof,WAC1C6kB,EAAUjkC,QAAQ0/B,SAAQ,GAAM,EAClC,CACD,GACA,IAGHgD,IAA0B,MApDpBc,GAAmBxkB,GAAWilB,EAAUjkC,SAC5C9X,OAAOmG,KAAK2wB,GAAQ5nB,SAAQ0mC,IAC1BmG,EAAUjkC,QAAQ+e,GAAG+e,EAAW9e,EAAO8e,GAAW,IAoDpD,MAAMyH,ECzKV,SAA0B3H,EAAc4H,EAAWr0C,EAAUs0C,EAAaC,GACxE,MAAMr3C,EAAO,GACb,IAAKm3C,EAAW,OAAOn3C,EACvB,MAAMs3C,EAASj1C,IACTrC,EAAKoJ,QAAQ/G,GAAO,GAAGrC,EAAKmG,KAAK9D,EAAI,EAE3C,GAAIS,GAAYs0C,EAAa,CAC3B,MAAMG,EAAkBH,EAAYn1C,IAAIo1C,GAClCG,EAAe10C,EAASb,IAAIo1C,GAC9BE,EAAgB/yC,KAAK,MAAQgzC,EAAahzC,KAAK,KAAK8yC,EAAO,YAC3DF,EAAYz8C,SAAWmI,EAASnI,QAAQ28C,EAAO,WACrD,CAwBA,OAvBoB/D,GAAWhvC,QAAOlC,GAAkB,MAAXA,EAAI,KAAYJ,KAAII,GAAOA,EAAI6C,QAAQ,IAAK,MAC7E6D,SAAQ1G,IAClB,GAAIA,KAAOktC,GAAgBltC,KAAO80C,EAChC,GAAI,GAAS5H,EAAaltC,KAAS,GAAS80C,EAAU90C,IAAO,CAC3D,MAAMo1C,EAAU59C,OAAOmG,KAAKuvC,EAAaltC,IACnCq1C,EAAU79C,OAAOmG,KAAKm3C,EAAU90C,IAClCo1C,EAAQ98C,SAAW+8C,EAAQ/8C,OAC7B28C,EAAOj1C,IAEPo1C,EAAQ1uC,SAAQ4uC,IACVpI,EAAaltC,GAAKs1C,KAAYR,EAAU90C,GAAKs1C,IAC/CL,EAAOj1C,EACT,IAEFq1C,EAAQ3uC,SAAQ6uC,IACVrI,EAAaltC,GAAKu1C,KAAYT,EAAU90C,GAAKu1C,IAASN,EAAOj1C,EAAI,IAG3E,MAAWktC,EAAaltC,KAAS80C,EAAU90C,IACzCi1C,EAAOj1C,EAEX,IAEKrC,CACT,CDqI0B63C,CAAiBrI,EAAcqG,EAAmBlkC,QAAS6gB,EAAQsjB,EAAUnkC,SAASyN,GAAKA,EAAE/c,MAenH,OAdAwzC,EAAmBlkC,QAAU69B,EAC7BsG,EAAUnkC,QAAU6gB,EAChB0kB,EAAcv8C,QAAUi7C,EAAUjkC,UAAYikC,EAAUjkC,QAAQof,WD9LxE,SAAsBrY,GACpB,IAAI,OACFsT,EAAM,OACNwG,EAAM,aACNgd,EAAY,cACZ0H,EAAa,OACbzN,EAAM,OACNC,EAAM,YACNsN,EAAW,aACXD,GACEr+B,EACJ,MAAMo/B,EAAeZ,EAAc3yC,QAAOlC,GAAe,aAARA,GAA8B,cAARA,GAA+B,iBAARA,KAE5FmqB,OAAQurB,EAAa,WACrBrE,EAAU,WACVlK,EAAU,UACVoK,EAAS,QACTlf,EAAO,OACPsjB,GACEhsB,EACJ,IAAIisB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAtB,EAAc5uC,SAAS,WAAaknC,EAAawI,QAAUxI,EAAawI,OAAOhsB,QAAU+rB,EAAcC,SAAWD,EAAcC,OAAOhsB,SACzIisB,GAAiB,GAEff,EAAc5uC,SAAS,eAAiBknC,EAAa/M,YAAc+M,EAAa/M,WAAWC,SAAWqV,EAActV,aAAesV,EAActV,WAAWC,UAC9JwV,GAAqB,GAEnBhB,EAAc5uC,SAAS,eAAiBknC,EAAakE,aAAelE,EAAakE,WAAWvpB,IAAM4sB,KAAkBgB,EAAcrE,aAA2C,IAA7BqE,EAAcrE,aAAyBA,IAAeA,EAAWvpB,KACnNguB,GAAqB,GAEnBjB,EAAc5uC,SAAS,cAAgBknC,EAAaoE,YAAcpE,EAAaoE,UAAUzpB,IAAM6sB,KAAiBe,EAAcnE,YAAyC,IAA5BmE,EAAcnE,YAAwBA,IAAcA,EAAUzpB,KAC3MiuB,GAAoB,GAElBlB,EAAc5uC,SAAS,eAAiBknC,EAAahG,aAAegG,EAAahG,WAAWE,QAAUA,KAAY8F,EAAahG,WAAWC,QAAUA,KAAYsO,EAAcvO,aAA2C,IAA7BuO,EAAcvO,aAAyBA,IAAeA,EAAWE,SAAWF,EAAWC,SACrR4O,GAAqB,GAEvB,MAAMI,EAAgBz7C,IACfgvB,EAAOhvB,KACZgvB,EAAOhvB,GAAKq0C,UACA,eAARr0C,GACEgvB,EAAOiG,YACTjG,EAAOhvB,GAAK0sC,OAAOpX,SACnBtG,EAAOhvB,GAAKysC,OAAOnX,UAErBylB,EAAc/6C,GAAK0sC,YAAS9oC,EAC5Bm3C,EAAc/6C,GAAKysC,YAAS7oC,EAC5BorB,EAAOhvB,GAAK0sC,YAAS9oC,EACrBorB,EAAOhvB,GAAKysC,YAAS7oC,IAEjBorB,EAAOiG,WACTjG,EAAOhvB,GAAKmtB,GAAGmI,SAEjBylB,EAAc/6C,GAAKmtB,QAAKvpB,EACxBorB,EAAOhvB,GAAKmtB,QAAKvpB,GACnB,EAEEs2C,EAAc5uC,SAAS,SAAW0jB,EAAOiG,YACvC8lB,EAAczkB,OAASkc,EAAalc,KACtCglB,GAAkB,GACRP,EAAczkB,MAAQkc,EAAalc,KAC7CilB,GAAiB,EAEjBC,GAAiB,GAGrBV,EAAa/uC,SAAQ1G,IACnB,GAAI,GAAS01C,EAAc11C,KAAS,GAASmtC,EAAantC,IACxD,GAAO01C,EAAc11C,GAAMmtC,EAAantC,IAC3B,eAARA,GAAgC,eAARA,GAAgC,cAARA,KAAwB,YAAamtC,EAAantC,KAASmtC,EAAantC,GAAKsyB,SAChI8jB,EAAcp2C,OAEX,CACL,MAAMq2C,EAAWlJ,EAAantC,IACZ,IAAbq2C,IAAkC,IAAbA,GAAgC,eAARr2C,GAAgC,eAARA,GAAgC,cAARA,EAKhG01C,EAAc11C,GAAOmtC,EAAantC,IAJjB,IAAbq2C,GACFD,EAAcp2C,EAKpB,KAEEy1C,EAAaxvC,SAAS,gBAAkB4vC,GAAsBlsB,EAAOyW,YAAczW,EAAOyW,WAAWC,SAAWqV,EAActV,YAAcsV,EAActV,WAAWC,UACvK1W,EAAOyW,WAAWC,QAAUqV,EAActV,WAAWC,SAEnDwU,EAAc5uC,SAAS,aAAekqB,GAAUkC,GAAWqjB,EAAcrjB,QAAQC,UACnFD,EAAQlC,OAASA,EACjBkC,EAAQlB,QAAO,IAEb0jB,EAAc5uC,SAAS,aAAekqB,GAAUulB,EAAczkB,OAChEklB,GAAiB,GAEfP,GACkBD,EAAO7M,QACV6M,EAAOxkB,QAAO,GAE7B0kB,IACFlsB,EAAOyW,WAAWC,QAAUqV,EAActV,WAAWC,SAEnDyV,KACEnsB,EAAOiG,WAAe8kB,GAAwC,iBAAjBA,IAC/CA,EAAe1hC,SAAStS,cAAc,OACtCg0C,EAAalpB,UAAU/gB,IAAI,qBAC3BiqC,EAAa4B,KAAK7rC,IAAI,cACtBkf,EAAO7B,GAAGtT,YAAYkgC,IAEpBA,IAAcgB,EAAcrE,WAAWvpB,GAAK4sB,GAChDrD,EAAWvI,OACXuI,EAAWp4B,SACXo4B,EAAWlgB,UAET4kB,KACEpsB,EAAOiG,WAAe+kB,GAAsC,iBAAhBA,IAC9CA,EAAc3hC,SAAStS,cAAc,OACrCi0C,EAAYnpB,UAAU/gB,IAAI,oBAC1BkqC,EAAY2B,KAAK7rC,IAAI,aACrBkf,EAAO7B,GAAGtT,YAAYmgC,IAEpBA,IAAae,EAAcnE,UAAUzpB,GAAK6sB,GAC9CpD,EAAUzI,OACVyI,EAAUngB,aACVmgB,EAAU3V,gBAERoa,IACErsB,EAAOiG,YACJwX,GAA4B,iBAAXA,IACpBA,EAASp0B,SAAStS,cAAc,OAChC0mC,EAAO5b,UAAU/gB,IAAI,sBACrB28B,EAAO/yB,UAAYsV,EAAOmlB,OAAO1rC,YAAYmzC,cAC7CnP,EAAOkP,KAAK7rC,IAAI,eAChBkf,EAAO7B,GAAGtT,YAAY4yB,IAEnBC,GAA4B,iBAAXA,IACpBA,EAASr0B,SAAStS,cAAc,OAChC2mC,EAAO7b,UAAU/gB,IAAI,sBACrB48B,EAAOhzB,UAAYsV,EAAOmlB,OAAO1rC,YAAYozC,cAC7CnP,EAAOiP,KAAK7rC,IAAI,eAChBkf,EAAO7B,GAAGtT,YAAY6yB,KAGtBD,IAAQsO,EAAcvO,WAAWC,OAASA,GAC1CC,IAAQqO,EAAcvO,WAAWE,OAASA,GAC9CF,EAAW2B,OACX3B,EAAWhW,UAET0jB,EAAc5uC,SAAS,oBACzB0jB,EAAOuT,eAAiBiQ,EAAajQ,gBAEnC2X,EAAc5uC,SAAS,oBACzB0jB,EAAOwT,eAAiBgQ,EAAahQ,gBAEnC0X,EAAc5uC,SAAS,cACzB0jB,EAAO4hB,gBAAgB4B,EAAaxQ,WAAW,IAE7CsZ,GAAmBE,IACrBxsB,EAAO4W,eAEL2V,GAAkBC,IACpBxsB,EAAOuV,aAETvV,EAAOwH,QACT,CCuBMslB,CAAa,CACX9sB,OAAQ4pB,EAAUjkC,QAClB6gB,SACAgd,eACA0H,gBACAzN,OAAQsM,EAAUpkC,QAClB+3B,OAAQsM,EAAUrkC,QAClBqlC,YAAad,EAAevkC,QAC5BolC,aAAcd,EAAgBtkC,UAG3B,KA/DFgf,GAAWilB,EAAUjkC,SAC1B9X,OAAOmG,KAAK2wB,GAAQ5nB,SAAQ0mC,IAC1BmG,EAAUjkC,QAAQwf,IAAIse,EAAW9e,EAAO8e,GAAW,GA8DrC,CACf,IAIH4E,IAA0B,KCzJAroB,UD0JJ4pB,EAAUjkC,UCzJjBqa,EAAO+E,YAAc/E,EAAOQ,OAAOkI,SAAW1I,EAAOQ,OAAOkI,UAAY1I,EAAOQ,OAAOkI,QAAQC,UAC7G3I,EAAOgI,eACPhI,EAAOyO,iBACPzO,EAAO2P,sBACH3P,EAAO+sB,UAAY/sB,EAAOQ,OAAOusB,UAAY/sB,EAAOQ,OAAOusB,SAASpkB,SACtE3I,EAAO+sB,SAAS9a,eDoJsB,GACrC,CAACqX,IAcgB,gBAAoBR,EAAKlkC,GAAS,CACpD8R,IAAKizB,EACL10B,UAAW4yB,GAAc,GAAG/2C,OAAOs4C,GAAkBt4C,OAAOmkB,EAAY,IAAInkB,OAAOmkB,GAAa,MAC/Fk1B,GAAyB,gBAAoBxB,GAAcqE,SAAU,CACtEh/C,MAAO47C,EAAUjkC,SAChBuiC,EAAM,mBAAiC,gBAAoBc,EAAY,CACxE/zB,UAAWyqB,GAAa6D,EAAa7D,eACpCwI,EAAM,iBAjBH3E,EAAa7a,QAzMrB,SAAuB1I,EAAQwG,EAAQ8iB,GACrC,IAAKA,EAAa,OAAO,KACzB,MAAMhU,EAAgBp/B,IACpB,IAAI21B,EAAa31B,EAOjB,OANIA,EAAQ,EACV21B,EAAarF,EAAO73B,OAASuH,EACpB21B,GAAcrF,EAAO73B,SAE9Bk9B,GAA0BrF,EAAO73B,QAE5Bk9B,CAAU,EAEb7e,EAAQgT,EAAO4H,eAAiB,CACpC,CAAC5H,EAAOsI,aAAe,QAAU,QAAS,GAAGx3B,OAAOw4C,EAAY2D,OAAQ,OACtE,CACFh7B,IAAK,GAAGnhB,OAAOw4C,EAAY2D,OAAQ,QAE/B,KACJz8C,EAAI,GACJD,GACE+4C,EACE4D,EAAWltB,EAAOQ,OAAO8G,MAAQd,EAAO73B,OAAS,EACjDw+C,EAASntB,EAAOQ,OAAO8G,KAAuB,EAAhBd,EAAO73B,OAAa63B,EAAO73B,OACzDy+C,EAAiB,GACvB,IAAK,IAAI5+C,EAAI0+C,EAAU1+C,EAAI2+C,EAAQ3+C,GAAK,EAClCA,GAAKgC,GAAQhC,GAAK+B,GACpB68C,EAAejzC,KAAKqsB,EAAO8O,EAAc9mC,KAG7C,OAAO4+C,EAAen3C,KAAI,CAACgY,EAAO/X,IACZ,eAAmB+X,EAAO,CAC5C+R,SACAhT,QACA3W,IAAK,SAASvF,OAAOoF,MAG3B,CAsKam3C,CAAczD,EAAUjkC,QAAS6gB,EAAQ8iB,GAE3C9iB,EAAOvwB,KAAI,CAACgY,EAAO/X,IACJ,eAAmB+X,EAAO,CAC5C+R,OAAQ4pB,EAAUjkC,QAClBmxB,iBAAkB5gC,MAWmBgyC,EAAM,gBAAiBV,GAAgBjE,IAA8B,gBAAoB,WAAgB,KAAmB,gBAAoB,MAAO,CAChM7sB,IAAKszB,EACL/0B,UAAW,uBACI,gBAAoB,MAAO,CAC1CyB,IAAKqzB,EACL90B,UAAW,wBACR0yB,GAAepE,IAA8B,gBAAoB,MAAO,CAC3E7sB,IAAKwzB,EACLj1B,UAAW,qBACTwyB,GAAgBlE,IAA8B,gBAAoB,MAAO,CAC3E7sB,IAAKuzB,EACLh1B,UAAW,sBACTizB,EAAM,kBACZ,IACA,GAAOl3B,YAAc,SACrB,MAAMs8B,IAA2B,IAAA1E,aAAW,SAAUhmC,EAAO2qC,GAC3D,IACEvnC,IAAK8iC,EAAM,MAAK,SAChBhyC,EAAQ,UACRme,EAAY,GAAE,OACd+K,EAAM,KACNgb,EAAI,KACJwS,EAAI,aACJC,EAAY,iBACZ3W,KACGoS,QACS,IAAVtmC,EAAmB,CAAC,EAAIA,EAC5B,MAAM8qC,GAAa,IAAAv0B,QAAO,OACnBw0B,EAAcC,IAAmB,IAAA50B,UAAS,iBAC1C60B,EAAYC,IAAiB,IAAA90B,WAAS,GAC7C,SAAS+0B,EAAc/zC,EAAImkB,EAAIukB,GACzBvkB,IAAOuvB,EAAW/nC,SACpBioC,EAAgBlL,EAEpB,CACA2F,IAA0B,KAOxB,QANgC,IAArBvR,IACT4W,EAAW/nC,QAAQmxB,iBAAmBA,GAEpCyW,IACFA,EAAY5nC,QAAU+nC,EAAW/nC,SAE9B+nC,EAAW/nC,SAAYqa,EAA5B,CAGA,IAAIA,EAAO+E,UAQX,OAFA/E,EAAO0E,GAAG,cAAeqpB,GAElB,KACA/tB,GACLA,EAAOmF,IAAI,cAAe4oB,EAAc,EATnB,iBAAjBJ,GACFC,EAAgB,eAHpB,CAYC,IAEHvF,IAA0B,KACpBroB,GAAU0tB,EAAW/nC,UAAYqa,EAAO+E,WAC1C6oB,EAAgB5tB,EAAOkkB,gBAAgBwJ,EAAW/nC,SACpD,GACC,CAACqa,IACJ,MAAMguB,EAAY,CAChBC,SAAUN,EAAavwC,QAAQ,wBAA0B,EACzD8wC,UAAWP,EAAavwC,QAAQ,yBAA2B,EAC3D04B,OAAQ6X,EAAavwC,QAAQ,sBAAwB,EACrDy4B,OAAQ8X,EAAavwC,QAAQ,sBAAwB,GAEjD+wC,EAAiB,IACM,mBAAbr3C,EAA0BA,EAASk3C,GAAal3C,EAKhE,OAAoB,gBAAoBgyC,EAAKlkC,GAAS,CACpD8R,IAAKg3B,EACLz4B,UAAW4yB,GAAc,GAAG/2C,OAAO68C,GAAc78C,OAAOmkB,EAAY,IAAInkB,OAAOmkB,GAAa,KAC5F,0BAA2Bw4B,EAC3Bt4B,OAPa,KACb24B,GAAc,EAAK,GAOlB5E,GAAOlO,GAAqB,gBAAoByN,GAAmBuE,SAAU,CAC9Eh/C,MAAOggD,GACO,gBAAoB,MAAO,CACzC/4B,UAAW,wBACX,mBAAoC,iBAAT+lB,EAAoBA,OAAOpmC,GACrDu5C,IAAkBX,IAASK,GAA2B,gBAAoB,MAAO,CAClF54B,UAAW,6BACN+lB,GAAqB,gBAAoByN,GAAmBuE,SAAU,CAC3Eh/C,MAAOggD,GACNG,IAAkBX,IAASK,GAA2B,gBAAoB,MAAO,CAClF54B,UAAW,2BAEf,IE9XA,SAAS,GAA0B+K,EAAQ+gB,EAAgBvgB,EAAQ4tB,GAejE,OAdIpuB,EAAOQ,OAAO6e,gBAChBxxC,OAAOmG,KAAKo6C,GAAYrxC,SAAQ1G,IAC9B,IAAKmqB,EAAOnqB,KAAwB,IAAhBmqB,EAAOwf,KAAe,CACxC,IAAI7pC,EAAU,EAAgB6pB,EAAO7B,GAAI,IAAIrtB,OAAOs9C,EAAW/3C,KAAO,GACjEF,IACHA,EAAU,EAAc,MAAOi4C,EAAW/3C,IAC1CF,EAAQ8e,UAAYm5B,EAAW/3C,GAC/B2pB,EAAO7B,GAAGgY,OAAOhgC,IAEnBqqB,EAAOnqB,GAAOF,EACd4qC,EAAe1qC,GAAOF,CACxB,KAGGqqB,CACT,CChBA,SAAS6tB,GAAW3hC,GAClB,IAAI,OACFsT,EAAM,aACNsjB,EAAY,GACZ5e,EAAE,KACFgB,GACEhZ,EACJ42B,EAAa,CACX9F,WAAY,CACVC,OAAQ,KACRC,OAAQ,KACR4Q,aAAa,EACbC,cAAe,yBACfC,YAAa,uBACbC,UAAW,qBACXC,wBAAyB,gCAG7B1uB,EAAOwd,WAAa,CAClBC,OAAQ,KACRC,OAAQ,MAEV,MAAMiR,EAAoBxwB,IAAOvtB,MAAMuH,QAAQgmB,GAAMA,EAAK,CAACA,IAAK5lB,QAAOgZ,KAAOA,IAC9E,SAASq9B,EAAMzwB,GACb,IAAIjE,EACJ,OAAIiE,GAAoB,iBAAPA,GAAmB6B,EAAOiG,YACzC/L,EAAM8F,EAAO7B,GAAG9T,cAAc8T,GAC1BjE,GAAYA,GAEdiE,IACgB,iBAAPA,IAAiBjE,EAAM,IAAI7Q,SAASkB,iBAAiB4T,KAC5D6B,EAAOQ,OAAOgf,mBAAmC,iBAAPrhB,GAAmBjE,EAAIvrB,OAAS,GAA+C,IAA1CqxB,EAAO7B,GAAG5T,iBAAiB4T,GAAIxvB,SAChHurB,EAAM8F,EAAO7B,GAAG9T,cAAc8T,KAG9BA,IAAOjE,EAAYiE,EAEhBjE,EACT,CACA,SAAS20B,EAAS1wB,EAAI1D,GACpB,MAAM+F,EAASR,EAAOQ,OAAOgd,YAC7Brf,EAAKwwB,EAAkBxwB,IACpBphB,SAAQ+xC,IACLA,IACFA,EAAMjtB,UAAUpH,EAAW,MAAQ,aAAa+F,EAAO+tB,cAAcvyC,MAAM,MACrD,WAAlB8yC,EAAM3oC,UAAsB2oC,EAAMr0B,SAAWA,GAC7CuF,EAAOQ,OAAOgM,eAAiBxM,EAAO2I,SACxCmmB,EAAMjtB,UAAU7B,EAAOqgB,SAAW,MAAQ,UAAU7f,EAAOiuB,WAE/D,GAEJ,CACA,SAASjnB,IAEP,MAAM,OACJiW,EAAM,OACNC,GACE1d,EAAOwd,WACX,GAAIxd,EAAOQ,OAAO8G,KAGhB,OAFAunB,EAASnR,GAAQ,QACjBmR,EAASpR,GAAQ,GAGnBoR,EAASnR,EAAQ1d,EAAO6O,cAAgB7O,EAAOQ,OAAO1Q,QACtD++B,EAASpR,EAAQzd,EAAO8O,QAAU9O,EAAOQ,OAAO1Q,OAClD,CACA,SAASi/B,EAAYx9B,GACnBA,EAAEsI,mBACEmG,EAAO6O,aAAgB7O,EAAOQ,OAAO8G,MAAStH,EAAOQ,OAAO1Q,UAChEkQ,EAAOyU,YACP/O,EAAK,kBACP,CACA,SAASspB,EAAYz9B,GACnBA,EAAEsI,mBACEmG,EAAO8O,OAAU9O,EAAOQ,OAAO8G,MAAStH,EAAOQ,OAAO1Q,UAC1DkQ,EAAOiU,YACPvO,EAAK,kBACP,CACA,SAASyZ,IACP,MAAM3e,EAASR,EAAOQ,OAAOgd,WAK7B,GAJAxd,EAAOQ,OAAOgd,WAAa,GAA0Bxd,EAAQA,EAAO+gB,eAAevD,WAAYxd,EAAOQ,OAAOgd,WAAY,CACvHC,OAAQ,qBACRC,OAAQ,wBAEJld,EAAOid,SAAUjd,EAAOkd,OAAS,OACvC,IAAID,EAASmR,EAAMpuB,EAAOid,QACtBC,EAASkR,EAAMpuB,EAAOkd,QAC1B7vC,OAAOQ,OAAO2xB,EAAOwd,WAAY,CAC/BC,SACAC,WAEFD,EAASkR,EAAkBlR,GAC3BC,EAASiR,EAAkBjR,GAC3B,MAAMuR,EAAa,CAAC9wB,EAAI0C,KAClB1C,GACFA,EAAG9H,iBAAiB,QAAiB,SAARwK,EAAiBmuB,EAAcD,IAEzD/uB,EAAO2I,SAAWxK,GACrBA,EAAG0D,UAAU/gB,OAAO0f,EAAOiuB,UAAUzyC,MAAM,KAC7C,EAEFyhC,EAAO1gC,SAAQohB,GAAM8wB,EAAW9wB,EAAI,UACpCuf,EAAO3gC,SAAQohB,GAAM8wB,EAAW9wB,EAAI,SACtC,CACA,SAASknB,IACP,IAAI,OACF5H,EAAM,OACNC,GACE1d,EAAOwd,WACXC,EAASkR,EAAkBlR,GAC3BC,EAASiR,EAAkBjR,GAC3B,MAAMwR,EAAgB,CAAC/wB,EAAI0C,KACzB1C,EAAG7H,oBAAoB,QAAiB,SAARuK,EAAiBmuB,EAAcD,GAC/D5wB,EAAG0D,UAAUyE,UAAUtG,EAAOQ,OAAOgd,WAAW+Q,cAAcvyC,MAAM,KAAK,EAE3EyhC,EAAO1gC,SAAQohB,GAAM+wB,EAAc/wB,EAAI,UACvCuf,EAAO3gC,SAAQohB,GAAM+wB,EAAc/wB,EAAI,SACzC,CACAuG,EAAG,QAAQ,MACgC,IAArC1E,EAAOQ,OAAOgd,WAAW7U,QAE3B4Y,KAEApC,IACA3X,IACF,IAEF9C,EAAG,+BAA+B,KAChC8C,GAAQ,IAEV9C,EAAG,WAAW,KACZ2gB,GAAS,IAEX3gB,EAAG,kBAAkB,KACnB,IAAI,OACF+Y,EAAM,OACNC,GACE1d,EAAOwd,WACXC,EAASkR,EAAkBlR,GAC3BC,EAASiR,EAAkBjR,GACvB1d,EAAO2I,QACTnB,IAGF,IAAIiW,KAAWC,GAAQnlC,QAAO4lB,KAAQA,IAAIphB,SAAQohB,GAAMA,EAAG0D,UAAU/gB,IAAIkf,EAAOQ,OAAOgd,WAAWiR,YAAW,IAE/G/pB,EAAG,SAAS,CAAC1qB,EAAIuX,KACf,IAAI,OACFksB,EAAM,OACNC,GACE1d,EAAOwd,WACXC,EAASkR,EAAkBlR,GAC3BC,EAASiR,EAAkBjR,GAC3B,MAAMtG,EAAW7lB,EAAE9Z,OACnB,GAAIuoB,EAAOQ,OAAOgd,WAAW8Q,cAAgB5Q,EAAOphC,SAAS86B,KAAcqG,EAAOnhC,SAAS86B,GAAW,CACpG,GAAIpX,EAAO0nB,YAAc1nB,EAAOQ,OAAOknB,YAAc1nB,EAAOQ,OAAOknB,WAAWyH,YAAcnvB,EAAO0nB,WAAWvpB,KAAOiZ,GAAYpX,EAAO0nB,WAAWvpB,GAAG4O,SAASqK,IAAY,OAC3K,IAAIgY,EACA3R,EAAO9uC,OACTygD,EAAW3R,EAAO,GAAG5b,UAAUkL,SAAS/M,EAAOQ,OAAOgd,WAAWgR,aACxD9Q,EAAO/uC,SAChBygD,EAAW1R,EAAO,GAAG7b,UAAUkL,SAAS/M,EAAOQ,OAAOgd,WAAWgR,cAGjE9oB,GADe,IAAb0pB,EACG,iBAEA,kBAEP,IAAI3R,KAAWC,GAAQnlC,QAAO4lB,KAAQA,IAAIphB,SAAQohB,GAAMA,EAAG0D,UAAUwtB,OAAOrvB,EAAOQ,OAAOgd,WAAWgR,cACvG,KAEF,MAKMjN,EAAU,KACdvhB,EAAO7B,GAAG0D,UAAU/gB,OAAOkf,EAAOQ,OAAOgd,WAAWkR,wBAAwB1yC,MAAM,MAClFqpC,GAAS,EAEXx3C,OAAOQ,OAAO2xB,EAAOwd,WAAY,CAC/BgE,OAVa,KACbxhB,EAAO7B,GAAG0D,UAAUyE,UAAUtG,EAAOQ,OAAOgd,WAAWkR,wBAAwB1yC,MAAM,MACrFmjC,IACA3X,GAAQ,EAQR+Z,UACA/Z,SACA2X,OACAkG,WAEJ,CHqMAiI,GAAYt8B,YAAc,c,QIhY1B,SAAS,GAAkB4Q,GAIzB,YAHgB,IAAZA,IACFA,EAAU,IAEL,IAAI9wB,OAAO8wB,EAAQtpB,OAAOY,QAAQ,eAAgB,QACxDA,QAAQ,KAAM,KACjB,CCFA,SAASo2C,GAAW5iC,GAClB,IAAI,OACFsT,EAAM,aACNsjB,EAAY,GACZ5e,EAAE,KACFgB,GACEhZ,EACJ,MAAM6iC,EAAM,oBAqCZ,IAAIC,EApCJlM,EAAa,CACXoE,WAAY,CACVvpB,GAAI,KACJsxB,cAAe,OACfN,WAAW,EACXb,aAAa,EACboB,aAAc,KACdC,kBAAmB,KACnBC,eAAgB,KAChBC,aAAc,KACdC,qBAAqB,EACrBj5C,KAAM,UAENk5C,gBAAgB,EAChBC,mBAAoB,EACpBC,sBAAuBC,GAAUA,EACjCC,oBAAqBD,GAAUA,EAC/BE,YAAa,GAAGt/C,OAAOy+C,EAAK,WAC5Bc,kBAAmB,GAAGv/C,OAAOy+C,EAAK,kBAClCe,cAAe,GAAGx/C,OAAOy+C,EAAK,KAC9BgB,aAAc,GAAGz/C,OAAOy+C,EAAK,YAC7BiB,WAAY,GAAG1/C,OAAOy+C,EAAK,UAC3Bf,YAAa,GAAG19C,OAAOy+C,EAAK,WAC5BkB,qBAAsB,GAAG3/C,OAAOy+C,EAAK,qBACrCmB,yBAA0B,GAAG5/C,OAAOy+C,EAAK,yBACzCoB,eAAgB,GAAG7/C,OAAOy+C,EAAK,cAC/Bd,UAAW,GAAG39C,OAAOy+C,EAAK,SAC1BqB,gBAAiB,GAAG9/C,OAAOy+C,EAAK,eAChCsB,cAAe,GAAG//C,OAAOy+C,EAAK,aAC9BuB,wBAAyB,GAAGhgD,OAAOy+C,EAAK,gBAG5CvvB,EAAO0nB,WAAa,CAClBvpB,GAAI,KACJ4yB,QAAS,IAGX,IAAIC,EAAqB,EACzB,MAAMrC,EAAoBxwB,IAAOvtB,MAAMuH,QAAQgmB,GAAMA,EAAK,CAACA,IAAK5lB,QAAOgZ,KAAOA,IAC9E,SAAS0/B,IACP,OAAQjxB,EAAOQ,OAAOknB,WAAWvpB,KAAO6B,EAAO0nB,WAAWvpB,IAAMvtB,MAAMuH,QAAQ6nB,EAAO0nB,WAAWvpB,KAAuC,IAAhC6B,EAAO0nB,WAAWvpB,GAAGxvB,MAC9H,CACA,SAASuiD,EAAeC,EAAUn/B,GAChC,MAAM,kBACJq+B,GACErwB,EAAOQ,OAAOknB,WACbyJ,IACLA,EAAWA,EAAS,GAAGrgD,OAAoB,SAAbkhB,EAAsB,WAAa,OAAQ,sBAEvEm/B,EAAStvB,UAAU/gB,IAAI,GAAGhQ,OAAOu/C,EAAmB,KAAKv/C,OAAOkhB,KAChEm/B,EAAWA,EAAS,GAAGrgD,OAAoB,SAAbkhB,EAAsB,WAAa,OAAQ,qBAEvEm/B,EAAStvB,UAAU/gB,IAAI,GAAGhQ,OAAOu/C,EAAmB,KAAKv/C,OAAOkhB,EAAU,KAAKlhB,OAAOkhB,IAG5F,CACA,SAASo/B,EAAc7/B,GACrB,MAAM4/B,EAAW5/B,EAAE9Z,OAAOuuB,QAAQ,GAAkBhG,EAAOQ,OAAOknB,WAAW0I,cAC7E,IAAKe,EACH,OAEF5/B,EAAEsI,iBACF,MAAM3jB,EAAQ,EAAai7C,GAAYnxB,EAAOQ,OAAO0K,eACrD,GAAIlL,EAAOQ,OAAO8G,KAAM,CACtB,GAAItH,EAAOuH,YAAcrxB,EAAO,OAChC,MAAMqxB,EAAYvH,EAAOuH,UACnB8pB,EAAgBrxB,EAAOsN,oBAAoBp3B,GAC3Co7C,EAAoBtxB,EAAOsN,oBAAoBtN,EAAOuH,WACtD+M,EAAUzT,IACd,MAAM0wB,EAAqBvxB,EAAO+G,YAClC/G,EAAOsU,QAAQ,CACbtB,UAAWnS,EACX4U,iBAAkB4b,EAClBne,SAAS,IAGPqe,IADkBvxB,EAAO+G,aAE3B/G,EAAO+T,YAAYxM,EAAW,GAAG,GAAO,EAC1C,EAEF,GAAI8pB,EAAgBrxB,EAAOwG,OAAO73B,OAASqxB,EAAOqV,aAChDf,EAAQ+c,EAAgBC,EAAoB,OAAS,aAChD,GAAItxB,EAAOQ,OAAOuJ,eAAgB,CACvC,MAAMnD,EAAgD,SAAhC5G,EAAOQ,OAAOoG,cAA2B5G,EAAO6G,uBAAyB5F,KAAK6F,KAAK5H,WAAWc,EAAOQ,OAAOoG,cAAe,KAC7IyqB,EAAgBpwB,KAAK8J,MAAMnE,EAAgB,IAC7C0N,EAAQ,OAEZ,CACAtU,EAAO+T,YAAY79B,EACrB,MACE8pB,EAAOkT,QAAQh9B,EAEnB,CACA,SAASsxB,IAEP,MAAMe,EAAMvI,EAAOuI,IACb/H,EAASR,EAAOQ,OAAOknB,WAC7B,GAAIuJ,IAAwB,OAC5B,IAGItrC,EACAkrB,EAJA1S,EAAK6B,EAAO0nB,WAAWvpB,GAC3BA,EAAKwwB,EAAkBxwB,GAIvB,MAAM0K,EAAe7I,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAAU3I,EAAO0I,QAAQlC,OAAO73B,OAASqxB,EAAOwG,OAAO73B,OAC9G6iD,EAAQxxB,EAAOQ,OAAO8G,KAAOrG,KAAK6F,KAAK+B,EAAe7I,EAAOQ,OAAO0K,gBAAkBlL,EAAO8I,SAASn6B,OAY5G,GAXIqxB,EAAOQ,OAAO8G,MAChBuJ,EAAgB7Q,EAAO8Q,mBAAqB,EAC5CnrB,EAAUqa,EAAOQ,OAAO0K,eAAiB,EAAIjK,KAAK8J,MAAM/K,EAAOuH,UAAYvH,EAAOQ,OAAO0K,gBAAkBlL,EAAOuH,gBAC7E,IAArBvH,EAAOqM,WACvB1mB,EAAUqa,EAAOqM,UACjBwE,EAAgB7Q,EAAO+Q,oBAEvBF,EAAgB7Q,EAAO6Q,eAAiB,EACxClrB,EAAUqa,EAAO+G,aAAe,GAGd,YAAhBvG,EAAO3pB,MAAsBmpB,EAAO0nB,WAAWqJ,SAAW/wB,EAAO0nB,WAAWqJ,QAAQpiD,OAAS,EAAG,CAClG,MAAMoiD,EAAU/wB,EAAO0nB,WAAWqJ,QAClC,IAAIU,EACA7wC,EACA8wC,EAsBJ,GArBIlxB,EAAOuvB,iBACTP,EAAaptB,EAAiB2uB,EAAQ,GAAI/wB,EAAO4H,eAAiB,QAAU,UAAU,GACtFzJ,EAAGphB,SAAQ+xC,IACTA,EAAM9hC,MAAMgT,EAAO4H,eAAiB,QAAU,UAAY,GAAG92B,OAAO0+C,GAAchvB,EAAOwvB,mBAAqB,GAAI,KAAK,IAErHxvB,EAAOwvB,mBAAqB,QAAuBp7C,IAAlBi8B,IACnCmgB,GAAsBrrC,GAAWkrB,GAAiB,GAC9CmgB,EAAqBxwB,EAAOwvB,mBAAqB,EACnDgB,EAAqBxwB,EAAOwvB,mBAAqB,EACxCgB,EAAqB,IAC9BA,EAAqB,IAGzBS,EAAaxwB,KAAKC,IAAIvb,EAAUqrC,EAAoB,GACpDpwC,EAAY6wC,GAAcxwB,KAAKE,IAAI4vB,EAAQpiD,OAAQ6xB,EAAOwvB,oBAAsB,GAChF0B,GAAY9wC,EAAY6wC,GAAc,GAExCV,EAAQh0C,SAAQo0C,IACd,MAAMQ,EAAkB,IAAI,CAAC,GAAI,QAAS,aAAc,QAAS,aAAc,SAAS17C,KAAI27C,GAAU,GAAG9gD,OAAO0vB,EAAO6vB,mBAAmBv/C,OAAO8gD,MAAU37C,KAAI1H,GAAkB,iBAANA,GAAkBA,EAAE+N,SAAS,KAAO/N,EAAEyN,MAAM,KAAOzN,IAAGsjD,OACjOV,EAAStvB,UAAUyE,UAAUqrB,EAAgB,IAE3CxzB,EAAGxvB,OAAS,EACdoiD,EAAQh0C,SAAQ+0C,IACd,MAAMC,EAAc,EAAaD,GAC7BC,IAAgBpsC,EAClBmsC,EAAOjwB,UAAU/gB,OAAO0f,EAAO6vB,kBAAkBr0C,MAAM,MAC9CgkB,EAAOiG,WAChB6rB,EAAOhoC,aAAa,OAAQ,UAE1B0W,EAAOuvB,iBACLgC,GAAeN,GAAcM,GAAenxC,GAC9CkxC,EAAOjwB,UAAU/gB,OAAO,GAAGhQ,OAAO0vB,EAAO6vB,kBAAmB,SAASr0C,MAAM,MAEzE+1C,IAAgBN,GAClBP,EAAeY,EAAQ,QAErBC,IAAgBnxC,GAClBswC,EAAeY,EAAQ,QAE3B,QAEG,CACL,MAAMA,EAASf,EAAQprC,GASvB,GARImsC,GACFA,EAAOjwB,UAAU/gB,OAAO0f,EAAO6vB,kBAAkBr0C,MAAM,MAErDgkB,EAAOiG,WACT8qB,EAAQh0C,SAAQ,CAACo0C,EAAUY,KACzBZ,EAASrnC,aAAa,OAAQioC,IAAgBpsC,EAAU,gBAAkB,SAAS,IAGnF6a,EAAOuvB,eAAgB,CACzB,MAAMiC,EAAuBjB,EAAQU,GAC/BQ,EAAsBlB,EAAQnwC,GACpC,IAAK,IAAIpS,EAAIijD,EAAYjjD,GAAKoS,EAAWpS,GAAK,EACxCuiD,EAAQviD,IACVuiD,EAAQviD,GAAGqzB,UAAU/gB,OAAO,GAAGhQ,OAAO0vB,EAAO6vB,kBAAmB,SAASr0C,MAAM,MAGnFk1C,EAAec,EAAsB,QACrCd,EAAee,EAAqB,OACtC,CACF,CACA,GAAIzxB,EAAOuvB,eAAgB,CACzB,MAAMmC,EAAuBjxB,KAAKE,IAAI4vB,EAAQpiD,OAAQ6xB,EAAOwvB,mBAAqB,GAC5EmC,GAAiB3C,EAAa0C,EAAuB1C,GAAc,EAAIkC,EAAWlC,EAClF4C,EAAa7pB,EAAM,QAAU,OACnCwoB,EAAQh0C,SAAQ+0C,IACdA,EAAO9kC,MAAMgT,EAAO4H,eAAiBwqB,EAAa,OAAS,GAAGthD,OAAOqhD,EAAe,KAAK,GAE7F,CACF,CACAh0B,EAAGphB,SAAQ,CAAC+xC,EAAOuD,KASjB,GARoB,aAAhB7xB,EAAO3pB,OACTi4C,EAAMvkC,iBAAiB,GAAkBiW,EAAO+vB,eAAexzC,SAAQu1C,IACrEA,EAAWC,YAAc/xB,EAAOyvB,sBAAsBtqC,EAAU,EAAE,IAEpEmpC,EAAMvkC,iBAAiB,GAAkBiW,EAAOgwB,aAAazzC,SAAQy1C,IACnEA,EAAQD,YAAc/xB,EAAO2vB,oBAAoBqB,EAAM,KAGvC,gBAAhBhxB,EAAO3pB,KAAwB,CACjC,IAAI47C,EAEFA,EADEjyB,EAAOsvB,oBACc9vB,EAAO4H,eAAiB,WAAa,aAErC5H,EAAO4H,eAAiB,aAAe,WAEhE,MAAM8qB,GAAS/sC,EAAU,GAAK6rC,EAC9B,IAAImB,EAAS,EACTC,EAAS,EACgB,eAAzBH,EACFE,EAASD,EAETE,EAASF,EAEX5D,EAAMvkC,iBAAiB,GAAkBiW,EAAOiwB,uBAAuB1zC,SAAQ81C,IAC7EA,EAAW7lC,MAAM2R,UAAY,6BAA6B7tB,OAAO6hD,EAAQ,aAAa7hD,OAAO8hD,EAAQ,KACrGC,EAAW7lC,MAAMkzB,mBAAqB,GAAGpvC,OAAOkvB,EAAOQ,OAAOC,MAAO,KAAK,GAE9E,CACoB,WAAhBD,EAAO3pB,MAAqB2pB,EAAOqvB,cACrCf,EAAMpkC,UAAY8V,EAAOqvB,aAAa7vB,EAAQra,EAAU,EAAG6rC,GACxC,IAAfa,GAAkB3sB,EAAK,mBAAoBopB,KAE5B,IAAfuD,GAAkB3sB,EAAK,mBAAoBopB,GAC/CppB,EAAK,mBAAoBopB,IAEvB9uB,EAAOQ,OAAOgM,eAAiBxM,EAAO2I,SACxCmmB,EAAMjtB,UAAU7B,EAAOqgB,SAAW,MAAQ,UAAU7f,EAAOiuB,UAC7D,GAEJ,CACA,SAASn/B,IAEP,MAAMkR,EAASR,EAAOQ,OAAOknB,WAC7B,GAAIuJ,IAAwB,OAC5B,MAAMpoB,EAAe7I,EAAO0I,SAAW1I,EAAOQ,OAAOkI,QAAQC,QAAU3I,EAAO0I,QAAQlC,OAAO73B,OAASqxB,EAAOwG,OAAO73B,OACpH,IAAIwvB,EAAK6B,EAAO0nB,WAAWvpB,GAC3BA,EAAKwwB,EAAkBxwB,GACvB,IAAI20B,EAAiB,GACrB,GAAoB,YAAhBtyB,EAAO3pB,KAAoB,CAC7B,IAAIk8C,EAAkB/yB,EAAOQ,OAAO8G,KAAOrG,KAAK6F,KAAK+B,EAAe7I,EAAOQ,OAAO0K,gBAAkBlL,EAAO8I,SAASn6B,OAChHqxB,EAAOQ,OAAOuZ,UAAY/Z,EAAOQ,OAAOuZ,SAASpR,SAAWoqB,EAAkBlqB,IAChFkqB,EAAkBlqB,GAEpB,IAAK,IAAIr6B,EAAI,EAAGA,EAAIukD,EAAiBvkD,GAAK,EACpCgyB,EAAOkvB,aACToD,GAAkBtyB,EAAOkvB,aAAa3gD,KAAKixB,EAAQxxB,EAAGgyB,EAAO4vB,aAG7D0C,GAAkB,IAAIhiD,OAAO0vB,EAAOivB,cAAe,KAAK3+C,OAAOkvB,EAAOiG,UAAY,gBAAkB,GAAI,YAAan1B,OAAO0vB,EAAO4vB,YAAa,QAASt/C,OAAO0vB,EAAOivB,cAAe,IAG5L,CACoB,aAAhBjvB,EAAO3pB,OAEPi8C,EADEtyB,EAAOovB,eACQpvB,EAAOovB,eAAe7gD,KAAKixB,EAAQQ,EAAO+vB,aAAc/vB,EAAOgwB,YAE/D,gBAAiB1/C,OAAO0vB,EAAO+vB,aAAc,aAAgB,MAAQ,gBAAiBz/C,OAAO0vB,EAAOgwB,WAAY,cAGjH,gBAAhBhwB,EAAO3pB,OAEPi8C,EADEtyB,EAAOmvB,kBACQnvB,EAAOmvB,kBAAkB5gD,KAAKixB,EAAQQ,EAAOiwB,sBAE7C,gBAAiB3/C,OAAO0vB,EAAOiwB,qBAAsB,cAG1EzwB,EAAO0nB,WAAWqJ,QAAU,GAC5B5yB,EAAGphB,SAAQ+xC,IACW,WAAhBtuB,EAAO3pB,OACTi4C,EAAMpkC,UAAYooC,GAAkB,IAElB,YAAhBtyB,EAAO3pB,MACTmpB,EAAO0nB,WAAWqJ,QAAQ52C,QAAQ20C,EAAMvkC,iBAAiB,GAAkBiW,EAAO4vB,cACpF,IAEkB,WAAhB5vB,EAAO3pB,MACT6uB,EAAK,mBAAoBvH,EAAG,GAEhC,CACA,SAASghB,IACPnf,EAAOQ,OAAOknB,WAAa,GAA0B1nB,EAAQA,EAAO+gB,eAAe2G,WAAY1nB,EAAOQ,OAAOknB,WAAY,CACvHvpB,GAAI,sBAEN,MAAMqC,EAASR,EAAOQ,OAAOknB,WAC7B,IAAKlnB,EAAOrC,GAAI,OAChB,IAAIA,EACqB,iBAAdqC,EAAOrC,IAAmB6B,EAAOiG,YAC1C9H,EAAK6B,EAAO7B,GAAG9T,cAAcmW,EAAOrC,KAEjCA,GAA2B,iBAAdqC,EAAOrC,KACvBA,EAAK,IAAI9U,SAASkB,iBAAiBiW,EAAOrC,MAEvCA,IACHA,EAAKqC,EAAOrC,IAETA,GAAoB,IAAdA,EAAGxvB,SACVqxB,EAAOQ,OAAOgf,mBAA0C,iBAAdhf,EAAOrC,IAAmBvtB,MAAMuH,QAAQgmB,IAAOA,EAAGxvB,OAAS,IACvGwvB,EAAK,IAAI6B,EAAO7B,GAAG5T,iBAAiBiW,EAAOrC,KAEvCA,EAAGxvB,OAAS,IACdwvB,EAAKA,EAAG5lB,QAAOu2C,GACT,EAAeA,EAAO,WAAW,KAAO9uB,EAAO7B,KAElD,KAGHvtB,MAAMuH,QAAQgmB,IAAqB,IAAdA,EAAGxvB,SAAcwvB,EAAKA,EAAG,IAClDtwB,OAAOQ,OAAO2xB,EAAO0nB,WAAY,CAC/BvpB,OAEFA,EAAKwwB,EAAkBxwB,GACvBA,EAAGphB,SAAQ+xC,IACW,YAAhBtuB,EAAO3pB,MAAsB2pB,EAAO2uB,WACtCL,EAAMjtB,UAAU/gB,QAAQ0f,EAAOmwB,gBAAkB,IAAI30C,MAAM,MAE7D8yC,EAAMjtB,UAAU/gB,IAAI0f,EAAO8vB,cAAgB9vB,EAAO3pB,MAClDi4C,EAAMjtB,UAAU/gB,IAAIkf,EAAO4H,eAAiBpH,EAAOowB,gBAAkBpwB,EAAOqwB,eACxD,YAAhBrwB,EAAO3pB,MAAsB2pB,EAAOuvB,iBACtCjB,EAAMjtB,UAAU/gB,IAAI,GAAGhQ,OAAO0vB,EAAO8vB,eAAex/C,OAAO0vB,EAAO3pB,KAAM,aACxEm6C,EAAqB,EACjBxwB,EAAOwvB,mBAAqB,IAC9BxvB,EAAOwvB,mBAAqB,IAGZ,gBAAhBxvB,EAAO3pB,MAA0B2pB,EAAOsvB,qBAC1ChB,EAAMjtB,UAAU/gB,IAAI0f,EAAOkwB,0BAEzBlwB,EAAO2uB,WACTL,EAAMz4B,iBAAiB,QAAS+6B,GAE7BpxB,EAAO2I,SACVmmB,EAAMjtB,UAAU/gB,IAAI0f,EAAOiuB,UAC7B,IAEJ,CACA,SAASpJ,IACP,MAAM7kB,EAASR,EAAOQ,OAAOknB,WAC7B,GAAIuJ,IAAwB,OAC5B,IAAI9yB,EAAK6B,EAAO0nB,WAAWvpB,GACvBA,IACFA,EAAKwwB,EAAkBxwB,GACvBA,EAAGphB,SAAQ+xC,IACTA,EAAMjtB,UAAUyE,OAAO9F,EAAOguB,aAC9BM,EAAMjtB,UAAUyE,OAAO9F,EAAO8vB,cAAgB9vB,EAAO3pB,MACrDi4C,EAAMjtB,UAAUyE,OAAOtG,EAAO4H,eAAiBpH,EAAOowB,gBAAkBpwB,EAAOqwB,eAC3ErwB,EAAO2uB,YACTL,EAAMjtB,UAAUyE,WAAW9F,EAAOmwB,gBAAkB,IAAI30C,MAAM,MAC9D8yC,EAAMx4B,oBAAoB,QAAS86B,GACrC,KAGApxB,EAAO0nB,WAAWqJ,SAAS/wB,EAAO0nB,WAAWqJ,QAAQh0C,SAAQ+xC,GAASA,EAAMjtB,UAAUyE,UAAU9F,EAAO6vB,kBAAkBr0C,MAAM,OACrI,CACA0oB,EAAG,mBAAmB,KACpB,IAAK1E,EAAO0nB,aAAe1nB,EAAO0nB,WAAWvpB,GAAI,OACjD,MAAMqC,EAASR,EAAOQ,OAAOknB,WAC7B,IAAI,GACFvpB,GACE6B,EAAO0nB,WACXvpB,EAAKwwB,EAAkBxwB,GACvBA,EAAGphB,SAAQ+xC,IACTA,EAAMjtB,UAAUyE,OAAO9F,EAAOowB,gBAAiBpwB,EAAOqwB,eACtD/B,EAAMjtB,UAAU/gB,IAAIkf,EAAO4H,eAAiBpH,EAAOowB,gBAAkBpwB,EAAOqwB,cAAc,GAC1F,IAEJnsB,EAAG,QAAQ,MACgC,IAArC1E,EAAOQ,OAAOknB,WAAW/e,QAE3B4Y,KAEApC,IACA7vB,IACAkY,IACF,IAEF9C,EAAG,qBAAqB,UACU,IAArB1E,EAAOqM,WAChB7E,GACF,IAEF9C,EAAG,mBAAmB,KACpB8C,GAAQ,IAEV9C,EAAG,wBAAwB,KACzBpV,IACAkY,GAAQ,IAEV9C,EAAG,WAAW,KACZ2gB,GAAS,IAEX3gB,EAAG,kBAAkB,KACnB,IAAI,GACFvG,GACE6B,EAAO0nB,WACPvpB,IACFA,EAAKwwB,EAAkBxwB,GACvBA,EAAGphB,SAAQ+xC,GAASA,EAAMjtB,UAAU7B,EAAO2I,QAAU,SAAW,OAAO3I,EAAOQ,OAAOknB,WAAW+G,aAClG,IAEF/pB,EAAG,eAAe,KAChB8C,GAAQ,IAEV9C,EAAG,SAAS,CAAC1qB,EAAIuX,KACf,MAAM6lB,EAAW7lB,EAAE9Z,OACb0mB,EAAKwwB,EAAkB3uB,EAAO0nB,WAAWvpB,IAC/C,GAAI6B,EAAOQ,OAAOknB,WAAWvpB,IAAM6B,EAAOQ,OAAOknB,WAAW4G,aAAenwB,GAAMA,EAAGxvB,OAAS,IAAMyoC,EAASvV,UAAUkL,SAAS/M,EAAOQ,OAAOknB,WAAW0I,aAAc,CACpK,GAAIpwB,EAAOwd,aAAexd,EAAOwd,WAAWC,QAAUrG,IAAapX,EAAOwd,WAAWC,QAAUzd,EAAOwd,WAAWE,QAAUtG,IAAapX,EAAOwd,WAAWE,QAAS,OACnK,MAAM0R,EAAWjxB,EAAG,GAAG0D,UAAUkL,SAAS/M,EAAOQ,OAAOknB,WAAW8G,aAEjE9oB,GADe,IAAb0pB,EACG,iBAEA,kBAEPjxB,EAAGphB,SAAQ+xC,GAASA,EAAMjtB,UAAUwtB,OAAOrvB,EAAOQ,OAAOknB,WAAW8G,cACtE,KAEF,MAaMjN,EAAU,KACdvhB,EAAO7B,GAAG0D,UAAU/gB,IAAIkf,EAAOQ,OAAOknB,WAAWoJ,yBACjD,IAAI,GACF3yB,GACE6B,EAAO0nB,WACPvpB,IACFA,EAAKwwB,EAAkBxwB,GACvBA,EAAGphB,SAAQ+xC,GAASA,EAAMjtB,UAAU/gB,IAAIkf,EAAOQ,OAAOknB,WAAWoJ,4BAEnEzL,GAAS,EAEXx3C,OAAOQ,OAAO2xB,EAAO0nB,WAAY,CAC/BlG,OAzBa,KACbxhB,EAAO7B,GAAG0D,UAAUyE,OAAOtG,EAAOQ,OAAOknB,WAAWoJ,yBACpD,IAAI,GACF3yB,GACE6B,EAAO0nB,WACPvpB,IACFA,EAAKwwB,EAAkBxwB,GACvBA,EAAGphB,SAAQ+xC,GAASA,EAAMjtB,UAAUyE,OAAOtG,EAAOQ,OAAOknB,WAAWoJ,4BAEtE3R,IACA7vB,IACAkY,GAAQ,EAeR+Z,UACAjyB,SACAkY,SACA2X,OACAkG,WAEJ,CC/cO,I,UCkCP,OA1BiB2N,EAAGl8C,cAEhB5I,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAK+mB,UAAU,sBACb/mB,EAAAA,cAACurB,GAAAA,EAAI,CAAC/V,KAAK,eAAegW,MAAM,aAElCxrB,EAAAA,cAAC+0C,GAAM,CACLrc,cAAe,EACfwc,QAAS,CAACiL,GAAYiB,IACtB5H,WAAY,CAAEyH,WAAW,GACzB3R,WAAY,CACVC,OAAQ,sBACRC,OAAQ,uBAEVhO,YAAU,EACVza,UDvBc,kCCyBbne,GAEH5I,EAAAA,cAAA,OAAK+mB,UAAU,sBACb/mB,EAAAA,cAACurB,GAAAA,EAAI,CAAC/V,KAAK,gBAAgBgW,MAAM,c,WCdzC,MAAMu5B,GAAUA,EACdC,aACAC,sBACAC,aACAC,qBACAl3C,QACAm3C,qBACK,IAADC,EACJ,MAAMC,EAAcA,CAACN,EAAYE,IAC/BllD,EAAAA,cAAC4vB,EAAAA,EAAK,CACJu1B,mBAAoBA,EACpB5+B,MAAOy+B,aAAU,EAAVA,EAAYz+B,MACnBQ,WAAWmF,EAAAA,EAAAA,Gb1BY,sCa4BrBg5B,IACGA,EAAWl4B,aACTk4B,EAAWj4B,aAAei4B,EAAWj4B,YAAYA,cACjDi4B,Ib5Ba,sCaiClBK,EAAcA,IAClBvlD,EAAAA,cAACwlD,EAAAA,EAAK,CACJC,aAAW,EACXC,MAAOV,EACPpV,UAAQ,EACR+V,UAAU,EACVvsB,MAAI,EACJwsB,OAAK,EACL7+B,Ub3CuB,wCa+CrB8+B,EAAgBA,CAACb,EAAYC,EAAqBC,KAAgB,IAADY,EAAAC,EAAAC,EACrE,OACEhmD,EAAAA,cAAAA,EAAAA,SAAA,KACGilD,EACCjlD,EAAAA,cAACotB,EAAAA,EAAI,CACHhgB,KAAM63C,EACNl+B,WAAWmF,EAAAA,EAAAA,GACTqB,EAC+B,qBAA/By3B,SAAoB,QAAVc,EAAVd,EAAY1gB,gBAAQ,IAAAwhB,OAAV,EAAVA,EAAsBn9C,OACpB4kB,IAGHy3B,EAAWz+B,MACR++B,EAAYN,EAAYE,GACxBK,KAGNvlD,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTqB,EAC+B,qBAA/By3B,SAAoB,QAAVe,EAAVf,EAAY1gB,gBAAQ,IAAAyhB,OAAV,EAAVA,EAAsBp9C,OACpB4kB,IAGHy3B,EAAWz+B,MACR++B,EAAYN,EAAYE,GACxBK,KAGPL,GACCllD,EAAAA,cAACimD,GAAAA,EAAS,CAACl/B,UAAWwG,GACpBvtB,EAAAA,cAAC2sB,EAAAA,EAAU,CACTC,SAAUs4B,aAAU,EAAVA,EAAYt4B,SACtBxjB,KAAM87C,aAAU,EAAVA,EAAY97C,KAClByjB,IAAKq4B,aAAU,EAAVA,EAAYr4B,IACjBC,KAAMo4B,aAAU,EAAVA,EAAYp4B,KAClBhJ,SAAUohC,aAAU,EAAVA,EAAYphC,SACtBiJ,MAAOm4B,aAAU,EAAVA,EAAYn4B,MACnBC,YAAak4B,aAAU,EAAVA,EAAYl4B,YACzBC,aACwB,QAAtB+4B,EAAAd,EAAWj4B,mBAAW,IAAA+4B,OAAA,EAAtBA,EAAwB/4B,cAAei4B,EAAWj4B,eAKzD,EAIP,OAAOhf,aAAK,EAALA,EAAOxN,QAAS,EACrBT,EAAAA,cAAA,OAAK+mB,UAAWwG,GACdvtB,EAAAA,cAAC8kD,GAAQ,KACN72C,EAAMlG,KAAI,EAAGi9C,aAAYC,uBAAuB93B,IAE7CntB,EAAAA,cAACo/C,GAAW,CAACj3C,IAAM,SAAQglB,KACxB04B,EAAcb,EAAYC,OAKlCG,GACCplD,EAAAA,cAACimD,GAAAA,EAAS,CAACl/B,UAAWwG,GACpBvtB,EAAAA,cAAC2sB,EAAAA,EAAU,CACTC,SAAUw4B,aAAc,EAAdA,EAAgBx4B,SAC1BxjB,KAAMg8C,aAAc,EAAdA,EAAgBh8C,KACtByjB,IAAKu4B,aAAc,EAAdA,EAAgBv4B,IACrBC,KAAMs4B,aAAc,EAAdA,EAAgBt4B,KACtBhJ,SAAUshC,aAAc,EAAdA,EAAgBthC,SAC1BiJ,MAAOq4B,aAAc,EAAdA,EAAgBr4B,MACvBC,YAAao4B,aAAc,EAAdA,EAAgBp4B,YAC7BC,aAC4B,QAA1Bo4B,EAAAD,EAAen4B,mBAAW,IAAAo4B,OAAA,EAA1BA,EAA4Bp4B,cAC5Bm4B,EAAen4B,gBAOzBjtB,EAAAA,cAAA,OAAK+mB,UAAWwG,GACbs4B,EAAcb,EAAYC,EAAqBC,GAEnD,EAGHH,GAAQxjC,UAAY,CAClByjC,WAAYv4B,IAAAA,MAASy5B,EAAAA,GAAgBC,WACrClB,oBAAqBx4B,IAAAA,MAASe,EAAAA,GAC9B03B,WAAYz4B,IAAAA,MAAS25B,EAAAA,GACrBhB,eAAgB34B,IAAAA,MAAS25B,EAAAA,GACzBjB,mBAAoB14B,IAAAA,KACpBxe,MAAOwe,IAAAA,OAGTs4B,GAAQrjC,aAAe,CACrBujC,oBAAqB,KACrBC,WAAY,CACVl4B,aAAa,EACbC,YAAa,IAEfk4B,oBAAoB,EACpBl3C,MAAO,IAGT,S,8GCtJA,MAAMo4C,EAAcA,EAAGC,OAAMv/B,YAAWw/B,gBACjCD,EAKHtmD,EAAAA,cAAA,OACEwmD,QAAQ,kBACRz/B,UAAWA,EACX/I,wBAAyB,CACvBC,OAAS,0TAQLsoC,GAAc,uVAKdA,GAAc,oqDAGdA,GAAc,uDACsBD,wBAzBrC,KAgCXD,EAAY9kC,UAAY,CACtB+kC,KAAM75B,IAAAA,OAAAA,WACN1F,UAAW0F,IAAAA,OACX85B,WAAY95B,IAAAA,MAGd45B,EAAY3kC,aAAe,CACzBqF,UAAW,IAGb,QC5CA,MAAM0/B,EAAYA,EAAGH,OAAMv/B,YAAWw/B,gBAC/BD,EAKHtmD,EAAAA,cAAA,OACEwmD,QAAQ,oBACRz/B,UAAWA,EACX/I,wBAAyB,CACvBC,OAAS,wXASHsoC,GAAc,maAKdA,GAAc,owDAGdA,GAAc,0DACyBD,wCA1B1C,KAkCXG,EAAUllC,UAAY,CACpB+kC,KAAM75B,IAAAA,OAAAA,WACN1F,UAAW0F,IAAAA,OACX85B,WAAY95B,IAAAA,MAGdg6B,EAAU/kC,aAAe,CACvBqF,UAAW,IAGb,QC9CA,MAAM2/B,EAAeA,EAAGJ,OAAMv/B,YAAWw/B,gBAClCD,EAKHtmD,EAAAA,cAAA,OACEsB,EAAE,MACF+lB,EAAE,MACFm/B,QAAQ,mBACRz/B,UAAWA,EACX/I,wBAAyB,CACvBC,OAAS,y2BAeFsoC,GAAc,0/BAedA,GAAc,myGAkCbA,GAAc,qDACoBD,wCA3EvC,KAmFXI,EAAanlC,UAAY,CACvB+kC,KAAM75B,IAAAA,OAAAA,WACN1F,UAAW0F,IAAAA,OACX85B,WAAY95B,IAAAA,MAGdi6B,EAAahlC,aAAe,CAC1BqF,UAAW,IAGb,QC/FA,MAAM4/B,EAAcA,EAAGL,OAAMv/B,YAAWw/B,gBACjCD,EAKEA,GAAQ,KACbtmD,EAAAA,cAAA,OACEwmD,QAAQ,oBACRz/B,UAAWA,EACX/I,wBAAyB,CACvBC,OAAS,+UAQLsoC,GAAc,oiEAuBXA,GAAc,87FA4BjBA,GAAc,oDACmBD,wCAMzCtmD,EAAAA,cAAA,OACEwmD,QAAQ,kBACRz/B,UAAWA,EACX/I,wBAAyB,CACvBC,OAAS,4SAQLsoC,GAAc,6XAKdA,GAAc,q0EAGdA,GAAc,0DACyBD,wBAhGxC,KAuGXK,EAAYplC,UAAY,CACtB+kC,KAAM75B,IAAAA,OAAAA,WACN1F,UAAW0F,IAAAA,OACX85B,WAAY95B,IAAAA,MAGdk6B,EAAYjlC,aAAe,CACzBqF,UAAW,IAGb,QCnHA,MAAM6/B,EAAmBA,EAAGN,OAAMv/B,YAAWw/B,gBACtCD,EAKHtmD,EAAAA,cAAA,OACEsB,EAAE,MACF+lB,EAAE,MACFm/B,QAAQ,oBACRz/B,UAAWA,EACX/I,wBAAyB,CACvBC,OAAS,wkEAuBkEqoC,+yEAjCxE,KA2DXM,EAAiBrlC,UAAY,CAC3B+kC,KAAM75B,IAAAA,OAAAA,WACN1F,UAAW0F,IAAAA,OACX85B,WAAY95B,IAAAA,MAGdm6B,EAAiBllC,aAAe,CAC9BqF,UAAW,IAGb,QCvEO8/B,EAAiB,SAAAtwC,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,KAAAkzC,KAAA,OAAA4T,SAAA,WAAA9mD,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,kBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,UAAA7uB,EAAA,kBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,4HAAjBwiC,EAAiBnlC,aAAA,CAAAqF,UAAA,8BAAAggC,MAAA,6BAAAP,QAAA,iBACjBQ,EAAa,SAAAzwC,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,KAAAkzC,KAAA,OAAA4T,SAAA,WAAA9mD,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,kBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,UAAA7uB,EAAA,kBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,4HAAb2iC,EAAatlC,aAAA,CAAAqlC,MAAA,6BAAAP,QAAA,iBACbS,EAAU,SAAA1wC,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,mBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,UAAA7uB,EAAA,4BAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,2FAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,UAAA7uB,EAAA,6BAAArkB,EAAAA,cAAA,KAAAkzC,KAAA,QAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,o9CAAArkB,EAAAA,cAAA,KAAAkzC,KAAA,QAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,ovBAAArkB,EAAAA,cAAA,KAAAkzC,KAAA,QAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,6xBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,4BAAV4iC,EAAUvlC,aAAA,CAAAqlC,MAAA,6BAAAP,QAAA,aAAAU,SAAA,gBACVC,EAAqB,SAAA5wC,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,wBAAArkB,EAAAA,cAAA,QAAAqkB,EAAA,kUAAA6uB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,umBAAA6uB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,gmBAAA6uB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,i0BAAA6uB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,0SAAA6uB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,mNAAA6uB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,4pDAAA6uB,KAAA,SAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,sUAAA6uB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,09CAAA6uB,KAAA,SAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,6RAAA6uB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,unFAAA6uB,KAAA,WAArBiU,EAAqBzlC,aAAA,CAAAwxB,KAAA,OAAA6T,MAAA,6BAAAP,QAAA,mBAQ5B,MAAMY,EAAaA,EAAG5xC,OAAM8wC,OAAMv/B,YAAWw/B,iBAC3C,IAAK/wC,EACH,OAAO,KAGT,MAOM6xC,EAPe,CACnBL,gBACAH,oBACAI,aACAE,yBAG+B3xC,GAEjC,GAAI6xC,EACF,OACErnD,EAAAA,cAACqnD,EAAW,CACVtgC,WAAWmF,EAAAA,EAAAA,GACTnF,GACC,CAAC,aAAc,yBAAyB3Y,SAASoH,IChCnC,uCDsCvB,MAAM8xC,EAAgB,CACpBC,gBACEvnD,EAAAA,cAACqmD,EAAW,CAACC,KAAMA,EAAMv/B,UAAWA,EAAWw/B,WAAYA,IAE7DiB,iBACExnD,EAAAA,cAACymD,EAAS,CAACH,KAAMA,EAAMv/B,UAAWA,EAAWw/B,WAAYA,IAE3DkB,wBACEznD,EAAAA,cAAC0mD,EAAY,CAACJ,KAAMA,EAAMv/B,UAAWA,EAAWw/B,WAAYA,IAE9DmB,kBACE1nD,EAAAA,cAAC2mD,EAAW,CAACL,KAAMA,EAAMv/B,UAAWA,EAAWw/B,WAAYA,IAE7DoB,iBAAkB3nD,EAAAA,cAAC4mD,EAAgB,CAACN,KAAMA,EAAMv/B,UAAWA,KAG7D,OAAIugC,EAAc9xC,GAAc8xC,EAAc9xC,GAEvC,IAAI,EAGb4xC,EAAW7lC,UAAY,CACrB/L,KAAMiX,IAAAA,OAAAA,WACN65B,KAAM75B,IAAAA,OACN1F,UAAW0F,IAAAA,OACX85B,WAAY95B,IAAAA,MAGd26B,EAAW1lC,aAAe,CACxBlM,KAAM,wBACNuR,UAAW,GACXu/B,MAAM,IAAIh0C,MAAOs1C,cACjBrB,YAAY,GAGd,O,8WEzEW,EAAS,+BACT,EAAW,iCACXsB,EAAkB,wCAClBC,EAAa,mCACbC,EAAY,kCACZC,EAAW,iCACX,EAAc,oC,UCAzB,MAAMC,EAASA,EACb7+C,OACAT,OACAu/C,cACAnhC,YACAkpB,UACAkY,mBACAC,SACA77B,cAEAvsB,EAAAA,cAAA,UACEiwC,QAASA,EACTlpB,WAAWmF,EAAAA,EAAAA,GACTqB,EACAA,EAAO5kB,GACPu/C,GAAe36B,EACfhB,GAAYgB,EACZxG,GAEFtd,GAAI2+C,EACJ77B,SAAUA,GAEVvsB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAM,SAAUw/C,kBAAgB,EAACphC,UAAWwG,GACzD46B,EAAmB/+C,GAAOi/C,EAAAA,EAAAA,IAAsBj/C,KAKvD6+C,EAAO1mC,UAAY,CACjBnY,KAAMqjB,IAAAA,OAAAA,WACNwjB,QAASxjB,IAAAA,KAAAA,WACT9jB,KAAM8jB,IAAAA,MAAS,CAAC,UAAW,YAAa,WAAY,eAAe05B,WACnEp/B,UAAW0F,IAAAA,OACXy7B,YAAaz7B,IAAAA,KACb07B,iBAAkB17B,IAAAA,KAClB27B,OAAQ37B,IAAAA,OACR27B,OAAQ37B,IAAAA,MAGVw7B,EAAOvmC,aAAe,CACpBqF,UAAW,GACXmhC,aAAa,EACbE,OAAQ,GACR77B,UAAU,GAGZ,O,4IC7CA,MAAM+7B,EAAWA,EACf9yC,OACA+yC,eACAxhC,YACAyhC,WACA1gD,UACA2gD,mBAEA,MAAMt9B,GAAYC,EAAAA,EAAAA,YAAWC,EAAAA,GAC7B,OACErrB,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTnF,ECnBc,mCDqBd0hC,GCnBkB,0CDsBlBA,GACAzoD,EAAAA,cAAA,SAAO0oD,QAASlzC,GACdxV,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,UAClB8iB,EAAAA,EAAAA,IAAQ,qBAAsBN,KAIrCnrB,EAAAA,cAAA,UACEyJ,GAAI+L,EACJA,KAAMA,EACNuR,UCjCY,iCDkCZwhC,aAAcA,EACdl8B,SAAUm8B,GAET1gD,EAAQC,KAAI,CAAC+G,EAAM9G,IAClBhI,EAAAA,cAAA,UAAQmI,IAAKH,EAAOlI,MAAOgP,EAAKhP,MAAOysB,SAAUzd,EAAKyd,UACnDzd,EAAKmrB,UAIR,EAIVquB,EAAS/mC,UAAY,CACnB/L,KAAMiX,IAAAA,OACN87B,aAAc97B,IAAAA,OACd1F,UAAW0F,IAAAA,OACX+7B,SAAU/7B,IAAAA,KACV3kB,QAAS2kB,IAAAA,QACPA,IAAAA,MAAS,CACPwN,MAAOxN,IAAAA,OACP3sB,MAAO2sB,IAAAA,UAGXg8B,aAAch8B,IAAAA,MAEhB67B,EAAS5mC,aAAe,CACtBqF,UAAW,GACXwhC,aAAc,GACdzgD,QAAS,IAGX,O,yJE9DW6gD,EAAY,kCACZ,EAAW,iCAEXC,EAAY,kCAIZ,EAAQ,8B,oBCAnB,MAAMC,EAAcA,EAClBC,iBACA18B,cACAV,WACAq9B,UACAhiC,YACApe,OACAqgD,YACAC,kBACAC,8BACAC,YAEA,MAAMC,GAAWn+B,EAAAA,EAAAA,UACXE,GAAYC,EAAAA,EAAAA,YAAWC,EAAAA,IACtB00B,EAAUsJ,IAAev+B,EAAAA,EAAAA,WAAS,IAClCw+B,EAAgBC,IAAqBz+B,EAAAA,EAAAA,UAAS,KAC9C0+B,EAAYC,IAAiB3+B,EAAAA,EAAAA,UAAS,IACvC4+B,EC5BO,SAAqB5pD,EAAOkwB,GACzC,MAAO25B,EAAgBC,IAAqB9+B,EAAAA,EAAAA,UAAShrB,GAerD,OAbAu6C,EAAAA,EAAAA,YACE,KACE,MAAM3jB,EAAU7d,YAAW,KACzB+wC,EAAkB9pD,EAAM,GACvBkwB,GAEH,MAAO,KACLjX,aAAa2d,EAAQ,CACtB,GAEH,CAAC52B,EAAOkwB,IAGH25B,CACT,CDW8BE,CAAYL,EAAY,KA0B9CM,EAAoBC,UACxB,MAAM3Y,OAzBO2Y,WACb,IAAIC,QAAgBC,EAAAA,EAAAA,MAEpB,OAAQthD,GACN,IAAK,YACH,OAAOqhD,EAAUE,oBACnB,IAAK,SAEL,IAAK,MAKL,IAAK,UAEL,IAAK,WAIL,QACE,OAAOF,EAAUE,kBAVnB,IAAK,OACH,OAAOF,EAAUE,kBAMnB,IAAK,SACH,OAAOF,EAAUE,aAEuC,EAK1CC,GAClB,OAAOv+B,MAAO,GAAEwlB,KAAOoY,KAAcn2C,MAAM2Y,GAAQA,EAAIo+B,QAAO,GAGhE/P,EAAAA,EAAAA,YAAU,MACJmP,aAAU,EAAVA,EAAY/oD,SAAU,GAAKipD,EAC7BI,EAAkBJ,EAAoBl/C,eAAe6I,MAAM2Y,IACzDu9B,EAAkBv9B,EAAI,IAGxBu9B,EAAkB,GACpB,GACC,CAACG,KAEJrP,EAAAA,EAAAA,YAAU,KACRoP,EAAcX,EAAe,GAC5B,CAACA,IAEJ,MAeMuB,EAAUjhD,IACdigD,GAAY,GACZ39B,EAAU,GAAEtiB,EAAK4B,QAAQ,0BAA2B,MAAM,EAUtDs/C,EAAmBjnC,IACvBknC,eAAeC,OAAO,EAGlBC,EAAyBA,CAACrhD,EAAMshD,KACpC,MAAM9hC,EAAK,IAAIpW,OAAOm4C,mBAAmBD,GAAO,MAChD,OAAOthD,EAAK4B,QAAQ4d,GAAKlb,GAAW,MAAKA,SAAY,EAUvD,OACE1N,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GDjHC,+BCmHV6zB,GAAYxyB,EACZxG,IAGF/mB,EAAAA,cAAA,OAAK+mB,UDrHY,qCCsHf/mB,EAAAA,cAAA,SACE2I,KAAK,OACL6M,KAAK,eACL4W,YAAaA,EAAY7hB,cACzBwc,WAAWmF,EAAAA,EAAAA,GDxHE,oCCwH0Bi9B,GAAS57B,GAChDlB,SA/CMhJ,IACdomC,EAAcpmC,EAAE9Z,OAAOzJ,MAAM,EA+CrB8qD,QAASA,IAAMvB,GAAY,GAC3BwB,WAxCexnC,IACR,UAAXA,EAAEynC,OACJT,EAAOb,GACPJ,EAAS3xC,QAAQuW,OACnB,EAqCQluB,MAAO0pD,EACPuB,aAAa,MACbviC,IAAK4gC,EACLJ,UAAWA,EACX,YAAU,iBAEXQ,GACCxpD,EAAAA,cAAA,UACE2I,KAAK,SACLsnC,QAhEO+a,KACjBvB,EAAc,IACdL,EAAS3xC,QAAQwzC,OAAO,EA+DdlkC,UD7IQ,iCC8IR,YAAU,oBAEV/mB,EAAAA,cAACurB,EAAAA,EAAI,CACH/V,KAAK,YACL1C,KAAK,KACLiU,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAkB47B,GAAS57B,OAIlDwyB,IAAayJ,IACbxpD,EAAAA,cAAA,UACE2I,KAAK,SACLoe,UAAWwG,EACX0iB,QAASA,IAAMoa,EAAOb,GACtB,YAAU,qBAEVxpD,EAAAA,cAACurB,EAAAA,EAAI,CACH/V,KAAK,SACLuR,WAAWmF,EAAAA,EAAAA,GD1JH,mCC0J8Bi9B,GAAS57B,OAInDwyB,GAAYyJ,GACZxpD,EAAAA,cAAA,UACE2I,KAAK,SACLoe,UAAWwG,EACX0iB,QAlGEib,KACZ7B,GAAY,GACZI,EAAc,IACdV,GAAS,EAgGC,YAAU,oBAEV/oD,EAAAA,cAACurB,EAAAA,EAAI,CACH/V,KAAK,QACLuR,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAkB47B,GAAS57B,OAMrD+7B,GAAkBA,EAAe7oD,OAAS,GACzCT,EAAAA,cAAA,OAAK+mB,UDxLa,wCCyLhB/mB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,OACHne,KAAK,WACLoe,UD1LmB,8CC4LlB0E,EAAAA,EAAAA,IAAQ,kBAAmBN,IAE7Bm+B,EAAevhD,KAAI,CAAC+G,EAAM9G,IACzBhI,EAAAA,cAACotB,EAAAA,EAAI,CACHhgB,KAAM,CAAE+9C,WAAa,GAAEr8C,EAAKs8C,UAAU5B,KACtC6B,eAAe,EACfpb,QAASqa,GAETtqD,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,MACHne,KAAK,KACLoe,UDxMiB,8CCyMjB5e,IAAKH,EACLgW,wBAAyB,CACvBC,OAAQwsC,EAAuB37C,EAAKuL,MAAOmvC,WAQzDxpD,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GDlNG,iCCoNZ6zB,IAAamJ,GAA+B37B,GAE9C0iB,QA3GsBqb,KAC1BjC,GAAY,GACRJ,GACFA,GACF,IAyGG,EAIPJ,EAAYtnC,UAAY,CACtBioC,WAAY/8B,IAAAA,OACZL,YAAaK,IAAAA,OACbs8B,QAASt8B,IAAAA,KAAAA,WACTf,SAAUe,IAAAA,KAAAA,WACVw8B,gBAAiBx8B,IAAAA,KACjB1F,UAAW0F,IAAAA,OACX9jB,KAAM8jB,IAAAA,MAAS,CACb,YACA,WACA,SACA,MACA,OACA,UACA,WAEFu8B,UAAWv8B,IAAAA,KACXy8B,4BAA6Bz8B,IAAAA,KAC7B08B,MAAO18B,IAAAA,MAGTo8B,EAAYnnC,aAAe,CACzB8nC,WAAY,GACZziC,UAAW,GACXqF,YAAa,+BACbzjB,KAAM,WACNqgD,WAAW,EACXC,gBAAiBA,OACjBC,6BAA6B,EAC7BC,OAAO,GAGT,O,gME9PWoC,EAAQ,8BACR,EAAY,kCAEZC,EAAgB,sCAGhBC,EAAW,iCACXC,EAAY,kCACZC,EAAW,iCACXC,EAAW,iCACXC,EAAgB,sCAChBC,EAAM,4BACNC,EAAc,oCACdC,EAAe,qCCJ1B,MAAMp8B,EAAQA,EACZrJ,QACA0lC,eACA9G,qBACA+G,sBACAnlC,YACAolC,eACAC,eACAC,YACAC,YACAC,aACAC,aACAC,SACAjpC,cACK,IAADkpC,EAAAC,EACJ,MAAOl7C,EAAOm7C,IAAY9hC,EAAAA,EAAAA,WAAS,GAC7B+hC,GAAgB5hC,EAAAA,EAAAA,UAChB6hC,GAAgB7hC,EAAAA,EAAAA,UAatB,IAXAovB,EAAAA,EAAAA,YAAU,KACR,IAAIyR,EAAM,KAENe,SAAAA,EAAep1C,UAASq0C,EAAMe,EAAcp1C,SAC5Cq1C,SAAAA,EAAer1C,UAASq0C,EAAMgB,EAAcr1C,SAE5Cq0C,GACFc,EAASd,EAAI7jC,WAAa6jC,EAAIiB,gBAAkBjB,EAAIkB,aACtD,GACC,IAEEzmC,GAASA,EAAM6qB,KAAQ+T,EAAoB,CAC9C,MAAM8H,EAAgB,oBAChBC,EAAmB,6BAQzB,OALE3mC,EAAM6qB,IAAI+b,WAAWD,IACrB3mC,EAAM6qB,IAAI+b,WAAWF,MAErB1mC,EAAM6qB,KAAMgc,EAAAA,EAAAA,GAAa7mC,EAAM6qB,MAG/BpxC,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTnF,EACA0lC,GAAqB,aAAXA,GAAyBl/B,EACnCk/B,GAAqB,QAAXA,GAAoBl/B,EAC9Bk/B,GAAqB,QAAXA,GAAoBl/B,EAC9Bk/B,GAAqB,QAAXA,GAAoBl/B,EAC9Bk/B,GAAqB,SAAXA,GAAqBl/B,EAC/Bi/B,GAA6B,SAAfA,GAAyBj/B,EACvCi/B,GAA6B,WAAfA,GAA2Bj/B,EACzCi/B,GAA6B,UAAfA,GAA0Bj/B,IAG1CvtB,EAAAA,cAAAA,EAAAA,SAAA,KACGusD,GACCvsD,EAAAA,cAACurB,EAAAA,EAAI,CACH/V,KAAK,QACL7M,KAAK,MACLoe,UDhEQ,iCCiERjU,KAAK,KACL0Y,MAAM,UAGVxrB,EAAAA,cAAA,OACEwjB,QAASA,EACTwB,IAAMvT,EAAoB47C,EAAAA,EAAZ9mC,EAAM6qB,IACpBtsB,IAAKyB,EAAM+mC,YACXvmC,WAAWmF,EAAAA,EAAAA,GACTigC,EACAM,GAAqB,aAAXA,GAAyBl/B,GAErCggC,UAAU,QACVrmC,QAASA,EAAGsmC,oBACVA,EAAcC,QAAU,KACxBD,EAAcxoC,IAAMqoC,EAAAA,CAAgB,EAEtC7kC,IAAKqkC,IAENR,GACCrsD,EAAAA,cAAConD,EAAAA,EAAU,CACT5xC,KAAM62C,EACNtlC,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAcA,MAM7C,CAEA,OAAIhH,GAASA,EAAMmnC,OAAQnnC,SAAW,QAANmmC,EAALnmC,EAAOmnC,YAAI,IAAAhB,GAAa,QAAbC,EAAXD,EAAaiB,mBAAW,IAAAhB,OAAnB,EAALA,EAA0Bz9C,QAAQ,SAAU,EAEnElP,EAAAA,cAAA,OAAK+mB,UAAWA,GACd/mB,EAAAA,cAAA,OACEglB,IAAMvT,EAAoC47C,EAAAA,EAA3B,SAAQ9mC,EAAMmnC,KAAKtc,MAClCtsB,IAAKyB,EAAM+mC,YACXvmC,WAAWmF,EAAAA,EAAAA,GD1FD,+BC0FwBigC,GAClCoB,UAAU,QACVrmC,QAASA,EAAGsmC,oBACVA,EAAcC,QAAU,KACxBD,EAAcxoC,IAAMqoC,EAAAA,CAAgB,EAEtC7kC,IAAKskC,IAENT,GACCrsD,EAAAA,cAAConD,EAAAA,EAAU,CACT5xC,KAAM62C,EACN/F,KAAMgG,EACNvlC,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAcA,MAQzCvtB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC4tD,EAAAA,EAAW,CACVrnC,MAAOA,aAAK,EAALA,EAAOsnC,gBACd/oC,IAAKyB,aAAK,EAALA,EAAO+mC,YACZvmC,WAAWmF,EAAAA,EAAAA,GACTnF,EACA0lC,GAAqB,aAAXA,GAAyBl/B,EACnCk/B,GAAqB,QAAXA,GAAoBl/B,EAC9Bk/B,GAAqB,QAAXA,GAAoBl/B,EAC9Bk/B,GAAqB,QAAXA,GAAoBl/B,EAC9Bk/B,GAAqB,SAAXA,GAAqBl/B,EAC/Bi/B,GAA6B,SAAfA,GAAyBj/B,EACvCi/B,GAA6B,WAAfA,GAA2Bj/B,EACzCi/B,GAA6B,UAAfA,GAA0Bj/B,GAE1C4+B,cAAcjgC,EAAAA,EAAAA,GACZigC,EACAM,GAAqB,aAAXA,GAAyBl/B,GAErCggC,UAAU,UAEXtB,IAAiBC,GAChBlsD,EAAAA,cAAC8tD,EAAAA,EAAQ,CACProD,QAASwmD,EACTllC,WAAWmF,EAAAA,EAAAA,GDnJA,gCCmJwBkgC,KAGtCC,GACCrsD,EAAAA,cAAConD,EAAAA,EAAU,CACT5xC,KAAM62C,EACNtlC,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAcA,KAGpC,EAIM24B,EAAiB,CAC5B9U,IAAK3kB,IAAAA,OACLihC,KAAMjhC,IAAAA,MAAS,CACb2kB,IAAK3kB,IAAAA,SAEP6gC,YAAa7gC,IAAAA,OACbohC,gBAAiBphC,IAAAA,QAGnBmD,EAAMrO,UAAY,CAChBgF,MAAOkG,IAAAA,MAASy5B,GAAgBC,WAChC8F,aAAcx/B,IAAAA,OACd04B,mBAAoB14B,IAAAA,KACpBy/B,oBAAqBz/B,IAAAA,KACrB1F,UAAW0F,IAAAA,OACX2/B,aAAc3/B,IAAAA,OACd0/B,aAAc1/B,IAAAA,OACd4/B,UAAW5/B,IAAAA,OACX6/B,UAAW7/B,IAAAA,OACX8/B,WAAY9/B,IAAAA,KACZ+/B,WAAY//B,IAAAA,MAAS,CAAC,OAAQ,SAAU,UACxCggC,OAAQhgC,IAAAA,MAAS,CAAC,WAAY,MAAO,MAAO,SAC5CshC,QAASthC,IAAAA,KACTjJ,QAASiJ,IAAAA,QAGXmD,EAAMlO,aAAe,CACnBqF,UAAW,GACXklC,aAAc,KACd9G,oBAAoB,EACpB+G,qBAAqB,EACrBE,aAAc,GACdD,aAAc,GACdG,UAAW,KACXD,UAAW,GACXE,YAAY,EACZC,WAAY,SACZC,OAAQ,WACRsB,QAASA,OACTvqC,QAAS,SAGX,O,gMC1MWwqC,EAAK,2BACL,EAAO,6BCMlB,MAAMF,EAAWA,EACfroD,UACAwoD,cACAC,gBACAC,mBACApnC,YACAqnC,oBAEA,MAAO,CAAEC,IAAiBC,EAAAA,EAAAA,KAAmB,IACtC1hC,IAAY9B,EAAAA,EAAAA,WAAUujC,GAgDvBvmD,EAAU,CACdQ,WAAY,CACV,CAAC1G,EAAAA,OAAAA,mBAA2B,SAC1B2sD,EACA3lD,GACC,IAAD4lD,EAAAC,EAAAC,EACA,MAAMC,IAAe/lD,SAAa,QAAL4lD,EAAR5lD,EAAW,UAAE,IAAA4lD,GAAO,QAAPC,EAAbD,EAAej4C,aAAK,IAAAk4C,GAAU,QAAVC,EAApBD,EAAsB7lD,gBAAQ,IAAA8lD,GAA9BA,EAAiC,GAAG,IACzD,OACE1uD,EAAAA,cAAA,MAAI+mB,WAAY4nC,GDrEL,iCCsET3uD,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,KAAKne,KAAK,KAAKoe,UD1Ef,iCC2ENne,GAIT,EACA,CAAChH,EAAAA,OAAAA,WAAmB,SAAwB2sD,EAAO3lD,GACjD,OACE5I,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAImnC,EACJtlD,KAAMulD,EACNhhC,QAASihC,EACTpnC,UAAWqnC,GAEVxlD,EAGP,EACA,CAAChH,EAAAA,OAAAA,WAAmB,SAAwB2sD,EAAO3lD,GACjD,OACE5I,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,KAAKne,KAAK,KAAKoe,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAW6gC,IACnDxlD,EAGP,EACA,CAAChH,EAAAA,OAAAA,WAAmB,SAAwB2sD,EAAO3lD,GACjD,OACE5I,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAI8F,EAAW,KAAO,KACtBjkB,KAAK,KACLoe,WAAWmF,EAAAA,EAAAA,GAAQqB,ED1Gf,2BC0GqC6gC,IAExCxlD,EAGP,EACA,CAAChH,EAAAA,OAAAA,WAAmB,SAAwB2sD,EAAO3lD,GACjD,OACE5I,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAI8F,EAAW,KAAO,KACtBjkB,KAAK,KACLukB,QAAQ,WACRnG,WAAWmF,EAAAA,EAAAA,GAAQqB,EDrHf,2BCqHqC6gC,IAExCxlD,EAGP,EACA,CAAChH,EAAAA,OAAAA,IAAY,SAA0B2sD,EAAO3lD,GAC5C,OAAOA,CACT,EACA,CAAChH,EAAAA,OAAAA,SAAiB,SAA0B2sD,EAAO3lD,GACjD,OAAO5I,EAAAA,cAAA,MAAI+mB,UD3HH,4BC2H0Bne,EACpC,EACA,CAAChH,EAAAA,OAAAA,SAAiB,SAA0B2sD,EAAO3lD,GACjD,OAAO5I,EAAAA,cAAA,MAAI+mB,UD5HH,4BC4H0Bne,EACpC,EACA,CAAChH,EAAAA,OAAAA,WAAmB,SAA0B2sD,EAAO3lD,GACnD,OAAO5I,EAAAA,cAAA,UAAK4I,EACd,EACA,CAAC9G,EAAAA,QAAAA,WAAoB,SAAyBoE,EAAM0C,GAAW,IAADgmD,EAC5D,OACE5uD,EAAAA,cAACotB,EAAAA,EAAI,CACHhgB,KAAM,CAAEyhD,aAA2B,QAAfD,EAAE1oD,EAAKV,KAAK0D,WAAG,IAAA0lD,OAAA,EAAbA,EAAe5jD,QAAQ,YAAa,KAC1D8jD,OAAQ,YAAYhkD,KAAK5E,EAAKV,KAAK0D,MAEnClJ,EAAAA,cAAA,QAAM+mB,UAAWwG,GAAc3kB,GAGrC,EACA,CAAC9G,EAAAA,QAAAA,iBAA0B,SAA8BoE,EAAM0C,GAAW,IAADmmD,EAAAC,EACvE,MAAM5hD,EA/He3D,KACzB,MAAM,MAAEwlD,IAAUC,EAAAA,EAAAA,gBAAe,aA2CjC,OADaD,EAAME,MAAMC,MAAK,EAAGlpD,UAAWA,EAAK6jB,gBAAkBtgB,GACxD,EAmFM4lD,CAA2B,QAAVN,EAAC7oD,EAAKV,YAAI,IAAAupD,GAAQ,QAARC,EAATD,EAAWxlD,cAAM,IAAAylD,OAAR,EAATA,EAAmBxlD,IAAIC,IACtD,OAAK2D,EAEHpN,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAMA,EAAKlH,MACflG,EAAAA,cAAA,QAAM+mB,UAAWwG,GAAc3kB,IAHjB,IAMpB,GAEFJ,WAAaY,GACJA,EAAK0E,MAAM,MAAMrF,QAAO,CAACG,EAAU0mD,EAAatnD,IAC9C,IAAIY,EAAUZ,EAAQ,GAAKhI,EAAAA,cAAA,MAAImI,IAAKH,IAAWsnD,IACrD,KAGP,OAAOtvD,EAAAA,cAAA,OAAK+mB,UAAWA,IAAYwoC,EAAAA,EAAAA,GAAe9pD,EAASqC,GAAe,EAG/D0nD,EAAoB,CAC/BlmC,IAAKmD,IAAAA,QAGPqhC,EAASvsC,UAAY,CACnB9b,QAASgnB,IAAAA,MAAS+iC,GAAmBrJ,WACrC+H,cAAezhC,IAAAA,OACf0hC,iBAAkB1hC,IAAAA,OAClBwhC,YAAaxhC,IAAAA,OACb1F,UAAW0F,IAAAA,OACX2hC,cAAe3hC,IAAAA,QAGjBqhC,EAASpsC,aAAe,CACtBwsC,cAAe,KACfC,iBAAkB,GAClBF,YAAa,IACblnC,UAAW,GACXqnC,cAAe,IAGjB,O,4HCxLA,MAAMqB,EAASA,EAAG5rC,QAAOmB,MAAK3K,QAAO0M,eAEjC/mB,EAAAA,cAAA,UACE6jB,MAAOA,EACPmB,IAAKA,EACL3K,MAAOA,EACPq1C,YAAY,IACZC,MAAM,2FACNC,iBAAe,EACf7oC,UAAWA,IAKjB0oC,EAAOluC,UAAY,CACjBsC,MAAO4I,IAAAA,OACPzH,IAAKyH,IAAAA,OACLpS,MAAOoS,IAAAA,OACP1F,UAAW0F,IAAAA,QAGbgjC,EAAO/tC,aAAe,CACpBmC,MAAO,GACPmB,IAAK,GACL3K,MAAO,GACP0M,UAAW,IAGb,Q,sCC5BW8oC,EAAkB,wC,8OCO7B,MAAMrK,EAAQA,EACZE,QACAoK,SACAjsC,QACAX,SACA6D,YACAslC,YACAC,YACA1c,WACA+V,WACAvsB,OACAwsB,QACAmK,sBACGx5C,MACE,IAADy5C,EAAAC,EAAAC,EACJ,MAAMC,GAAY/kC,EAAAA,EAAAA,YAAWglC,EAAAA,IAEtBC,EAAgBC,IAAaxlC,EAAAA,EAAAA,WAAS,GAE7C,IAAIylC,EAAa7K,EAAM6K,WACnBC,GAAgB,EAsBpB,GApBID,GAAcA,EAAWrhD,QAAQ,cAAgB,EAEnDqhD,EAAa7K,EAAM6K,WAAWvlD,QAAQ,YAAa,WAC1CulD,GAAcA,EAAWrhD,QAAQ,aAAe,EAEzDqhD,EAAc,6BAA4B7K,EAAM6K,WAC7CziD,MAAM,KACNnL,OAAO,KAEV4tD,GACAA,EAAWrhD,QAAQ,YAAc,GACjCqhD,EAAWrhD,QAAQ,WAAa,IAGhCqhD,EAAc,6BAA4B7K,EAAM6K,WAC7CziD,MAAM,KACNnL,OAAO,KACV6tD,GAAgB,GAGdV,IAAWO,EACb,OACErwD,EAAAA,cAAA,UACEiwC,QAASA,IAAMqgB,GAAU,GACzBvpC,WAAWmF,EAAAA,EAAAA,GDnDE,gCCqDX6jC,GAAoBA,IAGtB/vD,EAAAA,cAAC4vB,EAAAA,EAAK,CACJrJ,MAAOupC,EAAOvpC,MACdQ,WAAWmF,EAAAA,EAAAA,GDvDD,+BCuDwBnF,KAEpC/mB,EAAAA,cAAA,OAAK+mB,UD7DY,qCC8Df/mB,EAAAA,cAACurB,EAAAA,EAAI,CAAC/V,KAAK,OAAO1C,KAAK,KAAKiU,UD5DhB,oCC8DbslC,GACCrsD,EAAAA,cAAConD,EAAAA,EAAU,CACT5xC,KAAM62C,EACN/F,KAAMgG,EACNvlC,WAAWmF,EAAAA,EAAAA,GDvEJ,8BACI,sCC6ErB,GAAIqkC,EAGF,OADAA,EAAaA,EAAWziD,MAAM,KAAK,GAEjC9N,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTqB,EACAijC,GD/EiB,sCCgFjBzpC,IAGF/mB,EAAAA,cAACyvD,EAAM,CACL5rC,MAAM,OACNmB,IAAM,GAAEurC,IAAa3gB,EAAW,cAAgB,cAMxD,GADe8V,EAAM+K,SACP,CACZ,MAAMC,EAAahL,EAAM+K,SAAS3iD,MAAM,KAAK6iD,MAC7C,OACE3wD,EAAAA,cAAA,OAAK+mB,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAwBxG,IAC9C/mB,EAAAA,cAACyvD,EAAM,CACL5rC,MAAM,OACNmB,IAAM,kCAAiC0rC,MAI/C,CACA,MAAME,EAAmBT,EACL,QADcH,EAC9BtK,EAAMmL,kBAAU,IAAAb,OAAA,EAAhBA,EAAkB5e,IACF,QADK6e,EACrBvK,EAAMmL,kBAAU,IAAAZ,GAAM,QAANC,EAAhBD,EAAkBvC,YAAI,IAAAwC,OAAN,EAAhBA,EAAwB9e,IAE5B,OAAIwf,EAEA5wD,EAAAA,cAAA,QAAA0W,EAAA,CACEmN,MAAOA,EACPX,OAAQA,EACR4tC,SAAUlhB,EACV+V,SAAUA,EACV3gC,IAAK4rC,EACLr4B,QAAQ,OACRa,KAAMA,EACNwsB,MAAOA,EACP7+B,WAAWmF,EAAAA,EAAAA,GDnHA,8BCmHsBnF,IAC7BxQ,IAKH,EAAE,EAGEw6C,EAAiB,CAC5BR,WAAY9jC,IAAAA,OACZokC,WAAYpkC,IAAAA,MAAS,CACnBihC,KAAMjhC,IAAAA,MAAS,CACb2kB,IAAK3kB,IAAAA,YAKX+4B,EAAMjkC,UAAY,CAChBmkC,MAAOj5B,IAAAA,MAASskC,GAAgB5K,WAChC2J,OAAQrjC,IAAAA,MAASy5B,EAAAA,GACjBriC,MAAO4I,IAAAA,OACPvJ,OAAQuJ,IAAAA,OACR1F,UAAW0F,IAAAA,OACX4/B,UAAW5/B,IAAAA,OACX6/B,UAAW7/B,IAAAA,OACXmjB,SAAUnjB,IAAAA,KACVk5B,SAAUl5B,IAAAA,KACV2M,KAAM3M,IAAAA,KACNm5B,MAAOn5B,IAAAA,KACPsjC,iBAAkBtjC,IAAAA,QAGpB+4B,EAAM9jC,aAAe,CACnBmC,MAAO,GACPX,OAAQ,GACR4sC,OAAQ,KACR/oC,UAAW,GACXulC,UAAW,KACXD,UAAW,GACXzc,UAAU,EACV+V,UAAU,EACVvsB,MAAM,EACNwsB,OAAO,EACPmK,iBAAkB,IAGpB,O,oCC3KA,IAAIiB,E,yGAEG,MAAM/G,EAAaA,IAAMC,uBAEnB+G,EAAelH,UAC1B,MAAMC,QAAgBC,IACtB,IAAK+G,EACH,IACEA,cAAyBplC,MAAO,GAAEo+B,kBAAwBI,MAC5D,CAAE,MAAOl+C,GACP8kD,EAAY,CAAEv/C,MAAO,4BACvB,CAGF,OAAOu/C,CAAS,EAGLE,EAAcA,KACzBtlC,MAAM,aAAc,CAAEC,OAAQ,QAAS,EAG5BslC,EAA8B3rD,IAAI,CAC7CqmB,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3BC,KAAMpE,KAAKC,UAAUpiB,GACrB4rD,eAAe,G,oECzBjB,MAAMC,EAAS,IAAIC,IAAIpH,wBACVkD,EAAgBhc,IAC3B,IAAKA,EACH,MAAO,GAET,MAAMmgB,EAAW,IAAID,IAAIlgB,GAGzB,OADAmgB,EAAS7iC,KAAO2iC,EAAO3iC,KAChB6iC,EAAS7hD,UAAU,C,kFCNrB,MAAM8hD,EAAYA,KACvB,GAAuB,oBAAZtwD,OAAwB,CAGjC,MAAOihB,EAAOsvC,IAAY3mC,EAAAA,EAAAA,UAAS,CACjC4mC,cAAe,EACfC,WAAYx2C,SAAS4Q,KAAK6lC,wBAC1BC,QAAS12C,SAAS4Q,KAAK6lC,wBAAwB7tC,IAC/C+tC,QAAS32C,SAAS4Q,KAAK6lC,wBAAwB5tC,KAC/C+tC,gBAAiB,KAGbC,GAAoBC,EAAAA,EAAAA,cAAa5uC,IACrCouC,GAAUS,IACR,MAAMC,EAAoBD,EAAUR,cAC9BC,EAAax2C,SAAS4Q,KAAK6lC,wBAEjC,MAAO,CACLQ,cAAeT,EACfE,SAAUF,EAAW5tC,IACrB+tC,QAASH,EAAW3tC,KACpB+tC,gBAAiBI,GAAqBR,EAAW5tC,IAAM,KAAO,OAC9D2tC,eAAgBC,EAAW5tC,IAC5B,GACD,GACD,IAaH,OAXAs2B,EAAAA,EAAAA,YAAU,KACR,MAAMgY,EAAkBhvC,IACtB2uC,EAAkB3uC,EAAE,EAItB,OAFAniB,OAAOinB,iBAAiB,SAAUkqC,GAE3B,KACLnxD,OAAOknB,oBAAoB,SAAUiqC,EAAe,CACrD,GACA,CAACL,IAEG,CACLH,QAAS1vC,EAAM0vC,QACfC,QAAS3vC,EAAM2vC,QACfC,gBAAiB5vC,EAAM4vC,gBAE3B,CACE,MAAO,CACLF,QAAS,EACTC,QAAS,EACTC,gBAAiB,OAErB,EAGF,K,2hBCpDW,EAAS,qC,0cCCL,MAAMO,EA+BnB/a,eACE53C,OAAOC,eAAeub,SAAU,SAAU,CACxC3K,IAAK,SAAU1Q,GACb,OAAOwyD,EAAUC,mBAAmBzxD,MAAMqa,SAAU3a,UACtD,EACAwG,IAAK,WACH,OAAOsrD,EAAUE,mBAAmB1xD,MAAMqa,SAC5C,GAEJ,CAEAo8B,eACE+a,EAAUvhD,MAAMlC,SAAS4jD,GAAYt3C,SAASs3C,OAASA,GACzD,EACD1wC,EA7CoBuwC,EAAS,QACb,IAAEvwC,EADEuwC,EAAS,6BAAAvwC,EAATuwC,EAAS,6BAAAvwC,EAATuwC,EAAS,UAKZ,KACd,GAAsB,oBAAXpxD,OACT,MAAwB,oBAAbia,UACTm3C,EAAUC,mBAAqBp3C,SAC5Bu3C,iBAAiB,UACjBz5C,KAAKkC,UAERm3C,EAAUE,mBAAqBr3C,SAC5Bw3C,iBAAiB,UACjB15C,KAAKkC,UAEDxb,OAAOC,eAAeub,SAAU,SAAU,CAC/CnU,IAAK,WACH,OAAIsrD,EAAUE,mBACLF,EAAUE,mBAAmB1xD,MAAMqa,UAErC,EACT,EACA3K,IAAM1Q,GAAUwyD,EAAUvhD,MAAM9E,KAAKnM,GACrCgH,cAAc,KAGXwrD,EAAUM,QACnB,ICrBJN,EAAUM,SACV,MAAMC,EAAeA,OACnB,MAAOC,EAAUC,IAAejoC,EAAAA,EAAAA,WAAS,IAClCkoC,EAAWC,IAAgBnoC,EAAAA,EAAAA,UAAS,EAAC,GAAM,GAAO,KAClDooC,EAAaC,IAAkBroC,EAAAA,EAAAA,UAAS,MACzCK,GAAYC,EAAAA,EAAAA,YAAWC,EAAAA,GAEvB+nC,EAAiB,CACrB,oBACA,qBACA,qBAGF/Y,EAAAA,EAAAA,YAAU,KACc,oBAAXn5C,SACT6xD,GAAY,GACZI,EAAeE,EAAa,kBAC9B,GACC,KAEHhZ,EAAAA,EAAAA,YAAU,KACR,GAAM6Y,EAAa,CAAC,IAADI,EAGjB,GAFAhB,EAAUiB,QAENF,EAAa,sBAAuB,CAAC,IAADG,EACtC,MAAMC,EAAkB,IAAIC,MAAM,qBAAsB,CACtD5lB,SAAS,EACTf,YAAY,IAGN,QAARymB,EAAAr4C,gBAAQ,IAAAq4C,GAARA,EAAUzlB,cAAc0lB,EAC1B,CACA,MAAME,EAAqB,IAAID,MAAM,gBAAiB,CACpD5lB,SAAS,EACTf,YAAY,IAEN,QAARumB,EAAAn4C,gBAAQ,IAAAm4C,GAARA,EAAUvlB,cAAc4lB,EAC1B,IACC,CAACT,IAEJ,MAMMU,EAAc7J,MAAO8J,GAAY,KACrC,IAAIC,EAAkBd,EAClBa,IAAWC,EAAkB,EAAC,GAAM,GAAM,IAE9C,MAAM7nC,EAAS6nC,EAAgB,GAAK,OAAS,YACvCloC,MAAO,WAAUK,YAAkB,IAAI3Z,MAAOC,WAEpDwhD,EAAa,iBACbZ,GAAe,GAEfW,EAAgBjlD,SACd,CAAC4jD,EAAQzqD,IAAUyqD,GAAUsB,EAAaX,EAAeprD,MAG3DsqD,EAAU0B,OAAO,EAGbD,EAAgBtB,IACpB,MAAMwB,EAAa,IAAI3hD,KAEvB,OADA2hD,EAAWC,YAAYD,EAAWrM,cAAgB,GAC1CzsC,SAASs3C,OAAU,GAAEA,mBAAwBwB,EAAWE,wBAAwB,EAGpFd,EAAgBZ,IAAY,IAAD2B,EAAAC,EAC/B,OAAe,QAARD,EAAAj5C,gBAAQ,IAAAi5C,GAAQ,QAARC,EAARD,EAAU3B,cAAM,IAAA4B,OAAR,EAARA,EAAkBnlD,QAAQujD,KAAW,CAAC,EAG/C,OAAuB,OAAhBS,EACJA,EAwDC,GAvDAlzD,EAAAA,cAACimD,EAAAA,EAAS,CAAC,oBAAel/B,UF9EN,4CE+ElB/mB,EAAAA,cAAA,OAAK+mB,UF9EkB,iDE+ErB/mB,EAAAA,cAACmsB,EAAAA,EAAI,CAACpF,UF7EM,yCE8ET0E,EAAAA,EAAAA,IAAQ,kBAAmBN,IAE9BnrB,EAAAA,cAACmsB,EAAAA,EAAI,CAACpF,UF7EE,oCE8EL,KACA0E,EAAAA,EAAAA,IAAQ,eAAgBN,GACzBnrB,EAAAA,cAAA,QACEge,wBAAyB,CACvBC,QAAQwN,EAAAA,EAAAA,IAAQ,eAAgBN,OAItCnrB,EAAAA,cAAA,QAAM+mB,UF1FS,2CE2FZqsC,EAAerrD,KAAI,CAACY,EAAMX,IACzBhI,EAAAA,cAAA,SACE+mB,UFjGW,4CEkGX5e,IAAKH,EACL0gD,QAAS//C,GAET3I,EAAAA,cAAA,OAAK+mB,UFpGQ,+CEqGX/mB,EAAAA,cAAA,SACEwV,KAAM7M,EACNc,GAAId,EACJA,KAAK,WACL4jB,SAAoB,IAAVvkB,EACVssD,QAAStB,EAAUhrD,GACnBqkB,SAAUA,IA/DHrkB,KACvB,IAAIma,EAAQ,IAAI6wC,GAChB7wC,EAAMna,IAAUma,EAAMna,GACtBirD,EAAa9wC,EAAM,EA4DaoyC,CAAgBvsD,KAElChI,EAAAA,cAAA,QAAM+mB,UFvGJ,yCEyGH0E,EAAAA,EAAAA,IAAS,UAAS9iB,IAAQwiB,OAIjCnrB,EAAAA,cAAA,OAAK+mB,UFtHc,+CEuHjB/mB,EAAAA,cAACioD,EAAAA,EAAM,CACLt/C,KAAK,OACLoe,WAAWmF,EAAAA,EAAAA,GAAQqB,EFjHJ,+CEkHfnkB,MAAMqiB,EAAAA,EAAAA,IAAQ,mBAAoBN,GAClC8kB,QAASA,IAAM2jB,IACfzL,kBAAgB,IAElBnoD,EAAAA,cAACioD,EAAAA,EAAM,CACLt/C,KAAK,aACLoe,WAAWmF,EAAAA,EAAAA,GAAQqB,EFlIV,yCEmITnkB,MAAMqiB,EAAAA,EAAAA,IAAQ,mBAAoBN,GAClC8kB,QAASA,IAAM2jB,GAAY,QAUrC,EACD,EAGHf,EAAatxC,UAAY,CAAC,EAE1BsxC,EAAanxC,aAAe,CAAC,EAE7B,Q,UCtJW8yC,EAAO,6BCGXC,EAAS,SAAAl+C,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,QAAAqkB,EAAA,iCAAArkB,EAAAA,cAAA,QAAAqkB,EAAA,06BAATowC,EAAS/yC,aAAA,CAAAqlC,MAAA,6BAAAP,QAAA,iBACTkO,EAAS,SAAAn+C,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,QAAAqkB,EAAA,mIAATqwC,EAAShzC,aAAA,CAAAqlC,MAAA,6BAAAP,QAAA,aAGhB,MAAMmO,EAAcA,EAAGC,iBACdA,EAAY7sD,KAAI,CAAC8sD,EAAQ7sD,IACd,UAAhB6sD,EAAOC,KACL90D,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAMynD,EAAQ1sD,IAAKH,EAAO+e,UAAWwG,GACzCvtB,EAAAA,cAAC00D,EAAS,OAEM,UAAhBG,EAAOC,KACT90D,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAMynD,EAAQ1sD,IAAKH,EAAO+e,UAAWwG,GACzCvtB,EAAAA,cAACy0D,EAAS,OAGZz0D,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAMynD,EAAQ1sD,IAAKH,GACvBhI,EAAAA,cAACurB,EAAAA,EAAI,CAAC/V,KAAMq/C,EAAOC,KAAMnsD,KAAK,WAMtCgsD,EAAYpzC,UAAY,CACtBqzC,YAAanoC,IAAAA,MAAAA,YAGf,Q,UCvBWsoC,EAAa,mCAGbC,EAAiB,uCCE5B,MAAMC,EAASA,EAAGC,eAAcC,cAAeC,MAC7C,MAAM,oBACJC,EAAmB,iBACnBC,EAAgB,qBAChBC,EAAoB,kBACpBC,EAAiB,WACjBC,EAAU,cACVC,EAAa,cACbC,EAAa,YACbf,EACAe,cAAeC,GACbV,EACJ,OACEl1D,EAAAA,cAAA,UACE+mB,WAAWmF,EAAAA,EAAAA,GDpBG,gCCsBXkpC,GAAuBQ,ID3Bb,+BC6BbnsD,GAAG,UAEHzJ,EAAAA,cAACimD,EAAAA,EAAS,KACRjmD,EAAAA,cAAA,OAAK+mB,UDnBe,wCCoBlB/mB,EAAAA,cAAA,OAAK+mB,UD7BU,qCC8Bb/mB,EAAAA,cAAA,OAAK+mB,UDxBS,sCCyBXuuC,GACCt1D,EAAAA,cAAA,OAAK+mB,UAAWwG,GACdvtB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,IAAIne,KAAK,WAAWukB,QAAQ,YAClCmoC,GAEHr1D,EAAAA,cAAA,OAAK+mB,UAAWwG,GACb+nC,EAAiBvtD,KAAI,CAAC+G,EAAM9G,IAC3BhI,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAM0B,EAAM3G,IAAKH,GACrBhI,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,YAClBmG,EAAK1F,WAOjBosD,GACCx1D,EAAAA,cAAA,OAAK+mB,UAAWwG,GACdvtB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,IAAIne,KAAK,WAAWukB,QAAQ,YAClCqoC,GAEHv1D,EAAAA,cAAA,OAAK+mB,UAAWwG,GACbioC,EAAkBztD,KAAI,CAAC+G,EAAM9G,IAC5BhI,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAM0B,EAAM3G,IAAKH,GACrBhI,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,YAClBmG,EAAK1F,YAQnBssD,GACC11D,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,WAAWoe,UDnExB,kCCoEL2uC,GAGL11D,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,WAAWoe,UD1DvB,iCC2DNmjC,aAGLlqD,EAAAA,cAAA,OAAK+mB,UD5Ea,wCC6EhB/mB,EAAAA,cAAA,OAAK+mB,UDnEO,oCCoEV/mB,EAAAA,cAACoqB,EAAAA,EAAO,CACNC,WAAYorC,EAAWprC,WACvBC,iBAAkBmrC,EAAWnrC,iBAC7BC,SAAUkrC,EAAWlrC,SACrB5hB,KAAM8sD,EAAW9sD,KACjB8hB,eDxEa,wCCyEb1D,UDlFC,4BCmFDyD,OAAQirC,EAAWjrC,OACnBG,UAAQ,KAGZ3qB,EAAAA,cAAA,OAAK+mB,UD5EI,iCC6EP/mB,EAAAA,cAAC20D,EAAW,CAACC,YAAaA,QAK3B,EAIbK,EAAO1zC,UAAY,CACjB2zC,aAAczoC,IAAAA,MAAS,CACrB4oC,oBAAqB5oC,IAAAA,OACrB6oC,iBAAkB7oC,IAAAA,MAClB8oC,qBAAsB9oC,IAAAA,OACtB+oC,kBAAmB/oC,IAAAA,MACnBgpC,WAAYhpC,IAAAA,MAASopC,EAAAA,GACrBH,cAAejpC,IAAAA,OACfmoC,YAAanoC,IAAAA,MACbkpC,cAAelpC,IAAAA,OAEjB0oC,cAAe1oC,IAAAA,MAGjBwoC,EAAOvzC,aAAe,CACpBwzC,aAAc,CACZG,oBAAqB,GACrBC,iBAAkB,GAClBC,qBAAsB,GACtBC,kBAAmB,GACnBE,cAAe,GACfd,YAAa,GACbe,eAAe,GAEjBR,eAAe,GAGjB,Q,8BC1HOW,EAAI,SAAAv/C,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,KAAAkzC,KAAA,OAAA4T,SAAA,WAAA9mD,EAAAA,cAAA,QAAAkzC,KAAA,UAAA6iB,OAAA,OAAAC,YAAA,MAAA3xC,EAAA,kBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,4MAAJyxC,EAAIp0C,aAAA,CAAAqlC,MAAA,6BAAAP,QAAA,aA2CX,MAtCsByP,EAAGC,cACvB,MAAM,OAAEC,IAAWC,EAAAA,EAAAA,OACZC,EAAaprD,IAAKqrD,EAAAA,EAAAA,IAAc,IAAKC,EAAAA,KACrC/M,EAAYC,IAAiB3+B,EAAAA,EAAAA,UAAS,MACvCK,GAAYC,EAAAA,EAAAA,YAAWC,EAAAA,IAE7BgvB,EAAAA,EAAAA,YAAU,KACRoP,EAAc4M,EAAY,GACzB,CAACA,IASJ,OACEr2D,EAAAA,cAACimD,EAAAA,EAAS,KACRjmD,EAAAA,cAAC81D,EAAI,CAAC/uC,UC7BM,+BD8BZ/mB,EAAAA,cAAA,OAAK+mB,UC7BkB,yCD8BrB/mB,EAAAA,cAAC6oD,EAAAA,EAAW,CACVC,eAAgBU,EAChB99B,SAbe5rB,IAErB,GADA2pD,EAAc3pD,GACVA,EACF,OAAO02D,EAAAA,EAAAA,UAAU,IAAGL,iBAAsBM,mBAAmB32D,KAC/D,EAUMipD,QAASA,IAAMU,EAAc,MAC7Br9B,aAAaX,EAAAA,EAAAA,IAAQ,2BAA4BN,GACjDxiB,KAAK,SACLqgD,WAAS,EACTE,6BAA2B,EAC3BD,gBAAiBiN,EACjB/M,OAAK,KAGTnpD,EAAAA,cAAA,OAAK+mB,UCzCgB,sCDyCiBkpB,QAASimB,IACrC,EE5CLQ,EAAS,+BACTC,EAAa,mCAabC,EAAkB,wCAelBC,EAAW,iCACXC,EAAa,mCAKbC,EAAmB,yCAGnBC,EAAa,mCACbC,EAAsB,4CAGtBC,EAA8B,oDAC9BC,EAA+B,qDAE/BC,EAAU,gCACVC,EAAc,oCAEdC,GAAa,mCACbC,GAAsB,4CAItBC,GAAS,+BAMTC,GAAe,qCAGfC,GAAsB,4CC9DtBC,GAAiB,+CACjB,GAAiB,+CACjB,GAAO,qCACPC,GAAe,6CACf,GAAO,qCACPC,GAAW,yCACXC,GAAiB,+CACjBC,GAAW,yCACXC,GAAU,wCACVC,GAAc,4CACdC,GAAkB,gDCNtBpC,GAAI,SAAAv/C,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,KAAAkzC,KAAA,OAAA4T,SAAA,WAAA9mD,EAAAA,cAAA,QAAAkzC,KAAA,UAAA6iB,OAAA,OAAAC,YAAA,MAAA3xC,EAAA,kBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,4MAAJyxC,GAAIp0C,aAAA,CAAAqlC,MAAA,6BAAAP,QAAA,aAMX,MAAM2R,GAAiBA,EAAGC,kBAAiBC,cACzC,MAAOjN,EAAMkN,IAAWxtC,EAAAA,EAAAA,UAAS,IAWjC,OATAuvB,EAAAA,EAAAA,YAAU,KACR,MAAMke,EAAer3D,OAAOstB,SAASK,SAASE,OAAO,SACrDupC,EACEp3D,OAAOstB,SAASK,SACb2pC,UAAU,GAAqB,IAAlBD,OAAsB7xD,EAAY6xD,GAC/CvtD,QAAQ,MAAO,IACnB,GACA,IAGDhL,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTqB,GACA8qC,GAAW9qC,KAGbvtB,EAAAA,cAACimD,EAAAA,EAAS,CAACwS,OAAK,EAAC1xC,UAAWwG,IAC1BvtB,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAM,CAAE+9C,WAAY,KAAOpkC,UAAWwG,EAAAA,UAC1CvtB,EAAAA,cAAC81D,GAAI,CAAC/uC,UAAWwG,MAEnBvtB,EAAAA,cAAA,OAAK+mB,UAAWwG,IACb6qC,EAAgBrwD,KAAI,CAAC+G,EAAM9G,IAC1BhI,EAAAA,cAAA,OACEmI,IAAKH,EACL+e,WAAWmF,EAAAA,EAAAA,GACTqB,GACAze,EAAK4pD,WAAWtJ,MAAMuJ,IAAe,IAADC,EAAAC,EAClC,OAAqB,QAAdD,EAAAD,EAAUvrD,YAAI,IAAAwrD,GAAY,QAAZC,EAAdD,EAAgBzN,kBAAU,IAAA0N,OAAZ,EAAdA,EAA4BzN,QAASA,CAAI,KAC5C79B,KAGRvtB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOC,UAAWwG,IACxBze,EAAK1B,KAAKhE,MAEbpJ,EAAAA,cAAA,OAAKyJ,GAAK,YAAWzB,IAAS+e,UAAWwG,IACtCze,EAAK4pD,WAAW3wD,KAAI,CAAC+wD,EAAS3rC,IAC7BntB,EAAAA,cAACotB,EAAAA,EAAI,CACHhgB,KAAM0rD,EAAQ1rD,KACd2Z,UAAWwG,GACXplB,IAAKglB,EACL4rC,gBAAiBxrC,EAAAA,QAEjBvtB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,OACHne,KAAK,WACLoe,UAAWwG,IAEVurC,EAAQ1rD,KAAKhE,eAS1B,EAIV+uD,GAAe52C,UAAY,CACzB62C,gBAAiB3rC,IAAAA,MAAAA,WACjB4rC,QAAS5rC,IAAAA,MAGX0rC,GAAez2C,aAAe,CAC5B02C,gBAAiB,GACjBC,SAAS,GAGX,UC5EOW,GAAW,SAAAziD,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,QAAAqkB,EAAA,4BAAA0xC,OAAA,OAAAkD,cAAA,YAAXD,GAAWt3C,aAAA,CAAAmC,MAAA,KAAAX,OAAA,IAAAgwB,KAAA,OAAA6T,MAAA,kCACXmS,GAAa,SAAA3iD,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,QAAAqkB,EAAA,wBAAA0xC,OAAA,UAAAkD,cAAA,YAAbC,GAAax3C,aAAA,CAAAmC,MAAA,KAAAX,OAAA,IAAAgwB,KAAA,OAAA6T,MAAA,kCACboS,GAAc,SAAA5iD,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,QAAAqkB,EAAA,0BAAA0xC,OAAA,OAAAkD,cAAA,aAAdE,GAAcz3C,aAAA,CAAAmC,MAAA,KAAAX,OAAA,KAAAsjC,QAAA,YAAAtT,KAAA,OAAA6T,MAAA,kCACdqS,GAAmB,SAAA7iD,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,QAAAqkB,EAAA,uBAAA0xC,OAAA,OAAAkD,cAAA,aAAnBG,GAAmB13C,aAAA,CAAAmC,MAAA,KAAAX,OAAA,KAAAsjC,QAAA,YAAAtT,KAAA,OAAA6T,MAAA,kCACnBsS,GAAiB,SAAA9iD,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,UAAAs5D,GAAA,KAAAC,GAAA,KAAAj2C,EAAA,SAAAtjB,EAAAA,cAAA,QAAAqkB,EAAA,yTAAjBg1C,GAAiB33C,aAAA,CAAAmC,MAAA,KAAAX,OAAA,KAAA6yC,OAAA,eAAA7iB,KAAA,OAAA6T,MAAA,kCACjByS,GAAU,SAAAjjD,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,UAAAs5D,GAAA,IAAAC,GAAA,IAAAj2C,EAAA,MAAAyyC,OAAA,iBAAA/1D,EAAAA,cAAA,QAAAqkB,EAAA,4GAAA6uB,KAAA,mBAAVsmB,GAAU93C,aAAA,CAAAmC,MAAA,KAAAX,OAAA,KAAAgwB,KAAA,OAAA6T,MAAA,8BAK8B,IACxC+O,GAAI,SAAAv/C,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,KAAAkzC,KAAA,OAAA4T,SAAA,WAAA9mD,EAAAA,cAAA,QAAAkzC,KAAA,UAAA6iB,OAAA,OAAAC,YAAA,MAAA3xC,EAAA,kBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,4MAAJyxC,GAAIp0C,aAAA,CAAAqlC,MAAA,6BAAAP,QAAA,aAEX,MAAMiT,GAASA,EAAGC,UAASxE,eAAcyE,yBACvC,MAAM,eAAEC,EAAc,eAAEC,EAAc,kBAAEC,GAAsB5E,EACxD/pC,GAAYC,EAAAA,EAAAA,YAAWC,EAAAA,GACvB0uC,GAAW9uC,EAAAA,EAAAA,UACX+uC,GAAY/uC,EAAAA,EAAAA,UACZgvC,GAAchvC,EAAAA,EAAAA,WACbivC,EAAcC,IAAmBrvC,EAAAA,EAAAA,WAAU4uC,IAC3CU,EAAeC,IAAoBvvC,EAAAA,EAAAA,WAAS,IAC5CwvC,EAAaC,IAAkBzvC,EAAAA,EAAAA,WAAS,IACxC0vC,EAAmBC,IAAwB3vC,EAAAA,EAAAA,WAAS,IACpD4vC,EAA6BC,IAClC7vC,EAAAA,EAAAA,WAAS,IACJ8vC,EAAoBC,IAAyB/vC,EAAAA,EAAAA,WAAS,IACtDgwC,EAAaC,IAAkBjwC,EAAAA,EAAAA,WAAU,IACzCkwC,EAA6BC,IAClCnwC,EAAAA,EAAAA,WAAS,IAEL,QAAE+mC,EAAO,gBAAEE,IAAoBP,EAAAA,EAAAA,MAC/B,OAAE2E,EAAM,sBAAE+E,IAA0B9E,EAAAA,EAAAA,MAEpC+E,EAAkB,CAAC,MAAM/sD,SAAS+nD,IAExC9b,EAAAA,EAAAA,YAAU,KACgB,OAApB0X,EACFwI,GAAe,GACa,QAAnBxI,GACTwI,GAAe,EACjB,GACC,CAAC1I,EAASE,IAEb,MAIMqJ,EAAuBA,KAC3BX,EAAqBC,IAAgCF,GACrDG,GAA+B,EAAM,EAGjCU,GAAiCA,KACrCZ,GAAsBC,IAAgCF,GAElDA,GAAqBE,EACvB7hD,YAAW,KACT8hD,GAAgCD,EAA4B,GAC3D,KAEHC,GAAgCD,EAClC,EAGIY,GAAqBj4C,IACzB,MAAMk4C,EAAgBl4C,EAAEmqC,cAAcjyC,aAAa,WAEF,YAA/C8H,EAAEmqC,cAAcjyC,aAAa,eACdu/C,IAAgBS,EAC/BR,EAAeQ,GAEfR,GAAgB,EAElB,EAGF,OACE/6D,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,UACEwoB,IAAKuxC,EACLhzC,WAAWmF,EAAAA,EAAAA,GHvEC,+BGyEVkuC,GH/BiB,uCGgChBE,GHvCa,qCG0ChBt6D,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GH7EE,kCG+EX8uC,GH3DkB,yCG4DlBd,GH9EU,mCGiFZl6D,EAAAA,cAACimD,EAAAA,EAAS,CAACwS,OAAK,EAAC+C,OAAK,EAACz0C,UHxDP,sCGyDd/mB,EAAAA,cAAA,OAAK+mB,UHpEW,wCGsEZ/mB,EAAAA,cAAA,UACE+mB,UHzFU,uCG0FVkpB,QAASmrB,GAETp7D,EAAAA,cAACm5D,GAAc,OAGnBn5D,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAM,CAAE+9C,WAAY,KAAOpkC,UH9EzB,kCG+EN/mB,EAAAA,cAAC81D,GAAI,CAAC/uC,UHhFJ,gCGkFJ/mB,EAAAA,cAAA,OAAK+mB,UH3DU,yCG4DZ6yC,EAAe7xD,KAAI,CAAC+G,EAAM9G,IACzBhI,EAAAA,cAAA,OAAK+mB,UH1Gc,gDG0G6B5e,IAAKH,GACnDhI,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTqB,EACAA,IAGFvtB,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAM0B,EAAMiY,WAAWmF,EAAAA,EAAAA,GAAQqB,IACnCvtB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,OACHne,KAAK,WACLS,KAAM0F,EAAK1F,KACX2d,UAAWwG,GAEVze,EAAK1F,WAMhBpJ,EAAAA,cAAA,OACEyJ,GAAG,iBACHsb,KAAK,SACLgC,WAAWmF,EAAAA,EAAAA,GHjHD,uCGmHR0uC,GHxFF,8BG0FA3qB,QAASA,KACP4qB,GAAsB,EAAK,EAE7BY,aAAcA,KACZZ,GAAsB,EAAM,GAG9B76D,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GH9IN,oCAkBO,6CGiIZlsB,EAAAA,cAACq5D,GAAiB,OAEpBr5D,EAAAA,cAAA,OAAK+mB,UHlJQ,2CGmJX/mB,EAAAA,cAAA,UACGk7D,EAAsBnzD,KAAK2zD,GAC1B17D,EAAAA,cAAA,MACEmI,IAAKuzD,EAAItqB,IACTrqB,UAAW20C,EAAIvF,SAAWA,GAAU5oC,GAEpCvtB,EAAAA,cAAA,KAAGiJ,KAAMyyD,EAAItqB,IAAKrqB,UAAWwG,GAC3BvtB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,OACHne,KAAK,WACLS,KAAMsyD,EAAIzhC,MACVlT,UAAWwG,GAEVmuC,EAAIzhC,cAQnBj6B,EAAAA,cAAA,OACE+kB,KAAK,SACLgC,UH1JsB,mDG2JtBkpB,QAASorB,IAETr7D,EAAAA,cAACq5D,GAAiB,OAEpBr5D,EAAAA,cAAA,SACE+mB,UHnIO,oCGoIPyB,IAAKyxC,EACL7tC,YAAa0tC,IAEf95D,EAAAA,cAAA,UACE+mB,WAAWmF,EAAAA,EAAAA,GHzIL,mCG2IJsuC,GHzIU,0CG0ITW,GHzLC,kCG2LJlrB,QAnJe0rB,KAC7BtB,GAAkBD,EAAc,GAoJlBp6D,EAAAA,cAACw5D,GAAU,SAIjBx5D,EAAAA,cAAA,OACEwoB,IAAKwxC,EACLjzC,WAAWmF,EAAAA,EAAAA,GACTqB,EACAitC,IACGE,GACDntC,KAGJvtB,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTqB,GACCmtC,GHrNM,uCGwNPA,GACA16D,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,UACE+mB,UAAWwG,EACX0iB,QAASmrB,GAETp7D,EAAAA,cAACo5D,GAAmB,OAErBS,EAAe9xD,KAAI,CAAC+G,EAAM9G,IACzBhI,EAAAA,cAAA,OACEmI,IAAKH,EACL+e,UAAWwG,EACX,UAASvlB,EACT,aACE8G,EAAK4pD,YAAc5pD,EAAK4pD,WAAWj4D,OAAS,EACxC,UACA,UAENwvC,QAASqrB,IAETt7D,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTqB,EACA6I,OAAO0kC,KAAiB9yD,GAASulB,IAGnCvtB,EAAAA,cAAA,OAAK+mB,UAAWwG,GACdvtB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,OACHne,KAAK,WACLoe,UAAWwG,GAEVze,EAAK1B,KAAKhE,OAGdgtB,OAAO0kC,KAAiB9yD,EACvBhI,EAAAA,cAACg5D,GAAW,MAEZh5D,EAAAA,cAACk5D,GAAa,OAGjBpqD,EAAK4pD,YAAc5pD,EAAK4pD,WAAWj4D,OAAS,GAC3CT,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GHrMP,2CGuMFkK,OAAO0kC,KAAiB9yD,GAASulB,GAEnC,YAAWvlB,EACX,sBAAoB,QAEpBhI,EAAAA,cAAA,OAAK+mB,UAAWwG,IACdvtB,EAAAA,cAAA,OAAK+mB,UAAWwG,IACbze,EAAK4pD,WAAW3wD,KAAK+wD,GACpB94D,EAAAA,cAAA,OACE+mB,UAAWwG,GACXplB,IAAK2wD,EAAQ1rD,KAAKhE,MAElBpJ,EAAAA,cAACotB,EAAAA,EAAI,CACHhgB,KAAM0rD,EAAQ1rD,KACd2Z,UAAWwG,IAEXvtB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,YAClBmwD,EAAQ1rD,KAAKhE,gBAWjCwwD,EAAe7xD,KAAI,CAAC+G,EAAM9G,IACzBhI,EAAAA,cAAA,OACE+mB,UAAWwG,EACXplB,IAAKH,GAELhI,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTqB,EACAA,IAGFvtB,EAAAA,cAACotB,EAAAA,EAAI,CACHhgB,KAAM0B,EACNiY,WAAWmF,EAAAA,EAAAA,GAAQqB,IAEnBvtB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,OACHne,KAAK,WACLS,KAAM0F,EAAK1F,KACX2d,UAAWwG,GAEVze,EAAK1F,aAQlBsxD,GACAd,EAAe7xD,KAAK+G,GAEhB9O,EAAAA,cAAA,OACE+mB,UH3Re,kDG4Rf5e,IAAK2G,EAAK1F,MAEVpJ,EAAAA,cAAA,OAAK+mB,UH/RS,kDGgSZ/mB,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAM0B,EAAMiY,UAAWwG,GAC3BvtB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,YAClBmG,EAAK1F,aASxBpJ,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GACTqB,EH/TU,qCGiUVitC,GACEE,GACAntC,KAGJvtB,EAAAA,cAAA,OAAK+mB,WAAWmF,EAAAA,EAAAA,GAAQqB,IACtBvtB,EAAAA,cAAA,OAAK+mB,UAAWwG,GACdvtB,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GHhSH,uCGgSkCqB,IAE1CvtB,EAAAA,cAAA,OAAK+mB,UAAWwG,IACdvtB,EAAAA,cAAA,OAAK+mB,UHrSW,kDGsSd/mB,EAAAA,cAAA,UACE+mB,UAAWwG,EACX0iB,QAASorB,IAETr7D,EAAAA,cAACo5D,GAAmB,OAEtBp5D,EAAAA,cAAA,OACE+mB,WAAWmF,EAAAA,EAAAA,GH9SR,wCArCH,uCGwVAlsB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,aAClB8iB,EAAAA,EAAAA,IAAQ,uBAAwBN,MAIvCnrB,EAAAA,cAAA,OAAK+mB,UAAWwG,IACb2tC,EAAsBnzD,KAAK2zD,GAC1B17D,EAAAA,cAAA,OACE+mB,UAAWwG,GACXplB,IAAKuzD,EAAItqB,KAETpxC,EAAAA,cAAA,KACEiJ,KAAMyyD,EAAItqB,IACVrqB,WAAWmF,EAAAA,EAAAA,GACTqB,GACAA,EACAmuC,EAAIvF,SAAWA,GAAU5oC,IAG3BvtB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,YAClB+yD,EAAIzhC,mBAa7Bj6B,EAAAA,cAACm4D,GAAc,CACbC,gBAAiBlD,EAAa2E,eAC9BxB,QAASsB,KAGZS,GACCp6D,EAAAA,cAACi2D,EAAa,CAACC,QAASA,IAAMmE,GAAiB,KAEhD,EAIPZ,GAAOl4C,UAAY,CACjBo4C,mBAAoBltC,IAAAA,KACpBitC,QAASjtC,IAAAA,KACTyoC,aAAczoC,IAAAA,QAGhBgtC,GAAO/3C,aAAe,CACpBg4C,SAAS,EACTC,oBAAoB,GAGtB,U,sBC5ZA,MAAMiC,GAAuBA,EAAG3tD,YAC9B,MAAMkd,GAAYC,EAAAA,EAAAA,YAAWC,EAAAA,IACtBiY,EAAMu4B,IAAW/wC,EAAAA,EAAAA,UAAS,KAEjCuvB,EAAAA,EAAAA,YAAU,KACRwhB,EAAQ36D,OAAOstB,SAASK,SAAS,GAChC,IAEH,MAAM/mB,GAAUg0D,EAAAA,EAAAA,UACd,IAAM,CACJ,CACE7hC,OAAOxO,EAAAA,EAAAA,IAAQ,+BAAgCN,GAC/CrrB,OAAO,EACPysB,UAAU,MAETte,EAAMlG,KAAK+G,IAAI,CAChBmrB,MAAOnrB,EAAKmrB,MACZn6B,MAAOgP,EAAKitD,eAGhB,CAAC9tD,IAKH,OACEjO,EAAAA,cAAA,OAAK+mB,UCpCyB,4DDqC5B/mB,EAAAA,cAACimD,EAAAA,EAAS,CAACwS,OAAK,GACdz4D,EAAAA,cAACsoD,GAAAA,EAAQ,CACP9yC,KAAK,WACL+yC,aAAczgD,EAAQ,GAAGhI,MACzBgI,QAASA,EACT0gD,SATa1xB,IAAU0/B,EAAAA,EAAAA,UAAU,IAAG1/B,EAAMvtB,OAAOzJ,SAUjD2oD,cAAY,EACZ1hC,UC3Cc,mDD6ChB/mB,EAAAA,cAAA,OAAK+mB,UC5Ce,sDD6CjB9Y,EAAMlG,KAAK+G,GACV9O,EAAAA,cAACotB,EAAAA,EAAI,CACHhgB,KAAM,CAAE+9C,WAAY7nB,EAAM04B,OAAQltD,EAAKitD,UACvC5zD,IAAK2G,EAAKitD,SACVh1C,UCpDU,kDDsDV/mB,EAAAA,cAACmsB,EAAAA,EAAI,CAACrF,GAAG,OAAOne,KAAK,UAClBmG,EAAKmrB,YAMZ,EAIV2hC,GAAqBr6C,UAAY,CAC/BtT,MAAOwe,IAAAA,QACLA,IAAAA,MAAS,CACPwN,MAAOxN,IAAAA,OACPsvC,SAAUtvC,IAAAA,UAEZ05B,YAGJyV,GAAqBl6C,aAAe,CAClCzT,MAAO,IAGT,UE7EOguD,GAAY,SAAA1lD,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,UAAA0jB,QAAA,MAAA41C,GAAA,KAAAC,GAAA,KAAAj2C,EAAA,KAAA4vB,KAAA,YAAAlzC,EAAAA,cAAA,QAAAqkB,EAAA,uDAAA0xC,OAAA,UAAAC,YAAA,IAAAiD,cAAA,YAAZgD,GAAYv6C,aAAA,CAAAmC,MAAA,KAAAX,OAAA,KAAAgwB,KAAA,OAAA6T,MAAA,8BAEnB,MAAMmV,GAAoBA,EAAGn1C,gBAC3B,MAAOo1C,EAASC,IAActxC,EAAAA,EAAAA,WAAS,GAEjCuxC,EAAgBA,KACpB,MAAMC,EAAWnhD,SAASuZ,gBAAgB6b,UACtC+rB,EAAW,IACbF,GAAW,GACFE,GAAY,KACrBF,GAAW,EACb,EAcF,OAJA/hB,EAAAA,EAAAA,YAAU,KACRn5C,OAAOinB,iBAAiB,SAAUk0C,EAAc,GAC/C,IAEIF,EACLn8D,EAAAA,cAAA,OAAK+kB,KAAK,SAASkrB,QAZDssB,KAClBr7D,OAAOoyB,SAAS,CACdvP,IAAK,EACL4gB,SAAU,UACV,EAQuC5d,UAAWA,GAClD/mB,EAAAA,cAACi8D,GAAY,OAEb,IAAI,EAGVC,GAAkB36C,UAAY,CAC5BwF,UAAW0F,IAAAA,QAGbyvC,GAAkBx6C,aAAe,CAC/BqF,UAAW,IAGb,U,WCpBA,MAAMy1C,GAASA,EACb5zD,WACAyR,QACAizC,cACApI,aACAuX,oBACAC,qBACA/C,qBACAgD,gBACAC,UACAzH,gBACA0H,eACAC,qBACAC,kBACK,IAADC,EAAAC,EAAAC,EACJ,MAAOlT,EAASmT,IAAcryC,EAAAA,EAAAA,UAAS,KAChCkmC,EAAWoM,IAAgBtyC,EAAAA,EAAAA,UAAS,CAAC,IACrCuyC,EAAeC,IAAoBxyC,EAAAA,EAAAA,WAAS,IAC5CyyC,EAAcC,IAAmB1yC,EAAAA,EAAAA,WAAS,IAC3C,OAAEqrC,IAAWC,EAAAA,EAAAA,OAEjBqH,0BAA2BC,EAAW,uBACtCC,EAAsB,iBACtBC,IACE1O,EAAAA,EAAAA,gBAAe,cAwHZ/jC,EAAW0yC,IAAgB/yC,EAAAA,EAAAA,WAAS,IACzC6yC,EAAuB91D,MACpBwC,QAAQnE,GAASA,EAAK43D,cAAgB3H,IACtC1tD,QAAO,CAACiG,EAAKqvD,KACL,IACFrvD,EACH,CAACqvD,EAAK51D,KAAM41D,EAAKj+D,SAElB,CAAC,KAGFo1D,EAAewI,EAAY71D,MAAMwC,QACpCnE,GAASA,EAAK43D,cAAgB3H,IAC/B,GAoBF,OAVA9b,EAAAA,EAAAA,YAAU,KAAO,IAAD2jB,EAEd,GADiB,YAAYlzD,KAAc,QAAVkzD,EAAC9uC,iBAAS,IAAA8uC,OAAA,EAATA,EAAW7uC,WAC/B,CAEZ,MAAM8uC,EAA0B,IAArB/8D,OAAO6yC,YAClB54B,SAASuZ,gBAAgB5V,MAAM8S,YAAY,OAAS,GAAEqsC,MACxD,CAdyBlU,WACzB,MAAM3Y,QAAY6Y,EAAAA,EAAAA,MACZiU,QAAajN,EAAAA,EAAAA,MAEnBkM,EAAW/rB,GACXgsB,EAAac,EAAK,EAUlBC,EAAoB,GACnB,IAGDjJ,SAAAA,EAAckJ,iBAC6B,SAA3ClU,CAAAA,EAAYmU,2BAELr+D,EAAAA,cAACs+D,EAAAA,QAAe,MAIvBt+D,EAAAA,cAACqrB,EAAAA,EAAAA,SAAyB,CAACvrB,MAAOqrB,GAChCnrB,EAAAA,cAACowD,EAAAA,EAAAA,SAAuB,CAACtwD,MAAO88D,GAC9B58D,EAAAA,cAACu+D,EAAAA,GAAgB,MACbzB,GACA98D,EAAAA,cAAAA,EAAAA,SAAA,KAEIkqD,CAAAA,EAAYsU,2BACZx+D,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,UACE8e,MAAO,CAAEgF,SAAU,QAASG,OAAQ,MAAOC,MAAO,OAClD+rB,QA3DWwuB,KAC3BjB,GAAgB,IAChBtM,EAAAA,EAAAA,MACAr4C,YAAW,KACT3X,OAAOstB,SAASkwC,QAAQ,GACvB,IAAK,GAwDSnB,EACG,wBACC,cAAaK,EAAiBe,wBAIzC3+D,EAAAA,cAAC6yD,EAAY,MACb7yD,EAAAA,cAAC4+D,GAAAA,EAAG,CACFvkD,MAAQ,GAAE66C,EAAa2J,eAAcpzC,EAAAA,EAAAA,IACnCpR,EACA8Q,KAEF2zC,KAAM3I,EACN7I,aAAa7hC,EAAAA,EAAAA,IAAQ6hC,EAAaniC,GAClC4zC,OAAQ7J,EAAa8J,WACrBzN,SAAUsL,IAAyC,QAA7BG,EAAI9H,EAAa2H,oBAAY,IAAAG,GAAM,QAANC,EAAzBD,EAA2BtP,YAAI,IAAAuP,OAAN,EAAzBA,EAAiC7rB,OAE7DpxC,EAAAA,cAACy5D,GAAM,CACLvE,aAAcA,EACdwE,QAAwB,OAAfxU,GAA6C,OAAtBuX,EAChCE,cAAeA,EACfhD,mBAAoBA,IAErBzU,GACCllD,EAAAA,cAACi/D,EAAAA,EAAI,CACHha,oBAAqBC,EAAWD,oBAChCD,WAAYE,EAAWF,WACvBE,WAAYA,EAAWA,WACvBC,mBAAoByX,KAGvBH,aAAiB,EAAjBA,EAAmBh8D,QAAS,GAC3BT,EAAAA,cAACi/D,EAAAA,EAAI,CACHhxD,MAAOwuD,EACPrX,eAAgBsX,EAChBvX,mBAAoByX,IAGvBG,EAAYt8D,OAAS,GACpBT,EAAAA,cAAC47D,GAAoB,CAAC3tD,MAAO8uD,IAE/B/8D,EAAAA,cAACk8D,GAAiB,CAACn1C,UC7PF,4CD8PhBijC,EAAQ57C,SAAS,YAAc4iD,GAC9BhxD,EAAAA,cAAA,OACE8e,MAAO,CAAE,QAASkrC,GAClBjjC,WAAWmF,EAAAA,EAAAA,GCpQX,6BDsQEmxC,GCrQG,oCDwQLr9D,EAAAA,cAAA,OAAK+mB,UC1QH,gCD2QA/mB,EAAAA,cAAA,UAE2C,QAF3Ck9D,EACGlT,EACEt8C,MAAM,wCAAgC,IAAAwvD,OAAA,EADxCA,EAC2C,GACzCpvD,MAAM,KACN6iD,MACApmD,eAELvK,EAAAA,cAAA,OAAK+mB,UCpRJ,iCDqRC/mB,EAAAA,cAACurB,EAAAA,EAAI,CACH0kB,QAASA,IAAMqtB,GAAkBD,GACjC7nD,KACE6nD,EAAgB,kBAAoB,oBAGxCr9D,EAAAA,cAACurB,EAAAA,EAAI,CAAC0kB,QAASA,IAAMmtB,EAAa,MAAO5nD,KAAK,YAGlDxV,EAAAA,cAAA,MAAI+mB,UC7RC,mCD8RH/mB,EAAAA,cAAA,UAAI,eAAagqD,GAChBrqD,OAAOgP,QAAQqiD,GAAWjpD,KAAI,EAAEI,EAAK8E,KACpCjN,EAAAA,cAAA,UACGmI,EAAI,KAAG8E,EAAIyC,iBAQ1B1P,EAAAA,cAAA,QACE+mB,WAAWmF,EAAAA,EAAAA,IACRg5B,IAAeuX,GCrSL,oCDsSXK,GCxSO,kCD2SRl0D,IAEDk0D,GACA98D,EAAAA,cAACi1D,EAAM,CAACC,aAAcA,EAAcC,cAAeA,MAI/B,EAIhCqH,GAAOj7C,UAAY,CACjB2jC,WAAYz4B,IAAAA,MAAS25B,GAAAA,GACrBsW,mBAAoBjwC,IAAAA,MAAS25B,GAAAA,GAC7BuT,mBAAoBltC,IAAAA,KACpBpS,MAAOoS,IAAAA,OAAAA,WACP6gC,YAAa7gC,IAAAA,OAAAA,WACbmwC,QAASnwC,IAAAA,KACT0oC,cAAe1oC,IAAAA,KACfkwC,cAAelwC,IAAAA,KACfgwC,kBAAmBhwC,IAAAA,MACnBswC,YAAatwC,IAAAA,QACXA,IAAAA,MAAS,CACPwN,MAAOxN,IAAAA,OACPsvC,SAAUtvC,IAAAA,WAKhB+vC,GAAO96C,aAAe,CACpBwjC,WAAY,KACZyU,oBAAoB,EACpBiD,SAAS,EACTzH,eAAe,EACfwH,eAAe,EACfF,kBAAmB,GACnBM,YAAa,IAGf,S,yFEnVA,MAAM6B,EAAMA,EACVtR,cACAwR,OACAngD,OACAugD,WACA7kD,QACA0kD,SACAxN,eAEA,MACMnG,GADW+T,EAAAA,EAAAA,eACKtwC,SAEtB,OACE7uB,EAAAA,cAACo/D,EAAAA,EAAM,CACLtlD,eAAgB,CACdglD,OACA5sC,UAAW,MAEb7X,MAAOA,EACPoH,cAAepH,EACfjN,KAAM,CAAC,CAAEiyD,IAAK,YAAap2D,KAAO,uBAAsBmiD,MACxDzsC,KAAM,CACJ,CACE,aAAc,eACdlZ,QAAS,4BAEX,CACE+P,KAAO,cACP/P,QAAS6nD,GAEX,CACE/7C,SAAW,WACX9L,QAAS4U,GAEX,CACE9I,SAAW,WACX9L,QAAS8rD,GAEX,CACEhgD,SAAW,iBACX9L,QAAS6nD,GAEX,CACE/7C,SAAW,UACX9L,QAAU,WAEZ,CACE+P,KAAO,eACP/P,QAAU,WAEZ,CACE+P,KAAO,kBACP/P,QAASs5D,GAEX,CACEvpD,KAAO,gBACP/P,QAAS4U,GAEX,CACE7E,KAAO,sBACP/P,QAAS6nD,GAEX,CACE93C,KAAO,+BACP/P,QAAU,kCAEZ,CACE+P,KAAO,SACP/P,QAAU,gBAGX7C,OACCs8D,EAASz+D,OAAS,EACd,CACE+U,KAAO,WACP/P,QAASy5D,EAAS50D,KAAM,OAE1B,IAEL1H,OAAO+b,IACV,EAINigD,EAAIl9C,aAAe,CACjBo9C,KAAM,KACNngD,KAAM,GACNugD,SAAU,GACV5R,YAAa,IAGfsR,EAAIr9C,UAAY,CACd+rC,YAAagS,IAAAA,OACbR,KAAMQ,IAAAA,OACN3gD,KAAM2gD,IAAAA,QAAkBA,IAAAA,QACxBJ,SAAUI,IAAAA,QAAkBA,IAAAA,QAC5BjlD,MAAOilD,IAAAA,OAAAA,YAGT,K,uICnGOxJ,EAAI,SAAAv/C,GAAA,OAAAvW,EAAAA,cAAA,MAAAuW,EAAAvW,EAAAA,cAAA,KAAAkzC,KAAA,OAAA4T,SAAA,WAAA9mD,EAAAA,cAAA,QAAAkzC,KAAA,UAAA6iB,OAAA,OAAAC,YAAA,MAAA3xC,EAAA,kBAAArkB,EAAAA,cAAA,QAAAkzC,KAAA,OAAA7uB,EAAA,4MAAJyxC,EAAIp0C,aAAA,CAAAqlC,MAAA,6BAAAP,QAAA,aAyCX,UAnCyB+Y,KACvB,MAAM,OAAEpJ,IAAWC,EAAAA,EAAAA,MACboJ,GAAoBC,EAAAA,EAAAA,KAAc,KACtC,MAAMt0C,GAAYC,EAAAA,EAAAA,YAAWC,EAAAA,GAC7B,OACErrB,EAAAA,cAAA,QAAM+mB,UAAWwG,EAAAA,IACfvtB,EAAAA,cAACimD,EAAAA,EAAS,KACRjmD,EAAAA,cAAA,OAAK+mB,UAAWwG,EAAAA,IACdvtB,EAAAA,cAACotB,EAAAA,EAAI,CAAChgB,KAAM,CAAE+9C,WAAY,MACxBnrD,EAAAA,cAAC81D,EAAI,CAAC/uC,UAAWwG,EAAAA,OAGrBvtB,EAAAA,cAAA,OAAK+mB,UAAWwG,EAAAA,IACdvtB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,KACHne,KAAK,KACLoe,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAAA,GAAcA,EAAAA,MAEhC9B,EAAAA,EAAAA,IAAQ,yBAA0BN,IAErCnrB,EAAAA,cAACmsB,EAAAA,EAAI,CACHrF,GAAG,OACHne,KAAK,KACLoe,WAAWmF,EAAAA,EAAAA,GAAQqB,EAAAA,GAAcA,EAAAA,MAEhC9B,EAAAA,EAAAA,IAAQ,6BAA8BN,MAIxC,GAERgrC,GACH,OAAOn2D,EAAAA,cAACw/D,EAAiB,KAAG,C,kCC3C9B,gwO","sources":["webpack://if-website/./node_modules/@contentful/rich-text-react-renderer/dist/rich-text-react-renderer.es5.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/blocks.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/emptyDocument.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/helpers.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/index.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/inlines.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/marks.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/nodeTypes.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/schemaConstraints.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/types.js","webpack://if-website/./node_modules/camelcase/index.js","webpack://if-website/./node_modules/contentful-resolve-response/dist/esm/index.js","webpack://if-website/./node_modules/fast-copy/dist/fast-copy.js","webpack://if-website/./node_modules/react-fast-compare/index.js","webpack://if-website/./node_modules/react-helmet/es/Helmet.js","webpack://if-website/./node_modules/react-side-effect/lib/index.js","webpack://if-website/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://if-website/../src/image-utils.ts","webpack://if-website/../src/components/hooks.ts","webpack://if-website/../src/components/layout-wrapper.tsx","webpack://if-website/../src/components/picture.tsx","webpack://if-website/../src/components/placeholder.tsx","webpack://if-website/../src/components/main-image.tsx","webpack://if-website/../src/components/gatsby-image.server.tsx","webpack://if-website/../src/components/gatsby-image.browser.tsx","webpack://if-website/../src/components/static-image.server.tsx","webpack://if-website/../src/components/static-image.tsx","webpack://if-website/./node_modules/gatsby-source-contentful/rich-text.js","webpack://if-website/./src/components/cms-modules/form/index.jsx","webpack://if-website/./src/components/cms-modules/form/form.module.scss","webpack://if-website/./src/components/cms-modules/hero/components/heroTeaser/heroTeaser.module.scss","webpack://if-website/./src/components/cms-modules/hero/components/heroTeaser/index.jsx","webpack://if-website/./src/components/cms-modules/hero/hero.module.scss","webpack://if-website/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://if-website/./node_modules/swiper/shared/utils.mjs","webpack://if-website/./node_modules/swiper/shared/swiper-core.mjs","webpack://if-website/./node_modules/swiper/shared/update-swiper.mjs","webpack://if-website/./node_modules/swiper/swiper-react.mjs","webpack://if-website/./node_modules/swiper/shared/update-on-virtual-data.mjs","webpack://if-website/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://if-website/./node_modules/swiper/modules/navigation.mjs","webpack://if-website/./node_modules/swiper/shared/classes-to-selector.mjs","webpack://if-website/./node_modules/swiper/modules/pagination.mjs","webpack://if-website/./src/components/ui/carousel/styles.module.scss","webpack://if-website/./src/components/ui/carousel/index.jsx","webpack://if-website/./src/components/cms-modules/hero/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/designAward/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/goldAward/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/socialImpact/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/talentAward/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/taipeiCycleAward/index.jsx","webpack://if-website/./src/components/ui/awardBadge/index.jsx","webpack://if-website/./src/components/ui/awardBadge/styles.module.scss","webpack://if-website/./src/components/ui/button/styles.module.scss","webpack://if-website/./src/components/ui/button/index.jsx","webpack://if-website/./src/components/ui/dropdown/index.jsx","webpack://if-website/./src/components/ui/dropdown/dropdown.module.scss","webpack://if-website/./src/components/ui/filterSearch/components/searchField/styles.module.scss","webpack://if-website/./src/components/ui/filterSearch/components/searchField/index.jsx","webpack://if-website/./src/hooks/useDebounce.js","webpack://if-website/./src/components/ui/image/styles.module.scss","webpack://if-website/./src/components/ui/image/index.jsx","webpack://if-website/./src/components/ui/richText/styles.module.scss","webpack://if-website/./src/components/ui/richText/index.jsx","webpack://if-website/./src/components/ui/iframe/index.jsx","webpack://if-website/./src/components/ui/video/styles.module.scss","webpack://if-website/./src/components/ui/video/index.jsx","webpack://if-website/./src/helpers/fetch.js","webpack://if-website/./src/helpers/swapImageURI.js","webpack://if-website/./src/hooks/useScrollPosition.js","webpack://if-website/./src/modules/cookieBanner/cookieBanner.module.scss","webpack://if-website/./src/modules/cookieBanner/dc_bakery.js","webpack://if-website/./src/modules/cookieBanner/index.jsx","webpack://if-website/./src/modules/socialIcons/styles.module.scss","webpack://if-website/./src/modules/socialIcons/index.jsx","webpack://if-website/./src/modules/footer/footer.module.scss","webpack://if-website/./src/modules/footer/index.jsx","webpack://if-website/./src/modules/header/components/searchOverlay/index.jsx","webpack://if-website/./src/modules/header/components/searchOverlay/styles.module.scss","webpack://if-website/./src/modules/header/header.module.scss","webpack://if-website/./src/modules/cubeNavigation/cubeNavigation.module.scss","webpack://if-website/./src/modules/cubeNavigation/index.jsx","webpack://if-website/./src/modules/header/index.jsx","webpack://if-website/./src/modules/anchorLinkNavigation/index.jsx","webpack://if-website/./src/modules/anchorLinkNavigation/anchorLinkNavigation.module.scss","webpack://if-website/./src/modules/scrollToTop/index.jsx","webpack://if-website/./src/modules/layout/index.jsx","webpack://if-website/./src/modules/layout/layout.module.scss","webpack://if-website/./src/modules/seo/index.jsx","webpack://if-website/./src/pages/maintenance.js","webpack://if-website/./src/images/placeholder-image.png"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nfunction unwrapExports(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nfunction createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n}\nvar blocks = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.BLOCKS = void 0;\n /**\n * Map of all Contentful block types. Blocks contain inline or block nodes.\n */\n var BLOCKS;\n (function (BLOCKS) {\n BLOCKS[\"DOCUMENT\"] = \"document\";\n BLOCKS[\"PARAGRAPH\"] = \"paragraph\";\n BLOCKS[\"HEADING_1\"] = \"heading-1\";\n BLOCKS[\"HEADING_2\"] = \"heading-2\";\n BLOCKS[\"HEADING_3\"] = \"heading-3\";\n BLOCKS[\"HEADING_4\"] = \"heading-4\";\n BLOCKS[\"HEADING_5\"] = \"heading-5\";\n BLOCKS[\"HEADING_6\"] = \"heading-6\";\n BLOCKS[\"OL_LIST\"] = \"ordered-list\";\n BLOCKS[\"UL_LIST\"] = \"unordered-list\";\n BLOCKS[\"LIST_ITEM\"] = \"list-item\";\n BLOCKS[\"HR\"] = \"hr\";\n BLOCKS[\"QUOTE\"] = \"blockquote\";\n BLOCKS[\"EMBEDDED_ENTRY\"] = \"embedded-entry-block\";\n BLOCKS[\"EMBEDDED_ASSET\"] = \"embedded-asset-block\";\n BLOCKS[\"TABLE\"] = \"table\";\n BLOCKS[\"TABLE_ROW\"] = \"table-row\";\n BLOCKS[\"TABLE_CELL\"] = \"table-cell\";\n BLOCKS[\"TABLE_HEADER_CELL\"] = \"table-header-cell\";\n })(BLOCKS = exports.BLOCKS || (exports.BLOCKS = {}));\n});\nunwrapExports(blocks);\nvar blocks_1 = blocks.BLOCKS;\nvar inlines = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.INLINES = void 0;\n /**\n * Map of all Contentful inline types. Inline contain inline or text nodes.\n */\n var INLINES;\n (function (INLINES) {\n INLINES[\"HYPERLINK\"] = \"hyperlink\";\n INLINES[\"ENTRY_HYPERLINK\"] = \"entry-hyperlink\";\n INLINES[\"ASSET_HYPERLINK\"] = \"asset-hyperlink\";\n INLINES[\"EMBEDDED_ENTRY\"] = \"embedded-entry-inline\";\n })(INLINES = exports.INLINES || (exports.INLINES = {}));\n});\nunwrapExports(inlines);\nvar inlines_1 = inlines.INLINES;\nvar marks = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n /**\n * Map of all Contentful marks.\n */\n var MARKS;\n (function (MARKS) {\n MARKS[\"BOLD\"] = \"bold\";\n MARKS[\"ITALIC\"] = \"italic\";\n MARKS[\"UNDERLINE\"] = \"underline\";\n MARKS[\"CODE\"] = \"code\";\n MARKS[\"SUPERSCRIPT\"] = \"superscript\";\n MARKS[\"SUBSCRIPT\"] = \"subscript\";\n })(MARKS || (MARKS = {}));\n exports.default = MARKS;\n});\nunwrapExports(marks);\nvar schemaConstraints = createCommonjsModule(function (module, exports) {\n var __spreadArray = commonjsGlobal && commonjsGlobal.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n var _a;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.V1_MARKS = exports.V1_NODE_TYPES = exports.TEXT_CONTAINERS = exports.HEADINGS = exports.CONTAINERS = exports.VOID_BLOCKS = exports.TABLE_BLOCKS = exports.LIST_ITEM_BLOCKS = exports.TOP_LEVEL_BLOCKS = void 0;\n var marks_1 = __importDefault(marks);\n /**\n * Array of all top level block types.\n * Only these block types can be the direct children of the document.\n */\n exports.TOP_LEVEL_BLOCKS = [blocks.BLOCKS.PARAGRAPH, blocks.BLOCKS.HEADING_1, blocks.BLOCKS.HEADING_2, blocks.BLOCKS.HEADING_3, blocks.BLOCKS.HEADING_4, blocks.BLOCKS.HEADING_5, blocks.BLOCKS.HEADING_6, blocks.BLOCKS.OL_LIST, blocks.BLOCKS.UL_LIST, blocks.BLOCKS.HR, blocks.BLOCKS.QUOTE, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET, blocks.BLOCKS.TABLE];\n /**\n * Array of all allowed block types inside list items\n */\n exports.LIST_ITEM_BLOCKS = [blocks.BLOCKS.PARAGRAPH, blocks.BLOCKS.HEADING_1, blocks.BLOCKS.HEADING_2, blocks.BLOCKS.HEADING_3, blocks.BLOCKS.HEADING_4, blocks.BLOCKS.HEADING_5, blocks.BLOCKS.HEADING_6, blocks.BLOCKS.OL_LIST, blocks.BLOCKS.UL_LIST, blocks.BLOCKS.HR, blocks.BLOCKS.QUOTE, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET];\n exports.TABLE_BLOCKS = [blocks.BLOCKS.TABLE, blocks.BLOCKS.TABLE_ROW, blocks.BLOCKS.TABLE_CELL, blocks.BLOCKS.TABLE_HEADER_CELL];\n /**\n * Array of all void block types\n */\n exports.VOID_BLOCKS = [blocks.BLOCKS.HR, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET];\n /**\n * Dictionary of all container block types, and the set block types they accept as children.\n *\n * Note: This does not include `[BLOCKS.DOCUMENT]: TOP_LEVEL_BLOCKS`\n */\n exports.CONTAINERS = (_a = {}, _a[blocks.BLOCKS.OL_LIST] = [blocks.BLOCKS.LIST_ITEM], _a[blocks.BLOCKS.UL_LIST] = [blocks.BLOCKS.LIST_ITEM], _a[blocks.BLOCKS.LIST_ITEM] = exports.LIST_ITEM_BLOCKS, _a[blocks.BLOCKS.QUOTE] = [blocks.BLOCKS.PARAGRAPH], _a[blocks.BLOCKS.TABLE] = [blocks.BLOCKS.TABLE_ROW], _a[blocks.BLOCKS.TABLE_ROW] = [blocks.BLOCKS.TABLE_CELL, blocks.BLOCKS.TABLE_HEADER_CELL], _a[blocks.BLOCKS.TABLE_CELL] = [blocks.BLOCKS.PARAGRAPH], _a[blocks.BLOCKS.TABLE_HEADER_CELL] = [blocks.BLOCKS.PARAGRAPH], _a);\n /**\n * Array of all heading levels\n */\n exports.HEADINGS = [blocks.BLOCKS.HEADING_1, blocks.BLOCKS.HEADING_2, blocks.BLOCKS.HEADING_3, blocks.BLOCKS.HEADING_4, blocks.BLOCKS.HEADING_5, blocks.BLOCKS.HEADING_6];\n /**\n * Array of all block types that may contain text and inline nodes.\n */\n exports.TEXT_CONTAINERS = __spreadArray([blocks.BLOCKS.PARAGRAPH], exports.HEADINGS, true);\n /**\n * Node types before `tables` release.\n */\n exports.V1_NODE_TYPES = [blocks.BLOCKS.DOCUMENT, blocks.BLOCKS.PARAGRAPH, blocks.BLOCKS.HEADING_1, blocks.BLOCKS.HEADING_2, blocks.BLOCKS.HEADING_3, blocks.BLOCKS.HEADING_4, blocks.BLOCKS.HEADING_5, blocks.BLOCKS.HEADING_6, blocks.BLOCKS.OL_LIST, blocks.BLOCKS.UL_LIST, blocks.BLOCKS.LIST_ITEM, blocks.BLOCKS.HR, blocks.BLOCKS.QUOTE, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET, inlines.INLINES.HYPERLINK, inlines.INLINES.ENTRY_HYPERLINK, inlines.INLINES.ASSET_HYPERLINK, inlines.INLINES.EMBEDDED_ENTRY, 'text'];\n /**\n * Marks before `superscript` & `subscript` release.\n */\n exports.V1_MARKS = [marks_1.default.BOLD, marks_1.default.CODE, marks_1.default.ITALIC, marks_1.default.UNDERLINE];\n});\nunwrapExports(schemaConstraints);\nvar schemaConstraints_1 = schemaConstraints.V1_MARKS;\nvar schemaConstraints_2 = schemaConstraints.V1_NODE_TYPES;\nvar schemaConstraints_3 = schemaConstraints.TEXT_CONTAINERS;\nvar schemaConstraints_4 = schemaConstraints.HEADINGS;\nvar schemaConstraints_5 = schemaConstraints.CONTAINERS;\nvar schemaConstraints_6 = schemaConstraints.VOID_BLOCKS;\nvar schemaConstraints_7 = schemaConstraints.TABLE_BLOCKS;\nvar schemaConstraints_8 = schemaConstraints.LIST_ITEM_BLOCKS;\nvar schemaConstraints_9 = schemaConstraints.TOP_LEVEL_BLOCKS;\nvar types = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\nunwrapExports(types);\nvar nodeTypes = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\nunwrapExports(nodeTypes);\nvar emptyDocument = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n /**\n * A rich text document considered to be empty.\n * Any other document structure than this is not considered empty.\n */\n var EMPTY_DOCUMENT = {\n nodeType: blocks.BLOCKS.DOCUMENT,\n data: {},\n content: [{\n nodeType: blocks.BLOCKS.PARAGRAPH,\n data: {},\n content: [{\n nodeType: 'text',\n value: '',\n marks: [],\n data: {}\n }]\n }]\n };\n exports.default = EMPTY_DOCUMENT;\n});\nunwrapExports(emptyDocument);\nvar helpers = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isText = exports.isBlock = exports.isInline = void 0;\n\n /**\n * Tiny replacement for Object.values(object).includes(key) to\n * avoid including CoreJS polyfills\n */\n function hasValue(obj, value) {\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n if (value === obj[key]) {\n return true;\n }\n }\n return false;\n }\n /**\n * Checks if the node is an instance of Inline.\n */\n function isInline(node) {\n return hasValue(inlines.INLINES, node.nodeType);\n }\n exports.isInline = isInline;\n /**\n * Checks if the node is an instance of Block.\n */\n function isBlock(node) {\n return hasValue(blocks.BLOCKS, node.nodeType);\n }\n exports.isBlock = isBlock;\n /**\n * Checks if the node is an instance of Text.\n */\n function isText(node) {\n return node.nodeType === 'text';\n }\n exports.isText = isText;\n});\nunwrapExports(helpers);\nvar helpers_1 = helpers.isText;\nvar helpers_2 = helpers.isBlock;\nvar helpers_3 = helpers.isInline;\nvar dist = createCommonjsModule(function (module, exports) {\n var __createBinding = commonjsGlobal && commonjsGlobal.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n } : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n });\n var __setModuleDefault = commonjsGlobal && commonjsGlobal.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n } : function (o, v) {\n o[\"default\"] = v;\n });\n var __exportStar = commonjsGlobal && commonjsGlobal.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n };\n var __importStar = commonjsGlobal && commonjsGlobal.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n };\n var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.helpers = exports.EMPTY_DOCUMENT = exports.MARKS = exports.INLINES = exports.BLOCKS = void 0;\n Object.defineProperty(exports, \"BLOCKS\", {\n enumerable: true,\n get: function () {\n return blocks.BLOCKS;\n }\n });\n Object.defineProperty(exports, \"INLINES\", {\n enumerable: true,\n get: function () {\n return inlines.INLINES;\n }\n });\n Object.defineProperty(exports, \"MARKS\", {\n enumerable: true,\n get: function () {\n return __importDefault(marks).default;\n }\n });\n __exportStar(schemaConstraints, exports);\n __exportStar(types, exports);\n __exportStar(nodeTypes, exports);\n Object.defineProperty(exports, \"EMPTY_DOCUMENT\", {\n enumerable: true,\n get: function () {\n return __importDefault(emptyDocument).default;\n }\n });\n var helpers$1 = __importStar(helpers);\n exports.helpers = helpers$1;\n});\nunwrapExports(dist);\nvar dist_1 = dist.helpers;\nvar dist_2 = dist.EMPTY_DOCUMENT;\nvar dist_3 = dist.MARKS;\nvar dist_4 = dist.INLINES;\nvar dist_5 = dist.BLOCKS;\nfunction appendKeyToValidElement(element, key) {\n if (React.isValidElement(element) && element.key === null) {\n return React.cloneElement(element, {\n key: key\n });\n }\n return element;\n}\nfunction nodeListToReactComponents(nodes, options) {\n return nodes.map(function (node, index) {\n return appendKeyToValidElement(nodeToReactComponent(node, options), index);\n });\n}\nfunction nodeToReactComponent(node, options) {\n var renderNode = options.renderNode,\n renderMark = options.renderMark,\n renderText = options.renderText;\n if (dist_1.isText(node)) {\n return node.marks.reduce(function (value, mark) {\n if (!renderMark[mark.type]) {\n return value;\n }\n return renderMark[mark.type](value);\n }, renderText ? renderText(node.value) : node.value);\n } else {\n var children = nodeListToReactComponents(node.content, options);\n if (!node.nodeType || !renderNode[node.nodeType]) {\n return React__default.createElement(React__default.Fragment, null, children);\n }\n return renderNode[node.nodeType](node, children);\n }\n}\nvar _a, _b;\nvar defaultNodeRenderers = (_a = {}, _a[dist_5.DOCUMENT] = function (node, children) {\n return children;\n}, _a[dist_5.PARAGRAPH] = function (node, children) {\n return React__default.createElement(\"p\", null, children);\n}, _a[dist_5.HEADING_1] = function (node, children) {\n return React__default.createElement(\"h1\", null, children);\n}, _a[dist_5.HEADING_2] = function (node, children) {\n return React__default.createElement(\"h2\", null, children);\n}, _a[dist_5.HEADING_3] = function (node, children) {\n return React__default.createElement(\"h3\", null, children);\n}, _a[dist_5.HEADING_4] = function (node, children) {\n return React__default.createElement(\"h4\", null, children);\n}, _a[dist_5.HEADING_5] = function (node, children) {\n return React__default.createElement(\"h5\", null, children);\n}, _a[dist_5.HEADING_6] = function (node, children) {\n return React__default.createElement(\"h6\", null, children);\n}, _a[dist_5.EMBEDDED_ENTRY] = function (node, children) {\n return React__default.createElement(\"div\", null, children);\n}, _a[dist_5.UL_LIST] = function (node, children) {\n return React__default.createElement(\"ul\", null, children);\n}, _a[dist_5.OL_LIST] = function (node, children) {\n return React__default.createElement(\"ol\", null, children);\n}, _a[dist_5.LIST_ITEM] = function (node, children) {\n return React__default.createElement(\"li\", null, children);\n}, _a[dist_5.QUOTE] = function (node, children) {\n return React__default.createElement(\"blockquote\", null, children);\n}, _a[dist_5.HR] = function () {\n return React__default.createElement(\"hr\", null);\n}, _a[dist_5.TABLE] = function (node, children) {\n return React__default.createElement(\"table\", null, React__default.createElement(\"tbody\", null, children));\n}, _a[dist_5.TABLE_ROW] = function (node, children) {\n return React__default.createElement(\"tr\", null, children);\n}, _a[dist_5.TABLE_HEADER_CELL] = function (node, children) {\n return React__default.createElement(\"th\", null, children);\n}, _a[dist_5.TABLE_CELL] = function (node, children) {\n return React__default.createElement(\"td\", null, children);\n}, _a[dist_4.ASSET_HYPERLINK] = function (node) {\n return defaultInline(dist_4.ASSET_HYPERLINK, node);\n}, _a[dist_4.ENTRY_HYPERLINK] = function (node) {\n return defaultInline(dist_4.ENTRY_HYPERLINK, node);\n}, _a[dist_4.EMBEDDED_ENTRY] = function (node) {\n return defaultInline(dist_4.EMBEDDED_ENTRY, node);\n}, _a[dist_4.HYPERLINK] = function (node, children) {\n return React__default.createElement(\"a\", {\n href: node.data.uri\n }, children);\n}, _a);\nvar defaultMarkRenderers = (_b = {}, _b[dist_3.BOLD] = function (text) {\n return React__default.createElement(\"b\", null, text);\n}, _b[dist_3.ITALIC] = function (text) {\n return React__default.createElement(\"i\", null, text);\n}, _b[dist_3.UNDERLINE] = function (text) {\n return React__default.createElement(\"u\", null, text);\n}, _b[dist_3.CODE] = function (text) {\n return React__default.createElement(\"code\", null, text);\n}, _b[dist_3.SUPERSCRIPT] = function (text) {\n return React__default.createElement(\"sup\", null, text);\n}, _b[dist_3.SUBSCRIPT] = function (text) {\n return React__default.createElement(\"sub\", null, text);\n}, _b);\nfunction defaultInline(type, node) {\n return React__default.createElement(\"span\", {\n key: node.data.target.sys.id\n }, \"type: \", node.nodeType, \" id: \", node.data.target.sys.id);\n}\n/**\r\n * Serialize a Contentful Rich Text `document` to React tree\r\n */\nfunction documentToReactComponents(richTextDocument, options) {\n if (options === void 0) {\n options = {};\n }\n if (!richTextDocument) {\n return null;\n }\n return nodeToReactComponent(richTextDocument, {\n renderNode: __assign(__assign({}, defaultNodeRenderers), options.renderNode),\n renderMark: __assign(__assign({}, defaultMarkRenderers), options.renderMark),\n renderText: options.renderText\n });\n}\nexports.documentToReactComponents = documentToReactComponents;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BLOCKS = void 0;\n/**\n * Map of all Contentful block types. Blocks contain inline or block nodes.\n */\nvar BLOCKS;\n(function (BLOCKS) {\n BLOCKS[\"DOCUMENT\"] = \"document\";\n BLOCKS[\"PARAGRAPH\"] = \"paragraph\";\n BLOCKS[\"HEADING_1\"] = \"heading-1\";\n BLOCKS[\"HEADING_2\"] = \"heading-2\";\n BLOCKS[\"HEADING_3\"] = \"heading-3\";\n BLOCKS[\"HEADING_4\"] = \"heading-4\";\n BLOCKS[\"HEADING_5\"] = \"heading-5\";\n BLOCKS[\"HEADING_6\"] = \"heading-6\";\n BLOCKS[\"OL_LIST\"] = \"ordered-list\";\n BLOCKS[\"UL_LIST\"] = \"unordered-list\";\n BLOCKS[\"LIST_ITEM\"] = \"list-item\";\n BLOCKS[\"HR\"] = \"hr\";\n BLOCKS[\"QUOTE\"] = \"blockquote\";\n BLOCKS[\"EMBEDDED_ENTRY\"] = \"embedded-entry-block\";\n BLOCKS[\"EMBEDDED_ASSET\"] = \"embedded-asset-block\";\n BLOCKS[\"TABLE\"] = \"table\";\n BLOCKS[\"TABLE_ROW\"] = \"table-row\";\n BLOCKS[\"TABLE_CELL\"] = \"table-cell\";\n BLOCKS[\"TABLE_HEADER_CELL\"] = \"table-header-cell\";\n})(BLOCKS = exports.BLOCKS || (exports.BLOCKS = {}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar blocks_1 = require(\"./blocks\");\n/**\n * A rich text document considered to be empty.\n * Any other document structure than this is not considered empty.\n */\nvar EMPTY_DOCUMENT = {\n nodeType: blocks_1.BLOCKS.DOCUMENT,\n data: {},\n content: [{\n nodeType: blocks_1.BLOCKS.PARAGRAPH,\n data: {},\n content: [{\n nodeType: 'text',\n value: '',\n marks: [],\n data: {}\n }]\n }]\n};\nexports.default = EMPTY_DOCUMENT;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isText = exports.isBlock = exports.isInline = void 0;\nvar blocks_1 = require(\"./blocks\");\nvar inlines_1 = require(\"./inlines\");\n/**\n * Tiny replacement for Object.values(object).includes(key) to\n * avoid including CoreJS polyfills\n */\nfunction hasValue(obj, value) {\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n if (value === obj[key]) {\n return true;\n }\n }\n return false;\n}\n/**\n * Checks if the node is an instance of Inline.\n */\nfunction isInline(node) {\n return hasValue(inlines_1.INLINES, node.nodeType);\n}\nexports.isInline = isInline;\n/**\n * Checks if the node is an instance of Block.\n */\nfunction isBlock(node) {\n return hasValue(blocks_1.BLOCKS, node.nodeType);\n}\nexports.isBlock = isBlock;\n/**\n * Checks if the node is an instance of Text.\n */\nfunction isText(node) {\n return node.nodeType === 'text';\n}\nexports.isText = isText;","\"use strict\";\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.helpers = exports.EMPTY_DOCUMENT = exports.MARKS = exports.INLINES = exports.BLOCKS = void 0;\nvar blocks_1 = require(\"./blocks\");\nObject.defineProperty(exports, \"BLOCKS\", {\n enumerable: true,\n get: function () {\n return blocks_1.BLOCKS;\n }\n});\nvar inlines_1 = require(\"./inlines\");\nObject.defineProperty(exports, \"INLINES\", {\n enumerable: true,\n get: function () {\n return inlines_1.INLINES;\n }\n});\nvar marks_1 = require(\"./marks\");\nObject.defineProperty(exports, \"MARKS\", {\n enumerable: true,\n get: function () {\n return __importDefault(marks_1).default;\n }\n});\n__exportStar(require(\"./schemaConstraints\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./nodeTypes\"), exports);\nvar emptyDocument_1 = require(\"./emptyDocument\");\nObject.defineProperty(exports, \"EMPTY_DOCUMENT\", {\n enumerable: true,\n get: function () {\n return __importDefault(emptyDocument_1).default;\n }\n});\nvar helpers = __importStar(require(\"./helpers\"));\nexports.helpers = helpers;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.INLINES = void 0;\n/**\n * Map of all Contentful inline types. Inline contain inline or text nodes.\n */\nvar INLINES;\n(function (INLINES) {\n INLINES[\"HYPERLINK\"] = \"hyperlink\";\n INLINES[\"ENTRY_HYPERLINK\"] = \"entry-hyperlink\";\n INLINES[\"ASSET_HYPERLINK\"] = \"asset-hyperlink\";\n INLINES[\"EMBEDDED_ENTRY\"] = \"embedded-entry-inline\";\n})(INLINES = exports.INLINES || (exports.INLINES = {}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Map of all Contentful marks.\n */\nvar MARKS;\n(function (MARKS) {\n MARKS[\"BOLD\"] = \"bold\";\n MARKS[\"ITALIC\"] = \"italic\";\n MARKS[\"UNDERLINE\"] = \"underline\";\n MARKS[\"CODE\"] = \"code\";\n MARKS[\"SUPERSCRIPT\"] = \"superscript\";\n MARKS[\"SUBSCRIPT\"] = \"subscript\";\n})(MARKS || (MARKS = {}));\nexports.default = MARKS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","\"use strict\";\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.V1_MARKS = exports.V1_NODE_TYPES = exports.TEXT_CONTAINERS = exports.HEADINGS = exports.CONTAINERS = exports.VOID_BLOCKS = exports.TABLE_BLOCKS = exports.LIST_ITEM_BLOCKS = exports.TOP_LEVEL_BLOCKS = void 0;\nvar blocks_1 = require(\"./blocks\");\nvar inlines_1 = require(\"./inlines\");\nvar marks_1 = __importDefault(require(\"./marks\"));\n/**\n * Array of all top level block types.\n * Only these block types can be the direct children of the document.\n */\nexports.TOP_LEVEL_BLOCKS = [blocks_1.BLOCKS.PARAGRAPH, blocks_1.BLOCKS.HEADING_1, blocks_1.BLOCKS.HEADING_2, blocks_1.BLOCKS.HEADING_3, blocks_1.BLOCKS.HEADING_4, blocks_1.BLOCKS.HEADING_5, blocks_1.BLOCKS.HEADING_6, blocks_1.BLOCKS.OL_LIST, blocks_1.BLOCKS.UL_LIST, blocks_1.BLOCKS.HR, blocks_1.BLOCKS.QUOTE, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET, blocks_1.BLOCKS.TABLE];\n/**\n * Array of all allowed block types inside list items\n */\nexports.LIST_ITEM_BLOCKS = [blocks_1.BLOCKS.PARAGRAPH, blocks_1.BLOCKS.HEADING_1, blocks_1.BLOCKS.HEADING_2, blocks_1.BLOCKS.HEADING_3, blocks_1.BLOCKS.HEADING_4, blocks_1.BLOCKS.HEADING_5, blocks_1.BLOCKS.HEADING_6, blocks_1.BLOCKS.OL_LIST, blocks_1.BLOCKS.UL_LIST, blocks_1.BLOCKS.HR, blocks_1.BLOCKS.QUOTE, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET];\nexports.TABLE_BLOCKS = [blocks_1.BLOCKS.TABLE, blocks_1.BLOCKS.TABLE_ROW, blocks_1.BLOCKS.TABLE_CELL, blocks_1.BLOCKS.TABLE_HEADER_CELL];\n/**\n * Array of all void block types\n */\nexports.VOID_BLOCKS = [blocks_1.BLOCKS.HR, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET];\n/**\n * Dictionary of all container block types, and the set block types they accept as children.\n *\n * Note: This does not include `[BLOCKS.DOCUMENT]: TOP_LEVEL_BLOCKS`\n */\nexports.CONTAINERS = (_a = {}, _a[blocks_1.BLOCKS.OL_LIST] = [blocks_1.BLOCKS.LIST_ITEM], _a[blocks_1.BLOCKS.UL_LIST] = [blocks_1.BLOCKS.LIST_ITEM], _a[blocks_1.BLOCKS.LIST_ITEM] = exports.LIST_ITEM_BLOCKS, _a[blocks_1.BLOCKS.QUOTE] = [blocks_1.BLOCKS.PARAGRAPH], _a[blocks_1.BLOCKS.TABLE] = [blocks_1.BLOCKS.TABLE_ROW], _a[blocks_1.BLOCKS.TABLE_ROW] = [blocks_1.BLOCKS.TABLE_CELL, blocks_1.BLOCKS.TABLE_HEADER_CELL], _a[blocks_1.BLOCKS.TABLE_CELL] = [blocks_1.BLOCKS.PARAGRAPH], _a[blocks_1.BLOCKS.TABLE_HEADER_CELL] = [blocks_1.BLOCKS.PARAGRAPH], _a);\n/**\n * Array of all heading levels\n */\nexports.HEADINGS = [blocks_1.BLOCKS.HEADING_1, blocks_1.BLOCKS.HEADING_2, blocks_1.BLOCKS.HEADING_3, blocks_1.BLOCKS.HEADING_4, blocks_1.BLOCKS.HEADING_5, blocks_1.BLOCKS.HEADING_6];\n/**\n * Array of all block types that may contain text and inline nodes.\n */\nexports.TEXT_CONTAINERS = __spreadArray([blocks_1.BLOCKS.PARAGRAPH], exports.HEADINGS, true);\n/**\n * Node types before `tables` release.\n */\nexports.V1_NODE_TYPES = [blocks_1.BLOCKS.DOCUMENT, blocks_1.BLOCKS.PARAGRAPH, blocks_1.BLOCKS.HEADING_1, blocks_1.BLOCKS.HEADING_2, blocks_1.BLOCKS.HEADING_3, blocks_1.BLOCKS.HEADING_4, blocks_1.BLOCKS.HEADING_5, blocks_1.BLOCKS.HEADING_6, blocks_1.BLOCKS.OL_LIST, blocks_1.BLOCKS.UL_LIST, blocks_1.BLOCKS.LIST_ITEM, blocks_1.BLOCKS.HR, blocks_1.BLOCKS.QUOTE, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET, inlines_1.INLINES.HYPERLINK, inlines_1.INLINES.ENTRY_HYPERLINK, inlines_1.INLINES.ASSET_HYPERLINK, inlines_1.INLINES.EMBEDDED_ENTRY, 'text'];\n/**\n * Marks before `superscript` & `subscript` release.\n */\nexports.V1_MARKS = [marks_1.default.BOLD, marks_1.default.CODE, marks_1.default.ITALIC, marks_1.default.UNDERLINE];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","'use strict';\n\nconst preserveCamelCase = string => {\n let isLastCharLower = false;\n let isLastCharUpper = false;\n let isLastLastCharUpper = false;\n for (let i = 0; i < string.length; i++) {\n const character = string[i];\n if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n return string;\n};\nconst camelCase = (input, options) => {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n options = Object.assign({\n pascalCase: false\n }, options);\n const postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n if (Array.isArray(input)) {\n input = input.map(x => x.trim()).filter(x => x.length).join('-');\n } else {\n input = input.trim();\n }\n if (input.length === 0) {\n return '';\n }\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n const hasUpperCase = input !== input.toLowerCase();\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\n input = input.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase()).replace(/\\d+(\\w|$)/g, m => m.toUpperCase());\n return postProcess(input);\n};\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nimport copy from 'fast-copy';\nvar UNRESOLVED_LINK = {}; // unique object to avoid polyfill bloat using Symbol()\n\n/**\n * isLink Function\n * Checks if the object has sys.type \"Link\"\n * @param object\n */\nvar isLink = function isLink(object) {\n return object && object.sys && object.sys.type === 'Link';\n};\n\n/**\n * isResourceLink Function\n * Checks if the object has sys.type \"ResourceLink\"\n * @param object\n */\nvar isResourceLink = function isResourceLink(object) {\n return object && object.sys && object.sys.type === 'ResourceLink';\n};\n\n/**\n * Creates a key with spaceId and a key without for entityMap\n *\n * @param {*} sys\n * @param {String} sys.type\n * @param {String} sys.id\n * @param {*} sys.space\n * @param {*} sys.space.sys\n * @param {String} sys.space.id\n * @return {string[]}\n */\nvar makeEntityMapKeys = function makeEntityMapKeys(sys) {\n return sys.space ? [sys.type + '!' + sys.id, sys.space.sys.id + '!' + sys.type + '!' + sys.id] : [sys.type + '!' + sys.id];\n};\n\n/**\n * Looks up in entityMap\n *\n * @param entityMap\n * @param {*} linkData\n * @param {String} linkData.type\n * @param {String} linkData.linkType\n * @param {String} linkData.id\n * @param {String} linkData.urn\n * @return {String}\n */\nvar lookupInEntityMap = function lookupInEntityMap(entityMap, linkData) {\n var entryId = linkData.entryId,\n linkType = linkData.linkType,\n spaceId = linkData.spaceId;\n if (spaceId) {\n return entityMap.get(spaceId + '!' + linkType + '!' + entryId);\n }\n return entityMap.get(linkType + '!' + entryId);\n};\n\n/**\n * getResolvedLink Function\n *\n * @param entityMap\n * @param link\n * @return {undefined}\n */\nvar getResolvedLink = function getResolvedLink(entityMap, link) {\n var _link$sys = link.sys,\n type = _link$sys.type,\n linkType = _link$sys.linkType;\n if (type === 'ResourceLink') {\n var urn = link.sys.urn;\n var regExp = /.*:spaces\\/([A-Za-z0-9]*)\\/entries\\/([A-Za-z0-9]*)/;\n if (!regExp.test(urn)) {\n return UNRESOLVED_LINK;\n }\n var _urn$match = urn.match(regExp),\n _urn$match2 = _slicedToArray(_urn$match, 3),\n _ = _urn$match2[0],\n spaceId = _urn$match2[1],\n _entryId = _urn$match2[2];\n var extractedLinkType = linkType.split(':')[1];\n return lookupInEntityMap(entityMap, {\n linkType: extractedLinkType,\n entryId: _entryId,\n spaceId: spaceId\n }) || UNRESOLVED_LINK;\n }\n var entryId = link.sys.id;\n return lookupInEntityMap(entityMap, {\n linkType: linkType,\n entryId: entryId\n }) || UNRESOLVED_LINK;\n};\n\n/**\n * cleanUpLinks Function\n * - Removes unresolvable links from Arrays and Objects\n *\n * @param {Object[]|Object} input\n */\nvar cleanUpLinks = function cleanUpLinks(input) {\n if (Array.isArray(input)) {\n return input.filter(function (val) {\n return val !== UNRESOLVED_LINK;\n });\n }\n for (var key in input) {\n if (input[key] === UNRESOLVED_LINK) {\n delete input[key];\n }\n }\n return input;\n};\n\n/**\n * walkMutate Function\n * @param input\n * @param predicate\n * @param mutator\n * @param removeUnresolved\n * @return {*}\n */\nvar walkMutate = function walkMutate(input, predicate, mutator, removeUnresolved) {\n if (predicate(input)) {\n return mutator(input);\n }\n if (input && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object') {\n for (var key in input) {\n // eslint-disable-next-line no-prototype-builtins\n if (input.hasOwnProperty(key)) {\n input[key] = walkMutate(input[key], predicate, mutator, removeUnresolved);\n }\n }\n if (removeUnresolved) {\n input = cleanUpLinks(input);\n }\n }\n return input;\n};\nvar normalizeLink = function normalizeLink(entityMap, link, removeUnresolved) {\n var resolvedLink = getResolvedLink(entityMap, link);\n if (resolvedLink === UNRESOLVED_LINK) {\n return removeUnresolved ? resolvedLink : link;\n }\n return resolvedLink;\n};\nvar makeEntryObject = function makeEntryObject(item, itemEntryPoints) {\n if (!Array.isArray(itemEntryPoints)) {\n return item;\n }\n var entryPoints = Object.keys(item).filter(function (ownKey) {\n return itemEntryPoints.indexOf(ownKey) !== -1;\n });\n return entryPoints.reduce(function (entryObj, entryPoint) {\n entryObj[entryPoint] = item[entryPoint];\n return entryObj;\n }, {});\n};\n\n/**\n * resolveResponse Function\n * Resolves contentful response to normalized form.\n * @param {Object} response Contentful response\n * @param {{removeUnresolved: Boolean, itemEntryPoints: Array}|{}} options\n * @param {Boolean} options.removeUnresolved - Remove unresolved links default:false\n * @param {Array} options.itemEntryPoints - Resolve links only in those item properties\n * @return {Object}\n */\nvar resolveResponse = function resolveResponse(response, options) {\n options = options || {};\n if (!response.items) {\n return [];\n }\n var responseClone = copy(response);\n var allIncludes = Object.keys(responseClone.includes || {}).reduce(function (all, type) {\n return [].concat(_toConsumableArray(all), _toConsumableArray(response.includes[type]));\n }, []);\n var allEntries = [].concat(_toConsumableArray(responseClone.items), _toConsumableArray(allIncludes)).filter(function (entity) {\n return Boolean(entity.sys);\n });\n var entityMap = new Map(allEntries.reduce(function (acc, entity) {\n var entries = makeEntityMapKeys(entity.sys).map(function (key) {\n return [key, entity];\n });\n acc.push.apply(acc, _toConsumableArray(entries));\n return acc;\n }, []));\n allEntries.forEach(function (item) {\n var entryObject = makeEntryObject(item, options.itemEntryPoints);\n Object.assign(item, walkMutate(entryObject, function (x) {\n return isLink(x) || isResourceLink(x);\n }, function (link) {\n return normalizeLink(entityMap, link, options.removeUnresolved);\n }, options.removeUnresolved));\n });\n return responseClone.items;\n};\nexport default resolveResponse;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global[\"fast-copy\"] = factory());\n})(this, function () {\n 'use strict';\n\n var toStringFunction = Function.prototype.toString;\n var create = Object.create,\n defineProperty = Object.defineProperty,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n getOwnPropertySymbols = Object.getOwnPropertySymbols,\n getPrototypeOf$1 = Object.getPrototypeOf;\n var _a = Object.prototype,\n hasOwnProperty = _a.hasOwnProperty,\n propertyIsEnumerable = _a.propertyIsEnumerable;\n var SYMBOL_PROPERTIES = typeof getOwnPropertySymbols === 'function';\n var WEAK_MAP = typeof WeakMap === 'function';\n /**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\n var createCache = function () {\n if (WEAK_MAP) {\n return function () {\n return new WeakMap();\n };\n }\n var Cache = /** @class */function () {\n function Cache() {\n this._keys = [];\n this._values = [];\n }\n Cache.prototype.has = function (key) {\n return !!~this._keys.indexOf(key);\n };\n Cache.prototype.get = function (key) {\n return this._values[this._keys.indexOf(key)];\n };\n Cache.prototype.set = function (key, value) {\n this._keys.push(key);\n this._values.push(value);\n };\n return Cache;\n }();\n return function () {\n return new Cache();\n };\n }();\n /**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\n var getCleanClone = function (object, realm) {\n var prototype = object.__proto__ || getPrototypeOf$1(object);\n if (!prototype) {\n return create(null);\n }\n var Constructor = prototype.constructor;\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch (_a) {}\n }\n return create(prototype);\n };\n /**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\n var getObjectCloneLoose = function (object, realm, handleCopy, cache) {\n var clone = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n if (SYMBOL_PROPERTIES) {\n var symbols = getOwnPropertySymbols(object);\n for (var index = 0, length_1 = symbols.length, symbol = void 0; index < length_1; ++index) {\n symbol = symbols[index];\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n return clone;\n };\n /**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\n var getObjectCloneStrict = function (object, realm, handleCopy, cache) {\n var clone = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n var properties = SYMBOL_PROPERTIES ? getOwnPropertyNames(object).concat(getOwnPropertySymbols(object)) : getOwnPropertyNames(object);\n for (var index = 0, length_2 = properties.length, property = void 0, descriptor = void 0; index < length_2; ++index) {\n property = properties[index];\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n try {\n defineProperty(clone, property, descriptor);\n } catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n } else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n return clone;\n };\n /**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\n var getRegExpFlags = function (regExp) {\n var flags = '';\n if (regExp.global) {\n flags += 'g';\n }\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n if (regExp.multiline) {\n flags += 'm';\n }\n if (regExp.unicode) {\n flags += 'u';\n }\n if (regExp.sticky) {\n flags += 'y';\n }\n return flags;\n };\n\n // utils\n var isArray = Array.isArray;\n var getPrototypeOf = Object.getPrototypeOf;\n var GLOBAL_THIS = function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n return this;\n }();\n /**\n * @function copy\n *\n * @description\n * copy an value deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The value is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param value the value to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) value the value is copied from\n * @returns the copied value\n */\n function copy(value, options) {\n // manually coalesced instead of default parameters for performance\n var isStrict = !!(options && options.isStrict);\n var realm = options && options.realm || GLOBAL_THIS;\n var getObjectClone = isStrict ? getObjectCloneStrict : getObjectCloneLoose;\n /**\n * @function handleCopy\n *\n * @description\n * copy the value recursively based on its type\n *\n * @param value the value to copy\n * @returns the copied value\n */\n var handleCopy = function (value, cache) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (cache.has(value)) {\n return cache.get(value);\n }\n var prototype = value.__proto__ || getPrototypeOf(value);\n var Constructor = prototype && prototype.constructor;\n // plain objects\n if (!Constructor || Constructor === realm.Object) {\n return getObjectClone(value, realm, handleCopy, cache);\n }\n var clone;\n // arrays\n if (isArray(value)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(value, realm, handleCopy, cache);\n }\n clone = new Constructor();\n cache.set(value, clone);\n for (var index = 0, length_1 = value.length; index < length_1; ++index) {\n clone[index] = handleCopy(value[index], cache);\n }\n return clone;\n }\n // dates\n if (value instanceof realm.Date) {\n return new Constructor(value.getTime());\n }\n // regexps\n if (value instanceof realm.RegExp) {\n clone = new Constructor(value.source, value.flags || getRegExpFlags(value));\n clone.lastIndex = value.lastIndex;\n return clone;\n }\n // maps\n if (realm.Map && value instanceof realm.Map) {\n clone = new Constructor();\n cache.set(value, clone);\n value.forEach(function (value, key) {\n clone.set(key, handleCopy(value, cache));\n });\n return clone;\n }\n // sets\n if (realm.Set && value instanceof realm.Set) {\n clone = new Constructor();\n cache.set(value, clone);\n value.forEach(function (value) {\n clone.add(handleCopy(value, cache));\n });\n return clone;\n }\n // blobs\n if (realm.Blob && value instanceof realm.Blob) {\n return value.slice(0, value.size, value.type);\n }\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(value)) {\n clone = realm.Buffer.allocUnsafe ? realm.Buffer.allocUnsafe(value.length) : new Constructor(value.length);\n cache.set(value, clone);\n value.copy(clone);\n return clone;\n }\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(value)) {\n clone = new Constructor(value.buffer.slice(0));\n cache.set(value, clone);\n return clone;\n }\n // arraybuffers\n if (value instanceof realm.ArrayBuffer) {\n clone = value.slice(0);\n cache.set(value, clone);\n return clone;\n }\n }\n // if the value cannot / should not be cloned, don't\n if (\n // promise-like\n typeof value.then === 'function' ||\n // errors\n value instanceof Error ||\n // weakmaps\n realm.WeakMap && value instanceof realm.WeakMap ||\n // weaksets\n realm.WeakSet && value instanceof realm.WeakSet) {\n return value;\n }\n // assume anything left is a custom constructor\n return getObjectClone(value, realm, handleCopy, cache);\n };\n return handleCopy(value, createCache());\n }\n // Adding reference to allow usage in CommonJS libraries compiled using TSC, which\n // expects there to be a default property on the exported value. See\n // [#37](https://github.com/planttheidea/fast-copy/issues/37) for details.\n copy.default = copy;\n /**\n * @function strictCopy\n *\n * @description\n * copy the value with `strict` option pre-applied\n *\n * @param value the value to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) value the value is copied from\n * @returns the copied value\n */\n copy.strict = function strictCopy(value, options) {\n return copy(value, {\n isStrict: true,\n realm: options ? options.realm : void 0\n });\n };\n return copy;\n});","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;\n return true;\n }\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || 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};\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n};\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\n }, []);\n};\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n var value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n return null;\n};\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\nvar _helmetCallback = null;\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\n }\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n return true;\n };\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n _this2.warnOnInvalidChildren(child, nestedChildren);\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n var newProps = _extends({}, props);\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n return React.createElement(Component, newProps);\n };\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n return mappedState;\n }, _temp;\n};\nvar NullComponent = function NullComponent() {\n return null;\n};\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\nvar React = require('react');\nvar React__default = _interopDefault(React);\nfunction _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}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n var mountedInstances = [];\n var state;\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n var SideEffect = /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n var _proto = SideEffect.prototype;\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n return SideEffect;\n }(React.PureComponent);\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n return SideEffect;\n };\n}\nmodule.exports = withSideEffect;","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent =\n function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n }\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.renderRichText = renderRichText;\n\nvar _richTextReactRenderer = require(\"@contentful/rich-text-react-renderer\");\n\nvar _contentfulResolveResponse = _interopRequireDefault(require(\"contentful-resolve-response\"));\n\n// @ts-check\nfunction renderRichText({\n raw,\n references\n}, options = {}) {\n const richText = JSON.parse(raw); // If no references are given, there is no need to resolve them\n\n if (!references || !references.length) {\n return (0, _richTextReactRenderer.documentToReactComponents)(richText, options);\n } // Create dummy response so we can use official libraries for resolving the entries\n\n\n const dummyResponse = {\n items: [{\n sys: {\n type: `Entry`\n },\n richText\n }],\n includes: {\n Entry: references.filter(({\n __typename\n }) => __typename !== `ContentfulAsset`).map(reference => {\n return { ...reference,\n sys: {\n type: `Entry`,\n id: reference.contentful_id\n }\n };\n }),\n Asset: references.filter(({\n __typename\n }) => __typename === `ContentfulAsset`).map(reference => {\n return { ...reference,\n sys: {\n type: `Asset`,\n id: reference.contentful_id\n }\n };\n })\n }\n };\n const resolved = (0, _contentfulResolveResponse.default)(dummyResponse, {\n removeUnresolved: true\n });\n return (0, _richTextReactRenderer.documentToReactComponents)(resolved[0].richText, options);\n}","/* Global imports */\nimport pt from 'prop-types';\nimport React, { useContext, useRef, useState } from 'react';\nimport { MicrocopyContext } from '../../../context/microcopy.context';\nimport { getCopy } from '../../../helpers/copy';\nimport { combine } from '../../../helpers/styles';\nimport Icon from '../../ui/icon';\nimport * as styles from './form.module.scss';\nimport Text from '/src/components/ui/text';\n\nconst CMSForm = ({\n inputLabel,\n inputPlaceholder,\n btnLabel,\n type,\n action,\n inputClassName,\n btnClassName,\n className,\n onFooter,\n}) => {\n const [success, setSuccess] = useState(false);\n const [loading, setLoading] = useState(false);\n const form = useRef();\n const formInput = useRef();\n const microcopy = useContext(MicrocopyContext);\n\n const [value, setValue] = useState('');\n const handleSubmit = (e) => {\n e.preventDefault();\n setLoading(true);\n fetch(action, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ [type]: value }),\n }).then((res) => setSuccess(res.status === 200));\n };\n\n return !success ? (\n \n {inputLabel && (\n \n {inputLabel}\n \n )}\n
\n setValue(e.target.value)}\n required\n value={value}\n />\n\n \n \n {btnLabel}\n \n \n
\n \n ) : (\n
\n
\n \n
\n {getCopy('newsletterSignup.success', microcopy)}\n
\n );\n};\n\nexport const proptypes = {\n inputLabel: pt.string,\n inputPlaceholder: pt.string,\n type: pt.string,\n btnLabel: pt.string.isRequired,\n action: pt.string.isRequired,\n inputClassName: pt.string,\n btnClassName: pt.string,\n className: pt.string,\n onFooter: pt.bool,\n};\nCMSForm.propTypes = proptypes;\nCMSForm.defaultProps = {\n inputLabel: '',\n inputPlaceholder: '',\n type: 'text',\n btnLabel: '',\n inputClassName: '',\n btnClassName: '',\n className: '',\n onFooter: false,\n};\n\nexport default CMSForm;\n","// extracted by mini-css-extract-plugin\nexport var avoid = \"form-module--avoid--55681\";\nexport var form = \"form-module--form--17749\";\nexport var formButton = \"form-module--formButton--e259f\";\nexport var formInput = \"form-module--formInput--4980e\";\nexport var iconWrapper = \"form-module--iconWrapper--20e1d\";\nexport var inputContainer = \"form-module--inputContainer--2456d\";\nexport var inputLabel = \"form-module--inputLabel--7b57e\";\nexport var onFooter = \"form-module--onFooter--7a8d4\";\nexport var successWrapper = \"form-module--successWrapper--b56f8\";","// extracted by mini-css-extract-plugin\nexport var bigHeadline = \"heroTeaser-module--bigHeadline--a1af9\";\nexport var contentContainer = \"heroTeaser-module--contentContainer--22637\";\nexport var ctasContainer = \"heroTeaser-module--ctasContainer--e4fe5\";\nexport var halfHalf = \"heroTeaser-module--halfHalf--c2e3c\";\nexport var heroTeaser = \"heroTeaser-module--heroTeaser--55260\";\nexport var hl = \"heroTeaser-module--hl--70e21\";\nexport var isBlue = \"heroTeaser-module--isBlue--acb4e\";\nexport var isEditorial = \"heroTeaser-module--isEditorial--10809\";\nexport var leftAlign = \"heroTeaser-module--leftAlign--c31c8\";\nexport var leftTopMargins = \"heroTeaser-module--leftTopMargins--c23b8\";\nexport var link = \"heroTeaser-module--link--62040\";\nexport var secondCta = \"heroTeaser-module--secondCta--88b61\";\nexport var text = \"heroTeaser-module--text--64de4\";","import React from 'react';\nimport pt from 'prop-types';\nimport Text from '../../../../ui/text';\nimport { combine } from '/src/helpers/styles';\nimport Link, { linkProptypes } from '../../../../ui/link';\nimport * as styles from './heroTeaser.module.scss';\n\nconst HeroTeaser = ({\n headline,\n text,\n cta,\n ctas,\n position,\n isRed,\n isEditorial,\n bigHeadline,\n className,\n}) => (\n \n {bigHeadline ? (\n \n {bigHeadline}\n \n ) : (\n <>\n
\n {headline && (\n \n {headline}\n \n )}\n {text && (\n \n {text}\n \n )}\n
\n {ctas?.length > 0 && (\n
\n {ctas.map((cta, idx) => (\n \n {cta.text}\n \n ))}\n
\n )}\n {/* Leave it as fallback for old design */}\n {!ctas?.length && cta && (\n
\n \n {cta.text}\n \n
\n )}\n \n )}\n
\n);\n\nexport const proptypes = {\n headline: pt.string,\n bigHeadline: pt.string,\n text: pt.string,\n cta: pt.shape(linkProptypes),\n ctas: pt.arrayOf(pt.shape(linkProptypes)),\n position: pt.string,\n isRed: pt.bool,\n className: pt.string,\n};\nHeroTeaser.propTypes = proptypes;\n\nHeroTeaser.defaultProps = {\n headline: '',\n bigHeadline: '',\n position: 'right',\n isRed: true,\n className: '',\n ctas: [],\n};\n\nHeroTeaser.propTypes = proptypes;\n\nexport default HeroTeaser;\n","// extracted by mini-css-extract-plugin\nexport var backgroundImage = \"hero-module--backgroundImage--f9272\";\nexport var backgroundVideo = \"hero-module--backgroundVideo--c7235\";\nexport var carousel = \"hero-module--carousel--97486\";\nexport var fullHeightSm = \"hero-module--fullHeightSm--27c2b\";\nexport var hero = \"hero-module--hero--d01e1\";\nexport var heroImageLink = \"hero-module--heroImageLink--c4f2e\";\nexport var teaserContainer = \"hero-module--teaserContainer--e3294\";\nexport var videoContainer = \"hero-module--videoContainer--c2788\";","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\nexport { getWindow as a, getDocument as g };","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, getTranslate as h, elementTransitionEnd as i, isObject as j, getSlideTransformEl as k, elementStyle as l, elementNextAll as m, nextTick as n, elementPrevAll as o, animateCSSModeScroll as p, extend as q, deleteProps as r, setCSSProperty as s };","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, l as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, m as elementNextAll, o as elementPrevAll, h as getTranslate, p as animateCSSModeScroll, n as nextTick, d as now, q as extend, g as elementIndex, c as createElement, r as deleteProps } from './utils.mjs';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(\"\".concat(screenWidth, \"x\").concat(screenHeight)) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\nfunction updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, \".\".concat(swiper.params.slideClass, \", swiper-slide\"));\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = \"\";\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = \"\".concat(slideSize, \"px\");\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = \"\".concat(swiper.virtualSize + spaceBetween, \"px\");\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = \"\".concat(swiper.virtualSize + spaceBetween, \"px\");\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = \"\".concat(spaceBetween, \"px\");\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', \"\".concat(-snapGrid[0], \"px\"));\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', \"\".concat(swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2, \"px\"));\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = \"\".concat(params.containerModifierClass, \"backface-hidden\");\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = \"\".concat(newHeight, \"px\");\n}\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, \".\".concat(params.slideClass).concat(selector, \", swiper-slide\").concat(selector))[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(\"[data-swiper-slide-index=\\\"\".concat(slideIndex, \"\\\"]\"));\n } else {\n activeSlide = getFilteredSlide(\"[data-swiper-slide-index=\\\"\".concat(activeIndex, \"\\\"]\"));\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, \".\".concat(params.slideClass, \", swiper-slide\"))[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, \".\".concat(params.slideClass, \", swiper-slide\"))[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? \"swiper-slide\" : \".\".concat(swiper.params.slideClass);\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(\".\".concat(swiper.params.lazyPreloaderClass));\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(\".\".concat(swiper.params.lazyPreloaderClass));\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(\".\".concat(swiper.params.lazyPreloaderClass));\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(\".\".concat(params.slideClass, \", swiper-slide\"));\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(\".\".concat(params.slideClass, \", swiper-slide\"))) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = \"translate3d(\".concat(x, \"px, \").concat(y, \"px, \").concat(z, \"px)\");\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = \"\".concat(duration, \"ms\");\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? \"0ms\" : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(\"transition\".concat(step));\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(\"slideResetTransition\".concat(step));\n return;\n }\n swiper.emit(\"slideChangeTransition\".concat(step));\n if (dir === 'next') {\n swiper.emit(\"slideNextTransition\".concat(step));\n } else {\n swiper.emit(\"slidePrevTransition\".concat(step));\n }\n }\n}\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? \"swiper-slide\" : \".\".concat(params.slideClass);\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, \"\".concat(slideSelector, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\"))[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, \"\".concat(slideSelector, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\"))[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const slides = elementChildren(slidesEl, \".\".concat(params.slideClass, \", swiper-slide\"));\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\".concat(params.noSwipingClass);\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.swipeDirection === 'next' && swiper.allowSlideNext || swiper.swipeDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(event.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(event.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(\"\".concat(params.containerModifierClass, \"grid\"), \"\".concat(params.containerModifierClass, \"grid-column\"));\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(\"\".concat(params.containerModifierClass, \"grid\"));\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(\"\".concat(params.containerModifierClass, \"grid-column\"));\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \".concat(value, \"px)\")).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\nvar classes = {\n addClasses,\n removeClasses\n};\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopedSlides: null,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: []\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, \".\".concat(params.slideClass, \", swiper-slide\"));\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, \".\".concat(params.slideClass, \", swiper-slide\"));\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(\"\".concat(swiper.params.containerModifierClass).concat(currentDirection));\n swiper.el.classList.add(\"\".concat(swiper.params.containerModifierClass).concat(newDirection));\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(\"\".concat(swiper.params.containerModifierClass, \"rtl\"));\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(\"\".concat(swiper.params.containerModifierClass, \"rtl\"));\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return \".\".concat((swiper.params.wrapperClass || '').trim().split(' ').join('.'));\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, \".\".concat(swiper.params.slideClass)).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport { Swiper as S, defaults as d };","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return \"swiper-wrapper \".concat(className);\n return className;\n}\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };","/**\n * Swiper React 10.3.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 21, 2023\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\nfunction _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}\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: \"\".concat(virtualData.offset, \"px\")\n } : {\n top: \"\".concat(virtualData.offset, \"px\")\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: \"slide-\".concat(index)\n });\n });\n}\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\".concat(containerClasses).concat(className ? \" \".concat(className) : ''))\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\".concat(slideClasses).concat(className ? \" \".concat(className) : '')),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\nfunction getParams(obj, splitEvents) {\n if (obj === void 0) {\n obj = {};\n }\n if (splitEvents === void 0) {\n splitEvents = true;\n }\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[\"\".concat(key[2].toLowerCase()).concat(key.substr(3))] = obj[key];\n } else {\n params.on[\"\".concat(key[2].toLowerCase()).concat(key.substr(3))] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };","import { e as elementChildren, c as createElement } from './utils.mjs';\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, \".\".concat(checkProps[key]))[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\nexport { createElementIfNotDefined as c };","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\nexport { Navigation as default };","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return \".\".concat(classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.'));\n}\nexport { classesToSelector as c };","import \"core-js/modules/es.array.unscopables.flat.js\";\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: \"\".concat(pfx, \"-bullet\"),\n bulletActiveClass: \"\".concat(pfx, \"-bullet-active\"),\n modifierClass: \"\".concat(pfx, \"-\"),\n currentClass: \"\".concat(pfx, \"-current\"),\n totalClass: \"\".concat(pfx, \"-total\"),\n hiddenClass: \"\".concat(pfx, \"-hidden\"),\n progressbarFillClass: \"\".concat(pfx, \"-progressbar-fill\"),\n progressbarOppositeClass: \"\".concat(pfx, \"-progressbar-opposite\"),\n clickableClass: \"\".concat(pfx, \"-clickable\"),\n lockClass: \"\".concat(pfx, \"-lock\"),\n horizontalClass: \"\".concat(pfx, \"-horizontal\"),\n verticalClass: \"\".concat(pfx, \"-vertical\"),\n paginationDisabledClass: \"\".concat(pfx, \"-disabled\")\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[\"\".concat(position === 'prev' ? 'previous' : 'next', \"ElementSibling\")];\n if (bulletEl) {\n bulletEl.classList.add(\"\".concat(bulletActiveClass, \"-\").concat(position));\n bulletEl = bulletEl[\"\".concat(position === 'prev' ? 'previous' : 'next', \"ElementSibling\")];\n if (bulletEl) {\n bulletEl.classList.add(\"\".concat(bulletActiveClass, \"-\").concat(position, \"-\").concat(position));\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const realIndex = swiper.realIndex;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n const loopFix = dir => {\n const indexBeforeLoopFix = swiper.activeIndex;\n swiper.loopFix({\n direction: dir,\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n const indexAfterFix = swiper.activeIndex;\n if (indexBeforeLoopFix === indexAfterFix) {\n swiper.slideToLoop(realIndex, 0, false, true);\n }\n };\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n loopFix(newSlideIndex > currentSlideIndex ? 'next' : 'prev');\n } else if (swiper.params.centeredSlides) {\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (newSlideIndex < Math.floor(slidesPerView / 2)) {\n loopFix('prev');\n }\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = \"\".concat(bulletSize * (params.dynamicMainBullets + 4), \"px\");\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => \"\".concat(params.bulletActiveClass).concat(suffix))].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...\"\".concat(params.bulletActiveClass, \"-main\").split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...\"\".concat(params.bulletActiveClass, \"-main\").split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = \"\".concat(bulletsOffset, \"px\");\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = \"translate3d(0,0,0) scaleX(\".concat(scaleX, \") scaleY(\").concat(scaleY, \")\");\n progressEl.style.transitionDuration = \"\".concat(swiper.params.speed, \"ms\");\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += \"<\".concat(params.bulletElement, \" \").concat(swiper.isElement ? 'part=\"bullet\"' : '', \" class=\\\"\").concat(params.bulletClass, \"\\\">\");\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\") + ' / ' + \"\");\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\");\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(\"\".concat(params.modifierClass).concat(params.type, \"-dynamic\"));\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\nexport { Pagination as default };","// extracted by mini-css-extract-plugin\nexport var carousel = \"styles-module--carousel--6d565\";","import React from 'react';\nimport { Swiper } from 'swiper/react';\nimport { Navigation, Pagination } from 'swiper/modules';\nimport 'swiper/scss';\nimport 'swiper/scss/navigation';\nimport 'swiper/scss/pagination';\nimport * as styles from './styles.module.scss';\nimport Icon from '../icon';\n\nconst Carousel = ({ children }) => {\n return (\n <>\n
\n \n
\n \n {children}\n \n
\n \n
\n \n );\n};\n\nexport default Carousel;\n","import React from 'react';\nimport pt from 'prop-types';\nimport HeroTeaser, {\n proptypes as heroTeaserProptypes,\n} from './components/heroTeaser';\nimport Link from '/src/components/ui/link';\nimport { combine } from '/src/helpers/styles';\nimport Image, { imageProptypes } from '../../ui/image';\nimport * as styles from './hero.module.scss';\nimport { linkProptypes } from '../../ui/link';\nimport Video from '../../ui/video';\nimport { SwiperSlide } from 'swiper/react';\nimport Carousel from '../../ui/carousel';\nimport Container from '../../../modules/container';\n\nconst CMSHero = ({\n background,\n backgroundImageLink,\n heroTeaser,\n disableGatsbyImage,\n items,\n carouselTeaser,\n}) => {\n const renderImage = (background, heroTeaser) => (\n \n );\n const renderVideo = () => (\n \n );\n\n const renderContent = (background, backgroundImageLink, heroTeaser) => {\n return (\n <>\n {backgroundImageLink ? (\n \n {background.image\n ? renderImage(background, heroTeaser)\n : renderVideo()}\n \n ) : (\n \n {background.image\n ? renderImage(background, heroTeaser)\n : renderVideo()}\n \n )}\n {heroTeaser && (\n \n \n \n )}\n \n );\n };\n\n return items?.length > 0 ? (\n
\n \n {items.map(({ background, backgroundImageLink }, idx) => {\n return (\n \n {renderContent(background, backgroundImageLink)}\n \n );\n })}\n \n {carouselTeaser && (\n \n \n \n )}\n
\n ) : (\n
\n {renderContent(background, backgroundImageLink, heroTeaser)}\n
\n );\n};\n\nCMSHero.propTypes = {\n background: pt.shape(imageProptypes).isRequired,\n backgroundImageLink: pt.shape(linkProptypes),\n heroTeaser: pt.shape(heroTeaserProptypes),\n carouselTeaser: pt.shape(heroTeaserProptypes),\n disableGatsbyImage: pt.bool,\n items: pt.array,\n};\n\nCMSHero.defaultProps = {\n backgroundImageLink: null,\n heroTeaser: {\n isEditorial: false,\n bigHeadline: '',\n },\n disableGatsbyImage: false,\n items: [],\n};\n\nexport default CMSHero;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst DesignAward = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n \n ${year}\n `,\n }}\n />\n );\n};\n\nDesignAward.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nDesignAward.defaultProps = {\n className: '',\n};\n\nexport default DesignAward;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst GoldAward = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n ${year}\n \n `,\n }}\n />\n );\n};\n\nGoldAward.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nGoldAward.defaultProps = {\n className: '',\n};\n\nexport default GoldAward;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst SocialImpact = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n return (\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${year}\n \n `,\n }}\n />\n );\n};\n\nSocialImpact.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nSocialImpact.defaultProps = {\n className: '',\n};\n\nexport default SocialImpact;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst TalentAward = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n // If year is equal or greater than 2023, use student award logo\n return year >= 2023 ? (\n \n .st0{fill:#FFFFFF;}\n .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#EC1D26;}\n .cls-34{font-size:27px;font-family:Frutiger;font-weight:400;fill:white}\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 \n \n \n \n \n ${year}\n \n `,\n }}\n >\n ) : (\n \n \n \n \n \n \n \n \n ${year}\n `,\n }}\n />\n );\n};\n\nTalentAward.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nTalentAward.defaultProps = {\n className: '',\n};\n\nexport default TalentAward;\n","import pt from 'prop-types';\nimport React from 'react';\n\nconst TaipeiCycleAward = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n TPCdiA2024_logo\n \n \n \n \n \n \n \n \n d&i a\n w\n a\n r\n ds ${year}\n T\n AIPEI \n C\n Y\n CLE\n \n \n \n \n \n \n \n `,\n }}\n />\n );\n};\n\nTaipeiCycleAward.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nTaipeiCycleAward.defaultProps = {\n className: '',\n};\n\nexport default TaipeiCycleAward;\n","import pt from 'prop-types';\nimport React from 'react';\nimport { combine } from '../../../helpers/styles';\nimport ifDesignAwardGold from './badges/if-designaward-gold.svg';\nimport ifDesignAward from './badges/if-designaward.svg';\nimport ifTopLabel from './badges/if-top-label.svg';\nimport taipeiCycleAwards2023 from './badges/taipeiCycleAwards2023.svg';\nimport DesignAward from './components/designAward';\nimport GoldAward from './components/goldAward';\nimport SocialImpact from './components/socialImpact';\nimport TalentAward from './components/talentAward';\nimport TaipeiCycleAward from './components/taipeiCycleAward';\nimport * as styles from './styles.module.scss';\n\nconst AwardBadge = ({ name, year, className, trackingId }) => {\n if (!name) {\n return null;\n }\n\n const staticBadges = {\n ifDesignAward,\n ifDesignAwardGold,\n ifTopLabel,\n taipeiCycleAwards2023,\n };\n\n const StaticBadge = staticBadges[name];\n\n if (StaticBadge)\n return (\n \n );\n\n const dynamicBadges = {\n ifDesignRed2021: (\n \n ),\n ifDesignGold2021: (\n \n ),\n ifSocialImpactPrize2021: (\n \n ),\n ifTalentAward2021: (\n \n ),\n taipeiCycleAward: ,\n };\n\n if (dynamicBadges[name]) return dynamicBadges[name];\n\n return null;\n};\n\nAwardBadge.propTypes = {\n name: pt.string.isRequired,\n year: pt.number,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nAwardBadge.defaultProps = {\n name: 'taipeiCycleAwards2023',\n className: '',\n year: new Date().getFullYear(),\n trackingId: false,\n};\n\nexport default AwardBadge;\n","// extracted by mini-css-extract-plugin\nexport var staticBadge = \"styles-module--staticBadge--e69b2\";","// extracted by mini-css-extract-plugin\nexport var button = \"styles-module--button--e5d02\";\nexport var disabled = \"styles-module--disabled--ea2c1\";\nexport var noPointerEvents = \"styles-module--noPointerEvents--897fd\";\nexport var quaternary = \"styles-module--quaternary--fdae1\";\nexport var secondary = \"styles-module--secondary--11623\";\nexport var tertiary = \"styles-module--tertiary--8ec8e\";\nexport var transparent = \"styles-module--transparent--cb149\";","import React from 'react';\nimport pt from 'prop-types';\nimport Text from '../text';\nimport { combine } from '/src/helpers/styles';\nimport * as styles from './styles.module.scss';\nimport { ifWordLetterLowercase } from '../../../helpers/copy';\n\nconst Button = ({\n text,\n type,\n transparent,\n className,\n onClick,\n withoutTransform,\n htmlId,\n disabled\n}) => (\n \n \n {withoutTransform ? text : ifWordLetterLowercase(text)}\n \n \n);\n\nButton.propTypes = {\n text: pt.string.isRequired,\n onClick: pt.func.isRequired,\n type: pt.oneOf(['primary', 'secondary', 'tertiary', 'quaternary']).isRequired,\n className: pt.string,\n transparent: pt.bool,\n withoutTransform: pt.bool,\n htmlId: pt.string,\n htmlId: pt.bool,\n};\n\nButton.defaultProps = {\n className: '',\n transparent: false,\n htmlId: '',\n disabled: false\n};\n\nexport default Button;\n","import React, { useContext } from 'react';\nimport pt from 'prop-types';\nimport Text from '../text';\nimport { combine } from '../../../helpers/styles';\nimport * as styles from './dropdown.module.scss';\nimport { MicrocopyContext } from '../../../context/microcopy.context';\nimport { getCopy } from '../../../helpers/copy';\n\nconst Dropdown = ({\n name,\n defaultValue,\n className,\n onSelect,\n options,\n withoutLabel,\n}) => {\n const microcopy = useContext(MicrocopyContext);\n return (\n \n {!withoutLabel && (\n \n )}\n \n {options.map((item, index) => (\n \n ))}\n \n \n );\n};\n\nDropdown.propTypes = {\n name: pt.string,\n defaultValue: pt.string,\n className: pt.string,\n onSelect: pt.func,\n options: pt.arrayOf(\n pt.shape({\n label: pt.string,\n value: pt.string,\n })\n ),\n withoutLabel: pt.bool,\n};\nDropdown.defaultProps = {\n className: '',\n defaultValue: '',\n options: [],\n};\n\nexport default Dropdown;\n","// extracted by mini-css-extract-plugin\nexport var dropdown = \"dropdown-module--dropdown--17fc7\";\nexport var select = \"dropdown-module--select--ce2d1\";\nexport var withoutLabel = \"dropdown-module--withoutLabel--3aae9\";","// extracted by mini-css-extract-plugin\nexport var autoSuggestion = \"styles-module--autoSuggestion--71656\";\nexport var autoSuggestionContent = \"styles-module--autoSuggestionContent--1bb99\";\nexport var autoSuggestionTitle = \"styles-module--autoSuggestionTitle--551e6\";\nexport var backdrop = \"styles-module--backdrop--0a720\";\nexport var closeBtn = \"styles-module--closeBtn--ffff3\";\nexport var closeIcon = \"styles-module--closeIcon--baef2\";\nexport var isActive = \"styles-module--isActive--25bd5\";\nexport var search = \"styles-module--search--096d5\";\nexport var searchBtn = \"styles-module--searchBtn--a3728\";\nexport var searchField = \"styles-module--searchField--4c390\";\nexport var searchIcon = \"styles-module--searchIcon--b495f\";\nexport var searchInput = \"styles-module--searchInput--fdc53\";\nexport var small = \"styles-module--small--ae849\";","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport pt from 'prop-types';\nimport Text from '../../../text';\nimport { combine } from '../../../../../helpers/styles';\nimport Icon from '../../../icon';\nimport useDebounce from '../../../../../hooks/useDebounce';\nimport { MicrocopyContext } from '../../../../../context/microcopy.context';\nimport { getCopy } from '../../../../../helpers/copy';\nimport * as styles from './styles.module.scss';\n\nimport { getAPIRoot } from '../../../../../helpers/fetch';\nimport Link from '../../../link';\n\nconst SearchField = ({\n initSearchTerm,\n placeholder,\n onSubmit,\n onReset,\n className,\n type,\n autoFocus,\n onBackdropClick,\n disableActiveBackdropStyles,\n small,\n}) => {\n const inputRef = useRef();\n const microcopy = useContext(MicrocopyContext);\n const [isActive, setIsActive] = useState(false);\n const [autoSuggestion, setAutoSuggestion] = useState([]);\n const [searchTerm, setSearchTerm] = useState('');\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n const getUrl = async () => {\n let apiRoot = await getAPIRoot();\n\n switch (type) {\n case 'Companies':\n return apiRoot + process.env.GATSBY_API_FIND_COMPANY_SUGGESTION;\n case 'Talent':\n return apiRoot + process.env.GATSBY_API_FIND_SUGGESTION;\n case 'SIP':\n return apiRoot + process.env.GATSBY_API_FIND_SUGGESTION;\n case 'Jury':\n return apiRoot + process.env.GATSBY_API_FIND_JUROR_SUGGESTION;\n //TODO: correct ranking url\n case 'Ranking':\n return apiRoot + process.env.GATSBY_API_FIND_SUGGESTION;\n case 'Projects':\n return apiRoot + process.env.GATSBY_API_FIND_SUGGESTION;\n case 'Global':\n return apiRoot + process.env.GATSBY_API_SEARCH_SUGGESTION;\n default:\n return apiRoot + process.env.GATSBY_API_FIND_SUGGESTION;\n }\n };\n\n const getAutoSuggestion = async (searchTerm) => {\n const url = await getUrl();\n return fetch(`${url}/${searchTerm}`).then((res) => res.json());\n };\n\n useEffect(() => {\n if (searchTerm?.length >= 3 && debouncedSearchTerm) {\n getAutoSuggestion(debouncedSearchTerm.toLowerCase()).then((res) => {\n setAutoSuggestion(res);\n });\n } else {\n setAutoSuggestion([]);\n }\n }, [debouncedSearchTerm]);\n\n useEffect(() => {\n setSearchTerm(initSearchTerm);\n }, [initSearchTerm]);\n\n const reset = () => {\n setIsActive(false);\n setSearchTerm('');\n onReset();\n };\n\n const cleanInput = () => {\n setSearchTerm('');\n inputRef.current.focus();\n };\n\n const change = (e) => {\n setSearchTerm(e.target.value);\n };\n\n const submit = (text) => {\n setIsActive(false);\n onSubmit(`${text.replace(/ \\| (Company|Creatives)/, '')}`);\n };\n\n const keyPressHandler = (e) => {\n if (e.code === 'Enter') {\n submit(searchTerm);\n inputRef.current.blur();\n }\n };\n\n const handleLinkClick = (e) => {\n sessionStorage.clear();\n };\n\n const getFormattedSuggestion = (text, term) => {\n const re = new RegExp(decodeURIComponent(term), 'gi');\n return text.replace(re, (match) => `${match}`);\n };\n\n const handleBackDropClick = () => {\n setIsActive(false);\n if (onBackdropClick) {\n onBackdropClick();\n }\n };\n\n return (\n <>\n \n
\n setIsActive(true)}\n onKeyPress={keyPressHandler}\n value={searchTerm}\n autoComplete=\"off\"\n ref={inputRef}\n autoFocus={autoFocus}\n data-test=\"search-input\"\n />\n {searchTerm && (\n \n \n \n )}\n {(isActive || !searchTerm) && (\n submit(searchTerm)}\n data-test=\"search-search-btn\"\n >\n \n \n )}\n {!isActive && searchTerm && (\n \n \n \n )}\n
\n\n {autoSuggestion && autoSuggestion.length > 0 && (\n
\n \n {getCopy('label.quickLink', microcopy)}\n \n {autoSuggestion.map((item, index) => (\n \n \n \n ))}\n
\n )}\n \n \n \n );\n};\n\nSearchField.propTypes = {\n searchTerm: pt.string,\n placeholder: pt.string,\n onReset: pt.func.isRequired,\n onSubmit: pt.func.isRequired,\n onBackdropClick: pt.func,\n className: pt.string,\n type: pt.oneOf([\n 'Companies',\n 'Projects',\n 'Talent',\n 'SIP',\n 'Jury',\n 'Ranking',\n 'Global',\n ]),\n autoFocus: pt.bool,\n disableActiveBackdropStyles: pt.bool,\n small: pt.bool,\n};\n\nSearchField.defaultProps = {\n searchTerm: '',\n className: '',\n placeholder: 'What do you want to explore?',\n type: 'Projects',\n autoFocus: false,\n onBackdropClick: () => { },\n disableActiveBackdropStyles: false,\n small: false,\n};\n\nexport default SearchField;\n","import { useState, useEffect } from 'react';\n\nexport default function useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(\n () => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n },\n [value, delay]\n );\n\n return debouncedValue;\n}","// extracted by mini-css-extract-plugin\nexport var background = \"styles-module--background--8062a\";\nexport var badge = \"styles-module--badge--5c280\";\nexport var badgeIcon = \"styles-module--badgeIcon--afad8\";\nexport var caption = \"styles-module--caption--4e2b3\";\nexport var centerAligned = \"styles-module--centerAligned--d59eb\";\nexport var closeBtn = \"styles-module--closeBtn--bde1b\";\nexport var fallbackContainer = \"styles-module--fallbackContainer--103bc\";\nexport var format11 = \"styles-module--format11--11cc3\";\nexport var format169 = \"styles-module--format169--59734\";\nexport var format34 = \"styles-module--format34--c6421\";\nexport var format43 = \"styles-module--format43--6b19d\";\nexport var formatWrapper = \"styles-module--formatWrapper--b2f11\";\nexport var img = \"styles-module--img--054e4\";\nexport var leftAligned = \"styles-module--leftAligned--dfc9b\";\nexport var rightAligned = \"styles-module--rightAligned--48ff6\";\nexport var showing = \"styles-module--showing--f07e4\";\nexport var svgImg = \"styles-module--svgImg--52f36\";\nexport var zoomedImg = \"styles-module--zoomedImg--25e2b\";","import { GatsbyImage } from 'gatsby-plugin-image';\nimport pt from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { combine } from '../../../helpers/styles';\nimport { swapImageUrl } from '../../../helpers/swapImageURI';\nimport AwardBadge from '../awardBadge';\nimport Icon from '../icon';\nimport RichText from '../richText';\nimport placeholderImage from '../../../images/placeholder-image.png';\nimport * as styles from './styles.module.scss';\n\nconst Image = ({\n image,\n imageCaption,\n disableGatsbyImage,\n disableImageCaption,\n className,\n imgClassName,\n captionClass,\n badgeIcon,\n badgeYear,\n isZoomable,\n focusPoint,\n format,\n loading,\n}) => {\n const [error, setError] = useState(false);\n const imageElement1 = useRef();\n const imageElement2 = useRef();\n\n useEffect(() => {\n let img = null;\n\n if (imageElement1?.current) img = imageElement1.current;\n if (imageElement2?.current) img = imageElement2.current;\n\n if (img) {\n setError(img.complete && !img.naturalHeight && !img.naturalWidth);\n }\n }, []);\n\n if ((image && image.url) || disableGatsbyImage) {\n const stagingPrefix = 'https://ifservice';\n const productionPrefix = 'https://ifinfralivestorage';\n\n if (\n image.url.startsWith(productionPrefix) ||\n image.url.startsWith(stagingPrefix)\n ) {\n image.url = swapImageUrl(image.url);\n }\n return (\n \n <>\n {isZoomable && (\n \n )}\n {\n currentTarget.onerror = null;\n currentTarget.src = placeholderImage;\n }}\n ref={imageElement1}\n />\n {badgeIcon && (\n \n )}\n \n \n );\n }\n\n if (image && image.file && image?.file?.contentType?.indexOf('svg') >= 0) {\n return (\n
\n {\n currentTarget.onerror = null;\n currentTarget.src = placeholderImage;\n }}\n ref={imageElement2}\n />\n {badgeIcon && (\n \n )}\n
\n );\n }\n\n return (\n <>\n \n {imageCaption && !disableImageCaption && (\n \n )}\n {badgeIcon && (\n \n )}\n \n );\n};\n\nexport const imageProptypes = {\n url: pt.string,\n file: pt.shape({\n url: pt.string,\n }),\n description: pt.string,\n gatsbyImageData: pt.object,\n};\n\nImage.propTypes = {\n image: pt.shape(imageProptypes).isRequired,\n imageCaption: pt.object,\n disableGatsbyImage: pt.bool,\n disableImageCaption: pt.bool,\n className: pt.string,\n captionClass: pt.string,\n imgClassName: pt.string,\n badgeIcon: pt.string,\n badgeYear: pt.number,\n isZoomable: pt.bool,\n focusPoint: pt.oneOf(['left', 'center', 'right']),\n format: pt.oneOf(['original', '4:3', '3:4', '16:9']),\n closeFn: pt.func,\n loading: pt.string,\n};\n\nImage.defaultProps = {\n className: '',\n imageCaption: null,\n disableGatsbyImage: false,\n disableImageCaption: false,\n captionClass: '',\n imgClassName: '',\n badgeYear: 2021,\n badgeIcon: '',\n isZoomable: false,\n focusPoint: 'center',\n format: 'original',\n closeFn: () => {},\n loading: 'eager',\n};\n\nexport default Image;\n","// extracted by mini-css-extract-plugin\nexport var h2 = \"styles-module--h2--1258d\";\nexport var h3 = \"styles-module--h3--bc9ed\";\nexport var heading = \"styles-module--heading--c4061\";\nexport var hl = \"styles-module--hl--90232\";\nexport var link = \"styles-module--link--9a09e\";\nexport var ol = \"styles-module--ol--0520d\";\nexport var spacing = \"styles-module--spacing--341fe\";\nexport var ul = \"styles-module--ul--196b4\";","import { BLOCKS, INLINES } from '@contentful/rich-text-types';\nimport { graphql, useStaticQuery } from 'gatsby';\nimport { renderRichText } from 'gatsby-source-contentful/rich-text';\nimport pt from 'prop-types';\nimport React, { useState } from 'react';\nimport { useHeadlineContext } from '../../../context/HeadlineProvider/HeadlineProvider';\nimport { combine } from '../../../helpers/styles';\nimport Link from '../link';\nimport Text from '../text';\nimport * as styles from './styles.module.scss';\n\nconst RichText = ({\n content,\n paragraphAs,\n paragraphType,\n paragraphVariant,\n className,\n textClassName,\n}) => {\n const [, isHeadlineSet] = useHeadlineContext(true);\n const [headline] = useState(!isHeadlineSet);\n const useContentfulLink = (id) => {\n const { links } = useStaticQuery(\n graphql`\n query CONTENTFUL_LINK_QUERY {\n links: allContentfulLink {\n edges {\n node {\n contentful_id\n externalLink\n text: label\n linkToPage {\n ... on ContentfulPressRelease {\n slug\n internal {\n type\n }\n }\n ... on ContentfulArticle {\n slug\n internal {\n type\n }\n }\n ... on ContentfulPage {\n slug\n internal {\n type\n }\n }\n }\n linkToDynamicPage\n dynamicDetailPageId\n dynamicDetailPageName\n queryParameter\n icon\n type\n transparent: isTransparent\n }\n }\n }\n }\n `\n );\n const link = links.edges.find(({ node }) => node.contentful_id === id);\n return link;\n };\n\n const options = {\n renderNode: {\n [BLOCKS.TABLE_HEADER_CELL]: function renderTableHeaderCell(\n _node,\n children\n ) {\n const emptyHeader = !children?.[0]?.props?.children?.[0][1];\n return (\n \n \n {children}\n \n \n );\n },\n [BLOCKS.PARAGRAPH]: function renderCopyText(_node, children) {\n return (\n \n {children}\n \n );\n },\n [BLOCKS.HEADING_1]: function renderHeading1(_node, children) {\n return (\n \n {children}\n \n );\n },\n [BLOCKS.HEADING_2]: function renderHeading2(_node, children) {\n return (\n \n {children}\n \n );\n },\n [BLOCKS.HEADING_3]: function renderHeading3(_node, children) {\n return (\n \n {children}\n \n );\n },\n [BLOCKS.HR]: function renderEmbeddedHR(_node, children) {\n return children;\n },\n [BLOCKS.OL_LIST]: function renderEmbeddedUL(_node, children) {\n return
    {children}
;\n },\n [BLOCKS.UL_LIST]: function renderEmbeddedUL(_node, children) {\n return
    {children}
;\n },\n [BLOCKS.LIST_ITEM]: function renderEmbeddedLI(_node, children) {\n return
  • {children}
  • ;\n },\n [INLINES.HYPERLINK]: function renderHyperlink(node, children) {\n return (\n \n {children}\n \n );\n },\n [INLINES.ENTRY_HYPERLINK]: function renderEntryHyperlink(node, children) {\n const link = useContentfulLink(node.data?.target?.sys.id);\n if (!link) return null;\n return (\n \n {children}\n \n );\n },\n },\n renderText: (text) => {\n return text.split('\\n').reduce((children, textSegment, index) => {\n return [...children, index > 0 &&
    , textSegment];\n }, []);\n },\n };\n return
    {renderRichText(content, options)}
    ;\n};\n\nexport const richTextPropTypes = {\n raw: pt.string,\n};\n\nRichText.propTypes = {\n content: pt.shape(richTextPropTypes).isRequired,\n paragraphType: pt.string,\n paragraphVariant: pt.string,\n paragraphAs: pt.string,\n className: pt.string,\n textClassName: pt.string,\n};\n\nRichText.defaultProps = {\n paragraphType: 'p1',\n paragraphVariant: '',\n paragraphAs: 'p',\n className: '',\n textClassName: '',\n};\n\nexport default RichText;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst Iframe = ({ width, src, title, className }) => {\n return (\n \n );\n};\n\nIframe.propTypes = {\n width: pt.string,\n src: pt.string,\n title: pt.string,\n className: pt.string,\n};\n\nIframe.defaultProps = {\n width: '',\n src: '',\n title: '',\n className: '',\n};\n\nexport default Iframe;\n","// extracted by mini-css-extract-plugin\nexport var badge = \"styles-module--badge--8ac63\";\nexport var badgeIcon = \"styles-module--badgeIcon--af5b1\";\nexport var iframeContainer = \"styles-module--iframeContainer--da94a\";\nexport var payBtnInner = \"styles-module--payBtnInner--f5649\";\nexport var playBtn = \"styles-module--playBtn--1ce89\";\nexport var playIcon = \"styles-module--playIcon--2e32e\";\nexport var portraitVideo = \"styles-module--portraitVideo--ce67d\";\nexport var poster = \"styles-module--poster--1e33d\";\nexport var video = \"styles-module--video--b5b13\";\nexport var videoContainer = \"styles-module--video-container--c38d7\";","import React, { useContext, useState } from 'react';\nimport pt from 'prop-types';\nimport Iframe from '../iframe';\nimport Image, { imageProptypes } from '../image';\nimport { combine } from '../../../helpers/styles';\nimport Icon from '../icon';\nimport AwardBadge from '../awardBadge';\nimport * as styles from './styles.module.scss';\nimport { PreviewContext } from '../../../context/preview.context';\n\nconst Video = ({\n video,\n poster,\n width,\n height,\n className,\n badgeIcon,\n badgeYear,\n autoplay,\n controls,\n loop,\n muted,\n playBtnClassname,\n ...props\n}) => {\n const isPreview = useContext(PreviewContext);\n\n const [videoIsPlaying, playVideo] = useState(false);\n\n let youtubeUrl = video.youtubeUrl;\n let portraitVideo = false;\n\n if (youtubeUrl && youtubeUrl.indexOf('/watch?v=') >= 0) {\n // Default youtube.com link\n youtubeUrl = video.youtubeUrl.replace('/watch?v=', '/embed/');\n } else if (youtubeUrl && youtubeUrl.indexOf('youtu.be') > -1) {\n // Shortlink\n youtubeUrl = `https://youtube.com/embed/${video.youtubeUrl\n .split('/')\n .slice(-1)}`;\n } else if (\n youtubeUrl &&\n youtubeUrl.indexOf('youtube') > -1 &&\n youtubeUrl.indexOf('shorts') > -1\n ) {\n // YouTube \"Shorts\" Link\n youtubeUrl = `https://youtube.com/embed/${video.youtubeUrl\n .split('/')\n .slice(-1)}`;\n portraitVideo = true;\n }\n\n if (poster && !videoIsPlaying) {\n return (\n playVideo(true)}\n className={combine(\n styles.playBtn,\n playBtnClassname && playBtnClassname\n )}\n >\n \n
    \n \n
    \n {badgeIcon && (\n \n )}\n \n );\n }\n\n if (youtubeUrl) {\n // replace residual query parameters that were in original url\n youtubeUrl = youtubeUrl.split('&')[0];\n return (\n \n \n \n );\n }\n let vimeoUrl = video.vimeoUrl;\n if (vimeoUrl) {\n const vimeoUrlId = video.vimeoUrl.split('/').pop();\n return (\n
    \n \n
    \n );\n }\n const localVideoSource = isPreview\n ? video.localVideo?.url\n : video.localVideo?.file?.url;\n\n if (localVideoSource) {\n return (\n \n );\n }\n\n return '';\n};\n\nexport const videoPropTypes = {\n youtubeUrl: pt.string,\n localVideo: pt.shape({\n file: pt.shape({\n url: pt.string,\n }),\n }),\n};\n\nVideo.propTypes = {\n video: pt.shape(videoPropTypes).isRequired,\n poster: pt.shape(imageProptypes),\n width: pt.string,\n height: pt.string,\n className: pt.string,\n badgeIcon: pt.string,\n badgeYear: pt.number,\n autoplay: pt.bool,\n controls: pt.bool,\n loop: pt.bool,\n muted: pt.bool,\n playBtnClassname: pt.string,\n};\n\nVideo.defaultProps = {\n width: '',\n height: '',\n poster: null,\n className: '',\n badgeYear: 2021,\n badgeIcon: '',\n autoplay: true,\n controls: true,\n loop: false,\n muted: false,\n playBtnClassname: '',\n};\n\nexport default Video;\n","let debugInfo;\n\nexport const getAPIRoot = () => process.env.GATSBY_API_ROOT;\n\nexport const getDebugInfo = async () => {\n const apiRoot = await getAPIRoot();\n if (!debugInfo) {\n try {\n debugInfo = await (await fetch(`${apiRoot}/api/version`)).json();\n } catch (err) {\n debugInfo = { error: 'Unable to load debug info' };\n }\n }\n\n return debugInfo;\n};\n\nexport const refreshData = () => {\n fetch('/__refresh', { method: 'POST' });\n};\n\nexport const getContactFormFetchOptions = (data) => ({\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data),\n withoutLocale: true,\n});\n","const apiUrl = new URL(process.env.GATSBY_API_ROOT);\nexport const swapImageUrl = (url) => {\n if (!url) {\n return '';\n }\n const imageUrl = new URL(url);\n\n imageUrl.host = apiUrl.host;\n return imageUrl.toString();\n};\n","import { useState, useEffect, useCallback } from 'react';\n\nexport const useScroll = () => {\n if (typeof window !== `undefined`) {\n // or typeof document !== 'undefined'\n // your code that uses global objects here\n const [state, setState] = useState({\n lastScrollTop: 0,\n bodyOffset: document.body.getBoundingClientRect(),\n scrollY: document.body.getBoundingClientRect().top,\n scrollX: document.body.getBoundingClientRect().left,\n scrollDirection: '', // down, up\n });\n\n const handleScrollEvent = useCallback((e) => {\n setState((prevState) => {\n const prevLastScrollTop = prevState.lastScrollTop;\n const bodyOffset = document.body.getBoundingClientRect();\n\n return {\n setBodyOffset: bodyOffset,\n scrollY: -bodyOffset.top,\n scrollX: bodyOffset.left,\n scrollDirection: prevLastScrollTop > -bodyOffset.top ? 'up' : 'down',\n lastScrollTop: -bodyOffset.top,\n };\n });\n }, []);\n\n useEffect(() => {\n const scrollListener = (e) => {\n handleScrollEvent(e);\n };\n window.addEventListener('scroll', scrollListener);\n\n return () => {\n window.removeEventListener('scroll', scrollListener);\n };\n }, [handleScrollEvent]);\n\n return {\n scrollY: state.scrollY,\n scrollX: state.scrollX,\n scrollDirection: state.scrollDirection,\n };\n } else {\n return {\n scrollY: 0,\n scrollX: 0,\n scrollDirection: 'down',\n };\n }\n};\n\nexport default useScroll;\n","// extracted by mini-css-extract-plugin\nexport var allButton = \"cookieBanner-module--allButton--2d29a\";\nexport var button = \"cookieBanner-module--button--42491\";\nexport var buttonContainer = \"cookieBanner-module--buttonContainer--ae6c6\";\nexport var checkbox = \"cookieBanner-module--checkbox--a220d\";\nexport var checkboxLabel = \"cookieBanner-module--checkboxLabel--7c3ee\";\nexport var checkboxWrapper = \"cookieBanner-module--checkboxWrapper--56cf4\";\nexport var cookieBanner = \"cookieBanner-module--cookieBanner--08816\";\nexport var cookieBannerInner = \"cookieBanner-module--cookieBannerInner--ec460\";\nexport var formWrapper = \"cookieBanner-module--formWrapper--ce351\";\nexport var headline = \"cookieBanner-module--headline--b73e8\";\nexport var selectionButton = \"cookieBanner-module--selectionButton--04a6d\";\nexport var slider = \"cookieBanner-module--slider--d000d\";\nexport var text = \"cookieBanner-module--text--f2d71\";","/**\n * cuisine.digital - Cookie Banner\n */\nexport default class DC_Bakery {\n static cache = [];\n static cookie_setter_orig;\n static cookie_getter_orig;\n\n static __init = () => {\n if (typeof window !== 'undefined') {\n if (typeof document !== 'undefined') {\n DC_Bakery.cookie_setter_orig = document\n .__lookupSetter__('cookie')\n .bind(document);\n\n DC_Bakery.cookie_getter_orig = document\n .__lookupGetter__('cookie')\n .bind(document);\n\n return Object.defineProperty(document, 'cookie', {\n get: function () {\n if (DC_Bakery.cookie_getter_orig) {\n return DC_Bakery.cookie_getter_orig.apply(document);\n }\n return '';\n },\n set: (value) => DC_Bakery.cache.push(value),\n configurable: true,\n });\n }\n return DC_Bakery.__init();\n }\n };\n\n static clean() {\n Object.defineProperty(document, 'cookie', {\n set: function (value) {\n return DC_Bakery.cookie_setter_orig.apply(document, arguments);\n },\n get: function () {\n return DC_Bakery.cookie_getter_orig.apply(document);\n },\n });\n }\n\n static flush() {\n DC_Bakery.cache.forEach((cookie) => (document.cookie = cookie));\n }\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport Button from '../../components/ui/button';\nimport Text from '../../components/ui/text';\nimport { MicrocopyContext } from '../../context/microcopy.context';\nimport { getCopy } from '../../helpers/copy';\nimport { combine } from '../../helpers/styles';\nimport Container from '../../modules/container';\nimport * as styles from './cookieBanner.module.scss';\nimport DC_Bakery from './dc_bakery';\n\nDC_Bakery.__init();\nconst CookieBanner = ({}) => {\n const [isClient, setIsClient] = useState(false);\n const [selection, setSelection] = useState([true, false, false]);\n const [cookieIsSet, setCookieIsSet] = useState(null);\n const microcopy = useContext(MicrocopyContext);\n\n const typesOfCookies = [\n 'functionalCookies',\n 'statisticalCookies',\n 'marketingCookies',\n ];\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n setIsClient(true);\n setCookieIsSet(cookieExists('cookieConsent'));\n }\n }, []);\n\n useEffect(() => {\n if (!!cookieIsSet) {\n DC_Bakery.flush();\n\n if (cookieExists('statisticalCookies')) {\n const triggerGtmEvent = new Event('statisticalCookies', {\n bubbles: true,\n cancelable: false,\n });\n\n document?.dispatchEvent(triggerGtmEvent);\n }\n const triggerCookieEvent = new Event('cookieConsent', {\n bubbles: true,\n cancelable: false,\n });\n document?.dispatchEvent(triggerCookieEvent);\n }\n }, [cookieIsSet]);\n\n const changeSelection = (index) => {\n let state = [...selection];\n state[index] = !state[index];\n setSelection(state);\n };\n\n const writeCookie = async (selectAll = false) => {\n let selectedCookies = selection;\n if (selectAll) selectedCookies = [true, true, true];\n\n const status = selectedCookies[1] ? '1337' : '420';\n await fetch(`/images/${status}.gif?d=` + new Date().getTime());\n\n createCookie('cookieConsent');\n setCookieIsSet(true);\n\n selectedCookies.forEach(\n (cookie, index) => cookie && createCookie(typesOfCookies[index])\n );\n\n DC_Bakery.clean();\n };\n\n const createCookie = (cookie) => {\n const cookieDate = new Date();\n cookieDate.setFullYear(cookieDate.getFullYear() + 1);\n return (document.cookie = `${cookie}=true; expires=${cookieDate.toUTCString()}; path=/;`);\n };\n\n const cookieExists = (cookie) => {\n return document?.cookie?.indexOf(cookie) > -1;\n };\n\n return cookieIsSet !== null ? (\n !cookieIsSet ? (\n \n
    \n \n {getCopy('cookie.headline', microcopy)}\n \n \n {' '}\n {getCopy('cookie.text1', microcopy)}\n \n \n
    \n {typesOfCookies.map((type, index) => (\n \n
    \n changeSelection(index)}\n />\n \n
    \n {getCopy(`cookie.${type}`, microcopy)}\n \n ))}\n \n
    \n writeCookie()}\n withoutTransform\n />\n writeCookie(true)}\n />\n
    \n
    \n
    \n ) : (\n // add tracking stuff dynamically\n ''\n )\n ) : (\n ''\n );\n};\n\nCookieBanner.propTypes = {};\n\nCookieBanner.defaultProps = {};\n\nexport default CookieBanner;\n","// extracted by mini-css-extract-plugin\nexport var logo = \"styles-module--logo--31f4a\";","import React from 'react';\nimport pt from 'prop-types';\nimport Icon from '../../components/ui/icon';\nimport Link from '../../components/ui/link';\nimport LogoKakao from '../../images/logo-kakao.svg';\nimport LogoNaver from '../../images/logo-naver.svg';\nimport * as styles from './styles.module.scss';\n\nconst SocialIcons = ({ socialLinks }) => {\n return socialLinks.map((social, index) =>\n social.icon === 'naver' ? (\n \n \n \n ) : social.icon === 'kakao' ? (\n \n \n \n ) : (\n \n \n \n )\n );\n};\n\nSocialIcons.propTypes = {\n socialLinks: pt.array.isRequired,\n};\n\nexport default SocialIcons;\n","// extracted by mini-css-extract-plugin\nexport var beige = \"footer-module--beige--0e87e\";\nexport var contactSection = \"footer-module--contactSection--8b1dc\";\nexport var copyYear = \"footer-module--copyYear--c0416\";\nexport var cta = \"footer-module--cta--79a4c\";\nexport var firstColumn = \"footer-module--firstColumn--bb20e\";\nexport var footer = \"footer-module--footer--e5644\";\nexport var footerItem = \"footer-module--footerItem--7ae7d\";\nexport var inputContainer = \"footer-module--inputContainer--b122a\";\nexport var inputLabel = \"footer-module--inputLabel--c9310\";\nexport var linksContainer = \"footer-module--linksContainer--e4a38\";\nexport var linksSection = \"footer-module--linksSection--97415\";\nexport var newsletter = \"footer-module--newsletter--8ca1a\";\nexport var newsletterEmail = \"footer-module--newsletterEmail--6a1d0\";\nexport var outerContainer = \"footer-module--outerContainer--52233\";\nexport var socials = \"footer-module--socials--cf230\";\nexport var version = \"footer-module--version--0e58c\";","import React from 'react';\nimport pt from 'prop-types';\nimport Link from '../../components/ui/link';\nimport { combine } from '../../helpers/styles';\nimport SocialIcons from '../socialIcons';\nimport Container from '../container';\nimport Text from '../../components/ui/text';\nimport CMSForm, {\n proptypes as formProps,\n} from '/src/components/cms-modules/form';\nimport * as styles from './footer.module.scss';\n\nconst Footer = ({ siteSettings, isFooterBeige: customFooterIsBeige }) => {\n const {\n firstColumnHeadline,\n firstColumnLinks,\n secondColumnHeadline,\n secondColumnLinks,\n newsletter,\n copyrightText,\n footerIsBeige,\n socialLinks,\n footerIsBeige: globalFooterisBeige,\n } = siteSettings;\n return (\n \n \n
    \n
    \n
    \n {firstColumnLinks && (\n
    \n \n {firstColumnHeadline}\n \n
    \n {firstColumnLinks.map((item, index) => (\n \n \n {item.text}\n \n \n ))}\n
    \n
    \n )}\n {secondColumnLinks && (\n
    \n \n {secondColumnHeadline}\n \n
    \n {secondColumnLinks.map((item, index) => (\n \n \n {item.text}\n \n \n ))}\n
    \n
    \n )}\n
    \n {copyrightText && (\n \n {copyrightText}\n \n )}\n \n {process.env.GATSBY_GIT_HASH}\n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n );\n};\n\nFooter.propTypes = {\n siteSettings: pt.shape({\n firstColumnHeadline: pt.string,\n firstColumnLinks: pt.array,\n secondColumnHeadline: pt.string,\n secondColumnLinks: pt.array,\n newsletter: pt.shape(formProps),\n copyrightText: pt.string,\n socialLinks: pt.array,\n footerIsBeige: pt.bool,\n }),\n isFooterBeige: pt.bool,\n};\n\nFooter.defaultProps = {\n siteSettings: {\n firstColumnHeadline: '',\n firstColumnLinks: [],\n secondColumnHeadline: '',\n secondColumnLinks: [],\n copyrightText: '',\n socialLinks: [],\n footerIsBeige: false,\n },\n isFooterBeige: false,\n};\n\nexport default Footer;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { navigate } from 'gatsby';\nimport { StringParam, useQueryParam } from 'use-query-params';\nimport SearchField from '../../../../components/ui/filterSearch/components/searchField';\nimport { MicrocopyContext } from '../../../../context/microcopy.context';\nimport { getCopy } from '../../../../helpers/copy';\nimport Logo from '../../../../images/logo.svg';\nimport * as styles from './styles.module.scss';\nimport Container from '../../../container';\nimport { useLocale } from '../../../../context/locale.context';\n\nconst SearchOverlay = ({ onClose }) => {\n const { locale } = useLocale();\n const [searchParam, _] = useQueryParam('q', StringParam);\n const [searchTerm, setSearchTerm] = useState(null);\n const microcopy = useContext(MicrocopyContext);\n\n useEffect(() => {\n setSearchTerm(searchParam);\n }, [searchParam]);\n\n const submitHandler = (value) => {\n setSearchTerm(value);\n if (value) {\n return navigate(`/${locale}/search?find=${encodeURIComponent(value)}`);\n }\n };\n\n return (\n \n \n
    \n setSearchTerm(null)}\n placeholder={getCopy('search.input.placeholder', microcopy)}\n type=\"Global\"\n autoFocus\n disableActiveBackdropStyles\n onBackdropClick={onClose}\n small\n />\n
    \n
    \n \n );\n};\n\nexport default SearchOverlay;\n","// extracted by mini-css-extract-plugin\nexport var logo = \"styles-module--logo--1e6f4\";\nexport var searchContainer = \"styles-module--searchContainer--c73ab\";\nexport var searchOverlay = \"styles-module--searchOverlay--9a8b7\";","// extracted by mini-css-extract-plugin\nexport var active = \"header-module--active--72887\";\nexport var activeLeft = \"header-module--activeLeft--a64ad\";\nexport var alignedLeft = \"header-module--alignedLeft--41e51\";\nexport var backArrow = \"header-module--backArrow--73902\";\nexport var black = \"header-module--black--c8511\";\nexport var blueBackground = \"header-module--blueBackground--d4b5e\";\nexport var chevronIcon = \"header-module--chevronIcon--5e229\";\nexport var closeIcon = \"header-module--closeIcon--79c70\";\nexport var currentLang = \"header-module--currentLang--42f48\";\nexport var desktopNavItemContainer = \"header-module--desktopNavItemContainer--2ceb7\";\nexport var disabled = \"header-module--disabled--e9d86\";\nexport var dropdownContainer = \"header-module--dropdownContainer--73ce1\";\nexport var fixedNavi = \"header-module--fixedNavi--247f4\";\nexport var globeIcon = \"header-module--globeIcon--660f6\";\nexport var hamburguerClose = \"header-module--hamburguerClose--176f8\";\nexport var hamburguerIcon = \"header-module--hamburguerIcon--27710\";\nexport var header = \"header-module--header--2f8ab\";\nexport var headerTop = \"header-module--headerTop--8dae2\";\nexport var innerContainer = \"header-module--innerContainer--8eb23\";\nexport var isHidden = \"header-module--isHidden--ba91d\";\nexport var isVisible = \"header-module--isVisible--b07be\";\nexport var isWhite = \"header-module--isWhite--07b72\";\nexport var langSelector = \"header-module--langSelector--c2525\";\nexport var languageMenu = \"header-module--languageMenu--f0bf5\";\nexport var languageOption = \"header-module--languageOption--ea236\";\nexport var languagePicker = \"header-module--languagePicker--29fd1\";\nexport var languagePickerIcon = \"header-module--languagePickerIcon--515b0\";\nexport var languagePickerMobileToggle = \"header-module--languagePickerMobileToggle--bfb36\";\nexport var languages = \"header-module--languages--13723\";\nexport var linkText = \"header-module--linkText--99dca\";\nexport var localeLink = \"header-module--localeLink--32a59\";\nexport var logo = \"header-module--logo--687d6\";\nexport var logoLink = \"header-module--logoLink--fba1f\";\nexport var mainNavigation = \"header-module--mainNavigation--2944a\";\nexport var menuIcon = \"header-module--menuIcon--edd6f\";\nexport var metaNaviElements = \"header-module--metaNaviElements--8aa2f\";\nexport var metanavi = \"header-module--metanavi--54c28\";\nexport var mobileBackground = \"header-module--mobileBackground--7c8dc\";\nexport var mobileMenu = \"header-module--mobileMenu--89d93\";\nexport var mobileMenuContainer = \"header-module--mobileMenuContainer--2368a\";\nexport var mobileMetaInnerContainer = \"header-module--mobileMetaInnerContainer--585a2\";\nexport var mobileMetaOutterContainer = \"header-module--mobileMetaOutterContainer--b710a\";\nexport var mobileNavItemInnerContainer = \"header-module--mobileNavItemInnerContainer--a57f1\";\nexport var mobileNavItemOutterContainer = \"header-module--mobileNavItemOutterContainer--fe577\";\nexport var navContainer = \"header-module--navContainer--c9971\";\nexport var navItem = \"header-module--navItem--26115\";\nexport var navItemLink = \"header-module--navItemLink--b7024\";\nexport var navItemList = \"header-module--navItemList--494eb\";\nexport var navSubItem = \"header-module--navSubItem--4e33f\";\nexport var navSubItemContainer = \"header-module--navSubItemContainer--31caa\";\nexport var noSearch = \"header-module--noSearch--474fc\";\nexport var notVisible = \"header-module--notVisible--223e5\";\nexport var open = \"header-module--open--d4fd1\";\nexport var opened = \"header-module--opened--9e4f8\";\nexport var rightNavigation = \"header-module--rightNavigation--4f50b\";\nexport var searchIcon = \"header-module--searchIcon--625b1\";\nexport var searchInput = \"header-module--searchInput--0bcd3\";\nexport var searchMobileMenu = \"header-module--searchMobileMenu--98a4e\";\nexport var searchVisible = \"header-module--searchVisible--6f231\";\nexport var subMenuItems = \"header-module--subMenuItems--9377c\";\nexport var submenuBackLink = \"header-module--submenuBackLink--c76c4\";\nexport var submenuBackLinkContainer = \"header-module--submenuBackLinkContainer--74208\";\nexport var submenuInnerWrapper = \"header-module--submenuInnerWrapper--7f46f\";\nexport var submenuWrapper = \"header-module--submenuWrapper--5d497\";\nexport var submenuWrapperLeft = \"header-module--submenuWrapperLeft--d0c01\";","// extracted by mini-css-extract-plugin\nexport var cubeNavigation = \"cubeNavigation-module--cubeNavigation--181c3\";\nexport var innerContainer = \"cubeNavigation-module--innerContainer--8e847\";\nexport var item = \"cubeNavigation-module--item--b38f9\";\nexport var itemsWrapper = \"cubeNavigation-module--itemsWrapper--91ac1\";\nexport var logo = \"cubeNavigation-module--logo--7ee63\";\nexport var menuText = \"cubeNavigation-module--menuText--efe51\";\nexport var secondaryColor = \"cubeNavigation-module--secondaryColor--322c9\";\nexport var selected = \"cubeNavigation-module--selected--b79da\";\nexport var subMenu = \"cubeNavigation-module--subMenu--ed913\";\nexport var subMenuLink = \"cubeNavigation-module--subMenuLink--d90b3\";\nexport var subMenuLinkText = \"cubeNavigation-module--subMenuLinkText--5dbe1\";","/* Global imports */\nimport React, { useEffect, useRef, useState } from 'react';\nimport pt from 'prop-types';\nimport * as styles from './cubeNavigation.module.scss';\nimport Container from '../container';\nimport Logo from '../../images/logo.svg';\nimport Link from '/src/components/ui/link';\nimport { combine } from '/src/helpers/styles';\nimport Text from '../../components/ui/text';\n\n/* Component definition */\nconst CubeNavigation = ({ navigationItems, isWhite }) => {\n const [slug, setSlug] = useState('');\n\n useEffect(() => {\n const hashPosition = window.location.pathname.search(/[#\\?]/);\n setSlug(\n window.location.pathname\n .substring(4, hashPosition === -1 ? undefined : hashPosition)\n .replace(/\\/$/, '')\n );\n }, []);\n\n return (\n \n \n \n \n \n
    \n {navigationItems.map((item, index) => (\n {\n return childItem.link?.linkToPage?.slug === slug;\n }) && styles.selected\n )}\n >\n \n {item.link.text}\n \n
    \n {item.childItems.map((subItem, idx) => (\n \n \n {subItem.link.text}\n \n \n ))}\n
    \n
    \n ))}\n
    \n
    \n \n );\n};\n\nCubeNavigation.propTypes = {\n navigationItems: pt.array.isRequired,\n isWhite: pt.bool,\n};\n\nCubeNavigation.defaultProps = {\n navigationItems: [],\n isWhite: true,\n};\n\nexport default CubeNavigation;\n","import pt from 'prop-types';\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport Text from '../../components/ui/text';\nimport { useLocale } from '../../context/locale.context';\nimport { MicrocopyContext } from '../../context/microcopy.context';\nimport { getCopy } from '../../helpers/copy';\nimport { combine } from '../../helpers/styles';\nimport { useScroll } from '../../hooks/useScrollPosition';\nimport ArrowUpIcon from '../../images/arrowUp.svg';\nimport ArrowDownIcon from '../../images/arrowDown.svg';\nimport HamburguerIcon from '../../images/hamburguer.svg';\nimport HamburguerCloseIcon from '../../images/hamburguerClose.svg';\nimport LanguageGlobeIcon from '../../images/languageGlobe.svg';\nimport SearchIcon from '../../images/search.svg';\nimport Container from '../container';\nimport SearchOverlay from './components/searchOverlay';\nimport * as styles from './header.module.scss';\nimport Link from '/src/components/ui/link';\nimport CubeNavigation from '../cubeNavigation';\nimport Logo from '../../images/logo.svg';\n\nconst Header = ({ hasHero, siteSettings, hasWhiteNavigation }) => {\n const { metaNavigation, mainNavigation, searchPlaceholder } = siteSettings;\n const microcopy = useContext(MicrocopyContext);\n const mainNavi = useRef();\n const fixedNavi = useRef();\n const searchInput = useRef();\n const [isMainHidden, setIsMainHidden] = useState(!hasHero);\n const [searchVisible, setSearchVisible] = useState(false);\n const [headerOnTop, setHeaderOnTop] = useState(true);\n const [mobileMenuShowing, setMobileMenuShowing] = useState(false);\n const [mobileLanguageSelectShowing, setMobileLanguageSelectShowing] =\n useState(false);\n const [languageSwitchOpen, setLanguageSwitchOpen] = useState(false);\n const [subNavIndex, setSubNavIndex] = useState(-1);\n const [whiteMobileBackgroundNeeded, setWhiteMobileBackgroundNeeded] =\n useState(false);\n\n const { scrollY, scrollDirection } = useScroll();\n const { locale, languageToggleOptions } = useLocale();\n\n const isSearchEnabled = ['en'].includes(locale);\n\n useEffect(() => {\n if (scrollDirection === 'up') {\n setHeaderOnTop(true);\n } else if (scrollDirection == 'down') {\n setHeaderOnTop(false);\n }\n }, [scrollY, scrollDirection]);\n\n const handleSearchVisibility = () => {\n setSearchVisible(!searchVisible);\n };\n\n const handleMobileMenuOpen = () => {\n setMobileMenuShowing(mobileLanguageSelectShowing || !mobileMenuShowing);\n setMobileLanguageSelectShowing(false);\n };\n\n const handleMobileLanguageSelectOpen = () => {\n setMobileMenuShowing(!mobileLanguageSelectShowing || !mobileMenuShowing);\n\n if (mobileMenuShowing && mobileLanguageSelectShowing) {\n setTimeout(() => {\n setMobileLanguageSelectShowing(!mobileLanguageSelectShowing);\n }, 300);\n } else {\n setMobileLanguageSelectShowing(!mobileLanguageSelectShowing);\n }\n };\n\n const hanldeSubMenuOpen = (e) => {\n const selectedIndex = e.currentTarget.getAttribute('mob-nav');\n const hasSubNav =\n e.currentTarget.getAttribute('mob-subnav') === 'has-sub' ? true : false;\n if (hasSubNav && subNavIndex !== selectedIndex) {\n setSubNavIndex(selectedIndex);\n } else {\n setSubNavIndex(-1);\n return;\n }\n };\n\n return (\n <>\n \n \n \n \n \n \n {!mobileLanguageSelectShowing && (\n <>\n \n \n \n {mainNavigation.map((item, index) => (\n 0\n ? 'has-sub'\n : 'not-sub'\n }\n onClick={hanldeSubMenuOpen}\n >\n \n
    \n \n {item.link.text}\n \n
    \n {Number(subNavIndex) === index ? (\n \n ) : (\n \n )}\n \n {item.childItems && item.childItems.length > 0 && (\n \n
    \n
    \n {item.childItems.map((subItem) => (\n \n \n \n {subItem.link.text}\n \n \n
    \n ))}\n
    \n \n \n )}\n \n ))}\n {metaNavigation.map((item, index) => (\n \n \n \n \n {item.text}\n \n \n \n \n ))}\n \n )}\n {!mobileLanguageSelectShowing &&\n metaNavigation.map((item) => {\n return (\n \n
    \n \n \n {item.text}\n \n \n
    \n \n );\n })}\n \n \n \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n {getCopy('label.chooseLanguage', microcopy)}\n \n
    \n
    \n
    \n {languageToggleOptions.map((loc) => (\n \n \n \n {loc.label}\n \n \n
    \n ))}\n
    \n
    \n \n \n \n \n
    \n \n \n \n {searchVisible && (\n setSearchVisible(false)} />\n )}\n \n );\n};\n\nHeader.propTypes = {\n hasWhiteNavigation: pt.bool,\n hasHero: pt.bool,\n siteSettings: pt.object,\n};\n\nHeader.defaultProps = {\n hasHero: true,\n hasWhiteNavigation: true,\n};\n\nexport default Header;\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport pt from 'prop-types';\nimport { navigate } from 'gatsby';\n\nimport * as styles from './anchorLinkNavigation.module.scss';\nimport Link from '../../components/ui/link';\nimport Text from '../../components/ui/text';\nimport Dropdown from '../../components/ui/dropdown';\nimport Container from '../container';\nimport { getCopy } from '../../helpers/copy';\nimport { MicrocopyContext } from '../../context/microcopy.context';\n\nconst AnchorLinkNavigation = ({ items }) => {\n const microcopy = useContext(MicrocopyContext);\n const [path, setPath] = useState('');\n\n useEffect(() => {\n setPath(window.location.pathname);\n }, []);\n\n const options = useMemo(\n () => [\n {\n label: getCopy('anchorNavigation.placeholder', microcopy),\n value: false,\n disabled: true,\n },\n ...items.map((item) => ({\n label: item.label,\n value: item.anchorId,\n })),\n ],\n [items]\n );\n\n const onItemClick = (event) => navigate(`#${event.target.value}`);\n\n return (\n
    \n \n \n
    \n {items.map((item) => (\n \n \n {item.label}\n \n \n ))}\n
    \n
    \n
    \n );\n};\n\nAnchorLinkNavigation.propTypes = {\n items: pt.arrayOf(\n pt.shape({\n label: pt.string,\n anchorId: pt.string,\n })\n ).isRequired,\n};\n\nAnchorLinkNavigation.defaultProps = {\n items: [],\n};\n\nexport default AnchorLinkNavigation;\n","// extracted by mini-css-extract-plugin\nexport var anchorLink = \"anchorLinkNavigation-module--anchorLink--246be\";\nexport var anchorLinkNavigation = \"anchorLinkNavigation-module--anchorLinkNavigation--e316b\";\nexport var mobileOnly = \"anchorLinkNavigation-module--mobileOnly--ea3cf\";\nexport var tabletOrBigger = \"anchorLinkNavigation-module--tabletOrBigger--fdf78\";","import pt from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ArrowTopIcon from '../../images/arrow-top.svg';\n\nconst ScrollToTopButton = ({ className }) => {\n const [visible, setVisible] = useState(false);\n\n const toggleVisible = () => {\n const scrolled = document.documentElement.scrollTop;\n if (scrolled > 300) {\n setVisible(true);\n } else if (scrolled <= 300) {\n setVisible(false);\n }\n };\n\n const scrollToTop = () => {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n };\n\n useEffect(() => {\n window.addEventListener('scroll', toggleVisible);\n }, []);\n\n return visible ? (\n
    \n \n
    \n ) : null;\n};\n\nScrollToTopButton.propTypes = {\n className: pt.string,\n};\n\nScrollToTopButton.defaultProps = {\n className: '',\n};\n\nexport default ScrollToTopButton;\n","import { graphql, useStaticQuery } from 'gatsby';\nimport pt from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport Hero from '../../components/cms-modules/hero';\nimport Icon from '../../components/ui/icon';\nimport { HeadlineProvider } from '../../context/HeadlineProvider/HeadlineProvider';\nimport { useLocale } from '../../context/locale.context';\nimport { MicrocopyContext } from '../../context/microcopy.context';\nimport { PreviewContext } from '../../context/preview.context';\nimport { getCopy } from '../../helpers/copy';\nimport { getAPIRoot, getDebugInfo, refreshData } from '../../helpers/fetch';\nimport { combine } from '../../helpers/styles';\nimport MaintenancePage from '../../pages/maintenance';\nimport CookieBanner from '../cookieBanner';\nimport Footer from '../footer';\nimport Header from '../header';\nimport SEO from '../seo';\nimport * as styles from './layout.module.scss';\nimport AnchorLinkNavigation from '../anchorLinkNavigation';\nimport ScrollToTopButton from '../scrollToTop';\nimport { proptypes as heroTeaserProptypes } from '../../components/cms-modules/hero/components/heroTeaser';\n\nconst Layout = ({\n children,\n title,\n description,\n heroTeaser,\n heroCarouselItems,\n heroCarouselTeaser,\n hasWhiteNavigation,\n metaNaviWhite,\n preview,\n isFooterBeige,\n previewImage,\n dynamicPagePreview,\n anchorLinks,\n}) => {\n const [apiRoot, setApiRoot] = useState('');\n const [debugInfo, setDebugInfo] = useState({});\n const [hintMinimized, setHintMinimized] = useState(false);\n const [dataUpdating, setDataUpdating] = useState(false);\n const { locale } = useLocale();\n const {\n allContentfulSiteSettings: settingsRaw,\n allContentfulMicrocopy,\n currentBuildDate,\n } = useStaticQuery(\n graphql`\n fragment link on ContentfulLink {\n externalLink\n text: label\n linkToPage {\n ... on ContentfulPressRelease {\n slug\n internal {\n type\n }\n }\n ... on ContentfulArticle {\n slug\n internal {\n type\n }\n }\n ... on ContentfulPage {\n slug\n internal {\n type\n }\n }\n }\n linkToDynamicPage\n dynamicDetailPageId\n dynamicDetailPageName\n queryParameter\n downloadDocument {\n ...document\n }\n icon\n type\n transparent: isTransparent\n }\n\n fragment form on ContentfulContentForm {\n inputLabel: label\n inputPlaceholder\n btnLabel\n type\n action\n }\n\n query {\n currentBuildDate {\n currentDate\n }\n allContentfulSiteSettings {\n nodes {\n maintenanceMode\n node_locale\n siteName\n siteAuthor\n copyrightText\n firstColumnHeadline\n firstColumnLinks {\n ...link\n }\n metaLinksWhite\n mainNavigation {\n link {\n ...link\n }\n childItems {\n link {\n ...link\n }\n }\n }\n metaNavigation {\n ...link\n }\n secondColumnHeadline\n secondColumnLinks {\n ...link\n }\n socialLinks {\n ...link\n }\n newsletter {\n ...form\n }\n footerIsBeige\n previewImage {\n title\n description\n file {\n url\n contentType\n }\n gatsbyImageData(\n layout: CONSTRAINED\n placeholder: BLURRED\n formats: [AUTO, WEBP]\n )\n }\n }\n }\n\n allContentfulMicrocopy {\n nodes {\n node_locale\n key\n value\n }\n }\n }\n `\n );\n\n const updateDataAndRefresh = () => {\n setDataUpdating(true);\n refreshData();\n setTimeout(() => {\n window.location.reload();\n }, 8000);\n };\n\n const [microcopy, setMicrocopy] = useState(() =>\n allContentfulMicrocopy.nodes\n .filter((node) => node.node_locale === locale)\n .reduce((acc, curr) => {\n return {\n ...acc,\n [curr.key]: curr.value,\n };\n }, {})\n );\n\n const siteSettings = settingsRaw.nodes.filter(\n (node) => node.node_locale === locale\n )[0];\n\n const getApiRootForState = async () => {\n const url = await getAPIRoot();\n const info = await getDebugInfo();\n\n setApiRoot(url);\n setDebugInfo(info);\n };\n\n useEffect(() => {\n const isIphone = /(iPhone)/g.test(navigator?.userAgent);\n if (isIphone) {\n // Needed to get the correct height on iOS\n const vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n }\n getApiRootForState();\n }, []);\n\n if (\n siteSettings?.maintenanceMode &&\n process.env.GATSBY_MAINTENANCE_CAPABLE === 'true'\n ) {\n return ;\n }\n\n return (\n \n \n \n {!dynamicPagePreview && (\n <>\n {(process.env.NODE_ENV === 'development' ||\n process.env.GATSBY_CONTENTFUL_PREVIEW) && (\n <>\n \n {dataUpdating\n ? 'One moment, please...'\n : `Updated at ${currentBuildDate.currentDate}. Update`}\n \n \n )}\n \n \n \n {heroTeaser && (\n \n )}\n {heroCarouselItems?.length > 0 && (\n \n )}\n {anchorLinks.length > 0 && (\n \n )}\n \n {apiRoot.includes('search-') && debugInfo && (\n \n
    \n

    \n {apiRoot\n .match(/search-\\w+?(?=.azurewebsites)/)?.[0]\n .split('-')\n .pop()\n .toUpperCase()}\n

    \n
    \n setHintMinimized(!hintMinimized)}\n name={\n hintMinimized ? 'window-maximize' : 'window-minimize'\n }\n />\n setDebugInfo(null)} name=\"times\" />\n
    \n
    \n
      \n
    • backendUrl: {apiRoot}
    • \n {Object.entries(debugInfo).map(([key, val]) => (\n
    • \n {key}: {val.toString()}\n
    • \n ))}\n
    \n \n )}\n \n )}\n \n {children}\n \n {!dynamicPagePreview && (\n