{"version":3,"file":"js/leads-fc08c9088d9261a4314a.js","mappings":"sSAGA,MAAMA,EAAYC,OAAOC,SAASC,OAmE5BC,EAAqBC,IACzB,MAAMC,EAAW,IAAIC,SACrB,IAAK,IAAIC,KAAOH,EACdC,EAASG,OAAQ,QAAOD,KAAQH,EAAKG,IAEvC,OAAOF,CAAQ,ECzEJI,EAAeA,KACnB,CACLC,UAAU,EACVC,QAASC,EAAAA,EAAKC,EAAE,uC,eCGpB,MAyMA,EAzMiBC,EAAGC,eAClB,MAAOC,GAAQC,EAAAA,EAAKC,WACbC,EAASC,IAAcC,EAAAA,EAAAA,WAAS,GAoBjCC,GAAkBC,EAAAA,EAAAA,cAAaC,IACnC,GAAKA,IAELR,EAAKS,cAAc,WAAYD,EAAME,SAASzB,SAAS0B,OACvDX,EAAKS,cAAc,YAAaD,EAAME,SAASzB,SAAS2B,OAEnDJ,EAAMK,oBAEX,IAAK,MAAMC,KAAaN,EAAMK,mBAAoB,CAGhD,OAFsBC,EAAUC,MAAM,IAGpC,IAAK,WACHf,EAAKS,cAAc,OAAQK,EAAUE,WACrC,MACF,IAAK,QACHhB,EAAKS,cAAc,SAAUK,EAAUG,YACvC,MACF,IAAK,gBACHjB,EAAKS,cAAc,SAAUK,EAAUE,WACvC,MACF,IAAK,UACHhB,EAAKS,cAAc,UAAWK,EAAUG,YACxC,MACF,IAAK,8BACHjB,EAAKS,cAAc,QAASK,EAAUE,WACtC,MACF,IAAK,cACHhB,EAAKS,cAAc,WAAYK,EAAUE,WAE/C,IACC,IAEGE,EAAkB,CACtBC,SAAU,CAAE1B,KACZ2B,QAAS,CAAE3B,KACX4B,MAAO,CAAE5B,IDxDJ,CACL6B,KAAM,QACN3B,QAASC,EAAAA,EAAKC,EAAE,sCCuDhB0B,MAAO,CAAE9B,IDlDJ,CACL+B,QAAS,IAAIC,OAAO,sBACpB9B,QAASC,EAAAA,EAAKC,EAAE,uCCiDhB6B,QAAS,CAAEjC,KACXkC,QAAS,CAAElC,KACXmC,MAAO,CAAEnC,MAGLoC,EAAgB,CACpBH,QAASI,IAAIC,gBACbC,MAAO,GACPC,KAAM,GACNC,OAAQ,GACRC,OAAQ,GACRC,SAAU,GACVb,MAAO,IAUHc,EAAgBC,OAAOC,QAAQT,IAAIU,gBAEzC,OACEC,EAAAA,cAAA,OAAKC,UAAU,mCACbD,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAACxC,EAAAA,EAAIqC,OAAAK,OAAA,GAZI,CACbC,SAAU,CAAEC,KAAM,GAAIC,GAAI,CAAEC,OAAQ,EAAGF,KAAM,KAC7CG,WAAY,CAAEH,KAAM,IACpBI,WAAY,OACZC,OAAO,GASS,CACVlD,KAAMA,EACNmD,SAtFSC,UAAe,IAADC,EAC7BjD,GAAW,GACX,MAAMkD,OFTgBF,OAAOhE,EAAMmE,EAAO,KAC5CnE,EAAOD,EAAkBC,GACzB,MAAMoE,EAAM,IAAIC,IAAK,GAAE1E,gBAAwBwE,KAC/C,aAAaG,MAAMF,EAAK,CACtBG,OAAQ,OACRC,QAAS,CACP,gBAAgBC,EAAAA,EAAAA,OAElBC,KAAM1E,GACN,EEAkB2E,CAAW3E,GAC7B,OAAQkE,EAAIU,QACV,KAAK,IACG,QAANX,EAAArE,cAAM,IAAAqE,GAAc,QAAdA,EAANA,EAAQY,oBAAY,IAAAZ,GAApBA,EAAsBa,KAAK,CAAC,MAAS,oBACrCC,SAASlF,SAASmF,KAAK,oBACvB,MACF,KAAK,IACHd,EAAIe,OAAOC,MAAKlF,GAAQW,EAASX,EAAKmF,SACtCnE,GAAW,GACX,MACF,QACEL,GAAS,GACTK,GAAW,GACf,EAwEMyB,cAAeA,EACf2C,gBAAiB,SACjB9B,UAAW,sBAEXD,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CACRC,MAAO9E,EAAAA,EAAKC,EAAE,2BACd8E,KAAK,WACLC,MAAO1D,EAAgBC,UAEvBsB,EAAAA,cAACoC,EAAAA,EAAK,CAACC,YAAalF,EAAAA,EAAKC,EAAE,0CAE7B4C,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CACRC,MAAO9E,EAAAA,EAAKC,EAAE,+BACd8E,KAAK,WACLC,MAAO1D,EAAgBE,SAEvBqB,EAAAA,cAACoC,EAAAA,EAAK,CAACC,YAAalF,EAAAA,EAAKC,EAAE,8CAE7B4C,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CACRC,MAAO9E,EAAAA,EAAKC,EAAE,4BACd8E,KAAK,QACLC,MAAO1D,EAAgBG,OAEvBoB,EAAAA,cAACoC,EAAAA,EAAK,CAACvD,KAAM,QAASwD,YAAalF,EAAAA,EAAKC,EAAE,2CAE5C4C,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CACRC,MAAO9E,EAAAA,EAAKC,EAAE,4BACd8E,KAAK,QACLC,MAAO1D,EAAgBK,OAEvBkB,EAAAA,cAACoC,EAAAA,EAAK,CAACC,YAAalF,EAAAA,EAAKC,EAAE,2CAE7B4C,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CACRC,MAAO9E,EAAAA,EAAKC,EAAE,2BACd8E,KAAK,UACLC,MAAO1D,EAAgBS,SAEvBc,EAAAA,cAAA,OAAKC,UAAU,qCACbD,EAAAA,cAACsC,EAAAA,QAAY,CACXrC,UAAW,+CACXsC,OAAQlD,IAAImD,eACZC,QAAS,CACPnE,MAAO,CAAC,UAAW,iBACnBoE,OAAQ,CAAC,qBAAsB,WAAY,SAE7C7E,gBAAiBA,MAIvBmC,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CACRC,MAAO9E,EAAAA,EAAKC,EAAE,8BACd8E,KAAK,UACLC,MAAO1D,EAAgBQ,SAEvBe,EAAAA,cAAC2C,EAAAA,EAAM,CACLC,YAAU,EACVP,YAAalF,EAAAA,EAAKC,EAAE,oBACpByF,WAAY7C,EAAAA,cAAA,KAAGC,UAAW,qBAC1B6C,aAAcA,CAACC,EAAOC,IACpBA,EAAOC,SAASC,cAAcC,QAAQJ,EAAMG,gBAAkB,GAG/DtD,EAAcwD,KAAInE,GACjBe,EAAAA,cAAC2C,EAAAA,EAAOU,OAAM,CAACvG,IAAKmC,EAAQ,GAAIqE,MAAOrE,EAAQ,IAAKA,EAAQ,QAKlEe,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CAACE,KAAK,QAAQqB,QAAQ,GAAMvD,EAAAA,cAACoC,EAAAA,EAAK,OAC5CpC,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CAACE,KAAK,OAAOqB,QAAQ,GAAOvD,EAAAA,cAACoC,EAAAA,EAAK,OAC5CpC,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CAACE,KAAK,SAASqB,QAAQ,GAAMvD,EAAAA,cAACoC,EAAAA,EAAK,OAC7CpC,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CAACE,KAAK,SAASqB,QAAQ,GAAMvD,EAAAA,cAACoC,EAAAA,EAAK,OAC7CpC,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CAACE,KAAK,WAAWqB,QAAQ,GAAMvD,EAAAA,cAACoC,EAAAA,EAAK,OAC/CpC,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CAACE,KAAK,WAAWqB,QAAQ,GAAMvD,EAAAA,cAACoC,EAAAA,EAAK,OAC/CpC,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CAACE,KAAK,YAAYqB,QAAQ,GAAMvD,EAAAA,cAACoC,EAAAA,EAAK,OAEhDpC,EAAAA,cAACxC,EAAAA,EAAKwE,KAAI,CACRC,MAAO9E,EAAAA,EAAKC,EAAE,6BAEd4C,EAAAA,cAACwD,EAAAA,EAAQ,CAACvG,UAAU,GACjBE,EAAAA,EAAKC,EAAE,yBACR4C,EAAAA,cAAA,KAAGC,UAAW,OAAQ0B,KAAK,yCAAyC8B,OAAQ,SAAUC,IAAK,cACxFvG,EAAAA,EAAKC,EAAE,+BAKd4C,EAAAA,cAAA,OAAKC,UAAU,oCACfD,EAAAA,cAAA,OAAKC,UAAU,YACXD,EAAAA,cAAC2D,EAAAA,GAAM,CAAC1D,UAAW,oCAAqCvC,QAASA,EAASmB,KAAK,UAAU+E,SAAS,UAChG5D,EAAAA,cAAA,QAAMC,UAAW,oBACd9C,EAAAA,EAAKC,EAAE,0BAOhB,E,0BC/LV,MAoCA,EApCmByG,KACjB,MAAO/B,EAAOxE,IAAYM,EAAAA,EAAAA,WAAS,GAEnC,OACEoC,EAAAA,cAAC8D,EAAAA,GAAc,CAACC,WAAWC,EAAAA,EAAAA,KAAU,MAAQ,IAC3ChE,EAAAA,cAAA,OAAKC,UAAU,sCACbD,EAAAA,cAAA,OAAKC,UAAU,2CAA2CgE,MAAO,CAACC,SAAU,WAC1ElE,EAAAA,cAAA,OAAKC,UAAU,iBACbD,EAAAA,cAAA,OAAKC,UAAU,yBACbD,EAAAA,cAAA,OAAKC,UAAW,OAAQkE,IAAI,0BAA0BF,MAAO,CAACG,MAAO,SAAUC,IAAI,mBACnFrE,EAAAA,cAAA,MAAIC,UAAU,gDAA+C,cAE/DD,EAAAA,cAAA,OAAKC,UAAU,mBACX6B,GAAS9B,EAAAA,cAAA,OAAKC,UAAU,0CAAoD,IAAV6B,EAAiB3E,EAAAA,EAAKC,EAAE,0BAA4B0E,GACxH9B,EAAAA,cAAA,OAAKC,UAAU,gBACbD,EAAAA,cAAC3C,EAAQ,CAACC,SAAUA,MAGxB0C,EAAAA,cAAA,OAAKC,UAAU,oBACbD,EAAAA,cAAA,OAAKC,UAAU,8BACbD,EAAAA,cAAA,OAAKC,UAAU,SACbD,EAAAA,cAAA,aAGJA,EAAAA,cAAA,OAAKC,UAAU,QAAQ9C,EAAAA,EAAKC,EAAE,eAC9B4C,EAAAA,cAAA,OAAKC,UAAU,oDACbD,EAAAA,cAAA,OAAKC,UAAW,OAAQkE,IAAI,0BAA0BF,MAAO,CAACG,MAAO,QAASC,IAAI,mBAClFrE,EAAAA,cAAA,KAAG2B,KAAM,8BAA8B,0BAMlC,E,cCnCrBD,SAAS4C,iBAAiB,oBAAoB,KAC5C,MAAMC,EAAY7C,SAAS8C,cAAc,cACrCD,IACFE,EAAAA,EAAAA,GAAWF,GAAWG,OAAO1E,EAAAA,cAAC6D,EAAU,MAC1C,I,eCSFc,EAAAA,OAAAA,QACAA,EAAAA,OAAAA,QACAA,EAAQ,OAERC,GAAE,IAAMA,EAAE,aAAaC,e,gCCpBtB,SAASD,GAET,IAAIE,EAAa,cAEbC,EAAOC,OACPC,EAAMC,MAEV,GAAoB,qBAATH,EAAsB,MAAM,IAAII,MAAM,sDAAwDL,GAGzGF,EAAEQ,GAAGN,GAAc,SAASrC,GAC3B,GAAuB,IAAnBmC,EAAES,MAAMC,OAAZ,CAMA,IAAIC,EAAYF,KAMhBE,EAAUC,OAAQ,EAElBD,EAAUE,IAAM,CACfC,OAAQ,KACRpC,MAAO,KACPqC,OAAQ,MAGT,IAAIC,EAAS,CAIZC,QAAQ,EACRC,WAAY,IACZC,WAAY,GACZC,QAAS,OACTC,WAAY,CAAC,EACbC,aAAc,CAAC,EAEfC,KAAM,SAAS1D,GACd,IAuFI2B,EAvFAgC,GAAc,EAEU,OAAxB3D,EAAQ9F,KAAK0J,SAChBT,EAAOU,eACPF,GAAc,GAGfR,EAAOW,aAAaC,OACpBZ,EAAOa,SAASlB,EAAUmB,OAG1B9B,EAAEW,GAAWoB,GAAGC,8BAAqChB,EAAOiB,aAExDtB,EAAUC,OACbI,EAAOkB,YAAYlB,EAAOI,SAW3BJ,EAAOmB,mBAAmBnB,EAAOoB,UAAU,kCAG3CpC,EAAEqC,KAAKrB,EAAOoB,UAAU,eAAe,SAASE,EAASC,GACf,oBAA9BvC,EAAEQ,GAAGN,GAAYoC,KACD,kBAAfC,IACVA,EAAavC,EAAEwC,OAAO,CAAC,EAAGD,IAE3B,IAAIvC,EAAEQ,GAAGN,GAAYoC,GAAS3B,EAAW4B,GAE3C,IAEAvB,EAAOyB,iBAAgB,GAEG,WAAtB5E,EAAQ9F,KAAKkC,MAA2C,UAAtB4D,EAAQ9F,KAAKkC,QACnB,IAA3B4D,EAAQ9F,KAAK2K,WAChB1B,EAAOkB,YAAYlB,EAAOI,SAGD,UAAtBvD,EAAQ9F,KAAKkC,MAAmD,kBAAxB4D,EAAQ9F,KAAK0J,SACxDd,EAAUgC,QAAUhC,EAAUiC,gBAAkB5B,EAAO6B,gBAAgBhF,EAAQ9F,KAAK0J,SAErFT,EAAO8B,cAIJtB,IACHxB,EAAEW,EAAUoC,WAAWC,KAAK,MAAMC,SAClCjD,EAAEW,EAAUuC,WAAWF,KAAK,MAAMC,UAGnCjC,EAAOmC,eACHnC,EAAOoB,UAAU,kBACpBpB,EAAOmC,aAAaxC,EAAUuC,WAIM,qBAA1BrF,EAAQuF,OAAOC,SACC,IAA1BxF,EAAQuF,OAAOC,QACfrD,EAAEW,EAAUmB,OAAOkB,KAAK,SAASC,SAIG,qBAA1BpF,EAAQuF,OAAOE,SACC,IAA1BzF,EAAQuF,OAAOE,QACftD,EAAEW,EAAUmB,OAAOkB,KAAK,SAASC,SAIR,OAAtBpF,EAAQ9F,KAAKkC,MACM,UAAtB4D,EAAQ9F,KAAKkC,OACb+G,EAAOuC,eAAe3B,OACtBZ,EAAOwC,kBAAkB5B,OAGzBZ,EAAOyC,kBAAkB7B,OAGzBZ,EAAO0C,kBAAkB9B,OACzBZ,EAAO2C,UAIR,IAAIC,GAAe,EACnB5D,EAAErI,QAAQkM,QAAO,WAGZ7D,EAAES,MAAMjB,UAAYA,IACvBA,EAAQQ,EAAES,MAAMjB,QAChBwB,EAAO8C,cAGHF,IACJpE,EAAQQ,EAAES,MAAMjB,QAChBoE,GAAe,EAEjB,IAEA5D,EAAEW,GAAWoD,OAAO,IAEpB,IAAIC,EAAc,GAWlB,OAVAhE,EAAEgB,EAAOoB,UAAU,iBAAiBL,GAAG,SAAS,SAASkC,GACxD,IAAIjD,EAAOoB,UAAU,mBAAiC,KAAZ6B,EAAEC,MAA5C,CACA,IAAIC,EAAUnE,EAAES,MAAM2D,MAElBJ,IAAgBG,IACnBnD,EAAOqD,OAAOF,GACdH,EAAcG,EALiD,CAOjE,IAEOxD,CACR,EAKAe,aAAc,WACb,IAAI4C,EAAU,GACV/H,EAAUyD,EAAEW,GAAWqC,KAAK,qBAAqBuB,MAAM/F,KAAI,SAASgG,EAAMC,GAC7E,IAAIC,EAAQ1E,EAAEwE,GAAMzM,KAAK,SACrB4M,EAAQ3E,EAAEwE,GAAMzM,KAAK,SACJ,qBAAV2M,IACVA,EAAQ1E,EAAEwE,GAAMI,OAAOC,QAEH,qBAAVF,IACVA,EAAQ3E,EAAEwE,GAAMI,OAAOC,QAExB,IAAIC,EAAS,CAACJ,MAAOA,EAAOC,MAAOA,GACnC,IAAK,IAAII,KAAMlH,EAAQyG,QAClBzG,EAAQyG,QAAQS,GAAIL,QAAUA,IACjCI,EAAS9E,EAAEwC,QAAO,EAAM,CAAC,EAAG3E,EAAQyG,QAAQS,GAAKD,IAInD,OADAR,EAAQzH,KAAKiI,GACNJ,CACR,IAEA7G,EAAQyG,QAAUA,EAElB,IAAIU,EAAU,GACVvD,EAAS,GAEbzB,EAAEW,GAAWqC,KAAK,MAAMX,MAAK,WACxBrC,EAAES,MAAMuC,KAAK,MAAMtC,QACtBsE,EAAQnI,KAAKmD,EAAES,MAAMwE,KAAK,eAE3B,IAAIC,EAAK,CAAC,EACVlF,EAAES,MAAMuC,KAAK,MAAMX,MAAK,SAASoC,EAAGD,GACnCU,EAAG3I,EAAQkI,IAAMD,EAAKW,UAAUN,MACjC,IACK1E,EAAKiF,QAAQF,IACjBzD,EAAO5E,KAAKqI,EAEd,IAEArH,EAAQ9F,KAAKsN,KAAKC,SAAWN,EAC7BnH,EAAQ9F,KAAK0J,OAASA,CACvB,EAKA8D,aAAc,WAEbvE,EAAOyC,kBAAkB7B,OAGzBZ,EAAO0C,kBAAkB9B,OAGzBZ,EAAOwE,WAAW5D,OAEY,qBAAnB/D,EAAQ4H,QAEO,IAAtBzE,EAAO0E,YAEV1E,EAAO2E,UAAU/D,OAGlBZ,EAAO4E,cAGF5E,EAAO6E,aACX7E,EAAO2C,OAAO/B,OAETZ,EAAO8E,eAAsD,IAAtC9E,EAAOoB,UAAU,kBAC5CpB,EAAO+E,WAGR/F,EAAEW,EAAUmB,OAAOkB,KAAK,kBAA6BgD,IAAI,SAAU,KAGpEhF,EAAOiF,WAAWrE,OAElBZ,EAAOkF,WAAWtE,OAElBZ,EAAOmF,QAAQvE,OAEfZ,EAAOoF,UAAUxE,OAEZZ,EAAOC,SAEXD,EAAOqF,cACPrG,EAAEW,GAAW2F,QAAQtE,oBAA2B,CAACF,MAAO9B,EAAEW,EAAU4F,MAAMlB,KAAK,MAAOxH,QAASA,IAC/FmD,EAAOC,QAAS,GAGjBjB,EAAEW,GAAW2F,QAAQtE,8BAAqC,CAACF,MAAO9B,EAAEW,EAAU4F,MAAMlB,KAAK,OAC1F,EAEAgB,YAAa,WACZ,IAAIG,EACJxG,EAAE,QAAQ+B,GAAG,mBAAoB,8BAAoD,SAASkC,GAC7FuC,EAAexG,EAAEiE,EAAEpF,QAAQmE,KAAK,kBAChChD,EAAE,QAAQ7H,OAAOqO,EAAaC,UAC9BD,EAAaR,IAAI,UAAW,SAC5BQ,EAAaE,SAAS,CACrB,GAAM,YACN,GAAM,eACN,GAAM1G,EAAEiE,EAAE0C,iBAGPhG,EAAUiG,QAAQ,UAAUlG,QAE/B8F,EAAaR,IAAI,UAAW,OAE9B,IAAGjE,GAAG,mBAAoB,8BAAoD,SAASkC,GAC1D,qBAAjBuC,IACVxG,EAAEiE,EAAEpF,QAAQ1G,OAAOqO,EAAaC,UAChCD,EAAaK,OACbL,EAAaR,IAAI,UAAW,IAE9B,IAGAhG,EAAErI,QAAQoK,GAAG,UAAU,SAASkC,GACH,qBAAjBuC,GACVA,EAAaK,MAEf,GACD,EAEAlB,UAAW,WACV,IAAImB,EAAO,CACVC,aAAa,EACbxF,KAAM,WAELuF,EAAKC,YAAc/F,EAAOgG,qBACW,IAAjCF,EAAKC,YAAYE,KAAKvG,QACS,IAAlCoG,EAAKC,YAAYG,MAAMxG,QAGxBoG,EAAKK,QACN,EACAA,OAAQ,WAsDPnH,EAAEW,EAAUmB,OAAOkB,KAAK,qBAAqBX,MAAK,WACjD,IAAI+E,EAAY3G,KAC0C,IAAtDT,EAAES,MAAMuC,KAAK,mBAA8BtC,QAC9CV,EAAES,MAAM4G,OAAM,YAxDC,SAASD,GAEzB,GAAIpH,EAAEoH,GAAWpE,KAAK,mBAA8BtC,OAAS,EAC5DM,EAAOsG,IAAI,sCAAuCF,QAInD,GAA8D,IAA1DpH,EAAEoH,GAAWpE,KAAK,kBAA6BtC,OAAnD,CAMA,IAAI6G,EAAWvH,EAAE,UAAUwH,SAASxF,sCAChCyF,EAAazH,EAAE,UAAUwH,SAASxF,wCAClC0F,EAAY1H,EAAE,UAAUwH,SAASxF,uCAErChC,EAAEoH,GAAWpE,KAAK,kBAA6BX,MAAK,WAEnD,IAAIsF,EAAU3H,EAAE,SAASwH,SAASxF,iBAAuBjK,KAAK,MAAOiI,EAAES,MAAM1I,KAAK,QAAQ6P,SAASL,GAC/FM,EAAY7H,EAAE,SAASwH,SAASxF,iBAAuBjK,KAAK,MAAOiI,EAAES,MAAM1I,KAAK,QAAQ6P,SAASH,GACjGK,EAAW9H,EAAE,SAASwH,SAASxF,iBAAuBjK,KAAK,MAAOiI,EAAES,MAAM1I,KAAK,QAAQ6P,SAASF,GACpG1H,EAAES,MAAMuC,KAAK,mBAA8BX,MAAK,WAC/C,IAAI0F,EAAS/H,EAAES,MAAM1I,KAAK,UACJ,qBAAXgQ,GACiB,qBAAhBA,EAAOd,OAAmC,IAAXc,GAEzC/H,EAAES,MAAMmH,SAASD,GAEU,qBAAjBI,EAAOb,OACjBlH,EAAES,MAAMmH,SAASE,IAGlB9H,EAAES,MAAMmH,SAASC,EAEnB,IAEA7H,EAAES,MAAMwC,QACT,IAEI6D,EAAKC,YAAYE,KAAKvG,OAAS,IAClCV,EAAEW,EAAU4F,MAAMiB,SAASxF,kBAC3BhC,EAAEuH,GAAUK,SAASR,KAElBN,EAAKC,YAAYE,KAAKvG,OAAS,GAAKoG,EAAKC,YAAYG,MAAMxG,OAAS,IACvEV,EAAEyH,GAAYG,SAASR,GAEpBN,EAAKC,YAAYG,MAAMxG,OAAS,IACnCV,EAAEW,EAAU4F,MAAMiB,SAASxF,kBAC3BhC,EAAE0H,GAAWE,SAASR,GAvCvB,MAFCpG,EAAOsG,IAAI,oBAAqBF,EA2ClC,CAMGY,CAAWZ,EACZ,GAEF,GACD,GAGD,OADAN,EAAKvF,OACEuF,CACR,EAKAhD,WAAY,WACX9D,EAAEW,EAAUoC,WAAWkF,QACvBjH,EAAOmC,eACHnC,EAAOoB,UAAU,mBACpBpC,EAAEW,EAAUuC,WAAW+E,QACvBjH,EAAOmC,aAAaxC,EAAUuC,YAG/BlC,EAAOyB,iBAAgB,GACvBzC,EAAEW,EAAU4F,MAAM2B,YAAYlG,oBAE9BhB,EAAOmH,YACR,EAEAnB,mBAAoB,WACnB,IAAIoB,EAASpI,EAAErI,QAAQ6H,QACnB8E,EAAUzG,EAAQyG,QAClB+D,EAAU,CAACpB,KAAM,GAAIC,MAAO,IAehC,OAdAlH,EAAEqC,KAAKiC,GAAS,SAASG,EAAGK,GACE,qBAAlBA,EAAOiD,SACiB,qBAAvBjD,EAAOiD,OAAOd,MACpB9G,EAAKmI,cAAcxD,EAAOiD,OAAOd,OAASmB,GAC7CC,EAAc,KAAExL,KAAKiI,EAAOiD,OAAOd,MAGF,qBAAxBnC,EAAOiD,OAAOb,OACpB/G,EAAKmI,cAAcxD,EAAOiD,OAAOb,QAAUkB,GAC9CC,EAAe,MAAExL,KAAKiI,EAAOiD,OAAOb,OAIxC,IACOmB,CACR,EAOApG,YAAa,SAASgC,EAAGsE,GACxBvI,EAAEW,GAAW0G,OAAM,WAEdrG,EAAO6E,YACV7E,EAAO2C,SAGR3D,EAAEW,EAAU6H,WAAWxC,IAAI,aAAc,IACzChG,EAAEW,EAAU4F,MAAMiB,SAASxF,oBAE3BhB,EAAOyB,iBAAgB,EACxB,GACD,EAEAgG,WAAY,EACZC,aAAa,EACblD,WAAY,WACXxF,EAAErI,QAAQgR,QAAO,SAAS1E,GAEzB2E,aAAa5H,EAAOyH,YACpBzH,EAAO0H,aAAc,CACtB,IAEA1I,EAAEW,EAAU6H,WAAWxF,KAAK,mBAA8B6F,IAAI,aAAc,cAAc9G,GAAG,cAAc,WAK1G,GAHAf,EAAOyH,WAAaK,YAAW,WAC9B9H,EAAO0H,aAAc,CACtB,GAAG,MACC1H,EAAO0H,YAAX,CAGA,IAAIK,EAAM/I,EAAES,MAAMmG,QAAQ,kBAA6BY,SAASxF,uBAC5DgH,EAAQhJ,EAAE+I,GAAKC,QAAU,EAG7BhJ,EAAE+I,GAAKnC,QAAQ,mBAA8BqC,SAASjG,KAAK,4BAAyCgG,EAAQ,KAAKxB,SAASxF,sBAP5F,CAQ/B,IAAGD,GAAG,cAAc,WAEnB,IAAIgH,EAAM/I,EAAES,MAAMmG,QAAQ,kBAA6BsB,YAAYlG,uBAC/DgH,EAAQhJ,EAAE+I,GAAKC,QAAU,EAG7BhJ,EAAE+I,GAAKnC,QAAQ,mBAA8BqC,SAASjG,KAAK,4BAAyCgG,EAAQ,KAAKd,YAAYlG,sBAC9H,GACD,EAMAkH,oBAAqB,WACpB,IAAKlI,EAAO6E,WAAY,OAAO,EAG/B,IAAIsD,EAAiBnJ,EAAEW,EAAUoC,WAAWvD,QACxC+H,EAAWvH,EAAEW,EAAUoC,WAAWC,KAAK,wBAAmCxD,QAC1EkI,EAAY1H,EAAEW,EAAUoC,WAAWC,KAAK,yBAAoCxD,QAExD,qBAAb+H,IAA0BA,EAAW,GACvB,qBAAdG,IAA2BA,EAAY,GAElD,IAAID,EAAa2B,KAAKC,MAAMF,EAAiB5B,EAAWG,GAGxD,OAFA1H,EAAEW,EAAUmB,OAAOkB,KAAK,0BAAqCgD,IAAI,QAASyB,GAEnEA,CACR,EAKA6B,WAAY,WACX,IAEIC,EAAQC,EAFRC,GAAU,EACVC,OAAQC,EAEZ3J,EAAEW,EAAUoC,WAAWC,KAAK,mBAA8B4G,WAAU,SAAS3F,GAC5EyF,EAAQ1J,EAAES,MACVgJ,GAAU,EACVF,EAAStF,EAAE4F,MACXL,EAAaxJ,EAAES,MAAMjB,QACrBQ,EAAE0J,GAAOlC,SAASxF,0BAEnB,IAAG8H,WAAU,SAAS7F,GACrB,GAAIwF,EAAS,CACZ,IAAIhF,EAAIzE,EAAE0J,GAAOV,QACbR,EAAYxI,EAAEW,EAAU6H,WACxBuB,EAAW/J,EAAE0J,GAAO9C,QAAQ,mBAEhC,GAAImD,EAAU,CACb,IAAIC,EAAchK,EAAE+J,GAAUf,QAC9BR,EAAYxI,EAAEW,EAAU6H,WAAWxF,KAAK,mBAA8BiH,GAAGD,EAC1E,CAEAhK,EAAEwI,GAAWxF,KAAK,kBAA6BX,MAAK,SAAS6H,EAAKC,GACjEnK,EAAEmK,GAAInH,KAAK,mBAA8BiH,GAAGxF,GAAGjF,MAAMgK,GAAcvF,EAAE4F,MAAQN,IAASlL,WAAWmB,MAAMgK,GAAcvF,EAAE4F,MAAQN,GAChI,IAEAvJ,EAAE0J,GAAOrL,WAAW2H,IAAI,QAASwD,GAAcvF,EAAE4F,MAAQN,GAC1D,CAED,IAAGa,SAAQ,WACVpK,EAAE0J,GAAOxB,YAAYlG,2BACrByH,GAAU,CACX,IAEAzJ,EAAElD,UAAUsN,SAAQ,WACnBpK,EAAE0J,GAAOxB,YAAYlG,2BACrByH,GAAU,CACX,GACD,EAKAY,WAAY,WACX,GAAIxM,EAAQuF,OAAOW,QAAUlG,EAAQuF,OAAOuF,OAAQ,CACnD,IAAI2B,EAActK,EAAEW,EAAUoC,WAAWC,KAAK,kBAA6BuH,cACvEC,EAAcxK,EAAEW,EAAUuC,WAAWF,KAAK,kBAA6BuH,cACvEE,EAAa5M,EAAQuF,OAAOW,OAC5BuG,EAAc,IACjBG,GAAcH,GAEXE,EAAc,IACjBC,GAAcD,GAIfC,GAAc,EAEdzK,EAAEW,EAAU6H,WAAWxC,IAAI,aAAcoD,KAAKC,MAAMqB,WAAWD,IAIhE,CACD,EAMA9I,aAAc,WAEbhB,EAAUgK,iBAAmB3K,EAAEW,GAAWiK,QAGL,UAAjC5K,EAAEW,GAAWsE,KAAK,YAErBtE,EAAUmB,MAAQ9B,EAAEW,GAAWuH,YAAYlG,aAAmBwF,SAASxF,mBACJ,IAA/DhC,EAAEW,EAAUmB,OAAO+I,QAAQ,cAAyBnK,SACvDC,EAAUmB,MAAMyE,KAAKvG,EAAE,UAAUwH,SAASxF,aAAmBwF,SAASxF,aAAqBnE,EAAQuF,OAAO0H,QAC1GnK,EAAU4F,KAAOvG,EAAEW,EAAUmB,OAAOmH,YAIrCtI,EAAU4F,KAAOvG,EAAEW,GAAW6G,SAASxF,aAAmBwF,SAASxF,aAAqBnE,EAAQuF,OAAO0H,OACvGnK,EAAUmB,MAAQ9B,EAAE,YAAYwH,SAASxF,mBAAyB4F,SAASjH,IAGxC,qBAAzB9C,EAAQuF,OAAO2H,OACzB/K,EAAEW,EAAU4F,MAAMiB,SAAS3J,EAAQuF,OAAO2H,OAG3C/K,EAAEW,EAAUmB,OAAOoG,YAAYlG,uBAA6BgE,IAAI,UAAW,SAGpC,qBAA5BhG,EAAEW,GAAW0E,KAAK,QAC5BrE,EAAOgK,UAAU,kBAAkB,GACnChL,EAAEW,EAAUmB,OAAOuD,KAAK,KAAMlF,EAAK8K,YAAYjJ,gBAI5ChB,EAAOoB,UAAU,qBACpBpC,EAAEW,EAAUmB,OAAOkE,IAAI,aAAchF,EAAOoB,UAAU,qBAEnDpB,EAAOoB,UAAU,kBACpBpC,EAAEW,EAAUmB,OAAOkE,IAAI,aAAchF,EAAOoB,UAAU,kBAG7B,OAAtBvE,EAAQ9F,KAAKkC,MAChB+F,EAAEW,EAAUmB,OAAOkE,IAAI,QAAS,IAAIA,IAAI,UAAW,IAIpDrF,EAAUoC,UAAY/C,EAAEW,EAAUmB,OAAOkB,KAAK,SACR,IAAlChD,EAAEW,EAAUoC,WAAWrC,SAC1BC,EAAUoC,UAAY/C,EAAE,YAAYkL,UAAUvK,EAAUmB,QAIzDnB,EAAU6H,UAAYxI,EAAEW,EAAUmB,OAAOkB,KAAK,SACR,IAAlChD,EAAEW,EAAU6H,WAAW9H,SAC1BC,EAAU6H,UAAYxI,EAAE,YAAY4H,SAASjH,EAAUmB,QAGnB,qBAA1BjE,EAAQuF,OAAOE,QACzBzF,EAAQuF,OAAOE,SAEf3C,EAAUuC,UAAYlD,EAAEW,EAAUmB,OAAOkB,KAAK,SACR,IAAlChD,EAAEW,EAAUuC,WAAWxC,SAC1BC,EAAUuC,UAAYlD,EAAE,YAAY4H,SAASjH,EAAUmB,QAG1D,EAKAyB,eAAgB,SAAS4H,GACE,qBAAfA,IAA4BA,EAAanL,EAAEW,EAAUmB,OAAOzD,YACvE,IAAIiG,EAAUzG,EAAQyG,QACtBtE,EAAEqC,KAAK8I,GAAY,SAASC,EAAMhE,GACjCpH,EAAEoH,GAAWpE,KAAK,kBAA6BX,MAAK,SAAS6H,EAAKC,GAEjEnK,EAAEmK,GAAInH,KAAK,mBAA8BX,MAAK,SAASgJ,EAAKnG,GAC/B,qBAAjBZ,EAAQ+G,IAClBrL,EAAEkF,GAAInN,KAAKuM,EAAQ+G,GAErB,GACD,GACD,GACD,EAMA7H,kBAAmB,SAAS4D,GACF,qBAAdA,IAA2BA,EAAYzG,EAAU6H,WAC5D,IAAIlE,EAAUzG,EAAQyG,QACtBtE,EAAEoH,GAAWpE,KAAK,kBAA6BX,MAAK,SAAS6H,EAAKC,GAEjE,IAAImB,EAAMtL,EAAEmK,GAAIpS,KAAK,OACrB,GAAmB,qBAARuT,EAAX,CAcA,IAAIC,EAAcvK,EAAOoB,UAAU,iBACR,oBAAhBmJ,GACVA,EAAYvL,EAAEmK,GAAKmB,EAAKpB,GAGzB,IAAIsB,EAAiBxK,EAAOoB,UAAU,uBACR,oBAAnBoJ,GACVA,EAAexL,EAAEmK,GAAKmB,EAAKpB,GAGT,qBAARoB,IACVA,EAAM,CAAC,EACPtL,EAAEmK,GAAInH,KAAK,mBAA8BX,MAAK,SAASgJ,EAAKnG,GAE3D,IAAIJ,EAAS9E,EAAEyL,KAAKnH,GAAS,SAASoH,EAAGjH,GACxC,OAAOzE,EAAEkF,GAAInN,KAAK,WAAa2T,EAAEhH,KAClC,IAAG,GACmB,qBAAXI,IACVwG,EAAIxG,EAAc,OAAK9E,EAAEkF,GAAIN,OAE/B,KAGD5E,EAAEmK,GAAInH,KAAK,mBAA8BX,MAAK,SAASgJ,EAAKnG,GAE3D,IAAIJ,EAAS9E,EAAEyL,KAAKnH,GAAS,SAASoH,EAAGjH,GACxC,OAAOzE,EAAEkF,GAAInN,KAAK,WAAa2T,EAAEhH,KAClC,IAAG,GACH,GAAsB,qBAAXI,GAEqB,qBAApBA,EAAO6G,SAA0B,CAC3C,IAAIC,EAAa,GAEc,kBAApB9G,EAAO6G,WACjBC,EAAa5K,EAAO6K,gBAAgB/G,EAAO6G,SAAUL,IAGvB,oBAApBxG,EAAO6G,WACjBC,EAAa9G,EAAO6G,SAASL,EAAKpB,EAAKvJ,IAIf,qBAAdmL,YACVF,EAAaE,UAAUC,SAASH,IAGjC,IAAIpQ,EAAOsB,SAASkP,cAAc,QAClCxQ,EAAK2J,UAAYyG,EAGjB5L,EAAEkF,GAAI+G,KAAKzQ,GAGoB,qBAApBsJ,EAAOoH,WACjBlM,EAAExE,GAAMwK,IAAI,WAAYlB,EAAOoH,UAC/BlM,EAAExE,GAAMwK,IAAI,WAAY,YAE1B,CAEF,IAGA,IAAImG,EAAgBnL,EAAOoB,UAAU,sBACR,oBAAlB+J,GACVA,EAAcnM,EAAEmK,GAAKmB,EAAKpB,EA5E3B,CA8ED,GACD,EAMAxG,kBAAmB,WAGlB,GAFA/C,EAAUgC,QAAUhC,EAAUgC,SAAW,GAER,IAA7BhC,EAAUgC,QAAQjC,OAAtB,CAEA,IAAI4D,EAAUzG,EAAQyG,QACtBtE,EAAEW,EAAU6H,WAAWxF,KAAK,kBAA6BX,MAAK,SAAS6H,EAAKC,GAC3EnK,EAAEmK,GAAInH,KAAK,mBAA8BX,MAAK,SAASgJ,EAAKnG,GAE3D,IAAIJ,EAAS9E,EAAEyL,KAAKnH,GAAS,SAASoH,EAAGjH,GACxC,OAAOzE,EAAEkF,GAAInN,KAAK,WAAa2T,EAAEhH,KAClC,IAAG,GACH,GAAsB,qBAAXI,EAAwB,CAClC,IAAIpG,EAAQsB,EAAEkF,GAAIN,OAGlB,GAA+B,qBAApBE,EAAOsH,WAAgD,IAApBtH,EAAOsH,SAAoB,CAExE,GAAIpM,EAAEkF,GAAIlC,KAAK,+BAA0CtC,OAAS,EAAG,OAErEV,EAAEkF,GAAIsC,SAASxF,wBAGf,IAAIqK,EAAMrM,EAAE,YACXwH,SAASxF,4BACT7J,OAAO6H,EAAE,YAAYqF,KAAK,OAAQ,YAAYA,KAAK,QAAS3G,GAAOqD,GAAG,SAAS,WAC1E/B,EAAES,MAAM6L,GAAG,YAEdtL,EAAOuL,UAAU9L,MAGjBO,EAAOwL,YAAY/L,KAErB,KACAtI,OAAO,uBAG6B,qBAA1B2M,EAAOsH,SAASrB,OAC1B/K,EAAEqM,GAAK7E,SAAS1C,EAAOsH,SAASrB,OAGjC/K,EAAEkF,GAAI7G,WAAW4N,KAAKI,EACvB,CAGA,GAA+B,qBAApBvH,EAAO2H,UAA4B3H,EAAO2H,SAAU,CAE9D,GAAIzM,EAAEkF,GAAIlC,KAAK,8BAAyCtC,OAAS,EAAG,OAEpEV,EAAEkF,GACD7G,WACA4N,KAAKjM,EAAE,QACNwH,SAASxF,6BACTqD,KAAK,OAAQ,KACbA,KAAK,aAAc3G,GACnBvG,OAAO6H,EAAE,QAAQwH,SAASxG,EAAOoB,UAAU,qCAC9C,CACD,CACD,GACD,IAGA,IAAIsK,EAAe,SAASvC,GAE3B,IAAIrF,EAAS9E,EAAEyL,KAAKnH,GAAS,SAASoH,EAAGjH,GACxC,MAA6B,qBAAfiH,EAAEU,WAA2C,IAAfV,EAAEU,QAC/C,IAAG,GAEH,GAAsB,qBAAXtH,GAEqB,qBAApBA,EAAOsH,WAAgD,IAApBtH,EAAOsH,SAAoB,CACxE,IAAIlH,EAAKlF,EAAEmK,GAAInH,KAAK,gBAAkB8B,EAAOJ,MAAQ,MAErD,GAAI1E,EAAEkF,GAAIlC,KAAK,+BAA0CtC,OAAS,EAAG,OAErEV,EAAEkF,GAAIsC,SAASxF,wBAGf,IAAIqK,EAAMrM,EAAE,YACXwH,SAASxF,yCACT7J,OAAO6H,EAAE,YAAYqF,KAAK,OAAQ,YAAYtD,GAAG,SAAS,WACrD/B,EAAES,MAAM6L,GAAG,YACdtL,EAAO2L,cAAa,GAEpB3L,EAAO2L,cAAa,EAEtB,KACAxU,OAAO,uBAG6B,qBAA1B2M,EAAOsH,SAASrB,OAC1B/K,EAAEqM,GAAK7E,SAAS1C,EAAOsH,SAASrB,OAGjC/K,EAAEkF,GAAI7G,WAAW4N,KAAKI,EACvB,CAEF,EAEIxO,EAAQuF,OAAOC,QAClBqJ,EAAa1M,EAAEW,EAAUoC,WAAWC,KAAK,kBAA6B4J,SAEnE/O,EAAQuF,OAAOE,QAClBoJ,EAAa1M,EAAEW,EAAUuC,WAAWF,KAAK,kBAA6B4J,QApG7B,CAsG3C,EAEAC,aAAc,CAAC,EAKfC,iBAAkB,WAEjB,IAAI3D,EAAiBnJ,EAAEW,EAAU6H,WAAWuE,aAAe/L,EAAOG,WAG9DmD,EAAUtE,EAAEW,EAAUoC,WACzBC,KAAK,8BACLA,KAAK,mBAELgK,IAAI,4BACJA,IAAI,WAAWtM,OAEhB,GAAI4D,EAAU,EAAG,CAEhB6E,GAAmCnI,EAAOG,WAAamD,EACvD,IAAI2I,EAAW7D,KAAKC,MAAMF,EAAiB7E,GAGvC2I,GAAYjM,EAAOE,aACtB+L,EAAWjM,EAAOE,YAGnBlB,EAAEW,EAAUmB,OAAOkB,KAAK,kBACtBA,KAAK,mBAELgK,IAAI,4BACJA,IAAI,WAAW3K,MAAK,SAASgJ,EAAKnG,GAEnC,IAAI1F,EAAQyN,EACRC,EAAYlN,EAAEkF,GAAInN,KAAK,SAE3B,GAAyB,qBAAdmV,EACV,GAAkB,SAAdA,EAAsB,CACzB,IAAIxI,EAAQ1E,EAAEkF,GAAInN,KAAK,SACvB,GAAIiJ,EAAO6L,aAAanI,GACvBlF,EAAQwB,EAAO6L,aAAanI,OAExB,CACJ,IAAIyI,EAAQnN,EAAEW,EAAUmB,OAAOkB,KAAK,+BAA4C0B,EAAQ,MACxFlF,EAAQwB,EAAO6L,aAAanI,GAAS0E,KAAKgE,IAAIC,MAAM,KAClDrN,EAAEmN,GAAO3O,KAAI,WACZ,OAAOwB,EAAES,MAAM6M,YAChB,IAAG/I,MACN,CACD,MAEC/E,EAAQ0N,EAGVlN,EAAEkF,GAAI7G,WAAW2H,IAAI,QAASoD,KAAKmE,KAAK/N,GACzC,GACD,CAEA,OAAOmB,CACR,EAKA6M,kBAAmB,WAClBxN,EAAEqC,KAAKrC,EAAEW,EAAUmB,OAAOzD,YAAY,SAAS+M,EAAMhE,GAEpD,IADA,IAAIqG,EAAYzN,EAAEoH,GAAWpE,KAAK,kBAA6B4J,QAAQ3D,SAASjG,KAAK,kBAA6BtC,OACzG+D,EAAI,EAAGA,GAAKgJ,EAAWhJ,IAAK,CACpC,IAAIiJ,EAAO1N,EAAEoH,GAAWpE,KAAK,4BAAyCyB,EAAI,KAC1E,GAAIzE,EAAE0N,GAAMhN,OAAS,EAAG,CACvB,IAAIiN,EAAYvE,KAAKgE,IAAIC,MAAM,KAAMrN,EAAE0N,GAAMlP,KAAI,WAChD,OAAOwB,EAAES,MAAM8J,aAChB,IAAGhG,OACHvE,EAAE0N,GAAM1H,IAAI,SAAUoD,KAAKmE,KAAKI,GACjC,CACD,CACD,GACD,EAKA9L,SAAU,SAASC,GAElB9B,EAAE8B,GAAOkB,KAAK,WAAWwE,SAASxF,kBAClChC,EAAE8B,GAAOkB,KAAK,WAAWwE,SAASxF,kBAClChC,EAAE8B,GAAOkB,KAAK,WAAWwE,SAASxF,kBAClChC,EAAE8B,GAAOkB,KAAK,MAAMwE,SAASxF,iBAC7BhC,EAAE8B,GAAOkB,KAAK,oBAAoBwE,SAASxF,kBAC3ChC,EAAE8B,GAAOkB,KAAK,oBAAoBX,MAAK,SAASoC,EAAGS,GAChB,IAA9BlF,EAAEkF,GAAIlC,KAAK,QAAQtC,QACtBV,EAAEkF,GAAI0I,UAAU5N,EAAE,WAAWgG,IAAI,QAAShF,EAAOE,YAEnD,GACD,EAOAkF,UAAW,WACV,IAAIuC,EAAS,CACZkF,WAAY,KACZC,YAAa,KACbC,aAAc,KACdxM,KAAM,WACL,IAAI6G,EAASjI,EAAK6N,cAAcxO,MAEhC,GAAI3B,EAAQuF,OAAOuF,OAAQ,CAE1B3I,EAAEW,EAAU4F,MAAMiB,SAASxF,oBAE3B,IAAI6L,EAAa7N,EAAEW,EAAU6H,WAAWxF,KAAK,0BAGzChD,EAAE6N,GAAY7K,KAAK,kBAA6BtC,OAAS,GAAKV,EAAE6N,GAAYnN,OAAS,GACxFiI,EAAOsF,WAAajO,EAAEW,EAAUoC,WAAWC,KAAK,6CAChD2F,EAAOuF,WAAalO,EAAEW,EAAUuC,WAAWF,KAAK,6CAChD2F,EAAOmF,YAAc9N,EAAEW,EAAU6H,WAAWxF,KAAK,+CAC7ChC,EAAOoB,UAAU,2BAAgD,IAAnBjC,EAAKgO,YAAoB/F,EAASjI,EAAKmI,cAAc,MACtGK,EAAOyF,oBAAoBP,EAAW,IAEtClF,EAAO0F,qBAAqBR,IAEnB7N,EAAEW,EAAU6H,WAAWxF,KAAK,kBAA6BtC,OAAS,IAC5EiI,EAAOsF,WAAajO,EAAEW,EAAUoC,WAAWC,KAAK,oBAChD2F,EAAOuF,WAAalO,EAAEW,EAAUuC,WAAWF,KAAK,oBAC5ChC,EAAOoB,UAAU,2BAAgD,IAAnBjC,EAAKgO,YAAoB/F,EAASjI,EAAKmI,cAAc,MACtGK,EAAOyF,oBAAoBzN,EAAU6H,WAErCG,EAAO0F,qBAAqB1N,EAAU6H,WAGzC,CACD,EACA6F,qBAAsB,SAASR,GAE9BlF,EAAOoF,aAAe/N,EAAE6N,GAAYS,aACpCtO,EAAE6N,GAAY7H,IAAI,aAAc,QAAQ6C,MAAM9G,GAAG,SAAU4G,EAAO4F,aAClEvO,EAAE6N,GAAY7H,IAAI,aAAc,OACjC,EACAuI,YAAa,SAAStK,GACrB,IAAIgD,EAAOjH,EAAES,MAAM6N,aACfE,EAAMxO,EAAES,MAAMgO,YACdtO,EAAKf,UAER6H,GAAc0B,EAAOoF,cAEtB/N,EAAE2I,EAAOsF,YAAYjI,IAAI,QAASiB,GAClCjH,EAAE2I,EAAOuF,YAAYlI,IAAI,QAASiB,GAClCjH,EAAE2I,EAAOmF,aAAazL,MAAK,SAASoC,EAAG3C,GAClCd,EAAO6E,aAEV2I,GAAO,GAERxO,EAAE8B,GAAOkE,IAAI,OAAQwI,EACtB,GACD,EACAJ,oBAAqB,SAASP,GAC7BlF,EAAOkF,WAAaA,EAEpB7M,EAAO0N,cAAcb,GAErBlF,EAAOoF,aAAe/N,EAAE6N,GAAYS,aACpCtO,EAAE6N,GAAYhF,MAAM9G,GAAG,SAAU4G,EAAO4F,YACzC,GAGD,OADA5F,EAAOpH,OACAoH,CACR,EAOA+F,cAAe,SAASC,EAAS9Q,GAChC,GAAK8Q,GAAYA,EAAQC,SAAzB,CAGA5O,EAAEW,EAAU6H,WAAWxC,IAAI,WAAY,IACvC,IAAI6I,EAAK7O,EAAE2O,GAAS5W,KAAK,MACrBoI,EAAK2O,SAASH,EAAS,OAAuB,qBAAPE,EAC1CA,EAAGE,UAEHF,EAAK,IAAIG,iBAAiBL,EAAS1T,OAAOK,OAAO,CAAC,EAAG,CACpD2T,WAAY,GACZC,aAAa,EAEbC,mBAAoB,GACpBC,mBAAoB,IACpBC,gBAAiBrO,EAAOoB,UAAU,mBAAqBpB,EAAO6E,YAC5DhI,IACHmC,EAAE2O,GAAS5W,KAAK,KAAM8W,IAIvB7O,EAAErI,QAAQkM,QAAO,WAChBgL,EAAGE,QACJ,GApBA,CAqBD,EAKA5L,aAAc,SAASiE,GACG,qBAAdA,IAA2BA,EAAYzG,EAAUoC,WAC5DqE,EAAYpH,EAAEoH,GAAW,GACzB,IAAI9C,EAAUzG,EAAQyG,QAClByE,EAAM3B,EAAUkI,qBAAqB,MAAM,GAC3CC,EAAMnI,EAAUkI,qBAAqB,MAEtB,qBAARvG,IACVA,EAAMjM,SAASkP,cAAc,MAC7B5E,EAAUoI,YAAYzG,IAGvB/I,EAAEqC,KAAKiC,GAAS,SAASG,EAAGK,GAC3B,IAAI2K,EAAKF,EAAI9K,GA8Bb,GA7BkB,qBAAPgL,IACVA,EAAK3S,SAASkP,cAAc,MAC5BjD,EAAIyG,YAAYC,IAIc,qBAApB3K,EAAc,QACxB2K,EAAGtK,UAAYL,EAAOH,MACtB8K,EAAGC,aAAa,aAAc5K,EAAOJ,OACrCvE,EAAKqH,SAASiI,EAAI3K,EAAOiG,OAEM,qBAApBjG,EAAOiB,YACO,IAApBjB,EAAOiB,SACV0J,EAAGC,aAAa,yBAA0B5K,EAAOiB,UAEjD0J,EAAGC,aAAa,wBAAyB5K,EAAOiB,WAGlD/F,EAAEyP,GAAI1X,KAAK+M,IAIe,qBAAhBA,EAAOO,MACjBrF,EAAEqC,KAAKyC,EAAOO,MAAM,SAASnN,EAAKkM,GACjCqL,EAAGC,aAAaxX,EAAKkM,EACtB,IAI+B,qBAArBU,EAAO6K,UAA2B,CAC5C,IAAIC,EAAyD,qBAA1CjP,EAAUgP,UAAU7K,EAAO6K,WAA6BhP,EAAUgP,UAAU7K,EAAO6K,WAAa,GACnHxP,EAAKqH,SAASiI,EAAIG,EACnB,CACD,IACA5O,EAAOa,SAASuF,EACjB,EAKAtE,WAAY,SAAS+M,GACpB7P,EAAEW,EAAUmB,OAAOgO,SAAS,oBAA+B5H,YAAYlG,2BAEvE,IAAI+N,EAAY,WACfpP,EAAUgC,QAAUhC,EAAUgC,SAAW,GACzC3B,EAAOgP,kBAEP,IAAIC,EAAOjP,EAAOkP,mBAAmB,cAChB,IAAjBD,EAAKE,UACRF,EAAKE,QAAUtS,EAAQ9F,KAAKqY,UAAY,IAEzCH,EAAKI,MAAQ1P,EAAUgC,QAAQjC,OAC/B,IAAIgJ,EAAQN,KAAKgE,IAAI6C,EAAKE,SAAWF,EAAKK,KAAO,GAAI,GACjDC,EAAMnH,KAAKoH,IAAI9G,EAAQuG,EAAKE,QAASF,EAAKI,OAE9C,OADA1P,EAAUgC,QAAU3C,EAAEW,EAAUgC,SAAS8N,MAAM/G,EAAO6G,GAC/CN,CACR,EAEIS,EAAe,SAASC,GAC3B,IAAIC,EAAsB,SAASC,EAAKZ,GAClCjQ,EAAE6Q,EAAIC,OAAOhC,SAAS9M,6BAC1BhC,EAAE6Q,EAAIC,OAAO7N,SACb4N,EAAItP,KAAK0O,IAEVjQ,EAAE6Q,EAAIC,OAAOjI,MAAM9G,GAAGC,0BAAgC,SAASiC,GAC9DjE,EAAE6Q,EAAIC,OAAO7N,SACb4N,EAAItP,KAAK0O,EACV,IAEA,IAAIvG,EAAQN,KAAKgE,IAAI6C,EAAKE,SAAWF,EAAKK,KAAO,GAAI,GACjDC,EAAMnH,KAAKoH,IAAI9G,EAAQuG,EAAKE,QAASF,EAAKI,OAE9CrP,EAAOgP,kBACPrP,EAAUgC,QAAU3C,EAAEW,EAAUgC,SAAS8N,MAAM/G,EAAO6G,GAGtDvP,EAAOmH,YACR,EAIA,GAFAnI,EAAEW,EAAU4F,MAAM2B,YAAYlG,mBAE1BnE,EAAQkT,WACX,GAAIlT,EAAQ9F,KAAKiZ,cAAsC,UAAtBnT,EAAQ9F,KAAKkC,KAAkB,CAE/D,IAAIgX,EAAajQ,EAAOkQ,UAAU,OAAQP,GAAU,MAEnD3P,EAAOM,aADW,OAAf2P,EACmBjQ,EAAOmQ,OAAOF,GAGdjQ,EAAOmQ,OAAOpB,IAAaa,EAEnD,MAEC5P,EAAOM,aAAeN,EAAOmQ,OAAOpB,IAAaa,QAIlD5P,EAAOgP,kBAGRhP,EAAOmH,YACR,EAG0B,UAAtBtK,EAAQ9F,KAAKkC,OAIkB,IAA/B4D,EAAQ9F,KAAKqZ,eAAsC,SAAXvB,IACP,IAAjChS,EAAQ9F,KAAKsZ,iBAAwC,WAAXxB,EAE7C/G,YAAW,WACV9H,EAAOsQ,iBACPZ,GACD,IAKD1P,EAAOuQ,UAAUC,KAAKd,EACvB,EAKAvI,WAAY,WACXxH,EAAUgC,QAAUhC,EAAUgC,SAAW,GACzC,IAAI5B,EAASC,EAAOkP,qBAGhBa,EAAahQ,EAAOgQ,WACpBrH,GAASN,KAAKgE,IAAI2D,EAAWT,KAAM,GAAK,GAAKS,EAAWZ,QACxDI,EAAMnH,KAAKoH,IAAIO,EAAWT,KAAMS,EAAWU,OAASV,EAAWZ,QAC/D7K,EAAW,CAAC,EAC0B,qBAA/BzH,EAAQ9F,KAAKsN,KAAKC,UAA4BzH,EAAQ9F,KAAKsN,KAAKC,SAAS5E,SACnF4E,EAAWzH,EAAQ9F,KAAKsN,KAAKC,SAASmL,MAAM/G,EAAO6G,IAGpD,IAAI/H,EAAY1L,SAASkP,cAAc,SACvCxD,EAAUnJ,MAAMqS,WAAa,SAC7B,IAAIC,EAAY9T,EAAQyG,QAAQ5D,OAuDhC,GArDAV,EAAEqC,KAAK1B,EAAUgC,SAAS,SAASiP,EAAU7I,GAC5C,IAAIoB,EAAKrN,SAASkP,cAAc,MAChC7B,EAAGuF,aAAa,WAAYkC,GAE5B5R,EAAEmK,GAAIpS,KAAK,MAAOgR,GAEgB,qBAAvBzD,EAASsM,IACnB5R,EAAEqC,KAAKiD,EAASsM,IAAW,WAC1BzH,EAAGuF,aAAajP,KAAKnD,KAAMmD,KAAK/B,MACjC,IAKD,IAFA,IAESmT,EAAI,EAAGA,EAAIF,EAAWE,GAAK,EAAG,CACtC,IAAI/M,EAASjH,EAAQyG,QAAQuN,GACzBC,EAAU,GAOd,GALI9Q,EAAOkQ,UAAU,aAAcnQ,KAAY+D,EAAOJ,OACrDoN,EAAQjV,KAAKmF,yBAIkB,qBAArB8C,EAAO6K,UAA2B,CAC5C,IAAIC,EAAyD,qBAA1CjP,EAAUgP,UAAU7K,EAAO6K,WAA6BhP,EAAUgP,UAAU7K,EAAO6K,WAAa,GACnHmC,EAAQjV,KAAK+S,EACd,CAG4B,qBAAjB9K,EAAOiG,OACjB+G,EAAQjV,KAAKiI,EAAOiG,OAGrB,IAAI7F,EAAKpI,SAASkP,cAAc,MAChC7L,EAAKqH,SAAStC,EAAI4M,EAAQC,KAAK,MAC/B7M,EAAGwK,aAAa,aAAc5K,EAAOJ,OAEN,qBAApBI,EAAOiB,YACO,IAApBjB,EAAOiB,SACVb,EAAGwK,aAAa,yBAA0B5K,EAAOiB,UAEjDb,EAAGwK,aAAa,wBAAyB5K,EAAOiB,WAGlDb,EAAGC,UAAYnE,EAAOkQ,UAAUpM,EAAOJ,MAAOqE,GAC9C7D,EAAGwK,aAAa,aAAc1O,EAAOkQ,UAAUpM,EAAOJ,MAAOqE,IAC7DoB,EAAGqF,YAAYtK,EAChB,CAEAsD,EAAUgH,YAAYrF,EACvB,IAGiC,IAA7BxJ,EAAUgC,QAAQjC,OAAc,CACnC,IAAIsR,EAAYlV,SAASkP,cAAc,QACvC7L,EAAKqH,SAASwK,EAAWhQ,mBACzBgQ,EAAU7M,UAAYnE,EAAOoB,UAAU,+BACvCoG,EAAUgH,YAAYwC,GACtBhS,EAAEW,EAAU4F,MAAMiB,SAASxF,oCAC3BhB,EAAOyB,iBAAgB,EACxB,CAGAzC,EAAEW,EAAU6H,WAAWyJ,YAAYzJ,GACnC7H,EAAU6H,UAAYA,EAGtBxH,EAAOa,SAASlB,EAAUmB,OAC1Bd,EAAOuC,eAAe,CAAC5C,EAAU6H,YACjCxH,EAAOwC,kBAAkB7C,EAAU6H,WACnCxH,EAAOuE,cACR,EAEA2M,sBAAuB,WACtBvR,EAAUoC,UAAY/C,EAAEW,EAAUmB,OAAOzD,SAAS,SAASkG,IAAI,GAC/D5D,EAAU6H,UAAYxI,EAAEW,EAAUmB,OAAOzD,SAAS,SAASkG,IAAI,GAC/D5D,EAAUuC,UAAYlD,EAAEW,EAAUmB,OAAOzD,SAAS,SAASkG,IAAI,EAChE,EAKAgN,QAAS,WAGR,IAAIlQ,EAAa,CAChB8Q,SAAU,OACV7V,OAAQ,OACRvE,KAAM,CAAC,EACPqa,QAASpR,EAAOoB,UAAU,6BAA+B,KAO1D,GAJ0B,UAAtBvE,EAAQ9F,KAAKkC,OAChBoH,EAAWlF,IAAM0B,EAAQ9F,KAAK0J,QAGL,WAAtB5D,EAAQ9F,KAAKkC,KAAmB,CACnC,IAAIlC,EAAOiJ,EAAOkP,qBAEblP,EAAOoB,UAAU,6BACdrK,EAAiB,WAEpBiJ,EAAOoB,UAAU,8BACdrK,EAAW,KAEnBsJ,EAAWtJ,KAAOiI,EAAEwC,OAAO,CAAC,EAAGnB,EAAWtJ,KAAMiJ,EAAOoB,UAAU,2BAA4BrK,GAG/D,kBAF9BsJ,EAAarB,EAAEwC,OAAO,CAAC,EAAGnB,EAAYL,EAAOoB,UAAU,sBAEjCjG,MAAkBkF,EAAWlF,IAAM6E,EAAOoB,UAAU,qBAC5C,kBAAnBf,EAAWlF,MAAkBkF,EAAWlF,IAAM6E,EAAOoB,UAAU,eAE3E,CAEA,OAAOpC,EAAEqS,KAAKhR,GAAYmQ,MAAK,SAASc,EAAUC,EAAYC,GAC7D7R,EAAU8R,aAAeH,EAEzB3R,EAAUgC,QAAUhC,EAAUiC,gBAAkB5B,EAAO6B,gBAAgByP,GACvEtR,EAAOsQ,iBACPtR,EAAEW,GAAW2F,QAAQtE,yBAAgC,CAACrB,EAAUgC,SACjE,IAAG+P,MAAK,SAASF,EAAOD,EAAYI,GACnC3S,EAAEW,GAAW2F,QAAQtE,yBAAgC,CAACwQ,IACtDxS,EAAEW,EAAU6H,WAAWyD,KAAKjM,EAAE,WAAWwH,SAASxF,mBAAyBiK,KAAKjL,EAAOoB,UAAU,iCACjGpC,EAAEW,EAAU4F,MAAMiB,SAASxF,oCAC3BhB,EAAOyB,iBAAgB,EACxB,IAAGmQ,QAAO,WACV,GACD,EAQAzB,OAAQ,SAASlB,EAAM4C,GACtB,IAAIC,EAAK,CACR7C,KAAM,KACNa,MAAO,KACPiC,cAAe,KACfC,YAAa,CAACjC,WAAY,KAAMkC,KAAM,MACtCJ,SAAU,KACVtR,KAAM,SAAS0O,GACd6C,EAAG7C,KAAOA,EAGV6C,EAAG7C,KAAKK,KAAO4C,SAASJ,EAAG7C,KAAKK,MAChCwC,EAAG7C,KAAKwB,MAAQyB,SAASJ,EAAG7C,KAAKwB,OACjCqB,EAAG7C,KAAKE,QAAU+C,SAASJ,EAAG7C,KAAKE,SACnC2C,EAAG7C,KAAKI,MAAQ6C,SAASJ,EAAG7C,KAAKI,OAGjCyC,EAAG7C,KAAKwB,MAAQrI,KAAKgE,IAAIhE,KAAKmE,KAAKuF,EAAG7C,KAAKI,MAAQyC,EAAG7C,KAAKE,SAAU,GAGjE2C,EAAG7C,KAAKK,KAAOwC,EAAG7C,KAAKwB,QAAOqB,EAAG7C,KAAKK,KAAOwC,EAAG7C,KAAKwB,OAGzDqB,EAAGC,cAAgB/R,EAAOmS,eAAe,UAEzCL,EAAGhC,MAAQ9Q,EAAEW,EAAUmB,OAAOgO,SAAS,oBACnC9P,EAAE8S,EAAGhC,OAAOhC,SAAS9M,6BAGzBhC,EAAE8S,EAAGhC,OAAO7N,SAGU,IAAlB6P,EAAG7C,KAAKwB,QAGZzQ,EAAOoS,mBAAmB,aAAc,CACvC9C,KAAMwC,EAAG7C,KAAKK,KACdmB,MAAOqB,EAAG7C,KAAKwB,MACftB,QAAS2C,EAAG7C,KAAKE,QACjBE,MAAOyC,EAAG7C,KAAKI,QAIhByC,EAAGD,SAAWC,EAAGO,eAEO,oBAAbR,IAAyBC,EAAGD,SAAWA,GAElDC,EAAGQ,mBACHR,EAAGS,WAEHT,EAAG7C,KAAKK,KAAOlH,KAAKgE,IAAI0F,EAAG7C,KAAKK,MAAQ,EAAGwC,EAAG7C,KAAKK,MAEnDtQ,EAAEW,GAAW2F,QAAQwM,EAAGC,cAAeD,EAAG7C,MAE1C6C,EAAGU,iBAAiB5R,OACpB5B,EAAErI,QAAQkM,OAAOiP,EAAGU,mBACrB,EACAH,eAAgB,SAASxC,EAAKZ,GAC7BjP,EAAO8B,YACR,EACAyQ,SAAU,WAGT,GAFA5S,EAAUgC,QAAUhC,EAAUgC,SAAW,GAER,IAA7BhC,EAAUgC,QAAQjC,OAAtB,CAEA,IAAI+S,EAAQzS,EAAOoB,UAAU,2BACzBuC,EAAQ3D,EAAOoB,UAAU,8CAE7B0Q,EAAGhC,MAAQ9Q,EAAE,UAAUwH,SAASxF,2CAEhC,IAAI0R,EAAc1T,EAAE,SAASwH,SAASxF,oCACtC8Q,EAAGE,YAAwB,WAAIU,EAG/B1T,EAAE,SACD7H,OAAO6H,EAAE,QACRqF,KAAK,QAASV,EAAMiI,OACpBpF,SAASxF,mDACT7J,OAAO6H,EAAE,QAAQwH,SAASiM,EAAM7G,QAChC7K,GAAG,QAAS+Q,EAAGa,cACftO,KAAK,YAAa,IACnBuC,SAAS8L,GACV1T,EAAE,SACD7H,OAAO6H,EAAE,QACRqF,KAAK,QAASV,EAAMiP,MACpBpM,SAASxF,kDACT7J,OAAO6H,EAAE,QAAQwH,SAASiM,EAAMG,OAChC7R,GAAG,QAAS+Q,EAAGa,eAChB/L,SAAS8L,GAEV1T,EAAE,SAAS7H,OAAO6H,EAAE,YAAYqF,KAAK,OAAQ,QAAQmC,SAASxF,sCAA4CqD,KAAK,QAASV,EAAMxG,OAAO4D,GAAG,SAAS,WAEhJ/B,EAAES,MAAM4E,KAAK,YAAa+D,KAAKyK,IAAI7T,EAAES,MAAM2D,OAC5C,IAAGrC,GAAG,YAAY,SAASkC,GAEV,KAAZA,EAAEC,OAAc4O,EAAGa,aAAa1P,EACrC,KAAI2D,SAAS8L,GAEb,IAAII,EAAc9S,EAAOoB,UAAU,sDAC/BmO,EAAMnH,KAAKmE,KAAKuF,EAAG7C,KAAKK,KAAOwD,GAAeA,EAC9CpK,EAAQ6G,EAAMuD,EACdvD,EAAMuC,EAAG7C,KAAKwB,QACjBlB,EAAMuC,EAAG7C,KAAKwB,OAIX/H,EAAQ,IACXA,EAAQ,GAGT,IAAK,IAAIqK,EAAIrK,EAAOqK,GAAKxD,GAAO,GAAIwD,IAAK,CACxC,IAAIC,EAAaD,EAAI,EACrB/T,EAAE,SACD7H,OAAO6H,EAAE,QACRwH,SAASxF,oDACT4C,KAAKoP,GACL3O,KAAK,YAAa2O,GAClB3O,KAAK,QAAS2O,GACdjS,GAAG,QAAS+Q,EAAGmB,WAChBrM,SAAS8L,EACX,CAGA1T,EAAE,SACD7H,OAAO6H,EAAE,QACRqF,KAAK,QAASV,EAAMuP,MACpB1M,SAASxF,kDACT7J,OAAO6H,EAAE,QAAQwH,SAASiM,EAAMS,OAChCnS,GAAG,QAAS+Q,EAAGa,eAChB/L,SAAS8L,GACV1T,EAAE,SACD7H,OAAO6H,EAAE,QACRqF,KAAK,QAASV,EAAMwP,MACpB3M,SAASxF,kDACT7J,OAAO6H,EAAE,QAAQwH,SAASiM,EAAMU,OAChCpS,GAAG,QAAS+Q,EAAGa,cACftO,KAAK,YAAayN,EAAG7C,KAAKwB,QAC3B7J,SAAS8L,GAGN1S,EAAOoB,UAAU,wBACpB0Q,EAAGE,YAAkB,KAAIhT,EAAE,UAAUwH,SAASxF,qCAA2C7J,OAAO6H,EAAE,WAAWwH,SAASxF,4BAGvHhC,EAAEqC,KAAKrB,EAAOoB,UAAU,mBAAmB,SAASqC,EAAGrB,GACtDpD,EAAE8S,EAAGE,YAAY5P,IAASwE,SAASkL,EAAGhC,MACvC,IAGA,IAAIsD,EAAiBpU,EAAE,aACtBwH,SAAS,qCACTnC,KAAK,QAASrE,EAAOoB,UAAU,sDAC/BiD,KAAK,aAAc,QACnBA,KAAK,iBAAkB,QACvBjB,IAAI0O,EAAG7C,KAAKE,SACZpO,GAAG,SAAU+Q,EAAGuB,eAChBnJ,UAAU4H,EAAGE,YAAkB,MAE5BsB,EAAYtT,EAAOoB,UAAU,2CAET,GAApBkS,EAAU5T,SAAa4T,EAAY,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,MAC3DtU,EAAEqC,KAAKiS,GAAW,SAAS7P,EAAG8P,GAC7B,IAAIC,EAAUD,GACA,IAAVA,IAAaC,EAAUxT,EAAOoB,UAAU,mDAC5CpC,EAAE,aAAaqF,KAAK,QAASkP,GAAMtI,KAAKuI,GAAS5M,SAASwM,EAC3D,IAGApU,EAAEW,GAAW0G,OAAM,WAClBrH,EAAE,iBACDyU,eACA1S,GAAG,kBAAkB,WAEpB/B,EAAES,MAAMmG,QAAQ,qBAAqBsB,YAAY,SAClD,IACA4H,SAAS,oBACTzK,KAAK,QAASrE,EAAOoB,UAAU,qDACjC,IAEA0Q,EAAG4B,OApHuC,CAqH3C,EACAA,MAAO,WAEN1U,EAAEqC,KAAKrC,EAAE2U,OAAO3T,EAAOoB,UAAU,uBAChC,SAASqC,EAAGiC,GACM,WAAbA,GACH1G,EAAE8S,EAAGhC,OAAOlG,OAAM,GAAMgK,YAAYjU,EAAUmB,OAE9B,QAAb4E,GAEH1G,EAAE8S,EAAGhC,OAAOlG,OAAM,GAAMpD,SAASxF,uBAA6B6S,aAAalU,EAAUmB,MAEvF,GACF,EACA6R,aAAc,SAAS1P,GAItB,GAHAA,EAAE6Q,iBAG+B,aAA7B9U,EAAES,MAAM4E,KAAK,YAA4B,OAAO,EAEpD,IAAIiL,EAAOtQ,EAAES,MAAM4E,KAAK,aAQxB,MALoB,qBAATiL,IACVA,EAAOtQ,EAAEiE,EAAEpF,QAAQwG,KAAK,cAGzByN,EAAGiC,SAAS7B,SAAS5C,KACd,CACR,EACA2D,SAAU,SAAShQ,GAClBA,EAAE6Q,iBAEE9U,EAAES,MAAMqO,SAAS9M,gCAErB8Q,EAAGiC,SAAS7B,SAASlT,EAAES,MAAM1I,KAAK,SACnC,EACAgd,SAAU,SAASzE,GAElBwC,EAAG7C,KAAKK,KAAO4C,SAAS5C,GAExBtQ,EAAEW,GAAW2F,QAAQwM,EAAGC,cAAeD,EAAG7C,MAC1C6C,EAAGD,SAASC,EAAIA,EAAG7C,MAGnBjQ,EAAE8S,EAAGhC,OAAOxK,QAAQtE,yBAAgC8Q,EAAG7C,KACxD,EACAoE,cAAe,SAASpQ,GACvBA,EAAE6Q,iBAOF9U,EAAES,MAAMgU,aAAa,UAErB3B,EAAGhC,MAAQ9Q,EAAEW,EAAUmB,OAAOgO,SAAS,oBAA+B5H,YAAYlG,2BAG9EiC,EAAE+Q,gBACLlC,EAAG7C,KAAKE,QAAU+C,SAASlT,EAAES,MAAM2D,QAGpCpE,EAAE8S,EAAGhC,OAAO9N,KAAK,+BAA0CoB,IAAI0O,EAAG7C,KAAKE,SAAS9K,KAAK,gBAAiByN,EAAG7C,KAAKE,SAG9GnP,EAAOoS,mBAAmB,aAAc,CACvC9C,KAAMwC,EAAG7C,KAAKK,KACdmB,MAAOqB,EAAG7C,KAAKwB,MACftB,QAAS2C,EAAG7C,KAAKE,QACjBE,MAAOyC,EAAG7C,KAAKI,QAIhBrQ,EAAE8S,EAAGhC,OAAOxK,QAAQtE,8BAAqC8Q,EAAG7C,MAC5DjQ,EAAEW,GAAW2F,QAAQwM,EAAGC,cAAeD,EAAG7C,MAC1C6C,EAAGD,SAASC,EAAIA,EAAG7C,MAGnB6C,EAAGmC,WAAWrT,MACf,EACA0R,iBAAkB,SAASrP,GAE1BjE,EAAEW,GAAWkI,IAAIiK,EAAGC,eAAehR,GAAG+Q,EAAGC,eAAe,SAAS9O,EAAGgM,GACnEjP,EAAOyB,iBAAgB,GAEvBqQ,EAAGhC,MAAQ9Q,EAAEW,EAAUmB,OAAOgO,SAAS,oBACvC,IAAI4D,EAAc1T,EAAE8S,EAAGhC,OAAO9N,KAAK,wBAGnChD,EAAE0T,GAAa1Q,KAAK,gCAA2CkF,YAAYlG,+BAC3EhC,EAAE0T,GAAa1Q,KAAK,2CAAwDiN,EAAKK,KAAO,MAAM9I,SAASxF,+BAGvGhC,EAAE0T,GAAa1Q,KAAK,8BAAyCqC,KAAK,YAAa+D,KAAKgE,IAAI6C,EAAKK,KAAO,EAAG,IACvGtQ,EAAE0T,GAAa1Q,KAAK,8BAAyCqC,KAAK,YAAa+D,KAAKoH,IAAIP,EAAKK,KAAO,EAAGL,EAAKwB,QAG5GzR,EAAE8S,EAAGhC,OAAOzO,MAAK,WAChBrC,EAAES,MAAMuC,KAAK,uCAAkDiC,KAAK,QAASgL,EAAKK,KACnF,IAUAtP,EAAOoS,mBAAmB,aAAc,CACvC9C,KAAMwC,EAAG7C,KAAKK,KACdmB,MAAOqB,EAAG7C,KAAKwB,MACftB,QAAS2C,EAAG7C,KAAKE,QACjBE,MAAOyC,EAAG7C,KAAKI,QAGhBrQ,EAAE8S,EAAGhC,OAAO9N,KAAK,+BAA0CoB,IAAI6L,EAAKE,SAAS9K,KAAK,gBAAiB4K,EAAKE,SAGxGnQ,EAAEW,EAAUmB,OAAOkB,KAAK,iCAA4CiC,KAAK,WAAW,GACpFjF,EAAEW,EAAUmB,OAAOkB,KAAK,yBAAoCkF,YAAYlG,wBAExE8Q,EAAGmC,WAAWrT,OACdkR,EAAGU,iBAAiB5R,MAErB,GACD,EACAqT,WAAY,WACX,IAAIvL,EAAQN,KAAKgE,IAAI0F,EAAG7C,KAAKE,SAAW2C,EAAG7C,KAAKK,KAAO,GAAK,EAAG,GAC3DC,EAAMnH,KAAKoH,IAAI9G,EAAQoJ,EAAG7C,KAAKE,QAAU,EAAG2C,EAAG7C,KAAKI,OAExDrQ,EAAE8S,EAAGhC,OAAO9N,KAAK,yBAAoCA,KAAK,2BAAsCiJ,KAAKjL,EAAO6K,gBAC3G7K,EAAOoB,UAAU,2CAA4C,CAE5DsH,MAAyB,IAAlBoJ,EAAG7C,KAAKI,MAAc,EAAI3G,EACjC6G,KAA0B,IAArBuC,EAAG7C,KAAKE,QAAiB2C,EAAG7C,KAAKI,MAAQE,EAC9CH,UAA+B,IAArB0C,EAAG7C,KAAKE,SAClB2C,EAAG7C,KAAKE,SAAW2C,EAAG7C,KAAKI,MACxByC,EAAG7C,KAAKI,MACRyC,EAAG7C,KAAKE,QACXE,MAAOyC,EAAG7C,KAAKI,QAElB,EAKAmD,iBAAkB,WAEjB,IAAIE,EAAc1T,EAAEW,EAAUmB,OAAOgO,SAAS,oBAA+B9M,KAAK,wBAClF,GAA8B,IAA1BhD,EAAE0T,GAAahT,OAAnB,CAEA,IAAIwU,EAAclU,EAAOmU,iBACrBC,EAAapV,EAAE0T,GAAa1Q,KAAK,0BAAqC4D,QAAQ,MAGlF5G,EAAE0T,GAAa1Q,KAAK,MAAMqS,OAG1BrV,EAAEqC,KAAKrB,EAAOoB,UAAU,mCACvB,SAASkT,EAAMlX,GACd,GAAI+B,EAAKoV,oBAAoBD,GAAO,CACnC,OAAQA,GACP,IAAK,UACL,IAAK,SACMlM,KAAKmE,KAAK2H,EAAc9W,EAAO0V,aAAe1V,EAAO0V,YAC7C1V,EAAO0V,YACzB9T,EAAEoV,GAAYvO,OACdiM,EAAG7C,KAAOjP,EAAOkP,mBAAmB,cACpC4C,EAAG0C,mBACH,MAED,IAAK,SACJxV,EAAEoV,GAAYC,OACdrV,EAAE0T,GAAa1Q,KAAK,mCAA8C4D,QAAQ,MAAMC,OAChF7G,EAAE0T,GAAa1Q,KAAK,mCAA8C4D,QAAQ,MAAMC,OAChF7G,EAAE0T,GAAa1Q,KAAK,gCAA2C4D,QAAQ,MAAMC,OAI/E,OAAO,CACR,CACD,GAhCsC,CAiCxC,EAKA2O,iBAAkB,WACjB,IAAI1E,EAAQ9Q,EAAEW,EAAUmB,OAAOgO,SAAS,oBAA+B9M,KAAK,wBAC3EyS,EAAgBzV,EAAE8Q,GAAO9N,KAAK,mCAC9B0S,EAAgB1V,EAAE8Q,GAAO9N,KAAK,mCAC9B2S,EAAa3V,EAAE8Q,GAAO9N,KAAK,+BAC3B4S,EAAY5V,EAAE8Q,GAAO9N,KAAK,8BAC1B6S,EAAY7V,EAAE8Q,GAAO9N,KAAK,8BAC1B8S,EAAY9V,EAAE8Q,GAAO9N,KAAK,8BAGvB0Q,EAAc1T,EAAE8Q,GAAO9N,KAAK,gCAE5B+S,EAAe3M,KAAKgE,IAAIpN,EAAE0T,GAAa9G,QAAQ7U,KAAK,QAAU,EAAG,GACrEiI,EAAEyV,GAAepT,MAAK,SAASoC,EAAGmP,GACjC5T,EAAE4T,GAAMvO,KAAK,YAAa0Q,EAC3B,IAEqB,IAAjBA,EACH/V,EAAEyV,GAAexM,SAASpC,OAE1B7G,EAAEyV,GAAexM,SAASoM,OAI3B,IAAIW,EAAe5M,KAAKoH,IAAIxQ,EAAE0T,GAAaS,OAAOpc,KAAK,QAAU,EAChE+a,EAAG7C,KAAKwB,OACTzR,EAAE0V,GAAerT,MAAK,SAASoC,EAAGmP,GACjC5T,EAAE0V,GAAerQ,KAAK,YAAa2Q,GAAcX,MAClD,IAGIW,IAAiBlD,EAAG7C,KAAKwB,OAEzBuE,IAAiBhW,EAAE0T,GAAaS,OAAOpc,KAAK,QAC/CiI,EAAE0V,GAAezM,SAASpC,OAE1B7G,EAAE0V,GAAezM,SAASoM,OAIN,IAAjBvC,EAAG7C,KAAKK,MACXtQ,EAAE2V,GAAYtQ,KAAK,YAAY,GAAMmC,SAASxF,iCAC9ChC,EAAE4V,GAAWvQ,KAAK,YAAY,GAAMmC,SAASxF,mCAE7ChC,EAAE2V,GAAYM,WAAW,YAAY/N,YAAYlG,iCACjDhC,EAAE4V,GAAWK,WAAW,YAAY/N,YAAYlG,kCAE7C8Q,EAAG7C,KAAKK,OAASwC,EAAG7C,KAAKwB,OAC5BzR,EAAE6V,GAAWxQ,KAAK,YAAY,GAAMmC,SAASxF,iCAC7ChC,EAAE8V,GAAWzQ,KAAK,YAAY,GAAMmC,SAASxF,mCAE7ChC,EAAE6V,GAAWI,WAAW,YAAY/N,YAAYlG,iCAChDhC,EAAE8V,GAAWG,WAAW,YAAY/N,YAAYlG,kCAIjD,IAAIkU,EAAMlV,EAAOoB,UAAU,uCACtB8T,EAAItJ,OAAO5M,EAAE2V,GAAY1S,SACzBiT,EAAItC,MAAM5T,EAAE4V,GAAW3S,SACvBiT,EAAIhC,MAAMlU,EAAE6V,GAAW5S,SACvBiT,EAAI/B,MAAMnU,EAAE8V,GAAW7S,SACvBiT,EAAIC,OACRnW,EAAEyV,GAAexS,SACjBjD,EAAE0V,GAAezS,SAEnB,GAGD,OADA6P,EAAGvR,KAAK0O,GACD6C,CACR,EAMA7M,WAAY,WACX,IAAImC,EAASjI,EAAK6N,cAAcxO,MAEhCQ,EAAEqC,KAAKxE,EAAQyG,SAAS,SAASG,EAAGK,GACnC,GAAiC,qBAAtBA,EAAOsR,YAAwD,qBAAnBtR,EAAOuR,QAAyB,CACtF,IAAI3R,EAAQI,EAAOJ,MACf4R,EAAMtW,EAAEyL,KAAKzL,EAAEW,EAAUmB,OAAOkB,KAAK,oBAA+B,SAAS0I,EAAGjH,GACnF,OAAOC,IAAU1E,EAAE0L,GAAG3T,KAAK,QAC5B,IAEA+Q,YAAW,YAEkC,IAAxC9H,EAAOkQ,UAAU,UAAWpM,GAC/B9E,EAAEsW,GAAKzP,QAGH1G,EAAKmI,cAActH,EAAOkQ,UAAU,oBAAqBpM,KAAYsD,EACxEpI,EAAEsW,GAAKzP,OAEP7G,EAAEsW,GAAKjB,OAEJlV,EAAKmI,cAActH,EAAOkQ,UAAU,qBAAsBpM,KAAYsD,EACzEpI,EAAEsW,GAAKjB,OAEPrV,EAAEsW,GAAKzP,OAGV,GACD,CACD,GACD,EAKApD,kBAAmB,WAClB,IAAI8S,EAAmBvV,EAAOoB,UAAU,kBACxC,GAAgC,oBAArBmU,KAGPvW,EAAEW,EAAUmB,OAAOkB,KAAK,uBAAkCtC,OAAS,GAAvE,CAEAV,EAAEW,EAAU4F,MAAMiB,SAASxF,sBAE3BnE,EAAQyG,QAAQ,GAAa,UAAI,EAGjC,IAAIkS,EAAiB,SAASvS,GAC7BA,EAAE6Q,iBAEF,IAAI2B,EAAYzW,EAAES,MAAMmG,QAAQ,kBAG5B8P,EAAc1W,EAAEyW,GAAWvC,KAAK,2BACN,IAA1BlU,EAAE0W,GAAahW,SAElBgW,EAAc1W,EAAE,SACfwH,SAASxF,gDACT6E,OACA1O,OAAO6H,EAAE,SAASwH,SAASxF,sBAA4BqD,KAAK,UAAWrE,EAAO2V,oBAC/E3W,EAAEyW,GAAWG,MAAMF,GAEf1W,EAAEyW,GAAW3H,SAAS9M,uBACzBhC,EAAE0W,GAAalP,SAASxF,gCAI1BhC,EAAE0W,GAAaG,SAEf,IAAIC,EAAW9W,EAAE0W,GAAa1T,KAAK,uBAG/B+T,EAAa/W,EAAES,MAAMmG,QAAQ,4BAA4B5D,KAAK,8BAAyCjL,KAAK,SAE5Gif,EAAOhX,EAAES,MAAMuC,KAAK,KAAKiT,WAAW,SAGpCjW,EAAEyW,GAAW3H,SAAS9M,oCACzBhC,EAAEgX,GAAMxP,SAASxG,EAAOoB,UAAU,oCAElCpC,EAAEyW,GAAWvO,YAAYlG,mCAEzBhC,EAAEW,GAAW2F,QAAQtE,iCAAwC,CAACyU,MAG9DzW,EAAEgX,GAAMxP,SAASxG,EAAOoB,UAAU,kCAElCpC,EAAEyW,GAAWjP,SAASxF,mCAEtBhC,EAAEW,GAAW2F,QAAQtE,+BAAsC,CAACyU,KAIJ,IAArDzW,EAAE8W,GAAU9T,KAAK,cAAyBtC,SAE7CV,EAAExB,IAAImC,EAAUgC,SAAS,SAAS+I,EAAGjH,GAEpC,OAAIsS,IAAerL,EAAE7N,EAAQyG,QAAQ,GAAGI,SACvCT,EAAElM,KAAO2T,GACF,EAGT,IAGAzH,EAAEgT,WAAaH,EAEf7S,EAAEwS,UAAYA,EACdxS,EAAE6S,SAAWA,EAGbP,EAAiBtS,GAEjBjE,EAAE8W,GAAUzY,SAAS,cAAyB0D,GAAGC,qBAA2B,SAASiC,GACpFjE,EAAE0W,GAAaxO,YAAYlG,wBAC5B,IACsC,UAAlChB,EAAOoB,UAAU,cACpBpC,EAAE0W,GAAaxO,YAAYlG,yBAG9B,EAEIsC,EAAUzG,EAAQyG,QACtBtE,EAAEW,EAAU6H,WAAWxF,KAAK,kBAA6BX,MAAK,SAAS6H,EAAKC,GAC3EnK,EAAEmK,GAAInH,KAAK,mBAA8BX,MAAK,SAASgJ,EAAKnG,GAE3D,IAAIJ,EAAS9E,EAAEyL,KAAKnH,GAAS,SAASoH,EAAGjH,GACxC,OAAOzE,EAAEkF,GAAInN,KAAK,WAAa2T,EAAEhH,KAClC,IAAG,GACH,GAAsB,qBAAXI,EAAwB,CAClC,IAAIpG,EAAQsB,EAAEkF,GAAIN,OAElB,GAA+B,qBAApBE,EAAO2H,UAA4B3H,EAAO2H,SAAU,CAE9D,GAAIzM,EAAEkF,GAAIlC,KAAK,8BAAyCtC,OAAS,EAAG,OAEpEV,EAAEkF,GACD+G,KAAKjM,EAAE,QACNwH,SAASxF,6BACTqD,KAAK,OAAQ,KACbA,KAAK,aAAc3G,GACnB2G,KAAK,QAASrE,EAAOoB,UAAU,iBAC/BL,GAAG,QAASyU,GACZre,OAAO6H,EAAE,QAAQgG,IAAI,QAAShG,EAAEkF,GAAInN,KAAK,UAAUyP,SAASxG,EAAOoB,UAAU,qCAChF,CACD,CACD,GACD,GA3GgF,CA8GjF,EAKAS,gBAAiB,SAASqU,GAEzB,IAAIvU,EAAUuU,EAEd,MAAwD,oBAA7ClW,EAAOoB,UAAU,wBACpBpB,EAAOoB,UAAU,uBAAjBpB,CAAyCkW,IAG7B,qBAARA,GAA2C,qBAAbA,EAAInf,OAC5C4K,EAAUuU,EAAInf,MAGT4K,EACR,EAEAwU,YAAY,EAMZ1U,gBAAiB,SAAS2U,EAAOvY,GACV,qBAAXA,IAAwBA,EAAS8B,GAE5C,IAAI0W,EAAiBrW,EAAOoB,UAAU,kBAER,qBAAnBiV,GAAmCA,IAG1CD,EACEpW,EAAOmW,aAC2B,qBAA3BE,EAAe/e,UAAsD,IAA3B+e,EAAe/e,UAEnE+e,EAAe/e,QAAU0I,EAAOoB,UAAU,iCAE3CpB,EAAOmW,YAAa,EACD,qBAAR9W,GACVA,EAAI+W,MAAMvY,EAAQwY,KAIpBrW,EAAOmW,YAAa,EACD,qBAAR9W,GACVA,EAAIiX,QAAQzY,IAGf,EASA0Y,aAAc,SAASxf,EAAMyf,EAAM1S,GAClC,IAAI7K,EAAO6K,EAAa,MAAK,SACzB2S,EAAS3S,EAAe,QAAK,GAC7BJ,EAAQI,EAAc,MAE1B,OAAO9E,EAAEjI,GAAMyf,MAAK,SAAS3F,EAAG6F,GAC/B,IAAIC,EAAS9F,EAAEnN,GACXkT,EAASF,EAAEhT,GAEf,OAAQzK,GACP,IAAK,OACJ,GAAsB,qBAAX4d,OACV,MAAM,IAAItX,MAAM,0BAEjB,IAAIuX,EAAOD,OAAOF,EAAQF,GAAQK,KAAKD,OAAOD,EAAQH,IACtD,MAAa,QAATD,EACIM,EAAO,EAAI,EAAIA,EAAO,GAAK,EAAI,EAE/BA,EAAO,EAAI,EAAIA,EAAO,GAAK,EAAI,EAIxC,IAAK,SASJ,OARIC,MAAMrN,WAAWiN,KAAsB,MAAVA,IAChCA,EAASK,OAAOL,EAAOM,QAAQ,cAAe,MAE3CF,MAAMrN,WAAWkN,KAAsB,MAAVA,IAChCA,EAASI,OAAOJ,EAAOK,QAAQ,cAAe,MAE/CN,EAASjN,WAAWiN,GACpBC,EAASlN,WAAWkN,GACP,QAATJ,EACIG,EAASC,EAAS,EAAID,EAASC,GAAU,EAAI,EAE7CD,EAASC,EAAS,EAAID,EAASC,GAAU,EAAI,EAItD,IAAK,OACJ,OAAO5X,EAAEjI,GAAMyf,MAAK,SAAS3F,EAAG6F,GAK/B,OAHAC,EAAS3X,EAAE6R,EAAEnN,IAAQE,OACrBgT,EAAS5X,EAAE0X,EAAEhT,IAAQE,OAER,QAAT4S,EACIG,EAASC,EAAS,EAAID,EAASC,GAAU,EAAI,EAE7CD,EAASC,EAAS,EAAID,EAASC,GAAU,EAAI,CAEtD,IAID,QACC,MAAa,QAATJ,EACIG,EAASC,EAAS,EAAID,EAASC,GAAU,EAAI,EAE7CD,EAASC,EAAS,EAAID,EAASC,GAAU,EAAI,EAIxD,GACD,EAOAtQ,IAAK,SAAS1C,EAAM0G,GACA,qBAARA,IAAqBA,EAAM,IAClC3K,EAAUC,OACbsX,QAAQ5Q,IAAI1C,EAAM0G,EAEpB,EAKAvF,SAAU,WACT,IAAIoS,GAAc,EAEdC,EAAapY,EAAEW,EAAUmB,OAAOkB,KAAK,2BACrCoV,EAAW1X,SACdyX,GAAc,EACdC,EAAWvR,QAGZ,IAAIwR,EAAsB,SAASpU,GAClCA,EAAE6Q,iBAEF,IAAI/L,EAAM/I,EAAES,MAAMmG,QAAQ,kBACtB0R,EAAYtY,EAAE+I,GAAKmL,OAEvB,GAAKlU,EAAEsY,GAAWxJ,SAAS9M,wBAyB1BhC,EAAES,MAAMuC,KAAK,KAAKkF,YAAYlH,EAAOoB,UAAU,kCAAkCoF,SAASxG,EAAOoB,UAAU,oCAC3GpC,EAAEsY,GAAWrV,aA1B4C,CACzDjD,EAAES,MAAMuC,KAAK,KAAKkF,YAAYlH,EAAOoB,UAAU,oCAAoCoF,SAASxG,EAAOoB,UAAU,kCAE7G,IACImW,EADcvY,EAAE+I,GAAK/F,KAAK,0BACA4H,QAAQyK,OAEtCiD,EAAYtY,EAAE,SAASwH,SAASxF,wBAA8B4S,YAAY7L,GAC1E,IAAIyP,EAAcxY,EAAE,SAASwH,SAASxF,oBAA0BqD,KAAK,UAAWrE,EAAO2V,mBAAmB/O,SAAS0Q,GAE/GG,EAAiBzY,EAAE,YACvBA,EAAEuY,GAAalW,MAAK,WACnB,IAAIqC,EAAQ1E,EAAES,MAAM1I,KAAK,SACrB+M,EAAS9E,EAAEyL,KAAK5N,EAAQyG,SAAS,SAASoH,EAAGjH,GAChD,OAAOC,IAAUgH,EAAEhH,KACpB,IAAG,GACmB,qBAAXI,IAA6C,IAAnBA,EAAOuR,SAC3CrW,EAAEyY,GACAtgB,OAAO6H,EAAE,mCACP7H,OAAO6H,EAAE,oCAA+C7H,OAAO6H,EAAE,WAAW7H,OAAO2M,EAAOH,SAC1FxM,OAAOsI,MAEb,IACAT,EAAEwY,GAAargB,OAAOsgB,EAEvB,CAID,EAEA3P,YAAW,WACV9I,EAAEW,EAAUmB,OAAOkB,KAAK,mBAA8BqS,OACtDrV,EAAEW,EAAU6H,WAAWnG,MAAK,WAK3B,IAJA,IAAIqW,EAAY,EACZC,EAAc3Y,EAAES,MAAM,GAAGkY,YACzBC,EAAc5Y,EAAES,MAAM,GAAGmY,YAEtBD,EAAcC,GAAgBA,EAAcD,EAAe3X,EAAOE,YAAcwX,EAAY7a,EAAQyG,QAAQ5D,QAElHV,EAAEW,EAAUmB,OAAOkB,KAAK,kBAA6BX,MAAK,SAASoC,GAClE,IAAID,EAAOxE,EAAES,MAAMuC,KAAK,8DAAyEmR,OAC5F3P,EAAK9D,SACRV,EAAEwE,GAAMqC,OACRsR,GAAc,EAEjB,IACAO,IAEAC,EAAc3Y,EAAES,MAAM,GAAGkY,YACzBC,EAAc5Y,EAAES,MAAM,GAAGmY,WAE3B,IAEIT,GAEHnY,EAAEW,EAAU6H,WAAWxF,KAAK,kBAA6BX,MAAK,WAEK,IAA/DrC,EAAES,MAAMuC,KAAK,4BAAuCtC,QAEtDV,EAAES,MAAMoY,QAAQ7Y,EAAE,SAChBwH,SAASxF,0CACT7J,OAAO6H,EAAE,QACRwH,SAASxF,2BACTqD,KAAK,OAAQ,IACbtD,GAAG,QAASsW,GACZlgB,OAAO,aAAe6I,EAAOoB,UAAU,mCAAqC,YAIE,IAA9EpC,EAAEW,EAAUoC,WAAWC,KAAK,4BAAuCtC,QAEtEV,EAAEW,EAAUoC,WACXC,KAAK,kBACL4J,QACAiM,QAAQ,yEACT7Y,EAAEW,EAAUuC,WACXF,KAAK,kBACL4J,QACAiM,QAAQ,0EAET7Y,EAAEW,EAAUoC,WAAWC,KAAK,4BAAuCA,KAAK,OAE1E,GAEF,IAEAhC,EAAO8L,iBAAiBlL,MACzB,EAKA0P,eAAgB,WACXtQ,EAAOoB,UAAU,sBACpBpC,EAAEqC,KAAK1B,EAAUgC,QAAQ,IAAI,SAASmW,EAAGC,GAInB,IAHT/Y,EAAEyL,KAAK5N,EAAQyG,SAAS,SAASoH,EAAGjH,GAC/C,OAAOqU,IAAMpN,EAAEhH,KAChB,IACUhE,QACT7C,EAAQyG,QAAQzH,KAAK,CAAC6H,MAAOoU,EAAGnU,MAAOmU,GAEzC,IACA9Y,EAAEW,EAAUoC,WAAWC,KAAK,kBAA6BC,SACzDjC,EAAOmC,eACHnC,EAAOoB,UAAU,mBACpBpC,EAAEW,EAAUuC,WAAWF,KAAK,kBAA6BC,SACzDjC,EAAOmC,aAAaxC,EAAUuC,YAGjC,EASA2C,SAAU,WACT,IAAIA,EAAW7E,EAAOgG,qBACtB,OAAOnB,EAASoB,KAAKvG,OAAS,GAAKmF,EAASqB,MAAMxG,OAAS,CAC5D,EAEAoF,WAAY,WACX,OAAO3F,EAAK2O,SAASnO,EAAU4F,KAAK,GAAIvE,wBAA+B,CACxE,EAQAgX,cAAe,SAASrK,GAOvB,OANcuE,SAASlT,EAAE2O,GAAS3I,IAAI,iBACrCkN,SAASlT,EAAE2O,GAAS3I,IAAI,iBACZkN,SAASlT,EAAE2O,GAAS3I,IAAI,gBACpCkN,SAASlT,EAAE2O,GAAS3I,IAAI,gBACZoD,KAAKmE,KACjBvN,EAAE2O,GAAS3I,IAAI,sBAAsBiS,QAAQ,KAAM,IAErD,EAQApM,gBAAiB,SAASF,EAAU5T,GACnC,IAAI4Y,EAAShF,EAIb,OAHA3L,EAAEqC,KAAKtK,GAAM,SAASG,EAAKkM,GAC1BuM,EAASA,EAAOsH,QAAQ,KAAO/f,EAAM,KAAMkM,EAC5C,IACOuM,CACR,EAQAsI,WAAY,SAASC,GACE,qBAAXA,IAAwBA,EAAS,IAC5C,IAAIC,EAAKnZ,EAAEW,GAAW0E,KAAK,MAI3B,MAHkB,qBAAP8T,IACVA,EAAKnZ,EAAEW,GAAW0E,KAAK,SAAS+T,MAAM,KAAK,IAErCD,EAAKD,CACb,EAKA/F,eAAgB,SAAS+F,GAExB,MADsB,qBAAXA,IAAwBA,EAAS,IAAMA,GAC3ClY,EAAOiY,aAAe,IAAMjY,EAAO0E,WAAawT,CACxD,EAMAxT,SAAU,WACT,IAAI2T,EAAQ,EACRvX,EAAQnB,EAAUmB,MACtB,GACCA,EAAQ9B,EAAE8B,GAAO+I,QAAQ,oBACzBwO,UACQrZ,EAAE8B,GAAOpB,OAAS,GAC3B,OAAO2Y,CACR,EAOAC,UAAW,SAASphB,EAAKwG,GACxBxG,EAAM8I,EAAOmS,eAAejb,IACe,IAAvC8I,EAAOoB,UAAU,mBACjBmX,cACHA,aAAaC,QAAQthB,EAAKuhB,KAAKC,UAAUhb,GAE3C,EAOAib,SAAU,SAASzhB,EAAK0hB,GAEvB,GADA1hB,EAAM8I,EAAOmS,eAAejb,IACe,IAAvC8I,EAAOoB,UAAU,kBAArB,CACA,IAAI1D,EAAQ,KAIZ,OAHI6a,eACH7a,EAAQ6a,aAAaM,QAAQ3hB,IAET,qBAAVwG,GAAmC,OAAVA,EAC5B+a,KAAKK,MAAMpb,QADnB,CALwD,CAQzD,EAOAqb,YAAa,SAAS7hB,EAAKwG,GAC1B,IAAIsb,EAAMhZ,EAAO2Y,SAASzhB,GACP,qBAAR8hB,GAA+B,OAARA,IAAcA,EAAM,CAAC,GACvDhZ,EAAOsY,UAAUphB,EAAK8H,EAAEwC,OAAO,CAAC,EAAGwX,EAAKtb,GACzC,EAMAwD,YAAa,SAAShK,GACrBA,EAAM8I,EAAOmS,eAAejb,GACxBqhB,cACHA,aAAaU,WAAW/hB,EAE1B,EAKAye,gBAAiB,SAASvP,GAEzB,MADyB,qBAAdA,IAA2BA,EAAYzG,EAAU6H,WACrDxI,EAAEoH,GAAWpE,KAAK,kBAA6B4J,QAAQ5J,KAAK,mBAA8BtC,MAClG,EAWAwZ,UAAW,SAAS9S,EAAW2B,EAAKoR,GACb,qBAAXA,IAAwBA,GAAS,GAE5C,IAAIxJ,EAAS3Q,EAAEoH,GAAWpE,KAAK,uDAA+E+F,EAAM,KAKpH,OAJIoR,IAEHxJ,EAASA,EAAO3N,KAAK,oBAEf2N,CACR,EAUAyJ,WAAY,SAAS/W,EAAQmU,EAAM6C,GACd,qBAAT7C,IAAsBA,EAAO,OACrB,qBAAR6C,IAAqBA,GAAM,GAEtC,IAAIvV,EAAS9E,EAAEqD,GAAQ2F,QACnB0E,EAAO1N,EAAEW,EAAU6H,WAAWxF,KAAK,kBACnCsX,EAASta,EAAEqD,GAAQuD,QAAQ,mBAA8BoC,SAC7C,IAAZsR,IACH5M,EAAO1N,EAAEW,EAAU6H,WAAWxF,KAAK,8BAA2CsX,EAAS,GAAK,KAAKtX,KAAK,mBAGvG,IAAIrD,EAAYK,EAAE0N,GAAMzE,SACxBjJ,EAAE0N,GAAM8J,MAAK,SAAS3F,EAAG6F,GACxB,IAAI6C,EAAMva,EAAE6R,GAAG7O,KAAK,gBAAkB8B,EAAS,KAAKF,OAChD4V,EAAMxa,EAAE0X,GAAG1U,KAAK,gBAAkB8B,EAAS,KAAKF,OAQpD,OANIyV,IAEHE,EAAMrH,SAASqH,GACfC,EAAMtH,SAASsH,IAGH,QAAThD,EACI+C,EAAMC,EAAM,EAAID,EAAMC,GAAO,EAAI,EAEjCD,EAAMC,EAAM,EAAID,EAAMC,GAAO,EAAI,CAE1C,IAAG5S,SAASjI,EACb,EAKAwG,QAAS,WACR,IAAIsU,EAAU,CACblZ,KAAM,WACD1D,EAAQ6c,WACX1a,EAAEW,EAAUoC,WACXC,KAAK,8CACLwE,SAASxF,uBACT6G,IAAI,SACJ9G,GAAG,QAAS0Y,EAAQE,WAErBF,EAAQG,UAEV,EACAA,QAAS,WACR,IAAI3K,EAAOjP,EAAOkP,mBAAmB,QACrC,IAAIlQ,EAAE6a,cAAc5K,GAApB,CAEA,IAAInL,EAAS9D,EAAO8Z,iBAAiB7K,EAAKvL,OAE1C,GAAsB,qBAAXI,IACoB,qBAApBA,EAAO4V,WAAgD,IAApB5V,EAAO4V,YACtB,qBAApB5V,EAAOsH,WAAgD,IAApBtH,EAAOsH,UAArD,CAGA,IAAIlH,EAAKlF,EAAEW,EAAUoC,WAAWC,KAAK,+BAA4CiN,EAAKvL,MAAQ,MAAMW,KAAK,YAAa4K,EAAKuH,MACvHrR,EAAUnG,EAAEkF,GAAIlC,KAAK,QACrBgU,EAAOhX,EAAEmG,GAASnD,KAAK,KAEvByQ,EAAQzS,EAAOoB,UAAU,qBAEzBpC,EAAEgX,GAAMtW,OAAS,EACpBV,EAAEgX,GAAMf,WAAW,SAASzO,SAASiM,EAAMxD,EAAKuH,OAEhDxX,EAAEmG,GAAShO,OAAO6H,EAAE,QAAQwH,SAASiM,EAAMxD,EAAKuH,QAIjDxX,EAAEkF,GAAIsC,SAASxF,wBAhB+D,CAN7C,CAuBlC,EACA2Y,UAAW,SAAS1W,GACnB,IAAIgM,EAAOjP,EAAOkP,mBAAmB,QACjCxL,EAAQ1E,EAAES,MAAM1I,KAAK,SACrB+M,EAAS9D,EAAO8Z,iBAAiBpW,GAErC,GAAsB,qBAAXI,IACoB,qBAApBA,EAAO4V,WAAgD,IAApB5V,EAAO4V,YACtB,qBAApB5V,EAAOsH,WAAgD,IAApBtH,EAAOsH,YAGrDpM,EAAEW,EAAUoC,WAAWC,KAAK,MAAMkF,YAAYlG,yBAC9C7B,EAAKqH,SAAS/G,KAAMuB,yBAEpBhC,EAAEW,EAAUoC,WAAWC,KAAK,8BAAyCC,SAEjEpF,EAAQ6c,UAAU,CACrB1Z,EAAOyB,iBAAgB,GAEvB,IAAI+U,EAAO,OACPxW,EAAOkQ,UAAU,QAASjB,KAAUvL,IACvC8S,EAAOxW,EAAOkQ,UAAU,OAAQjB,IASjCA,EAAO,CAACvL,MAAOA,EAAO8S,KALtBA,EAAuB,qBAATA,GAAiC,SAATA,EACnC,MACA,QAIHxW,EAAOoS,mBAAmB,OAAQnD,GAElCwK,EAAQG,UAER9R,YAAW,WACV9H,EAAO8B,WAAW,QAClB9C,EAAEW,GAAW2F,QAAQtE,oBAA2BiO,EACjD,GAAG,IACJ,CACD,GAEDwK,EAAQlZ,MACT,EAOAyO,gBAAiB,WAChB,IAAIjP,EAASC,EAAOkP,qBACqB,qBAA9BvP,EAAUiC,kBACpBjC,EAAUiC,gBAAkBjC,EAAUgC,SAGvC,IAAI+B,EAAQ1D,EAAOkQ,UAAU,aAAcnQ,GACvCyW,EAAOxW,EAAOkQ,UAAU,YAAanQ,GACrC+D,EAAS9D,EAAO8Z,iBAAiBpW,GAYrC,GAXsB,qBAAXI,IAAqE,IAA3C9D,EAAOoB,UAAU,sBAClB,oBAAxB0C,EAAOyS,aACjB5W,EAAUgC,QAAUmC,EAAOyS,aAAa5W,EAAUiC,gBAAiB4U,EAAM1S,GAEzEnE,EAAUgC,QAAU3B,EAAOuW,aAAa5W,EAAUiC,gBAAiB4U,EAAM1S,GAG1EnE,EAAUgC,QAAUhC,EAAUiC,gBAIH,kBAAjB7B,EAAOga,QAAuB/Z,EAAOoB,UAAU,wBAAyB,CAClFrB,EAAOga,MAAQha,EAAOga,OAAS,CAAC,EAEhC,IAAIC,EAAe,SAAS1P,GAC3B,IAAK,IAAI5G,KAAS4G,EACjB,GAAKA,EAAI2P,eAAevW,GACxB,GAA0B,kBAAf4G,EAAI5G,IACd,GAAI4G,EAAI5G,GAAOpG,eAAiB+F,IAAwD,IAA9CiH,EAAI5G,GAAOpG,cAAcC,QAAQ8F,GAC1E,OAAO,OAEF,GAA0B,kBAAfiH,EAAI5G,IACrB,GAAI4G,EAAI5G,KAAWL,EAClB,OAAO,OAEF,GAA0B,kBAAfiH,EAAI5G,IACjBsW,EAAa1P,EAAI5G,IACpB,OAAO,EAIV,OAAO,CACR,EAEIL,EAASrE,EAAEgB,EAAOoB,UAAU,iBAAiBgC,MAC3B,qBAAXC,GAAqC,KAAXA,IACpCA,EAASA,EAAO/F,cAChBqC,EAAUgC,QAAU3C,EAAEyL,KAAK9K,EAAUgC,QAASqY,UAEvCja,EAAOga,MAAM/Z,EAAOka,wBAI5Blb,EAAEqC,KAAKtB,EAAOga,OAAO,SAASjC,EAAGC,GACtB,KAANA,UACIhY,EAAOga,MAAMjC,EAEtB,IAGAnY,EAAUgC,QAAU3B,EAAOma,YAAYxa,EAAUgC,QAAS5B,EAAOga,OAGjEpa,EAAUgC,QAAUhC,EAAUgC,QAAQyY,QAAO,WAC5C,OAAO,CACR,GACD,CAEA,OAAOza,EAAUgC,OAClB,EASAwY,YAAa,SAASE,EAAM9S,EAAM+S,GACjC,GAAoB,kBAATD,EACV,MAAO,GAKR,GAFwB,qBAAbC,IAA0BA,EAAW,OAE5B,kBAAT/S,EACV,OAAO8S,EAKR,GAFAC,EAAWA,EAASC,eAE+B,IAA/Cvb,EAAEwb,QAAQF,EAAU,CAAC,MAAO,KAAM,QACrC,MAAO,GAGR,IAAIG,EAAQxgB,OAAOygB,KAAKnT,GAAM7H,OAC1Bib,EAAW,GA4Bf,OA1BA3b,EAAEqC,KAAKgZ,GAAM,SAASnjB,EAAKoT,GAC1B,IAAIsQ,EAAWtQ,EAEXuQ,EAAU,EACd7b,EAAEqC,KAAKkG,GAAM,SAASuT,EAAOC,GAC5BA,EAAUA,aAAmBC,MAAQD,EAAU,CAACA,GAChD,IAAIE,EAAiBjb,EAAOkQ,UAAU4K,EAAOF,GAC7C,GAA8B,qBAAnBK,GAAkCA,EAAgB,CAC5D,IAAIC,EAAMD,EAAeE,WAAW7d,cACpCyd,EAAQK,SAAQ,SAASC,EAAMrT,GAC1BqT,EAAKF,WAAW7d,eAAiB4d,IAAuD,IAAhDA,EAAI3d,QAAQ8d,EAAKF,WAAW7d,gBACvEud,GAEF,GACD,CACD,KAEK,OAASP,GAAYO,GAAWJ,GACnC,MAAQH,GAAYO,EAAU,GAC9B,OAASP,GAAY,GAAKO,KAC3BF,EAASzjB,GAAOoT,EAElB,IAEA+P,EAAOM,CAGR,EAKA/V,YAAa,WACkB,qBAAnB/H,EAAQ4H,QAAgD,IAAtBzE,EAAO0E,aACnD1F,EAAEW,EAAUmB,OAAOkB,KAAK,kBAA6BgD,IAAI,OAAQ,GACjEhG,EAAEW,EAAUmB,OAAOkB,KAAK,mBAA8BgD,IAAI,MAAO,GACjEhG,EAAEW,EAAU6H,WAAWiG,UAAU,GAEnC,EAOAqM,iBAAkB,SAASpW,GAE1B,IAAIiM,EADJ,GAAqB,qBAAVjM,EAQX,OANA1E,EAAEqC,KAAKxE,EAAQyG,SAAS,SAASG,EAAGK,GACnC,GAAIJ,IAAUI,EAAOJ,MAEpB,OADAiM,EAAS7L,GACF,CAET,IACO6L,CACR,EAKA2L,qBAAsB,WACrB,IAAI3L,EAQJ,OAPA3Q,EAAEqC,KAAKxE,EAAQyG,SAAS,SAASG,EAAGK,GACnC,GAA+B,qBAApBA,EAAO4V,WACmC,IAAjD1a,EAAEwb,QAAQ1W,EAAO4V,SAAU,CAAC,MAAO,SAEtC,OADA/J,EAAS,CAAC6G,KAAM1S,EAAO4V,SAAUhW,MAAOI,EAAOJ,QACxC,CAET,IACOiM,CACR,EAUA4L,oBAAqB,SAAS5N,EAAS6N,GACtC,IAAIC,EAAQ,CACV/V,SAAU,WACVgL,WAAY,SACZ8C,QAAS,SAEVkI,EAAM,CACLld,MAAO,EACPuE,OAAQ,EACRgJ,WAAY,EACZ4P,YAAa,EACbrP,WAAY,EACZ/C,YAAa,GAEdqS,EAAgB5c,EAAE2O,GAAS9D,UAAUgS,UAAU7P,IAAI,YACpDwP,EAA0C,mBAAlBA,GACrBA,EAGH,IAAIM,EAAW,GA0Bf,OAzBAF,EAAcva,MAAK,WAClB,IAAI0a,EAAM,CAAC,EAEX,IAAK,IAAIzf,KAAQmf,EAChBM,EAAIzf,GAAQmD,KAAKpB,MAAM/B,GACvBmD,KAAKpB,MAAM/B,GAAQmf,EAAMnf,GAG1Bwf,EAASjgB,KAAKkgB,EACf,IAEAL,EAAIld,MAAQQ,EAAE2O,GAASnP,QACvBkd,EAAIpP,WAAatN,EAAE2O,GAASrB,WAAWkP,GACvCE,EAAI3P,WAAa/M,EAAE2O,GAAS5B,aAC5B2P,EAAI3Y,OAAS/D,EAAE2O,GAAS5K,SACxB2Y,EAAIC,YAAc3c,EAAE2O,GAASgO,cAC7BD,EAAInS,YAAcvK,EAAE2O,GAASpE,YAAYiS,GAEzCI,EAAcva,MAAK,SAASoC,GAC3B,IAAIsY,EAAMD,EAASrY,GACnB,IAAK,IAAInH,KAAQmf,EAChBhc,KAAKpB,MAAM/B,GAAQyf,EAAIzf,EAEzB,IAEOof,CACR,EAEAxB,oBAAqB,WACpB,IAAI8B,EAAchd,EAAEgB,EAAOoB,UAAU,iBACrC,OAAOpB,EAAOoB,UAAU,eAAiBpC,EAAEgd,GAAa/X,KAAK,OAC9D,EASAiM,UAAW,SAAS+L,EAAMC,GACzB,OAAOD,EAAK7D,MAAM,KAAK+D,QAAO,SAAS7R,EAAK7G,GAC3C,OAAe,OAAR6G,GAAkC,qBAAXA,EAAI7G,GAAqB6G,EAAI7G,GAAK,IACjE,GAAGyY,EACJ,EASAE,UAAW,SAAS9R,EAAK2R,EAAMve,GAC9B,IAAI2e,EAASJ,EAAK7D,MAAM,KACvB3U,EAAI,EAoBL,OAlBA,SAAS6Y,EAAYC,GACpB,IAAIjgB,EAAO+f,EAAO5Y,KACS,qBAAhB8Y,EAAMjgB,IAAyC,OAAhBigB,EAAMjgB,GACpB,kBAAhBigB,EAAMjgB,IACO,oBAAhBigB,EAAMjgB,KACbigB,EAAMjgB,GAAQ,CAAC,GAGhBigB,EAAMjgB,GAAQ,CAAC,EAEZmH,IAAM4Y,EAAO3c,OAChB6c,EAAMjgB,GAAQoB,EAEd4e,EAAYC,EAAMjgB,GAEpB,CAEAggB,CAAYhS,GACLA,CACR,EAEApF,WAAY,WAEXlG,EAAEW,EAAU6H,WAAWxF,KAAK,kBAA6BkF,YAAYlG,sBACjEhC,EAAEW,EAAU4F,MAAMuI,SAAS9M,sBAC9BhC,EAAEW,EAAU6H,WAAWxF,KAAK,kDAAwEwE,SAASxF,sBAE7GhC,EAAEW,EAAU6H,WAAWxF,KAAK,kCAA6CwE,SAASxF,qBAEpF,EAOAwb,MAAO,EAMP7Z,OAAQ,WAUP,OATA3C,EAAO8L,iBAAiBlL,OACpBZ,EAAO6E,aAEV7E,EAAOoF,YACPpF,EAAO4E,cACP5E,EAAOwM,kBAAkB5L,QAE1BZ,EAAOkI,oBAAoBtH,OAC3BZ,EAAOqJ,WAAWzI,OACXjB,CACR,EAMA8c,KAAM,WAEL,OADAzc,EAAO0c,SACA/c,CACR,EAMA+c,OAAQ,WAeP,OAbQ,SAAS7K,EAAU8K,GACzB/U,aAAa5H,EAAOwc,OACpBxc,EAAOwc,MAAQ1U,WAAW+J,EAAU8K,EACrC,CAEDC,EAAM,WAEA/f,EAAQ9F,KAAKsZ,iBACjBrQ,EAAOgP,kBAERhP,EAAO8B,aACP9C,EAAEW,GAAW2F,QAAQtE,wBACtB,GAAGhB,EAAOoB,UAAU,iBACbzB,CACR,EAOAkd,UAAW,SAAS1E,GASnB,MARmC,qBAAxBxY,EAAU6H,YAA2B7H,EAAU6H,UAAYxI,EAAEW,EAAUmB,OAAOzD,SAAS,UAClG2B,EAAEW,EAAU6H,WAAWxF,KAAK,+BAA0CX,MAAK,SAASoC,EAAGD,GACtF,GAAI2U,GAAMnZ,EAAEwE,GAAMI,OAAQ,CACzB,IAAIkZ,EAAY9d,EAAEwE,GAAMoC,QAAQ,kBAA6BoC,QAAU,EAEvE,OADArI,EAAUE,IAAIC,OAASH,EAAUE,IAAInC,MAAQsC,EAAOkZ,UAAUvZ,EAAU6H,UAAWsV,GAC5End,CACR,CACD,IACOA,CACR,EAQAod,UAAW,SAASC,GAGnB,OAFAhd,EAAOid,qBACPtd,EAAUE,IAAInC,MAAQsB,EAAEW,EAAUE,IAAIC,QAAQkC,KAAK,gBAAkBgb,EAAa,MAC3Erd,CACR,EAOAud,QAAS,WACRle,EAAEW,GAAWsI,SAASjG,KAAK,oBAA+BC,SAC1D,IAAI0H,EAAmB3K,EAAEW,EAAUgK,kBAAkBnD,SAASxF,uBAA6BqT,OA2B3F,OA1BArV,EAAEW,GAAWsR,YAAYtH,GAEzB3K,EADAW,EAAYgK,GACCrE,QAAQtE,wBACrBhB,EAAOC,QAAS,EAGhB0J,EAAmB,KACnBhK,EAAUgC,QAAU,KACpBhC,EAAUiC,gBAAkB,KAC5BjC,EAAUoC,UAAY,KACtBpC,EAAU6H,UAAY,KACtB7H,EAAUmB,MAAQ,KAClBnB,EAAU4F,KAAO,KACjB5F,EAAUE,IAAM,CACfC,OAAQ,KACRpC,MAAO,KACPqC,OAAQ,MAGTC,EAAOK,WAAa,CAAC,EACrBL,EAAOM,aAAe,CAAC,EACvBN,EAAOmd,OAAS,GAChBnd,EAAOod,OAAS,GAChBpd,EAAOqd,SAAW,GAClBrd,EAAOsd,WAAa,GAEb3T,CACR,EAOA6M,KAAM,SAAS9S,EAAO8S,GAErBA,EAAuB,qBAATA,EAAuB,MAAQA,EAE7CxW,EAAOyB,iBAAgB,GAGvB,IAAIwN,EAAO,CAACvL,MAAOA,EAAO8S,KAAMA,GAShC,OARAxW,EAAOoS,mBAAmB,OAAQnD,GAElCnH,YAAW,WACV9H,EAAO8B,WAAW,QAClB9C,EAAEW,GAAW2F,QAAQtE,oBAA2BiO,GAChDjQ,EAAEW,EAAUoC,WAAWC,KAAK,8BAAyCC,QACtE,GAAG,KAEItC,CACR,EAOA4d,SAAU,WACT,OAAOve,EAAEW,EAAUE,IAAInC,OAAOkG,MAC/B,EAMA2H,UAAW,SAAS/H,GACC,kBAATA,IAEVA,EAAOxE,EAAEW,EAAU6H,WAAWxF,KAAK,+CAA4DwB,EAAO,OAGvGxE,EAAEwE,GAAMS,KAAK,WAAW,GAExB,IAAIuZ,EAAM,GACVxe,EAAEwE,GAAMnC,MAAK,SAASoC,EAAGS,GAEdlF,EAAEkF,GAAI0B,QAAQ,MAAMY,SAASxF,wBAAvC,IAEImX,EAAKnZ,EAAEkF,GAAIG,KAAK,SACF,qBAAP8T,GACVqF,EAAI3hB,KAAKsc,EAEX,IAEAnZ,EAAEW,GAAW2F,QAAQtE,qBAA4B,CAACwc,GACnD,EAMAhS,YAAa,SAAShI,GACD,kBAATA,IAEVA,EAAOxE,EAAEW,EAAU6H,WAAWxF,KAAK,+CAA4DwB,EAAO,OAGvGxE,EAAEwE,GAAMS,KAAK,WAAW,GAExB,IAAIuZ,EAAM,GACVxe,EAAEwE,GAAMnC,MAAK,SAASoC,EAAGS,GAEdlF,EAAEkF,GAAI0B,QAAQ,MAAMsB,YAAYlG,wBAA1C,IAEImX,EAAKnZ,EAAEkF,GAAIG,KAAK,SACF,qBAAP8T,GACVqF,EAAI3hB,KAAKsc,EAEX,IAEAnZ,EAAEW,GAAW2F,QAAQtE,uBAA8B,CAACwc,GACrD,EAMA7R,aAAc,SAAS8R,GACtB,IAAIC,EAAa1e,EAAEW,EAAUmB,OAC5BkB,KAAK,oBACLA,KAAK,MAAMgK,IAAI,2BACfhK,KAAK,2CACFyb,EACHzd,EAAOuL,UAAUmS,GAEjB1d,EAAOwL,YAAYkS,EAErB,EAOAT,mBAAoB,WAEnB,OADAtd,EAAUE,IAAIC,OAASd,EAAEW,EAAU6H,WAAWxF,KAAK,yBAC5CrC,CACR,EAMAge,mBAAoB,WAInB,OAFA3d,EAAOid,qBACPtd,EAAUE,IAAIC,OAASH,EAAU+M,KAAK,yBAAoCkR,QACnEje,EAAUE,IAAIC,MACtB,EAOAsB,UAAW,SAAS6a,GACnB,OAAOjc,EAAOkQ,UAAU+L,EAAMpf,EAC/B,EAOAmN,UAAW,SAASiS,EAAMC,GACzBrf,EAAUmD,EAAOoc,UAAUvf,EAASof,EAAMC,EAC3C,EAOA7Y,OAAQ,SAAS3F,EAAO4F,GACA,qBAAZA,IAAyBA,EAAUtE,EAAE6e,UAAUva,IAEzCuO,EAMX,WAEL,IAAIkI,EAAQ/Z,EAAO8d,qBAGnB,GAAuB,qBAAZxa,GAA4C,qBAAV5F,EAAuB,CACnE,IAAIxG,EAAM8I,EAAOka,sBACjBH,EAAM7iB,GAAOwG,CACd,CAGuB,kBAAZ4F,IACVtE,EAAEqC,KAAKiC,GAAS,SAASwU,EAAGhU,GAC3BiW,EAAMjW,GAAUpG,CACjB,IAEAsB,EAAEqC,KAAK0Y,GAAO,SAASjC,EAAGC,IACf,KAANA,GAAY/Y,EAAE6a,cAAc9B,YACxBgC,EAAMjC,EAEf,KAGD9X,EAAOmB,mBAAmB4Y,GAG1Bpa,EAAUyS,mBAAmB,aAAcnY,OAAOK,OAAO,CAAC,EAAGqF,EAAUuP,mBAAmB,cAAe,CAACI,KAAM,KAG3GzS,EAAQ9F,KAAKsZ,iBACjBrQ,EAAOgP,kBAERhP,EAAO8B,WAAW,SACnB,EAvC2B6a,EAuCxB3c,EAAOoB,UAAU,gBAtClBwG,aAAa5H,EAAOwc,OACpBxc,EAAOwc,MAAQ1U,WAAW+J,EAAU8K,GAF9B,IAAS9K,EAAU8K,CAwC5B,EAOAvK,mBAAoB,SAAS2L,EAAOrgB,GACnCiC,EAAUE,IAAIE,OAASf,EAAEwC,OAAO,CAAC,EAAG,CACnCuO,WAAY,CAACT,KAAM,EAAGH,QAASnP,EAAOoB,UAAU,kBAChDoV,KAAMxW,EAAOsb,uBACbvB,MAAO,CAAC,GACNpa,EAAUE,IAAIE,OAAQC,EAAO2Y,SAAS3Y,EAAOI,UAEhDT,EAAUE,IAAIE,OAASC,EAAOoc,UAAUzc,EAAUE,IAAIE,OAAQge,EAAOrgB,GAErEsC,EAAOsY,UAAUtY,EAAOI,QAAST,EAAUE,IAAIE,OAChD,EAMAmP,mBAAoB,SAAS6O,GAO5B,OANApe,EAAUE,IAAIE,OAASf,EAAEwC,OAAO,CAAC,EAAG,CACnCuO,WAAY,CAACT,KAAM,EAAGH,QAASnP,EAAOoB,UAAU,kBAChDoV,KAAMxW,EAAOsb,uBACbvB,MAAO,CAAC,GACNpa,EAAUE,IAAIE,OAAQC,EAAO2Y,SAAS3Y,EAAOI,UAE3B,kBAAV2d,EACH/d,EAAOkQ,UAAU6N,EAAOpe,EAAUE,IAAIE,QAGvCJ,EAAUE,IAAIE,MACtB,EAMA+d,mBAAoB,WACnB,OAAO9d,EAAOkP,mBAAmB,UAAY,CAAC,CAC/C,EAMA/N,mBAAoB,SAAS4Y,GAC5B/Z,EAAOoS,mBAAmB,QAAS2H,EACpC,EAMA5F,eAAgB,WACf,OAAOnV,EAAEW,EAAUmB,OAClBgO,SAAS,oBACTqE,OACAnR,KAAK,wBACLA,KAAK,qDACLjL,KAAK,SAAW,CAClB,EAMAinB,YAAa,WACZ,OAAOhf,EAAEW,EAAUmB,OAAOgO,SAAS,oBAA+BqE,OAAOnR,KAAK,+BAA0CoB,OAAS,EAClI,EAKA6a,aAAc,WACb,OAAOte,EAAUE,IAAIE,OAAOgQ,WAAWV,KACxC,EAMA6O,WAAY,WACX,OAAOve,EAAUiC,eAClB,EAEAub,OAAQ,GACRC,OAAQ,GACRC,SAAU,GACVC,WAAY,GAEZxc,MAAO,WACN,GAA+B,qBAApBnB,EAAUmB,MACpB,OAAOnB,EAAUmB,KAEnB,EAOAiH,IAAK,SAASqD,GAGb,OAFApL,EAAO0M,KAAKtB,GACZpL,EAAOmd,OAASnd,EAAOsd,WAAate,EAAEgB,EAAOmd,QAAQvR,QAC9CjM,CACR,EAOA+M,KAAM,SAAStB,GAMd,OALIpL,EAAO6E,WACV7E,EAAOmd,OAASnd,EAAOsd,WAAate,EAAEW,EAAU6H,WAAWxF,KAAKoJ,GAAUgP,OAAO,2CAEjFpa,EAAOmd,OAASnd,EAAOsd,WAAate,EAAEW,EAAU6H,WAAWxF,KAAKoJ,GAAUgP,OAAO,kBAE3Eza,CACR,EAOAmE,OAAQ,SAASkE,GAEhB,OADAhI,EAAOqd,SAAWrd,EAAOsd,WAAate,EAAEW,EAAU6H,WAAWxF,KAAK,8BAA2CgG,EAAQ,GAAK,KACnHrI,CACR,EAOA2D,QAAS,SAAS8H,GACjB,IAAI+S,EAAUxe,EAAUmB,MACpBd,EAAOmd,SAAWnd,EAAOsd,aAC5Ba,EAAUne,EAAOmd,QAElB,IAAI7Z,EAAUtE,EAAEmf,GAASnc,KAAK,+BAA4CoJ,EAAW,MAMrF,OALI9H,EAAQ5D,OAAS,EACpBM,EAAOqd,SAAWrd,EAAOsd,WAAaha,EAEtCtD,EAAOqd,SAAWrd,EAAOsd,WAAate,EAAEmf,GAASnc,KAAKoJ,GAAUgP,OAAO,mBAEjEza,CACR,EAEA6D,KAAM,SAAS4H,GAGd,OAFApL,EAAOmM,MAAMf,GACbpL,EAAOod,OAASpd,EAAOsd,WAAate,EAAEgB,EAAOod,QAAQxR,QAC9CjM,CACR,EAEAwM,MAAO,SAASf,GACf,IAAIe,EAAQnN,EAAEW,EAAU6H,WAAWxF,KAAK,mBAKxC,MAJwB,qBAAboJ,IACVe,EAAQnN,EAAEmN,GAAOiO,OAAOhP,IAEzBpL,EAAOod,OAASpd,EAAOsd,WAAanR,EAC7BxM,CACR,EAMAsC,OAAQ,WAKP,OAJIjD,EAAEgB,EAAOmd,OAAOzd,SAAWM,EAAOmd,SAAWnd,EAAOsd,YACvDte,EAAEgB,EAAOmd,QAAQlb,SAElBjC,EAAOuE,eACA5E,CACR,EAKA0V,QAAS,SAAS+I,GACjB,GAAIpf,EAAEgB,EAAOsd,WAAW5d,QAAS,CAChC,IAAIqH,EAAS/G,EAAOgG,qBACpB,GAAIhG,EAAOsd,aAAetd,EAAOqd,SAAU,CAC1C,IAAIrV,EAAQhI,EAAOsd,WAAWtV,QAE9B,GAAIhI,EAAO6E,WAAY,CACtB,IAAIwZ,EAAgBrf,EAAEgB,EAAOsd,YAAY1X,QAAQ,0BAAqClG,OAClF2e,EAEHrW,GAASjB,EAAOd,KAAKvG,OAAS,EACpBV,EAAEgB,EAAOsd,YAAY1X,QAAQ,yBAAoClG,SAE3EsI,GAASjB,EAAOd,KAAKvG,OAAS2e,EAAgB,EAEhD,CACD,CAEID,GACCpe,EAAOsd,aAAetd,EAAOqd,iBACzBxgB,EAAQyG,QAAQ0E,GAAOqN,QAE/BrW,EAAEgB,EAAOsd,YAAYjJ,SAEjBrU,EAAOsd,aAAetd,EAAOqd,UAChCrd,EAAOgK,UAAU,WAAchC,EAAS,YAAY,GAErDhJ,EAAEgB,EAAOsd,YAAYzX,QAEtB7F,EAAOiF,aACPjF,EAAO2C,QACR,CACD,EAMAib,MAAO,WACN,OAAO5d,EAAOsd,UACf,EAMAgB,QAAS,WACR,OAAO3e,CACR,EAMAsT,SAAU,SAAU3D,GACgB,qBAAxBtP,EAAOM,eACjBN,EAAOC,QAAS,EAChBD,EAAOM,aAAayT,SAASzE,GAE/B,GAYD,GALAtQ,EAAEqC,KAAKrB,GAAQ,SAASue,EAAUC,GACjC7e,EAAU4e,GAAYC,CACvB,IAGuB,qBAAZ3hB,EACV,GAAuB,kBAAZA,EAAsB,CAChC,IAAIvB,EAASuB,EAEY,qBADzB8C,EAAYX,EAAES,MAAM1I,KAAKmI,MAExBrC,EAAU8C,EAAU9C,QACpBmD,EAAO1E,GAAQ+Q,MAAM5M,KAAMub,MAAMyD,UAAUhP,MAAM7O,KAAK8d,UAAW,IAEnE,MACM/e,EAAU5I,KAAKmI,IAAgBF,EAAES,MAAMqO,SAAS9M,sBACpDrB,EAAUgC,QAAU,KACpBhC,EAAUgP,UAAY,CACrB1I,KAAMjF,sBACN2d,OAAQ3d,wBACRkF,MAAOlF,wBAIRnE,EAAUmC,EAAEwC,QAAO,EAAM,CAAC,EAAGxC,EAAEQ,GAAGN,GAAY0f,SAAU/hB,GAExD8C,EAAU9C,QAAUA,EAGpBmD,EAAOO,KAAK8L,MAAM5M,KAAM,CAAC5C,IAEzBmC,EAAEW,EAAU4F,MAAMxO,KAAKmI,EAAYS,QAMZ,qBADzBA,EAAYX,EAAES,MAAM1I,KAAKmI,KAExBF,EAAE9C,MAAMgD,EAAa,oBAEtBrC,EAAU8C,EAAU9C,QAGrB,OAAO8C,CA/xGP,CAFCuX,QAAQ2H,KAAK,MAAQ3f,EAAa,kBAkyGpC,EAGAF,EAAEQ,GAAGN,GAAY0f,SAAW,CAE3B7nB,KAAM,CACLkC,KAAM,QACNwH,OAAQ,KACR2O,SAAU,GACV1N,WAAW,EAEXsO,cAAc,EACdK,iBAAiB,EACjBD,eAAe,EAEf0O,aAAa,EACbza,KAAM,CACLC,SAAU,KAKZlC,OAAQ,CACP0H,MAAO,UACPC,MAAO/I,oBACP2G,QAAQ,EACR5E,OAAQ,KACRgc,UAAW,KACXzc,QAAQ,EACRD,QAAQ,EACR2c,iBAAiB,EAGjBC,QAAS,CACRC,aAAc,UACdC,QAAS,EACTlmB,KAAM,SACNU,MAAO,UACPrC,SAAS,GAIVmb,MAAO,CACN+D,KAAM,CAAC4I,IAAK,qBAAsBC,KAAM,wBACxCtP,WAAY,CACXmD,KAAM,iBACNN,KAAM,iBACNhH,MAAO,sBACPuH,KAAM,sBACNgC,KAAM,mBAEPmK,UAAW,CAACC,OAAQ,yBAA0BC,SAAU,6BAK1D9F,UAAU,EAGV+F,WAAW,EAGXC,YAAY,EAEZ3P,YAAY,EAGZ4P,UAAU,EAGVrc,QAAS,GAETD,OAAQ,CAEPuc,SAAS,EAETziB,MAAO,KAEPyf,MAAO,IAEP1lB,IAAK,MAGNwV,KAAM,CAELmF,SAAU,WACV,EAEArH,eAAgB,WAChB,EAEAW,cAAe,WACf,EACApG,UAAU,GAIX8a,QAAS,CAERzd,OAAQ,CAAC,aAAc,QAGvB0d,UAAW,CAAC,UAGZC,MAAO,CAENhQ,WAAY,CAEX9W,KAAM,UAGNwX,MAAO,CACNuP,QAAS,CACR5d,OAAQ,UACR0Q,YAAa,GAEdmN,OAAQ,CACP7d,OAAQ,UACR0Q,YAAa,GAEdoN,OAAQ,CACP9d,OAAQ,YAKV+d,WAAY,CACXvN,MAAM,EACNM,MAAM,EACNtH,OAAO,EACPuH,MAAM,EACNgC,MAAM,GAIP/B,eAAgB,IAIjBnB,MAAM,IAMRmO,UAAW,CACVC,QAAS,CACRC,WAAY,iBACZC,UAAW,oBAEZV,QAAS,CACR9P,WAAY,CACXgQ,MAAO,CACNS,QAAS,CACR5U,MAAO,QACPgH,KAAM,WACNM,KAAM,OACNC,KAAM,OACNgC,KAAM,aACNhY,MAAO,cACPsjB,OAAQ,mBACRC,IAAK,OAENzO,KAAM,+CAMV0O,WAAY,CAAC,EAGd,CA39GA,C,2CCAS3hB,EAELE,E,WAAAA,EAAa,eAFRF,EAwPR4hB,GAnPCphB,GAAGN,GAAcF,EAAEQ,GAAGN,IAAe,CAAC,EAOxCF,EAAEQ,GAAGN,GAAY2hB,SAAW,SAASlhB,EAAW9C,GAC/C,IAAIikB,EAAY,CACfC,iBAAiB,EACjBC,aAAc,GACdC,eAAgB,GAEhB1gB,KAAM,WACDugB,EAAUI,oBAEbvhB,EAAUyS,mBAAmBvV,EAAQskB,KAAKJ,iBAAiB,GAC3DphB,EAAUuB,YAAY,YAGlBrE,EAAQskB,KAAKC,YAEhBzhB,EAAUyS,mBAAmBvV,EAAQskB,KAAKC,YAAY,GAIvDpiB,EAAEW,GAAWoB,GAAGC,yBAA+B,WAC9CrB,EAAUuB,YAAY,YACtBvB,EAAUyS,mBAAmBvV,EAAQskB,KAAKJ,iBAAiB,GAC3DD,EAAUC,iBAAkB,EAC5BD,EAAUE,aAAe,GACzBF,EAAUG,eAAiB,EAC5B,IAGAH,EAAUC,gBAAkBphB,EAAUuP,mBAAmBrS,EAAQskB,KAAKJ,iBAEtE/hB,EAAEW,GAAWoB,GAAGC,+BAAqC,SAASiC,EAAGsE,GAC5DA,EAAKzG,OAAS9B,EAAEW,EAAU4F,MAAMlB,KAAK,OAGzC1E,EAAU0G,OAAM,WACfya,EAAUO,WACVP,EAAUQ,YACVR,EAAUS,YACX,GACD,IAEAviB,EAAEW,GAAWoB,GAAGC,sBAA4B,SAASiC,EAAGua,GACvDA,EAAIpC,SAAQ,SAASjD,GACpB2I,EAAUE,aAAanlB,KAAKsc,GAE5B2I,EAAUG,eAAiBH,EAAU7e,OAAO6e,EAAUG,eAAgB9I,EACvE,IACA,IAAIqJ,EAAU,CAAC,EACfA,EAAsB,aAAIV,EAAUE,aAAa5G,OAAO0G,EAAUnN,QAClE6N,EAAwB,eAAIV,EAAUG,eAAe7G,OAAO0G,EAAUnN,QACtEhU,EAAU2Y,UAAU,WAAYkJ,EACjC,IACAxiB,EAAEW,GAAWoB,GAAGC,wBAA8B,SAASiC,EAAGua,GACzDA,EAAIpC,SAAQ,SAASjD,GACpB2I,EAAUG,eAAeplB,KAAKsc,GAE9B2I,EAAUE,aAAeF,EAAU7e,OAAO6e,EAAUE,aAAc7I,EACnE,IACA,IAAIqJ,EAAU,CAAC,EACfA,EAAsB,aAAIV,EAAUE,aAAa5G,OAAO0G,EAAUnN,QAClE6N,EAAwB,eAAIV,EAAUG,eAAe7G,OAAO0G,EAAUnN,QACtE6N,EAAwB,eAAIV,EAAUG,eAAe7G,OAAO0G,EAAUnN,QACtEhU,EAAU2Y,UAAU,WAAYkJ,EACjC,IAEF,EAKAF,UAAW,WAEVtiB,EAAEW,EAAUoC,WAAWC,KAAK,qCAAgDyf,OAAM,SAASxe,GAS1F,GAPA6d,EAAUE,aAAeF,EAAUG,eAAiB,GACpDthB,EAAUuB,YAAY,YAGtB4f,EAAUC,kBAAoB/hB,EAAES,MAAM6L,GAAG,aAGpCzO,EAAQskB,KAAKC,WAAY,CACzBpiB,EAAES,MAAM6L,GAAG,cACdwV,EAAUE,aAAehiB,EAAE6e,UAAU7e,EAAEW,EAAU6H,WAAWxF,KAAK,wCAAmDxE,KAAI,SAASiG,EAAG4H,GACnI,OAAOrM,EAAEqM,GAAKjI,KACf,MAED,IAAIoe,EAAU,CAAC,EACfA,EAAsB,aAAIV,EAAUE,aAAa5G,OAAO0G,EAAUnN,QAClEhU,EAAU2Y,UAAU,WAAYkJ,EACjC,CAGA7hB,EAAUyS,mBAAmBvV,EAAQskB,KAAKJ,gBAAiBD,EAAUC,iBAErE/hB,EAAEW,GAAW2F,QAAQtE,8BAAqC,CAAChC,EAAES,OAC9D,IAGAT,EAAEW,EAAU6H,WAAWxF,KAAK,wCAAmDyf,OAAM,SAASxe,GAC7F,IAAIkV,EAAKnZ,EAAES,MAAM2D,MACbpE,EAAES,MAAM6L,GAAG,aACdwV,EAAUE,aAAanlB,KAAKsc,GAE5B2I,EAAUG,eAAiBH,EAAU7e,OAAO6e,EAAUG,eAAgB9I,KAGtE2I,EAAUG,eAAeplB,KAAKsc,GAE9B2I,EAAUE,aAAeF,EAAU7e,OAAO6e,EAAUE,aAAc7I,KAI9Dtb,EAAQskB,KAAKC,YAAcN,EAAUE,aAAathB,OAAS,GAE/DV,EAAEW,EAAUoC,WAAWC,KAAK,qCAAgDiC,KAAK,WAAW,GAG7F,IAAIud,EAAU,CAAC,EACfA,EAAsB,aAAIV,EAAUE,aAAa5G,OAAO0G,EAAUnN,QAClE6N,EAAwB,eAAIV,EAAUG,eAAe7G,OAAO0G,EAAUnN,QACtEhU,EAAU2Y,UAAU,WAAYkJ,GAEhCxiB,EAAEW,GAAW2F,QAAQtE,8BAAqC,CAAChC,EAAES,OAC9D,GACD,EAEAkU,OAAQ,SAASjW,EAAOsK,EAAO0Z,GAC9B,OAAOA,EAAKnkB,QAAQG,KAAWsK,CAChC,EAEAuZ,WAAY,WAEPT,EAAUC,iBAAmBlkB,EAAQskB,KAAKC,YACxCzhB,EAAUmO,SAAS9M,oBAEvBhC,EAAEW,EAAUoC,WAAWC,KAAK,qCAAgDiC,KAAK,WAAW,GAI7FtE,EAAUgM,cAAa,GAGvBmV,EAAUG,eAAe7F,SAAQ,SAASjD,GACzCxY,EAAU6L,YAAY2M,EACvB,MAKA2I,EAAUE,aAAa5F,SAAQ,SAASjD,GACvCxY,EAAU4L,UAAU4M,EACrB,KAGKxY,EAAUmO,SAAS9M,oBAA4BhC,EAAEW,EAAU6H,WAAWxF,KAAK,wCAAmDgK,IAAI,YAAYtM,OAAS,GAE3JV,EAAEW,EAAUoC,WAAWC,KAAK,qCAAgDiC,KAAK,WAAW,GAG/F,EAKAid,gBAAiB,WAChB,OAAOliB,EAAEyL,KAAK9K,EAAU9C,QAAQyG,SAAS,SAASoH,EAAGjH,GACpD,OAAOiH,EAAEU,WAAY,CACtB,IAAG,EACJ,EAEAiW,SAAU,WAET,IAAIG,EAAU7hB,EAAUgZ,SAAS,YACV,qBAAZ6I,IACVV,EAAUE,aAAeQ,EAAsB,cAAK,GACpDV,EAAUG,eAAiBO,EAAwB,gBAAK,GAE1D,EAEAG,cAAe,SAAS1F,GAIvB,GAHA6E,EAAUO,WAGNP,EAAUC,iBAAmBlkB,EAAQskB,KAAKC,WAAY,CACrC,qBAATnF,IACVA,EAAOpf,EAAQskB,KAAKS,QAIrB,IAAIb,EAAkBphB,EAAUuQ,UAAU+L,EAAMtc,EAAU8R,eAAiB,GAQ3E,OANIsP,EAAgBrhB,OAAS,GAE5BohB,EAAUG,eAAe7F,SAAQ,SAASjD,GACzC4I,EAAkBD,EAAU7e,OAAO8e,EAAiB7O,SAASiG,GAC9D,IAEM4I,EAAgB3G,OAAO0G,EAAUnN,OACzC,CAGA,OAAOmN,EAAUE,aAAa5G,OAAO0G,EAAUnN,OAChD,EAEA1R,OAAQ,SAAS4f,EAAOlU,GACvB,OAAOkU,EAAMzH,QAAO,SAASnX,GAC5B,OAAOA,IAAM0K,CACd,GACD,GAaD,OATAhO,EAAUkhB,SAAW,WACpB,OAAOC,CACR,EAEuB,kBAAZjkB,IACVA,EAAUmC,EAAEwC,QAAO,EAAM,CAAC,EAAGxC,EAAEQ,GAAGN,GAAY2hB,SAASL,QAAS3jB,GAChEikB,EAAUvgB,KAAK8L,MAAM5M,KAAM,CAAC5C,KAGtB8C,CACR,EAEAX,EAAEQ,GAAGN,GAAY2hB,SAASL,QAAU,CACnCW,KAAM,CAELJ,gBAAiB,kBAEjBK,WAAY,aAEZQ,OAAQ,e,iCCrPX,IAAIhD,EAAW,CACbxc,OAAQ,CACNqQ,MAAO,CACL1C,WAAY,CACVmD,KAAM,iBACNN,KAAM,iBACNhH,MAAO,sBACPuH,KAAM,sBACNgC,KAAM,mBAERmK,UAAW,CAAEC,OAAQ,yBAA0BC,SAAU,8BAK3DpgB,OAAOhB,UACTwgB,EAAW,CACTxc,OAAQ,CACNqQ,MAAO,CACL1C,WAAY,CACVmD,KAAM,iBACNN,KAAM,iBACNhH,MAAO,sBACPuH,KAAM,uBAERmM,UAAW,CAAEE,SAAU,yBAA0BD,OAAQ,+BAMjEvgB,EAAEwC,QAAO,EAAMxC,EAAEQ,GAAGsiB,YAAYlD,SAAUA,E,yBCyJqB,qBAAnBmD,EAAOC,UAC/CD,EAAOC,QAtLI,SAASnlB,GAEpB,IAGI8Q,EAHAsU,EAAMxiB,KAINhE,EAAO2D,OAAO8iB,UAGdC,EAAiB,CACjB,UAAc,aACd,KAAU,SACV,MAAU,IACV,MAAU,UACV,QAAY,cAOZniB,EAAS,CAKToiB,UAAW,SAASvlB,GAGhB,OAFAmD,EAAOO,KAAK1D,GAELolB,CACX,EAKA1hB,KAAM,SAAS1D,GACXolB,EAAII,OAAS,GAGbJ,EAAIplB,QAAUuC,OAAOkjB,WAAW,CAAC,EAAGH,EAAgBtlB,GAEpDolB,EAAItoB,OAAQ,CAChB,EAKA0a,KAAM,WAoBF,OAnBArU,EAAOuiB,aAAa,QAEpB5U,EAAU7R,SAASkP,cAAc,OACjC5L,OAAOojB,QAAQ7U,EAASsU,EAAIplB,QAAQvF,SAEpC8H,OAAOoH,SAASmH,EAAS,uBACzBvO,OAAOoH,SAASmH,EAAS,UAAYsU,EAAIplB,QAAQlD,OACjDyF,OAAOoH,SAASmH,EAAS,UAAYsU,EAAIplB,QAAQ5D,MAEpB,cAAzBgpB,EAAIplB,QAAQijB,WACZ1gB,OAAOoH,SAASmH,EAAS,qBAG7BlS,EAAK+S,YAAYb,GAEjBsU,EAAItoB,MAAQ,QAEZqG,EAAOuiB,aAAa,SAEbN,CACX,EAKApc,KAAM,WAUF,OATI8H,IACA3N,EAAOuiB,aAAa,QAEpB5U,EAAQ1L,SACRggB,EAAItoB,MAAQ,SAEZqG,EAAOuiB,aAAa,WAGjBN,CACX,EAKAM,aAAc,SAASjmB,GACnB,IAAK,IAAImH,EAAI,EAAGA,EAAIwe,EAAII,OAAO3iB,OAAQ+D,IAAK,CACxC,IAAIgf,EAAQR,EAAII,OAAO5e,GAEvB,GAAIgf,EAAMnmB,MAAQA,EAAM,CACpB,GAAiB,GAAbmmB,EAAMC,IAMN,OAAOD,EAAME,QAAQ/hB,KAAKnB,KAAMwiB,GALhC,GAAmB,GAAfQ,EAAMG,MAEN,OADAX,EAAII,OAAO5e,GAAGmf,OAAQ,EACfH,EAAME,QAAQ/hB,KAAKnB,KAAMwiB,EAK5C,CACJ,CACJ,EAEAY,SAAU,SAASvmB,EAAMqmB,EAASD,GAQ9B,OAPAT,EAAII,OAAOxmB,KAAK,CACZS,KAAMA,EACNqmB,QAASA,EACTD,IAAKA,EACLE,OAAO,IAGJX,CACX,GA8DJ,OAnDAA,EAAIa,YAAc,SAASjmB,GACvBslB,EAAiBtlB,CACrB,EAKAolB,EAAIc,MAAQ,WACR,MAAoB,SAAbd,EAAItoB,KACf,EAKAsoB,EAAItkB,OAAS,WACT,MAAoB,UAAbskB,EAAItoB,KACf,EAKAsoB,EAAI5N,KAAO,WACP,OAAOrU,EAAOqU,MAClB,EAKA4N,EAAIpc,KAAO,WACP,OAAO7F,EAAO6F,MAClB,EAMAoc,EAAIlhB,GAAK,SAASzE,EAAMqmB,GACpB,OAAO3iB,EAAO6iB,SAASvmB,EAAMqmB,EACjC,EAMAV,EAAIS,IAAM,SAASpmB,EAAMqmB,GACrB,OAAO3iB,EAAO6iB,SAASvmB,EAAMqmB,GAAS,EAC1C,EAGA3iB,EAAOoiB,UAAU/V,MAAM4V,EAAK,CAACplB,IAEtBolB,CACX,E,yBCsB+D,qBAAnBF,EAAOC,UAC/CD,EAAOC,QAzMI,SAASgB,EAAWnmB,GAE/B,IAAIolB,EAAMxiB,KAINkO,EAAUvO,OAAO6jB,QAAQD,GACzBvnB,EAAO2D,OAAO8iB,UAElB,QAAgBvZ,IAAZgF,EAAJ,CAKA,IAAIwU,EAAiB,CACjBznB,OAAQ,CACJslB,SAAS,EACTkD,iBAAiB,GAErBC,gBAAiB,CACbnD,SAAS,EACTkD,iBAAiB,IAQrBljB,EAAS,CAKToiB,UAAW,SAASvlB,GAahB,OAZIuC,OAAOrI,KAAK4W,GAASyV,IAAI,UACzBnB,EAAM7iB,OAAOrI,KAAK4W,GAASpK,IAAI,WAG/BvD,EAAOO,KAAK1D,GAGZmD,EAAOqjB,QAEPjkB,OAAOrI,KAAK4W,GAAS2V,IAAI,SAAUrB,IAGhCA,CACX,EAMA1hB,KAAM,SAAS1D,GACXolB,EAAII,OAAS,GAGbJ,EAAIplB,QAAUuC,OAAOkjB,WAAW,CAAC,EAAGH,EAAgBtlB,EACxD,EAMAwmB,MAAO,WACH,IAAIE,GAAoB,EACpBC,EAAgB,EAEpB7sB,OAAO+H,iBAAiB,UAAU,WAC9B,IAAgB+kB,EAAZ/oB,EAAS,EAET0E,OAAOskB,iBAAiB,QAAgD,IAAvCzB,EAAIplB,QAAQnC,OAAOwoB,iBAIpD9jB,OAAOukB,eAAe,QAAwC,IAA/B1B,EAAIplB,QAAQnC,OAAOslB,UAIlD5gB,OAAOukB,eAAe,MACtBjpB,EAASunB,EAAIplB,QAAQnC,OAAOslB,QACrB5gB,OAAOskB,iBAAiB,QAC/BhpB,EAASunB,EAAIplB,QAAQnC,OAAOwoB,iBAGhCO,EAAKrkB,OAAOwkB,eAGPxkB,OAAOskB,iBAAiB,OAASzB,EAAIplB,QAAQsmB,gBAAgBD,iBAC7D9jB,OAAOukB,eAAe,OAAS1B,EAAIplB,QAAQsmB,gBAAgBnD,SAExDyD,EAAK/oB,GAAU8oB,EAAgBC,IACiB,IAA5ChoB,EAAKooB,aAAa,uBAClBpoB,EAAKiT,aAAa,qBAAsB,MAGxC6U,IACAvjB,EAAOuiB,aAAa,WAAYN,GAChCsB,GAAoB,MAGwB,IAA5C9nB,EAAKooB,aAAa,uBAClBpoB,EAAKqoB,gBAAgB,sBAGA,GAArBP,IACAvjB,EAAOuiB,aAAa,YAAaN,GACjCsB,GAAoB,IAI5BC,EAAgBC,GAEZA,EAAK/oB,IAC2C,IAA5Ce,EAAKooB,aAAa,uBAClBpoB,EAAKiT,aAAa,qBAAsB,MAGxC6U,IACAvjB,EAAOuiB,aAAa,WAAYN,GAChCsB,GAAoB,MAGwB,IAA5C9nB,EAAKooB,aAAa,uBAClBpoB,EAAKqoB,gBAAgB,sBAGA,GAArBP,IACAvjB,EAAOuiB,aAAa,YAAaN,GACjCsB,GAAoB,IAIpC,GACJ,EAKAhB,aAAc,SAASjmB,EAAMiL,GACzB,IAAK,IAAI9D,EAAI,EAAGA,EAAIwe,EAAII,OAAO3iB,OAAQ+D,IAAK,CACxC,IAAIgf,EAAQR,EAAII,OAAO5e,GACvB,GAAIgf,EAAMnmB,MAAQA,EAAM,CACpB,GAAiB,GAAbmmB,EAAMC,IAMN,OAAOD,EAAME,QAAQ/hB,KAAKnB,KAAMwiB,EAAK1a,GALrC,GAAmB,GAAfkb,EAAMG,MAEN,OADAX,EAAII,OAAO5e,GAAGmf,OAAQ,EACfH,EAAME,QAAQ/hB,KAAKnB,KAAMwiB,EAAK1a,EAKjD,CACJ,CACJ,EAEAsb,SAAU,SAASvmB,EAAMqmB,EAASD,GAC9BT,EAAII,OAAOxmB,KAAK,CACZS,KAAMA,EACNqmB,QAASA,EACTD,IAAKA,EACLE,OAAO,GAEf,GAiCJ,OAtBAX,EAAIa,YAAc,SAASjmB,GACvBslB,EAAiBtlB,CACrB,EAKAolB,EAAIlhB,GAAK,SAASzE,EAAMqmB,GACpB,OAAO3iB,EAAO6iB,SAASvmB,EAAMqmB,EACjC,EAOA3iB,EAAOoiB,UAAU/V,MAAM4V,EAAK,CAACplB,IAMtBolB,CAzLP,CA0LJ,E,yBC/B+D,qBAAnBF,EAAOC,UAC/CD,EAAOC,QAvKO,SAASgB,EAAWnmB,GAElC,IAAIolB,EAAMxiB,KAINkO,EAAUvO,OAAO6jB,QAAQD,GACzBvnB,EAAO2D,OAAO8iB,UAElB,GAAKvU,EAAL,CAKA,IAAIwU,EAAiB,CACjBznB,OAAQ,IACRqpB,MAAO,KAOP/jB,EAAS,CAKToiB,UAAW,SAASvlB,GAahB,OAZIuC,OAAOrI,KAAK4W,GAASyV,IAAI,aACzBnB,EAAM7iB,OAAOrI,KAAK4W,GAASpK,IAAI,cAG/BvD,EAAOO,KAAK1D,GAGZmD,EAAOqjB,QAEPjkB,OAAOrI,KAAK4W,GAAS2V,IAAI,YAAarB,IAGnCA,CACX,EAMA1hB,KAAM,SAAS1D,GACXolB,EAAII,OAAS,GAGbJ,EAAIplB,QAAUuC,OAAOkjB,WAAW,CAAC,EAAGH,EAAgBtlB,EACxD,EAEAwmB,MAAO,WAGH1sB,OAAO+H,iBAAiB,UAAU,WAC9BU,OAAO4kB,cAHPxH,GAGuB,WACnBxc,EAAOikB,QACX,GAAG,IACP,IAGA7kB,OAAOyjB,SAASlV,EAAS,QAAS3N,EAAO2H,OAC7C,EAKAsc,OAAQ,WACM7kB,OAAOwkB,eAEP3B,EAAIplB,QAAQnC,QAC0B,IAAxCe,EAAKooB,aAAa,mBAClBpoB,EAAKiT,aAAa,iBAAkB,OAGI,IAAxCjT,EAAKooB,aAAa,mBAClBpoB,EAAKqoB,gBAAgB,iBAGjC,EAKAnc,OAAQ,SAAS1E,GACbA,EAAE6Q,iBAEF1U,OAAOqO,UAAU,EAAGwU,EAAIplB,QAAQknB,MACpC,EAMAxB,aAAc,SAASjmB,EAAMiL,GACzB,IAAK,IAAI9D,EAAI,EAAGA,EAAIwe,EAAII,OAAO3iB,OAAQ+D,IAAK,CACxC,IAAIgf,EAAQR,EAAII,OAAO5e,GACvB,GAAIgf,EAAMnmB,MAAQA,EAAM,CACpB,GAAiB,GAAbmmB,EAAMC,IAMP,OAAOD,EAAME,QAAQ/hB,KAAKnB,KAAMwiB,EAAK1a,GALpC,GAAmB,GAAfkb,EAAMG,MAEN,OADAX,EAAII,OAAO5e,GAAGmf,OAAQ,EACfH,EAAME,QAAQ/hB,KAAKnB,KAAMwiB,EAAK1a,EAKjD,CACJ,CACJ,EAEAsb,SAAU,SAASvmB,EAAMqmB,EAASD,GAC9BT,EAAII,OAAOxmB,KAAK,CACZS,KAAMA,EACNqmB,QAASA,EACTD,IAAKA,EACLE,OAAO,GAEf,GAyCJ,OA9BAX,EAAIa,YAAc,SAASjmB,GACvBslB,EAAiBtlB,CACrB,EAKAolB,EAAIlhB,GAAK,SAASzE,EAAMqmB,GACpB,OAAO3iB,EAAO6iB,SAASvmB,EAAMqmB,EACjC,EAMAV,EAAIS,IAAM,SAASpmB,EAAMqmB,GACrB,OAAO3iB,EAAO6iB,SAASvmB,EAAMqmB,GAAS,EAC1C,EAOA3iB,EAAOoiB,UAAU/V,MAAM4V,EAAK,CAACplB,IAMtBolB,CAvJP,CAwJJ,E,yBCwR+D,qBAAnBF,EAAOC,UAC/CD,EAAOC,QA5bI,SAASgB,EAAWnmB,GAE/B,IAAIolB,EAAMxiB,KAINkO,EAAUvO,OAAO6jB,QAAQD,GAG7B,GAFW5jB,OAAO8iB,UAEbvU,EAAL,CAKA,IAAIwU,EAAiB,CACjB+B,UAAW,EACXC,gBAAgB,EAChBhE,YAAY,GAOZngB,EAAS,CAKToiB,UAAW,SAASvlB,GAahB,OAZIuC,OAAOrI,KAAK4W,GAASyV,IAAI,UACzBnB,EAAM7iB,OAAOrI,KAAK4W,GAASpK,IAAI,WAG/BvD,EAAOO,KAAK1D,GAGZmD,EAAOqjB,QAEPjkB,OAAOrI,KAAK4W,GAAS2V,IAAI,SAAUrB,IAGhCA,CACX,EAKA1hB,KAAM,SAAS1D,GACXolB,EAAItU,QAAUA,EACdsU,EAAII,OAAS,GAGbJ,EAAIplB,QAAUuC,OAAOkjB,WAAW,CAAC,EAAGH,EAAgBtlB,GAGpDolB,EAAImC,MAAQhlB,OAAOilB,QAAQ1W,EAAS,6BAEpCsU,EAAIqC,QAAUllB,OAAO4C,KAAK2L,EAAS,oCACnCsU,EAAIsC,QAAUnlB,OAAO4C,KAAK2L,EAAS,oCACnCsU,EAAIuC,UAAYplB,OAAO4C,KAAK2L,EAAS,sCAGrCsU,EAAII,OAAS,GACbJ,EAAIwC,SAAW,EACfxC,EAAIyC,YAAc,EAClBzC,EAAI0C,QAAU,EACd1C,EAAI2C,SAAU,EACd3C,EAAI4C,WAAa5C,EAAImC,MAAM1kB,OAGvBuiB,EAAIplB,QAAQqnB,UAAY,GACxBlkB,EAAO8kB,KAAK7C,EAAIplB,QAAQqnB,WAI5BlkB,EAAO+kB,UACX,EAKA1B,MAAO,WACCpB,EAAIplB,QAAQsjB,aAEZ/gB,OAAOyjB,SAASZ,EAAIqC,QAAS,SAAS,SAASrhB,GAC3CA,EAAE6Q,iBAGF9T,EAAOglB,WAAWhlB,EAAOilB,gBAGa,IAAlCjlB,EAAOuiB,aAAa,WACpBviB,EAAO8kB,KAAK9kB,EAAOilB,cAE3B,IAGA7lB,OAAOyjB,SAASZ,EAAIsC,QAAS,SAAS,SAASthB,GAC3CA,EAAE6Q,iBAGF9T,EAAOglB,WAAWhlB,EAAOklB,gBAGa,IAAlCllB,EAAOuiB,aAAa,WACpBviB,EAAO8kB,KAAK9kB,EAAOklB,cAE3B,IAGA9lB,OAAOyjB,SAASZ,EAAIuC,UAAW,SAAS,SAASvhB,GAC7CA,EAAE6Q,iBAEF9T,EAAOuiB,aAAa,SACxB,MAG+B,IAA/BN,EAAIplB,QAAQsnB,gBACZ/kB,OAAO2B,GAAG4M,EAAS,4BAA6B,SAAS,WACrD,IAAI3F,EAAQ5I,OAAO4I,MAAMvI,MAAQ,EAE7BuI,IAAUia,EAAIyC,cACd1kB,EAAOglB,WAAWhd,IAGoB,IAAlChI,EAAOuiB,aAAa,WACpBviB,EAAO8kB,KAAK9c,GAGxB,GAER,EAKA8c,KAAM,SAAShrB,GAEX,IAAoB,IAAhBmoB,EAAI2C,SAMR,KAAI9qB,IAAWmoB,EAAIyC,aAAe5qB,EAASmoB,EAAI4C,YAAc/qB,EAAS,GAgBtE,OAXAA,EAASoY,SAASpY,GAGlBmoB,EAAIwC,SAAWxC,EAAIyC,YACnBzC,EAAIyC,YAAc5qB,EAClBmoB,EAAI0C,QAAU,EAEd3kB,EAAO+kB,WAEP/kB,EAAOuiB,aAAa,WAEbN,OArBHA,EAAI2C,SAAU,CAsBtB,EAKAO,KAAM,WACFlD,EAAI2C,SAAU,CAClB,EAKAQ,OAAQ,WACJnD,EAAI2C,SAAU,CAClB,EAKAS,WAAY,WACR,OAAOpD,EAAIyC,cAAgBzC,EAAI4C,UACnC,EAKAS,YAAa,WACT,OAA2B,IAApBrD,EAAIyC,WACf,EAKAa,cAAe,WACX,OAA+B,IAAxBvlB,EAAOqlB,eAAmD,IAAzBrlB,EAAOslB,aACnD,EAKAP,SAAU,WACN,IAAIS,EAAW,GACXxd,EAAQia,EAAIyC,YAAc,EAG1Bc,EADAxlB,EAAOqlB,aACI,OACJrlB,EAAOslB,cACH,QAEA,UAGflmB,OAAOiF,KAAK4d,EAAItU,QAAS,oBAAqB6X,GAG9C,IAAIpB,EAAQhlB,OAAOilB,QAAQpC,EAAItU,QAAS,6BAExC,GAAIyW,GAASA,EAAM1kB,OAAS,EACxB,IAAK,IAAI+D,EAAI,EAAGgiB,EAAMrB,EAAM1kB,OAAQ+D,EAAIgiB,EAAKhiB,IACrCA,GAAKuE,EACL5I,OAAOiF,KAAK+f,EAAM3gB,GAAI,oBAAqB,WAEvCA,EAAIuE,EACJ5I,OAAOiF,KAAK+f,EAAM3gB,GAAI,oBAAqB,QAE3CrE,OAAOiF,KAAK+f,EAAM3gB,GAAI,oBAAqB,WAO3D,IAAIiiB,EAAYtmB,OAAOilB,QAAQpC,EAAItU,QAAS,kCAC5C,GAAI+X,GAAYA,EAAUhmB,OAAS,EAC/B,IAAS+D,EAAI,EAAGgiB,EAAMC,EAAUhmB,OAAQ+D,EAAIgiB,EAAKhiB,IACzCA,GAAKuE,EACL5I,OAAOiF,KAAKqhB,EAAUjiB,GAAI,oBAAqB,WAE/CrE,OAAO6V,WAAWyQ,EAAUjiB,GAAI,qBAM5C,IAAIkiB,EAAevmB,OAAOilB,QAAQpC,EAAItU,QAAS,qCAC/C,GAAIgY,GAAeA,EAAajmB,OAAS,EACrC,IAAS+D,EAAI,EAAGgiB,EAAME,EAAajmB,OAAQ+D,EAAIgiB,EAAKhiB,IAC5CA,GAAKuE,EACL5I,OAAOiF,KAAKshB,EAAaliB,GAAI,oBAAqB,WAElDrE,OAAO6V,WAAW0Q,EAAaliB,GAAI,oBAInD,EAKAwhB,YAAa,WACT,OAAIhD,EAAI4C,YAAe5C,EAAIyC,YAAc,EAC9BzC,EAAIyC,YAAc,EAElBzC,EAAI4C,UAEnB,EAKAK,YAAa,WACT,OAAKjD,EAAIyC,YAAc,GAAM,EAClBzC,EAAIyC,YAAc,EAElB,CAEf,EAKAkB,WAAY,WACR,OAAO3D,EAAI0C,OACf,EAKAK,WAAY,SAAS9pB,GACjB+mB,EAAI0C,QAAUzpB,CAClB,EAKAqnB,aAAc,SAASjmB,EAAMupB,GAEzB,IAAK,IAAIpiB,EAAI,EAAGA,EAAIwe,EAAII,OAAO3iB,OAAQ+D,IAAK,CACxC,IAAIgf,EAAQR,EAAII,OAAO5e,GACvB,GAAIgf,EAAMnmB,MAAQA,EAAM,CACpB,GAAiB,GAAbmmB,EAAMC,IAMN,OAAOD,EAAME,QAAQ/hB,KAAKnB,KAAMwiB,GALhC,GAAmB,GAAfQ,EAAMG,MAEN,OADAX,EAAII,OAAO5e,GAAGmf,OAAQ,EACfH,EAAME,QAAQ/hB,KAAKnB,KAAMwiB,EAK5C,CACJ,CACJ,EAEAY,SAAU,SAASvmB,EAAMqmB,EAASD,GAQ9B,OAPAT,EAAII,OAAOxmB,KAAK,CACZS,KAAMA,EACNqmB,QAASA,EACTD,IAAKA,EACLE,OAAO,IAGJX,CACX,GAoHJ,OAzGAA,EAAIa,YAAc,SAASjmB,GACvBslB,EAAiBtlB,CACrB,EAKAolB,EAAI6D,OAAS,WACT,OAAO9lB,EAAO8kB,KAAK9kB,EAAOilB,cAC9B,EAKAhD,EAAI8D,OAAS,WACT,OAAO/lB,EAAO8kB,KAAK9kB,EAAOklB,cAC9B,EAKAjD,EAAI+D,OAAS,WACT,OAAOhmB,EAAO8kB,KAAK9kB,EAAOimB,cAC9B,EAKAhE,EAAIiE,QAAU,WACV,OAAOlmB,EAAO8kB,KAAK9kB,EAAOmmB,eAC9B,EAKAlE,EAAI6C,KAAO,SAAShrB,GAChB,OAAOkG,EAAO8kB,KAAKhrB,EACvB,EAKAmoB,EAAIkD,KAAO,WACP,OAAOnlB,EAAOmlB,MAClB,EAKAlD,EAAImD,OAAS,WACT,OAAOplB,EAAOolB,QAClB,EAKAnD,EAAImE,QAAU,WACV,OAAOnE,EAAIyC,WACf,EAKAzC,EAAI2D,WAAa,WACb,OAAO5lB,EAAO4lB,YAClB,EAKA3D,EAAI+C,WAAa,SAASlrB,GACtBkG,EAAOglB,WAAWlrB,EACtB,EAKAmoB,EAAIoD,WAAa,WACb,OAAOrlB,EAAOqlB,YAClB,EAKApD,EAAIqD,YAAc,WACd,OAAOtlB,EAAOslB,aAClB,EAKArD,EAAIlhB,GAAK,SAASzE,EAAMqmB,GACpB,OAAO3iB,EAAO6iB,SAASvmB,EAAMqmB,EACjC,EAKAV,EAAIS,IAAM,SAASpmB,EAAMqmB,GACrB,OAAO3iB,EAAO6iB,SAASvmB,EAAMqmB,GAAS,EAC1C,EAGA3iB,EAAOoiB,UAAU/V,MAAM4V,EAAK,CAACplB,IAEtBolB,CA5aP,CA6aJ,E,yBCzbA,IAEKoE,EACGC,EAHJC,EAgEI,CACNhmB,KAAM,SAAS4X,GA3DJ,IACPzd,GA2DM2rB,EAAWjnB,OAAO6jB,QAAQ9K,MA3DhCzd,EAAS,IAEiB,qBAAnB8rB,iBACV9rB,EAAS8rB,eAAeC,cAGnBH,EAAU,IAAII,OAAOL,EAAU,CACpCM,OAAQ,CACPjsB,OAAQA,EACRksB,OAAQ,GACRlhB,SAAU,CACT8H,IAAK,WACJ,IAAIqZ,EAAM,EAmBV,OAlB6BznB,OAAO8iB,UAEhC9iB,OAAOukB,eAAe,OACK,qBAAnB6C,gBAAkCA,eAAeM,YAC3DD,GAAYL,eAAeC,aAGK,qBAAtBM,mBAAqCA,kBAAkBD,YACjED,GAAYE,kBAAkBN,cAGD,qBAAnBD,gBAAkCA,eAAeQ,qBAC3DH,GAAYL,eAAeS,sBAI7BJ,EAAY,CAGb,EACA5gB,KAAM,SAASihB,GACd,OAAO9nB,OAAO1E,OAAO2rB,GAAUpgB,IAChC,EACAC,MAAO,SAASghB,GACf,IAAIzrB,EAAO2D,OAAO8iB,UAEdiF,EAAYjV,SAAS9S,OAAO4F,IAAIqhB,EAAU,UAI9C,OAHgBnU,SAAS9S,OAAO4F,IAAIvJ,EAAM,UAGvB0rB,EAFE/nB,OAAO1E,OAAO2rB,GAAUpgB,IAG9C,OAKKmhB,aAERhoB,OAAOioB,kBAAiB,WACvBf,EAAQgB,cACT,IAcA,EAEAvZ,OAAQ,WACHuY,GACHA,EAAQgB,cAEV,GAMDvF,EAAOC,QAAUuE,C,yBCtFlB,IAEKF,EAGAkB,EALDC,GAKCD,EAAQ,WACX,IAAI5f,EAASvI,OAAO4C,KAAKqkB,EAAU,gBAC/BoB,EAAWroB,OAAO4C,KAAKqkB,EAAU,cACjCqB,EAAatoB,OAAO4C,KAAKqkB,EAAU,gBAEnCtjB,EAAS4kB,gBAAgBlB,YAQ7B1jB,GADAA,GAFAA,GADAA,GAFAA,GAAkBmP,SAAS9S,OAAOwoB,aAAaF,KAE7BxV,SAAS9S,OAAO4F,IAAIqhB,EAAU,cAAgBnU,SAAS9S,OAAO4F,IAAIqhB,EAAU,kBAC5EnU,SAAS9S,OAAO4F,IAAIqhB,EAAU,eAAiBnU,SAAS9S,OAAO4F,IAAIqhB,EAAU,mBAE7EnU,SAAS9S,OAAO4F,IAAIyiB,EAAU,eAAiBvV,SAAS9S,OAAO4F,IAAIyiB,EAAU,mBAC7EvV,SAAS9S,OAAO4F,IAAIyiB,EAAU,cAAgBvV,SAAS9S,OAAO4F,IAAIyiB,EAAU,iBAE9F1kB,GAAkB,EAElB3D,OAAO4F,IAAI2C,EAAQ,SAAU5E,EAAS,KACvC,EAGO,CACNxC,KAAM,SAAS4X,IACLkO,EAAWjnB,OAAO6jB,QAAQ9K,MAOnCoP,IAGSnoB,OAAOioB,kBAAiB,WAChCE,GACD,IACD,EAEAxZ,OAAQ,WACPwZ,GACD,IAMDxF,EAAOC,QAAUwF,C,yBClDlB,IAEKD,EAqEAM,EAvEDC,GAECP,EAAQ,SAAU5Z,GACrB,IAAIoa,EAAW3oB,OAAO4C,KAAK2L,EAAS,WAChCqa,EAAa5oB,OAAO4C,KAAK2L,EAAS,cAClCsa,EAAe7oB,OAAO4C,KAAK2L,EAAS,gBACpCua,EAAe9oB,OAAO4C,KAAK2L,EAAS,gBAEnCoa,IAKL3oB,OAAO+oB,WAAWJ,EAAU,CAC3BK,cAAc,EACdC,oBAAoB,EACpBC,qBAAqB,EACrBC,sBAAsB,EACtBC,oBAAoB,EACpBC,kBAAkB,EAClB1lB,OAAQ,WACP,IAAIA,EAEJ,OAAI3D,OAAOskB,iBAAiB,MACpBtkB,OAAOspB,QAAQX,EAAU,sBAAwB7V,SAAS9S,OAAOiF,KAAK0jB,EAAU,uBAAyB,IACtG3oB,OAAOukB,eAAe,OAASvkB,OAAOspB,QAAQX,EAAU,eAC3D7V,SAAS9S,OAAOiF,KAAK0jB,EAAU,iBAEtChlB,EAAS4kB,gBAAgBlB,YAErBsB,IACHhlB,EAASA,EAASmP,SAAS9S,OAAO4F,IAAI+iB,EAAU,eAAiB7V,SAAS9S,OAAO4F,IAAI+iB,EAAU,mBAG5FE,IAEHllB,GADAA,GAAkBmP,SAAS9S,OAAO4F,IAAIijB,EAAc,YAClC/V,SAAS9S,OAAO4F,IAAIijB,EAAc,eAAiB/V,SAAS9S,OAAO4F,IAAIijB,EAAc,mBAGpGD,IACHjlB,EAASA,EAASmP,SAAS9S,OAAO4F,IAAIgjB,EAAY,gBAAkB9V,SAAS9S,OAAO4F,IAAIgjB,EAAY,oBAGjGE,IAEHnlB,GADAA,GAAkBmP,SAAS9S,OAAO4F,IAAIkjB,EAAc,YAClChW,SAAS9S,OAAO4F,IAAIkjB,EAAc,eAAiBhW,SAAS9S,OAAO4F,IAAIkjB,EAAc,mBAKzGnlB,GAAkB,EAGnB,IAID3D,OAAO2B,GAAG4M,EAAS,wBAAyB,WAAW,SAAS1K,GAC/D,GAAiB,IAAbA,EAAE0lB,QAIL,OAHAd,EAAgBla,GAChB1K,EAAE6Q,kBAEK,CAET,IAEA1U,OAAO2B,GAAG4M,EAAS,0BAA2B,SAAS,SAAS1K,GAC/D4kB,EAAgBla,EACjB,IACD,EAEIka,EAAkB,SAASla,GAC9B,IAAIib,EAAaxpB,OAAO4C,KAAK2L,EAAS,aAClCoa,EAAW3oB,OAAO4C,KAAK2L,EAAS,WAC1Bkb,EAAWzpB,OAAO4C,KAAK2L,EAAS,YAEpC,GAA8B,IAA1Bkb,EAASnrB,MAAMgC,OAAnB,CAIN,IAAIopB,EAAOhtB,SAASkP,cAAc,OAClC5L,OAAOoH,SAASsiB,EAAM,2CAEtB,IAiBIjb,EAjBA5C,EAAO,GACXA,GAAQ,0CACRA,GAAQ,UACRA,GAAQ,2DACRA,GAAQ,gGACRA,GAAQ,WACRA,GAAQ,sDACRA,GAAQ,2DACRA,GAAQ,WACRA,GAAQ,SACRA,GAAQ,oHAAsH4d,EAASnrB,MAAQ,SAE/I0B,OAAOojB,QAAQsG,EAAM7d,GACrB2d,EAAWpa,YAAYsa,GACvBD,EAASnrB,MAAQ,GACjBqqB,EAASta,UAAYyE,SAAS9S,OAAO4F,IAAI4jB,EAAY,YAGjD/a,EAAKzO,OAAOrI,KAAKgxB,GAAUxkB,IAAI,QAClCsK,EAAGE,SAGJjG,YAAW,WACV,IAsBI+F,EAtBAib,EAAOhtB,SAASkP,cAAc,OAClC5L,OAAOoH,SAASsiB,EAAM,6CAgBtB1pB,OAAOojB,QAAQsG,EAFf7d,qgBAGA2d,EAAWpa,YAAYsa,GACvBD,EAASnrB,MAAQ,GACjBqqB,EAASta,UAAYyE,SAAS9S,OAAO4F,IAAI4jB,EAAY,YAGjD/a,EAAKzO,OAAOrI,KAAKgxB,GAAUxkB,IAAI,QAClCsK,EAAGE,QAEL,GAAG,IAtDG,CAuDP,EAGO,CACNxN,KAAM,SAAS4X,GAEdoP,EAAMnoB,OAAO6jB,QAAQ9K,IAGsB,kBAAvC4Q,UAAUpyB,OAAOC,SAASoyB,WAAwE,sBAAvCD,UAAUpyB,OAAOC,SAASoyB,WACxFlhB,YAAW,WACD,IAAKmhB,SAASC,UAAU,qBAAsB,CAC1C,IAAIC,EAAU,IAAIC,MAAK,IAAIA,MAAOC,UAAY,MAE1DJ,SAASK,UAAU,oBAAqB,EAAG,CAAEH,QAASA,IAElD/pB,OAAO6jB,QAAQ,2BAClB7jB,OAAO6jB,QAAQ,0BAA0BxB,OAElC,CACJ,GAAG,IAEL,EAEA8H,MAAO,SAAS5b,GACZ4Z,EAAM5Z,EACV,IAMPoU,EAAOC,QAAU8F,C,yBCtKlB,IAEQzB,EACAmD,EAHJC,EAmFO,CACHlpB,KAAM,SAAS4X,IACXkO,EAAWjnB,OAAO6jB,QAAQ9K,MA/EtB,WACRqR,EAAmB,IAAIE,YAAYrD,EAAU,CACzCsD,SAAS,EACTC,UAAW,YACX9J,UAAW,QACX+J,QAAS,sBACTC,SAAU,yBAGd,IAAIznB,EAASjD,OAAO4C,KAAKqkB,EAAU,qBAC/B0D,EAAU3qB,OAAO4C,KAAKqkB,EAAU,sBAChC2D,EAAU5qB,OAAO4C,KAAKqkB,EAAU,sBAChC/jB,EAASlD,OAAO4C,KAAKqkB,EAAU,qBAEnCjnB,OAAO+oB,WAAW6B,EAAS,CACvBC,kBAAkB,EAClB1B,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,IAAIA,EAASmP,SAAS9S,OAAO4N,cAAcjK,QA6B3C,OA3BIV,IACAU,GAAkBmP,SAAS9S,OAAOwoB,aAAavlB,IAC/CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,cAC9CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,kBAG9C0nB,IACAhnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,cAC/ChnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,kBAG/CC,IACAjnB,GAAkBmP,SAAS9S,OAAO4F,IAAIglB,EAAS,cAC/CjnB,GAAkBmP,SAAS9S,OAAO4F,IAAIglB,EAAS,kBAG/C1nB,IACAS,GAAkBmP,SAAS9S,OAAOwoB,aAAatlB,IAC/CS,GAAkBmP,SAAS9S,OAAO4F,IAAI1C,EAAQ,cAC9CS,GAAkBmP,SAAS9S,OAAO4F,IAAI1C,EAAQ,kBAGlDS,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,gBAChDtjB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,mBAE9B,CAGtB,IAGqB,qBAAd6D,WAAkD,IAArBA,UAAUxqB,QAC9CwqB,UAAUnpB,GAAG,QAAQ,WACjB,IAAIooB,EAAU,IAAIC,MAAK,IAAIA,MAAOC,UAAY,MAC9CJ,SAASK,UAAU,sBAAuB,EAAG,CAACH,QAASA,GAC3D,GAER,CA4BQ5B,GAzByC,kBAAvCwB,UAAUpyB,OAAOC,SAASoyB,WAAwE,sBAAvCD,UAAUpyB,OAAOC,SAASoyB,WAI3FlhB,YAAW,WACP,IAAKmhB,SAASC,UAAU,uBAAwB,CAC5C,IAAIC,EAAU,IAAIC,MAAK,IAAIA,MAAOC,UAAY,KAC9CJ,SAASK,UAAU,sBAAuB,EAAG,CAAEH,QAASA,IACxB,qBAArBK,GACPA,EAAiBnV,MAEzB,CACJ,GAAG,KAiBH,GAMP0N,EAAOC,QAAUyH,C,yBCtGlB,IAAIU,EAuGO,CACH5pB,KAAM,SAASoN,EAAS9Q,IAtGN,SAAS8Q,GAC3B,IAAIyc,EAAWzc,EAKf,GAJwB,qBAAbyc,IACPA,EAAWtuB,SAASuuB,iBAAiB,2EAGrCD,GAAYA,EAAS1qB,OAAS,EAC9B,IAAK,IAAI+D,EAAI,EAAGA,EAAI2mB,EAAS1qB,SAAU+D,EAAG,CACtC,IAAI6mB,EAAUF,EAAS3mB,GACnB8mB,EAAOnrB,OAAO4C,KAAKsoB,EAAS,iBAEhC,GAAIC,EAAM,CACN,IAAIC,EAAY,IAAIC,YAAYF,EAAM,CAClC1sB,OAAQ,SAASyH,GACb,IAAIglB,EAAUhlB,EAAQM,QAAQ,YAC1B8kB,EAAKtrB,OAAO4C,KAAKsoB,EAAS,kCAM9B,OAJKI,IACDA,EAAKtrB,OAAO4C,KAAKsoB,EAAS,kBAGvBI,CACX,IAGJF,EAAUzpB,GAAG,WAAW,SAASkC,GAC7B7D,OAAOoH,SAASvD,EAAEqC,QAAS,kBAC3BrC,EAAE0nB,iBAEF7iB,YAAW,WACP1I,OAAO8H,YAAYjE,EAAEqC,QAAS,iBAClC,GAAG,IACP,GACJ,CACJ,CAER,CAmEQslB,CAAgBjd,GAjEF,SAASA,GAI3B,GAAwB,qBADpByc,EAAWzc,GAEX,IAAIyc,EAAWtuB,SAASuuB,iBAAiB,4BAG7C,GAAID,GAAYA,EAAS1qB,OAAS,EAC9B,IAAK,IAAI+D,EAAI,EAAGA,EAAI2mB,EAAS1qB,SAAU+D,EAAG,CACtC,IAAI6mB,EAAUF,EAAS3mB,GACnBoS,EAASzW,OAAO4C,KAAKsoB,EAAS,mBAC9BC,EAAOnrB,OAAO4C,KAAKsoB,EAAS,iBAwBhC,GArBAlrB,OAAOyjB,SAAShN,EAAQ,SAAS,WAC7B,IAAIyU,EAAU7qB,KAAKmG,QAAQ,YACvBilB,EAAQzrB,OAAO4C,KAAKsoB,EAAS,iBAC7BrI,EAAMxiB,KAENL,OAAO0O,SAASrO,KAAM,mBACtBL,OAAO0rB,QAAQD,EAAM,KAAK,WACtBzrB,OAAO8H,YAAY+a,EAAK,mBACxB7iB,OAAO8H,YAAY2jB,EAAM,mBACzBzrB,OAAOyG,KAAKglB,EAChB,KAEAzrB,OAAOoH,SAASqkB,EAAM,mBACtBzrB,OAAOoH,SAAS/G,KAAM,mBACtBL,OAAO2rB,UAAUF,EAAM,KAAK,WACxBzrB,OAAOiV,KAAKwW,EAChB,IAER,IAGIN,EAAM,CACN,IAAIC,EAAY,IAAIC,YAAYF,EAAM,CAClC1sB,OAAQ,SAASyH,GACb,IAAIglB,EAAUhlB,EAAQM,QAAQ,YAC1B8kB,EAAKtrB,OAAO4C,KAAKsoB,EAAS,kCAM9B,OAJKI,IACDA,EAAKtrB,OAAO4C,KAAKsoB,EAAS,kBAGvBI,CACX,IAGJF,EAAUzpB,GAAG,WAAW,SAASkC,GAC7B7D,OAAOoH,SAASvD,EAAEqC,QAAS,kBAC3BrC,EAAE0nB,iBAEF7iB,YAAW,WACP1I,OAAO8H,YAAYjE,EAAEqC,QAAS,iBAClC,GAAG,IACP,GACJ,CACJ,CAER,CAKQ0lB,CAAgBrd,EACpB,GAKuD,qBAAnBoU,EAAOC,UAC/CD,EAAOC,QAAUmI,E,yBCjHrB,IAEQ9D,EAFJ4E,EA+CO,CACH1qB,KAAM,SAAS4X,GA1CP,IACJ9V,EACA0nB,GAyCA1D,EAAWjnB,OAAO6jB,QAAQ9K,MA1C1B9V,EAASjD,OAAO4C,KAAKqkB,EAAU,qBAC/B0D,EAAU3qB,OAAO4C,KAAKqkB,EAAU,sBAEjB,IAAIqD,YAAYrD,EAAU,CACzCsD,SAAS,EACTC,UAAW,YACX9J,UAAW,QACX+J,QAAS,yBACTC,SAAU,4BAGd1qB,OAAO+oB,WAAW4B,EAAS,CACvBE,kBAAkB,EAClB1B,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,IAAIA,EAASmP,SAAS9S,OAAO4N,cAAcjK,QAkB3C,OAhBIV,IACAU,GAAkBmP,SAAS9S,OAAOwoB,aAAavlB,IAC/CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,cAC9CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,kBAG9C0nB,IACAhnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,cAC/ChnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,kBAGnDhnB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,gBAChDtjB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,mBAE9B,CAGtB,IAeJ,EAEA6E,WAAY,WACR,OAAO7E,CACX,GAMPtE,EAAOC,QAAUiJ,C,yBCnElB,IAEQ5E,EAFJ8E,EA4DO,CACH5qB,KAAM,SAAS4X,IACXkO,EAAWjnB,OAAO6jB,QAAQ9K,KAxDtB,WACW,IAAIuR,YAAYrD,EAAU,CACzCsD,SAAS,EACTC,UAAW,YACX9J,UAAW,QACX+J,QAAS,sBACTC,SAAU,yBAGd,IAAIznB,EAASjD,OAAO4C,KAAKqkB,EAAU,qBAC/B0D,EAAU3qB,OAAO4C,KAAKqkB,EAAU,sBAChC2D,EAAU5qB,OAAO4C,KAAKqkB,EAAU,sBAChC/jB,EAASlD,OAAO4C,KAAKqkB,EAAU,qBAEnCjnB,OAAO+oB,WAAW6B,EAAS,CACvBC,kBAAkB,EAClB1B,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,IAAIA,EAASmP,SAAS9S,OAAO4N,cAAcjK,QA6B3C,OA3BIV,IACAU,GAAkBmP,SAAS9S,OAAOwoB,aAAavlB,IAC/CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,cAC9CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,kBAG9C0nB,IACAhnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,cAC/ChnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,kBAG/CC,IACAjnB,GAAkBmP,SAAS9S,OAAO4F,IAAIglB,EAAS,cAC/CjnB,GAAkBmP,SAAS9S,OAAO4F,IAAIglB,EAAS,kBAG/C1nB,IACAS,GAAkBmP,SAAS9S,OAAOwoB,aAAatlB,IAC/CS,GAAkBmP,SAAS9S,OAAO4F,IAAI1C,EAAQ,cAC9CS,GAAkBmP,SAAS9S,OAAO4F,IAAI1C,EAAQ,kBAGlDS,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,gBAChDtjB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,mBAE9B,CAGtB,GAER,CAYQkB,EACJ,GAMPxF,EAAOC,QAAUmJ,C,wBC5ElB,IAEQ9E,EAFJ+E,EA+CO,CACH7qB,KAAM,SAAS4X,GA1CP,IACJ9V,EACA0nB,GAyCA1D,EAAWjnB,OAAO6jB,QAAQ9K,MA1C1B9V,EAASjD,OAAO4C,KAAKqkB,EAAU,qBAC/B0D,EAAU3qB,OAAO4C,KAAKqkB,EAAU,sBAEjB,IAAIqD,YAAYrD,EAAU,CACzCsD,SAAS,EACTC,UAAW,YACX9J,UAAW,QACX+J,QAAS,+BACTC,SAAU,kCAGd1qB,OAAO+oB,WAAW4B,EAAS,CACvBE,kBAAkB,EAClB1B,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,IAAIA,EAASmP,SAAS9S,OAAO4N,cAAcjK,QAkB3C,OAhBIV,IACAU,GAAkBmP,SAAS9S,OAAOwoB,aAAavlB,IAC/CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,cAC9CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,kBAG9C0nB,IACAhnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,cAC/ChnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,kBAGnDhnB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,gBAChDtjB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,mBAE9B,CAGtB,IAeJ,EAEA6E,WAAY,WACR,OAAO7E,CACX,GAMPtE,EAAOC,QAAUoJ,C,mCCjEV/E,EAEAgF,EACAC,EACAC,EAGAC,E,WATJC,GASID,EAAoB,WACpB,IAEInpB,EAASjD,OAAO4C,KAAKqkB,EAAU,qBAC/B0D,EAAU3qB,OAAO4C,KAAKqkB,EAAU,sBAEhCtjB,EAASmP,SAAS9S,OAAO4N,cAAcjK,QAkB3C,OAhBIV,IACAU,GAAkBmP,SAAS9S,OAAOwoB,aAAavlB,IAC/CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,cAC9CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,kBAG9C0nB,IACAhnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,cAC/ChnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,kBAGnDhnB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,eAChDtjB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,kBAEhDtjB,GAAkB,CAGtB,EAsDO,CACHxC,KAAM,SAAS4X,GACXkO,EAAWjnB,OAAO6jB,QAAQ9K,GAC1BkT,EAAwBjsB,OAAO6jB,QAAQ,gCACvCqI,EAAelsB,OAAO6jB,QAAQ,uBAC9BsI,EAAmBnsB,OAAO6jB,QAAQ,2BAxDnB,IAAIyG,YAAYrD,EAAU,CACzCsD,SAAS,EACTC,UAAW,YACX9J,UAAW,QACX+J,QAAS,uBACTC,SAAU,0BAKd1qB,OAAO+oB,WAAWkD,EAAuB,CACrChD,oBAAoB,EACpBE,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,OAAOyoB,GACX,IAKJpsB,OAAO+oB,WAAWmD,EAAc,CAC5BjD,oBAAoB,EACpBE,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,OAAOyoB,GACX,IAKJpsB,OAAO+oB,WAAWoD,EAAkB,CAChClD,oBAAoB,EACpBE,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,OAAOyoB,GACX,IAKJxsB,EAAEqnB,GAAUrkB,KAAK,wBAAwBjB,GAAG,gBAAgB,SAAUkC,GAClE7D,OAAOssB,aAAaL,GACpBjsB,OAAOssB,aAAaJ,GACpBlsB,OAAOssB,aAAaH,EACxB,GAiBA,IAMPxJ,EAAOC,QAAUyJ,C,yBC3GlB,IAEQpF,EAFJsF,EA0DO,CACHprB,KAAM,SAAS4X,GArDP,IACJ9V,EACA0nB,EACApyB,EACAi0B,GAkDAvF,EAAWjnB,OAAO6jB,QAAQ9K,MArD1B9V,EAASjD,OAAO4C,KAAKqkB,EAAU,qBAC/B0D,EAAU3qB,OAAO4C,KAAKqkB,EAAU,sBAChC1uB,EAAOyH,OAAO4C,KAAKqkB,EAAU,sBAC7BuF,EAAUxsB,OAAO4C,KAAKqkB,EAAU,yBAEjB,IAAIqD,YAAYrD,EAAU,CACzCsD,SAAS,EACTC,UAAW,YACX9J,UAAW,QACX+J,QAAS,wBACTC,SAAU,2BAGd1qB,OAAO+oB,WAAWyD,EAAS,CACvB3B,kBAAkB,EAClB1B,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,IAAIA,EAASmP,SAAS9S,OAAO4N,cAAcjK,QA2B3C,OAzBIV,IACAU,GAAkBmP,SAAS9S,OAAOwoB,aAAavlB,IAC/CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,cAC9CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,kBAG9C0nB,IACAhnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,cAC/ChnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,kBAG/C6B,IACA7oB,GAAkBmP,SAAS9S,OAAOwoB,aAAajwB,IAC/CoL,GAAkBmP,SAAS9S,OAAO4F,IAAIrN,EAAM,cAC5CoL,GAAkBmP,SAAS9S,OAAO4F,IAAIrN,EAAM,iBAE5CoL,GAAkBmP,SAAS9S,OAAO4F,IAAI4mB,EAAS,cAC/C7oB,GAAkBmP,SAAS9S,OAAO4F,IAAI4mB,EAAS,kBAGnD7oB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,gBAChDtjB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,mBAE9B,CAGtB,IAeJ,EAEA6E,WAAY,WACR,OAAO7E,CACX,GAMPtE,EAAOC,QAAU2J,C,yBC9ElB,IAEQtF,EAFJwF,EA+CO,CACHtrB,KAAM,SAAS4X,GA1CP,IACJ9V,EACA0nB,GAyCA1D,EAAWjnB,OAAO6jB,QAAQ9K,MA1C1B9V,EAASjD,OAAO4C,KAAKqkB,EAAU,qBAC/B0D,EAAU3qB,OAAO4C,KAAKqkB,EAAU,sBAEjB,IAAIqD,YAAYrD,EAAU,CACzCsD,SAAS,EACTC,UAAW,YACX9J,UAAW,QACX+J,QAAS,sBACTC,SAAU,yBAGd1qB,OAAO+oB,WAAW4B,EAAS,CACvBE,kBAAkB,EAClB1B,sBAAsB,EACtBC,oBAAoB,EACpBzlB,OAAQ,WACJ,IAAIA,EAASmP,SAAS9S,OAAO4N,cAAcjK,QAkB3C,OAhBIV,IACAU,GAAkBmP,SAAS9S,OAAOwoB,aAAavlB,IAC/CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,cAC9CU,GAAkBmP,SAAS9S,OAAO4F,IAAI3C,EAAQ,kBAG9C0nB,IACAhnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,cAC/ChnB,GAAkBmP,SAAS9S,OAAO4F,IAAI+kB,EAAS,kBAGnDhnB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,gBAChDtjB,GAAkBmP,SAAS9S,OAAO4F,IAAIqhB,EAAU,mBAE9B,CAGtB,IAeJ,EAEA6E,WAAY,WACR,OAAO7E,CACX,GAMPtE,EAAOC,QAAU6J,C,yBCnElB,IAEQxF,EAFJyF,EAcI,CACNvrB,KAAM,SAAS4X,IACLkO,EAAWjnB,OAAO6jB,QAAQ9K,KATpB,IAAI4T,YAAY1F,EAAU,CAClC3rB,OAAQ,IACRqpB,MAAO,KAef,EAEMmH,WAAY,WACR,OAAO7E,CACX,GAMPtE,EAAOC,QAAU8J,C,8CC/BlB,MAAME,EAAiB,WAErB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAS,GAETC,GAAa,EACbC,GAAW,EACXC,GAAgB,EACpB,MACMC,EAAgB,qCAChBC,EAAe,0BAafC,EAAgB,WACpBH,GAAgB,EAChBztB,OAAO8H,YAAYslB,EAAqBM,GAEpCV,IACED,EAAOzuB,MAAMgC,OAjBF,EAkBbN,OAAOyG,KAAKumB,GAEZhtB,OAAOiV,KAAK+X,EAAY,QAG9B,EAEMa,EAAgB,WAChBV,IAA0BntB,OAAO0O,SAASwe,EAAiB,UAC7DttB,EAAEutB,GAAuBW,SAAS,UAClCluB,EAAEutB,GAAuBW,SAAS,UAEtC,EAEMC,EAAgB,WAChBZ,GAAyBntB,OAAO0O,SAASwe,EAAiB,SAC5DttB,EAAEutB,GAAuBW,SAAS,SAEtC,EAEME,EAAiB,WACrB,GAAIT,GAAcD,IAAWP,EAAOzuB,MAMlC,OALAsvB,IACA5tB,OAAOoH,SAASylB,EAASc,GACzBE,SACA7tB,OAAOssB,aAAaW,GAKtBK,EAASP,EAAOzuB,MAEhB0B,OAAO8H,YAAY+kB,EAASc,GA9C5BF,GAAgB,EAChBztB,OAAOoH,SAASgmB,EAAqBM,GAEjCV,GACFhtB,OAAOyG,KAAKumB,GA4Cde,IAEAnuB,EAAEqS,KAAK,CACLlW,IAAM,8BAA6BuxB,IACnCzzB,KAAM,MACNsC,QAAS,CACP,eAAgB,mBAChB,eAAgBO,SAASuxB,KAAKzuB,cAAc,2BAA2BmrB,SAEzEuD,YAAa,cACbC,QAAS,SAAUtyB,GACjB0xB,GAAa,EACbK,IACA5tB,OAAOoH,SAASylB,EAASc,GACzB3tB,OAAOojB,QAAQ6J,EAAgBpxB,EAAIgQ,MACnCgiB,IACA7tB,OAAOssB,aAAaW,EACtB,EACAnwB,MAAO,WACLywB,GAAa,EACbK,IACA5tB,OAAOoH,SAASylB,EAASc,GACzB3tB,OAAOojB,QAAQ6J,EAAgB,8FAC/BY,IACA7tB,OAAOssB,aAAaW,EACtB,GAEJ,EAEMmB,EAAgB,SAAUvqB,GAC9BkpB,EAAOzuB,MAAQ,GACfgvB,EAAS,GACTC,GAAa,EACbvtB,OAAOyG,KAAKumB,GACZhtB,OAAO8H,YAAY+kB,EAASc,GAC5BI,GACF,EAEMM,EAAgB,WACpB,GAAItB,EAAOzuB,MAAMgC,OA3FA,EA+Ff,OAHAstB,SACAG,IAKmB,GAAjBN,IAIAD,GACFhlB,aAAaglB,GAGfA,EAAW9kB,YAAW,WACpBslB,GACF,GA/GsB,KAgHxB,EAGA,MAAO,CACL7sB,KAAM,SAAU4X,GACd8T,EAAU7sB,OAAO6jB,QAAQ9K,GAEpB8T,IAILC,EAAQ9sB,OAAO4C,KAAKiqB,EAAS,sBAC7BE,EAAS/sB,OAAO4C,KAAKiqB,EAAS,iBAC9BG,EAAahtB,OAAO4C,KAAKiqB,EAAS,uBAClCI,EAAiBjtB,OAAO4C,KAAKiqB,EAAS,yBACtCK,EAAkBltB,OAAO4C,KAAKiqB,EAAS,kBACvCM,EAAwBntB,OAAO4C,KAAKiqB,EAAS,4BAC7CQ,EAAcrtB,OAAO4C,KAAKiqB,EAAS,gBACnCO,EAAsBptB,OAAO4C,KAAKiqB,EAAS,oCAG3C7sB,OAAOyjB,SAASsJ,EAAQ,QAASsB,GACjCruB,OAAOyjB,SAASsJ,EAAQ,QAASsB,GAGjCvB,EAAMwB,WAAa,SAAUzqB,GAEhB,KADCA,EAAE0qB,UAAY1qB,EAAE0lB,SAAW,IAErC1lB,EAAE6Q,gBAEN,EAEA1U,OAAOyjB,SAASuJ,EAAY,QAASoB,GACvC,EAEJ,EAIEzL,EAAOC,QAAUgK,C,kBC3KnBr1B,OAAOi3B,cAAgB,CAAEC,YAAa,CAAEpzB,GAAI,IAAKqzB,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAMC,IAAK,MAAQC,OAAQ,CAAEpkB,MAAO,CAAEqkB,KAAM,CAAEC,MAAO,UAAWC,QAAS,UAAWC,UAAW,UAAWf,QAAS,UAAWtb,KAAM,UAAWsc,QAAS,UAAWC,OAAQ,UAAWC,MAAO,UAAWC,KAAM,WAAaD,MAAO,CAAEL,MAAO,UAAWC,QAAS,UAAWC,UAAW,UAAWf,QAAS,UAAWtb,KAAM,UAAWsc,QAAS,UAAWC,OAAQ,UAAWC,MAAO,UAAWC,KAAM,WAAaC,QAAS,CAAEP,MAAO,UAAWC,QAAS,UAAWC,UAAW,UAAWf,QAAS,UAAWtb,KAAM,UAAWsc,QAAS,UAAWC,OAAQ,UAAWC,MAAO,UAAWC,KAAM,YAAeE,KAAM,CAAE,WAAY,UAAW,WAAY,UAAW,WAAY,UAAW,WAAY,UAAW,WAAY,UAAW,WAAY,UAAW,WAAY,UAAW,WAAY,UAAW,WAAY,YAAe,cAAe,WAC53Bj4B,OAAOqX,iBAAmBjP,EAAQ,OAClCpI,OAAOyI,OAASL,EAAQ,OACxBpI,OAAO2I,MAAQP,EAAQ,OACvBpI,OAAO+vB,OAAS3nB,EAAQ,OACxBpI,OAAOsyB,SAAWlqB,EAAQ,OAC1BpI,OAAOk4B,SAAW9vB,EAAQ,OAC1BpI,OAAOm4B,SAAW/vB,EAAQ,OAC1BpI,OAAOo4B,aAAehwB,EAAQ,OAC9BpI,OAAOq4B,OAASjwB,EAAQ,OACxBpI,OAAO+yB,YAAc3qB,EAAQ,OAC7BpI,OAAOo1B,YAAchtB,EAAQ,OAC7BpI,OAAOs4B,SAAWlwB,EAAQ,MAC1BpI,OAAOu4B,SAAWnwB,EAAQ,OAC1BA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OAGRpI,OAAOw4B,cAAgBpwB,EAAQ,OAC/BpI,OAAOy4B,kBAAoBrwB,EAAQ,OACnCpI,OAAO04B,oBAAsBtwB,EAAQ,OACrCpI,OAAO24B,cAAgBvwB,EAAQ,OAC/BpI,OAAOgxB,gBAAkB5oB,EAAQ,OACjCpI,OAAO44B,eAAiBxwB,EAAQ,OAChCpI,OAAO6vB,eAAiBznB,EAAQ,OAChCpI,OAAO64B,mBAAqBzwB,EAAQ,MACpCpI,OAAO84B,qBAAuB1wB,EAAQ,OACtCpI,OAAO4vB,mBAAqBxnB,EAAQ,OACpCpI,OAAO6wB,sBAAwBzoB,EAAQ,OACvCpI,OAAOowB,kBAAoBhoB,EAAQ,OAGnCpI,OAAOmxB,aAAe/oB,EAAQ,OAC9BpI,OAAO8yB,kBAAoB1qB,EAAQ,OACnCpI,OAAOwzB,iBAAmBprB,EAAQ,OAClCpI,OAAOs0B,qBAAuBlsB,EAAQ,OACtCpI,OAAOw0B,uBAAyBpsB,EAAQ,OACxCpI,OAAOy0B,2BAA6BrsB,EAAQ,MAC5CpI,OAAO80B,mBAAqB1sB,EAAQ,OACpCpI,OAAOg1B,oBAAsB5sB,EAAQ,OACrCpI,OAAOk1B,kBAAoB9sB,EAAQ,OACnCpI,OAAOm1B,kBAAoB/sB,EAAQ,OACnCpI,OAAOq1B,eAAiBr1B,OAAO+4B,wBAA0B3wB,EAAQ,OAEjEA,EAAQ,M,iCChCN6hB,EATEphB,GAAGmwB,WAAWC,MAAU,GAAI,CAC1BC,KAAM,CAAC,iCAAS,qBAAO,iCAAS,iCAAS,iCAAS,2BAAQ,qBAAO,kCACjEC,UAAW,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAC/CC,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAC7CC,OAAQ,CAAC,iCAAS,uCAAU,qBAAO,iCAAS,qBAAO,2BAAQ,2BAAQ,uCAAU,uCAAU,6CAAW,uCAAU,kCAC5GC,YAAa,CAAC,qBAAO,qBAAO,qBAAO,qBAAO,qBAAO,qBAAO,qBAAO,qBAAO,qBAAO,qBAAO,qBAAO,sBAC3FC,MAAO,2BACPC,KAAK,E,8BCHX,IAAIC,EAAuB,EAAQ,MAEnC,SAASC,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3CtO,EAAOC,QAAU,WACf,SAASwO,EAAK/U,EAAOgV,EAAUC,EAAe95B,EAAU+5B,EAAcC,GACpE,GAAIA,IAAWR,EAAf,CAIA,IAAIS,EAAM,IAAItxB,MACZ,mLAKF,MADAsxB,EAAIv0B,KAAO,sBACLu0B,CAPN,CAQF,CAEA,SAASC,IACP,OAAON,CACT,CAHAA,EAAKO,WAAaP,EAMlB,IAAIQ,EAAiB,CACnBnP,MAAO2O,EACPS,OAAQT,EACRpS,KAAMoS,EACNhS,KAAMgS,EACN12B,OAAQ02B,EACRtU,OAAQsU,EACRU,OAAQV,EACRW,OAAQX,EAERY,IAAKZ,EACLa,QAASP,EACTnjB,QAAS6iB,EACTc,YAAad,EACbe,WAAYT,EACZhI,KAAM0H,EACNgB,SAAUV,EACVW,MAAOX,EACPY,UAAWZ,EACXa,MAAOb,EACPc,MAAOd,EAEPe,eAAgBvB,EAChBC,kBAAmBF,GAKrB,OAFAW,EAAec,UAAYd,EAEpBA,CACT,C,iBC/CEjP,EAAOC,QAAU,EAAQ,KAAR,E,wBCNnBD,EAAOC,QAFoB,8C,+BCP3BD,EAAOC,QAAU,EAAjB,M,+BCAA,SAAS+P,EAAQznB,GAAmV,OAAtOynB,EAArD,oBAAXC,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB3nB,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX0nB,QAAyB1nB,EAAI4nB,cAAgBF,QAAU1nB,IAAQ0nB,OAAOvT,UAAY,gBAAkBnU,CAAK,EAAYynB,EAAQznB,EAAM,CAEzXrQ,OAAOk4B,eAAenQ,EAAS,aAAc,CAC3CtkB,OAAO,IAETskB,EAAA,aAAkB,EAElB,IAAIoQ,EAUJ,SAAiC9nB,EAAK+nB,GAAe,IAAKA,GAAe/nB,GAAOA,EAAIgoB,WAAc,OAAOhoB,EAAO,GAAY,OAARA,GAAiC,WAAjBynB,EAAQznB,IAAoC,oBAARA,EAAsB,MAAO,CAAEkW,QAASlW,GAAS,IAAIioB,EAAQC,EAAyBH,GAAc,GAAIE,GAASA,EAAMnP,IAAI9Y,GAAQ,OAAOioB,EAAMhvB,IAAI+G,GAAQ,IAAImoB,EAAS,CAAC,EAAOC,EAAwBz4B,OAAOk4B,gBAAkBl4B,OAAO04B,yBAA0B,IAAK,IAAIz7B,KAAOoT,EAAO,GAAY,YAARpT,GAAqB+C,OAAOwkB,UAAUxE,eAAerZ,KAAK0J,EAAKpT,GAAM,CAAE,IAAImoB,EAAOqT,EAAwBz4B,OAAO04B,yBAAyBroB,EAAKpT,GAAO,KAAUmoB,IAASA,EAAK9b,KAAO8b,EAAKiE,KAAQrpB,OAAOk4B,eAAeM,EAAQv7B,EAAKmoB,GAAgBoT,EAAOv7B,GAAOoT,EAAIpT,EAAQ,CAAIu7B,EAAOjS,QAAUlW,EAASioB,GAASA,EAAMjP,IAAIhZ,EAAKmoB,GAAW,OAAOA,CAAQ,CAVxxBG,CAAwB,EAAQ,QAEzCC,EAAaC,EAAuB,EAAQ,OAE5CC,EAAoBD,EAAuB,EAAQ,OAEvD,SAASA,EAAuBxoB,GAAO,OAAOA,GAAOA,EAAIgoB,WAAahoB,EAAM,CAAEkW,QAASlW,EAAO,CAE9F,SAASkoB,EAAyBH,GAAe,GAAuB,oBAAZW,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQR,EAA2B,SAAkCH,GAAe,OAAOA,EAAca,EAAmBD,CAAmB,GAAGZ,EAAc,CAI9U,SAASc,IAA2Q,OAA9PA,EAAWl5B,OAAOK,QAAU,SAAUuD,GAAU,IAAK,IAAI4F,EAAI,EAAGA,EAAIib,UAAUhf,OAAQ+D,IAAK,CAAE,IAAIhD,EAASie,UAAUjb,GAAI,IAAK,IAAIvM,KAAOuJ,EAAcxG,OAAOwkB,UAAUxE,eAAerZ,KAAKH,EAAQvJ,KAAQ2G,EAAO3G,GAAOuJ,EAAOvJ,GAAU,CAAE,OAAO2G,CAAQ,EAAUs1B,EAAS9mB,MAAM5M,KAAMif,UAAY,CAE5T,SAAS0U,EAAyB3yB,EAAQ4yB,GAAY,GAAc,MAAV5yB,EAAgB,MAAO,CAAC,EAAG,IAAkEvJ,EAAKuM,EAAnE5F,EAEzF,SAAuC4C,EAAQ4yB,GAAY,GAAc,MAAV5yB,EAAgB,MAAO,CAAC,EAAG,IAA2DvJ,EAAKuM,EAA5D5F,EAAS,CAAC,EAAOy1B,EAAar5B,OAAOygB,KAAKja,GAAqB,IAAKgD,EAAI,EAAGA,EAAI6vB,EAAW5zB,OAAQ+D,IAAOvM,EAAMo8B,EAAW7vB,GAAQ4vB,EAAS91B,QAAQrG,IAAQ,IAAa2G,EAAO3G,GAAOuJ,EAAOvJ,IAAQ,OAAO2G,CAAQ,CAFhN01B,CAA8B9yB,EAAQ4yB,GAAuB,GAAIp5B,OAAOu5B,sBAAuB,CAAE,IAAIC,EAAmBx5B,OAAOu5B,sBAAsB/yB,GAAS,IAAKgD,EAAI,EAAGA,EAAIgwB,EAAiB/zB,OAAQ+D,IAAOvM,EAAMu8B,EAAiBhwB,GAAQ4vB,EAAS91B,QAAQrG,IAAQ,GAAkB+C,OAAOwkB,UAAUiV,qBAAqB9yB,KAAKH,EAAQvJ,KAAgB2G,EAAO3G,GAAOuJ,EAAOvJ,GAAQ,CAAE,OAAO2G,CAAQ,CAI3e,SAAS81B,EAAwBlY,GAC/B,IAAIxjB,EAAkBwjB,EAAMxjB,gBACxB0E,EAAS8e,EAAM9e,OACfi3B,EAAYnY,EAAMmY,UAClBC,EAAyBpY,EAAMoY,uBAC/Bh3B,EAAU4e,EAAM5e,QAChBi3B,EAA0BrY,EAAMqY,wBAChCC,EAAUtY,EAAMsY,QAChBC,EAAWvY,EAAMuY,SACjBC,EAAOb,EAAyB3X,EAAO,CAAC,kBAAmB,SAAU,YAAa,yBAA0B,UAAW,0BAA2B,UAAW,aAY7JyY,GAVmB,EAAInB,EAAkBvS,SAAS,CACpD0T,IAAKH,EACLD,wBAAyBA,EACzB77B,gBAAiBA,EACjB0E,OAAQA,EACRi3B,UAAWA,EACXC,uBAAwBA,EACxBh3B,QAASA,EACTm3B,SAAUA,IAEeE,IAE3B,OAAoB9B,EAAO5R,QAAQxV,cAAc,QAASmoB,EAAS,CACjEe,IAAKA,GACJD,GACL,CAEAN,EAAwBQ,UAAY,CAClCx3B,OAAQk2B,EAAWrS,QAAQ0Q,OAC3B0C,UAAWf,EAAWrS,QAAQ6Q,QAAQwB,EAAWrS,QAAQ0Q,QACzDgD,IAAKrB,EAAWrS,QAAQkR,UAAU,CAClCmB,EAAWrS,QAAQhC,KACnBqU,EAAWrS,QAAQmR,MAAM,CACvByC,QAASvB,EAAWrS,QAAQ4Q,QAE9B0C,wBAAyBjB,EAAWrS,QAAQ0Q,OAC5Cj5B,gBAAiB46B,EAAWrS,QAAQhC,KACpCqV,uBAAwBhB,EAAWrS,QAAQ0Q,OAC3Cr0B,QAASg2B,EAAWrS,QAAQmR,MAAM,CAChC0C,sBAAuBxB,EAAWrS,QAAQtE,OAC1CoY,OAAQzB,EAAWrS,QAAQtE,OAC3BtlB,SAAUi8B,EAAWrS,QAAQtE,OAC7BxhB,OAAQm4B,EAAWrS,QAAQ1mB,OAC3BjD,OAAQg8B,EAAWrS,QAAQtE,OAC3BqY,OAAQ1B,EAAWrS,QAAQ1mB,OAC3B06B,aAAc3B,EAAWrS,QAAQtE,OACjCxjB,MAAOm6B,EAAWrS,QAAQ6Q,QAAQwB,EAAWrS,QAAQ0Q,UAEvD8C,SAAUnB,EAAWrS,QAAQ0Q,QAG/B,IAAIuD,GAAwB,EAAIrC,EAAOsC,aAAY,SAAUjZ,EAAOyY,GAClE,OAAoB9B,EAAO5R,QAAQxV,cAAc2oB,EAAyBR,EAAS,CAAC,EAAG1X,EAAO,CAC5FsY,QAASG,IAEb,IAEAlS,EAAA,QAAkByS,C,6BCnFlBx6B,OAAOk4B,eAAenQ,EAAS,aAAc,CAC3CtkB,OAAO,IAETskB,EAAQ2S,gCAA6B,EAErC3S,EAAQ2S,2BADyB,yC,+BCDjC16B,OAAOk4B,eAAenQ,EAAS,UAAW,CACxC4S,YAAY,EACZrxB,IAAK,WACH,OAAOsxB,EAAyBrU,OAClC,IASF,IAAIqU,EAA2B/B,EAAuB,EAAQ,QAE1DgC,EAAmBhC,EAAuB,EAAQ,OAEtD,SAASA,EAAuBxoB,GAAO,OAAOA,GAAOA,EAAIgoB,WAAahoB,EAAM,CAAEkW,QAASlW,EAAO,C,8BCpB9F,SAASynB,EAAQznB,GAAmV,OAAtOynB,EAArD,oBAAXC,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB3nB,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX0nB,QAAyB1nB,EAAI4nB,cAAgBF,QAAU1nB,IAAQ0nB,OAAOvT,UAAY,gBAAkBnU,CAAK,EAAYynB,EAAQznB,EAAM,CAEzXrQ,OAAOk4B,eAAenQ,EAAS,aAAc,CAC3CtkB,OAAO,IAETskB,EAAA,QAsBA,SAAyBvG,GACvB,IAAIyY,EAAMzY,EAAMyY,IACZj8B,EAAkBwjB,EAAMxjB,gBACxB0E,EAAS8e,EAAM9e,OACfo4B,EAAmBtZ,EAAMmY,UACzBA,OAAiC,IAArBmB,EAA8B,SAAWA,EACrDC,EAAwBvZ,EAAMoY,uBAC9BA,OAAmD,IAA1BmB,EAAmC,eAAiBA,EAC7EC,EAAiBxZ,EAAM5e,QAGvBq4B,GAFJD,OAAoC,IAAnBA,EAA4B,CAAC,EAAIA,GAERv8B,MACtCA,OAAiC,IAAzBw8B,EAAkC,CAAC,YAAcA,EACzDb,EAAwBY,EAAeZ,sBACvCc,EAAwBF,EAAen4B,OACvCA,OAAmC,IAA1Bq4B,EAAmC,CAAC,qBAAsB,oBAAqB,WAAY,qBAAuBA,EAC3Hb,EAASW,EAAeX,OACxBz3B,EArBN,SAAkC4D,EAAQ4yB,GAAY,GAAc,MAAV5yB,EAAgB,MAAO,CAAC,EAAG,IAAkEvJ,EAAKuM,EAAnE5F,EAEzF,SAAuC4C,EAAQ4yB,GAAY,GAAc,MAAV5yB,EAAgB,MAAO,CAAC,EAAG,IAA2DvJ,EAAKuM,EAA5D5F,EAAS,CAAC,EAAOy1B,EAAar5B,OAAOygB,KAAKja,GAAqB,IAAKgD,EAAI,EAAGA,EAAI6vB,EAAW5zB,OAAQ+D,IAAOvM,EAAMo8B,EAAW7vB,GAAQ4vB,EAAS91B,QAAQrG,IAAQ,IAAa2G,EAAO3G,GAAOuJ,EAAOvJ,IAAQ,OAAO2G,CAAQ,CAFhN01B,CAA8B9yB,EAAQ4yB,GAAuB,GAAIp5B,OAAOu5B,sBAAuB,CAAE,IAAIC,EAAmBx5B,OAAOu5B,sBAAsB/yB,GAAS,IAAKgD,EAAI,EAAGA,EAAIgwB,EAAiB/zB,OAAQ+D,IAAOvM,EAAMu8B,EAAiBhwB,GAAQ4vB,EAAS91B,QAAQrG,IAAQ,GAAkB+C,OAAOwkB,UAAUiV,qBAAqB9yB,KAAKH,EAAQvJ,KAAgB2G,EAAO3G,GAAOuJ,EAAOvJ,GAAQ,CAAE,OAAO2G,CAAQ,CAqB3du1B,CAAyB6B,EAAgB,CAAC,QAAS,wBAAyB,SAAU,WAChGG,EAAwB3Z,EAAMqY,wBAC9BA,OAAoD,IAA1BsB,EAAmCC,EAAWV,2BAA6BS,EACrGpB,EAAWvY,EAAMuY,SAEjBsB,GAAW,EAAIlD,EAAOmD,QAAQ,MAC9B9S,GAAQ,EAAI2P,EAAOmD,QAAQ,MAC3BC,GAAkB,EAAIpD,EAAOmD,QAAQ,MACrCE,GAAe,EAAIrD,EAAOmD,QAAQ,MAClCG,EAAqB1B,EAAW,aAAa2B,OAAO3B,GAAY,GAChE4B,EAAsB,GAAGD,OAAO7B,EAAyB,eAAe6B,OAAO/B,EAAW,SAAS+B,OAAOh5B,GAAQg5B,OAAOD,GACzHG,GAAmB,EAAIzD,EAAOl6B,cAAa,WAC7C,OAAO,EAAI49B,EAAOC,qBAAqBjC,EAAyB8B,EAClE,GAAG,CAAC9B,EAAyB8B,IAmF7B,OAlFA,EAAIxD,EAAO4D,YAAW,WACpB,IAAIC,EAASC,EAAcA,EAAc,CAAC,EAAGr5B,GAAU,CAAC,EAAG,CACzDC,OAAQA,EACRpE,MAAOA,EACP47B,OAAQA,IAOV,GAJID,IACF4B,EAAO5B,sBAAwBA,IAG7BmB,EAAgBpB,SAAYkB,EAASlB,SAAY0B,EAAOK,UAA5D,CACIjC,IAAQA,EAAIE,UAASF,EAAIE,QAAUkB,EAASlB,SAEhD,IAAIgC,EAAqB,WACvB,IAAIC,EAEJ,MAAsB,qBAAXC,OAA+Bpf,QAAQhb,MAAM,kEACjB,QAAhCm6B,EAAeC,OAAOC,YAAmC,IAAjBF,GAA2BA,EAAaG,QAClFlB,EAASlB,mBAAmBqC,iBAAyBvf,QAAQhb,MAAM,wCACxEs5B,EAAgBpB,QAAU,IAAIkC,OAAOC,KAAKC,OAAO95B,aAAa44B,EAASlB,QAAS6B,QAE5ET,EAAgBpB,UAClB3R,EAAM2R,QAAUoB,EAAgBpB,QAAQsC,YAAY,iBAAiB,WAC/Dz+B,GAAmBu9B,GAAmBA,EAAgBpB,SACxDn8B,EAAgBu9B,EAAgBpB,QAAQuC,WAAYrB,EAASlB,QAASoB,EAAgBpB,QAE1F,OATqGld,QAAQhb,MAAM,yCAWvH,EAUA,OARIS,EACFk5B,IAAmB55B,MAAK,WACtB,OAAOm6B,GACT,IAEAA,IAGK,WACL,OAAO3T,EAAM2R,QAAU3R,EAAM2R,QAAQnyB,cAAW0G,CAClD,CA9B6E,CA+B/E,GAAG,KAEH,EAAIypB,EAAO4D,YAAW,WACpB,IAAIY,GAGqB,OAAnBxE,EAAO5R,cAAuC,IAAnB4R,EAAO5R,SAAoE,QAA7CoW,EAAiBxE,EAAO5R,QAAQqW,eAAwC,IAAnBD,IAA6BA,EAAeE,WAAW,QAAUhB,EAAOK,WAAax/B,OAAOogC,kBAAoBzB,EAASlB,SAAWkB,EAASlB,mBAAmBqC,mBAClRhB,EAAarB,QAAU,IAAI2C,kBAAiB,WAC1CtB,EAAarB,QAAQ4C,aAEjB1B,EAASlB,UACXkB,EAASlB,QAAQ6C,aAAepD,EAEpC,IACA4B,EAAarB,QAAQ8C,QAAQ5B,EAASlB,QAAS,CAC7C+C,YAAY,EACZC,gBAAiB,CAAC,kBAGxB,GAAG,CAACvD,KACJ,EAAIzB,EAAO4D,YAAW,WAChBR,EAAgBpB,SAClBoB,EAAgBpB,QAAQiD,UAAUv6B,EAEtC,GAAG,CAACA,KACJ,EAAIs1B,EAAO4D,YAAW,WAChBR,EAAgBpB,SAClBoB,EAAgBpB,QAAQkD,UAAUhD,EAEtC,GAAG,CAACA,KACJ,EAAIlC,EAAO4D,YAAW,WAChBR,EAAgBpB,SAClBoB,EAAgBpB,QAAQmD,yBAAyBlD,EAErD,GAAG,CAACA,KACJ,EAAIjC,EAAO4D,YAAW,WAChBR,EAAgBpB,SAClBoB,EAAgBpB,QAAQoD,WAAW36B,EAEvC,GAAG,CAACA,IACG,CACLq3B,IAAKoB,EACLE,gBAAiBA,EAErB,EAzIA,IAAIpD,EAQJ,SAAiC9nB,EAAK+nB,GAAe,IAAKA,GAAe/nB,GAAOA,EAAIgoB,WAAc,OAAOhoB,EAAO,GAAY,OAARA,GAAiC,WAAjBynB,EAAQznB,IAAoC,oBAARA,EAAsB,MAAO,CAAEkW,QAASlW,GAAS,IAAIioB,EAAQC,EAAyBH,GAAc,GAAIE,GAASA,EAAMnP,IAAI9Y,GAAQ,OAAOioB,EAAMhvB,IAAI+G,GAAQ,IAAImoB,EAAS,CAAC,EAAOC,EAAwBz4B,OAAOk4B,gBAAkBl4B,OAAO04B,yBAA0B,IAAK,IAAIz7B,KAAOoT,EAAO,GAAY,YAARpT,GAAqB+C,OAAOwkB,UAAUxE,eAAerZ,KAAK0J,EAAKpT,GAAM,CAAE,IAAImoB,EAAOqT,EAAwBz4B,OAAO04B,yBAAyBroB,EAAKpT,GAAO,KAAUmoB,IAASA,EAAK9b,KAAO8b,EAAKiE,KAAQrpB,OAAOk4B,eAAeM,EAAQv7B,EAAKmoB,GAAgBoT,EAAOv7B,GAAOoT,EAAIpT,EAAQ,CAAIu7B,EAAOjS,QAAUlW,EAASioB,GAASA,EAAMjP,IAAIhZ,EAAKmoB,GAAW,OAAOA,CAAQ,CARxxBG,CAAwB,EAAQ,QAEzCkD,EAAS,EAAQ,OAEjBT,EAAa,EAAQ,OAEzB,SAAS7C,EAAyBH,GAAe,GAAuB,oBAAZW,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQR,EAA2B,SAAkCH,GAAe,OAAOA,EAAca,EAAmBD,CAAmB,GAAGZ,EAAc,CAI9U,SAASoF,EAAQvb,EAAQwb,GAAkB,IAAIhd,EAAOzgB,OAAOygB,KAAKwB,GAAS,GAAIjiB,OAAOu5B,sBAAuB,CAAE,IAAImE,EAAU19B,OAAOu5B,sBAAsBtX,GAAawb,IAAkBC,EAAUA,EAAQvd,QAAO,SAAUwd,GAAO,OAAO39B,OAAO04B,yBAAyBzW,EAAQ0b,GAAKhD,UAAY,KAAMla,EAAK7e,KAAKwQ,MAAMqO,EAAMid,EAAU,CAAE,OAAOjd,CAAM,CAExV,SAASwb,EAAcr4B,GAAU,IAAK,IAAI4F,EAAI,EAAGA,EAAIib,UAAUhf,OAAQ+D,IAAK,CAAE,IAAIhD,EAAyB,MAAhBie,UAAUjb,GAAaib,UAAUjb,GAAK,CAAC,EAAOA,EAAI,EAAKg0B,EAAQx9B,OAAOwG,IAAS,GAAM2a,SAAQ,SAAUlkB,GAAO2gC,EAAgBh6B,EAAQ3G,EAAKuJ,EAAOvJ,GAAO,IAAe+C,OAAO69B,0BAA6B79B,OAAO89B,iBAAiBl6B,EAAQ5D,OAAO69B,0BAA0Br3B,IAAmBg3B,EAAQx9B,OAAOwG,IAAS2a,SAAQ,SAAUlkB,GAAO+C,OAAOk4B,eAAet0B,EAAQ3G,EAAK+C,OAAO04B,yBAAyBlyB,EAAQvJ,GAAO,GAAM,CAAE,OAAO2G,CAAQ,CAErhB,SAASg6B,EAAgBvtB,EAAKpT,EAAKwG,GAAiK,OAApJxG,KAAOoT,EAAOrQ,OAAOk4B,eAAe7nB,EAAKpT,EAAK,CAAEwG,MAAOA,EAAOk3B,YAAY,EAAMoD,cAAc,EAAMC,UAAU,IAAkB3tB,EAAIpT,GAAOwG,EAAgB4M,CAAK,C,6BCrBhNrQ,OAAOk4B,eAAenQ,EAAS,aAAc,CAC3CtkB,OAAO,IAETskB,EAAQ+T,oBAAsB/T,EAAQmU,eAAY,EAClD,IAAIA,EAA8B,qBAAXx/B,QAA0BA,OAAOmF,SACxDkmB,EAAQmU,UAAYA,EAgCpBnU,EAAQ+T,oBA9BkB,SAA6BjC,EAAyB8B,GAC9E,IAAKO,EAAW,OAAO+B,QAAQC,UAE/B,GAAsB,qBAAX7B,QACLA,OAAOC,MAAQD,OAAOC,KAAK6B,IAAK,OAAOF,QAAQC,UAGrD,IAAIE,EAAiBv8B,SAASuuB,iBAAiB,gBAAiBsL,OAAO7B,EAAyB,OAEhG,GAAIuE,GAAkBA,EAAe34B,OACnC,OAAO,IAAIw4B,SAAQ,SAAUC,GAE3B,GAAsB,qBAAX7B,OAAwB,OAAO6B,IAE1CE,EAAe,GAAG35B,iBAAiB,QAAQ,WACzC,OAAOy5B,GACT,GACF,IAGF,IAAIG,EAAY,IAAIl9B,IAAIw6B,GACxB0C,EAAUC,aAAajV,IAAI,WAAY,0CACvC,IAAIoH,EAAK5uB,SAASkP,cAAc,UAEhC,OADA0f,EAAGnsB,IAAM+5B,EAAUnd,WACZ,IAAI+c,SAAQ,SAAUC,GAC3BxhC,OAAO6hC,uCAAyCL,EAChDr8B,SAASL,KAAK+S,YAAYkc,EAC5B,GACF,C","sources":["webpack://lionwheel/./app/javascript/src/leads/actions.js","webpack://lionwheel/./app/javascript/src/leads/validation_rules.js","webpack://lionwheel/./app/javascript/src/leads/forms/LeadForm.jsx","webpack://lionwheel/./app/javascript/src/leads/Onboarding.jsx","webpack://lionwheel/./app/javascript/src/leads/main.jsx","webpack://lionwheel/./app/javascript/packs/leads.js","webpack://lionwheel/./app/javascript/src/metronic/js/components/datatable/core.datatable.js","webpack://lionwheel/./app/javascript/src/metronic/js/components/datatable/datatable.checkbox.js","webpack://lionwheel/./app/javascript/src/metronic/js/components/datatable/datatable.rtl.js","webpack://lionwheel/./app/javascript/src/metronic/js/components/dialog.js","webpack://lionwheel/./app/javascript/src/metronic/js/components/header.js","webpack://lionwheel/./app/javascript/src/metronic/js/components/scrolltop.js","webpack://lionwheel/./app/javascript/src/metronic/js/components/wizard.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/base/sticky-card.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/base/stretched-card.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/chat.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/demo-panel.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/examples.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/quick-actions.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/quick-cart.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/quick-notifications.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/quick-panel.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/quick-search.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/quick-user.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/scrolltop.js","webpack://lionwheel/./app/javascript/src/metronic/js/layout/extended/search.js","webpack://lionwheel/./app/javascript/src/metronic/js/scripts.demo1.js","webpack://lionwheel/./node_modules/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js","webpack://lionwheel/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://lionwheel/./node_modules/prop-types/index.js","webpack://lionwheel/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://lionwheel/./node_modules/react-google-autocomplete/index.js","webpack://lionwheel/./node_modules/react-google-autocomplete/lib/ReactGoogleAutocomplete.js","webpack://lionwheel/./node_modules/react-google-autocomplete/lib/constants.js","webpack://lionwheel/./node_modules/react-google-autocomplete/lib/index.js","webpack://lionwheel/./node_modules/react-google-autocomplete/lib/usePlacesWidget.js","webpack://lionwheel/./node_modules/react-google-autocomplete/lib/utils.js"],"sourcesContent":["import {csrfToken} from \"../helpers/utils\";\nimport { i18n } from \"../helpers/i18n\";\n\nconst HOST_NAME = window.location.origin\n\nexport const createLead = async (data, step = 1) => {\n data = objToLeadFormData(data)\n const url = new URL(`${HOST_NAME}/leads?step=${step}`)\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'X-CSRF-TOKEN': csrfToken()\n },\n body: data\n })\n}\n\nexport const updateLead = async (data, id, step) => {\n data = objToLeadFormData(data)\n const url = new URL(`${HOST_NAME}/leads/${id}?step=${step}`)\n return await fetch(url, {\n method: 'PATCH',\n headers: {\n 'X-CSRF-TOKEN': csrfToken()\n },\n body: data\n })\n}\n\nexport const getLead = async (id) => {\n const url = new URL(`${HOST_NAME}/leads/${id}`)\n return await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': csrfToken()\n }\n })\n}\n\nexport const getPaymentForm = async (leadId) => {\n const url = new URL(`${HOST_NAME}/leads/get_payment_form?locale=${i18n.locale}`)\n let data = {\n id: leadId\n }\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': csrfToken()\n },\n body: JSON.stringify(data)\n })\n}\n\nexport const ifUserCreated = async (username) => {\n const url = new URL(`${HOST_NAME}/leads/user_created?locale=${i18n.locale}`)\n let data = {\n username: username\n }\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': csrfToken()\n },\n body: JSON.stringify(data)\n })\n}\n\nconst objToLeadFormData = (data) => {\n const formData = new FormData();\n for (let key in data) {\n formData.append(`lead[${key}]`, data[key]);\n }\n return formData\n}\n\n","import { i18n } from \"../helpers/i18n\";\n\nexport const requiredRule = () => {\n return {\n required: true,\n message: i18n.t('views.leads.errors.field_required')\n }\n}\n\nexport const validEmailRule = () => {\n return {\n type: \"email\",\n message: i18n.t('views.leads.errors.invalid_email')\n }\n}\n\nexport const validNumberRule = () => {\n return {\n pattern: new RegExp(/^(\\+|[0-9])[0-9]+$/),\n message: i18n.t('views.leads.errors.invalid_number')\n }\n}\n\nexport const minWidthRule = (min) => {\n return {\n min: min,\n message: i18n.t('views.leads.errors.min_length', { amount: min })\n }\n}\n","import React, { useCallback, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { Button, Checkbox, Form, Input, Select } from \"antd\";\nimport { createLead } from \"../actions\";\nimport { requiredRule, validEmailRule, validNumberRule } from \"../validation_rules\";\nimport Autocomplete from \"react-google-autocomplete\";\nimport { i18n } from \"../../helpers/i18n\";\n\nconst LeadForm = ({ setError }) => {\n const [form] = Form.useForm()\n const [loading, setLoading] = useState(false)\n\n const onSubmit = async data => {\n setLoading(true)\n const res = await createLead(data)\n switch (res.status) {\n case 201:\n window?.gtmDataLayer?.push({'event': 'signup_complete'});\n document.location.href='/?onboarding=true'\n break\n case 422:\n res.json().then(data => setError(data.error))\n setLoading(false)\n break\n default:\n setError(true)\n setLoading(false)\n }\n }\n\n const onPlaceSelected = useCallback((place) => {\n if (!place) return\n\n form.setFieldValue('latitude', place.geometry.location.lat())\n form.setFieldValue('longitude', place.geometry.location.lng())\n\n if (!place.address_components) return\n\n for (const component of place.address_components) {\n const componentType = component.types[0]\n\n switch (componentType) {\n case 'locality':\n form.setFieldValue('city', component.long_name)\n break\n case 'route':\n form.setFieldValue('street', component.short_name)\n break\n case 'street_number':\n form.setFieldValue('number', component.long_name)\n break\n case 'country':\n form.setFieldValue('country', component.short_name)\n break\n case 'administrative_area_level_1':\n form.setFieldValue('state', component.long_name)\n break\n case 'postal_code':\n form.setFieldValue('zip_code', component.long_name)\n }\n }\n }, [])\n\n const validationRules = {\n username: [ requiredRule() ],\n orgName: [ requiredRule() ],\n email: [ requiredRule(), validEmailRule() ],\n phone: [ requiredRule(), validNumberRule() ],\n country: [ requiredRule() ],\n address: [ requiredRule() ],\n terms: [ requiredRule() ]\n }\n\n const initialValues = {\n country: gon.default_country,\n state: '',\n city: '',\n street: '',\n number: '',\n zip_code: '',\n phone: ''\n }\n\n const layout = {\n labelCol: { span: 12, sm: { offset: 2, span: 10} },\n wrapperCol: { span: 12 },\n labelAlign: \"left\",\n colon: false\n }\n\n const countriesList = Object.entries(gon.countries_list)\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 filterOption={(input, option) =>\n option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\n }\n >\n {countriesList.map(country => (\n {country[1]}\n ))}\n \n \n\n \n \n \n \n \n \n \n\n \n \n {i18n.t('views.leads.agreement')}\n \n {i18n.t('views.leads.terms_of_use')}\n \n \n \n\n
\n
\n \n
\n
\n \n
\n
\n )\n}\n\nLeadForm.propTypes = {\n lead: PropTypes.object,\n setLead: PropTypes.func,\n step: PropTypes.number,\n setStep: PropTypes.func,\n setError: PropTypes.func\n}\n\nexport default LeadForm\n","import React, { useState } from 'react'\nimport LeadForm from \"./forms/LeadForm\";\nimport {ConfigProvider} from \"antd\";\nimport {isRTL} from \"../helpers/locale\";\nimport { i18n } from \"../helpers/i18n\";\n\nconst Onboarding = () => {\n const [error, setError] = useState(false)\n\n return (\n \n
\n
\n
\n
\n \"lionwheel\n

Lionwheel

\n
\n
\n { error &&
{ error === true ? i18n.t('errors.something_wrong') : error }
}\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
{i18n.t(\"powered_by\")}
\n \n
\n
\n
\n
\n
\n )\n}\nexport default Onboarding\n\n","import React from 'react'\nimport Onboarding from \"./Onboarding\";\nimport {createRoot} from \"react-dom/client\";\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const container = document.querySelector('#leads-new')\n if (container) {\n createRoot(container).render()\n }\n})\n\n","import 'bootstrap'\nimport 'bootstrap-datepicker'\nimport 'bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js'\nimport 'bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js'\nimport 'jquery-highlight'\nimport 'select2'\nimport 'tooltipster/dist/js/tooltipster.bundle'\nimport 'jquery-validation'\nimport 'bootstrap-notify'\nimport 'jqdoublescroll'\n\n// metronic\nimport '@/metronic/js/scripts.demo1'\n\n// src\nimport '@/leads/main'\n\nrequire('@rails/ujs').start()\nrequire('@rails/activestorage').start()\nrequire('@nathanvda/cocoon')\n\n$(() => $('.tooltips').tooltipster())\n","'use strict';\n(function($) {\n\n\tvar pluginName = 'KTDatatable';\n\tvar pfx = '';\n\tvar util = KTUtil;\n\tvar app = KTApp;\n\n\tif (typeof util === 'undefined') throw new Error('Util class is required and must be included before ' + pluginName);\n\n\t// plugin setup\n\t$.fn[pluginName] = function(options) {\n\t\tif ($(this).length === 0) {\n\t\t\tconsole.warn('No ' + pluginName + ' element exist.');\n\t\t\treturn;\n\t\t}\n\n\t\t// global variables\n\t\tvar datatable = this;\n\n\t\t// debug enabled?\n\t\t// 1) state will be cleared on each refresh\n\t\t// 2) enable some logs\n\t\t// 3) etc.\n\t\tdatatable.debug = false;\n\n\t\tdatatable.API = {\n\t\t\trecord: null,\n\t\t\tvalue: null,\n\t\t\tparams: null,\n\t\t};\n\n\t\tvar Plugin = {\n\t\t\t/********************\n\t\t\t ** PRIVATE METHODS\n\t\t\t ********************/\n\t\t\tisInit: false,\n\t\t\tcellOffset: 108,\n\t\t\ticonOffset: 15,\n\t\t\tstateId: 'meta',\n\t\t\tajaxParams: {},\n\t\t\tpagingObject: {},\n\n\t\t\tinit: function(options) {\n\t\t\t\tvar isHtmlTable = false;\n\t\t\t\t// data source option empty is normal table\n\t\t\t\tif (options.data.source === null) {\n\t\t\t\t\tPlugin.extractTable();\n\t\t\t\t\tisHtmlTable = true;\n\t\t\t\t}\n\n\t\t\t\tPlugin.setupBaseDOM.call();\n\t\t\t\tPlugin.setupDOM(datatable.table);\n\n\t\t\t\t// on event after layout had done setup, show datatable\n\t\t\t\t$(datatable).on(pfx + 'datatable-on-layout-updated', Plugin.afterRender);\n\n\t\t\t\tif (datatable.debug) {\n\t\t\t\t\tPlugin.stateRemove(Plugin.stateId);\n\t\t\t\t}\n\n\t\t\t\t/*var es = Plugin.stateGet(Plugin.stateId);\n\t\t\t\tvar eq = {};\n\t\t\t\tif (es && es.hasOwnProperty('query')) {\n\t\t\t\t\teq = es.query;\n\t\t\t\t}\n\t\t\t\tPlugin.setDataSourceQuery(Object.assign({}, eq, Plugin.getOption('data.source.read.params.query')));*/\n\n\t\t\t\t// set custom query from options\n\t\t\t\tPlugin.setDataSourceQuery(Plugin.getOption('data.source.read.params.query'));\n\n\t\t\t\t// initialize extensions\n\t\t\t\t$.each(Plugin.getOption('extensions'), function(extName, extOptions) {\n\t\t\t\t\tif (typeof $.fn[pluginName][extName] === 'function') {\n\t\t\t\t\t\tif (typeof extOptions !== 'object') {\n\t\t\t\t\t\t\textOptions = $.extend({}, extOptions);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnew $.fn[pluginName][extName](datatable, extOptions);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tPlugin.spinnerCallback(true);\n\t\t\t\t// get data\n\t\t\t\tif (options.data.type === 'remote' || options.data.type === 'local') {\n\t\t\t\t\tif (options.data.saveState === false) {\n\t\t\t\t\t\tPlugin.stateRemove(Plugin.stateId);\n\t\t\t\t\t}\n\t\t\t\t\t// get data for local datatable and local table\n\t\t\t\t\tif (options.data.type === 'local' && typeof options.data.source === 'object') {\n\t\t\t\t\t\tdatatable.dataSet = datatable.originalDataSet = Plugin.dataMapCallback(options.data.source);\n\t\t\t\t\t}\n\t\t\t\t\tPlugin.dataRender();\n\t\t\t\t}\n\n\t\t\t\t// if html table, remove and setup a new header\n\t\t\t\tif (isHtmlTable) {\n\t\t\t\t\t$(datatable.tableHead).find('tr').remove();\n\t\t\t\t\t$(datatable.tableFoot).find('tr').remove();\n\t\t\t\t}\n\n\t\t\t\tPlugin.setHeadTitle();\n\t\t\t\tif (Plugin.getOption('layout.footer')) {\n\t\t\t\t\tPlugin.setHeadTitle(datatable.tableFoot);\n\t\t\t\t}\n\n\t\t\t\t// hide header\n\t\t\t\tif (typeof options.layout.header !== 'undefined' &&\n\t\t\t\t\toptions.layout.header === false) {\n\t\t\t\t\t$(datatable.table).find('thead').remove();\n\t\t\t\t}\n\n\t\t\t\t// hide footer\n\t\t\t\tif (typeof options.layout.footer !== 'undefined' &&\n\t\t\t\t\toptions.layout.footer === false) {\n\t\t\t\t\t$(datatable.table).find('tfoot').remove();\n\t\t\t\t}\n\n\t\t\t\t// for normal and local data type, run layoutUpdate\n\t\t\t\tif (options.data.type === null ||\n\t\t\t\t\toptions.data.type === 'local') {\n\t\t\t\t\tPlugin.setupCellField.call();\n\t\t\t\t\tPlugin.setupTemplateCell.call();\n\n\t\t\t\t\t// setup nested datatable, if option enabled\n\t\t\t\t\tPlugin.setupSubDatatable.call();\n\n\t\t\t\t\t// setup extra system column properties\n\t\t\t\t\tPlugin.setupSystemColumn.call();\n\t\t\t\t\tPlugin.redraw();\n\t\t\t\t}\n\n\t\t\t\tvar width;\n\t\t\t\tvar initialWidth = false;\n\t\t\t\t$(window).resize(function() {\n\t\t\t\t\t// issue: URL Bar Resizing on mobile, https://developers.google.com/web/updates/2016/12/url-bar-resizing\n\t\t\t\t\t// trigger datatable resize on width change only\n\t\t\t\t\tif ($(this).width() !== width) {\n\t\t\t\t\t\twidth = $(this).width();\n\t\t\t\t\t\tPlugin.fullRender();\n\t\t\t\t\t}\n\t\t\t\t\t// get initial width\n\t\t\t\t\tif (!initialWidth) {\n\t\t\t\t\t\twidth = $(this).width();\n\t\t\t\t\t\tinitialWidth = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$(datatable).height('');\n\n\t\t\t\tvar prevKeyword = '';\n\t\t\t\t$(Plugin.getOption('search.input')).on('keyup', function(e) {\n\t\t\t\t\tif (Plugin.getOption('search.onEnter') && e.which !== 13) return;\n\t\t\t\t\tvar keyword = $(this).val();\n\t\t\t\t\t// prevent multiple search request on every button keyup\n\t\t\t\t\tif (prevKeyword !== keyword) {\n\t\t\t\t\t\tPlugin.search(keyword);\n\t\t\t\t\t\tprevKeyword = keyword;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Extract static HTML table content into datasource\n\t\t\t */\n\t\t\textractTable: function() {\n\t\t\t\tvar columns = [];\n\t\t\t\tvar headers = $(datatable).find('tr:first-child th').get().map(function(cell, i) {\n\t\t\t\t\tvar field = $(cell).data('field');\n\t\t\t\t\tvar title = $(cell).data('title');\n\t\t\t\t\tif (typeof field === 'undefined') {\n\t\t\t\t\t\tfield = $(cell).text().trim();\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof title === 'undefined') {\n\t\t\t\t\t\ttitle = $(cell).text().trim();\n\t\t\t\t\t}\n\t\t\t\t\tvar column = {field: field, title: title};\n\t\t\t\t\tfor (var ii in options.columns) {\n\t\t\t\t\t\tif (options.columns[ii].field === field) {\n\t\t\t\t\t\t\tcolumn = $.extend(true, {}, options.columns[ii], column);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolumns.push(column);\n\t\t\t\t\treturn field;\n\t\t\t\t});\n\t\t\t\t// auto create columns config\n\t\t\t\toptions.columns = columns;\n\n\t\t\t\tvar rowProp = [];\n\t\t\t\tvar source = [];\n\n\t\t\t\t$(datatable).find('tr').each(function() {\n\t\t\t\t\tif ($(this).find('td').length) {\n\t\t\t\t\t\trowProp.push($(this).prop('attributes'));\n\t\t\t\t\t}\n\t\t\t\t\tvar td = {};\n\t\t\t\t\t$(this).find('td').each(function(i, cell) {\n\t\t\t\t\t\ttd[headers[i]] = cell.innerHTML.trim();\n\t\t\t\t\t});\n\t\t\t\t\tif (!util.isEmpty(td)) {\n\t\t\t\t\t\tsource.push(td);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\toptions.data.attr.rowProps = rowProp;\n\t\t\t\toptions.data.source = source;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * One time layout update on init\n\t\t\t */\n\t\t\tlayoutUpdate: function() {\n\t\t\t\t// setup nested datatable, if option enabled\n\t\t\t\tPlugin.setupSubDatatable.call();\n\n\t\t\t\t// setup extra system column properties\n\t\t\t\tPlugin.setupSystemColumn.call();\n\n\t\t\t\t// setup cell hover event\n\t\t\t\tPlugin.setupHover.call();\n\n\t\t\t\tif (typeof options.detail === 'undefined'\n\t\t\t\t\t// temporary disable lock column in subtable\n\t\t\t\t\t&& Plugin.getDepth() === 1) {\n\t\t\t\t\t// lock columns handler\n\t\t\t\t\tPlugin.lockTable.call();\n\t\t\t\t}\n\n\t\t\t\tPlugin.resetScroll();\n\n\t\t\t\t// check if not is a locked column\n\t\t\t\tif (!Plugin.isLocked()) {\n\t\t\t\t\tPlugin.redraw.call();\n\t\t\t\t\t// check if its not a subtable and has autoHide option enabled\n\t\t\t\t\tif (!Plugin.isSubtable() && Plugin.getOption('rows.autoHide') === true) {\n\t\t\t\t\t\tPlugin.autoHide();\n\t\t\t\t\t}\n\t\t\t\t\t// reset row\n\t\t\t\t\t$(datatable.table).find('.' + pfx + 'datatable-row').css('height', '');\n\t\t\t\t}\n\n\t\t\t\tPlugin.columnHide.call();\n\n\t\t\t\tPlugin.rowEvenOdd.call();\n\n\t\t\t\tPlugin.sorting.call();\n\n\t\t\t\tPlugin.scrollbar.call();\n\n\t\t\t\tif (!Plugin.isInit) {\n\t\t\t\t\t// run once dropdown inside datatable\n\t\t\t\t\tPlugin.dropdownFix();\n\t\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-init', {table: $(datatable.wrap).attr('id'), options: options});\n\t\t\t\t\tPlugin.isInit = true;\n\t\t\t\t}\n\n\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-layout-updated', {table: $(datatable.wrap).attr('id')});\n\t\t\t},\n\n\t\t\tdropdownFix: function() {\n\t\t\t\tvar dropdownMenu;\n\t\t\t\t$('body').on('show.bs.dropdown', '.' + pfx + 'datatable .' + pfx + 'datatable-body', function(e) {\n\t\t\t\t\tdropdownMenu = $(e.target).find('.dropdown-menu');\n\t\t\t\t\t$('body').append(dropdownMenu.detach());\n\t\t\t\t\tdropdownMenu.css('display', 'block');\n\t\t\t\t\tdropdownMenu.position({\n\t\t\t\t\t\t'my': 'right top',\n\t\t\t\t\t\t'at': 'right bottom',\n\t\t\t\t\t\t'of': $(e.relatedTarget),\n\t\t\t\t\t});\n\t\t\t\t\t// if datatable is inside modal\n\t\t\t\t\tif (datatable.closest('.modal').length) {\n\t\t\t\t\t\t// increase dropdown z-index\n\t\t\t\t\t\tdropdownMenu.css('z-index', '2000');\n\t\t\t\t\t}\n\t\t\t\t}).on('hide.bs.dropdown', '.' + pfx + 'datatable .' + pfx + 'datatable-body', function(e) {\n\t\t\t\t\tif (typeof dropdownMenu !== 'undefined') {\n\t\t\t\t\t\t$(e.target).append(dropdownMenu.detach());\n\t\t\t\t\t\tdropdownMenu.hide();\n\t\t\t\t\t\tdropdownMenu.css('display', '');\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// remove dropdown if window resize\n\t\t\t\t$(window).on('resize', function(e) {\n\t\t\t\t\tif (typeof dropdownMenu !== 'undefined') {\n\t\t\t\t\t\tdropdownMenu.hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tlockTable: function() {\n\t\t\t\tvar lock = {\n\t\t\t\t\tlockEnabled: false,\n\t\t\t\t\tinit: function() {\n\t\t\t\t\t\t// check if table should be locked columns\n\t\t\t\t\t\tlock.lockEnabled = Plugin.lockEnabledColumns();\n\t\t\t\t\t\tif (lock.lockEnabled.left.length === 0 &&\n\t\t\t\t\t\t\tlock.lockEnabled.right.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlock.enable();\n\t\t\t\t\t},\n\t\t\t\t\tenable: function() {\n\t\t\t\t\t\tvar enableLock = function(tablePart) {\n\t\t\t\t\t\t\t// check if already has lock column\n\t\t\t\t\t\t\tif ($(tablePart).find('.' + pfx + 'datatable-lock').length > 0) {\n\t\t\t\t\t\t\t\tPlugin.log('Locked container already exist in: ', tablePart);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// check if no rows exists\n\t\t\t\t\t\t\tif ($(tablePart).find('.' + pfx + 'datatable-row').length === 0) {\n\t\t\t\t\t\t\t\tPlugin.log('No row exist in: ', tablePart);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// locked div container\n\t\t\t\t\t\t\tvar lockLeft = $('
').addClass(pfx + 'datatable-lock ' + pfx + 'datatable-lock-left');\n\t\t\t\t\t\t\tvar lockScroll = $('
').addClass(pfx + 'datatable-lock ' + pfx + 'datatable-lock-scroll');\n\t\t\t\t\t\t\tvar lockRight = $('
').addClass(pfx + 'datatable-lock ' + pfx + 'datatable-lock-right');\n\n\t\t\t\t\t\t\t$(tablePart).find('.' + pfx + 'datatable-row').each(function() {\n\t\t\t\t\t\t\t\t// create new row for lock columns and pass the data\n\t\t\t\t\t\t\t\tvar rowLeft = $('').addClass(pfx + 'datatable-row').data('obj', $(this).data('obj')).appendTo(lockLeft);\n\t\t\t\t\t\t\t\tvar rowScroll = $('').addClass(pfx + 'datatable-row').data('obj', $(this).data('obj')).appendTo(lockScroll);\n\t\t\t\t\t\t\t\tvar rowRight = $('').addClass(pfx + 'datatable-row').data('obj', $(this).data('obj')).appendTo(lockRight);\n\t\t\t\t\t\t\t\t$(this).find('.' + pfx + 'datatable-cell').each(function() {\n\t\t\t\t\t\t\t\t\tvar locked = $(this).data('locked');\n\t\t\t\t\t\t\t\t\tif (typeof locked !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (typeof locked.left !== 'undefined' || locked === true) {\n\t\t\t\t\t\t\t\t\t\t\t// default locked to left\n\t\t\t\t\t\t\t\t\t\t\t$(this).appendTo(rowLeft);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (typeof locked.right !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\t\t$(this).appendTo(rowRight);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(this).appendTo(rowScroll);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t// remove old row\n\t\t\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (lock.lockEnabled.left.length > 0) {\n\t\t\t\t\t\t\t\t$(datatable.wrap).addClass(pfx + 'datatable-lock');\n\t\t\t\t\t\t\t\t$(lockLeft).appendTo(tablePart);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (lock.lockEnabled.left.length > 0 || lock.lockEnabled.right.length > 0) {\n\t\t\t\t\t\t\t\t$(lockScroll).appendTo(tablePart);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (lock.lockEnabled.right.length > 0) {\n\t\t\t\t\t\t\t\t$(datatable.wrap).addClass(pfx + 'datatable-lock');\n\t\t\t\t\t\t\t\t$(lockRight).appendTo(tablePart);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$(datatable.table).find('thead,tbody,tfoot').each(function() {\n\t\t\t\t\t\t\tvar tablePart = this;\n\t\t\t\t\t\t\tif ($(this).find('.' + pfx + 'datatable-lock').length === 0) {\n\t\t\t\t\t\t\t\t$(this).ready(function() {\n\t\t\t\t\t\t\t\t\tenableLock(tablePart);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tlock.init();\n\t\t\t\treturn lock;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Render everything for resize\n\t\t\t */\n\t\t\tfullRender: function() {\n\t\t\t\t$(datatable.tableHead).empty();\n\t\t\t\tPlugin.setHeadTitle();\n\t\t\t\tif (Plugin.getOption('layout.footer')) {\n\t\t\t\t\t$(datatable.tableFoot).empty();\n\t\t\t\t\tPlugin.setHeadTitle(datatable.tableFoot);\n\t\t\t\t}\n\n\t\t\t\tPlugin.spinnerCallback(true);\n\t\t\t\t$(datatable.wrap).removeClass(pfx + 'datatable-loaded');\n\n\t\t\t\tPlugin.insertData();\n\t\t\t},\n\n\t\t\tlockEnabledColumns: function() {\n\t\t\t\tvar screen = $(window).width();\n\t\t\t\tvar columns = options.columns;\n\t\t\t\tvar enabled = {left: [], right: []};\n\t\t\t\t$.each(columns, function(i, column) {\n\t\t\t\t\tif (typeof column.locked !== 'undefined') {\n\t\t\t\t\t\tif (typeof column.locked.left !== 'undefined') {\n\t\t\t\t\t\t\tif (util.getBreakpoint(column.locked.left) <= screen) {\n\t\t\t\t\t\t\t\tenabled['left'].push(column.locked.left);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof column.locked.right !== 'undefined') {\n\t\t\t\t\t\t\tif (util.getBreakpoint(column.locked.right) <= screen) {\n\t\t\t\t\t\t\t\tenabled['right'].push(column.locked.right);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn enabled;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * After render event, called by \"datatable-on-layout-updated\"\n\t\t\t * @param e\n\t\t\t * @param args\n\t\t\t */\n\t\t\tafterRender: function(e, args) {\n\t\t\t\t$(datatable).ready(function() {\n\t\t\t\t\t// redraw locked columns table\n\t\t\t\t\tif (Plugin.isLocked()) {\n\t\t\t\t\t\tPlugin.redraw();\n\t\t\t\t\t}\n\n\t\t\t\t\t$(datatable.tableBody).css('visibility', '');\n\t\t\t\t\t$(datatable.wrap).addClass(pfx + 'datatable-loaded');\n\n\t\t\t\t\tPlugin.spinnerCallback(false);\n\t\t\t\t});\n\t\t\t},\n\n\t\t\thoverTimer: 0,\n\t\t\tisScrolling: false,\n\t\t\tsetupHover: function() {\n\t\t\t\t$(window).scroll(function(e) {\n\t\t\t\t\t// stop hover when scrolling\n\t\t\t\t\tclearTimeout(Plugin.hoverTimer);\n\t\t\t\t\tPlugin.isScrolling = true;\n\t\t\t\t});\n\n\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'datatable-cell').off('mouseenter', 'mouseleave').on('mouseenter', function() {\n\t\t\t\t\t// reset scroll timer to hover class\n\t\t\t\t\tPlugin.hoverTimer = setTimeout(function() {\n\t\t\t\t\t\tPlugin.isScrolling = false;\n\t\t\t\t\t}, 200);\n\t\t\t\t\tif (Plugin.isScrolling) return;\n\n\t\t\t\t\t// normal table\n\t\t\t\t\tvar row = $(this).closest('.' + pfx + 'datatable-row').addClass(pfx + 'datatable-row-hover');\n\t\t\t\t\tvar index = $(row).index() + 1;\n\n\t\t\t\t\t// lock table\n\t\t\t\t\t$(row).closest('.' + pfx + 'datatable-lock').parent().find('.' + pfx + 'datatable-row:nth-child(' + index + ')').addClass(pfx + 'datatable-row-hover');\n\t\t\t\t}).on('mouseleave', function() {\n\t\t\t\t\t// normal table\n\t\t\t\t\tvar row = $(this).closest('.' + pfx + 'datatable-row').removeClass(pfx + 'datatable-row-hover');\n\t\t\t\t\tvar index = $(row).index() + 1;\n\n\t\t\t\t\t// look table\n\t\t\t\t\t$(row).closest('.' + pfx + 'datatable-lock').parent().find('.' + pfx + 'datatable-row:nth-child(' + index + ')').removeClass(pfx + 'datatable-row-hover');\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Adjust width of locked table containers by resize handler\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tadjustLockContainer: function() {\n\t\t\t\tif (!Plugin.isLocked()) return 0;\n\n\t\t\t\t// refer to head dimension\n\t\t\t\tvar containerWidth = $(datatable.tableHead).width();\n\t\t\t\tvar lockLeft = $(datatable.tableHead).find('.' + pfx + 'datatable-lock-left').width();\n\t\t\t\tvar lockRight = $(datatable.tableHead).find('.' + pfx + 'datatable-lock-right').width();\n\n\t\t\t\tif (typeof lockLeft === 'undefined') lockLeft = 0;\n\t\t\t\tif (typeof lockRight === 'undefined') lockRight = 0;\n\n\t\t\t\tvar lockScroll = Math.floor(containerWidth - lockLeft - lockRight);\n\t\t\t\t$(datatable.table).find('.' + pfx + 'datatable-lock-scroll').css('width', lockScroll);\n\n\t\t\t\treturn lockScroll;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * todo; not in use\n\t\t\t */\n\t\t\tdragResize: function() {\n\t\t\t\tvar pressed = false;\n\t\t\t\tvar start = undefined;\n\t\t\t\tvar startX, startWidth;\n\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'datatable-cell').mousedown(function(e) {\n\t\t\t\t\tstart = $(this);\n\t\t\t\t\tpressed = true;\n\t\t\t\t\tstartX = e.pageX;\n\t\t\t\t\tstartWidth = $(this).width();\n\t\t\t\t\t$(start).addClass(pfx + 'datatable-cell-resizing');\n\n\t\t\t\t}).mousemove(function(e) {\n\t\t\t\t\tif (pressed) {\n\t\t\t\t\t\tvar i = $(start).index();\n\t\t\t\t\t\tvar tableBody = $(datatable.tableBody);\n\t\t\t\t\t\tvar ifLocked = $(start).closest('.' + pfx + 'datatable-lock');\n\n\t\t\t\t\t\tif (ifLocked) {\n\t\t\t\t\t\t\tvar lockedIndex = $(ifLocked).index();\n\t\t\t\t\t\t\ttableBody = $(datatable.tableBody).find('.' + pfx + 'datatable-lock').eq(lockedIndex);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$(tableBody).find('.' + pfx + 'datatable-row').each(function(tri, tr) {\n\t\t\t\t\t\t\t$(tr).find('.' + pfx + 'datatable-cell').eq(i).width(startWidth + (e.pageX - startX)).children().width(startWidth + (e.pageX - startX));\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t$(start).children().css('width', startWidth + (e.pageX - startX));\n\t\t\t\t\t}\n\n\t\t\t\t}).mouseup(function() {\n\t\t\t\t\t$(start).removeClass(pfx + 'datatable-cell-resizing');\n\t\t\t\t\tpressed = false;\n\t\t\t\t});\n\n\t\t\t\t$(document).mouseup(function() {\n\t\t\t\t\t$(start).removeClass(pfx + 'datatable-cell-resizing');\n\t\t\t\t\tpressed = false;\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * To prepare placeholder for table before content is loading\n\t\t\t */\n\t\t\tinitHeight: function() {\n\t\t\t\tif (options.layout.height && options.layout.scroll) {\n\t\t\t\t\tvar theadHeight = $(datatable.tableHead).find('.' + pfx + 'datatable-row').outerHeight();\n\t\t\t\t\tvar tfootHeight = $(datatable.tableFoot).find('.' + pfx + 'datatable-row').outerHeight();\n\t\t\t\t\tvar bodyHeight = options.layout.height;\n\t\t\t\t\tif (theadHeight > 0) {\n\t\t\t\t\t\tbodyHeight -= theadHeight;\n\t\t\t\t\t}\n\t\t\t\t\tif (tfootHeight > 0) {\n\t\t\t\t\t\tbodyHeight -= tfootHeight;\n\t\t\t\t\t}\n\n\t\t\t\t\t// scrollbar offset\n\t\t\t\t\tbodyHeight -= 2;\n\n\t\t\t\t\t$(datatable.tableBody).css('max-height', Math.floor(parseFloat(bodyHeight)));\n\n\t\t\t\t\t// set scrollable area fixed height\n\t\t\t\t\t// $(datatable.tableBody).find('.' + pfx + 'datatable-lock-scroll').css('height', Math.floor(parseFloat(bodyHeight)));\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Setup base DOM (table, thead, tbody, tfoot) and create if not\n\t\t\t * exist.\n\t\t\t */\n\t\t\tsetupBaseDOM: function() {\n\t\t\t\t// keep original state before datatable initialize\n\t\t\t\tdatatable.initialDatatable = $(datatable).clone();\n\n\t\t\t\t// main element\n\t\t\t\tif ($(datatable).prop('tagName') === 'TABLE') {\n\t\t\t\t\t// if main init element is , wrap with div\n\t\t\t\t\tdatatable.table = $(datatable).removeClass(pfx + 'datatable').addClass(pfx + 'datatable-table');\n\t\t\t\t\tif ($(datatable.table).parents('.' + pfx + 'datatable').length === 0) {\n\t\t\t\t\t\tdatatable.table.wrap($('
').addClass(pfx + 'datatable').addClass(pfx + 'datatable-' + options.layout.theme));\n\t\t\t\t\t\tdatatable.wrap = $(datatable.table).parent();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// create table\n\t\t\t\t\tdatatable.wrap = $(datatable).addClass(pfx + 'datatable').addClass(pfx + 'datatable-' + options.layout.theme);\n\t\t\t\t\tdatatable.table = $('
').addClass(pfx + 'datatable-table').appendTo(datatable);\n\t\t\t\t}\n\n\t\t\t\tif (typeof options.layout.class !== 'undefined') {\n\t\t\t\t\t$(datatable.wrap).addClass(options.layout.class);\n\t\t\t\t}\n\n\t\t\t\t$(datatable.table).removeClass(pfx + 'datatable-destroyed').css('display', 'block');\n\n\t\t\t\t// force disable save state\n\t\t\t\tif (typeof $(datatable).attr('id') === 'undefined') {\n\t\t\t\t\tPlugin.setOption('data.saveState', false);\n\t\t\t\t\t$(datatable.table).attr('id', util.getUniqueID(pfx + 'datatable-'));\n\t\t\t\t}\n\n\t\t\t\t// predefine table height\n\t\t\t\tif (Plugin.getOption('layout.minHeight'))\n\t\t\t\t\t$(datatable.table).css('min-height', Plugin.getOption('layout.minHeight'));\n\n\t\t\t\tif (Plugin.getOption('layout.height'))\n\t\t\t\t\t$(datatable.table).css('max-height', Plugin.getOption('layout.height'));\n\n\t\t\t\t// for normal table load\n\t\t\t\tif (options.data.type === null) {\n\t\t\t\t\t$(datatable.table).css('width', '').css('display', '');\n\t\t\t\t}\n\n\t\t\t\t// create table head element\n\t\t\t\tdatatable.tableHead = $(datatable.table).find('thead');\n\t\t\t\tif ($(datatable.tableHead).length === 0) {\n\t\t\t\t\tdatatable.tableHead = $('').prependTo(datatable.table);\n\t\t\t\t}\n\n\t\t\t\t// create table head element\n\t\t\t\tdatatable.tableBody = $(datatable.table).find('tbody');\n\t\t\t\tif ($(datatable.tableBody).length === 0) {\n\t\t\t\t\tdatatable.tableBody = $('').appendTo(datatable.table);\n\t\t\t\t}\n\n\t\t\t\tif (typeof options.layout.footer !== 'undefined' &&\n\t\t\t\t\toptions.layout.footer) {\n\t\t\t\t\t// create table foot element\n\t\t\t\t\tdatatable.tableFoot = $(datatable.table).find('tfoot');\n\t\t\t\t\tif ($(datatable.tableFoot).length === 0) {\n\t\t\t\t\t\tdatatable.tableFoot = $('').appendTo(datatable.table);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set column data before table manipulation.\n\t\t\t */\n\t\t\tsetupCellField: function(tableParts) {\n\t\t\t\tif (typeof tableParts === 'undefined') tableParts = $(datatable.table).children();\n\t\t\t\tvar columns = options.columns;\n\t\t\t\t$.each(tableParts, function(part, tablePart) {\n\t\t\t\t\t$(tablePart).find('.' + pfx + 'datatable-row').each(function(tri, tr) {\n\t\t\t\t\t\t// prepare data\n\t\t\t\t\t\t$(tr).find('.' + pfx + 'datatable-cell').each(function(tdi, td) {\n\t\t\t\t\t\t\tif (typeof columns[tdi] !== 'undefined') {\n\t\t\t\t\t\t\t\t$(td).data(columns[tdi]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set column template callback\n\t\t\t * @param tablePart\n\t\t\t */\n\t\t\tsetupTemplateCell: function(tablePart) {\n\t\t\t\tif (typeof tablePart === 'undefined') tablePart = datatable.tableBody;\n\t\t\t\tvar columns = options.columns;\n\t\t\t\t$(tablePart).find('.' + pfx + 'datatable-row').each(function(tri, tr) {\n\t\t\t\t\t// row data object, if any\n\t\t\t\t\tvar obj = $(tr).data('obj');\n\t\t\t\t\tif (typeof obj === 'undefined') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// @deprecated in v5.0.6\n\t\t\t\t\t// obj['getIndex'] = function() {\n\t\t\t\t\t// \treturn tri;\n\t\t\t\t\t// };\n\t\t\t\t\t// @deprecated in v5.0.6\n\t\t\t\t\t// obj['getDatatable'] = function() {\n\t\t\t\t\t// \treturn datatable;\n\t\t\t\t\t// };\n\n\t\t\t\t\t// @deprecated in v5.0.6\n\t\t\t\t\tvar rowCallback = Plugin.getOption('rows.callback');\n\t\t\t\t\tif (typeof rowCallback === 'function') {\n\t\t\t\t\t\trowCallback($(tr), obj, tri);\n\t\t\t\t\t}\n\t\t\t\t\t// before template row callback\n\t\t\t\t\tvar beforeTemplate = Plugin.getOption('rows.beforeTemplate');\n\t\t\t\t\tif (typeof beforeTemplate === 'function') {\n\t\t\t\t\t\tbeforeTemplate($(tr), obj, tri);\n\t\t\t\t\t}\n\t\t\t\t\t// if data object is undefined, collect from table\n\t\t\t\t\tif (typeof obj === 'undefined') {\n\t\t\t\t\t\tobj = {};\n\t\t\t\t\t\t$(tr).find('.' + pfx + 'datatable-cell').each(function(tdi, td) {\n\t\t\t\t\t\t\t// get column settings by field\n\t\t\t\t\t\t\tvar column = $.grep(columns, function(n, i) {\n\t\t\t\t\t\t\t\treturn $(td).data('field') === n.field;\n\t\t\t\t\t\t\t})[0];\n\t\t\t\t\t\t\tif (typeof column !== 'undefined') {\n\t\t\t\t\t\t\t\tobj[column['field']] = $(td).text();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t$(tr).find('.' + pfx + 'datatable-cell').each(function(tdi, td) {\n\t\t\t\t\t\t// get column settings by field\n\t\t\t\t\t\tvar column = $.grep(columns, function(n, i) {\n\t\t\t\t\t\t\treturn $(td).data('field') === n.field;\n\t\t\t\t\t\t})[0];\n\t\t\t\t\t\tif (typeof column !== 'undefined') {\n\t\t\t\t\t\t\t// column template\n\t\t\t\t\t\t\tif (typeof column.template !== 'undefined') {\n\t\t\t\t\t\t\t\tvar finalValue = '';\n\t\t\t\t\t\t\t\t// template string\n\t\t\t\t\t\t\t\tif (typeof column.template === 'string') {\n\t\t\t\t\t\t\t\t\tfinalValue = Plugin.dataPlaceholder(column.template, obj);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// template callback function\n\t\t\t\t\t\t\t\tif (typeof column.template === 'function') {\n\t\t\t\t\t\t\t\t\tfinalValue = column.template(obj, tri, datatable);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// sanitize using DOMPurify if installed\n\t\t\t\t\t\t\t\tif (typeof DOMPurify !== 'undefined') {\n\t\t\t\t\t\t\t\t\tfinalValue = DOMPurify.sanitize(finalValue);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar span = document.createElement('span');\n\t\t\t\t\t\t\t\tspan.innerHTML = finalValue;\n\n\t\t\t\t\t\t\t\t// insert to cell, wrap with span\n\t\t\t\t\t\t\t\t$(td).html(span);\n\n\t\t\t\t\t\t\t\t// set span overflow\n\t\t\t\t\t\t\t\tif (typeof column.overflow !== 'undefined') {\n\t\t\t\t\t\t\t\t\t$(span).css('overflow', column.overflow);\n\t\t\t\t\t\t\t\t\t$(span).css('position', 'relative');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// after template row callback\n\t\t\t\t\tvar afterTemplate = Plugin.getOption('rows.afterTemplate');\n\t\t\t\t\tif (typeof afterTemplate === 'function') {\n\t\t\t\t\t\tafterTemplate($(tr), obj, tri);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Setup extra system column properties\n\t\t\t * Note: selector checkbox, subtable toggle\n\t\t\t */\n\t\t\tsetupSystemColumn: function() {\n\t\t\t\tdatatable.dataSet = datatable.dataSet || [];\n\t\t\t\t// no records available\n\t\t\t\tif (datatable.dataSet.length === 0) return;\n\n\t\t\t\tvar columns = options.columns;\n\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'datatable-row').each(function(tri, tr) {\n\t\t\t\t\t$(tr).find('.' + pfx + 'datatable-cell').each(function(tdi, td) {\n\t\t\t\t\t\t// get column settings by field\n\t\t\t\t\t\tvar column = $.grep(columns, function(n, i) {\n\t\t\t\t\t\t\treturn $(td).data('field') === n.field;\n\t\t\t\t\t\t})[0];\n\t\t\t\t\t\tif (typeof column !== 'undefined') {\n\t\t\t\t\t\t\tvar value = $(td).text();\n\n\t\t\t\t\t\t\t// enable column selector\n\t\t\t\t\t\t\tif (typeof column.selector !== 'undefined' && column.selector !== false) {\n\t\t\t\t\t\t\t\t// check if checkbox exist\n\t\t\t\t\t\t\t\tif ($(td).find('.' + pfx + 'checkbox [type=\"checkbox\"]').length > 0) return;\n\n\t\t\t\t\t\t\t\t$(td).addClass(pfx + 'datatable-cell-check');\n\n\t\t\t\t\t\t\t\t// append checkbox\n\t\t\t\t\t\t\t\tvar chk = $(' as parent and add as child table\n\t\t\t\t\t\tsubTableRow = $('').\n\t\t\t\t\t\t\taddClass(pfx + 'datatable-row-subtable ' + pfx + 'datatable-row-loading').\n\t\t\t\t\t\t\thide().\n\t\t\t\t\t\t\tappend($('').addClass(pfx + 'datatable-row-detail').insertAfter(row);\n\t\t\t\t\t\tvar detailRowTd = $('
').addClass(pfx + 'datatable-subtable').attr('colspan', Plugin.getTotalColumns()));\n\t\t\t\t\t\t$(parentRow).after(subTableRow);\n\t\t\t\t\t\t// add class to even row\n\t\t\t\t\t\tif ($(parentRow).hasClass(pfx + 'datatable-row-even')) {\n\t\t\t\t\t\t\t$(subTableRow).addClass(pfx + 'datatable-row-subtable-even');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t$(subTableRow).toggle();\n\n\t\t\t\t\tvar subTable = $(subTableRow).find('.' + pfx + 'datatable-subtable');\n\n\t\t\t\t\t// get id from first column of parent row\n\t\t\t\t\tvar primaryKey = $(this).closest('[data-field]:first-child').find('.' + pfx + 'datatable-toggle-subtable').data('value');\n\n\t\t\t\t\tvar icon = $(this).find('i').removeAttr('class');\n\n\t\t\t\t\t// prevent duplicate datatable init\n\t\t\t\t\tif ($(parentRow).hasClass(pfx + 'datatable-row-subtable-expanded')) {\n\t\t\t\t\t\t$(icon).addClass(Plugin.getOption('layout.icons.rowDetail.collapse'));\n\t\t\t\t\t\t// remove expand class from parent row\n\t\t\t\t\t\t$(parentRow).removeClass(pfx + 'datatable-row-subtable-expanded');\n\t\t\t\t\t\t// trigger event on collapse\n\t\t\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-collapse-subtable', [parentRow]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// expand and run callback function\n\t\t\t\t\t\t$(icon).addClass(Plugin.getOption('layout.icons.rowDetail.expand'));\n\t\t\t\t\t\t// add expand class to parent row\n\t\t\t\t\t\t$(parentRow).addClass(pfx + 'datatable-row-subtable-expanded');\n\t\t\t\t\t\t// trigger event on expand\n\t\t\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-expand-subtable', [parentRow]);\n\t\t\t\t\t}\n\n\t\t\t\t\t// prevent duplicate datatable init\n\t\t\t\t\tif ($(subTable).find('.' + pfx + 'datatable').length === 0) {\n\t\t\t\t\t\t// get data by primary id\n\t\t\t\t\t\t$.map(datatable.dataSet, function(n, i) {\n\t\t\t\t\t\t\t// primary id must be at the first column, otherwise e.data will be undefined\n\t\t\t\t\t\t\tif (primaryKey === n[options.columns[0].field]) {\n\t\t\t\t\t\t\t\te.data = n;\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// deprecated in v5.0.6\n\t\t\t\t\t\te.detailCell = subTable;\n\n\t\t\t\t\t\te.parentRow = parentRow;\n\t\t\t\t\t\te.subTable = subTable;\n\n\t\t\t\t\t\t// run callback with event\n\t\t\t\t\t\tsubTableCallback(e);\n\n\t\t\t\t\t\t$(subTable).children('.' + pfx + 'datatable').on(pfx + 'datatable-on-init', function(e) {\n\t\t\t\t\t\t\t$(subTableRow).removeClass(pfx + 'datatable-row-loading');\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (Plugin.getOption('data.type') === 'local') {\n\t\t\t\t\t\t\t$(subTableRow).removeClass(pfx + 'datatable-row-loading');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tvar columns = options.columns;\n\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'datatable-row').each(function(tri, tr) {\n\t\t\t\t\t$(tr).find('.' + pfx + 'datatable-cell').each(function(tdi, td) {\n\t\t\t\t\t\t// get column settings by field\n\t\t\t\t\t\tvar column = $.grep(columns, function(n, i) {\n\t\t\t\t\t\t\treturn $(td).data('field') === n.field;\n\t\t\t\t\t\t})[0];\n\t\t\t\t\t\tif (typeof column !== 'undefined') {\n\t\t\t\t\t\t\tvar value = $(td).text();\n\t\t\t\t\t\t\t// enable column subtable toggle\n\t\t\t\t\t\t\tif (typeof column.subtable !== 'undefined' && column.subtable) {\n\t\t\t\t\t\t\t\t// check if subtable toggle exist\n\t\t\t\t\t\t\t\tif ($(td).find('.' + pfx + 'datatable-toggle-subtable').length > 0) return;\n\t\t\t\t\t\t\t\t// append subtable toggle\n\t\t\t\t\t\t\t\t$(td).\n\t\t\t\t\t\t\t\t\thtml($('').\n\t\t\t\t\t\t\t\t\t\taddClass(pfx + 'datatable-toggle-subtable').\n\t\t\t\t\t\t\t\t\t\tattr('href', '#').\n\t\t\t\t\t\t\t\t\t\tattr('data-value', value).\n\t\t\t\t\t\t\t\t\t\tattr('title', Plugin.getOption('detail.title')).\n\t\t\t\t\t\t\t\t\t\ton('click', toggleSubTable).\n\t\t\t\t\t\t\t\t\t\tappend($('').css('width', $(td).data('width')).addClass(Plugin.getOption('layout.icons.rowDetail.collapse'))));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// $(datatable.tableHead).find('.'+pfx+'-datatable-row').first()\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Datasource mapping callback\n\t\t\t */\n\t\t\tdataMapCallback: function(raw) {\n\t\t\t\t// static dataset array\n\t\t\t\tvar dataSet = raw;\n\t\t\t\t// dataset mapping callback\n\t\t\t\tif (typeof Plugin.getOption('data.source.read.map') === 'function') {\n\t\t\t\t\treturn Plugin.getOption('data.source.read.map')(raw);\n\t\t\t\t} else {\n\t\t\t\t\t// default data mapping fallback\n\t\t\t\t\tif (typeof raw !== 'undefined' && typeof raw.data !== 'undefined') {\n\t\t\t\t\t\tdataSet = raw.data;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn dataSet;\n\t\t\t},\n\n\t\t\tisSpinning: false,\n\t\t\t/**\n\t\t\t * BlockUI spinner callback\n\t\t\t * @param block\n\t\t\t * @param target\n\t\t\t */\n\t\t\tspinnerCallback: function(block, target) {\n\t\t\t\tif (typeof target === 'undefined') target = datatable;\n\t\t\t\t// get spinner options\n\t\t\t\tvar spinnerOptions = Plugin.getOption('layout.spinner');\n\t\t\t\t// spinner is disabled\n\t\t\t\tif (typeof spinnerOptions === 'undefined' || !spinnerOptions) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (block) {\n\t\t\t\t\tif (!Plugin.isSpinning) {\n\t\t\t\t\t\tif (typeof spinnerOptions.message !== 'undefined' && spinnerOptions.message === true) {\n\t\t\t\t\t\t\t// use default spinner message from translation\n\t\t\t\t\t\t\tspinnerOptions.message = Plugin.getOption('translate.records.processing');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tPlugin.isSpinning = true;\n\t\t\t\t\t\tif (typeof app !== 'undefined') {\n\t\t\t\t\t\t\tapp.block(target, spinnerOptions);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tPlugin.isSpinning = false;\n\t\t\t\t\tif (typeof app !== 'undefined') {\n\t\t\t\t\t\tapp.unblock(target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Default sort callback function\n\t\t\t * @param data\n\t\t\t * @param sort\n\t\t\t * @param column\n\t\t\t * @returns {*|Array.|{sort, field}|{asc, desc}}\n\t\t\t */\n\t\t\tsortCallback: function(data, sort, column) {\n\t\t\t\tvar type = column['type'] || 'string';\n\t\t\t\tvar format = column['format'] || '';\n\t\t\t\tvar field = column['field'];\n\n\t\t\t\treturn $(data).sort(function(a, b) {\n\t\t\t\t\tvar aField = a[field];\n\t\t\t\t\tvar bField = b[field];\n\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase 'date':\n\t\t\t\t\t\t\tif (typeof moment === 'undefined') {\n\t\t\t\t\t\t\t\tthrow new Error('Moment.js is required.');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar diff = moment(aField, format).diff(moment(bField, format));\n\t\t\t\t\t\t\tif (sort === 'asc') {\n\t\t\t\t\t\t\t\treturn diff > 0 ? 1 : diff < 0 ? -1 : 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn diff < 0 ? 1 : diff > 0 ? -1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'number':\n\t\t\t\t\t\t\tif (isNaN(parseFloat(aField)) && aField != null) {\n\t\t\t\t\t\t\t\taField = Number(aField.replace(/[^0-9\\.-]+/g, ''));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (isNaN(parseFloat(bField)) && bField != null) {\n\t\t\t\t\t\t\t\tbField = Number(bField.replace(/[^0-9\\.-]+/g, ''));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taField = parseFloat(aField);\n\t\t\t\t\t\t\tbField = parseFloat(bField);\n\t\t\t\t\t\t\tif (sort === 'asc') {\n\t\t\t\t\t\t\t\treturn aField > bField ? 1 : aField < bField ? -1 : 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn aField < bField ? 1 : aField > bField ? -1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'html':\n\t\t\t\t\t\t\treturn $(data).sort(function(a, b) {\n\t\t\t\t\t\t\t\t// get the text only from html\n\t\t\t\t\t\t\t\taField = $(a[field]).text();\n\t\t\t\t\t\t\t\tbField = $(b[field]).text();\n\t\t\t\t\t\t\t\t// sort\n\t\t\t\t\t\t\t\tif (sort === 'asc') {\n\t\t\t\t\t\t\t\t\treturn aField > bField ? 1 : aField < bField ? -1 : 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn aField < bField ? 1 : aField > bField ? -1 : 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'string':\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif (sort === 'asc') {\n\t\t\t\t\t\t\t\treturn aField > bField ? 1 : aField < bField ? -1 : 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn aField < bField ? 1 : aField > bField ? -1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Custom debug log\n\t\t\t * @param text\n\t\t\t * @param obj\n\t\t\t */\n\t\t\tlog: function(text, obj) {\n\t\t\t\tif (typeof obj === 'undefined') obj = '';\n\t\t\t\tif (datatable.debug) {\n\t\t\t\t\tconsole.log(text, obj);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Auto hide columnds overflow in row\n\t\t\t */\n\t\t\tautoHide: function() {\n\t\t\t\tvar hiddenExist = false;\n\t\t\t\t// force hide enabled\n\t\t\t\tvar hidDefault = $(datatable.table).find('[data-autohide-enabled]');\n\t\t\t\tif (hidDefault.length) {\n\t\t\t\t\thiddenExist = true;\n\t\t\t\t\thidDefault.hide();\n\t\t\t\t}\n\n\t\t\t\tvar toggleHiddenColumns = function(e) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tvar row = $(this).closest('.' + pfx + 'datatable-row');\n\t\t\t\t\tvar detailRow = $(row).next();\n\n\t\t\t\t\tif (!$(detailRow).hasClass(pfx + 'datatable-row-detail')) {\n\t\t\t\t\t\t$(this).find('i').removeClass(Plugin.getOption('layout.icons.rowDetail.collapse')).addClass(Plugin.getOption('layout.icons.rowDetail.expand'));\n\n\t\t\t\t\t\tvar hiddenCells = $(row).find('.' + pfx + 'datatable-cell:hidden');\n\t\t\t\t\t\tvar clonedCells = hiddenCells.clone().show();\n\n\t\t\t\t\t\tdetailRow = $('
').addClass(pfx + 'datatable-detail').attr('colspan', Plugin.getTotalColumns()).appendTo(detailRow);\n\n\t\t\t\t\t\tvar detailSubTable = $('');\n\t\t\t\t\t\t$(clonedCells).each(function() {\n\t\t\t\t\t\t\tvar field = $(this).data('field');\n\t\t\t\t\t\t\tvar column = $.grep(options.columns, function(n, i) {\n\t\t\t\t\t\t\t\treturn field === n.field;\n\t\t\t\t\t\t\t})[0];\n\t\t\t\t\t\t\tif (typeof column === 'undefined' || column.visible !== false) {\n\t\t\t\t\t\t\t\t$(detailSubTable).\n\t\t\t\t\t\t\t\t\t\tappend($('').\n\t\t\t\t\t\t\t\t\t\t\t\tappend($('').append($('').append(column.title))).\n\t\t\t\t\t\t\t\t\t\t\t\tappend(this));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\t$(detailRowTd).append(detailSubTable);\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).find('i').removeClass(Plugin.getOption('layout.icons.rowDetail.expand')).addClass(Plugin.getOption('layout.icons.rowDetail.collapse'));\n\t\t\t\t\t\t$(detailRow).remove();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t$(datatable.table).find('.' + pfx + 'datatable-cell').show();\n\t\t\t\t\t$(datatable.tableBody).each(function() {\n\t\t\t\t\t\tvar recursive = 0;\n\t\t\t\t\t\tvar offsetWidth = $(this)[0].offsetWidth;\n\t\t\t\t\t\tvar scrollWidth = $(this)[0].scrollWidth;\n\n\t\t\t\t\t\twhile (offsetWidth < scrollWidth && (scrollWidth - offsetWidth) > Plugin.cellOffset && recursive < options.columns.length) {\n\n\t\t\t\t\t\t\t$(datatable.table).find('.' + pfx + 'datatable-row').each(function(i) {\n\t\t\t\t\t\t\t\tvar cell = $(this).find('.' + pfx + 'datatable-cell:not(:hidden):not([data-autohide-disabled])').last();\n\t\t\t\t\t\t\t\t\tif (cell.length) {\n\t\t\t\t\t\t\t\t\t\t$(cell).hide();\n\t\t\t\t\t\t\t\t\t\thiddenExist = true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\trecursive++;\n\n\t\t\t\t\t\t\toffsetWidth = $(this)[0].offsetWidth;\n\t\t\t\t\t\t\tscrollWidth = $(this)[0].scrollWidth;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (hiddenExist) {\n\t\t\t\t\t\t// toggle show hidden columns\n\t\t\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'datatable-row').each(function() {\n\t\t\t\t\t\t\t// if no toggle yet\n\t\t\t\t\t\t\tif($(this).find('.' + pfx + 'datatable-toggle-detail').length === 0) {\n\t\t\t\t\t\t\t\t// add toggle\n\t\t\t\t\t\t\t\t$(this).prepend($('');\n\t\t\t\t\t\t\t\t$(datatable.tableFoot).\n\t\t\t\t\t\t\t\t\tfind('.' + pfx + 'datatable-row').\n\t\t\t\t\t\t\t\t\tfirst().\n\t\t\t\t\t\t\t\t\tprepend('');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'datatable-toggle-detail').find('span');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tPlugin.adjustCellsWidth.call();\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * To enable auto columns features for remote data source\n\t\t\t */\n\t\t\tsetAutoColumns: function() {\n\t\t\t\tif (Plugin.getOption('data.autoColumns')) {\n\t\t\t\t\t$.each(datatable.dataSet[0], function(k, v) {\n\t\t\t\t\t\tvar found = $.grep(options.columns, function(n, i) {\n\t\t\t\t\t\t\treturn k === n.field;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (found.length === 0) {\n\t\t\t\t\t\t\toptions.columns.push({field: k, title: k});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'datatable-row').remove();\n\t\t\t\t\tPlugin.setHeadTitle();\n\t\t\t\t\tif (Plugin.getOption('layout.footer')) {\n\t\t\t\t\t\t$(datatable.tableFoot).find('.' + pfx + 'datatable-row').remove();\n\t\t\t\t\t\tPlugin.setHeadTitle(datatable.tableFoot);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/********************\n\t\t\t ** HELPERS\n\t\t\t ********************/\n\n\t\t\t/**\n\t\t\t * Check if table is a locked colums table\n\t\t\t */\n\t\t\tisLocked: function() {\n\t\t\t\tvar isLocked = Plugin.lockEnabledColumns();\n\t\t\t\treturn isLocked.left.length > 0 || isLocked.right.length > 0;\n\t\t\t},\n\n\t\t\tisSubtable: function() {\n\t\t\t\treturn util.hasClass(datatable.wrap[0], pfx + 'datatable-subtable') || false;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get total extra space of an element for width calculation,\n\t\t\t * including padding, margin, border\n\t\t\t * @param element\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tgetExtraSpace: function(element) {\n\t\t\t\tvar padding = parseInt($(element).css('paddingRight')) +\n\t\t\t\t\tparseInt($(element).css('paddingLeft'));\n\t\t\t\tvar margin = parseInt($(element).css('marginRight')) +\n\t\t\t\t\tparseInt($(element).css('marginLeft'));\n\t\t\t\tvar border = Math.ceil(\n\t\t\t\t\t$(element).css('border-right-width').replace('px', ''));\n\t\t\t\treturn padding + margin + border;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Insert data of array into {{ }} template placeholder\n\t\t\t * @param template\n\t\t\t * @param data\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tdataPlaceholder: function(template, data) {\n\t\t\t\tvar result = template;\n\t\t\t\t$.each(data, function(key, val) {\n\t\t\t\t\tresult = result.replace('{{' + key + '}}', val);\n\t\t\t\t});\n\t\t\t\treturn result;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get table unique ID\n\t\t\t * Note: table unique change each time refreshed\n\t\t\t * @param suffix\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tgetTableId: function(suffix) {\n\t\t\t\tif (typeof suffix === 'undefined') suffix = '';\n\t\t\t\tvar id = $(datatable).attr('id');\n\t\t\t\tif (typeof id === 'undefined') {\n\t\t\t\t\tid = $(datatable).attr('class').split(' ')[0];\n\t\t\t\t}\n\t\t\t\treturn id + suffix;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get table prefix with depth number\n\t\t\t */\n\t\t\tgetTablePrefix: function(suffix) {\n\t\t\t\tif (typeof suffix !== 'undefined') suffix = '-' + suffix;\n\t\t\t\treturn Plugin.getTableId() + '-' + Plugin.getDepth() + suffix;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get current table depth of sub table\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tgetDepth: function() {\n\t\t\t\tvar depth = 0;\n\t\t\t\tvar table = datatable.table;\n\t\t\t\tdo {\n\t\t\t\t\ttable = $(table).parents('.' + pfx + 'datatable-table');\n\t\t\t\t\tdepth++;\n\t\t\t\t} while ($(table).length > 0);\n\t\t\t\treturn depth;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Keep state item\n\t\t\t * @param key\n\t\t\t * @param value\n\t\t\t */\n\t\t\tstateKeep: function(key, value) {\n\t\t\t\tkey = Plugin.getTablePrefix(key);\n\t\t\t\tif (Plugin.getOption('data.saveState') === false) return;\n\t\t\t\tif (localStorage) {\n\t\t\t\t\tlocalStorage.setItem(key, JSON.stringify(value));\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get state item\n\t\t\t * @param key\n\t\t\t * @param defValue\n\t\t\t */\n\t\t\tstateGet: function(key, defValue) {\n\t\t\t\tkey = Plugin.getTablePrefix(key);\n\t\t\t\tif (Plugin.getOption('data.saveState') === false) return;\n\t\t\t\tvar value = null;\n\t\t\t\tif (localStorage) {\n\t\t\t\t\tvalue = localStorage.getItem(key);\n\t\t\t\t}\n\t\t\t\tif (typeof value !== 'undefined' && value !== null) {\n\t\t\t\t\treturn JSON.parse(value);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update data in state without clear existing\n\t\t\t * @param key\n\t\t\t * @param value\n\t\t\t */\n\t\t\tstateUpdate: function(key, value) {\n\t\t\t\tvar ori = Plugin.stateGet(key);\n\t\t\t\tif (typeof ori === 'undefined' || ori === null) ori = {};\n\t\t\t\tPlugin.stateKeep(key, $.extend({}, ori, value));\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Remove state item\n\t\t\t * @param key\n\t\t\t */\n\t\t\tstateRemove: function(key) {\n\t\t\t\tkey = Plugin.getTablePrefix(key);\n\t\t\t\tif (localStorage) {\n\t\t\t\t\tlocalStorage.removeItem(key);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get total columns.\n\t\t\t */\n\t\t\tgetTotalColumns: function(tablePart) {\n\t\t\t\tif (typeof tablePart === 'undefined') tablePart = datatable.tableBody;\n\t\t\t\treturn $(tablePart).find('.' + pfx + 'datatable-row').first().find('.' + pfx + 'datatable-cell').length;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get table row. Useful to get row when current table is in lock\n\t\t\t * mode. Can be used for both lock and normal table mode. By\n\t\t\t * default, returning result will be in a list of \n\t\t\t\tvar result = $(tablePart).find('.' + pfx + 'datatable-row:not(.' + pfx + 'datatable-row-detail):nth-child(' + row + ')');\n\t\t\t\tif (tdOnly) {\n\t\t\t\t\t// get list of
').\n\t\t\t\t\t\t\t\t\t\taddClass(pfx + 'datatable-cell ' + pfx + 'datatable-toggle-detail').\n\t\t\t\t\t\t\t\t\t\tappend($('').\n\t\t\t\t\t\t\t\t\t\t\taddClass(pfx + 'datatable-toggle-detail').\n\t\t\t\t\t\t\t\t\t\t\tattr('href', '').\n\t\t\t\t\t\t\t\t\t\t\ton('click', toggleHiddenColumns).\n\t\t\t\t\t\t\t\t\t\t\tappend('')));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// check if subtable toggle exist\n\t\t\t\t\t\t\tif ($(datatable.tableHead).find('.' + pfx + 'datatable-toggle-detail').length === 0) {\n\t\t\t\t\t\t\t\t// add empty column to the header and footer\n\t\t\t\t\t\t\t\t$(datatable.tableHead).\n\t\t\t\t\t\t\t\t\tfind('.' + pfx + 'datatable-row').\n\t\t\t\t\t\t\t\t\tfirst().\n\t\t\t\t\t\t\t\t\tprepend('.\n\t\t\t * @param tablePart\n\t\t\t * @param row 1-based index\n\t\t\t * @param tdOnly Optional. Default true\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tgetOneRow: function(tablePart, row, tdOnly) {\n\t\t\t\tif (typeof tdOnly === 'undefined') tdOnly = true;\n\t\t\t\t// get list of
or \n\t\t\t\t\tresult = result.find('.' + pfx + 'datatable-cell');\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sort table row at HTML level by column index.\n\t\t\t * todo; Not in use.\n\t\t\t * @param header Header sort clicked\n\t\t\t * @param sort asc|desc. Optional. Default asc\n\t\t\t * @param int Boolean. Optional. Comparison value parse to integer.\n\t\t\t * Default false\n\t\t\t */\n\t\t\tsortColumn: function(header, sort, int) {\n\t\t\t\tif (typeof sort === 'undefined') sort = 'asc'; // desc\n\t\t\t\tif (typeof int === 'undefined') int = false;\n\n\t\t\t\tvar column = $(header).index();\n\t\t\t\tvar rows = $(datatable.tableBody).find('.' + pfx + 'datatable-row');\n\t\t\t\tvar hIndex = $(header).closest('.' + pfx + 'datatable-lock').index();\n\t\t\t\tif (hIndex !== -1) {\n\t\t\t\t\trows = $(datatable.tableBody).find('.' + pfx + 'datatable-lock:nth-child(' + (hIndex + 1) + ')').find('.' + pfx + 'datatable-row');\n\t\t\t\t}\n\n\t\t\t\tvar container = $(rows).parent();\n\t\t\t\t$(rows).sort(function(a, b) {\n\t\t\t\t\tvar tda = $(a).find('td:nth-child(' + column + ')').text();\n\t\t\t\t\tvar tdb = $(b).find('td:nth-child(' + column + ')').text();\n\n\t\t\t\t\tif (int) {\n\t\t\t\t\t\t// useful for integer type sorting\n\t\t\t\t\t\ttda = parseInt(tda);\n\t\t\t\t\t\ttdb = parseInt(tdb);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (sort === 'asc') {\n\t\t\t\t\t\treturn tda > tdb ? 1 : tda < tdb ? -1 : 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn tda < tdb ? 1 : tda > tdb ? -1 : 0;\n\t\t\t\t\t}\n\t\t\t\t}).appendTo(container);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Perform sort remote and local\n\t\t\t */\n\t\t\tsorting: function() {\n\t\t\t\tvar sortObj = {\n\t\t\t\t\tinit: function() {\n\t\t\t\t\t\tif (options.sortable) {\n\t\t\t\t\t\t\t$(datatable.tableHead).\n\t\t\t\t\t\t\t\tfind('.' + pfx + 'datatable-cell:not(.' + pfx + 'datatable-cell-check)').\n\t\t\t\t\t\t\t\taddClass(pfx + 'datatable-cell-sort').\n\t\t\t\t\t\t\t\toff('click').\n\t\t\t\t\t\t\t\ton('click', sortObj.sortClick);\n\t\t\t\t\t\t\t// first init\n\t\t\t\t\t\t\tsortObj.setIcon();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tsetIcon: function() {\n\t\t\t\t\t\tvar meta = Plugin.getDataSourceParam('sort');\n\t\t\t\t\t\tif ($.isEmptyObject(meta)) return;\n\n\t\t\t\t\t\tvar column = Plugin.getColumnByField(meta.field);\n\t\t\t\t\t\t// sort is disabled for this column\n\t\t\t\t\t\tif (typeof column === 'undefined') return;\n\t\t\t\t\t\tif (typeof column.sortable !== 'undefined' && column.sortable === false) return;\n\t\t\t\t\t\tif (typeof column.selector !== 'undefined' && column.selector === true) return;\n\n\t\t\t\t\t\t// sort icon beside column header\n\t\t\t\t\t\tvar td = $(datatable.tableHead).find('.' + pfx + 'datatable-cell[data-field=\"' + meta.field + '\"]').attr('data-sort', meta.sort);\n\t\t\t\t\t\tvar sorting = $(td).find('span');\n\t\t\t\t\t\tvar icon = $(sorting).find('i');\n\n\t\t\t\t\t\tvar icons = Plugin.getOption('layout.icons.sort');\n\t\t\t\t\t\t// update sort icon; desc & asc\n\t\t\t\t\t\tif ($(icon).length > 0) {\n\t\t\t\t\t\t\t$(icon).removeAttr('class').addClass(icons[meta.sort]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(sorting).append($('').addClass(icons[meta.sort]));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// set sorted class to header on init\n\t\t\t\t\t\t$(td).addClass(pfx + 'datatable-cell-sorted');\n\t\t\t\t\t},\n\t\t\t\t\tsortClick: function(e) {\n\t\t\t\t\t\tvar meta = Plugin.getDataSourceParam('sort');\n\t\t\t\t\t\tvar field = $(this).data('field');\n\t\t\t\t\t\tvar column = Plugin.getColumnByField(field);\n\t\t\t\t\t\t// sort is disabled for this column\n\t\t\t\t\t\tif (typeof column === 'undefined') return;\n\t\t\t\t\t\tif (typeof column.sortable !== 'undefined' && column.sortable === false) return;\n\t\t\t\t\t\tif (typeof column.selector !== 'undefined' && column.selector === true) return;\n\n\t\t\t\t\t\t// set sorted class to header\n\t\t\t\t\t\t$(datatable.tableHead).find('th').removeClass(pfx + 'datatable-cell-sorted');\n\t\t\t\t\t\tutil.addClass(this, pfx + 'datatable-cell-sorted');\n\n\t\t\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'datatable-cell > span > i').remove();\n\n\t\t\t\t\t\tif (options.sortable) {\n\t\t\t\t\t\t\tPlugin.spinnerCallback(true);\n\n\t\t\t\t\t\t\tvar sort = 'desc';\n\t\t\t\t\t\t\tif (Plugin.getObject('field', meta) === field) {\n\t\t\t\t\t\t\t\tsort = Plugin.getObject('sort', meta);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// toggle sort\n\t\t\t\t\t\t\tsort = typeof sort === 'undefined' || sort === 'desc'\n\t\t\t\t\t\t\t\t? 'asc'\n\t\t\t\t\t\t\t\t: 'desc';\n\n\t\t\t\t\t\t\t// update field and sort params\n\t\t\t\t\t\t\tmeta = {field: field, sort: sort};\n\t\t\t\t\t\t\tPlugin.setDataSourceParam('sort', meta);\n\n\t\t\t\t\t\t\tsortObj.setIcon();\n\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tPlugin.dataRender('sort');\n\t\t\t\t\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-sort', meta);\n\t\t\t\t\t\t\t}, 300);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tsortObj.init();\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Update JSON data list linked with sort, filter and pagination.\n\t\t\t * Call this method, before using dataSet variable.\n\t\t\t * @returns {*|null}\n\t\t\t */\n\t\t\tlocalDataUpdate: function() {\n\t\t\t\tvar params = Plugin.getDataSourceParam();\n\t\t\t\tif (typeof datatable.originalDataSet === 'undefined') {\n\t\t\t\t\tdatatable.originalDataSet = datatable.dataSet;\n\t\t\t\t}\n\n\t\t\t\tvar field = Plugin.getObject('sort.field', params);\n\t\t\t\tvar sort = Plugin.getObject('sort.sort', params);\n\t\t\t\tvar column = Plugin.getColumnByField(field);\n\t\t\t\tif (typeof column !== 'undefined' && Plugin.getOption('data.serverSorting') !== true) {\n\t\t\t\t\tif (typeof column.sortCallback === 'function') {\n\t\t\t\t\t\tdatatable.dataSet = column.sortCallback(datatable.originalDataSet, sort, column);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdatatable.dataSet = Plugin.sortCallback(datatable.originalDataSet, sort, column);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdatatable.dataSet = datatable.originalDataSet;\n\t\t\t\t}\n\n\t\t\t\t// if server filter enable, don't pass local filter\n\t\t\t\tif (typeof params.query === 'object' && !Plugin.getOption('data.serverFiltering')) {\n\t\t\t\t\tparams.query = params.query || {};\n\n\t\t\t\t\tvar nestedSearch = function(obj) {\n\t\t\t\t\t\tfor (var field in obj) {\n\t\t\t\t\t\t\tif (!obj.hasOwnProperty(field)) continue;\n\t\t\t\t\t\t\tif (typeof obj[field] === 'string') {\n\t\t\t\t\t\t\t\tif (obj[field].toLowerCase() == search || obj[field].toLowerCase().indexOf(search) !== -1) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (typeof obj[field] === 'number') {\n\t\t\t\t\t\t\t\tif (obj[field] === search) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (typeof obj[field] === 'object') {\n\t\t\t\t\t\t\t\tif (nestedSearch(obj[field])) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t};\n\n\t\t\t\t\tvar search = $(Plugin.getOption('search.input')).val();\n\t\t\t\t\tif (typeof search !== 'undefined' && search !== '') {\n\t\t\t\t\t\tsearch = search.toLowerCase();\n\t\t\t\t\t\tdatatable.dataSet = $.grep(datatable.dataSet, nestedSearch);\n\t\t\t\t\t\t// remove generalSearch as we don't need this for next columns filter\n\t\t\t\t\t\tdelete params.query[Plugin.getGeneralSearchKey()];\n\t\t\t\t\t}\n\n\t\t\t\t\t// remove empty element from array\n\t\t\t\t\t$.each(params.query, function(k, v) {\n\t\t\t\t\t\tif (v === '') {\n\t\t\t\t\t\t\tdelete params.query[k];\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// filter array by query\n\t\t\t\t\tdatatable.dataSet = Plugin.filterArray(datatable.dataSet, params.query);\n\n\t\t\t\t\t// reset array index\n\t\t\t\t\tdatatable.dataSet = datatable.dataSet.filter(function() {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn datatable.dataSet;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Utility helper to filter array by object pair of {key:value}\n\t\t\t * @param list\n\t\t\t * @param args\n\t\t\t * @param operator\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tfilterArray: function(list, args, operator) {\n\t\t\t\tif (typeof list !== 'object') {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tif (typeof operator === 'undefined') operator = 'AND';\n\n\t\t\t\tif (typeof args !== 'object') {\n\t\t\t\t\treturn list;\n\t\t\t\t}\n\n\t\t\t\toperator = operator.toUpperCase();\n\n\t\t\t\tif ($.inArray(operator, ['AND', 'OR', 'NOT']) === -1) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tvar count = Object.keys(args).length;\n\t\t\t\tvar filtered = [];\n\n\t\t\t\t$.each(list, function(key, obj) {\n\t\t\t\t\tvar to_match = obj;\n\n\t\t\t\t\tvar matched = 0;\n\t\t\t\t\t$.each(args, function(m_key, m_value) {\n\t\t\t\t\t\tm_value = m_value instanceof Array ? m_value : [m_value];\n\t\t\t\t\t\tvar match_property = Plugin.getObject(m_key, to_match);\n\t\t\t\t\t\tif (typeof match_property !== 'undefined' && match_property) {\n\t\t\t\t\t\t\tvar lhs = match_property.toString().toLowerCase();\n\t\t\t\t\t\t\tm_value.forEach(function(item, index) {\n\t\t\t\t\t\t\t\tif (item.toString().toLowerCase() == lhs || lhs.indexOf(item.toString().toLowerCase()) !== -1) {\n\t\t\t\t\t\t\t\t\tmatched++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (('AND' == operator && matched == count) ||\n\t\t\t\t\t\t('OR' == operator && matched > 0) ||\n\t\t\t\t\t\t('NOT' == operator && 0 == matched)) {\n\t\t\t\t\t\tfiltered[key] = obj;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tlist = filtered;\n\n\t\t\t\treturn list;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Reset lock column scroll to 0 when resize\n\t\t\t */\n\t\t\tresetScroll: function() {\n\t\t\t\tif (typeof options.detail === 'undefined' && Plugin.getDepth() === 1) {\n\t\t\t\t\t$(datatable.table).find('.' + pfx + 'datatable-row').css('left', 0);\n\t\t\t\t\t$(datatable.table).find('.' + pfx + 'datatable-lock').css('top', 0);\n\t\t\t\t\t$(datatable.tableBody).scrollTop(0);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get column options by field\n\t\t\t * @param field\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tgetColumnByField: function(field) {\n\t\t\t\tif (typeof field === 'undefined') return;\n\t\t\t\tvar result;\n\t\t\t\t$.each(options.columns, function(i, column) {\n\t\t\t\t\tif (field === column.field) {\n\t\t\t\t\t\tresult = column;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn result;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get default sort column\n\t\t\t */\n\t\t\tgetDefaultSortColumn: function() {\n\t\t\t\tvar result;\n\t\t\t\t$.each(options.columns, function(i, column) {\n\t\t\t\t\tif (typeof column.sortable !== 'undefined'\n\t\t\t\t\t\t&& $.inArray(column.sortable, ['asc', 'desc']) !== -1) {\n\t\t\t\t\t\tresult = {sort: column.sortable, field: column.field};\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn result;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Helper to get element dimensions, when the element is hidden\n\t\t\t * @param element\n\t\t\t * @param includeMargin\n\t\t\t * @returns {{width: number, height: number, innerWidth: number,\n\t\t\t * innerHeight: number, outerWidth: number, outerHeight:\n\t\t\t * number}}\n\t\t\t */\n\t\t\tgetHiddenDimensions: function(element, includeMargin) {\n\t\t\t\tvar props = {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t\tdim = {\n\t\t\t\t\t\twidth: 0,\n\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\tinnerWidth: 0,\n\t\t\t\t\t\tinnerHeight: 0,\n\t\t\t\t\t\touterWidth: 0,\n\t\t\t\t\t\touterHeight: 0,\n\t\t\t\t\t},\n\t\t\t\t\thiddenParents = $(element).parents().addBack().not(':visible');\n\t\t\t\tincludeMargin = (typeof includeMargin === 'boolean')\n\t\t\t\t\t? includeMargin\n\t\t\t\t\t: false;\n\n\t\t\t\tvar oldProps = [];\n\t\t\t\thiddenParents.each(function() {\n\t\t\t\t\tvar old = {};\n\n\t\t\t\t\tfor (var name in props) {\n\t\t\t\t\t\told[name] = this.style[name];\n\t\t\t\t\t\tthis.style[name] = props[name];\n\t\t\t\t\t}\n\n\t\t\t\t\toldProps.push(old);\n\t\t\t\t});\n\n\t\t\t\tdim.width = $(element).width();\n\t\t\t\tdim.outerWidth = $(element).outerWidth(includeMargin);\n\t\t\t\tdim.innerWidth = $(element).innerWidth();\n\t\t\t\tdim.height = $(element).height();\n\t\t\t\tdim.innerHeight = $(element).innerHeight();\n\t\t\t\tdim.outerHeight = $(element).outerHeight(includeMargin);\n\n\t\t\t\thiddenParents.each(function(i) {\n\t\t\t\t\tvar old = oldProps[i];\n\t\t\t\t\tfor (var name in props) {\n\t\t\t\t\t\tthis.style[name] = old[name];\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn dim;\n\t\t\t},\n\n\t\t\tgetGeneralSearchKey: function() {\n\t\t\t\tvar searchInput = $(Plugin.getOption('search.input'));\n\t\t\t\treturn Plugin.getOption('search.key') || $(searchInput).prop('name');\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get value by dot notation path string and to prevent undefined\n\t\t\t * errors\n\t\t\t * @param path String Dot notation path in string\n\t\t\t * @param object Object to iterate\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tgetObject: function(path, object) {\n\t\t\t\treturn path.split('.').reduce(function(obj, i) {\n\t\t\t\t\treturn obj !== null && typeof obj[i] !== 'undefined' ? obj[i] : null;\n\t\t\t\t}, object);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Extend object\n\t\t\t * @param obj\n\t\t\t * @param path\n\t\t\t * @param value\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\textendObj: function(obj, path, value) {\n\t\t\t\tvar levels = path.split('.'),\n\t\t\t\t\ti = 0;\n\n\t\t\t\tfunction createLevel(child) {\n\t\t\t\t\tvar name = levels[i++];\n\t\t\t\t\tif (typeof child[name] !== 'undefined' && child[name] !== null) {\n\t\t\t\t\t\tif (typeof child[name] !== 'object' &&\n\t\t\t\t\t\t\ttypeof child[name] !== 'function') {\n\t\t\t\t\t\t\tchild[name] = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild[name] = {};\n\t\t\t\t\t}\n\t\t\t\t\tif (i === levels.length) {\n\t\t\t\t\t\tchild[name] = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcreateLevel(child[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcreateLevel(obj);\n\t\t\t\treturn obj;\n\t\t\t},\n\n\t\t\trowEvenOdd: function() {\n\t\t\t\t// row even class\n\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'datatable-row').removeClass(pfx + 'datatable-row-even');\n\t\t\t\tif ($(datatable.wrap).hasClass(pfx + 'datatable-subtable')) {\n\t\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'datatable-row:not(.' + pfx + 'datatable-row-detail):even').addClass(pfx + 'datatable-row-even');\n\t\t\t\t} else {\n\t\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'datatable-row:nth-child(even)').addClass(pfx + 'datatable-row-even');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/********************\n\t\t\t ** PUBLIC API METHODS\n\t\t\t ********************/\n\n\t\t\t// delay timer\n\t\t\ttimer: 0,\n\n\t\t\t/**\n\t\t\t * Redraw datatable by recalculating its DOM elements, etc.\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tredraw: function() {\n\t\t\t\tPlugin.adjustCellsWidth.call();\n\t\t\t\tif (Plugin.isLocked()) {\n\t\t\t\t\t// fix hiding cell width issue\n\t\t\t\t\tPlugin.scrollbar();\n\t\t\t\t\tPlugin.resetScroll();\n\t\t\t\t\tPlugin.adjustCellsHeight.call();\n\t\t\t\t}\n\t\t\t\tPlugin.adjustLockContainer.call();\n\t\t\t\tPlugin.initHeight.call();\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Shortcode to reload\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tload: function() {\n\t\t\t\tPlugin.reload();\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Datasource reload\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\treload: function() {\n\t\t\t\tvar delay = (function() {\n\t\t\t\t\treturn function(callback, ms) {\n\t\t\t\t\t\tclearTimeout(Plugin.timer);\n\t\t\t\t\t\tPlugin.timer = setTimeout(callback, ms);\n\t\t\t\t\t};\n\t\t\t\t})();\n\t\t\t\tdelay(function() {\n\t\t\t\t\t// local only. remote pagination will skip this block\n\t\t\t\t\tif (!options.data.serverFiltering) {\n\t\t\t\t\t\tPlugin.localDataUpdate();\n\t\t\t\t\t}\n\t\t\t\t\tPlugin.dataRender();\n\t\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-reloaded');\n\t\t\t\t}, Plugin.getOption('search.delay'));\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get record by record ID\n\t\t\t * @param id\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tgetRecord: function(id) {\n\t\t\t\tif (typeof datatable.tableBody === 'undefined') datatable.tableBody = $(datatable.table).children('tbody');\n\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'datatable-cell:first-child').each(function(i, cell) {\n\t\t\t\t\tif (id == $(cell).text()) {\n\t\t\t\t\t\tvar rowNumber = $(cell).closest('.' + pfx + 'datatable-row').index() + 1;\n\t\t\t\t\t\tdatatable.API.record = datatable.API.value = Plugin.getOneRow(datatable.tableBody, rowNumber);\n\t\t\t\t\t\treturn datatable;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * @deprecated in v5.0.6\n\t\t\t * Get column of current record ID\n\t\t\t * @param columnName\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tgetColumn: function(columnName) {\n\t\t\t\tPlugin.setSelectedRecords();\n\t\t\t\tdatatable.API.value = $(datatable.API.record).find('[data-field=\"' + columnName + '\"]');\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Destroy datatable to original DOM state before datatable was\n\t\t\t * initialized\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tdestroy: function() {\n\t\t\t\t$(datatable).parent().find('.' + pfx + 'datatable-pager').remove();\n\t\t\t\tvar initialDatatable = $(datatable.initialDatatable).addClass(pfx + 'datatable-destroyed').show();\n\t\t\t\t$(datatable).replaceWith(initialDatatable);\n\t\t\t\tdatatable = initialDatatable;\n\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-destroy');\n\t\t\t\tPlugin.isInit = false;\n\n\t\t\t\t// clean up variables\n\t\t\t\tinitialDatatable = null;\n\t\t\t\tdatatable.dataSet = null;\n\t\t\t\tdatatable.originalDataSet = null;\n\t\t\t\tdatatable.tableHead = null;\n\t\t\t\tdatatable.tableBody = null;\n\t\t\t\tdatatable.table = null;\n\t\t\t\tdatatable.wrap = null;\n\t\t\t\tdatatable.API = {\n\t\t\t\t\trecord: null,\n\t\t\t\t\tvalue: null,\n\t\t\t\t\tparams: null,\n\t\t\t\t};\n\n\t\t\t\tPlugin.ajaxParams = {};\n\t\t\t\tPlugin.pagingObject = {};\n\t\t\t\tPlugin.nodeTr = [];\n\t\t\t\tPlugin.nodeTd = [];\n\t\t\t\tPlugin.nodeCols = [];\n\t\t\t\tPlugin.recentNode = [];\n\n\t\t\t\treturn initialDatatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sort by column field\n\t\t\t * @param field\n\t\t\t * @param sort\n\t\t\t */\n\t\t\tsort: function(field, sort) {\n\t\t\t\t// toggle sort\n\t\t\t\tsort = typeof sort === 'undefined' ? 'asc' : sort;\n\n\t\t\t\tPlugin.spinnerCallback(true);\n\n\t\t\t\t// update field and sort params\n\t\t\t\tvar meta = {field: field, sort: sort};\n\t\t\t\tPlugin.setDataSourceParam('sort', meta);\n\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tPlugin.dataRender('sort');\n\t\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-sort', meta);\n\t\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'datatable-cell > span > i').remove();\n\t\t\t\t}, 300);\n\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * @deprecated in v5.0.6\n\t\t\t * Get current selected column value\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tgetValue: function() {\n\t\t\t\treturn $(datatable.API.value).text();\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set checkbox active\n\t\t\t * @param cell JQuery selector or checkbox ID\n\t\t\t */\n\t\t\tsetActive: function(cell) {\n\t\t\t\tif (typeof cell === 'string') {\n\t\t\t\t\t// set by checkbox id\n\t\t\t\t\tcell = $(datatable.tableBody).find('.' + pfx + 'checkbox-single > [type=\"checkbox\"][value=\"' + cell + '\"]');\n\t\t\t\t}\n\n\t\t\t\t$(cell).prop('checked', true);\n\n\t\t\t\tvar ids = [];\n\t\t\t\t$(cell).each(function(i, td) {\n\t\t\t\t\t// normal table\n\t\t\t\t\tvar row = $(td).closest('tr').addClass(pfx + 'datatable-row-active');\n\n\t\t\t\t\tvar id = $(td).attr('value');\n\t\t\t\t\tif (typeof id !== 'undefined') {\n\t\t\t\t\t\tids.push(id);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-check', [ids]);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set checkbox inactive\n\t\t\t * @param cell JQuery selector or checkbox ID\n\t\t\t */\n\t\t\tsetInactive: function(cell) {\n\t\t\t\tif (typeof cell === 'string') {\n\t\t\t\t\t// set by checkbox id\n\t\t\t\t\tcell = $(datatable.tableBody).find('.' + pfx + 'checkbox-single > [type=\"checkbox\"][value=\"' + cell + '\"]');\n\t\t\t\t}\n\n\t\t\t\t$(cell).prop('checked', false);\n\n\t\t\t\tvar ids = [];\n\t\t\t\t$(cell).each(function(i, td) {\n\t\t\t\t\t// normal table\n\t\t\t\t\tvar row = $(td).closest('tr').removeClass(pfx + 'datatable-row-active');\n\n\t\t\t\t\tvar id = $(td).attr('value');\n\t\t\t\t\tif (typeof id !== 'undefined') {\n\t\t\t\t\t\tids.push(id);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-uncheck', [ids]);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set all checkboxes active or inactive\n\t\t\t * @param active\n\t\t\t */\n\t\t\tsetActiveAll: function(active) {\n\t\t\t\tvar checkboxes = $(datatable.table).\n\t\t\t\t\tfind('> tbody, > thead').\n\t\t\t\t\tfind('tr').not('.' + pfx + 'datatable-row-subtable').\n\t\t\t\t\tfind('.' + pfx + 'datatable-cell-check [type=\"checkbox\"]');\n\t\t\t\tif (active) {\n\t\t\t\t\tPlugin.setActive(checkboxes);\n\t\t\t\t} else {\n\t\t\t\t\tPlugin.setInactive(checkboxes);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * @deprecated in v5.0.6\n\t\t\t * Get selected rows which are active\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tsetSelectedRecords: function() {\n\t\t\t\tdatatable.API.record = $(datatable.tableBody).find('.' + pfx + 'datatable-row-active');\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get selected records\n\t\t\t * @returns {null}\n\t\t\t */\n\t\t\tgetSelectedRecords: function() {\n\t\t\t\t// support old method\n\t\t\t\tPlugin.setSelectedRecords();\n\t\t\t\tdatatable.API.record = datatable.rows('.' + pfx + 'datatable-row-active').nodes();\n\t\t\t\treturn datatable.API.record;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get options by dots notation path\n\t\t\t * @param path String Dot notation path in string\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tgetOption: function(path) {\n\t\t\t\treturn Plugin.getObject(path, options);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set global options nodes by dots notation path\n\t\t\t * @param path\n\t\t\t * @param object\n\t\t\t */\n\t\t\tsetOption: function(path, object) {\n\t\t\t\toptions = Plugin.extendObj(options, path, object);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Search filter for local & remote\n\t\t\t * @param value\n\t\t\t * @param columns. Optional list of columns to be filtered.\n\t\t\t */\n\t\t\tsearch: function(value, columns) {\n\t\t\t\tif (typeof columns !== 'undefined') columns = $.makeArray(columns);\n\t\t\t\tvar delay = (function() {\n\t\t\t\t\treturn function(callback, ms) {\n\t\t\t\t\t\tclearTimeout(Plugin.timer);\n\t\t\t\t\t\tPlugin.timer = setTimeout(callback, ms);\n\t\t\t\t\t};\n\t\t\t\t})();\n\n\t\t\t\tdelay(function() {\n\t\t\t\t\t// get query parameters\n\t\t\t\t\tvar query = Plugin.getDataSourceQuery();\n\n\t\t\t\t\t// search not by columns\n\t\t\t\t\tif (typeof columns === 'undefined' && typeof value !== 'undefined') {\n\t\t\t\t\t\tvar key = Plugin.getGeneralSearchKey();\n\t\t\t\t\t\tquery[key] = value;\n\t\t\t\t\t}\n\n\t\t\t\t\t// search by columns, support multiple columns\n\t\t\t\t\tif (typeof columns === 'object') {\n\t\t\t\t\t\t$.each(columns, function(k, column) {\n\t\t\t\t\t\t\tquery[column] = value;\n\t\t\t\t\t\t});\n\t\t\t\t\t\t// remove empty element from arrays\n\t\t\t\t\t\t$.each(query, function(k, v) {\n\t\t\t\t\t\t\tif (v === '' || $.isEmptyObject(v)) {\n\t\t\t\t\t\t\t\tdelete query[k];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tPlugin.setDataSourceQuery(query);\n\n\t\t\t\t\t// reset pagination to 1 when doing seearching\n\t\t\t\t\tdatatable.setDataSourceParam('pagination', Object.assign({}, datatable.getDataSourceParam('pagination'), {page: 1}));\n\n\t\t\t\t\t// local filter only. remote pagination will skip this block\n\t\t\t\t\tif (!options.data.serverFiltering) {\n\t\t\t\t\t\tPlugin.localDataUpdate();\n\t\t\t\t\t}\n\t\t\t\t\tPlugin.dataRender('search');\n\t\t\t\t}, Plugin.getOption('search.delay'));\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Set datasource params extract\n\t\t\t * @param param\n\t\t\t * @param value\n\t\t\t */\n\t\t\tsetDataSourceParam: function(param, value) {\n\t\t\t\tdatatable.API.params = $.extend({}, {\n\t\t\t\t\tpagination: {page: 1, perpage: Plugin.getOption('data.pageSize')},\n\t\t\t\t\tsort: Plugin.getDefaultSortColumn(),\n\t\t\t\t\tquery: {},\n\t\t\t\t}, datatable.API.params, Plugin.stateGet(Plugin.stateId));\n\n\t\t\t\tdatatable.API.params = Plugin.extendObj(datatable.API.params, param, value);\n\n\t\t\t\tPlugin.stateKeep(Plugin.stateId, datatable.API.params);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get datasource params\n\t\t\t * @param param\n\t\t\t */\n\t\t\tgetDataSourceParam: function(param) {\n\t\t\t\tdatatable.API.params = $.extend({}, {\n\t\t\t\t\tpagination: {page: 1, perpage: Plugin.getOption('data.pageSize')},\n\t\t\t\t\tsort: Plugin.getDefaultSortColumn(),\n\t\t\t\t\tquery: {},\n\t\t\t\t}, datatable.API.params, Plugin.stateGet(Plugin.stateId));\n\n\t\t\t\tif (typeof param === 'string') {\n\t\t\t\t\treturn Plugin.getObject(param, datatable.API.params);\n\t\t\t\t}\n\n\t\t\t\treturn datatable.API.params;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Shortcode to datatable.getDataSourceParam('query');\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tgetDataSourceQuery: function() {\n\t\t\t\treturn Plugin.getDataSourceParam('query') || {};\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Shortcode to datatable.setDataSourceParam('query', query);\n\t\t\t * @param query\n\t\t\t */\n\t\t\tsetDataSourceQuery: function(query) {\n\t\t\t\tPlugin.setDataSourceParam('query', query);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get current page number\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tgetCurrentPage: function() {\n\t\t\t\treturn $(datatable.table).\n\t\t\t\t\tsiblings('.' + pfx + 'datatable-pager').\n\t\t\t\t\tlast().\n\t\t\t\t\tfind('.' + pfx + 'datatable-pager-nav').\n\t\t\t\t\tfind('.' + pfx + 'datatable-pager-link.' + pfx + 'datatable-pager-link-active').\n\t\t\t\t\tdata('page') || 1;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get selected dropdown page size\n\t\t\t * @returns {*|number}\n\t\t\t */\n\t\t\tgetPageSize: function() {\n\t\t\t\treturn $(datatable.table).siblings('.' + pfx + 'datatable-pager').last().find('select.' + pfx + 'datatable-pager-size').val() || 10;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get total rows\n\t\t\t */\n\t\t\tgetTotalRows: function() {\n\t\t\t\treturn datatable.API.params.pagination.total;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get full dataset in grid\n\t\t\t * @returns {*|null|Array}\n\t\t\t */\n\t\t\tgetDataSet: function() {\n\t\t\t\treturn datatable.originalDataSet;\n\t\t\t},\n\n\t\t\tnodeTr: [],\n\t\t\tnodeTd: [],\n\t\t\tnodeCols: [],\n\t\t\trecentNode: [],\n\n\t\t\ttable: function() {\n\t\t\t\tif (typeof datatable.table !== 'undefined') {\n\t\t\t\t\treturn datatable.table;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Select a single row from the table\n\t\t\t * @param selector\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\trow: function(selector) {\n\t\t\t\tPlugin.rows(selector);\n\t\t\t\tPlugin.nodeTr = Plugin.recentNode = $(Plugin.nodeTr).first();\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Select multiple rows from the table\n\t\t\t * @param selector\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\trows: function(selector) {\n\t\t\t\tif (Plugin.isLocked()) {\n\t\t\t\t\tPlugin.nodeTr = Plugin.recentNode = $(datatable.tableBody).find(selector).filter('.' + pfx + 'datatable-lock-scroll > .' + pfx + 'datatable-row');\n\t\t\t\t} else {\n\t\t\t\t\tPlugin.nodeTr = Plugin.recentNode = $(datatable.tableBody).find(selector).filter('.' + pfx + 'datatable-row');\n\t\t\t\t}\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Select a single column from the table\n\t\t\t * @param index zero-based index\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tcolumn: function(index) {\n\t\t\t\tPlugin.nodeCols = Plugin.recentNode = $(datatable.tableBody).find('.' + pfx + 'datatable-cell:nth-child(' + (index + 1) + ')');\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Select multiple columns from the table\n\t\t\t * @param selector\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tcolumns: function(selector) {\n\t\t\t\tvar context = datatable.table;\n\t\t\t\tif (Plugin.nodeTr === Plugin.recentNode) {\n\t\t\t\t\tcontext = Plugin.nodeTr;\n\t\t\t\t}\n\t\t\t\tvar columns = $(context).find('.' + pfx + 'datatable-cell[data-field=\"' + selector + '\"]');\n\t\t\t\tif (columns.length > 0) {\n\t\t\t\t\tPlugin.nodeCols = Plugin.recentNode = columns;\n\t\t\t\t} else {\n\t\t\t\t\tPlugin.nodeCols = Plugin.recentNode = $(context).find(selector).filter('.' + pfx + 'datatable-cell');\n\t\t\t\t}\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\tcell: function(selector) {\n\t\t\t\tPlugin.cells(selector);\n\t\t\t\tPlugin.nodeTd = Plugin.recentNode = $(Plugin.nodeTd).first();\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\tcells: function(selector) {\n\t\t\t\tvar cells = $(datatable.tableBody).find('.' + pfx + 'datatable-cell');\n\t\t\t\tif (typeof selector !== 'undefined') {\n\t\t\t\t\tcells = $(cells).filter(selector);\n\t\t\t\t}\n\t\t\t\tPlugin.nodeTd = Plugin.recentNode = cells;\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Delete the selected row from the table\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tremove: function() {\n\t\t\t\tif ($(Plugin.nodeTr.length) && Plugin.nodeTr === Plugin.recentNode) {\n\t\t\t\t\t$(Plugin.nodeTr).remove();\n\t\t\t\t}\n\t\t\t\tPlugin.layoutUpdate();\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Show or hide the columns or rows\n\t\t\t */\n\t\t\tvisible: function(bool) {\n\t\t\t\tif ($(Plugin.recentNode.length)) {\n\t\t\t\t\tvar locked = Plugin.lockEnabledColumns();\n\t\t\t\t\tif (Plugin.recentNode === Plugin.nodeCols) {\n\t\t\t\t\t\tvar index = Plugin.recentNode.index();\n\n\t\t\t\t\t\tif (Plugin.isLocked()) {\n\t\t\t\t\t\t\tvar scrollColumns = $(Plugin.recentNode).closest('.' + pfx + 'datatable-lock-scroll').length;\n\t\t\t\t\t\t\tif (scrollColumns) {\n\t\t\t\t\t\t\t\t// is at center of scrollable area\n\t\t\t\t\t\t\t\tindex += locked.left.length + 1;\n\t\t\t\t\t\t\t} else if ($(Plugin.recentNode).closest('.' + pfx + 'datatable-lock-right').length) {\n\t\t\t\t\t\t\t\t// is at the right locked table\n\t\t\t\t\t\t\t\tindex += locked.left.length + scrollColumns + 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (bool) {\n\t\t\t\t\t\tif (Plugin.recentNode === Plugin.nodeCols) {\n\t\t\t\t\t\t\tdelete options.columns[index].visible;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(Plugin.recentNode).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (Plugin.recentNode === Plugin.nodeCols) {\n\t\t\t\t\t\t\tPlugin.setOption('columns.' + (index) + '.visible', false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(Plugin.recentNode).hide();\n\t\t\t\t\t}\n\t\t\t\t\tPlugin.columnHide();\n\t\t\t\t\tPlugin.redraw();\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get the the DOM element for the selected rows or columns\n\t\t\t * @returns {Array}\n\t\t\t */\n\t\t\tnodes: function() {\n\t\t\t\treturn Plugin.recentNode;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * will be implemented soon\n\t\t\t * @returns {jQuery}\n\t\t\t */\n\t\t\tdataset: function() {\n\t\t\t\treturn datatable;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Open page by number\n\t\t\t * @param page number\n\t\t\t */\n\t\t\tgotoPage: function (page) {\n\t\t\t\tif (typeof Plugin.pagingObject !== 'undefined') {\n\t\t\t\t\tPlugin.isInit = true;\n\t\t\t\t\tPlugin.pagingObject.openPage(page);\n\t\t\t\t}\n\t\t\t},\n\n\t\t};\n\n\t\t/**\n\t\t * Public API methods can be used directly by datatable\n\t\t */\n\t\t$.each(Plugin, function(funcName, func) {\n\t\t\tdatatable[funcName] = func;\n\t\t});\n\n\t\t// initialize main datatable plugin\n\t\tif (typeof options !== 'undefined') {\n\t\t\tif (typeof options === 'string') {\n\t\t\t\tvar method = options;\n\t\t\t\tdatatable = $(this).data(pluginName);\n\t\t\t\tif (typeof datatable !== 'undefined') {\n\t\t\t\t\toptions = datatable.options;\n\t\t\t\t\tPlugin[method].apply(this, Array.prototype.slice.call(arguments, 1));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!datatable.data(pluginName) && !$(this).hasClass(pfx + 'datatable-loaded')) {\n\t\t\t\t\tdatatable.dataSet = null;\n\t\t\t\t\tdatatable.textAlign = {\n\t\t\t\t\t\tleft: pfx + 'datatable-cell-left',\n\t\t\t\t\t\tcenter: pfx + 'datatable-cell-center',\n\t\t\t\t\t\tright: pfx + 'datatable-cell-right',\n\t\t\t\t\t};\n\n\t\t\t\t\t// merge default and user defined options\n\t\t\t\t\toptions = $.extend(true, {}, $.fn[pluginName].defaults, options);\n\n\t\t\t\t\tdatatable.options = options;\n\n\t\t\t\t\t// init plugin process\n\t\t\t\t\tPlugin.init.apply(this, [options]);\n\n\t\t\t\t\t$(datatable.wrap).data(pluginName, datatable);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// get existing instance datatable\n\t\t\tdatatable = $(this).data(pluginName);\n\t\t\tif (typeof datatable === 'undefined') {\n\t\t\t\t$.error(pluginName + ' not initialized');\n\t\t\t}\n\t\t\toptions = datatable.options;\n\t\t}\n\n\t\treturn datatable;\n\t};\n\n\t// default options\n\t$.fn[pluginName].defaults = {\n\t\t// datasource definition\n\t\tdata: {\n\t\t\ttype: 'local',\n\t\t\tsource: null,\n\t\t\tpageSize: 10, // display records per page\n\t\t\tsaveState: true,\n\n\t\t\tserverPaging: false,\n\t\t\tserverFiltering: false,\n\t\t\tserverSorting: false,\n\n\t\t\tautoColumns: false,\n\t\t\tattr: {\n\t\t\t\trowProps: [],\n\t\t\t},\n\t\t},\n\n\t\t// layout definition\n\t\tlayout: {\n\t\t\ttheme: 'default', // datatable will support multiple themes and designs\n\t\t\tclass: pfx + 'datatable-primary', // custom wrapper class\n\t\t\tscroll: false, // enable/disable datatable scroll both horizontal and vertical when needed.\n\t\t\theight: null, // datatable's body's fixed height\n\t\t\tminHeight: null,\n\t\t\tfooter: false, // display/hide footer\n\t\t\theader: true, // display/hide header\n\t\t\tcustomScrollbar: true, // set false to disable custom scrollbar\n\n\t\t\t// datatable spinner\n\t\t\tspinner: {\n\t\t\t\toverlayColor: '#000000',\n\t\t\t\topacity: 0,\n\t\t\t\ttype: 'loader',\n\t\t\t\tstate: 'primary',\n\t\t\t\tmessage: true,\n\t\t\t},\n\n\t\t\t// datatable UI icons\n\t\t\ticons: {\n\t\t\t\tsort: {asc: 'flaticon2-arrow-up', desc: 'flaticon2-arrow-down'},\n\t\t\t\tpagination: {\n\t\t\t\t\tnext: 'flaticon2-next',\n\t\t\t\t\tprev: 'flaticon2-back',\n\t\t\t\t\tfirst: 'flaticon2-fast-back',\n\t\t\t\t\tlast: 'flaticon2-fast-next',\n\t\t\t\t\tmore: 'flaticon-more-1',\n\t\t\t\t},\n\t\t\t\trowDetail: {expand: 'fa-light fa-caret-down', collapse: 'fa-light fa-caret-right'},\n\t\t\t},\n\t\t},\n\n\t\t// column sorting\n\t\tsortable: true,\n\n\t\t// resize column size with mouse drag coming soon)\n\t\tresizable: false,\n\n\t\t// column based filtering (coming soon)\n\t\tfilterable: false,\n\n\t\tpagination: true,\n\n\t\t// inline and bactch editing (cooming soon)\n\t\teditable: false,\n\n\t\t// columns definition\n\t\tcolumns: [],\n\n\t\tsearch: {\n\t\t\t// enable trigger search by keyup enter\n\t\t\tonEnter: false,\n\t\t\t// input text for search\n\t\t\tinput: null,\n\t\t\t// search delay in milliseconds\n\t\t\tdelay: 400,\n\t\t\t//\tremote server search key value\n\t\t\tkey: null\n\t\t},\n\n\t\trows: {\n\t\t\t// deprecated\n\t\t\tcallback: function() {\n\t\t\t},\n\t\t\t// call before row template\n\t\t\tbeforeTemplate: function() {\n\t\t\t},\n\t\t\t// call after row template\n\t\t\tafterTemplate: function() {\n\t\t\t},\n\t\t\tautoHide: true,\n\t\t},\n\n\t\t// toolbar\n\t\ttoolbar: {\n\t\t\t// place pagination and displayInfo blocks according to the array order\n\t\t\tlayout: ['pagination', 'info'],\n\n\t\t\t// toolbar placement can be at top or bottom or both top and bottom repeated\n\t\t\tplacement: ['bottom'], //'top', 'bottom'\n\n\t\t\t// toolbar items\n\t\t\titems: {\n\t\t\t\t// pagination\n\t\t\t\tpagination: {\n\t\t\t\t\t// pagination type(default or scroll)\n\t\t\t\t\ttype: 'default',\n\n\t\t\t\t\t// number of pages to display by breakpoints\n\t\t\t\t\tpages: {\n\t\t\t\t\t\tdesktop: {\n\t\t\t\t\t\t\tlayout: 'default',\n\t\t\t\t\t\t\tpagesNumber: 5,\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttablet: {\n\t\t\t\t\t\t\tlayout: 'default',\n\t\t\t\t\t\t\tpagesNumber: 3,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmobile: {\n\t\t\t\t\t\t\tlayout: 'compact',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\n\t\t\t\t\t// navigation buttons\n\t\t\t\t\tnavigation: {\n\t\t\t\t\t\tprev: true, // display prev button\n\t\t\t\t\t\tnext: true, // display next button\n\t\t\t\t\t\tfirst: true, // display first button\n\t\t\t\t\t\tlast: true, // display last button\n\t\t\t\t\t\tmore: false // display more button\n\t\t\t\t\t},\n\n\t\t\t\t\t// page size select\n\t\t\t\t\tpageSizeSelect: [], // display dropdown to select pagination size. -1 is used for \"ALl\" option\n\t\t\t\t},\n\n\t\t\t\t// records info\n\t\t\t\tinfo: true,\n\t\t\t},\n\t\t},\n\n\t\t// here we will keep all strings and message used by datatable UI so developer can easiliy translate to any language.\n\t\t// By default the stirngs will be in the plugin source and here can override it\n\t\ttranslate: {\n\t\t\trecords: {\n\t\t\t\tprocessing: 'Please wait...',\n\t\t\t\tnoRecords: 'No records found',\n\t\t\t},\n\t\t\ttoolbar: {\n\t\t\t\tpagination: {\n\t\t\t\t\titems: {\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tfirst: 'First',\n\t\t\t\t\t\t\tprev: 'Previous',\n\t\t\t\t\t\t\tnext: 'Next',\n\t\t\t\t\t\t\tlast: 'Last',\n\t\t\t\t\t\t\tmore: 'More pages',\n\t\t\t\t\t\t\tinput: 'Page number',\n\t\t\t\t\t\t\tselect: 'Select page size',\n\t\t\t\t\t\t\tall: 'all',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinfo: 'Showing {{start}} - {{end}} of {{total}}',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\textensions: {},\n\t};\n\n}(jQuery));\n","\"use strict\";\n(function($) {\n\n\tvar pluginName = 'KTDatatable';\n\tvar pfx = '';\n\n\t$.fn[pluginName] = $.fn[pluginName] || {};\n\n\t/**\n\t * @param datatable Main datatable plugin instance\n\t * @param options Extension options\n\t * @returns {*}\n\t */\n\t$.fn[pluginName].checkbox = function(datatable, options) {\n\t\tvar Extension = {\n\t\t\tselectedAllRows: false,\n\t\t\tselectedRows: [],\n\t\t\tunselectedRows: [],\n\n\t\t\tinit: function() {\n\t\t\t\tif (Extension.selectorEnabled()) {\n\t\t\t\t\t// reset\n\t\t\t\t\tdatatable.setDataSourceParam(options.vars.selectedAllRows, false);\n\t\t\t\t\tdatatable.stateRemove('checkbox');\n\n\t\t\t\t\t// requestIds is not null\n\t\t\t\t\tif (options.vars.requestIds) {\n\t\t\t\t\t\t// request ids in response\n\t\t\t\t\t\tdatatable.setDataSourceParam(options.vars.requestIds, true);\n\t\t\t\t\t}\n\n\t\t\t\t\t// remove selected checkbox on datatable reload\n\t\t\t\t\t$(datatable).on(pfx + 'datatable-on-reloaded', function() {\n\t\t\t\t\t\tdatatable.stateRemove('checkbox');\n\t\t\t\t\t\tdatatable.setDataSourceParam(options.vars.selectedAllRows, false);\n\t\t\t\t\t\tExtension.selectedAllRows = false;\n\t\t\t\t\t\tExtension.selectedRows = [];\n\t\t\t\t\t\tExtension.unselectedRows = [];\n\t\t\t\t\t});\n\n\t\t\t\t\t// select all on extension init\n\t\t\t\t\tExtension.selectedAllRows = datatable.getDataSourceParam(options.vars.selectedAllRows);\n\n\t\t\t\t\t$(datatable).on(pfx + 'datatable-on-layout-updated', function(e, args) {\n\t\t\t\t\t\tif (args.table != $(datatable.wrap).attr('id')) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdatatable.ready(function() {\n\t\t\t\t\t\t\tExtension.initVars();\n\t\t\t\t\t\t\tExtension.initEvent();\n\t\t\t\t\t\t\tExtension.initSelect();\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\t$(datatable).on(pfx + 'datatable-on-check', function(e, ids) {\n\t\t\t\t\t\tids.forEach(function(id) {\n\t\t\t\t\t\t\tExtension.selectedRows.push(id);\n\t\t\t\t\t\t\t// // remove from unselected rows\n\t\t\t\t\t\t\tExtension.unselectedRows = Extension.remove(Extension.unselectedRows, id);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvar storage = {};\n\t\t\t\t\t\tstorage['selectedRows'] = Extension.selectedRows.filter(Extension.unique);\n\t\t\t\t\t\tstorage['unselectedRows'] = Extension.unselectedRows.filter(Extension.unique);\n\t\t\t\t\t\tdatatable.stateKeep('checkbox', storage);\n\t\t\t\t\t});\n\t\t\t\t\t$(datatable).on(pfx + 'datatable-on-uncheck', function(e, ids) {\n\t\t\t\t\t\tids.forEach(function(id) {\n\t\t\t\t\t\t\tExtension.unselectedRows.push(id);\n\t\t\t\t\t\t\t// // remove from selected rows\n\t\t\t\t\t\t\tExtension.selectedRows = Extension.remove(Extension.selectedRows, id);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvar storage = {};\n\t\t\t\t\t\tstorage['selectedRows'] = Extension.selectedRows.filter(Extension.unique);\n\t\t\t\t\t\tstorage['unselectedRows'] = Extension.unselectedRows.filter(Extension.unique);\n\t\t\t\t\t\tstorage['unselectedRows'] = Extension.unselectedRows.filter(Extension.unique);\n\t\t\t\t\t\tdatatable.stateKeep('checkbox', storage);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Init checkbox clicks event\n\t\t\t */\n\t\t\tinitEvent: function() {\n\t\t\t\t// select all checkbox click\n\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'checkbox-all > [type=\"checkbox\"]').click(function(e) {\n\t\t\t\t\t// clear selected and unselected rows\n\t\t\t\t\tExtension.selectedRows = Extension.unselectedRows = [];\n\t\t\t\t\tdatatable.stateRemove('checkbox');\n\n\t\t\t\t\t// select all rows\n\t\t\t\t\tExtension.selectedAllRows = !!$(this).is(':checked');\n\n\t\t\t\t\t// local select all current page rows\n\t\t\t\t\tif (!options.vars.requestIds) {\n\t\t\t\t\t\tif ($(this).is(':checked')) {\n\t\t\t\t\t\t\tExtension.selectedRows = $.makeArray($(datatable.tableBody).find('.' + pfx + 'checkbox-single > [type=\"checkbox\"]').map(function(i, chk) {\n\t\t\t\t\t\t\t\treturn $(chk).val();\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar storage = {};\n\t\t\t\t\t\tstorage['selectedRows'] = Extension.selectedRows.filter(Extension.unique);\n\t\t\t\t\t\tdatatable.stateKeep('checkbox', storage);\n\t\t\t\t\t}\n\n\t\t\t\t\t// keep selectedAllRows in datasource params\n\t\t\t\t\tdatatable.setDataSourceParam(options.vars.selectedAllRows, Extension.selectedAllRows);\n\n\t\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-click-checkbox', [$(this)]);\n\t\t\t\t});\n\n\t\t\t\t// single row checkbox click\n\t\t\t\t$(datatable.tableBody).find('.' + pfx + 'checkbox-single > [type=\"checkbox\"]').click(function(e) {\n\t\t\t\t\tvar id = $(this).val();\n\t\t\t\t\tif ($(this).is(':checked')) {\n\t\t\t\t\t\tExtension.selectedRows.push(id);\n\t\t\t\t\t\t// remove from unselected rows\n\t\t\t\t\t\tExtension.unselectedRows = Extension.remove(Extension.unselectedRows, id);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tExtension.unselectedRows.push(id);\n\t\t\t\t\t\t// remove from selected rows\n\t\t\t\t\t\tExtension.selectedRows = Extension.remove(Extension.selectedRows, id);\n\t\t\t\t\t}\n\n\t\t\t\t\t// local checkbox header check\n\t\t\t\t\tif (!options.vars.requestIds && Extension.selectedRows.length < 1) {\n\t\t\t\t\t\t// remove select all checkbox, if there is no checked checkbox left\n\t\t\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'checkbox-all > [type=\"checkbox\"]').prop('checked', false);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar storage = {};\n\t\t\t\t\tstorage['selectedRows'] = Extension.selectedRows.filter(Extension.unique);\n\t\t\t\t\tstorage['unselectedRows'] = Extension.unselectedRows.filter(Extension.unique);\n\t\t\t\t\tdatatable.stateKeep('checkbox', storage);\n\n\t\t\t\t\t$(datatable).trigger(pfx + 'datatable-on-click-checkbox', [$(this)]);\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tunique: function(value, index, self) {\n\t\t\t\treturn self.indexOf(value) === index;\n\t\t\t},\n\n\t\t\tinitSelect: function() {\n\t\t\t\t// selected all rows from server\n\t\t\t\tif (Extension.selectedAllRows && options.vars.requestIds) {\n\t\t\t\t\tif (!datatable.hasClass(pfx + 'datatable-error')) {\n\t\t\t\t\t\t// set header select all checkbox checked\n\t\t\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'checkbox-all > [type=\"checkbox\"]').prop('checked', true);\n\t\t\t\t\t}\n\n\t\t\t\t\t// set all checkbox in table body\n\t\t\t\t\tdatatable.setActiveAll(true);\n\n\t\t\t\t\t// remove unselected rows\n\t\t\t\t\tExtension.unselectedRows.forEach(function(id) {\n\t\t\t\t\t\tdatatable.setInactive(id);\n\t\t\t\t\t});\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// single check for server and local\n\t\t\t\t\tExtension.selectedRows.forEach(function(id) {\n\t\t\t\t\t\tdatatable.setActive(id);\n\t\t\t\t\t});\n\n\t\t\t\t\t// local checkbox; check if all checkboxes of currect page are checked\n\t\t\t\t\tif (!datatable.hasClass(pfx + 'datatable-error') && $(datatable.tableBody).find('.' + pfx + 'checkbox-single > [type=\"checkbox\"]').not(':checked').length < 1) {\n\t\t\t\t\t\t// set header select all checkbox checked\n\t\t\t\t\t\t$(datatable.tableHead).find('.' + pfx + 'checkbox-all > [type=\"checkbox\"]').prop('checked', true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Check if selector is enabled from options\n\t\t\t */\n\t\t\tselectorEnabled: function() {\n\t\t\t\treturn $.grep(datatable.options.columns, function(n, i) {\n\t\t\t\t\treturn n.selector || false;\n\t\t\t\t})[0];\n\t\t\t},\n\n\t\t\tinitVars: function() {\n\t\t\t\t// get single select/unselect from localstorage\n\t\t\t\tvar storage = datatable.stateGet('checkbox');\n\t\t\t\tif (typeof storage !== 'undefined') {\n\t\t\t\t\tExtension.selectedRows = storage['selectedRows'] || [];\n\t\t\t\t\tExtension.unselectedRows = storage['unselectedRows'] || [];\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetSelectedId: function(path) {\n\t\t\t\tExtension.initVars();\n\n\t\t\t\t// server selected all rows\n\t\t\t\tif (Extension.selectedAllRows && options.vars.requestIds) {\n\t\t\t\t\tif (typeof path === 'undefined') {\n\t\t\t\t\t\tpath = options.vars.rowIds;\n\t\t\t\t\t}\n\n\t\t\t\t\t// if selected all rows, return id from response meta\n\t\t\t\t\tvar selectedAllRows = datatable.getObject(path, datatable.lastResponse) || [];\n\n\t\t\t\t\tif (selectedAllRows.length > 0) {\n\t\t\t\t\t\t// remove single unselected rows from selectedAllRows ids from server response emta\n\t\t\t\t\t\tExtension.unselectedRows.forEach(function(id) {\n\t\t\t\t\t\t\tselectedAllRows = Extension.remove(selectedAllRows, parseInt(id));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn selectedAllRows.filter(Extension.unique);\n\t\t\t\t}\n\n\t\t\t\t// else return single checked selected rows\n\t\t\t\treturn Extension.selectedRows.filter(Extension.unique);\n\t\t\t},\n\n\t\t\tremove: function(array, element) {\n\t\t\t\treturn array.filter(function(e) {\n\t\t\t\t\treturn e !== element;\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\n\t\t// make the extension accessible from datatable init\n\t\tdatatable.checkbox = function() {\n\t\t\treturn Extension;\n\t\t};\n\n\t\tif (typeof options === 'object') {\n\t\t\toptions = $.extend(true, {}, $.fn[pluginName].checkbox.default, options);\n\t\t\tExtension.init.apply(this, [options]);\n\t\t}\n\n\t\treturn datatable;\n\t};\n\n\t$.fn[pluginName].checkbox.default = {\n\t\tvars: {\n\t\t\t// select all rows flag to be sent to the server\n\t\t\tselectedAllRows: 'selectedAllRows',\n\t\t\t// request id parameter's name\n\t\t\trequestIds: 'requestIds',\n\t\t\t// response path to all rows id\n\t\t\trowIds: 'meta.rowIds',\n\t\t},\n\t};\n\n}(jQuery));\n","let defaults = {\n layout: {\n icons: {\n pagination: {\n next: 'flaticon2-next',\n prev: 'flaticon2-back',\n first: 'flaticon2-fast-back',\n last: 'flaticon2-fast-next',\n more: 'flaticon-more-1'\n },\n rowDetail: { expand: 'fa-light fa-caret-down', collapse: 'fa-light fa-caret-right' }\n }\n }\n}\n\nif (KTUtil.isRTL()) {\n defaults = {\n layout: {\n icons: {\n pagination: {\n next: 'flaticon2-back',\n prev: 'flaticon2-next',\n first: 'flaticon2-fast-next',\n last: 'flaticon2-fast-back'\n },\n rowDetail: { collapse: 'fa-light fa-caret-down', expand: 'fa-light fa-caret-right' }\n }\n }\n }\n}\n\n$.extend(true, $.fn.KTDatatable.defaults, defaults)\n","\"use strict\";\n\n// Component Definition \nvar KTDialog = function(options) {\n // Main object\n var the = this;\n\n // Get element object\n var element;\n var body = KTUtil.getBody();\n\n // Default options\n var defaultOptions = {\n 'placement' : 'top center',\n 'type' : 'loader',\n 'width' : 100,\n 'state' : 'default',\n 'message' : 'Loading...'\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n Plugin.init(options);\n\n return the;\n },\n\n /**\n * Handles subtoggle click toggle\n */\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n the.state = false;\n },\n\n /**\n * Show dialog\n */\n show: function() {\n Plugin.eventTrigger('show');\n\n element = document.createElement(\"DIV\");\n KTUtil.setHTML(element, the.options.message);\n\n KTUtil.addClass(element, 'dialog dialog-shown');\n KTUtil.addClass(element, 'dialog-' + the.options.state);\n KTUtil.addClass(element, 'dialog-' + the.options.type);\n\n if (the.options.placement == 'top center') {\n KTUtil.addClass(element, 'dialog-top-center');\n }\n\n body.appendChild(element);\n\n the.state = 'shown';\n\n Plugin.eventTrigger('shown');\n\n return the;\n },\n\n /**\n * Hide dialog\n */\n hide: function() {\n if (element) {\n Plugin.eventTrigger('hide');\n\n element.remove();\n the.state = 'hidden';\n\n Plugin.eventTrigger('hidden');\n }\n\n return the;\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n\n return the;\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Check shown state\n */\n the.shown = function() {\n return the.state == 'shown';\n };\n\n /**\n * Check hidden state\n */\n the.hidden = function() {\n return the.state == 'hidden';\n };\n\n /**\n * Show dialog\n */\n the.show = function() {\n return Plugin.show();\n };\n\n /**\n * Hide dialog\n */\n the.hide = function() {\n return Plugin.hide();\n };\n\n /**\n * Attach event\n * @returns {KTToggle}\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n * @returns {KTToggle}\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTDialog;\n}\n","\"use strict\";\n\n// Component Definition\nvar KTHeader = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (element === undefined) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n offset: {\n desktop: true,\n tabletAndMobile: true\n },\n releseOnReverse: {\n desktop: false,\n tabletAndMobile: false\n }\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Run plugin\n * @returns {KTHeader}\n */\n construct: function(options) {\n if (KTUtil.data(element).has('header')) {\n the = KTUtil.data(element).get('header');\n } else {\n // reset header\n Plugin.init(options);\n\n // build header\n Plugin.build();\n\n KTUtil.data(element).set('header', the);\n }\n\n return the;\n },\n\n /**\n * Handles subheader click toggle\n * @returns {KTHeader}\n */\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n },\n\n /**\n * Reset header\n * @returns {KTHeader}\n */\n build: function() {\n var eventTriggerState = true;\n var lastScrollTop = 0;\n\n window.addEventListener('scroll', function() {\n var offset = 0, st, attrName;\n\n if (KTUtil.isBreakpointDown('lg') && the.options.offset.tabletAndMobile === false) {\n return;\n }\n\n if (KTUtil.isBreakpointUp('lg') && the.options.offset.desktop === false) {\n return;\n }\n\n if (KTUtil.isBreakpointUp('lg')) {\n offset = the.options.offset.desktop;\n } else if (KTUtil.isBreakpointDown('lg')) {\n offset = the.options.offset.tabletAndMobile;\n }\n\n st = KTUtil.getScrollTop();\n\n if (\n (KTUtil.isBreakpointDown('lg') && the.options.releseOnReverse.tabletAndMobile) ||\n (KTUtil.isBreakpointUp('lg') && the.options.releseOnReverse.desktop)\n ) {\n if (st > offset && lastScrollTop < st) { // down scroll mode\n if (body.hasAttribute('data-header-scroll') === false) {\n body.setAttribute('data-header-scroll', 'on');\n }\n\n if (eventTriggerState) {\n Plugin.eventTrigger('scrollOn', the);\n eventTriggerState = false;\n }\n } else { // back scroll mode\n if (body.hasAttribute('data-header-scroll') === true) {\n body.removeAttribute('data-header-scroll');\n }\n\n if (eventTriggerState == false) {\n Plugin.eventTrigger('scrollOff', the);\n eventTriggerState = true;\n }\n }\n\n lastScrollTop = st;\n } else {\n if (st > offset) { // down scroll mode\n if (body.hasAttribute('data-header-scroll') === false) {\n body.setAttribute('data-header-scroll', 'on');\n }\n\n if (eventTriggerState) {\n Plugin.eventTrigger('scrollOn', the);\n eventTriggerState = false;\n }\n } else { // back scroll mode\n if (body.hasAttribute('data-header-scroll') === true) {\n body.removeAttribute('data-header-scroll');\n }\n\n if (eventTriggerState == false) {\n Plugin.eventTrigger('scrollOff', the);\n eventTriggerState = true;\n }\n }\n }\n });\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, args) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the, args);\n }\n } else {\n return event.handler.call(this, the, args);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Register event\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTHeader;\n}\n","\"use strict\";\n\n// Component Definition\nvar KTScrolltop = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n offset: 300,\n speed: 6000\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Run plugin\n * @returns {mscrolltop}\n */\n construct: function(options) {\n if (KTUtil.data(element).has('scrolltop')) {\n the = KTUtil.data(element).get('scrolltop');\n } else {\n // reset scrolltop\n Plugin.init(options);\n\n // build scrolltop\n Plugin.build();\n\n KTUtil.data(element).set('scrolltop', the);\n }\n\n return the;\n },\n\n /**\n * Handles subscrolltop click toggle\n * @returns {mscrolltop}\n */\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n },\n\n build: function() {\n var timer;\n\n window.addEventListener('scroll', function() {\n KTUtil.throttle(timer, function() {\n Plugin.handle();\n }, 200);\n });\n\n // handle button click\n KTUtil.addEvent(element, 'click', Plugin.scroll);\n },\n\n /**\n * Handles scrolltop click scrollTop\n */\n handle: function() {\n var pos = KTUtil.getScrollTop(); // current vertical position\n\n if (pos > the.options.offset) {\n if (body.hasAttribute('data-scrolltop') === false) {\n body.setAttribute('data-scrolltop', 'on');\n }\n } else {\n if (body.hasAttribute('data-scrolltop') === true) {\n body.removeAttribute('data-scrolltop');\n }\n }\n },\n\n /**\n * Handles scrolltop click scrollTop\n */\n scroll: function(e) {\n e.preventDefault();\n\n KTUtil.scrollTop(0, the.options.speed);\n },\n\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, args) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the, args);\n }\n } else {\n return event.handler.call(this, the, args);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Get subscrolltop mode\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Set scrolltop content\n * @returns {mscrolltop}\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTScrolltop;\n}\n","\"use strict\";\n\n// Component Definition\nvar KTWizard = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n startStep: 1,\n clickableSteps: false, // to make steps clickable this set value true and add data-wizard-clickable=\"true\" in HTML for class=\"wizard\" element\n navigation: true\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n if (KTUtil.data(element).has('wizard')) {\n the = KTUtil.data(element).get('wizard');\n } else {\n // reset menu\n Plugin.init(options);\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('wizard', the);\n }\n\n return the;\n },\n\n /**\n * Init wizard\n */\n init: function(options) {\n the.element = element;\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n // Elements\n the.steps = KTUtil.findAll(element, '[data-wizard-type=\"step\"]');\n\n the.btnNext = KTUtil.find(element, '[data-wizard-type=\"action-next\"]');\n the.btnPrev = KTUtil.find(element, '[data-wizard-type=\"action-prev\"]');\n the.btnSubmit = KTUtil.find(element, '[data-wizard-type=\"action-submit\"]');\n\n // Variables\n the.events = [];\n the.lastStep = 0;\n the.currentStep = 1;\n the.newStep = 0;\n the.stopped = false;\n the.totalSteps = the.steps.length;\n\n // Init current step\n if (the.options.startStep > 1) {\n Plugin.goTo(the.options.startStep);\n }\n\n // Init UI\n Plugin.updateUI();\n },\n\n /**\n * Build Form Wizard\n */\n build: function() {\n if (the.options.navigation) {\n // Next button event handler\n KTUtil.addEvent(the.btnNext, 'click', function(e) {\n e.preventDefault();\n\n // Set new step number\n Plugin.setNewStep(Plugin.getNextStep());\n\n // Trigger change event\n if (Plugin.eventTrigger('change') !== false) {\n Plugin.goTo(Plugin.getNextStep());\n }\n });\n\n // Prev button event handler\n KTUtil.addEvent(the.btnPrev, 'click', function(e) {\n e.preventDefault();\n\n // Set new step number\n Plugin.setNewStep(Plugin.getPrevStep());\n\n // Trigger change event\n if (Plugin.eventTrigger('change') !== false) {\n Plugin.goTo(Plugin.getPrevStep());\n }\n });\n\n // Submit button event handler\n KTUtil.addEvent(the.btnSubmit, 'click', function(e) {\n e.preventDefault();\n\n Plugin.eventTrigger('submit');\n });\n }\n\n if (the.options.clickableSteps === true) {\n KTUtil.on(element, '[data-wizard-type=\"step\"]', 'click', function() {\n var index = KTUtil.index(this) + 1;\n\n if (index !== the.currentStep) {\n Plugin.setNewStep(index);\n\n // Trigger change event\n if (Plugin.eventTrigger('change') !== false) {\n Plugin.goTo(index);\n }\n }\n });\n }\n },\n\n /**\n * Handles wizard click wizard\n */\n goTo: function(number) {\n // Skip if stopped\n if (the.stopped === true) {\n the.stopped = false;\n return;\n }\n\n // Skip if this step is already shown\n if (number === the.currentStep || number > the.totalSteps || number < 0) {\n return;\n }\n\n // Validate step number\n number = parseInt(number);\n\n // Set current step\n the.lastStep = the.currentStep;\n the.currentStep = number;\n the.newStep = 0;\n\n Plugin.updateUI();\n\n Plugin.eventTrigger('changed');\n\n return the;\n },\n\n /**\n * Stop wizard\n */\n stop: function() {\n the.stopped = true;\n },\n\n /**\n * Resume wizard\n */\n resume: function() {\n the.stopped = false;\n },\n\n /**\n * Check last step\n */\n isLastStep: function() {\n return the.currentStep === the.totalSteps;\n },\n\n /**\n * Check first step\n */\n isFirstStep: function() {\n return the.currentStep === 1;\n },\n\n /**\n * Check between step\n */\n isBetweenStep: function() {\n return Plugin.isLastStep() === false && Plugin.isFirstStep() === false;\n },\n\n /**\n * Update wizard UI after step change\n */\n updateUI: function() {\n var stepType = '';\n var index = the.currentStep - 1;\n\n if (Plugin.isLastStep()) {\n stepType = 'last';\n } else if (Plugin.isFirstStep()) {\n stepType = 'first';\n } else {\n stepType = 'between';\n }\n\n KTUtil.attr(the.element, 'data-wizard-state', stepType);\n\n // Steps\n var steps = KTUtil.findAll(the.element, '[data-wizard-type=\"step\"]');\n\n if (steps && steps.length > 0) {\n for (var i = 0, len = steps.length; i < len; i++) {\n if (i == index) {\n KTUtil.attr(steps[i], 'data-wizard-state', 'current');\n } else {\n if (i < index) {\n KTUtil.attr(steps[i], 'data-wizard-state', 'done');\n } else {\n KTUtil.attr(steps[i], 'data-wizard-state', 'pending');\n }\n }\n }\n }\n\n // Steps Info\n var stepsInfo = KTUtil.findAll(the.element, '[data-wizard-type=\"step-info\"]');\n if (stepsInfo &&stepsInfo.length > 0) {\n for (var i = 0, len = stepsInfo.length; i < len; i++) {\n if (i == index) {\n KTUtil.attr(stepsInfo[i], 'data-wizard-state', 'current');\n } else {\n KTUtil.removeAttr(stepsInfo[i], 'data-wizard-state');\n }\n }\n }\n\n // Steps Content\n var stepsContent = KTUtil.findAll(the.element, '[data-wizard-type=\"step-content\"]');\n if (stepsContent&& stepsContent.length > 0) {\n for (var i = 0, len = stepsContent.length; i < len; i++) {\n if (i == index) {\n KTUtil.attr(stepsContent[i], 'data-wizard-state', 'current');\n } else {\n KTUtil.removeAttr(stepsContent[i], 'data-wizard-state');\n }\n }\n }\n },\n\n /**\n * Get next step number\n */\n getNextStep: function() {\n if (the.totalSteps >= (the.currentStep + 1)) {\n return the.currentStep + 1;\n } else {\n return the.totalSteps;\n }\n },\n\n /**\n * Get prev step number\n */\n getPrevStep: function() {\n if ((the.currentStep - 1) >= 1) {\n return the.currentStep - 1;\n } else {\n return 1;\n }\n },\n\n /**\n * Get new step number\n */\n getNewStep: function() {\n return the.newStep;\n },\n\n /**\n * Set new step\n */\n setNewStep: function(step) {\n the.newStep = step;\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, nested) {\n //KTUtil.triggerCustomEvent(name);\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n\n return the;\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Go to the next step\n */\n the.goNext = function() {\n return Plugin.goTo(Plugin.getNextStep());\n };\n\n /**\n * Go to the prev step\n */\n the.goPrev = function() {\n return Plugin.goTo(Plugin.getPrevStep());\n };\n\n /**\n * Go to the last step\n */\n the.goLast = function() {\n return Plugin.goTo(Plugin.getLastStep());\n };\n\n /**\n * Go to the first step\n */\n the.goFirst = function() {\n return Plugin.goTo(Plugin.getFirstStep());\n };\n\n /**\n * Go to a step\n */\n the.goTo = function(number) {\n return Plugin.goTo(number);\n };\n\n /**\n * Stop wizard\n */\n the.stop = function() {\n return Plugin.stop();\n };\n\n /**\n * Resume wizard\n */\n the.resume = function() {\n return Plugin.resume();\n };\n\n /**\n * Get current step number\n */\n the.getStep = function() {\n return the.currentStep;\n };\n\n /**\n * Get new step number\n */\n the.getNewStep = function() {\n return Plugin.getNewStep();\n };\n\n /**\n * Set new step number\n */\n the.setNewStep = function(number) {\n Plugin.setNewStep(number);\n };\n\n /**\n * Check last step\n */\n the.isLastStep = function() {\n return Plugin.isLastStep();\n };\n\n /**\n * Check first step\n */\n the.isFirstStep = function() {\n return Plugin.isFirstStep();\n };\n\n /**\n * Attach event(\"change\", \"changed\", \"submit\")\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTWizard;\n}\n","\"use strict\";\n\nvar KTLayoutStickyCard = function() {\n // Private properties\n\tvar _element;\n var _object;\n\n\t// Private functions\n\tvar _init = function() {\n\t\tvar offset = 300;\n\n\t\tif (typeof KTLayoutHeader !== 'undefined') {\n\t\t\toffset = KTLayoutHeader.getHeight();\n\t\t}\n\n _object = new KTCard(_element, {\n\t\t\tsticky: {\n\t\t\t\toffset: offset,\n\t\t\t\tzIndex: 90,\n\t\t\t\tposition: {\n\t\t\t\t\ttop: function() {\n\t\t\t\t\t\tvar pos = 0;\n var body = KTUtil.getBody();\n\n\t\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixed()) {\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeight();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (typeof KTLayoutSubheader !== 'undefined' && KTLayoutSubheader.isFixed()) {\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutSubheader.getHeight();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixedForMobile()) {\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeightForMobile();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpos = pos - 1; // remove header border width\n\n\t\t\t\t\t\treturn pos;\n\t\t\t\t\t},\n\t\t\t\t\tleft: function(card) {\n\t\t\t\t\t\treturn KTUtil.offset(_element).left;\n\t\t\t\t\t},\n\t\t\t\t\tright: function(card) {\n\t\t\t\t\t\tvar body = KTUtil.getBody();\n\n\t\t\t\t\t\tvar cardWidth = parseInt(KTUtil.css(_element, 'width'));\n\t\t\t\t\t\tvar bodyWidth = parseInt(KTUtil.css(body, 'width'));\n\t\t\t\t\t\tvar cardOffsetLeft = KTUtil.offset(_element).left;\n\n\t\t\t\t\t\treturn bodyWidth - cardWidth - cardOffsetLeft;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t_object.initSticky();\n\n\t\tKTUtil.addResizeHandler(function() {\n\t\t\t_object.updateSticky();\n\t\t});\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n\t\t\t_init();\n\t\t},\n\n\t\tupdate: function() {\n\t\t\tif (_object) {\n\t\t\t\t_object.updateSticky();\n\t\t\t}\n\t\t}\n\t};\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutStickyCard;\n}\n","\"use strict\";\n\nvar KTLayoutStretchedCard = function() {\n // Private properties\n\tvar _element;\n\n\t// Private functions\n\tvar _init = function() {\n\t\tvar scroll = KTUtil.find(_element, '.card-scroll');\n\t\tvar cardBody = KTUtil.find(_element, '.card-body');\n\t\tvar cardHeader = KTUtil.find(_element, '.card-header');\n\n\t\tvar height = KTLayoutContent.getHeight();\n\n\t\theight = height - parseInt(KTUtil.actualHeight(cardHeader));\n\n\t\theight = height - parseInt(KTUtil.css(_element, 'marginTop')) - parseInt(KTUtil.css(_element, 'marginBottom'));\n\t\theight = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'paddingTop')) - parseInt(KTUtil.css(cardBody, 'paddingBottom'));\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'marginTop')) - parseInt(KTUtil.css(cardBody, 'marginBottom'));\n\n\t\theight = height - 3;\n\n\t\tKTUtil.css(scroll, 'height', height + 'px');\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n\t\t\t_init();\n\n // Re-calculate on window resize\n KTUtil.addResizeHandler(function() {\n\t\t\t\t_init();\n\t\t\t});\n\t\t},\n\n\t\tupdate: function() {\n\t\t\t_init();\n\t\t}\n\t};\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutStretchedCard;\n}\n","\"use strict\";\n\n// Class definition\nvar KTLayoutChat = function () {\n\t// Private functions\n\tvar _init = function (element) {\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\n\t\tvar cardBodyEl = KTUtil.find(element, '.card-body');\n\t\tvar cardHeaderEl = KTUtil.find(element, '.card-header');\n\t\tvar cardFooterEl = KTUtil.find(element, '.card-footer');\n\n\t\tif (!scrollEl) {\n\t\t\treturn;\n\t\t}\n\n\t\t// initialize perfect scrollbar(see: https://github.com/utatti/perfect-scrollbar)\n\t\tKTUtil.scrollInit(scrollEl, {\n\t\t\twindowScroll: false, // allow browser scroll when the scroll reaches the end of the side\n\t\t\tmobileNativeScroll: true, // enable native scroll for mobile\n\t\t\tdesktopNativeScroll: false, // disable native scroll and use custom scroll for desktop\n\t\t\tresetHeightOnDestroy: true, // reset css height on scroll feature destroyed\n\t\t\thandleWindowResize: true, // recalculate hight on window resize\n\t\t\trememberPosition: true, // remember scroll position in cookie\n\t\t\theight: function() { // calculate height\n\t\t\t\tvar height;\n\n\t\t\t\tif (KTUtil.isBreakpointDown('lg')) { // Mobile mode\n\t\t\t\t\treturn KTUtil.hasAttr(scrollEl, 'data-mobile-height') ? parseInt(KTUtil.attr(scrollEl, 'data-mobile-height')) : 400;\n\t\t\t\t} else if (KTUtil.isBreakpointUp('lg') && KTUtil.hasAttr(scrollEl, 'data-height')) { // Desktop Mode\n\t\t\t\t\treturn parseInt(KTUtil.attr(scrollEl, 'data-height'));\n\t\t\t\t} else {\n\t\t\t\t\theight = KTLayoutContent.getHeight();\n\n\t\t\t\t\tif (scrollEl) {\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(scrollEl, 'margin-top')) - parseInt(KTUtil.css(scrollEl, 'margin-bottom'));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (cardHeaderEl) {\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'height'));\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'margin-top')) - parseInt(KTUtil.css(cardHeaderEl, 'margin-bottom'));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (cardBodyEl) {\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardBodyEl, 'padding-top')) - parseInt(KTUtil.css(cardBodyEl, 'padding-bottom'));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (cardFooterEl) {\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'height'));\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'margin-top')) - parseInt(KTUtil.css(cardFooterEl, 'margin-bottom'));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Remove additional space\n\t\t\t\theight = height - 2;\n\n\t\t\t\treturn height;\n\t\t\t}\n\t\t});\n\n\t\t// attach events\n\t\tKTUtil.on(element, '.card-footer textarea', 'keydown', function(e) {\n\t\t\tif (e.keyCode == 13) {\n\t\t\t\t_handeMessaging(element);\n\t\t\t\te.preventDefault();\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\n\t\tKTUtil.on(element, '.card-footer .chat-send', 'click', function(e) {\n\t\t\t_handeMessaging(element);\n\t\t});\n\t}\n\n\tvar _handeMessaging = function(element) {\n\t\tvar messagesEl = KTUtil.find(element, '.messages');\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\n var textarea = KTUtil.find(element, 'textarea');\n\n if (textarea.value.length === 0 ) {\n return;\n }\n\n\t\tvar node = document.createElement(\"DIV\");\n\t\tKTUtil.addClass(node, 'd-flex flex-column mb-5 align-items-end');\n\n\t\tvar html = '';\n\t\thtml += '
';\n\t\thtml += '\t
';\n\t\thtml += '\t\t2 Hours';\n\t\thtml += '\t\tYou';\n\t\thtml += '\t
';\n\t\thtml += '\t
';\n\t\thtml += '\t\t\"Pic\"';\n\t\thtml += '\t
';\n\t\thtml += '
';\n\t\thtml += '
' + textarea.value + '
';\n\n\t\tKTUtil.setHTML(node, html);\n\t\tmessagesEl.appendChild(node);\n\t\ttextarea.value = '';\n\t\tscrollEl.scrollTop = parseInt(KTUtil.css(messagesEl, 'height'));\n\n\t\tvar ps;\n\t\tif (ps = KTUtil.data(scrollEl).get('ps')) {\n\t\t\tps.update();\n\t\t}\n\n\t\tsetTimeout(function() {\n\t\t\tvar node = document.createElement(\"DIV\");\n\t\t\tKTUtil.addClass(node, 'd-flex flex-column mb-5 align-items-start');\n\n\t\t\tvar html = '';\n\t\t\thtml += '
';\n\t\t\thtml += '\t
';\n\t\t\thtml += '\t\t\"Pic\"';\n\t\t\thtml += '\t
';\n\t\t\thtml += '\t
';\n\t\t\thtml += '\t\tMatt Pears';\n\t\t\thtml += '\t\tJust now';\n\t\t\thtml += '\t
';\n\t\t\thtml += '
';\n\t\t\thtml += '
';\n\t\t\thtml += 'Right before vacation season we have the next Big Deal for you.';\n\t\t\thtml += '
';\n\n\t\t\tKTUtil.setHTML(node, html);\n\t\t\tmessagesEl.appendChild(node);\n\t\t\ttextarea.value = '';\n\t\t\tscrollEl.scrollTop = parseInt(KTUtil.css(messagesEl, 'height'));\n\n\t\t\tvar ps;\n\t\t\tif (ps = KTUtil.data(scrollEl).get('ps')) {\n\t\t\t\tps.update();\n\t\t\t}\n\t\t}, 2000);\n\t}\n\n\t// Public methods\n\treturn {\n\t\tinit: function(id) {\n\t\t\t// Init modal chat example\n\t\t\t_init(KTUtil.getById(id));\n\n\t\t\t// Trigger click to show popup modal chat on page load\n\t\t\tif (encodeURI(window.location.hostname) == 'keenthemes.com' || encodeURI(window.location.hostname) == 'www.keenthemes.com') {\n\t\t\t\tsetTimeout(function() {\n\t\t if (!KTCookie.getCookie('kt_app_chat_shown')) {\n\t\t var expires = new Date(new Date().getTime() + 60 * 60 * 1000); // expire in 60 minutes from now\n\n\t\t\t\t\t\tKTCookie.setCookie('kt_app_chat_shown', 1, { expires: expires });\n\n\t\t\t\t\t\tif (KTUtil.getById('kt_app_chat_launch_btn')) {\n\t\t\t\t\t\t\tKTUtil.getById('kt_app_chat_launch_btn').click();\n\t\t\t\t\t\t}\n\t\t }\n\t\t }, 2000);\n\t }\n },\n\n setup: function(element) {\n _init(element);\n }\n\t};\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutChat;\n}\n","\"use strict\";\n\nvar KTLayoutDemoPanel = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_demo_panel_close',\n toggleBy: 'kt_demo_panel_toggle'\n });\n\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n var wrapper = KTUtil.find(_element, '.offcanvas-wrapper');\n var footer = KTUtil.find(_element, '.offcanvas-footer');\n\n KTUtil.scrollInit(wrapper, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n if (wrapper) {\n height = height - parseInt(KTUtil.css(wrapper, 'marginTop'));\n height = height - parseInt(KTUtil.css(wrapper, 'marginBottom'));\n }\n\n if (footer) {\n height = height - parseInt(KTUtil.actualHeight(footer));\n height = height - parseInt(KTUtil.css(footer, 'marginTop'));\n height = height - parseInt(KTUtil.css(footer, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n\n if (typeof offcanvas !== 'undefined' && offcanvas.length === 0) {\n offcanvas.on('hide', function() {\n var expires = new Date(new Date().getTime() + 60 * 60 * 1000); // expire in 60 minutes from now\n KTCookie.setCookie('kt_demo_panel_shown', 1, {expires: expires});\n });\n }\n }\n\n var _remind = function() {\n if (!(encodeURI(window.location.hostname) == 'keenthemes.com' || encodeURI(window.location.hostname) == 'www.keenthemes.com')) {\n return;\n }\n\n setTimeout(function() {\n if (!KTCookie.getCookie('kt_demo_panel_shown')) {\n var expires = new Date(new Date().getTime() + 15 * 60 * 1000); // expire in 15 minutes from now\n KTCookie.setCookie('kt_demo_panel_shown', 1, { expires: expires });\n if (typeof _offcanvasObject !== 'undefined') {\n _offcanvasObject.show();\n }\n }\n }, 4000);\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n\n // Remind\n _remind();\n }\n };\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutDemoPanel;\n}\n","\"use strict\";\n\nvar KTLayoutExamples = function() {\n\n var initDefaultMode = function(element) {\n var elements = element;\n if (typeof elements === 'undefined') {\n elements = document.querySelectorAll('.example:not(.example-compact):not(.example-hover):not(.example-basic)');\n }\n\n if (elements && elements.length > 0 ) {\n for (var i = 0; i < elements.length; ++i) {\n var example = elements[i];\n var copy = KTUtil.find(example, '.example-copy');\n\n if (copy) {\n var clipboard = new ClipboardJS(copy, {\n target: function(trigger) {\n var example = trigger.closest('.example');\n var el = KTUtil.find(example, '.example-code .tab-pane.active');\n\n if (!el) {\n el = KTUtil.find(example, '.example-code');\n }\n\n return el;\n }\n });\n\n clipboard.on('success', function(e) {\n KTUtil.addClass(e.trigger, 'example-copied');\n e.clearSelection();\n\n setTimeout(function() {\n KTUtil.removeClass(e.trigger, 'example-copied');\n }, 2000);\n });\n }\n }\n }\n }\n\n var initCompactMode = function(element) {\n var example,code,toggle,copy, clipboard;\n\n var elements = element;\n if (typeof elements === 'undefined') {\n var elements = document.querySelectorAll('.example.example-compact');\n }\n\n if (elements && elements.length > 0 ) {\n for (var i = 0; i < elements.length; ++i) {\n var example = elements[i];\n var toggle = KTUtil.find(example, '.example-toggle');\n var copy = KTUtil.find(example, '.example-copy');\n\n // Handle toggle\n KTUtil.addEvent(toggle, 'click', function() {\n var example = this.closest('.example');\n var code = KTUtil.find(example, '.example-code');\n var the = this;\n\n if (KTUtil.hasClass(this, 'example-toggled')) {\n KTUtil.slideUp(code, 300, function() {\n KTUtil.removeClass(the, 'example-toggled');\n KTUtil.removeClass(code, 'example-code-on');\n KTUtil.hide(code);\n });\n } else {\n KTUtil.addClass(code, 'example-code-on');\n KTUtil.addClass(this, 'example-toggled');\n KTUtil.slideDown(code, 300, function() {\n KTUtil.show(code);\n });\n }\n });\n\n // Handle copy\n if (copy) {\n var clipboard = new ClipboardJS(copy, {\n target: function(trigger) {\n var example = trigger.closest('.example');\n var el = KTUtil.find(example, '.example-code .tab-pane.active');\n\n if (!el) {\n el = KTUtil.find(example, '.example-code');\n }\n\n return el;\n }\n });\n\n clipboard.on('success', function(e) {\n KTUtil.addClass(e.trigger, 'example-copied');\n e.clearSelection();\n\n setTimeout(function() {\n KTUtil.removeClass(e.trigger, 'example-copied');\n }, 2000);\n });\n }\n }\n }\n }\n\n return {\n init: function(element, options) {\n initDefaultMode(element);\n initCompactMode(element);\n }\n };\n}();\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTLayoutExamples;\n}\n","\"use strict\";\n\nvar KTLayoutQuickActions = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_actions_close',\n toggleBy: 'kt_quick_actions_toggle'\n });\n\n KTUtil.scrollInit(content, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n }\n };\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutQuickActions;\n}\n","\"use strict\";\n\nvar KTLayoutQuickCartPanel = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_cart_close',\n toggleBy: 'kt_quick_cart_toggle'\n });\n\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n var wrapper = KTUtil.find(_element, '.offcanvas-wrapper');\n var footer = KTUtil.find(_element, '.offcanvas-footer');\n\n KTUtil.scrollInit(wrapper, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n if (wrapper) {\n height = height - parseInt(KTUtil.css(wrapper, 'marginTop'));\n height = height - parseInt(KTUtil.css(wrapper, 'marginBottom'));\n }\n\n if (footer) {\n height = height - parseInt(KTUtil.actualHeight(footer));\n height = height - parseInt(KTUtil.css(footer, 'marginTop'));\n height = height - parseInt(KTUtil.css(footer, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n }\n };\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutQuickCartPanel;\n}\n","\"use strict\";\n\nvar KTLayoutQuickNotifications = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_notifications_close',\n toggleBy: 'kt_quick_notifications_toggle'\n });\n\n KTUtil.scrollInit(content, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n }\n };\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutQuickNotifications;\n}\n","\"use strict\";\n\nvar KTLayoutQuickPanel = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n var _notificationsElement;\n var _logsElement;\n var _settingsElement;\n\n // Private functions\n var _getContentHeight = function() {\n var height;\n\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n\n var _init = function() {\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_panel_close',\n toggleBy: 'kt_quick_panel_toggle'\n });\n }\n\n var _initNotifications = function() {\n KTUtil.scrollInit(_notificationsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n }\n });\n }\n\n var _initLogs = function() {\n KTUtil.scrollInit(_logsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n }\n });\n }\n\n var _initSettings = function() {\n KTUtil.scrollInit(_settingsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n }\n });\n }\n\n var _updateScrollbars = function() {\n $(_element).find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\n KTUtil.scrollUpdate(_notificationsElement);\n KTUtil.scrollUpdate(_logsElement);\n KTUtil.scrollUpdate(_settingsElement);\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n _notificationsElement = KTUtil.getById('kt_quick_panel_notifications');\n _logsElement = KTUtil.getById('kt_quick_panel_logs');\n _settingsElement = KTUtil.getById('kt_quick_panel_settings');\n\n _init();\n _initNotifications();\n _initLogs();\n _initSettings();\n\n _updateScrollbars();\n }\n };\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutQuickPanel;\n}\n","\"use strict\";\n\nvar KTLayoutQuickSearch = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n var form = KTUtil.find(_element, '.quick-search-form');\n var results = KTUtil.find(_element, '.quick-search-wrapper');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_search_close',\n toggleBy: 'kt_quick_search_toggle'\n });\n\n KTUtil.scrollInit(results, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n if (results) {\n height = height - parseInt(KTUtil.actualHeight(form));\n height = height - parseInt(KTUtil.css(form, 'marginTop'));\n height = height - parseInt(KTUtil.css(form, 'marginBottom'));\n\n height = height - parseInt(KTUtil.css(results, 'marginTop'));\n height = height - parseInt(KTUtil.css(results, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n }\n };\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutQuickSearch;\n}\n","\"use strict\";\n\nvar KTLayoutQuickUser = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_user_close',\n toggleBy: 'kt_quick_user_toggle'\n });\n\n KTUtil.scrollInit(content, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n }\n };\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutQuickUser;\n}\n","\"use strict\";\n\nvar KTLayoutScrolltop = function() {\n // Private properties\n var _element;\n var _object;\n\n // Private functions\n var _init = function() {\n _object = new KTScrolltop(_element, {\n offset: 300,\n speed: 600,\n });\n }\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n\t\t},\n\n getElement: function() {\n return _element;\n }\n\t};\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\tmodule.exports = KTLayoutScrolltop;\n}\n","'use strict'\n//\n// Handle User Quick Search For Dropdown, Inline and Offcanvas Search Panels\n//\n\nconst KTLayoutSearch = function () {\n // Private properties\n let _target\n let _form\n let _input\n let _closeIcon\n let _resultWrapper\n let _resultDropdown\n let _resultDropdownToggle\n let _closeIconContainer\n let _inputGroup\n let _query = ''\n\n let _hasResult = false\n let _timeout = false\n let _isProcessing = false\n const _requestTimeout = 500 // ajax request fire timeout in milliseconds\n const _spinnerClass = 'spinner spinner-sm spinner-primary'\n const _resultClass = 'quick-search-has-result'\n const _minLength = 1\n\n // Private functions\n const _showProgress = function () {\n _isProcessing = true\n KTUtil.addClass(_closeIconContainer, _spinnerClass)\n\n if (_closeIcon) {\n KTUtil.hide(_closeIcon)\n }\n }\n\n const _hideProgress = function () {\n _isProcessing = false\n KTUtil.removeClass(_closeIconContainer, _spinnerClass)\n\n if (_closeIcon) {\n if (_input.value.length < _minLength) {\n KTUtil.hide(_closeIcon)\n } else {\n KTUtil.show(_closeIcon, 'flex')\n }\n }\n }\n\n const _showDropdown = function () {\n if (_resultDropdownToggle && !KTUtil.hasClass(_resultDropdown, 'show')) {\n $(_resultDropdownToggle).dropdown('toggle')\n $(_resultDropdownToggle).dropdown('update')\n }\n }\n\n const _hideDropdown = function () {\n if (_resultDropdownToggle && KTUtil.hasClass(_resultDropdown, 'show')) {\n $(_resultDropdownToggle).dropdown('toggle')\n }\n }\n\n const _processSearch = function () {\n if (_hasResult && _query === _input.value) {\n _hideProgress()\n KTUtil.addClass(_target, _resultClass)\n _showDropdown()\n KTUtil.scrollUpdate(_resultWrapper)\n\n return\n }\n\n _query = _input.value;\n\n KTUtil.removeClass(_target, _resultClass);\n _showProgress();\n _hideDropdown();\n\n $.ajax({\n url: `/tasks/quick_search?search=${_query}`,\n type: 'get',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': document.head.querySelector('meta[name=\"csrf-token\"]').content\n },\n credentials: 'same-origin',\n success: function (res) {\n _hasResult = true;\n _hideProgress();\n KTUtil.addClass(_target, _resultClass);\n KTUtil.setHTML(_resultWrapper, res.html);\n _showDropdown();\n KTUtil.scrollUpdate(_resultWrapper);\n },\n error: function() {\n _hasResult = false;\n _hideProgress();\n KTUtil.addClass(_target, _resultClass);\n KTUtil.setHTML(_resultWrapper, 'Connection error. Please try again later..');\n _showDropdown();\n KTUtil.scrollUpdate(_resultWrapper);\n }\n })\n }\n\n const _handleCancel = function (e) {\n _input.value = ''\n _query = ''\n _hasResult = false\n KTUtil.hide(_closeIcon)\n KTUtil.removeClass(_target, _resultClass)\n _hideDropdown()\n }\n\n const _handleSearch = function () {\n if (_input.value.length < _minLength) {\n _hideProgress()\n _hideDropdown()\n\n return\n }\n\n if (_isProcessing == true) {\n return\n }\n\n if (_timeout) {\n clearTimeout(_timeout)\n }\n\n _timeout = setTimeout(function () {\n _processSearch()\n }, _requestTimeout)\n }\n\n // Public methods\n return {\n init: function (id) {\n _target = KTUtil.getById(id)\n\n if (!_target) {\n return\n }\n\n _form = KTUtil.find(_target, '.quick-search-form')\n _input = KTUtil.find(_target, '.form-control')\n _closeIcon = KTUtil.find(_target, '.quick-search-close')\n _resultWrapper = KTUtil.find(_target, '.quick-search-wrapper')\n _resultDropdown = KTUtil.find(_target, '.dropdown-menu')\n _resultDropdownToggle = KTUtil.find(_target, '[data-toggle=\"dropdown\"]')\n _inputGroup = KTUtil.find(_target, '.input-group')\n _closeIconContainer = KTUtil.find(_target, '.input-group .input-group-append')\n\n // Attach input keyup handler\n KTUtil.addEvent(_input, 'keyup', _handleSearch)\n KTUtil.addEvent(_input, 'focus', _handleSearch)\n\n // Prevent enter click\n _form.onkeypress = function (e) {\n const key = e.charCode || e.keyCode || 0\n if (key == 13) {\n e.preventDefault()\n }\n }\n\n KTUtil.addEvent(_closeIcon, 'click', _handleCancel)\n }\n }\n}\n\n// Webpack support\nif (typeof module !== 'undefined') {\n module.exports = KTLayoutSearch\n}\n","// Keenthemes' plugins\nwindow.KTAppSettings = { breakpoints: { sm: 576, md: 768, lg: 992, xl: 1200, xxl: 1400 }, colors: { theme: { base: { white: '#ffffff', primary: '#3699FF', secondary: '#E5EAEE', success: '#1BC5BD', info: '#8950FC', warning: '#FFA800', danger: '#F64E60', light: '#E4E6EF', dark: '#181C32' }, light: { white: '#ffffff', primary: '#E1F0FF', secondary: '#EBEDF3', success: '#C9F7F5', info: '#EEE5FF', warning: '#FFF4DE', danger: '#FFE2E5', light: '#F3F6F9', dark: '#D6D6E0' }, inverse: { white: '#ffffff', primary: '#ffffff', secondary: '#3F4254', success: '#ffffff', info: '#ffffff', warning: '#ffffff', danger: '#ffffff', light: '#464E5F', dark: '#ffffff' } }, gray: { 'gray-100': '#F3F6F9', 'gray-200': '#EBEDF3', 'gray-300': '#E4E6EF', 'gray-400': '#D1D3E0', 'gray-500': '#B5B5C3', 'gray-600': '#7E8299', 'gray-700': '#5E6278', 'gray-800': '#3F4254', 'gray-900': '#181C32' } }, 'font-family': 'Poppins' }\nwindow.PerfectScrollbar = require('perfect-scrollbar/dist/perfect-scrollbar')\nwindow.KTUtil = require('./components/util.js')\nwindow.KTApp = require('./components/app.js')\nwindow.KTCard = require('./components/card.js')\nwindow.KTCookie = require('./components/cookie.js')\nwindow.KTDialog = require('./components/dialog.js')\nwindow.KTHeader = require('./components/header.js')\nwindow.KTImageInput = require('./components/image-input.js')\nwindow.KTMenu = require('./components/menu.js')\nwindow.KTOffcanvas = require('./components/offcanvas.js')\nwindow.KTScrolltop = require('./components/scrolltop.js')\nwindow.KTToggle = require('./components/toggle.js')\nwindow.KTWizard = require('./components/wizard.js')\nrequire('./components/datatable/core.datatable.js')\nrequire('./components/datatable/datatable.checkbox.js')\nrequire('./components/datatable/datatable.rtl.js')\n\n// Metronic layout base js\nwindow.KTLayoutAside = require('./layout/base/aside.js')\nwindow.KTLayoutAsideMenu = require('./layout/base/aside-menu.js')\nwindow.KTLayoutAsideToggle = require('./layout/base/aside-toggle.js')\nwindow.KTLayoutBrand = require('./layout/base/brand.js')\nwindow.KTLayoutContent = require('./layout/base/content.js')\nwindow.KTLayoutFooter = require('./layout/base/footer.js')\nwindow.KTLayoutHeader = require('./layout/base/header.js')\nwindow.KTLayoutHeaderMenu = require('./layout/base/header-menu.js')\nwindow.KTLayoutHeaderTopbar = require('./layout/base/header-topbar.js')\nwindow.KTLayoutStickyCard = require('./layout/base/sticky-card.js')\nwindow.KTLayoutStretchedCard = require('./layout/base/stretched-card.js')\nwindow.KTLayoutSubheader = require('./layout/base/subheader.js')\n\n// Metronic layout extended js\nwindow.KTLayoutChat = require('./layout/extended/chat.js')\nwindow.KTLayoutDemoPanel = require('./layout/extended/demo-panel.js')\nwindow.KTLayoutExamples = require('./layout/extended/examples.js')\nwindow.KTLayoutQuickActions = require('./layout/extended/quick-actions.js')\nwindow.KTLayoutQuickCartPanel = require('./layout/extended/quick-cart.js')\nwindow.KTLayoutQuickNotifications = require('./layout/extended/quick-notifications.js')\nwindow.KTLayoutQuickPanel = require('./layout/extended/quick-panel.js')\nwindow.KTLayoutQuickSearch = require('./layout/extended/quick-search.js')\nwindow.KTLayoutQuickUser = require('./layout/extended/quick-user.js')\nwindow.KTLayoutScrolltop = require('./layout/extended/scrolltop.js')\nwindow.KTLayoutSearch = window.KTLayoutSearchOffcanvas = require('./layout/extended/search.js')\n\nrequire('./layout/initialize.js')\n","/**\n * Hebrew translation for bootstrap-datepicker\n * Sagie Maoz \n */\n;(function($){\n $.fn.datepicker.dates['he'] = {\n days: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\", \"ראשון\"],\n daysShort: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\", \"א\"],\n daysMin: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\", \"א\"],\n months: [\"ינואר\", \"פברואר\", \"מרץ\", \"אפריל\", \"מאי\", \"יוני\", \"יולי\", \"אוגוסט\", \"ספטמבר\", \"אוקטובר\", \"נובמבר\", \"דצמבר\"],\n monthsShort: [\"ינו\", \"פבר\", \"מרץ\", \"אפר\", \"מאי\", \"יונ\", \"יול\", \"אוג\", \"ספט\", \"אוק\", \"נוב\", \"דצמ\"],\n today: \"היום\",\n rtl: true\n };\n}(jQuery));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nmodule.exports = require('./lib');\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _usePlacesWidget2 = _interopRequireDefault(require(\"./usePlacesWidget\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ReactGoogleAutocomplete(props) {\n var onPlaceSelected = props.onPlaceSelected,\n apiKey = props.apiKey,\n libraries = props.libraries,\n inputAutocompleteValue = props.inputAutocompleteValue,\n options = props.options,\n googleMapsScriptBaseUrl = props.googleMapsScriptBaseUrl,\n refProp = props.refProp,\n language = props.language,\n rest = _objectWithoutProperties(props, [\"onPlaceSelected\", \"apiKey\", \"libraries\", \"inputAutocompleteValue\", \"options\", \"googleMapsScriptBaseUrl\", \"refProp\", \"language\"]);\n\n var _usePlacesWidget = (0, _usePlacesWidget2.default)({\n ref: refProp,\n googleMapsScriptBaseUrl: googleMapsScriptBaseUrl,\n onPlaceSelected: onPlaceSelected,\n apiKey: apiKey,\n libraries: libraries,\n inputAutocompleteValue: inputAutocompleteValue,\n options: options,\n language: language\n }),\n ref = _usePlacesWidget.ref;\n\n return /*#__PURE__*/_react.default.createElement(\"input\", _extends({\n ref: ref\n }, rest));\n}\n\nReactGoogleAutocomplete.propTypes = {\n apiKey: _propTypes.default.string,\n libraries: _propTypes.default.arrayOf(_propTypes.default.string),\n ref: _propTypes.default.oneOfType([// Either a function\n _propTypes.default.func, // Or anything shaped { current: any }\n _propTypes.default.shape({\n current: _propTypes.default.any\n })]),\n googleMapsScriptBaseUrl: _propTypes.default.string,\n onPlaceSelected: _propTypes.default.func,\n inputAutocompleteValue: _propTypes.default.string,\n options: _propTypes.default.shape({\n componentRestrictions: _propTypes.default.object,\n bounds: _propTypes.default.object,\n location: _propTypes.default.object,\n offset: _propTypes.default.number,\n origin: _propTypes.default.object,\n radius: _propTypes.default.number,\n sessionToken: _propTypes.default.object,\n types: _propTypes.default.arrayOf(_propTypes.default.string)\n }),\n language: _propTypes.default.string\n};\n\nvar _default = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(ReactGoogleAutocomplete, _extends({}, props, {\n refProp: ref\n }));\n});\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GOOGLE_MAP_SCRIPT_BASE_URL = void 0;\nvar GOOGLE_MAP_SCRIPT_BASE_URL = \"https://maps.googleapis.com/maps/api/js\";\nexports.GOOGLE_MAP_SCRIPT_BASE_URL = GOOGLE_MAP_SCRIPT_BASE_URL;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _ReactGoogleAutocomplete.default;\n }\n});\nObject.defineProperty(exports, \"usePlacesWidget\", {\n enumerable: true,\n get: function get() {\n return _usePlacesWidget.default;\n }\n});\n\nvar _ReactGoogleAutocomplete = _interopRequireDefault(require(\"./ReactGoogleAutocomplete\"));\n\nvar _usePlacesWidget = _interopRequireDefault(require(\"./usePlacesWidget\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = usePlacesWidget;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"./utils\");\n\nvar _constants = require(\"./constants\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction usePlacesWidget(props) {\n var ref = props.ref,\n onPlaceSelected = props.onPlaceSelected,\n apiKey = props.apiKey,\n _props$libraries = props.libraries,\n libraries = _props$libraries === void 0 ? \"places\" : _props$libraries,\n _props$inputAutocompl = props.inputAutocompleteValue,\n inputAutocompleteValue = _props$inputAutocompl === void 0 ? \"new-password\" : _props$inputAutocompl,\n _props$options = props.options;\n _props$options = _props$options === void 0 ? {} : _props$options;\n\n var _props$options$types = _props$options.types,\n types = _props$options$types === void 0 ? [\"(cities)\"] : _props$options$types,\n componentRestrictions = _props$options.componentRestrictions,\n _props$options$fields = _props$options.fields,\n fields = _props$options$fields === void 0 ? [\"address_components\", \"geometry.location\", \"place_id\", \"formatted_address\"] : _props$options$fields,\n bounds = _props$options.bounds,\n options = _objectWithoutProperties(_props$options, [\"types\", \"componentRestrictions\", \"fields\", \"bounds\"]),\n _props$googleMapsScri = props.googleMapsScriptBaseUrl,\n googleMapsScriptBaseUrl = _props$googleMapsScri === void 0 ? _constants.GOOGLE_MAP_SCRIPT_BASE_URL : _props$googleMapsScri,\n language = props.language;\n\n var inputRef = (0, _react.useRef)(null);\n var event = (0, _react.useRef)(null);\n var autocompleteRef = (0, _react.useRef)(null);\n var observerHack = (0, _react.useRef)(null);\n var languageQueryParam = language ? \"&language=\".concat(language) : \"\";\n var googleMapsScriptUrl = \"\".concat(googleMapsScriptBaseUrl, \"?libraries=\").concat(libraries, \"&key=\").concat(apiKey).concat(languageQueryParam);\n var handleLoadScript = (0, _react.useCallback)(function () {\n return (0, _utils.loadGoogleMapScript)(googleMapsScriptBaseUrl, googleMapsScriptUrl);\n }, [googleMapsScriptBaseUrl, googleMapsScriptUrl]);\n (0, _react.useEffect)(function () {\n var config = _objectSpread(_objectSpread({}, options), {}, {\n fields: fields,\n types: types,\n bounds: bounds\n });\n\n if (componentRestrictions) {\n config.componentRestrictions = componentRestrictions;\n }\n\n if (autocompleteRef.current || !inputRef.current || !_utils.isBrowser) return;\n if (ref && !ref.current) ref.current = inputRef.current;\n\n var handleAutoComplete = function handleAutoComplete() {\n var _google$maps;\n\n if (typeof google === \"undefined\") return console.error(\"Google has not been found. Make sure your provide apiKey prop.\");\n if (!((_google$maps = google.maps) !== null && _google$maps !== void 0 && _google$maps.places)) return console.error(\"Google maps places API must be loaded.\");\n if (!inputRef.current instanceof HTMLInputElement) return console.error(\"Input ref must be HTMLInputElement.\");\n autocompleteRef.current = new google.maps.places.Autocomplete(inputRef.current, config);\n\n if (autocompleteRef.current) {\n event.current = autocompleteRef.current.addListener(\"place_changed\", function () {\n if (onPlaceSelected && autocompleteRef && autocompleteRef.current) {\n onPlaceSelected(autocompleteRef.current.getPlace(), inputRef.current, autocompleteRef.current);\n }\n });\n }\n };\n\n if (apiKey) {\n handleLoadScript().then(function () {\n return handleAutoComplete();\n });\n } else {\n handleAutoComplete();\n }\n\n return function () {\n return event.current ? event.current.remove() : undefined;\n };\n }, []); // Autofill workaround adapted from https://stackoverflow.com/questions/29931712/chrome-autofill-covers-autocomplete-for-google-maps-api-v3/49161445#49161445\n\n (0, _react.useEffect)(function () {\n var _React$version;\n\n // TODO find out why react 18(strict mode) hangs the page loading\n if (!(_react.default !== null && _react.default !== void 0 && (_React$version = _react.default.version) !== null && _React$version !== void 0 && _React$version.startsWith(\"18\")) && _utils.isBrowser && window.MutationObserver && inputRef.current && inputRef.current instanceof HTMLInputElement) {\n observerHack.current = new MutationObserver(function () {\n observerHack.current.disconnect();\n\n if (inputRef.current) {\n inputRef.current.autocomplete = inputAutocompleteValue;\n }\n });\n observerHack.current.observe(inputRef.current, {\n attributes: true,\n attributeFilter: [\"autocomplete\"]\n });\n }\n }, [inputAutocompleteValue]);\n (0, _react.useEffect)(function () {\n if (autocompleteRef.current) {\n autocompleteRef.current.setFields(fields);\n }\n }, [fields]);\n (0, _react.useEffect)(function () {\n if (autocompleteRef.current) {\n autocompleteRef.current.setBounds(bounds);\n }\n }, [bounds]);\n (0, _react.useEffect)(function () {\n if (autocompleteRef.current) {\n autocompleteRef.current.setComponentRestrictions(componentRestrictions);\n }\n }, [componentRestrictions]);\n (0, _react.useEffect)(function () {\n if (autocompleteRef.current) {\n autocompleteRef.current.setOptions(options);\n }\n }, [options]);\n return {\n ref: inputRef,\n autocompleteRef: autocompleteRef\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.loadGoogleMapScript = exports.isBrowser = void 0;\nvar isBrowser = typeof window !== \"undefined\" && window.document;\nexports.isBrowser = isBrowser;\n\nvar loadGoogleMapScript = function loadGoogleMapScript(googleMapsScriptBaseUrl, googleMapsScriptUrl) {\n if (!isBrowser) return Promise.resolve();\n\n if (typeof google !== \"undefined\") {\n if (google.maps && google.maps.api) return Promise.resolve();\n }\n\n var scriptElements = document.querySelectorAll(\"script[src*=\\\"\".concat(googleMapsScriptBaseUrl, \"\\\"]\"));\n\n if (scriptElements && scriptElements.length) {\n return new Promise(function (resolve) {\n // in case we already have a script on the page and it's loaded we resolve\n if (typeof google !== \"undefined\") return resolve(); // otherwise we wait until it's loaded and resolve\n\n scriptElements[0].addEventListener(\"load\", function () {\n return resolve();\n });\n });\n }\n\n var scriptUrl = new URL(googleMapsScriptUrl);\n scriptUrl.searchParams.set(\"callback\", \"__REACT_GOOGLE_AUTOCOMPLETE_CALLBACK__\");\n var el = document.createElement(\"script\");\n el.src = scriptUrl.toString();\n return new Promise(function (resolve) {\n window.__REACT_GOOGLE_AUTOCOMPLETE_CALLBACK__ = resolve;\n document.body.appendChild(el);\n });\n};\n\nexports.loadGoogleMapScript = loadGoogleMapScript;"],"names":["HOST_NAME","window","location","origin","objToLeadFormData","data","formData","FormData","key","append","requiredRule","required","message","i18n","t","LeadForm","setError","form","Form","useForm","loading","setLoading","useState","onPlaceSelected","useCallback","place","setFieldValue","geometry","lat","lng","address_components","component","types","long_name","short_name","validationRules","username","orgName","email","type","phone","pattern","RegExp","country","address","terms","initialValues","gon","default_country","state","city","street","number","zip_code","countriesList","Object","entries","countries_list","React","className","assign","labelCol","span","sm","offset","wrapperCol","labelAlign","colon","onFinish","async","_window","res","step","url","URL","fetch","method","headers","csrfToken","body","createLead","status","gtmDataLayer","push","document","href","json","then","error","validateTrigger","Item","label","name","rules","Input","placeholder","Autocomplete","apiKey","google_api_key","options","fields","Select","showSearch","suffixIcon","filterOption","input","option","children","toLowerCase","indexOf","map","Option","value","hidden","Checkbox","target","rel","Button","htmlType","Onboarding","ConfigProvider","direction","isRTL","style","maxWidth","src","width","alt","addEventListener","container","querySelector","createRoot","render","require","$","tooltipster","pluginName","util","KTUtil","app","KTApp","Error","fn","this","length","datatable","debug","API","record","params","Plugin","isInit","cellOffset","iconOffset","stateId","ajaxParams","pagingObject","init","isHtmlTable","source","extractTable","setupBaseDOM","call","setupDOM","table","on","pfx","afterRender","stateRemove","setDataSourceQuery","getOption","each","extName","extOptions","extend","spinnerCallback","saveState","dataSet","originalDataSet","dataMapCallback","dataRender","tableHead","find","remove","tableFoot","setHeadTitle","layout","header","footer","setupCellField","setupTemplateCell","setupSubDatatable","setupSystemColumn","redraw","initialWidth","resize","fullRender","height","prevKeyword","e","which","keyword","val","search","columns","get","cell","i","field","title","text","trim","column","ii","rowProp","prop","td","innerHTML","isEmpty","attr","rowProps","layoutUpdate","setupHover","detail","getDepth","lockTable","resetScroll","isLocked","isSubtable","autoHide","css","columnHide","rowEvenOdd","sorting","scrollbar","dropdownFix","trigger","wrap","dropdownMenu","detach","position","relatedTarget","closest","hide","lock","lockEnabled","lockEnabledColumns","left","right","enable","tablePart","ready","log","lockLeft","addClass","lockScroll","lockRight","rowLeft","appendTo","rowScroll","rowRight","locked","enableLock","empty","removeClass","insertData","screen","enabled","getBreakpoint","args","tableBody","hoverTimer","isScrolling","scroll","clearTimeout","off","setTimeout","row","index","parent","adjustLockContainer","containerWidth","Math","floor","dragResize","startX","startWidth","pressed","start","undefined","mousedown","pageX","mousemove","ifLocked","lockedIndex","eq","tri","tr","mouseup","initHeight","theadHeight","outerHeight","tfootHeight","bodyHeight","parseFloat","initialDatatable","clone","parents","theme","class","setOption","getUniqueID","prependTo","tableParts","part","tdi","obj","rowCallback","beforeTemplate","grep","n","template","finalValue","dataPlaceholder","DOMPurify","sanitize","createElement","html","overflow","afterTemplate","selector","chk","is","setActive","setInactive","subtable","initCheckbox","setActiveAll","first","maxWidthList","adjustCellsWidth","innerWidth","not","minWidth","dataWidth","cells","max","apply","outerWidth","ceil","adjustCellsHeight","totalRows","rows","maxHeight","wrapInner","scrollable","tableLocked","initPosition","getViewPort","scrollHead","scrollFoot","detectIE","initCustomScrollbar","initDefaultScrollbar","scrollLeft","onScrolling","top","scrollTop","initScrollbar","element","nodeName","ps","hasClass","update","PerfectScrollbar","wheelSpeed","swipeEasing","minScrollbarLength","maxScrollbarLength","suppressScrollX","getElementsByTagName","ths","appendChild","th","setAttribute","textAlign","align","action","siblings","buildMeta","localDataUpdate","meta","getDataSourceParam","perpage","pageSize","total","page","end","min","slice","afterGetData","result","localPagingCallback","ctx","pager","pagination","serverPaging","serverMeta","getObject","paging","serverSorting","serverFiltering","setAutoColumns","getData","done","pages","visibility","colLength","rowIndex","a","classes","join","errorSpan","replaceWith","updateTableComponents","dataType","timeout","ajax","response","textStatus","jqXHR","lastResponse","fail","errorThrown","always","callback","pg","paginateEvent","pagerLayout","info","parseInt","getTablePrefix","setDataSourceParam","serverCallback","addPaginateEvent","populate","pagingBreakpoint","icons","pagerNumber","gotoMorePage","prev","abs","pagesNumber","x","pageNumber","gotoPage","next","last","pageSizeSelect","updatePerpage","pageSizes","size","display","selectpicker","paste","unique","insertAfter","insertBefore","preventDefault","openPage","originalEvent","updateInfo","currentPage","getCurrentPage","pagerInput","show","mode","isInResponsiveRange","paginationUpdate","pagerMorePrev","pagerMoreNext","pagerFirst","pagerPrev","pagerNext","pagerLast","morePrevPage","moreNextPage","removeAttr","nav","more","responsive","visible","tds","subTableCallback","toggleSubTable","parentRow","subTableRow","getTotalColumns","after","toggle","subTable","primaryKey","icon","detailCell","raw","isSpinning","block","spinnerOptions","unblock","sortCallback","sort","format","b","aField","bField","moment","diff","isNaN","Number","replace","console","hiddenExist","hidDefault","toggleHiddenColumns","detailRow","clonedCells","detailRowTd","detailSubTable","recursive","offsetWidth","scrollWidth","prepend","k","v","getExtraSpace","getTableId","suffix","id","split","depth","stateKeep","localStorage","setItem","JSON","stringify","stateGet","defValue","getItem","parse","stateUpdate","ori","removeItem","getOneRow","tdOnly","sortColumn","int","hIndex","tda","tdb","sortObj","sortable","sortClick","setIcon","isEmptyObject","getColumnByField","query","nestedSearch","hasOwnProperty","getGeneralSearchKey","filterArray","filter","list","operator","toUpperCase","inArray","count","keys","filtered","to_match","matched","m_key","m_value","Array","match_property","lhs","toString","forEach","item","getDefaultSortColumn","getHiddenDimensions","includeMargin","props","dim","innerHeight","hiddenParents","addBack","oldProps","old","searchInput","path","object","reduce","extendObj","levels","createLevel","child","timer","load","reload","ms","delay","getRecord","rowNumber","getColumn","columnName","setSelectedRecords","destroy","nodeTr","nodeTd","nodeCols","recentNode","getValue","ids","active","checkboxes","getSelectedRecords","nodes","makeArray","getDataSourceQuery","param","getPageSize","getTotalRows","getDataSet","context","bool","scrollColumns","dataset","funcName","func","prototype","arguments","center","defaults","warn","autoColumns","minHeight","customScrollbar","spinner","overlayColor","opacity","asc","desc","rowDetail","expand","collapse","resizable","filterable","editable","onEnter","toolbar","placement","items","desktop","tablet","mobile","navigation","translate","records","processing","noRecords","default","select","all","extensions","jQuery","checkbox","Extension","selectedAllRows","selectedRows","unselectedRows","selectorEnabled","vars","requestIds","initVars","initEvent","initSelect","storage","click","self","getSelectedId","rowIds","array","KTDatatable","module","exports","the","getBody","defaultOptions","construct","events","deepExtend","eventTrigger","setHTML","event","one","handler","fired","addEvent","setDefaults","shown","elementId","getById","tabletAndMobile","releseOnReverse","has","build","set","eventTriggerState","lastScrollTop","st","isBreakpointDown","isBreakpointUp","getScrollTop","hasAttribute","removeAttribute","speed","throttle","handle","startStep","clickableSteps","steps","findAll","btnNext","btnPrev","btnSubmit","lastStep","currentStep","newStep","stopped","totalSteps","goTo","updateUI","setNewStep","getNextStep","getPrevStep","stop","resume","isLastStep","isFirstStep","isBetweenStep","stepType","len","stepsInfo","stepsContent","getNewStep","nested","goNext","goPrev","goLast","getLastStep","goFirst","getFirstStep","getStep","_element","_object","KTLayoutStickyCard","KTLayoutHeader","getHeight","KTCard","sticky","zIndex","pos","isFixed","KTLayoutSubheader","isFixedForMobile","getHeightForMobile","card","cardWidth","initSticky","addResizeHandler","updateSticky","_init","KTLayoutStretchedCard","cardBody","cardHeader","KTLayoutContent","actualHeight","_handeMessaging","KTLayoutChat","scrollEl","cardBodyEl","cardHeaderEl","cardFooterEl","scrollInit","windowScroll","mobileNativeScroll","desktopNativeScroll","resetHeightOnDestroy","handleWindowResize","rememberPosition","hasAttr","keyCode","messagesEl","textarea","node","encodeURI","hostname","KTCookie","getCookie","expires","Date","getTime","setCookie","setup","_offcanvasObject","KTLayoutDemoPanel","KTOffcanvas","overlay","baseClass","closeBy","toggleBy","content","wrapper","disableForMobile","offcanvas","KTLayoutExamples","elements","querySelectorAll","example","copy","clipboard","ClipboardJS","el","clearSelection","initDefaultMode","code","slideUp","slideDown","initCompactMode","KTLayoutQuickActions","getElement","KTLayoutQuickCartPanel","KTLayoutQuickNotifications","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","KTLayoutQuickPanel","scrollUpdate","KTLayoutQuickSearch","results","KTLayoutQuickUser","KTLayoutScrolltop","KTScrolltop","KTLayoutSearch","_target","_form","_input","_closeIcon","_resultWrapper","_resultDropdown","_resultDropdownToggle","_closeIconContainer","_inputGroup","_query","_hasResult","_timeout","_isProcessing","_spinnerClass","_resultClass","_hideProgress","_showDropdown","dropdown","_hideDropdown","_processSearch","head","credentials","success","_handleCancel","_handleSearch","onkeypress","charCode","KTAppSettings","breakpoints","md","lg","xl","xxl","colors","base","white","primary","secondary","warning","danger","light","dark","inverse","gray","KTDialog","KTHeader","KTImageInput","KTMenu","KTToggle","KTWizard","KTLayoutAside","KTLayoutAsideMenu","KTLayoutAsideToggle","KTLayoutBrand","KTLayoutFooter","KTLayoutHeaderMenu","KTLayoutHeaderTopbar","KTLayoutSearchOffcanvas","datepicker","dates","days","daysShort","daysMin","months","monthsShort","today","rtl","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","err","getShim","isRequired","ReactPropTypes","bigint","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","_typeof","Symbol","iterator","constructor","defineProperty","_react","nodeInterop","__esModule","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","_interopRequireWildcard","_propTypes","_interopRequireDefault","_usePlacesWidget2","WeakMap","cacheBabelInterop","cacheNodeInterop","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ReactGoogleAutocomplete","libraries","inputAutocompleteValue","googleMapsScriptBaseUrl","refProp","language","rest","ref","propTypes","current","componentRestrictions","bounds","radius","sessionToken","_default","forwardRef","GOOGLE_MAP_SCRIPT_BASE_URL","enumerable","_ReactGoogleAutocomplete","_usePlacesWidget","_props$libraries","_props$inputAutocompl","_props$options","_props$options$types","_props$options$fields","_props$googleMapsScri","_constants","inputRef","useRef","autocompleteRef","observerHack","languageQueryParam","concat","googleMapsScriptUrl","handleLoadScript","_utils","loadGoogleMapScript","useEffect","config","_objectSpread","isBrowser","handleAutoComplete","_google$maps","google","maps","places","HTMLInputElement","addListener","getPlace","_React$version","version","startsWith","MutationObserver","disconnect","autocomplete","observe","attributes","attributeFilter","setFields","setBounds","setComponentRestrictions","setOptions","ownKeys","enumerableOnly","symbols","sym","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","Promise","resolve","api","scriptElements","scriptUrl","searchParams","__REACT_GOOGLE_AUTOCOMPLETE_CALLBACK__"],"sourceRoot":""}