{"version":3,"file":"static/chunks/5227-7539b6d8a62a23b9.js","mappings":"+fAuDAA,CAAAA,EAAAC,CAAA,CAjDuB,QAKJC,EAUJA,EACAA,EAUOA,EAILA,EAzBEA,EAqBGA,KA1BE,CAAEA,KAAAA,CAAI,CAAE,CAAAC,EACxBC,EAAoBC,CAAAA,EAAAA,EAAAA,CAAAA,EAAa,CACrCC,UAAWJ,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMK,QAAQ,GAAIL,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMM,IAAI,EACvCC,OAAQ,2BACV,GACMC,EAAWR,OAAAA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMS,GAAG,GAATT,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAWQ,QAAQ,GAAnBR,KAAAA,IAAAA,EAAAA,EAAuB,GAClCU,EACJV,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMK,QAAQ,IAAKL,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMM,IAAI,EACzB,GAA8BK,MAAA,CAA3BC,EAAAA,CAAMA,CAACC,mBAAmB,EAC7B,GAAgCF,MAAA,CAA7BC,EAAAA,CAAMA,CAACE,qBAAqB,EAErC,MACE,GAAAC,EAAAC,GAAA,EAACC,MAAAA,CAAIC,UAAU,gHACb,GAAAH,EAAAI,IAAA,EAACF,MAAAA,CAAIC,UAAU,gDACb,GAAAH,EAAAC,GAAA,EAACI,IAAKA,CACJC,IAAKrB,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMsB,MAAM,GAAZtB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcuB,MAAM,CACzBC,IAAKxB,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMsB,MAAM,GAAZtB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcyB,IAAI,CACvBC,MAAO,GACPC,OAAQ,GACRT,UAAU,mCAEZ,GAAAH,EAAAI,IAAA,EAACF,MAAAA,CAAIC,UAAU,mGACb,GAAAH,EAAAI,IAAA,EAACF,MAAAA,WACC,GAAAF,EAAAI,IAAA,EAACS,IAAAA,WACEhB,EAAAA,CAAMA,CAACiB,mBAAmB,CAAC,IAAE,IAC9B,GAAAd,EAAAC,GAAA,EAACc,IAAIA,CACHC,KAAM/B,OAAAA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMsB,MAAM,GAAZtB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcgC,GAAG,GAAjBhC,KAAAA,IAAAA,EAAAA,EAAqB,GAC3BkB,UAAU,kBACVe,MAAO,CAAEC,MAAO,kBAAmB,WAElClC,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMsB,MAAM,GAAZtB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcyB,IAAI,MAGvB,GAAAV,EAAAI,IAAA,EAACS,IAAAA,WACC,GAAAb,EAAAC,GAAA,EAACmB,OAAAA,UAAMzB,IAAiB,KAAGR,QAG9BM,GACC,GAAAO,EAAAI,IAAA,EAACS,IAAAA,CAAEV,UAAU,uBACVN,EAAAA,CAAMA,CAACwB,kBAAkB,CAAC,IAAE,IAC3B,GAAoB5B,MAAAA,CAAlBA,EAAS,WAAiCG,MAAA,CAAxBH,EAAW,EAAI,IAAM,cAOzD,gFE5BA6B,EArBgB,OAAC,CAAEC,QAAAA,CAAO,CAAEC,YAAAA,CAAW,CAAE,CAAAtC,EACjCuC,EAAoBC,SDLsBC,CAAW,EAC3D,GAAI,CAACA,EAAa,MAAO,GAEzB,IAAMC,EAAyB,OAC7B,kDACA,KAIIC,EAAkB,GACfb,GAAQA,EAAKc,KAAK,CAACF,GAqC5B,OAAOD,MAAAA,EAAAA,KAAAA,EAAAA,EAAaI,OAAO,CAAC,aAjCP,IACnB,IAAMC,EAAYC,MAAAA,EAAAA,KAAAA,EAAAA,EAAKC,OAAO,CAAC,UAC/B,GAAIF,KAAAA,EAAkB,OAAOC,EAE7B,IAAME,EAAQH,EAAY,EACpBI,EAAMH,MAAAA,EAAAA,KAAAA,EAAAA,EAAKC,OAAO,CAAC,IAAKC,GAG9B,GAAIN,EAFSI,MAAAA,EAAAA,KAAAA,EAAAA,EAAKI,SAAS,CAACF,EAAOC,IAER,CACzB,IAAME,EAAWL,MAAAA,EAAAA,KAAAA,EAAAA,EAAKC,OAAO,CAAC,SACxBK,EAAcN,MAAAA,EAAAA,KAAAA,EAAAA,EAAKC,OAAO,CAAC,YAC3BM,EACJF,KAAAA,GACAL,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EACII,SAAS,CAACC,EAAUL,EAAIC,OAAO,CAAC,IAAKI,EAAW,IACjDG,QAAQ,CAAC,cAEd,GAAIH,KAAAA,EACFL,EAAMA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAKS,KAAK,CAAC,EAAGN,EAAM,IAAK,mBAAqBH,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAKS,KAAK,CAACN,EAAM,SAChE,GAAI,CAACI,EAAc,CACxB,IAAMG,EAASV,EAAIC,OAAO,CAAC,IAAKI,EAAW,GAC3CL,EAAMA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAKS,KAAK,CAAC,EAAGC,EAAAA,EAAU,aAAeV,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAKS,KAAK,CAACC,EAAAA,CAC1D,CAEoB,KAAhBJ,GACFN,CAAAA,EAAMA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAKS,KAAK,CAAC,EAAGN,EAAM,IAAK,mBAAqBH,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAKS,KAAK,CAACN,EAAM,IAEzE,CAEA,OAAOH,CACT,EAIF,EC3C8DV,GAEtD,CAACqB,EAAeC,EAAiB,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,YAMnD,CAJAC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACRF,EAAiBpB,EACnB,EAAG,CAACF,EAAQ,EAEPqB,GAGH,GAAAI,EAAA/C,GAAA,EAACC,MAAAA,CACC+C,GAAG,sBACH9C,UAAWqB,EACX0B,wBAAyB,CAAEC,OAAQP,GAAiBrB,CAAQ,EAC5D6B,yBAAwB,KAPD,IAU7B,0KClBA,IAAMC,EAAO,OAAC,CAAEC,KAAAA,CAAI,CAAE,CAAApE,QACpB,GAAA8D,EAAA5C,IAAA,EAACF,MAAAA,CAAIC,UAAU,uCACb,GAAA6C,EAAA/C,GAAA,EAACI,IAAKA,CAACI,IAAK6C,MAAAA,EAAAA,KAAAA,EAAAA,EAAM5C,IAAI,CAAEE,OAAQ,GAAIN,IAAKgD,MAAAA,EAAAA,KAAAA,EAAAA,EAAMC,IAAI,CAAE5C,MAAO,KAC5D,GAAAqC,EAAA5C,IAAA,EAACS,IAAAA,CAAEV,UAAU,2CACX,GAAA6C,EAAA/C,GAAA,EAACmB,OAAAA,CAAKjB,UAAU,mBAAWmD,MAAAA,EAAAA,KAAAA,EAAAA,EAAME,QAAQ,GACzC,GAAAR,EAAA/C,GAAA,EAACwD,KAAAA,UAAIH,MAAAA,EAAAA,KAAAA,EAAAA,EAAM5C,IAAI,GACf,GAAAsC,EAAA/C,GAAA,EAACmB,OAAAA,CAAKjB,UAAU,sCAA8BmD,MAAAA,EAAAA,KAAAA,EAAAA,EAAMI,MAAM,UAsEhE,IAAAC,EAjEgB,QAaeC,EAShBA,EAoBFA,EAKAA,EAEAA,EASDA,KA1DK,CAAEA,QAAAA,CAAO,CAAE,CAAA1E,QAC1B,GAAA8D,EAAA5C,IAAA,EAACF,MAAAA,CACCC,UAAU,oFACV0D,UAAS,GACTC,SAAS,0CAET,GAAAd,EAAA5C,IAAA,EAACF,MAAAA,CAAIC,UAAU,2DACZyD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAASG,WAAW,GACnB,GAAAf,EAAA/C,GAAA,EAACY,IAAAA,CAAEV,UAAU,0DACVyD,MAAAA,EAAAA,KAAAA,EAAAA,EAASG,WAAW,GAGzB,GAAAf,EAAA5C,IAAA,EAACS,IAAAA,CAAEmD,SAAS,WAAWH,UAAS,GAACC,SAAS,qCACxC,GAAAd,EAAA/C,GAAA,EAACmB,OAAAA,CAAK4C,SAAS,gBAAQJ,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAASK,KAAK,GAAdL,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBlD,IAAI,GAC1CkD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAASK,KAAK,CAACT,QAAQ,GACtB,GAAAR,EAAA5C,IAAA,EAACgB,OAAAA,CACC4C,SAAS,UACTH,UAAS,GACTC,SAAS,6CACV,IAEC,GAAAd,EAAA/C,GAAA,EAACiE,IAAAA,CAAE/D,UAAU,OAAO6D,SAAS,2BAC1BJ,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAASK,KAAK,GAAdL,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBJ,QAAQ,YAMnC,GAAAR,EAAA5C,IAAA,EAACF,MAAAA,CAAIC,UAAU,4DACb,GAAA6C,EAAA/C,GAAA,EAACoD,EAAAA,CAAKC,KAAMM,MAAAA,EAAAA,KAAAA,EAAAA,EAASO,IAAI,GACzB,GAAAnB,EAAA5C,IAAA,EAACF,MAAAA,CAAIC,UAAU,mDACb,GAAA6C,EAAA5C,IAAA,EAACgE,OAAAA,CACCjE,UAAU,OACVkE,SAAUT,MAAAA,EAAAA,KAAAA,EAAAA,EAASU,aAAa,CAChCN,SAAS,sBAERJ,MAAAA,EAAAA,KAAAA,EAAAA,EAASW,SAAS,CACnB,GAAAvB,EAAA/C,GAAA,EAACuE,KAAAA,CAAAA,GACAZ,MAAAA,EAAAA,KAAAA,EAAAA,EAASvE,SAAS,IAErB,GAAA2D,EAAA5C,IAAA,EAACF,MAAAA,CAAIC,UAAU,+CACb,GAAA6C,EAAA5C,IAAA,EAACS,IAAAA,CAAEV,UAAU,kDACVyD,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAASa,SAAS,GAAlBb,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoBN,IAAI,CACzB,GAAAN,EAAA/C,GAAA,EAACuE,KAAAA,CAAAA,GACA3E,EAAAA,CAAMA,CAAC6E,kBAAkB,IAE5B,GAAA1B,EAAA5C,IAAA,EAACS,IAAAA,CAAEV,UAAU,sBACVyD,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAASa,SAAS,GAAlBb,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoBe,MAAM,CAC3B,GAAA3B,EAAA/C,GAAA,EAACuE,KAAAA,CAAAA,GACAZ,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAASa,SAAS,GAAlBb,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoBgB,SAAS,UAIpC,GAAA5B,EAAA/C,GAAA,EAACoD,EAAAA,CAAKC,KAAMM,MAAAA,EAAAA,KAAAA,EAAAA,EAASiB,IAAI,MAE3B,GAAA7B,EAAA/C,GAAA,EAACc,IAAIA,CACH+D,aAAYjF,EAAAA,CAAMA,CAACkF,kBAAkB,CACrC5E,UAAU,oKACVa,KAAM4C,OAAAA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAASoB,WAAW,GAApBpB,KAAAA,IAAAA,EAAAA,EAAwB,YAE7B/D,EAAAA,CAAMA,CAACkF,kBAAkB,KAEzB,sBC5EA,IAAME,EAAkB,CAACC,EAASC,KACvCpC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,IAAMqC,EAAgB,6BAChBC,EAAe,OAAW,uCAC1BC,EAAY,OAAW,mCACvBC,EAAW,OAAW,oCAEtBC,EAAQC,WAAW,KACvB,IAAMC,EAAcC,OAAOnC,QAAQ,CAACoC,QAAQ,CAK5CC,SAJuCC,gBAAgB,CACrD,0BAGoBC,OAAO,CAAC,IAC5B,IAAIC,EAAS,GACTX,EAAaY,IAAI,CAACP,GACpBM,EAAS,QACAV,EAAUW,IAAI,CAACP,GACxBM,EAAS,UACAZ,EAAca,IAAI,CAACP,GAC5BM,EAAS,QACAT,EAASU,IAAI,CAACP,IACvBM,CAAAA,EAAS,UAITd,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAASgB,IAAI,CACX,GAAUR,IAAgB,wBAA6B9F,MAAA,CAALuG,EAAK,QAGzDH,CAAAA,EAAS,WAGX,IAAII,EAAcC,EAAKrF,IAAI,CAACe,OAAO,CAAC,MAAO,IACvCqE,GAAe,CAACA,EAAY3D,QAAQ,CAACuD,IACvCI,CAAAA,GAAeJ,CAAAA,EAGjBK,EAAKrF,IAAI,CAAG,GAAepB,MAAA,CAAZwG,EAAY,KAE3B,IAAIE,EAAoBD,EAAKE,YAAY,CAAC,oBACtCD,GAAqB,CAACA,EAAkB7D,QAAQ,CAACuD,IACnDM,CAAAA,GAAqBN,CAAAA,EAGvBK,EAAKG,YAAY,CAAC,mBAAoBF,EACxC,EACF,EAAG,KAEH,MAAO,IAAMG,aAAajB,EAC5B,EAAG,CAACN,EAASC,EAAY,CAC3B,EAEauB,EAA0B,IACrC3D,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,IAAM4D,EAA0B,KAC9B,IAAMC,EAAeC,SAASC,cAAc,CAAC,iBACvCC,EAAiBF,SAASC,cAAc,CAAC,aAC/C,GAAIF,GAAgBG,EAAgB,CAClC,IAAMC,EAAWJ,SAAAA,EAAa1F,KAAK,CAAC+F,OAAO,CAC3CL,EAAa1F,KAAK,CAAC+F,OAAO,CAAGD,EAAW,QAAU,OAClDD,EAAeG,WAAW,CAAGF,EACzB,oBACA,mBACN,CACF,EAEMG,EAAsB,KAC1B,IAAMC,EAAWP,SAASC,cAAc,CAAC,aACnCO,EAAYR,SAASC,cAAc,CAAC,kBACpCQ,EAAWT,SAASC,cAAc,CAAC,oBAEzC,GAAIM,GAAYC,GAAaC,EAAU,CACrC,IAAMC,EAAoBH,UAAAA,EAASlG,KAAK,CAAC+F,OAAO,CAChDG,EAASlG,KAAK,CAAC+F,OAAO,CAAGM,EAAoB,OAAS,QACtDF,EAAUnG,KAAK,CAAC+F,OAAO,CAAGM,EAAoB,QAAU,OACxDD,EAASpG,KAAK,CAAC+F,OAAO,CAAGM,EAAoB,QAAU,MACzD,CACF,EAEMC,EAAuB,KAC3B,IAAMC,EAAqBZ,SAASC,cAAc,CAAC,aAC7CY,EAAiBb,SAASC,cAAc,CAAC,oBAS/C,OAPIW,GACFA,EAAmBE,gBAAgB,CAAC,QAAShB,GAE3Ce,GACFA,EAAeC,gBAAgB,CAAC,QAASR,GAGpC,KACDM,GACFA,EAAmBG,mBAAmB,CACpC,QACAjB,GAGAe,GACFA,EAAeE,mBAAmB,CAAC,QAAST,EAEhD,CACF,EAEMU,EAAW,IAAIC,iBAAiB,KACpCN,GACF,GAIA,OAFAK,EAASE,OAAO,CAAClB,SAASmB,IAAI,CAAE,CAAEC,UAAW,GAAMC,QAAS,EAAK,GAE1D,KACLL,EAASM,UAAU,GACnBX,GACF,CACF,EAAG,CAACrC,EAAY,CAClB,EAEaiD,EAAqB,KAChCrF,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,IAAMsF,EAAkB,IACtB,IAAMC,EAASC,EAAMC,aAAa,CAC5BC,EAAeH,EAAO/B,YAAY,CAAC,oBACnCmC,EAAkB7B,SAASC,cAAc,CAAC2B,GAE5CC,EACFC,UAAUC,SAAS,CAChBC,SAAS,CAACH,EAAgBI,KAAK,EAC/BC,IAAI,CAAC,KACJT,EAAOpB,WAAW,CAAG,UACrBoB,EAAOpH,KAAK,CAAC8H,eAAe,CAAG,UAC/BV,EAAOpH,KAAK,CAACC,KAAK,CAAG,QAErBsE,WAAW,KACT6C,EAAOpB,WAAW,CAAGoB,EAAO/B,YAAY,CAAC,uBACzC+B,EAAOpH,KAAK,CAAC8H,eAAe,CAAG,cAC/BV,EAAOpH,KAAK,CAACC,KAAK,CAAG,SACvB,EAAG,IACL,GAEC8H,KAAK,CAAC,GAASC,QAAQC,KAAK,CAAC,eAAgBC,IAGhDF,QAAQC,KAAK,CAAC,sBAAuBV,EAEzC,EAEMjB,EAAuB,KAC3B,IAAM6B,EAAcxC,SAASf,gBAAgB,CAAC,gBAK9C,OAJAuD,EAAYtD,OAAO,CAAC,IAClBuC,EAAOX,gBAAgB,CAAC,QAASU,EACnC,GAEO,KACLgB,EAAYtD,OAAO,CAAC,IAClBuC,EAAOV,mBAAmB,CAAC,QAASS,EACtC,EACF,CACF,EAEMR,EAAW,IAAIC,iBAAiB,KACpCN,GACF,GAIA,OAFAK,EAASE,OAAO,CAAClB,SAASmB,IAAI,CAAE,CAAEC,UAAW,GAAMC,QAAS,EAAK,GAE1D,KACLL,EAASM,UAAU,GACnBX,GACF,CACF,EAAG,EAAE,CACP,EAEa8B,EAAmB,CAACpE,EAASC,KACxCpC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,IAAMwG,EAAoB,KACxB,IAAMC,EAAa7D,OAAOnC,QAAQ,CAACoC,QAAQ,CAG3C6D,SAFuB3D,gBAAgB,CAAC,mBAElCC,OAAO,CAAC,IACZ,IAAMM,EAAOqD,EAAKC,aAAa,CAAC,KAC5BtD,GAAQA,EAAKE,YAAY,CAAC,UAAYiD,GACxCE,CAAAA,EAAKxI,KAAK,CAAC+F,OAAO,CAAG,OAEzB,EACF,EAEAsC,IAEA,IAAM1B,EAAW,IAAIC,iBAAiByB,GAGtC,OAFA1B,EAASE,OAAO,CAAClB,SAASmB,IAAI,CAAE,CAAEC,UAAW,GAAMC,QAAS,EAAK,GAE1D,KACLL,EAASM,UAAU,EACrB,CACF,EAAG,CAACjD,EAASC,EAAY,CAC3B,8CC7KA,IAAMyE,EAAaC,IAAQ,IAAMC,QAAAC,OAAA,GAAAhB,IAAA,CAAAiB,EAAAC,IAAA,CAAAD,EAAA,OAAgC,wCAC/DE,IAAK,KA4DP,IAAAC,EAzDiB,QA2CAhF,EAIAA,EACGA,EAPHA,KAzCC,CAAEiF,KAAAA,CAAI,CAAExG,QAAAA,CAAO,CAAEsB,QAAAA,CAAO,CAAEmF,WAAAA,CAAU,CAAE,CAAAnL,EACtDoL,CAAAA,EAAAA,EAAAA,CAAAA,EAAOF,GACPnF,EAAgBC,EAASkF,MAAAA,EAAAA,KAAAA,EAAAA,EAAM7I,OAAO,EACtCmF,EAAwB0D,MAAAA,EAAAA,KAAAA,EAAAA,EAAM7I,OAAO,EACrC6G,EAAmBgC,GACnBd,EAAiBpE,EAASkF,MAAAA,EAAAA,KAAAA,EAAAA,EAAM7I,OAAO,EAEvC,IAAMgJ,EAAgB,CACpBC,EAAAA,EAAaA,CACbC,EAAAA,EAAUA,CACVC,EAAAA,EAAmBA,CACnBC,EAAAA,EAAoBA,CACpBC,EAAAA,EAAeA,CAChB,CACKC,EAAajH,GAAWkH,OAAOC,IAAI,CAACnH,GAASoH,MAAM,CAAG,EAGtDC,EAAgBC,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,eAG5B/F,EAAciF,EAKlB,MAPmC,WAAlBa,GAGDb,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMnJ,GAAG,IAAK,yBAC5BkE,CAAAA,EAAckF,CAAAA,EAId,GAAArH,EAAA5C,IAAA,EAAA4C,EAAAmI,QAAA,YACE,GAAAnI,EAAA/C,GAAA,EAACmL,EAAAA,CAAIA,CAAAA,CAAC1L,IAAKyF,MAAAA,EAAAA,KAAAA,EAAAA,EAAazF,GAAG,GAC3B,GAAAsD,EAAA/C,GAAA,EAAC2J,EAAAA,CAAAA,GACD,GAAA5G,EAAA/C,GAAA,EAACoL,KAAAA,CACClL,UAAU,mFACV+C,wBAAyB,CAAEC,OAAQgC,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAamG,KAAK,GAAI,EAAG,EAC5DlI,yBAAwB,KAEzBgH,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM7J,MAAM,GAAI,CAACgK,EAAc9H,QAAQ,CAAC0C,MAAAA,EAAAA,KAAAA,EAAAA,EAAalE,GAAG,GACvD,GAAA+B,EAAA/C,GAAA,EAACsL,EAAAA,CAAcA,CAAAA,CAACtM,KAAMkG,IAEvB0F,GAAc,GAAA7H,EAAA/C,GAAA,EAACuL,EAAOA,CAAC5H,QAASA,IAChCuB,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAasG,aAAa,GACzB,GAAAzI,EAAA/C,GAAA,EAACC,MAAAA,CAAIC,UAAU,qGACb,GAAA6C,EAAA/C,GAAA,EAACyL,EAAAA,CAAWA,CAAAA,CAEVvL,UAAU,mCACVM,IAAK0E,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAasG,aAAa,GAA1BtG,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4BwG,OAAO,CACxChL,MAAO,IACPC,OAAQ,IACRgL,MAAM,4DACNtL,IAAK6E,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAasG,aAAa,GAA1BtG,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4B0G,SAAS,CAC1CC,OAAQ3G,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAasG,aAAa,GAA1BtG,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4B2G,MAAM,EAPrC3G,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAasG,aAAa,GAA1BtG,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4BwG,OAAO,IAW9C,GAAA3I,EAAA/C,GAAA,EAAC8L,EAAAA,CAAOA,CAAAA,CAACxK,QAAS4D,MAAAA,EAAAA,KAAAA,EAAAA,EAAa5D,OAAO,CAAEC,YAAY,kBAG1D","sources":["webpack://_N_E/./components/AuthorInfo.js","webpack://_N_E/./utilities/content-parser.js","webpack://_N_E/./components/Content.js","webpack://_N_E/./components/Rivalry.js","webpack://_N_E/./hooks/useCasinos.js","webpack://_N_E/./components/pages/MiscPage.js"],"sourcesContent":["import Image from \"next/image\";\nimport Link from \"next/link\";\n\nimport labels from \"@/config/labels\";\nimport { useLocalTime } from \"@/hooks/useLocalTime\";\n\nconst PostAuthorInfo = ({ post }) => {\n  const formattedPostDate = useLocalTime({\n    startTime: post?.modified || post?.date,\n    format: \"ddd MMM DD, YYYY, HH:mm A\",\n  });\n  const readTime = post?.seo?.readTime ?? \"\";\n  const dateLabel =\n    post?.modified === post?.date\n      ? `${labels.authorInfoPublished}`\n      : `${labels.authorInfoLastUpdated}`;\n\n  return (\n    <div className=\"mb-4 mt-2 flex justify-between rounded-lg border border-solid border-[rgb(203,210,217)] bg-white p-2\">\n      <div className=\"flex w-full items-center gap-[10px]\">\n        <Image\n          src={post?.author?.avatar}\n          alt={post?.author?.name}\n          width={55}\n          height={55}\n          className=\"h-[45px] w-[45px] rounded-full\"\n        />\n        <div className=\"flex w-full flex-col justify-between text-xs leading-4 md:flex-row md:gap-6 lg:text-sm\">\n          <div>\n            <p>\n              {labels.authorInfoWrittenBy}:{\" \"}\n              <Link\n                href={post?.author?.uri ?? \"\"}\n                className=\"hover:underline\"\n                style={{ color: \"rgb(9 103 210/1)\" }}\n              >\n                {post?.author?.name}\n              </Link>\n            </p>\n            <p>\n              <span>{dateLabel}</span>: {formattedPostDate}\n            </p>\n          </div>\n          {readTime && (\n            <p className=\"md:mt-auto\">\n              {labels.authorInfoReadTime}:{\" \"}\n              {`${readTime} minute${readTime > 1 ? \"s\" : \"\"}`}\n            </p>\n          )}\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default PostAuthorInfo;\n","export function updateImageAndSponsoredAttributes(htmlContent) {\n  if (!htmlContent) return \"\";\n\n  const externalAffiliateRegex = new RegExp(\n    \"https://affiliates\\\\.bettingnews\\\\.com/[\\\\w-]+/\",\n    \"g\"\n  );\n\n  // Function to check if a link is an affiliate link\n  const isAffiliateLink = (href) => {\n    return href && href.match(externalAffiliateRegex);\n  };\n\n  // Function to process link (<a>) tags\n  const processLinks = (tag) => {\n    const hrefIndex = tag?.indexOf('href=\"');\n    if (hrefIndex === -1) return tag; // No href attribute found\n\n    const start = hrefIndex + 6; // Start of the URL in href\n    const end = tag?.indexOf('\"', start); // End of the URL\n    const href = tag?.substring(start, end);\n\n    if (isAffiliateLink(href)) {\n      const relIndex = tag?.indexOf('rel=\"');\n      const targetIndex = tag?.indexOf('target=\"');\n      const hasSponsored =\n        relIndex !== -1 &&\n        tag\n          ?.substring(relIndex, tag.indexOf('\"', relIndex + 5))\n          .includes(\"sponsored\");\n\n      if (relIndex === -1) {\n        tag = tag?.slice(0, end + 1) + ' rel=\"sponsored\"' + tag?.slice(end + 1);\n      } else if (!hasSponsored) {\n        const relEnd = tag.indexOf('\"', relIndex + 5);\n        tag = tag?.slice(0, relEnd) + \" sponsored\" + tag?.slice(relEnd);\n      }\n\n      if (targetIndex === -1) {\n        tag = tag?.slice(0, end + 1) + ' target=\"_blank\"' + tag?.slice(end + 1);\n      }\n    }\n\n    return tag;\n  };\n\n  // Main processing of HTML content\n  return htmlContent?.replace(/<a [^>]*>/g, processLinks);\n}\n","import { useEffect, useState } from \"react\";\n\nimport { updateImageAndSponsoredAttributes } from \"@/utilities/content-parser\";\n\nconst Content = ({ content, customClass }) => {\n  const parsedHtmlContent = updateImageAndSponsoredAttributes(content);\n\n  const [clientContent, setClientContent] = useState(null);\n\n  useEffect(() => {\n    setClientContent(parsedHtmlContent);\n  }, [content]);\n\n  if (!clientContent) return null;\n\n  return (\n    <div\n      id=\"bettingnews-content\"\n      className={customClass}\n      dangerouslySetInnerHTML={{ __html: clientContent || content }}\n      suppressHydrationWarning\n    />\n  );\n};\n\nexport default Content;\n","import Image from \"next/image\";\nimport Link from \"next/link\";\n\nimport labels from \"@/config/labels\";\n\nconst Team = ({ team }) => (\n  <div className=\"flex flex-col items-center\">\n    <Image alt={team?.name} height={80} src={team?.logo} width={80} />\n    <p className=\"mt-2 flex flex-col text-center\">\n      <span className=\"text-xs\">{team?.location}</span>\n      <h5>{team?.name}</h5>\n      <span className=\"mt-1 text-xs text-grey-600\">{team?.record}</span>\n    </p>\n  </div>\n);\n\nconst Rivalry = ({ rivalry }) => (\n  <div\n    className=\"mb-2 flex flex-col rounded-lg border border-card-border bg-off-white p-4 lg:px-12\"\n    itemScope\n    itemType=\"http://schema.org/SportsEvent\"\n  >\n    <div className=\"flex flex-col items-center text-center text-xs\">\n      {rivalry?.broadcaster && (\n        <p className=\"mb-1 rounded-lg bg-darker p-[0.5em] text-white\">\n          {rivalry?.broadcaster}\n        </p>\n      )}\n      <p itemProp=\"location\" itemScope itemType=\"https://schema.org/Place\">\n        <span itemProp=\"name\">{rivalry?.venue?.name}</span>\n        {rivalry?.venue.location && (\n          <span\n            itemProp=\"address\"\n            itemScope\n            itemType=\"https://schema.org/PostalAddress\"\n          >\n            ,\n            <b className=\"ml-1\" itemProp=\"addressLocality\">\n              {rivalry?.venue?.location}\n            </b>\n          </span>\n        )}\n      </p>\n    </div>\n    <div className=\"my-2 flex flex-row items-center justify-between\">\n      <Team team={rivalry?.away} />\n      <div className=\"flex flex-col items-center text-center\">\n        <time\n          className=\"mb-6\"\n          dateTime={rivalry?.startDateTime}\n          itemProp=\"startDate\"\n        >\n          {rivalry?.startDate}\n          <br />\n          {rivalry?.startTime}\n        </time>\n        <div className=\"flex flex-row text-[80%] leading-6\">\n          <p className=\"mr-1 border-r border-card-border pr-1\">\n            {rivalry?.consensus?.team}\n            <br />\n            {labels.consensusOverUnder}\n          </p>\n          <p className=\"font-bold\">\n            {rivalry?.consensus?.spread}\n            <br />\n            {rivalry?.consensus?.overUnder}\n          </p>\n        </div>\n      </div>\n      <Team team={rivalry?.home} />\n    </div>\n    <Link\n      aria-label={labels.rivalryMatchupLink}\n      className=\"self-center rounded-full bg-blue px-6 py-[.4375rem] font-heading text-[.8125rem] font-medium leading-[1.75rem] text-white hover:bg-darker-blue focus:bg-link-blue\"\n      href={rivalry?.matchupLink ?? \"\"}\n    >\n      {labels.rivalryMatchupLink}\n    </Link>\n  </div>\n);\n\nexport default Rivalry;\n","import { useEffect } from \"react\";\n\nexport const useCasinoSuffix = (casinos, pageContent) => {\n  useEffect(() => {\n    const baseCasinoURL = /^\\/best-online-casinos\\/?$/;\n    const realMoneyURL = new RegExp(\"^/best-online-casinos/real-money/?$\");\n    const cryptoURL = new RegExp(\"^/best-online-casinos/crypto/?$\");\n    const bonusURL = new RegExp(\"^/best-online-casinos/bonuses/?$\");\n\n    const timer = setTimeout(() => {\n      const currentPath = window.location.pathname;\n      const affiliateLinkElements = document.querySelectorAll(\n        \".casino-affiliate-link\"\n      );\n\n      affiliateLinkElements.forEach((link) => {\n        let suffix = \"\";\n        if (realMoneyURL.test(currentPath)) {\n          suffix = \"-real\";\n        } else if (cryptoURL.test(currentPath)) {\n          suffix = \"-crypto\";\n        } else if (baseCasinoURL.test(currentPath)) {\n          suffix = \"-best\";\n        } else if (bonusURL.test(currentPath)) {\n          suffix = \"-bonus\";\n        }\n\n        if (\n          casinos?.some(\n            (slug) => currentPath === `/best-online-casinos/${slug}/`\n          )\n        ) {\n          suffix = \"-review\";\n        }\n\n        let currentHref = link.href.replace(/\\/$/, \"\");\n        if (currentHref && !currentHref.includes(suffix)) {\n          currentHref += suffix;\n        }\n\n        link.href = `${currentHref}/`;\n\n        let currentEventLabel = link.getAttribute(\"data-event-label\");\n        if (currentEventLabel && !currentEventLabel.includes(suffix)) {\n          currentEventLabel += suffix;\n        }\n\n        link.setAttribute(\"data-event-label\", currentEventLabel);\n      });\n    }, 100);\n\n    return () => clearTimeout(timer);\n  }, [casinos, pageContent]);\n};\n\nexport const useCasinoEventListeners = (pageContent) => {\n  useEffect(() => {\n    const handleExtraCasinosClick = () => {\n      const extraCasinos = document.getElementById(\"extra-casinos\");\n      const showMoreButton = document.getElementById(\"show-more\");\n      if (extraCasinos && showMoreButton) {\n        const isHidden = extraCasinos.style.display === \"none\";\n        extraCasinos.style.display = isHidden ? \"block\" : \"none\";\n        showMoreButton.textContent = isHidden\n          ? \"Show Less Casinos\"\n          : \"Show More Casinos\";\n      }\n    };\n\n    const handleShowMoreClick = () => {\n      const fullText = document.getElementById(\"full-text\");\n      const shortText = document.getElementById(\"truncated-text\");\n      const readMore = document.getElementById(\"read-more-button\");\n\n      if (fullText && shortText && readMore) {\n        const isFullTextVisible = fullText.style.display === \"block\";\n        fullText.style.display = isFullTextVisible ? \"none\" : \"block\";\n        shortText.style.display = isFullTextVisible ? \"block\" : \"none\";\n        readMore.style.display = isFullTextVisible ? \"block\" : \"none\";\n      }\n    };\n\n    const attachEventListeners = () => {\n      const buttonExtraCasinos = document.getElementById(\"show-more\");\n      const buttonReadMore = document.getElementById(\"read-more-button\");\n\n      if (buttonExtraCasinos) {\n        buttonExtraCasinos.addEventListener(\"click\", handleExtraCasinosClick);\n      }\n      if (buttonReadMore) {\n        buttonReadMore.addEventListener(\"click\", handleShowMoreClick);\n      }\n\n      return () => {\n        if (buttonExtraCasinos) {\n          buttonExtraCasinos.removeEventListener(\n            \"click\",\n            handleExtraCasinosClick\n          );\n        }\n        if (buttonReadMore) {\n          buttonReadMore.removeEventListener(\"click\", handleShowMoreClick);\n        }\n      };\n    };\n\n    const observer = new MutationObserver(() => {\n      attachEventListeners();\n    });\n\n    observer.observe(document.body, { childList: true, subtree: true });\n\n    return () => {\n      observer.disconnect();\n      attachEventListeners();\n    };\n  }, [pageContent]);\n};\n\nexport const useCopyToClipboard = () => {\n  useEffect(() => {\n    const handleCopyClick = (event) => {\n      const button = event.currentTarget;\n      const copyTargetId = button.getAttribute(\"data-copy-target\");\n      const copyTextElement = document.getElementById(copyTargetId);\n\n      if (copyTextElement) {\n        navigator.clipboard\n          .writeText(copyTextElement.value)\n          .then(() => {\n            button.textContent = \"Copied!\";\n            button.style.backgroundColor = \"#01337d\";\n            button.style.color = \"white\";\n\n            setTimeout(() => {\n              button.textContent = button.getAttribute(\"data-original-label\");\n              button.style.backgroundColor = \"transparent\";\n              button.style.color = \"#01337d\";\n            }, 2000);\n          })\n          // eslint-disable-next-line no-console\n          .catch((err) => console.error(\"Copy failed:\", err));\n      } else {\n        // eslint-disable-next-line no-console\n        console.error(\"Element not found: \", copyTargetId);\n      }\n    };\n\n    const attachEventListeners = () => {\n      const copyButtons = document.querySelectorAll(\".copy-button\");\n      copyButtons.forEach((button) => {\n        button.addEventListener(\"click\", handleCopyClick);\n      });\n\n      return () => {\n        copyButtons.forEach((button) => {\n          button.removeEventListener(\"click\", handleCopyClick);\n        });\n      };\n    };\n\n    const observer = new MutationObserver(() => {\n      attachEventListeners();\n    });\n\n    observer.observe(document.body, { childList: true, subtree: true });\n\n    return () => {\n      observer.disconnect();\n      attachEventListeners();\n    };\n  }, []);\n};\n\nexport const useCasinoListing = (casinos, pageContent) => {\n  useEffect(() => {\n    const hideCurrentCasino = () => {\n      const currentUrl = window.location.pathname;\n      const items = document.querySelectorAll(\"#casino-list li\");\n\n      items.forEach((item) => {\n        const link = item.querySelector(\"a\");\n        if (link && link.getAttribute(\"href\") === currentUrl) {\n          item.style.display = \"none\";\n        }\n      });\n    };\n\n    hideCurrentCasino();\n\n    const observer = new MutationObserver(hideCurrentCasino);\n    observer.observe(document.body, { childList: true, subtree: true });\n\n    return () => {\n      observer.disconnect();\n    };\n  }, [casinos, pageContent]);\n};\n","import dynamic from \"next/dynamic\";\n\nimport Content from \"@/components/Content\";\nimport Head from \"@/components/Head\";\nimport Rivalry from \"@/components/Rivalry\";\nimport {\n  ABOUT_US_PATH,\n  NEWSLETTER_PATH,\n  PRIVACY_POLICY_PATH,\n  SPORTS_BETTING_SHOWS,\n  STORE_PATH,\n} from \"@/config/constants\";\nimport {\n  useCasinoEventListeners,\n  useCasinoListing,\n  useCasinoSuffix,\n  useCopyToClipboard,\n} from \"@/hooks/useCasinos\";\nimport { useGTM } from \"@/hooks/useGTM\";\nimport { getCookie } from \"@/utilities/cookies\";\n\nimport PostAuthorInfo from \"../AuthorInfo\";\nimport CustomImage from \"../CustomImage\";\n\nconst ShortCodes = dynamic(() => import(\"@/utilities/shortcodes\"), {\n  ssr: false,\n});\n\nconst MiscPage = ({ page, rivalry, casinos, pageCanada }) => {\n  useGTM(page);\n  useCasinoSuffix(casinos, page?.content);\n  useCasinoEventListeners(page?.content);\n  useCopyToClipboard(page);\n  useCasinoListing(casinos, page?.content);\n\n  const excludedPages = [\n    ABOUT_US_PATH,\n    STORE_PATH,\n    PRIVACY_POLICY_PATH,\n    SPORTS_BETTING_SHOWS,\n    NEWSLETTER_PATH,\n  ];\n  const hasRivalry = rivalry && Object.keys(rivalry).length > 0;\n\n  if (typeof window === \"undefined\") return null;\n  const storedCountry = getCookie(\"userCountry\");\n  const isCanada = storedCountry === \"Canada\";\n\n  let pageContent = page;\n  if (isCanada && page?.uri === \"/best-online-casinos/\") {\n    pageContent = pageCanada;\n  }\n\n  return (\n    <>\n      <Head seo={pageContent?.seo} />\n      <ShortCodes />\n      <h1\n        className=\"mb-4 font-heading text-2xl font-bold leading-[1.15] text-nav-blue sm:text-[2rem]\"\n        dangerouslySetInnerHTML={{ __html: pageContent?.title || \"\" }}\n        suppressHydrationWarning\n      />\n      {page?.author && !excludedPages.includes(pageContent?.uri) && (\n        <PostAuthorInfo post={pageContent} />\n      )}\n      {hasRivalry && <Rivalry rivalry={rivalry} />}\n      {pageContent?.featuredImage && (\n        <div className=\"mb-4 max-h-[305px] w-full rounded-t-lg md:max-h-[405px] lg:max-h-[345px] xl:max-h-[395px]\">\n          <CustomImage\n            key={pageContent?.featuredImage?.altText}\n            className=\"w-full rounded-t-lg object-cover\"\n            alt={pageContent?.featuredImage?.altText}\n            width={680}\n            height={500}\n            sizes=\"(max-width: 768px) 540px, (max-width: 992px) 730px, 680px\"\n            src={pageContent?.featuredImage?.sourceUrl}\n            srcSet={pageContent?.featuredImage?.srcSet}\n          />\n        </div>\n      )}\n      <Content content={pageContent?.content} customClass=\"custom-link\" />\n    </>\n  );\n};\n\nexport default MiscPage;\n"],"names":["__webpack_exports__","Z","post","param","formattedPostDate","useLocalTime","startTime","modified","date","format","readTime","seo","dateLabel","concat","labels","authorInfoPublished","authorInfoLastUpdated","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","className","jsxs","Image","src","author","avatar","alt","name","width","height","p","authorInfoWrittenBy","Link","href","uri","style","color","span","authorInfoReadTime","components_Content","content","customClass","parsedHtmlContent","updateImageAndSponsoredAttributes","htmlContent","externalAffiliateRegex","isAffiliateLink","match","replace","hrefIndex","tag","indexOf","start","end","substring","relIndex","targetIndex","hasSponsored","includes","slice","relEnd","clientContent","setClientContent","useState","useEffect","jsx_runtime","id","dangerouslySetInnerHTML","__html","suppressHydrationWarning","Team","team","logo","location","h5","record","components_Rivalry","rivalry","itemScope","itemType","broadcaster","itemProp","venue","b","away","time","dateTime","startDateTime","startDate","br","consensus","consensusOverUnder","spread","overUnder","home","aria-label","rivalryMatchupLink","matchupLink","useCasinoSuffix","casinos","pageContent","baseCasinoURL","realMoneyURL","cryptoURL","bonusURL","timer","setTimeout","currentPath","window","pathname","affiliateLinkElements","querySelectorAll","forEach","suffix","test","some","slug","currentHref","link","currentEventLabel","getAttribute","setAttribute","clearTimeout","useCasinoEventListeners","handleExtraCasinosClick","extraCasinos","document","getElementById","showMoreButton","isHidden","display","textContent","handleShowMoreClick","fullText","shortText","readMore","isFullTextVisible","attachEventListeners","buttonExtraCasinos","buttonReadMore","addEventListener","removeEventListener","observer","MutationObserver","observe","body","childList","subtree","disconnect","useCopyToClipboard","handleCopyClick","button","event","currentTarget","copyTargetId","copyTextElement","navigator","clipboard","writeText","value","then","backgroundColor","catch","console","error","err","copyButtons","useCasinoListing","hideCurrentCasino","currentUrl","items","item","querySelector","ShortCodes","dynamic","Promise","resolve","__webpack_require__","bind","ssr","pages_MiscPage","page","pageCanada","useGTM","excludedPages","ABOUT_US_PATH","STORE_PATH","PRIVACY_POLICY_PATH","SPORTS_BETTING_SHOWS","NEWSLETTER_PATH","hasRivalry","Object","keys","length","storedCountry","getCookie","Fragment","Head","h1","title","PostAuthorInfo","Rivalry","featuredImage","CustomImage","altText","sizes","sourceUrl","srcSet","Content"],"sourceRoot":""}