{"version":3,"file":"app-8515001ac4f9482673b8.js","mappings":"yIAEIA,EAAyB,EAAQ,OAGrCC,EAAQ,GAAaC,EACrBD,EAAQ,GA6DR,SAAyBE,GACvB,OAAOD,EAAWC,EAAMC,IAC1B,EA9DAH,EAAQ,GAAWA,EAAQ,QAAU,EAErC,IAAII,EAAiCL,EAAuB,EAAQ,QAEhEM,EAA0BN,EAAuB,EAAQ,QAEzDO,EAAkBP,EAAuB,EAAQ,OAEjDQ,EAAYR,EAAuB,EAAQ,QAE3CS,EAAaT,EAAuB,EAAQ,OAE5CU,EAASV,EAAuB,EAAQ,QAExCW,EAAe,EAAQ,OAEvBC,EAAS,EAAQ,OAEjBC,EAAa,EAAQ,OAEzBZ,EAAQ,GAAYY,EAAWC,UAC/B,IAAIC,EAAY,CAAC,KAAM,WAAY,UAAW,eAAgB,kBAAmB,cAAe,WAAY,kBAAmB,QAAS,UAAW,aAE/IC,EAAiB,SAAwBb,GAC3C,OAAOA,aAAmC,EAASA,EAAKc,WAAW,IACrE,EAEA,SAASf,EAAWC,EAAMe,GACxB,IAAIC,EAAMC,EAMV,QAJe,IAAXF,IACFA,EAASG,MAGNC,EAAYnB,GACf,OAAOA,EAGT,GAAIA,EAAKc,WAAW,OAASd,EAAKc,WAAW,OAC3C,OAAOd,EAGT,IAAIoB,EAAwG,QAAhGJ,EAA8B,QAAtBC,EAAUF,SAAgC,IAAZE,EAAqBA,EAAUhB,WAA4C,IAATe,EAAkBA,EAAO,IAC7I,MAAO,IAAMI,SAAoCA,EAAKC,SAAS,KAAOD,EAAKE,MAAM,GAAI,GAAKF,IAASpB,EAAKc,WAAW,KAAOd,EAAO,IAAMA,EACzI,CAIA,IAAIC,EAAsB,WACxB,MAAsH,EACxH,EAEIiB,EAAsB,WACxB,MAAkH,EACpH,EAEIC,EAAc,SAAqBnB,GACrC,OAAOA,IAASA,EAAKc,WAAW,aAAed,EAAKc,WAAW,cAAgBd,EAAKc,WAAW,KACjG,EAeA,IAAIS,EAAkB,SAAyBvB,EAAMwB,GACnD,MAAoB,iBAATxB,EACFA,EAGJmB,EAAYnB,GAIVa,EAAeb,GAAQD,EAAWC,GAlB3C,SAAoBA,EAAMyB,GAExB,OAAIZ,EAAeb,GACVA,GAGF,EAAIS,EAAOiB,SAAS1B,EAAMyB,EACnC,CAWmDE,CAAW3B,EAAMwB,GAHzDxB,CAIX,EAEI4B,EAAmB,CACrBC,gBAAiBvB,EAAWwB,QAAQC,OACpCC,YAAa1B,EAAWwB,QAAQG,OAChCC,gBAAiB5B,EAAWwB,QAAQK,MAyBtC,SAASC,EAA0BC,GACjC,OAAoB9B,EAAOuB,QAAQQ,cAAc9B,EAAa+B,SAAU,MAAM,SAAUC,GACtF,IAAIC,EAAWD,EAAMC,SACrB,OAAoBlC,EAAOuB,QAAQQ,cAAcI,GAAY,EAAIrC,EAAUyB,SAAS,CAAC,EAAGO,EAAO,CAC7FM,UAAWF,IAEf,GACF,CAEA,IAAIC,EAA0B,SAAUE,GAGtC,SAASF,EAAWL,GAClB,IAAIQ,GAEJA,EAAQD,EAAiBE,KAAKC,KAAMV,IAAUU,MAExCC,gBAAkB,SAAUC,GAChC,IAAIC,EAAqBD,EAAMC,mBAC3BC,EAAYF,EAAME,UAEtB,OAAIN,EAAMR,MAAMH,gBAAkBgB,EAAqBC,GAC9C,CACLC,UAAW,CAACP,EAAMR,MAAMe,UAAWP,EAAMR,MAAMR,iBAAiBwB,OAAOC,SAASC,KAAK,KACrFC,OAAO,EAAInD,EAAUyB,SAAS,CAAC,EAAGe,EAAMR,MAAMmB,MAAOX,EAAMR,MAAML,cAI9D,IACT,EAEA,IAAIyB,GAAc,EAUlB,MARsB,oBAAXC,QAA0BA,OAAOC,uBAC1CF,GAAc,GAGhBZ,EAAMe,MAAQ,CACZH,YAAaA,GAEfZ,EAAMgB,UAAYhB,EAAMgB,UAAUC,MAAK,EAAI3D,EAAwB2B,SAASe,IACrEA,CACT,EAhCA,EAAIzC,EAAgB0B,SAASY,EAAYE,GAkCzC,IAAImB,EAASrB,EAAWsB,UAuIxB,OArIAD,EAAOE,UAAY,WACjB,IAAIC,EAAcR,OAAOjB,SAAS0B,SAE9BpB,KAAKV,MAAMM,WAAaI,KAAKV,MAAMM,UAAUwB,WAC/CD,EAAcnB,KAAKV,MAAMM,UAAUwB,UAGrC,IAAIC,EAAgB7C,EAAgBwB,KAAKV,MAAMgC,GAAIH,GAC/CI,GAAc,EAAI5D,EAAWC,WAAWyD,GAAeD,SAGvDD,IAAgBI,GAClBC,UAAUC,QAAQF,EAEtB,EAEAP,EAAOU,mBAAqB,SAA4BC,EAAWC,GAE7D5B,KAAKV,MAAMgC,KAAOK,EAAUL,IAAOtB,KAAKa,MAAMH,aAChDV,KAAKkB,WAET,EAEAF,EAAOa,kBAAoB,WAEpB7B,KAAKa,MAAMH,aACdV,KAAKkB,WAET,EAEAF,EAAOc,qBAAuB,WAC5B,GAAK9B,KAAK+B,GAAV,CAIA,IAAIC,EAAWhC,KAAK+B,GAChBE,EAAWD,EAASC,SACpBC,EAAKF,EAASE,GAClBD,EAASE,UAAUD,GACnBD,EAASG,YANT,CAOF,EAEApB,EAAOF,UAAY,SAAmBuB,GACpC,IA/GiEH,EAAII,EACnEP,EA8GEQ,EAASvC,KAETA,KAAKV,MAAMkD,UAAYxC,KAAKV,MAAMkD,SAASC,eAAe,WAC5DzC,KAAKV,MAAMkD,SAAS9D,QAAU2D,EACrBrC,KAAKV,MAAMkD,UACpBxC,KAAKV,MAAMkD,SAASH,GAGlBrC,KAAKa,MAAMH,aAAe2B,IAE5BrC,KAAK+B,IAzH0DG,EAyH1BG,EAzH8BC,EAyHzB,WACxCC,EAAOrB,WACT,GA1HAa,EAAK,IAAIpB,OAAOC,sBAAqB,SAAU8B,GACjDA,EAAQC,SAAQ,SAAUC,GACpBV,IAAOU,EAAMC,SAGXD,EAAME,gBAAkBF,EAAMG,kBAAoB,KACpDhB,EAAGI,UAAUD,GACbH,EAAGK,aACHE,IAGN,GACF,KAEGU,QAAQd,GACJ,CACLD,SAAUF,EACVG,GAAIA,IA2GN,EAEAlB,EAAOiC,OAAS,WACd,IAAIC,EAASlD,KAETmD,EAAcnD,KAAKV,MACnBgC,EAAK6B,EAAY7B,GACjB8B,EAAuBD,EAAYE,SACnCA,OAAoC,IAAzBD,EAAkCpD,KAAKC,gBAAkBmD,EACpEE,EAAWH,EAAYI,QACvBC,EAAgBL,EAAYM,aAK5B5C,GAJmBsC,EAAYrE,gBAChBqE,EAAYlE,YACfkE,EAAYX,SACNW,EAAYhE,gBACtBgE,EAAYtC,OACpB6C,EAAUP,EAAYO,QACtB9D,EAAYuD,EAAYvD,UACxB+D,GAAO,EAAIxG,EAA+B4B,SAASoE,EAAatF,GAMpE,IAAI+F,EAAapF,EAAgB8C,EAAI1B,EAAUwB,UAE/C,OAAKhD,EAAYwF,GAMGpG,EAAOuB,QAAQQ,cAAc9B,EAAaoG,MAAM,EAAIvG,EAAUyB,SAAS,CACzFuC,GAAIsC,EACJ/C,MAAOA,EACPwC,SAAUA,EACVb,SAAUxC,KAAKc,UACf2C,aAAc,SAAsBK,GAC9BN,GACFA,EAAcM,GAGhBtC,UAAUuC,UAAS,EAAIpG,EAAWC,WAAWgG,GAAYxC,SAC3D,EACAmC,QAAS,SAAiBO,GAKxB,GAJIR,GACFA,EAASQ,KAGM,IAAbA,EAAEE,QACLd,EAAO5D,MAAMuD,QACbiB,EAAEG,kBACFH,EAAEI,SACFJ,EAAEK,QAAWL,EAAEM,SAAYN,EAAEO,UAAU,CACtCP,EAAEQ,iBACF,IAAIC,EAAgBb,EAEhBtD,EAAYoE,UAAUZ,KAAgBhE,EAAUwB,SAE7B,kBAAZsC,GAAyBtD,IAClCmE,GAAgB,GAKlB5D,OAAO8D,YAAYb,EAAY,CAC7B/C,MAAOA,EACP6C,QAASa,GAEb,CAEA,OAAO,CACT,GACCZ,IA9CmBnG,EAAOuB,QAAQQ,cAAc,KAAK,EAAIjC,EAAUyB,SAAS,CAC3E2F,KAAMd,GACLD,GA6CP,EAEOhE,CACT,CA3K8B,CA2K5BnC,EAAOuB,QAAQ4F,WAEjBhF,EAAWiF,WAAY,EAAItH,EAAUyB,SAAS,CAAC,EAAGF,EAAkB,CAClE0E,QAAShG,EAAWwB,QAAQ8F,KAC5BvD,GAAI/D,EAAWwB,QAAQC,OAAO8F,WAC9BpB,QAASnG,EAAWwB,QAAQK,KAC5ByB,MAAOtD,EAAWwB,QAAQG,SAG5B,IAAI6F,EAAwBvH,EAAOuB,QAAQiG,YAAW,SAAU1F,EAAO+C,GACrE,OAAoB7E,EAAOuB,QAAQQ,cAAcF,GAA2B,EAAI/B,EAAUyB,SAAS,CACjGyD,SAAUH,GACT/C,GACL,IAEAvC,EAAQ,GAAUgI,EAMlBhI,EAAQ,GAJO,SAAkBuE,EAAI2D,GACnCtE,OAAO8D,YAAYjG,EAAgB8C,EAAIX,OAAOjB,SAAS0B,UAAW6D,EACpE,C,mCC7TAlI,EAAQmI,YAAa,EACrBnI,EAAQa,UAER,SAAmBX,GACjB,IAAImE,EAAWnE,GAAQ,IACnBkI,EAAS,GACTC,EAAO,GACPC,EAAYjE,EAASkE,QAAQ,MAEd,IAAfD,IACFD,EAAOhE,EAASmE,OAAOF,GACvBjE,EAAWA,EAASmE,OAAO,EAAGF,IAGhC,IAAIG,EAAcpE,EAASkE,QAAQ,MAEd,IAAjBE,IACFL,EAAS/D,EAASmE,OAAOC,GACzBpE,EAAWA,EAASmE,OAAO,EAAGC,IAGhC,MAAO,CACLpE,SAAUA,EACV+D,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,EAE9B,C,qCCzBArI,EAAQ,GAAuBA,EAAQ,QAAgB,EAEvD,IAAI0I,EAAiB,EAAQ,OAE7B1I,EAAQ,GAAgB0I,EAAeC,cAEvC,IAAIC,EAAwB,EAAQ,OAEpC5I,EAAQ,GAAuB4I,EAAsBC,oB,qCCTrD,IAAI9I,EAAyB,EAAQ,OAErCC,EAAQmI,YAAa,EACrBnI,EAAQ2I,cAAgB3I,EAAQ8I,mBAAgB,EAEhD,IAAIzI,EAA0BN,EAAuB,EAAQ,QAEzDO,EAAkBP,EAAuB,EAAQ,OAEjDgJ,EAQJ,SAAiCC,EAAKC,GAAe,IAAKA,GAAeD,GAAOA,EAAIb,WAAc,OAAOa,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAEhH,QAASgH,GAAS,IAAIE,EAAQC,EAAyBF,GAAc,GAAIC,GAASA,EAAME,IAAIJ,GAAQ,OAAOE,EAAMG,IAAIL,GAAQ,IAAIM,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOX,EAAO,GAAY,YAARW,GAAqBH,OAAOtF,UAAUwB,eAAe1C,KAAKgG,EAAKW,GAAM,CAAE,IAAIC,EAAOL,EAAwBC,OAAOE,yBAAyBV,EAAKW,GAAO,KAAUC,IAASA,EAAKP,KAAOO,EAAKC,KAAQL,OAAOC,eAAeH,EAAQK,EAAKC,GAAgBN,EAAOK,GAAOX,EAAIW,EAAQ,CAAIL,EAAOtH,QAAUgH,EAASE,GAASA,EAAMW,IAAIb,EAAKM,GAAW,OAAOA,CAAQ,CARvxBQ,CAAwB,EAAQ,QAExCtJ,EAAaT,EAAuB,EAAQ,OAE5CgK,EAAkB,EAAQ,OAE9B,SAASZ,EAAyBF,GAAe,GAAuB,mBAAZe,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQb,EAA2B,SAAkCF,GAAe,OAAOA,EAAciB,EAAmBD,CAAmB,GAAGhB,EAAc,CAI9U,IAAIH,EAA6BC,EAAMoB,cAAc,IAAIJ,EAAgBK,gBACzEpK,EAAQ8I,cAAgBA,EACxBA,EAAcuB,YAAc,sBAE5B,IAAI1B,EAA6B,SAAU7F,GAGzC,SAAS6F,IAGP,IAFA,IAAI5F,EAEKuH,EAAOC,UAAUC,OAAQC,EAAO,IAAIC,MAAMJ,GAAOK,EAAO,EAAGA,EAAOL,EAAMK,IAC/EF,EAAKE,GAAQJ,UAAUI,GA0CzB,OAvCA5H,EAAQD,EAAiBE,KAAK4H,MAAM9H,EAAkB,CAACG,MAAM4H,OAAOJ,KAAUxH,MACxE6H,cAAgB,IAAIf,EAAgBK,eAC1CrH,EAAMgI,YAAa,EACnBhI,EAAMiI,oBAAsB,EAE5BjI,EAAMkI,eAAiB,WACrBlI,EAAMiI,oBAAsBpH,OAAOsH,QAE9BnI,EAAMgI,aACThI,EAAMgI,YAAa,EACnBI,sBAAsBpI,EAAMqI,YAAYpH,MAAK,EAAI3D,EAAwB2B,SAASe,KAEtF,EAEAA,EAAMsI,aAAe,SAAUC,EAAU1G,GACnC7B,EAAMwI,mBAAmB3G,EAAW7B,EAAMR,QAC5CqB,OAAO4H,SAAS,EAAGF,EAEvB,EAEAvI,EAAM0I,aAAe,SAAUpD,EAAMzD,GACnC,IAAI8G,EAAOC,SAASC,eAAevD,EAAKwD,UAAU,IAE9CH,GAAQ3I,EAAMwI,mBAAmB3G,EAAW7B,EAAMR,QACpDmJ,EAAKI,gBAET,EAEA/I,EAAMwI,mBAAqB,SAAUQ,EAAiBC,GACpD,IAAIT,EAAqBxI,EAAMR,MAAMgJ,mBAErC,OAAKA,GAKEA,EAAmBvI,MAAK,EAAI3C,EAAwB2B,SAASe,GAAQgJ,EAAiBC,EAC/F,EAEOjJ,CACT,EAjDA,EAAIzC,EAAgB0B,SAAS2G,EAAe7F,GAmD5C,IAAImB,EAAS0E,EAAczE,UAkE3B,OAhEAD,EAAOmH,YAAc,WACnB,IAAIzB,EAAM1G,KAAKV,MAAMI,SAASgH,KAAO,KAEjCA,GACF1G,KAAK6H,cAAcmB,KAAKhJ,KAAKV,MAAMI,SAAUgH,EAAK1G,KAAK+H,qBAGzD/H,KAAK8H,YAAa,CACpB,EAEA9G,EAAOa,kBAAoB,WAEzB,IAAIoH,EADJtI,OAAOuI,iBAAiB,SAAUlJ,KAAKgI,gBAEvC,IAAImB,EAAuBnJ,KAAKV,MAAMI,SAClCgH,EAAMyC,EAAqBzC,IAC3BtB,EAAO+D,EAAqB/D,KAE5BsB,IACFuC,EAAiBjJ,KAAK6H,cAAcuB,KAAKpJ,KAAKV,MAAMI,SAAUgH,IAG5DuC,EACFjJ,KAAKoI,aAAaa,OAAgBI,GACzBjE,GACTpF,KAAKwI,aAAac,UAAUlE,QAAOiE,EAEvC,EAEArI,EAAOc,qBAAuB,WAC5BnB,OAAO4I,oBAAoB,SAAUvJ,KAAKgI,eAC5C,EAEAhH,EAAOU,mBAAqB,SAA4BC,GACtD,IAGIsH,EAHAO,EAAwBxJ,KAAKV,MAAMI,SACnC0F,EAAOoE,EAAsBpE,KAC7BsB,EAAM8C,EAAsB9C,IAG5BA,IACFuC,EAAiBjJ,KAAK6H,cAAcuB,KAAKpJ,KAAKV,MAAMI,SAAUgH,IAY5DtB,EACFpF,KAAKwI,aAAac,UAAUlE,GAAOzD,GAEnC3B,KAAKoI,aAAaa,EAAgBtH,EAEtC,EAEAX,EAAOiC,OAAS,WACd,OAAoB6C,EAAMvG,cAAcsG,EAAc4D,SAAU,CAC9DC,MAAO1J,KAAK6H,eACX7H,KAAKV,MAAMqK,SAChB,EAEOjE,CACT,CAvHiC,CAuH/BI,EAAMnB,WAER5H,EAAQ2I,cAAgBA,EACxBA,EAAcd,UAAY,CACxB0D,mBAAoB/K,EAAWwB,QAAQ8F,KACvC8E,SAAUpM,EAAWwB,QAAQ6K,QAAQ9E,WACrCpF,SAAUnC,EAAWwB,QAAQG,OAAO4F,W,mCCpJtC/H,EAAQmI,YAAa,EACrBnI,EAAQoK,oBAAiB,EACzB,IACI0C,EAA6B,gCAE7B1C,EAA8B,WAChC,SAASA,IAAkB,CAE3B,IAAInG,EAASmG,EAAelG,UA8C5B,OA5CAD,EAAOoI,KAAO,SAAc1J,EAAUgH,GACpC,IAAIoD,EAAW9J,KAAK+J,YAAYrK,EAAUgH,GAE1C,IACE,IAAIgD,EAAQ/I,OAAOqJ,eAAeC,QAAQH,GAC1C,OAAOJ,EAAQQ,KAAKC,MAAMT,GAAS,CACrC,CAAE,MAAO5F,GAKP,OAAInD,QAAUA,OAAOkJ,IAA+BlJ,OAAOkJ,GAA4BC,GAC9EnJ,OAAOkJ,GAA4BC,GAGrC,CACT,CACF,EAEA9I,EAAOgI,KAAO,SAActJ,EAAUgH,EAAKgD,GACzC,IAAII,EAAW9J,KAAK+J,YAAYrK,EAAUgH,GACtC0D,EAAcF,KAAKG,UAAUX,GAEjC,IACE/I,OAAOqJ,eAAeM,QAAQR,EAAUM,EAC1C,CAAE,MAAOtG,GACHnD,QAAUA,OAAOkJ,KAGnBlJ,OAAOkJ,GAA8B,CAAC,GAFtClJ,OAAOkJ,GAA4BC,GAAYI,KAAKC,MAAMC,EAS9D,CACF,EAEApJ,EAAO+I,YAAc,SAAqBrK,EAAUgH,GAClD,IAAI6D,EAhDe,YAgDwB7K,EAAS0B,SACpD,OAAOsF,QAA6C6D,EAAeA,EAAe,IAAM7D,CAC1F,EAEOS,CACT,CAlDkC,GAoDlCpK,EAAQoK,eAAiBA,C,qCCzDzBpK,EAAQmI,YAAa,EACrBnI,EAAQ6I,qBAQR,SAA8B4E,GAC5B,IAAI9K,GAAW,EAAIjC,EAAagN,eAC5B5J,GAAQ,EAAIrD,EAAOkN,YAAYjF,EAAeI,eAC9CxD,GAAM,EAAI7E,EAAOmN,QAAQ,MAO7B,OANA,EAAInN,EAAOoN,kBAAiB,WAC1B,GAAIvI,EAAI3D,QAAS,CACf,IAAI2J,EAAWxH,EAAMuI,KAAK1J,EAAU8K,GACpCnI,EAAI3D,QAAQ6J,SAAS,EAAGF,GAAY,EACtC,CACF,GAAG,CAAC3I,EAASgH,MACN,CACLrE,IAAKA,EACLwI,SAAU,WACJxI,EAAI3D,SACNmC,EAAMmI,KAAKtJ,EAAU8K,EAAYnI,EAAI3D,QAAQoM,UAEjD,EAEJ,EAxBA,IAAIrF,EAAiB,EAAQ,OAEzBjI,EAAS,EAAQ,OAEjBC,EAAe,EAAQ,M,wBCN3BV,EAAQgO,WAAa,CACnB,+BAAgC,WAAF,OAAQ,kMAA4F,EAClI,iCAAkC,WAAF,OAAQ,kMAAgG,EACxI,yCAA0C,WAAF,OAAQ,oKAAgH,EAChK,mCAAoC,WAAF,OAAQ,wDAAoG,EAC9I,mCAAoC,WAAF,OAAQ,8PAAoG,EAC9I,0CAA2C,WAAF,OAAQ,kMAAkH,EACnK,qDAAsD,WAAF,OAAQ,4MAAwI,EACpM,iDAAkD,WAAF,OAAQ,2MAAgI,EACxL,qDAAsD,WAAF,OAAQ,kMAAwI,EACpM,sCAAuC,WAAF,OAAQ,8PAA0G,EACvJ,2CAA4C,WAAF,OAAQ,8PAAmH,EACrK,gCAAiC,WAAF,OAAQ,iMAA8F,EACrI,yCAA0C,WAAF,OAAQ,8PAAgH,EAChK,2CAA4C,WAAF,OAAQ,yLAAoH,EACtK,mDAAoD,WAAF,OAAQ,kEAAmI,EAC7L,gEAAiE,WAAF,OAAQ,+BAA4J,EACnO,mDAAoD,WAAF,OAAQ,kEAAmI,EAC7L,8DAA+D,WAAF,OAAQ,+BAAwJ,EAC7N,6DAA8D,WAAF,OAAQ,8BAAsJ,EAC1N,mDAAoD,WAAF,OAAQ,sDAAmI,EAC7L,oCAAqC,WAAF,OAAQ,+BAAsG,EACjJ,wCAAyC,WAAF,OAAQ,4MAA8G,EAC7J,sCAAuC,WAAF,OAAQ,kMAA0G,EACvJ,gCAAiC,WAAF,OAAQ,kMAA8F,EACrI,wCAAyC,WAAF,OAAQ,yGAA4G,EAC3J,2CAA4C,WAAF,OAAQ,kMAAoH,EACtK,6CAA8C,WAAF,OAAQ,kMAAwH,EAC5K,0CAA2C,WAAF,OAAQ,kMAAkH,EACnK,oCAAqC,WAAF,OAAQ,kMAAsG,EACjJ,yCAA0C,WAAF,OAAQ,kMAAgH,EAChK,+BAAgC,WAAF,OAAQ,kMAA4F,EAClI,oCAAqC,WAAF,OAAQ,kMAAsG,EACjJ,sCAAuC,WAAF,OAAQ,+BAAwG,EACrJ,oCAAqC,WAAF,OAAQ,+BAAqG,EAChJ,iDAAkD,WAAF,OAAQ,kMAAgI,EACxL,gDAAiD,WAAF,OAAQ,kMAA8H,EACrL,0CAA2C,WAAF,OAAQ,iMAAkH,EACnK,8CAA+C,WAAF,OAAQ,wQAA0H,EAC/K,yCAA0C,WAAF,OAAQ,wQAAgH,EAChK,oCAAqC,WAAF,OAAQ,8PAAsG,EACjJ,gCAAiC,WAAF,OAAQ,kMAA8F,EACrI,gCAAiC,WAAF,OAAQ,+BAA8F,EACrI,kDAAmD,WAAF,OAAQ,+BAA+H,EACxL,qCAAsC,WAAF,OAAQ,+BAAuG,EACnJ,mDAAoD,WAAF,OAAQ,uDAAiI,EAC3L,gDAAiD,WAAF,OAAQ,kMAA8H,EACrL,2DAA4D,WAAF,OAAQ,4MAAoJ,EACtN,uDAAwD,WAAF,OAAQ,4MAA4I,EAC1M,0CAA2C,WAAF,OAAQ,8PAAkH,EACnK,+CAAgD,WAAF,OAAQ,+BAA4H,EAClL,oCAAqC,WAAF,OAAQ,8PAAsG,EACjJ,6CAA8C,WAAF,OAAQ,wDAAsH,EAC1K,iCAAkC,WAAF,OAAQ,gOAAgG,EACxI,gDAAiD,WAAF,OAAQ,yLAA8H,EACrL,mCAAoC,WAAF,OAAQ,uDAAoG,EAC9I,6CAA8C,WAAF,OAAQ,8HAAwH,EAC5K,2CAA4C,WAAF,OAAQ,kMAAoH,EACtK,kDAAmD,WAAF,OAAQ,qNAAkI,EAC3L,qDAAsD,WAAF,OAAQ,sNAAwI,EACpM,0CAA2C,WAAF,OAAQ,kMAAkH,EACnK,qDAAsD,WAAF,OAAQ,sNAAwI,EACpM,+CAAgD,WAAF,OAAQ,sNAA4H,EAClL,gDAAiD,WAAF,OAAQ,sNAA8H,EACrL,qDAAsD,WAAF,OAAQ,sNAAwI,EACpM,qCAAsC,WAAF,OAAQ,gOAAwG,EACpJ,sCAAuC,WAAF,OAAQ,wQAA0G,EACvJ,gDAAiD,WAAF,OAAQ,4MAA8H,EACrL,8CAA+C,WAAF,OAAQ,oKAA0H,EAC/K,yCAA0C,WAAF,OAAQ,6PAAgH,EAChK,6CAA8C,WAAF,OAAQ,8PAAwH,EAC5K,2CAA4C,WAAF,OAAQ,iEAAoH,EACtK,qCAAsC,WAAF,OAAQ,kMAAwG,EACpJ,oCAAqC,WAAF,OAAQ,4MAAsG,EACjJ,mCAAoC,WAAF,OAAQ,8PAAoG,EAC9I,iCAAkC,WAAF,OAAQ,8PAAgG,EACxI,kCAAmC,WAAF,OAAQ,kMAAkG,EAC3I,kCAAmC,WAAF,OAAQ,kMAAkG,EAC3I,yCAA0C,WAAF,OAAQ,mMAAgH,EAChK,6CAA8C,WAAF,OAAQ,mMAAwH,EAC5K,gCAAiC,WAAF,OAAQ,wDAA8F,EACrI,yCAA0C,WAAF,OAAQ,yLAAgH,EAChK,mCAAoC,WAAF,OAAQ,kMAAoG,EAC9I,0CAA2C,WAAF,OAAQ,oKAAkH,EACnK,gCAAiC,WAAF,OAAQ,uQAA8F,EACrI,qCAAsC,WAAF,OAAQ,8PAAwG,EACpJ,wCAAyC,WAAF,OAAQ,6PAA8G,EAC7J,gCAAiC,WAAF,OAAQ,kMAA8F,EACrI,uCAAwC,WAAF,OAAQ,kRAA2G,EACzJ,oCAAqC,WAAF,OAAQ,kMAAsG,EACjJ,mCAAoC,WAAF,OAAQ,kMAAoG,EAC9I,sCAAuC,WAAF,OAAQ,kMAA0G,EACvJ,iCAAkC,WAAF,OAAQ,gMAAgG,EACxI,0DAA2D,WAAF,OAAQ,kMAAgJ,EACjN,4CAA6C,WAAF,OAAQ,oKAAsH,EACzK,8CAA+C,WAAF,OAAQ,kMAA0H,EAC/K,uCAAwC,WAAF,OAAQ,yLAA4G,EAC1J,wCAAyC,WAAF,OAAQ,kMAA8G,EAC7J,uCAAwC,WAAF,OAAQ,4PAA4G,EAC1J,kCAAmC,WAAF,OAAQ,+BAAkG,EAC3I,+BAAgC,WAAF,OAAQ,8PAA4F,EAClI,2CAA4C,WAAF,OAAQ,kEAAmH,EACrK,+BAAgC,WAAF,OAAQ,iMAA4F,EAClI,uCAAwC,WAAF,OAAQ,kRAA4G,E,wBC1G5JC,EAAOjO,QAAU,CAAC,CACZkO,OAAQC,EAAQ,OAChBjG,QAAS,CAAC,QAAU,GAAG,KAAO,yBAAyB,WAAa,UAAU,UAAY,IAAI,iBAAmB,UAAU,YAAc,UAAU,QAAU,aAAa,KAAO,yBAAyB,QAAS,EAAK,qBAAsB,EAAK,mBAAqB,QAAQ,YAAc,YAAY,iBAAkB,EAAK,YAAc,qCAC/U,CACAgG,OAAQC,EAAQ,OAChBjG,QAAS,CAAC,QAAU,GAAG,aAAe,UAAU,YAAa,EAAK,gBAAiB,IACnF,CACAgG,OAAQC,EAAQ,MAChBjG,QAAS,CAAC,QAAU,GAAG,GAAK,cAAc,yBAA0B,EAAK,iBAAmB,CAAC,KAAO,WAAW,MAAQ,6FAA6F,sBAAuB,EAAM,qBAAuB,sBAAsB,iBAAmB,qCACjT,CACAgG,OAAQC,EAAQ,OAChBjG,QAAS,CAAC,QAAU,K,8PCX1B,IAAMkG,EAAUD,EAAQ,OACxBE,EACEF,EAAAA,OAAAA,GADMG,EAA0BD,EAA1BC,2BAA4BC,EAAQF,EAARE,SAAUC,EAAYH,EAAZG,aAG9CxO,EAAQ,EAAY,SAACyO,GAAiD,IAA5ChE,EAAIF,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmE,EAAanE,UAAAC,OAAA,EAAAD,UAAA,QAAA+B,EAAEqC,EAAYpE,UAAAC,OAAA,EAAAD,UAAA,QAAA+B,EAY9D,IAAIsC,EAAUR,EAAQS,KAAI,SAAAX,GACxB,GAAKA,EAAOA,OAAOO,GAAnB,CAIAhE,EAAK6D,2BAA6BA,EAClC7D,EAAK8D,SAAWA,EAChB9D,EAAK+D,aAAeA,EAEpB,IAAMM,EAASZ,EAAOA,OAAOO,GAAKhE,EAAMyD,EAAOhG,SAI/C,OAHI4G,GAAUH,IACZlE,EAAOkE,EAAa,CAAElE,KAAAA,EAAMqE,OAAAA,EAAQZ,OAAAA,KAE/BY,CAVP,CAWF,IAKA,OAFAF,EAAUA,EAAQrL,QAAO,SAAAuL,GAAM,MAAiB,cAAbC,EAAOD,EAAsB,KAEpDtE,OAAS,EACZoE,EACEF,EACF,CAACA,GAED,EAEX,EAEA1O,EAAQ,EAAiB,SAACyO,EAAKhE,EAAMiE,GAAa,OAChDN,EAAQY,QACN,SAACC,EAAUC,GAAI,OACbA,EAAKhB,OAAOO,GACRQ,EAASE,MAAK,kBAAMD,EAAKhB,OAAOO,GAAKhE,EAAMyE,EAAKhH,QAAQ,IACxD+G,CAAQ,GACdG,QAAQxN,UACT,C,qECWH,IC3DA,EDgBA,SAAcyN,GAGb,OAFAA,EAAMA,GAAO7F,OAAO8F,OAAO,MAEpB,CAQNC,GAAI,SAAYC,EAAcC,IAC5BJ,EAAIG,KAAUH,EAAIG,GAAQ,KAAKE,KAAKD,EACtC,EASAE,IAAK,SAAaH,EAAcC,GAC3BJ,EAAIG,IACPH,EAAIG,GAAMI,OAAOP,EAAIG,GAAMjH,QAAQkH,KAAa,EAAG,EAErD,EAUAI,KAAM,SAAcL,EAAcM,IAChCT,EAAIG,IAAS,IAAIhO,QAAQqN,KAAI,SAAUY,GAAWA,EAAQK,EAAM,KAChET,EAAI,MAAQ,IAAI7N,QAAQqN,KAAI,SAAUY,GAAWA,EAAQD,EAAMM,EAAM,GACvE,EAEF,CC1DgBC,E,wKCFhB,WAAe7P,GACb,YAAaoM,IAATpM,EACKA,EAED,MAAJA,EACI,IAEwB,MAA5BA,EAAK8P,OAAO9P,EAAKsK,OAAS,GACrBtK,EAAKsB,MAAM,GAAI,GAEjBtB,CACR,E,WCNK+P,EAAY,IAAIC,IAClBC,EAAa,GAEXC,EAAe,SAAAC,GACnB,IAAMhM,EAAWiM,mBAAmBD,GAWpC,OATwBE,EAAAA,EAAAA,GACtBlM,EACAiM,mBAAmBE,KAGlBC,MAAM,KAAK,GAEXA,MAAM,KAAK,EAGhB,EAEA,SAAS5O,EAAW3B,GAElB,OACEA,EAAKc,WAAW,MAChBd,EAAKc,WAAW,aAChBd,EAAKc,WAAW,WAETd,EAIF,IAAIwQ,IACTxQ,EACA0D,OAAOjB,SAASgF,MAAQ/D,OAAOjB,SAASgF,KAAKpG,SAAS,KAAI,SAC1D8C,QACJ,CAOO,IAAMsM,EAAgB,SAAAhE,GAC3BwD,EAAaxD,CACf,EAUaiE,EAAgB,SAAAP,GAC3B,IAAMQ,EAAkBC,EAAUT,GAE5BU,EAAYZ,EAAWtB,KAAI,SAAA3N,GAA0B,IAAvBhB,EAAIgB,EAAJhB,KAClC,MAAO,CACLA,KAF+CgB,EAAT8P,UAGtCC,aAAc/Q,EAElB,IAEMA,GAAOgR,EAAAA,EAAAA,MAAKH,EAAWF,GAE7B,OAAI3Q,EACKiR,EAAkBjR,EAAKkR,MAAMH,cAG/B,IACT,EAWaI,EAAkB,SAAAhB,GAC7B,IAAMQ,EAAkBC,EAAUT,GAE5BU,EAAYZ,EAAWtB,KAAI,SAAAnM,GAA0B,IAAvBxC,EAAIwC,EAAJxC,KAClC,MAAO,CACLA,KAF+CwC,EAATsO,UAGtCC,aAAc/Q,EAElB,IAEMA,GAAOgR,EAAAA,EAAAA,MAAKH,EAAWF,GAE7B,OAAI3Q,EACKA,EAAKoR,OAGP,CAAC,CACV,EAUaC,EAAW,SAAAlB,GACtB,IAAMQ,EAAkBT,EAAavO,EAAWwO,IAChD,GAAIJ,EAAU7G,IAAIyH,GAChB,OAAOZ,EAAU5G,IAAIwH,GAGvB,IAAMW,GAAWC,EAAAA,EAAAA,GAAwBpB,GACzC,GAAImB,EACF,OAAOD,EAASC,EAASE,QAG3B,IAAIC,EAAYf,EAAcC,GAQ9B,OANKc,IACHA,EAAYb,EAAUT,IAGxBJ,EAAUpG,IAAIgH,EAAiBc,GAExBA,CACT,EASab,EAAY,SAAAT,GACvB,IAEIsB,EAFoBvB,EAAavO,EAAWwO,IAShD,MANa,gBAATsB,IACFA,EAAS,KAGXA,EAAYR,EAAkBQ,EAGhC,C,mxBCzIA,IAAMC,E,SAAmBC,GAAOnN,QAE1BoN,EAAqB/I,EAAAA,cAAoB,CAAC,GAEhD,SAASgJ,EAAuB7Q,GAA4C,IAAzC8Q,EAAe9Q,EAAf8Q,gBAAiBC,EAAI/Q,EAAJ+Q,KAAMC,EAAKhR,EAALgR,MAAOhM,EAAMhF,EAANgF,OACzDiM,EAAYF,EACdA,EAAKA,KACLD,EAAgBE,IAAUF,EAAgBE,GAAOD,KAErD,OACElJ,EAAAA,cAACA,EAAAA,SAAc,KACZoJ,GAAajM,EAAOiM,IACnBA,GAAapJ,EAAAA,cAAA,WAAK,yBAG1B,CAEA,IAAMqJ,EAAc,SAAA7P,GAClB,IAAQ0P,EAAkC1P,EAAlC0P,KAAMC,EAA4B3P,EAA5B2P,MAAOhM,EAAqB3D,EAArB2D,OAAQ0G,EAAarK,EAAbqK,SAE7B,OACE7D,EAAAA,cAAC+I,EAAmBO,SAAQ,MACzB,SAAAL,GAAe,OACdjJ,EAAAA,cAACgJ,EAAuB,CACtBE,KAAMA,EACNC,MAAOA,EACPhM,OAAQA,GAAU0G,EAClBoF,gBAAiBA,GACjB,GAIV,EAEMM,EAAiB,SAAAJ,GAAU,IAADK,EAE5BxD,EAAOhG,EAAAA,YAQT,IAAMyJ,EAAUzJ,EAAAA,WAAiB+I,GAKjC,GAAIW,MAAMC,OAAOR,IACf,MAAM,IAAIS,MAAM,8KAAD9H,OAIOqH,EAAK,UAI7B,GAAkB,QAAlBK,EAAIC,EAAQN,UAAM,IAAAK,GAAdA,EAAgBN,KAClB,OAAOO,EAAQN,GAAOD,KAEtB,MAAM,IAAIU,MACR,uMAKN,EASA,SAASC,IACP,MAAM,IAAID,MACR,6UAKJ,CAdAP,EAAYvK,UAAY,CACtBoK,KAAMY,IAAAA,OACNX,MAAOW,IAAAA,OAAiB9K,WACxB7B,OAAQ2M,IAAAA,KACRjG,SAAUiG,IAAAA,K,oaCxFZ,IAyDMC,EAzDU,SAAUC,GACxB,GAAmB,mCAARpH,SAAQ,YAAAoD,EAARpD,WACT,OAAO,EAET,IAAMqH,EAAWrH,SAASnJ,cAAc,QACxC,IACE,GAAIwQ,EAASC,SAA2C,aAAhClE,EAAOiE,EAASC,QAAQC,UAC9C,OAAOF,EAASC,QAAQC,SAASH,EAErC,CAAE,MAAOI,GACP,OAAO,CACT,CACA,OAAO,CACT,CA4CkCC,CAAQ,YA1Cb,SAAUC,EAAKnL,GAC1C,OAAO,IAAIkH,SAAQ,SAACxN,EAAS0R,GAC3B,GAAmB,mCAAR3H,SAAQ,YAAAoD,EAARpD,WAAX,CAKA,IAAM4H,EAAO5H,SAASnJ,cAAc,QACpC+Q,EAAKC,aAAa,MAAD,YACjBD,EAAKC,aAAa,OAAQH,GAE1B7J,OAAOiK,KAAKvL,GAAStC,SAAQ,SAAA+D,GAC3B4J,EAAKC,aAAa7J,EAAKzB,EAAQyB,GACjC,IAEA4J,EAAKG,OAAS9R,EACd2R,EAAKI,QAAUL,GAGb3H,SAASiI,qBAAqB,QAAQ,IACtCjI,SAASkI,kBAAkB,UAAU,GAAGC,YAC5BC,YAAYR,EAhB1B,MAFED,GAmBJ,GACF,EAE4B,SAAUD,GACpC,OAAO,IAAIjE,SAAQ,SAACxN,EAAS0R,GAC3B,IAAMU,EAAM,IAAIC,eAChBD,EAAIE,KAAK,MAAOb,GAAK,GAErBW,EAAIN,OAAS,WACQ,MAAfM,EAAIG,OACNvS,IAEA0R,GAEJ,EAEAU,EAAII,KAAK,KACX,GACF,EAMMC,EAAa,CAAC,EAkBpB,EAhBiB,SAAUhB,EAAKnL,GAC9B,OAAO,IAAIkH,SAAQ,SAAAxN,GACbyS,EAAWhB,GACbzR,IAIFkR,EAA0BO,EAAKnL,GAC5BiH,MAAK,WACJvN,IACAyS,EAAWhB,IAAO,CACpB,IAAE,OACK,WAAO,GAClB,GACF,E,iqICtEO,IAAMiB,EAAqB,CAIhC3B,MAAM,QAIN4B,QAAQ,WAGJC,EAAgB,SAAAC,GAAC,OAAKA,GAAKA,EAAC,SAAaA,CAAC,EAQ1CC,EAAoB,SAAAxU,GACxB,IAP8ByU,EAOxBC,EAAgB,MAAJ1U,EAAY,SAN9ByU,EAAQ,OADsBA,EAOqCzU,GAN7D,GAAayU,EAAEnT,MAAM,GAAKmT,GAC1BpT,SAAS,KAAOoT,EAAEnT,MAAM,GAAI,GAAKmT,EAMvC,MAAM,GAAN9J,OAAUgK,GAAe,eAAAhK,OAAc+J,EAAS,kBAClD,EAEA,SAASE,EAAQzB,GAAsB,IAAjB0B,EAAMxK,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,SAC1B,OAAO,IAAI6E,SAAQ,SAACxN,EAAS0R,GAC3B,IAAMU,EAAM,IAAIC,eAChBD,EAAIE,KAAKa,EAAQ1B,GAAK,GACtBW,EAAIgB,mBAAqB,WACD,GAAlBhB,EAAIiB,YACNrT,EAAQoS,EAEZ,EACAA,EAAII,KAAK,KACX,GACF,CAEA,IA6fIlP,EA9eEgQ,EAAkB,SAACC,GAAgC,IAAtBC,EAAS7K,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,GAAG,KACvC8K,EAAO,CACXC,mBAAoBH,EAASG,mBAC7BpV,KAAMiV,EAASjV,KACfqV,uBAAwBJ,EAASI,uBACjCvE,UAAWmE,EAASnE,UACpBwE,kBAAmBL,EAASK,mBAG9B,MAAO,CACLJ,UAAAA,EACAK,KAAMN,EAASrG,OACfuG,KAAAA,EAEJ,EAEaK,EAAU,WAyBpB,OAAAC,GAxBD,SAAAD,EAAYE,EAAezF,GAAY0F,EAAA,KAAAH,GAAAI,EAAA,+BA0Bb,IAAI5F,KAV5BjN,KAAK8S,OAAS,IAAI7F,IAClBjN,KAAK+S,WAAa,IAAI9F,IACtBjN,KAAKgT,cAAgB,CAAC,EACtBhT,KAAKiT,WAAa,IAAIhG,IACtBjN,KAAKkT,kBAAoB,IAAIC,IAC7BnT,KAAKoT,kBAAoB,IAAID,IAC7BnT,KAAK2S,cAAgBA,GACrBjF,EAAAA,EAAAA,IAAcR,EAChB,GAAC,EAAAxG,IAAA,cAAAgD,MAID,SAAY0G,GAAM,IAADtQ,EAAA,KACXuT,EAAkBrT,KAAKsT,wBAAwBlN,IAAIgK,GAQvD,OANKiD,IACHA,EAAkBxB,EAAQzB,EAAI,OAC9BpQ,KAAKsT,wBAAwB1M,IAAIwJ,EAAKiD,IAIjCA,EACJnH,MAAK,SAAAqH,GAEJ,OADAzT,EAAKwT,wBAAuB,OAAQlD,GAC7BmD,CACT,IAAE,OACK,SAAArD,GAEL,MADApQ,EAAKwT,wBAAuB,OAAQlD,GAC9BF,CACR,GACJ,GAAC,CAAAxJ,IAAA,eAAAgD,MAED,SAAa8J,GACXxT,KAAKwT,UAAYA,EACjBxT,KAAKyT,iBAAmBD,EAAU,0BAA0BE,MAAK,SAAAC,GAAC,OAAIA,CAAC,GACzE,GAAC,CAAAjN,IAAA,oBAAAgD,MAED,SAAkBkK,GAAU,IAADrR,EAAA,KACjBsR,EAA0BD,EAA1BC,SAAQC,EAAkBF,EAAhBG,QAAAA,OAAO,IAAAD,EAAG,EAACA,EACvB1D,EAAMqB,EAAkBoC,GAC9B,OAAO7T,KAAKgU,YAAY5D,GAAKlE,MAAK,SAAA6E,GAChC,IAAQG,EAAyBH,EAAzBG,OAAQ+C,EAAiBlD,EAAjBkD,aAGhB,GAAe,MAAX/C,EACF,IACE,IAAMgD,EAAchK,KAAKC,MAAM8J,GAC/B,QAAyB5K,IAArB6K,EAAYjX,KACd,MAAM,IAAIyS,MAAM,iCAGlB,OAAOnJ,OAAO4N,OAAOP,EAAS,CAC5B1C,OAAQG,EAAmBC,QAC3B8C,QAASF,GAEb,CAAE,MAAOhE,GACP,CAKJ,OAAe,MAAXgB,GAA6B,MAAXA,EAER,cAAR2C,EACKtN,OAAO4N,OAAOP,EAAS,CAC5B1C,OAAQG,EAAmB3B,QAMxBnN,EAAK8R,kBACV9N,OAAO4N,OAAOP,EAAS,CAAEC,SAAS,YAAcS,UAAU,KAK/C,MAAXpD,EACK3K,OAAO4N,OAAOP,EAAS,CAC5B1C,OAAQG,EAAmB3B,QAK3BqE,EAAU,EACLxR,EAAK8R,kBACV9N,OAAO4N,OAAOP,EAAS,CAAEG,QAASA,EAAU,KAKzCxN,OAAO4N,OAAOP,EAAS,CAC5B1C,OAAQG,EAAmB3B,OAE/B,GACF,GAAC,CAAAhJ,IAAA,mBAAAgD,MAED,SAAiB6K,GAAU,IAADrR,EAAA,KAClB2Q,GAAWvF,EAAAA,EAAAA,IAASiG,GAC1B,GAAIvU,KAAKiT,WAAW9M,IAAI0N,GAAW,CACjC,IAAM3B,EAAWlS,KAAKiT,WAAW7M,IAAIyN,GAEnC,OAAO1H,QAAQxN,QAAQuT,EAE3B,CAEA,OAAOlS,KAAKqU,kBAAkB,CAAER,SAAAA,IAAY3H,MAAK,SAAAgG,GAG/C,OAFAhP,EAAK+P,WAAWrM,IAAIiN,EAAU3B,GAEvBA,CACT,GACF,GAAC,CAAAxL,IAAA,gBAAAgD,MAED,SAAc6K,GACZ,OAAO5G,EAAAA,EAAAA,IAAc4G,EACvB,GAEA,CAAA7N,IAAA,WAAAgD,MACA,SAAS6K,GAAU,IAADC,EAAA,KACVX,GAAWvF,EAAAA,EAAAA,IAASiG,GAC1B,GAAIvU,KAAK8S,OAAO3M,IAAI0N,GAAW,CAC7B,IAAMzB,EAAOpS,KAAK8S,OAAO1M,IAAIyN,GAE3B,OAAIzB,EAAKqC,MACA,CACLA,MAAOrC,EAAKqC,MACZvD,OAAQkB,EAAKlB,QAIV/E,QAAQxN,QAAQyT,EAAKgC,QAEhC,CAEA,GAAIpU,KAAK+S,WAAW5M,IAAI0N,GACtB,OAAO7T,KAAK+S,WAAW3M,IAAIyN,GAG7B,IAAMR,EAAkBlH,QAAQC,IAAI,CAClCpM,KAAK0U,cACL1U,KAAK2U,iBAAiBd,KACrB3H,MAAK,SAAA0I,GACN,IAAM/I,EAAS+I,EAAQ,GACvB,GAAI/I,EAAOqF,SAAWG,EAAmB3B,MACvC,MAAO,CACLwB,OAAQG,EAAmB3B,OAI/B,IAAIwC,EAAWrG,EAAOuI,QACtBS,EAAuD3C,EAA/CG,EAAkBwC,EAAlBxC,mBAAkByC,EAAAD,EAAEtC,kBAAAA,OAAiB,IAAAuC,EAAG,GAAEA,EAE5CC,EAAc,CAAC,EAEfC,EAAwBR,EAAK7B,cAAcN,GAAoBnG,MACnE,SAAAiG,GAEE,IAAI8C,EAiBJ,OAlBAF,EAAYG,UAAY,IAAIC,MAEvBhD,GAAaA,aAAqBzC,OACrCqF,EAAY7D,OAASG,EAAmB3B,MACxCqF,EAAYN,MAAQtC,IAEpB4C,EAAY7D,OAASG,EAAmBC,SAChB,IAApBzF,EAAOyI,WACTS,EAAYT,UAAW,GAEzBpC,EAAW3L,OAAO4N,OAAOjC,EAAU,CACjCI,uBAAwBsC,EAAQ,GAC5BA,EAAQ,GAAGtC,uBAAsB,KAGvC2C,EAAgBhD,EAAgBC,EAAUC,IAGrC8C,CACT,IAGIG,EAA0BjJ,QAAQC,IACtCmG,EAAkB3G,KAAI,SAAAyJ,GAEpB,GAAIb,EAAKxB,cAAcqC,GAAkB,CACvC,IAAMnB,EAAcM,EAAKxB,cAAcqC,GACvC,MAAO,CAAEA,gBAAAA,EAAiBnB,YAAAA,EAC5B,CAEA,OAAOM,EAAKR,YAAY,GAADpM,OAClBgK,GAAe,oBAAAhK,OAAmByN,EAAe,UAEnDnJ,MAAK,SAAA6E,GACJ,IAAMmD,EAAchK,KAAKC,MAAM4G,EAAIkD,cACnC,MAAO,CAAEoB,gBAAAA,EAAiBnB,YAAAA,EAC5B,IAAE,OACK,WACL,MAAM,IAAIxE,MAAM,sBAAD9H,OACQgK,GAAe,oBAAAhK,OAAmByN,EAAe,UAE1E,GACJ,KACAnJ,MAAK,SAAAoJ,GACL,IAAMC,EAAwB,CAAC,EAO/B,OALAD,EAAmB3S,SAAQ,SAAA1E,GAAuC,IAApCoX,EAAepX,EAAfoX,gBAAiBnB,EAAWjW,EAAXiW,YAC7CqB,EAAsBF,GAAmBnB,EACzCM,EAAKxB,cAAcqC,GAAmBnB,CACxC,IAEOqB,CACT,IAEA,OACEpJ,QAAQC,IAAI,CAAC4I,EAAuBI,IACjClJ,MAAK,SAAAzM,GAA0C,IAC1C2U,EADyClU,EAAAsV,EAAA/V,EAAA,GAAvCwV,EAAa/U,EAAA,GAAEoV,EAAkBpV,EAAA,GAavC,OAXI+U,IACFb,EAAOqB,EAAAA,EAAA,GAAQR,GAAa,IAAEK,mBAAAA,IAC9BP,EAAYX,QAAUA,EACtBsB,EAAAA,EAAQ9I,KAAK,0BAA2B,CACtCwF,KAAMgC,EACNa,cAAeb,KAInBI,EAAK1B,OAAOlM,IAAIiN,EAAUkB,GAEtBA,EAAYN,MACP,CACLA,MAAOM,EAAYN,MACnBvD,OAAQ6D,EAAY7D,QAIjBkD,CACT,IACA,OACO,SAAAlE,GACL,MAAO,CACLuE,MAAOvE,EACPgB,OAAQG,EAAmB3B,MAE/B,GAEN,IAaA,OAXA2D,EACGnH,MAAK,WACJsI,EAAKzB,WAAU,OAAQc,EACzB,IAAE,OACK,SAAAY,GAEL,MADAD,EAAKzB,WAAU,OAAQc,GACjBY,CACR,IAEFzU,KAAK+S,WAAWnM,IAAIiN,EAAUR,GAEvBA,CACT,GAEA,CAAA3M,IAAA,eAAAgD,MACA,SAAa6K,GAAwB,IAAftP,EAAOqC,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,GAAG,CAAC,EACzBuM,GAAWvF,EAAAA,EAAAA,IAASiG,GAC1B,GAAIvU,KAAK8S,OAAO3M,IAAI0N,GAAW,CAC7B,IAAM3B,EAAWlS,KAAK8S,OAAO1M,IAAIyN,GAEjC,GAAI3B,EAASkC,QACX,OAAOlC,EAASkC,QAGlB,GAAInP,SAAAA,EAAS0Q,iBACX,MAAO,CACLlB,MAAOvC,EAASuC,MAChBvD,OAAQgB,EAAShB,OAGvB,CAEF,GAAC,CAAAxK,IAAA,iBAAAgD,MAED,SAAemK,GAEb,QAxUkC,WACpC,GACE,eAAgB+B,WACW,cAA3B9J,EAAO8J,UAAUC,YACjB,CACA,IAAKD,UAAUC,WAAWC,eAAa,IAAQC,SAAS,MACtD,OAAO,EAET,GAAIH,UAAUC,WAAWG,SACvB,OAAO,CAEX,CACA,OAAO,CACT,CA2TSC,KAKDjW,KAAK8S,OAAO3M,IAAI0N,EAKtB,GAAC,CAAAnN,IAAA,WAAAgD,MAED,SAASmK,GAAW,IAADqC,EAAA,KACjB,IAAKlW,KAAKmW,eAAetC,GACvB,OAAO,EAWT,GANK7T,KAAKkT,kBAAkB/M,IAAI0N,KAC9B7T,KAAKwT,UAAU,qBAAsB,CAAEpS,SAAUyS,IACjD7T,KAAKkT,kBAAkBkD,IAAIvC,IAIzB7T,KAAKyT,iBACP,OAAO,EAGT,IAAM4C,GAAW/H,EAAAA,EAAAA,IAASuF,GAU1B,OAPA7T,KAAKsW,WAAWD,GAAUnK,MAAK,WACxBgK,EAAK9C,kBAAkBjN,IAAI0N,KAC9BqC,EAAK1C,UAAU,yBAA0B,CAAEpS,SAAUyS,IACrDqC,EAAK9C,kBAAkBgD,IAAIvC,GAE/B,KAEO,CACT,GAAC,CAAAnN,IAAA,aAAAgD,MAED,SAAWmK,GAAW,IAAD0C,EAAA,KACbC,EAAc/E,EAAkBoC,GACtC,OAAO4C,EAAeD,EAAa,CACjCE,YAAY,YACZC,GAAG,UACFzK,MAAK,kBAGNqK,EAAK5B,iBAAiBd,EAAS,GAEnC,GAAC,CAAAnN,IAAA,WAAAgD,MAED,SAAS6K,GACPvU,KAAKsL,SAASiJ,EAChB,GAAC,CAAA7N,IAAA,6BAAAgD,MAED,SAA2B6K,GACzB,IAAMV,GAAWvF,EAAAA,EAAAA,IAASiG,GACpBnC,EAAOpS,KAAKiT,WAAW7M,IAAIyN,GACjC,GAAIzB,EAAM,CACR,IAAM6C,EAAgBhD,EAAgBG,EAAKgC,SAE3C,MAAM,GAANxM,OAAAgP,EACKC,EAAoB5B,EAAc7C,KAAKC,qBAAmB,CAC7DZ,EAAkBoC,IAEtB,CACE,OAAO,IAEX,GAAC,CAAAnN,IAAA,iBAAAgD,MAED,SAAe6K,GACb,IAAMV,GAAWvF,EAAAA,EAAAA,IAASiG,GACpBnC,EAAOpS,KAAK8S,OAAO1M,IAAIyN,GAC7B,OAAQzB,GAAQA,EAAKkC,QACvB,GAAC,CAAA5N,IAAA,cAAAgD,MAED,WAA0B,IAADoN,EAAA,KAAb/C,EAAOzM,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,GAAG,EACpB,OAAOtH,KAAKgU,YAAY,GAADpM,OAAIgK,GAAe,6BAA4B1F,MACpE,SAAA6E,GACE,IAEIgG,EAFI7F,EAAyBH,EAAzBG,OAAQ+C,EAAiBlD,EAAjBkD,aAIhB,GAAe,MAAX/C,GAAkB6C,EAAU,EAE9B,OAAO+C,EAAKpC,YAAYX,EAAU,GAIpC,GAAe,MAAX7C,EACF,IACE,IAAMgD,EAAchK,KAAKC,MAAM8J,GAC/B,QAA2C5K,IAAvC6K,EAAY5B,uBACd,MAAM,IAAI5C,MAAM,iCAGlBqH,EAAU7C,CACZ,CAAE,MAAOhE,GACP,CAIJ,OAAO6G,CACT,GAEJ,IAAC,CArZoB,GAwZjBF,EAAsB,SAAAxE,GAAkB,OAC3C1R,OAAOqW,gBAAgB3E,IAAuB,IAAIzG,KACjD,SAAAqL,GAAK,MAAIrF,GAAkBqF,CAAK,GACjC,EAEUC,EAAU,SAAAC,GACrB,SAAAD,EAAYE,EAAelK,EAAYgF,GAAW,IAADmF,EAAAzE,EAAA,KAAAsE,GAwB9C,OARDG,EAAAC,EAAA,KAAAJ,EAAA,CAfsB,SAAAK,GACpB,IAAKH,EAAcrM,WAAWwM,GAC5B,MAAM,IAAI7H,MAAM,8DAAD9H,OACiD2P,IAIlE,OACEH,EAAcrM,WAAWwM,KACtBrL,KAAKqF,GACN,OACO,SAAArB,GAAG,OAAIA,CAAG,GAEvB,EAEqBhD,IAEjBgF,GACFmF,EAAKpE,WAAWrM,IAAIsL,EAASjV,KAAM,CACjC4W,SAAU3B,EAASjV,KACnBmX,QAASlC,EACThB,OAAO,YAEVmG,CACH,CAAC,O,qRAAAG,CAAAN,EAAAC,GAAAzE,EAAAwE,EAAA,EAAAxQ,IAAA,aAAAgD,MAED,SAAWmK,GACT,OAAO4D,EAAAP,EAAA,oBAAAO,CAAA,CAAiB5D,IAAU3H,MAAK,SAAAL,GACrC,GAAIA,EAAOqF,SAAWG,EAAmBC,QACvC,OAAOnF,QAAQxN,UAEjB,IAAMuT,EAAWrG,EAAOuI,QAClBmD,EAAYrF,EAASG,mBACrBqF,EAAgBb,EAAoBU,GAC1C,OAAOpL,QAAQC,IAAIsL,EAAc9L,IAAI6K,IAAiBvK,MAAK,kBAAMgG,CAAQ,GAC3E,GACF,GAAC,CAAAxL,IAAA,mBAAAgD,MAED,SAAiB6K,GACf,OAAOkD,EAAAP,EAAA,0BAAAO,CAAA,CAAuBlD,IAASrI,MAAK,SAAA8C,GAC1C,OAAIA,EAAKsF,SAGAzC,EAAQ0C,EAAQ,QAASrI,MAAK,SAAA6E,GACnC,OAAmB,MAAfA,EAAIG,OAIC,CACLA,OAAQG,EAAmB3B,OAMxBV,CACT,IAEKA,CACT,GACF,IAAC,CA9DoB,CAASyD,GAmEnBkF,EAAY,SAAAC,GACvB3V,EAAW2V,CACb,EAEaC,EAAe,CAC1BpW,QAAS,SAAA8S,GAAO,OAAItS,EAAS6V,SAASvD,EAAQ,EAG9ClJ,2BAA4B,SAAAkJ,GAAO,OACjCtS,EAASoJ,2BAA2BkJ,EAAQ,EAC9CjJ,SAAU,SAAAiJ,GAAO,OAAItS,EAASqJ,SAASiJ,EAAQ,EAE/ChJ,aAAc,SAACgJ,GAAO,IAAEtP,EAAOqC,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAClCrF,EAASsJ,aAAagJ,EAAStP,EAAQ,EACzC6S,SAAU,SAAAvD,GAAO,OAAItS,EAAS6V,SAASvD,EAAQ,EAC/CwD,eAAgB,SAAAxD,GAAO,OAAItS,EAAS8V,eAAexD,EAAQ,EAC3DxQ,SAAU,SAAAwQ,GAAO,OAAItS,EAAS8B,SAASwQ,EAAQ,EAC/CG,YAAa,WAAF,OAAQzS,EAASyS,aAAa,GAG3C,IAEO,SAASsD,IACd,OAAI/V,EACKA,EAAS+Q,cAET,CAAC,CAEZ,C,yvEClkBA,IACMiF,EAAY,SAAApY,GAAA,SAAAoY,IAAA,O,4FAAArF,CAAA,KAAAqF,GAAAX,EAAA,KAAAW,EAAA3Q,UAAA,Q,qRAAAkQ,CAAAS,EAAApY,G,EAAAoY,G,EAAA,EAAAvR,IAAA,SAAAgD,MAChB,WACE,IAAMpK,EAAKmW,EAAAA,EAAA,GACNzV,KAAKV,OAAK,IACb+O,OAAMoH,EAAAA,EAAA,IACDrH,EAAAA,EAAAA,IAAgBpO,KAAKV,MAAMI,SAAS0B,WACpCpB,KAAKV,MAAM2V,cAAczC,KAAK0F,YAAYC,YAI3CC,GAAc7Y,EAAAA,EAAAA,eAAcS,KAAKV,MAAM2V,cAAc9C,UAASsD,EAAAA,EAAA,GAC/DnW,GAAK,IACRoH,IAAK1G,KAAKV,MAAMrC,MAAQ+C,KAAKV,MAAM2V,cAAc7C,KAAKnV,QAYxD,OAToBuW,EAAAA,EAAAA,GAAU,kBAE5B,CAAE5J,QAASwO,EAAa9Y,MAAAA,GACxB8Y,GACA,SAAAna,GACE,MAAO,CAAE2L,QADF3L,EAAN4N,OACyBvM,MAAAA,EAC5B,IACA+Y,KAGJ,M,yFAAC,CAzBe,CAASvS,EAAAA,WA4B3BmS,EAAarT,UAAY,CACvBlF,SAAUkQ,IAAAA,OAAiB9K,WAC3BmQ,cAAerF,IAAAA,OAAiB9K,WAChCkK,KAAMY,IAAAA,OACNsI,YAAatI,IAAAA,OAAiB9K,YAGhC,K,+JCvCawT,EAAsB,CACjCC,GAAG,mBACH9X,MAAO,CACL4H,SAAS,WACTmQ,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,SAAS,SACTC,KAAK,mBACLC,WAAW,SACXC,OAAQ,GAEV,YAAY,YACZ,cAAc,Q,+qECLhB,SAASC,EAAc5X,GACrB,IAAMmN,GAAWC,EAAAA,EAAAA,GAAwBpN,GACzC6X,EAAyBtY,OAAOjB,SAAxB0F,EAAI6T,EAAJ7T,KAAMD,EAAM8T,EAAN9T,OAEd,OAAgB,MAAZoJ,IACF5N,OAAOuY,WAAW3K,EAASE,OAAStJ,EAASC,IACtC,EAIX,CAGA,IAAI+T,EAAS,GAEbxY,OAAOuI,iBAAiB,sBAAsB,SAAAkQ,GACxC,6BAA6BC,KAAKD,EAAME,SACtCH,IACFxY,OAAOjB,SAAS0B,SAAW+X,EAGjC,IAEA,IAAMI,EAAmB,SAAC7Z,EAAU8Z,GAC7BR,EAActZ,EAAS0B,YAC1B+X,EAAYzZ,EAAS0B,UACrBoS,EAAAA,EAAAA,GAAU,mBAAoB,CAAE9T,SAAAA,EAAU8Z,aAAAA,IAE9C,EAEMC,EAAgB,SAAC/Z,EAAU8Z,GAC1BR,EAActZ,EAAS0B,YAC1BoS,EAAAA,EAAAA,GAAU,gBAAiB,CAAE9T,SAAAA,EAAU8Z,aAAAA,GAQ3C,EAEME,EAAW,SAACpY,GAAsB,IAAlB2D,EAAOqC,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAI/B,GAAa,WAATwE,EAAOxK,GAAX,CAKA,IAAA3D,GAAmCC,EAAAA,EAAAA,IAAU0D,GAArCF,EAAQzD,EAARyD,SAAU+D,EAAMxH,EAANwH,OAAQC,EAAIzH,EAAJyH,KACpBmJ,GAAWC,EAAAA,EAAAA,GAAwBpN,GAUzC,GANImN,IACFjN,EAAKiN,EAASE,OAAStJ,EAASC,GAK9BzE,OAAOgZ,aACThZ,OAAOjB,SAAW0B,EAAW+D,EAASC,MADxC,CAOA,IAAMwU,EAAYC,YAAW,WAC3BnE,EAAAA,EAAQ9I,KAAK,6BAA8B,CAAExL,SAAAA,KAC7CoS,EAAAA,EAAAA,GAAU,uBAAwB,CAChC9T,SAAUiB,OAAOjB,UAErB,GAAG,KAEHkP,EAAAA,GAAOtD,SAASlK,GAAU8K,MAAK,SAAA+I,GAO7B,IAAKA,GAAiBA,EAAc/D,SAAWG,EAAAA,GAAmB3B,MAIhE,OAHA/O,OAAOmZ,QAAQC,aAAa,CAAC,EAAE,GAAKra,SAASgF,MAC7C/D,OAAOjB,SAAW0B,OAClB4Y,aAAaJ,GAM8B3E,GAMzCA,EAAc7C,KAAKE,yBACnB3R,OAAOsZ,4BAIL,kBAAmBrE,WACoB,OAAvCA,UAAUsE,cAAcC,YACgB,cAAxCvE,UAAUsE,cAAcC,WAAWtZ,OAEnC+U,UAAUsE,cAAcC,WAAWC,YAAY,CAC7CC,UAAU,uBAId1Z,OAAOjB,SAAW0B,EAAW+D,EAASC,IAG1CkV,EAAAA,EAAAA,UAAchZ,EAAI2D,GAClB+U,aAAaJ,EACf,GApDA,CAhBA,MAFEW,EAAAA,GAAcb,SAASpY,EAuE3B,EAEA,SAASgH,EAAmBQ,EAAe7K,GAAiB,IAAD6B,EAAA,KAAZJ,EAAQzB,EAARyB,SACrC0B,EAAmB1B,EAAnB0B,SAAUgE,EAAS1F,EAAT0F,KACZuG,GAAU6H,EAAAA,EAAAA,GAAU,qBAAsB,CAC9C1K,gBAAAA,EAEA1H,SAAAA,EACA2H,YAAa,CAAErJ,SAAAA,GACf8a,uBAAwB,SAAAhT,GAAI,MAAI,CAC9B,EAGA1H,EAAK+H,cAAcuB,KAAK5B,EAAMA,EAAKd,KACpC,IAEH,GAAIiF,EAAQpE,OAAS,EAGnB,OAAOoE,EAAQA,EAAQpE,OAAS,GAGlC,GAAIuB,GAGEA,EADFpJ,SAAY0B,WAEMA,EAGlB,OAAOgE,EAAOkE,UAAUlE,EAAK7G,MAAM,IAAM,CAAC,EAAG,GAGjD,OAAO,CACT,CAeC,IAEKkc,EAAc,SAAA5a,GAClB,SAAA4a,EAAYnb,GAAQ,IAADiD,EAEuB,OAFvBqQ,EAAA,KAAA6H,IACjBlY,EAAA+U,EAAA,KAAAmD,EAAA,CAAMnb,KACDob,gBAAkB5U,EAAAA,YAAiBvD,CAC1C,CAAC,OAAAiV,EAAAiD,EAAA5a,GAAA6S,EAAA+H,EAAA,EAAA/T,IAAA,qBAAAgD,MAED,SAAmB/H,EAAWgZ,GAAY,IAADzX,EAAA,KACvCgF,uBAAsB,WACpB,IAAI0S,EAAQ,eAAAhT,OAAkB1E,EAAK5D,MAAMI,SAAS0B,UAC9CsH,SAASmS,QACXD,EAAWlS,SAASmS,OAEtB,IAAMC,EAAepS,SAASqS,iBAAiB,4BAC3CD,GAAgBA,EAAavT,SAC/BqT,EAAWE,EAAa,GAAGE,aAE7B,IAAMC,EAAe,gBAAArT,OAAmBgT,GACpC1X,EAAKwX,gBAAgBhc,UACCwE,EAAKwX,gBAAgBhc,QAAQwc,YAC7BD,IACtB/X,EAAKwX,gBAAgBhc,QAAQwc,UAAYD,GAG/C,GACF,GAAC,CAAAvU,IAAA,SAAAgD,MAED,WACE,OAAO5D,EAAAA,cAAA,MAAAqV,EAAA,GAAS7C,EAAmB,CAAEjW,IAAKrC,KAAK0a,kBACjD,IAAC,CA5BiB,CAAS5U,EAAAA,WA+BvBsV,EAAuB,SAAC5B,EAAc6B,GAAkB,IAADC,EAAAC,EAC3D,OAAI/B,EAAa9U,OAAS2W,EAAa3W,OAInC8U,SAAmB,QAAP8B,EAAZ9B,EAAc3Y,aAAK,IAAAya,OAAP,EAAZA,EAAqB5U,QAAQ2U,SAAmB,QAAPE,EAAZF,EAAcxa,aAAK,IAAA0a,OAAP,EAAZA,EAAqB7U,IAKxD,EAGM8U,EAAY,SAAAC,GAChB,SAAAD,EAAYlc,GAAQ,IAADkV,EAEqB,OAFrB5B,EAAA,KAAA4I,GACjBhH,EAAA8C,EAAA,KAAAkE,EAAA,CAAMlc,IACNia,EAAiBja,EAAMI,SAAU,MAAK8U,CACxC,CAAC,OAAAgD,EAAAgE,EAAAC,GAAA/I,EAAA8I,EAAA,EAAA9U,IAAA,oBAAAgD,MAED,WACE+P,EAAczZ,KAAKV,MAAMI,SAAU,KACrC,GAAC,CAAAgH,IAAA,wBAAAgD,MAED,SAAsB/H,GACpB,QAAIyZ,EAAqBzZ,EAAUjC,SAAUM,KAAKV,MAAMI,YACtD6Z,EAAiBvZ,KAAKV,MAAMI,SAAUiC,EAAUjC,WACzC,EAGX,GAAC,CAAAgH,IAAA,qBAAAgD,MAED,SAAmB/H,GACbyZ,EAAqBzZ,EAAUjC,SAAUM,KAAKV,MAAMI,WACtD+Z,EAAczZ,KAAKV,MAAMI,SAAUiC,EAAUjC,SAEjD,GAAC,CAAAgH,IAAA,SAAAgD,MAED,WACE,OACE5D,EAAAA,cAACA,EAAAA,SAAc,KACZ9F,KAAKV,MAAMqK,SACZ7D,EAAAA,cAAC2U,EAAc,CAAC/a,SAAUA,WAGhC,IAAC,CA/Be,CAASoG,EAAAA,WAkC3B0V,EAAa5W,UAAY,CACvBlF,SAAUkQ,IAAAA,OAAiB9K,Y,0BChQ7B,SAAS4W,EAAe/H,EAAGgI,GACzB,IAAK,IAAIC,KAAKjI,EACZ,KAAMiI,KAAKD,GAAI,OAAO,EACvB,IAAK,IAAIE,KAAMF,EACd,GAAIhI,EAAEkI,KAAQF,EAAEE,GAAK,OAAO,EAC7B,OAAO,CACV,C,4pECN4C,IA2G5C,EAzGqB,SAAAhc,GACnB,SAAAic,EAAYxc,GAAQ,IAADQ,G,4FAAA8S,CAAA,KAAAkJ,GACjBhc,EAAAwX,EAAA,KAAAwE,GACA,IAAQpc,EAA4BJ,EAA5BI,SAAUuV,EAAkB3V,EAAlB2V,cAMjB,OALDnV,EAAKe,MAAQ,CACXnB,SAAQ+V,EAAA,GAAO/V,GACfuV,cACEA,GACArG,EAAAA,GAAOrD,aAAa7L,EAAS0B,SAAU,CAAEuU,kBAAkB,KAC9D7V,CACH,CAAC,O,qRAAA0X,CAAAsE,EAAAjc,G,EAAAic,E,EA4FA,EAAApV,IAAA,2BAAAgD,MA1FD,SAA+BzL,EAAe2D,GAAY,IAAxBlC,EAAQzB,EAARyB,SAChC,OAAIkC,EAAUlC,SAASgF,OAAShF,EAASgF,KAKhC,CACLuQ,cALoBrG,EAAAA,GAAOrD,aAAa7L,EAAS0B,SAAU,CAC3DuU,kBAAkB,IAKlBjW,SAAQ+V,EAAA,GAAO/V,IAIZ,CACLA,SAAQ+V,EAAA,GAAO/V,GAEnB,K,EAjBC,EAAAgH,IAAA,gBAAAgD,MAmBD,SAAc6K,GAAU,IAADhS,EAAA,KACrBqM,EAAAA,GAAOtD,SAASiJ,GAASrI,MAAK,SAAA+I,GACxBA,GAAiBA,EAAc/D,SAAWG,EAAAA,GAAmB3B,MAC/DnN,EAAKwZ,SAAS,CACZrc,SAAQ+V,EAAA,GAAO9U,OAAOjB,UACtBuV,cAAAA,KAGFtU,OAAOmZ,QAAQC,aAAa,CAAC,EAAE,GAAKra,SAASgF,MAC7C/D,OAAOjB,SAAW6U,EAEtB,GACF,GAAC,CAAA7N,IAAA,wBAAAgD,MAED,SAAsBiR,EAAWqB,GAE/B,OAAKA,EAAU/G,cAcXjV,KAAKa,MAAMoU,gBAAkB+G,EAAU/G,eAIzCjV,KAAKa,MAAMoU,cAAc9C,YAAc6J,EAAU/G,cAAc9C,WAK7DnS,KAAKa,MAAMoU,cAAczC,OAASwJ,EAAU/G,cAAczC,QAM5DxS,KAAKa,MAAMnB,SAASgH,MAAQsV,EAAUtc,SAASgH,MAC/CsV,EAAU/G,cAAc7C,OACvB4J,EAAU/G,cAAc7C,KAAKrE,YAC5BiO,EAAU/G,cAAc7C,KAAKnV,ODvErC,SAA0BgF,EAAU0Y,EAAWqB,GAC7C,OAAON,EAAezZ,EAAS3C,MAAOqb,IAAce,EAAezZ,EAASpB,MAAOmb,EACpF,CCyEUC,CAAejc,KAAM2a,EAAWqB,IAnCrChc,KAAKkc,cAAcvB,EAAUjb,SAAS0B,WAC/B,EAmCX,GAAC,CAAAsF,IAAA,SAAAgD,MAED,WAiBE,OAAO1J,KAAKV,MAAMqK,SAAS3J,KAAKa,MAClC,M,yFA3EC,CA3BkB,CAASiF,EAAAA,W,4vECuB9B,IAAM8I,GAAS,IAAIsI,EAAAA,GAAWE,EAAelK,EAAYvM,OAAOuR,WAChEyF,EAAAA,EAAAA,IAAU/I,IACVA,GAAOuN,aAAa3I,EAAAA,GAEpB7S,OAAOyW,cAAgBA,EACvBzW,OAAOyb,WAAa1G,EAAAA,EACpB/U,OAAOa,UAAYqW,EAAAA,GHsIjB0C,EAAAA,GAAc8B,QAAO,SAAA7U,GACnBA,EAAK9H,SAAS4c,OAAS9U,EAAK8U,MAC9B,IAEA3b,OAAO4b,QAAU,SAAAjb,GAAE,OAAIoY,EAASpY,EAAI,CAAEoC,SAAS,GAAQ,EACvD/C,OAAOuY,WAAa,SAAA5X,GAAE,OAAIoY,EAASpY,EAAI,CAAEoC,SAAS,GAAO,EACzD/C,OAAO8D,YAAc,SAACnD,EAAI2D,GAAO,OAAKyU,EAASpY,EAAI2D,EAAQ,EAG3D+T,EAAcrY,OAAOjB,SAAS0B,WG3IhCob,EAAAA,EAAAA,GAAe,iBAAiBtQ,MAAK,YAG/BsH,EAAAA,EAAAA,GAAU,yBAAyBlT,OAAOC,SAASgH,OAAS,GAC9D2D,EAAQ,OAWV,IAAMuR,EAAe,SAAAnd,GAAK,OACxBwG,EAAAA,cAAC4W,EAAAA,YAAYjT,SAAQ,CACnBC,MAAO,CACLiT,QAAQ,IACRC,SAAS,MAGX9W,EAAAA,cAACmS,EAAAA,EAAiB3Y,GACG,EAGnBud,EAAc/W,EAAAA,cAAoB,CAAC,GAEnCgX,EAAU,SAAAjd,GAAA,SAAAid,IAAA,OAAAlK,GAAA,KAAAkK,GAAAxF,GAAA,KAAAwF,EAAAxV,UAAA,QAAAkQ,GAAAsF,EAAAjd,GAAA6S,GAAAoK,EAAA,EAAApW,IAAA,SAAAgD,MACd,WACE,IAAQC,EAAa3J,KAAKV,MAAlBqK,SACR,OACE7D,EAAAA,cAACtG,EAAAA,SAAQ,MACN,SAAAvB,GAAA,IAAGyB,EAAQzB,EAARyB,SAAQ,OACVoG,EAAAA,cAACgW,EAAe,CAACpc,SAAUA,IACxB,SAAAD,GAAkC,IAA/BwV,EAAaxV,EAAbwV,cAAevV,EAAQD,EAARC,SACX4V,GAAqB0C,EAAAA,EAAAA,MAC3B,OACElS,EAAAA,cAAC+I,EAAAA,mBAAmBpF,SAAQ,CAACC,MAAO4L,GAClCxP,EAAAA,cAAC+W,EAAYpT,SAAQ,CAACC,MAAO,CAAEuL,cAAAA,EAAevV,SAAAA,IAC3CiK,GAIT,GACgB,GAI1B,IAAC,CArBa,CAAS7D,EAAAA,WAwBnBiX,EAAe,SAAAtB,GAAA,SAAAsB,IAAA,OAAAnK,GAAA,KAAAmK,GAAAzF,GAAA,KAAAyF,EAAAzV,UAAA,QAAAkQ,GAAAuF,EAAAtB,GAAA/I,GAAAqK,EAAA,EAAArW,IAAA,SAAAgD,MACnB,WAAU,IAAD5J,EAAA,KACP,OACEgG,EAAAA,cAAC+W,EAAYzN,SAAQ,MAClB,SAAAlP,GAAA,IAAG+U,EAAa/U,EAAb+U,cAAevV,EAAQQ,EAARR,SAAQ,OACzBoG,EAAAA,cAAC0V,EAAY,CAAC9b,SAAUA,GACtBoG,EAAAA,cAACD,EAAAA,GAAa,CACZnG,SAAUA,EACV4I,mBAAoBA,GAEpBxC,EAAAA,cAACkX,EAAAA,OAAM,CACLJ,SAAUrP,GACV7N,SAAUA,EACV6Y,GAAG,wBAEHzS,EAAAA,cAAC2W,EAAYtB,GAAA,CACXle,KACyB,cAAvBgY,EAAc7C,KAAKnV,MACfqQ,EAAAA,EAAAA,GAAY5N,EAAS0B,SAAUmM,IAC/B/I,UACEyQ,EAAc7C,KAAKrE,WACjBkH,EAAc7C,KAAKnV,OAGzB6C,EAAKR,MAAK,CACdI,SAAUA,EACVuV,cAAeA,GACXA,EAAczC,SAIX,GAIvB,IAAC,CAnCkB,CAAS1M,EAAAA,WAsC9BmX,EAA2Ctc,OAAnCkT,EAAQoJ,EAARpJ,SAAoBqJ,EAAUD,EAApBvd,SAUhBmU,GACAtG,GAAgBsG,IAAaqJ,EAAW9b,YAEtCwN,GAAOjB,eAAcL,EAAAA,EAAAA,GAAY4P,EAAW9b,SAAUmM,MAC9C,cAARsG,GACAA,EAASsJ,MAAM,eACftJ,EAASsJ,MAAM,+CAGjBzD,EAAAA,EAAAA,UAASnM,GAAgBsG,EAAWqJ,EAAW/X,OAAS+X,EAAW9X,KAAM,CACvE1B,SAAS,IAIbmU,EAAAA,GAAavM,SAAS4R,EAAW9b,UAAU8K,MAAK,SAAAkG,GAC9C,IAAKA,GAAQA,EAAKlB,SAAWG,EAAAA,GAAmB3B,MAAO,CACrD,IAAM0N,EAAO,sBAAAxV,OAAyBsV,EAAW9b,SAAQ,mCAIzD,GAAIgR,GAAQA,EAAKqC,MAEf,MADA4I,QAAQ5I,MAAM2I,GACRhL,EAAKqC,MAGb,MAAM,IAAI/E,MAAM0N,EAClB,CAEAzc,OAAOsZ,0BAA4B7H,EAAKA,KAAKE,uBAE7C,IAAMgL,GAAW9J,EAAAA,EAAAA,GAAU,kBAEzB,CAAE5J,QAAS9D,EAAAA,cAACiX,EAAe,OAC3BjX,EAAAA,cAACiX,EAAe,OAChB,SAAAQ,GACE,MAAO,CAAE3T,QADF2T,EAAN1R,OAEH,IACAwM,MAEImF,EAAM,WACV,IAAMC,EAAsB3X,EAAAA,QAAa,GAazC,OAXAA,EAAAA,WAAgB,WACT2X,EAAoB/e,UACvB+e,EAAoB/e,SAAU,EAC1Bgf,YAAYC,MACdD,YAAYC,KAAK,0BAGnBnK,EAAAA,EAAAA,GAAU,yBAEd,GAAG,IAEI1N,EAAAA,cAACgX,EAAU,KAAEQ,EACtB,EAEMM,GAAWpK,EAAAA,EAAAA,GAAU,8BAEzBnK,EACAwU,EAASC,YAAcD,EAASC,YAAcD,EAAAA,SAC9C,GAEF,SAASE,IACP,IAAMC,EACS,mCAANrd,OAAM,YAAAmL,EAANnL,SACH+H,SAASC,eAAe,aACxB,KAEFiV,IAAaC,EAASC,YACxBF,EAASI,EAAalY,EAAAA,cAAC0X,EAAG,OAE1BI,EAAS9X,EAAAA,cAAC0X,EAAG,MAAKQ,EAEtB,CAIA,IAAMC,EAAMvV,SACZ,GACgB,aAAduV,EAAIjM,YACW,YAAdiM,EAAIjM,aAA6BiM,EAAIC,gBAAgBC,SAEtDtE,YAAW,WACTkE,GACF,GAAG,OACE,CACL,IAAMvR,EAAU,WACdyR,EAAI1U,oBAAoB,mBAAoBiD,GAAS,GACrD7L,OAAO4I,oBAAoB,OAAQiD,GAAS,GAE5CuR,GACF,EAEAE,EAAI/U,iBAAiB,mBAAoBsD,GAAS,GAClD7L,OAAOuI,iBAAiB,OAAQsD,GAAS,EAC3C,CACF,GACF,G,y9BCpOA,IAAM4R,EAAmB,SAAHngB,GAAsB,IAAhByB,EAAQzB,EAARyB,SACpBuV,EAAgBrG,EAAAA,GAAOrD,aAAa7L,EAAS0B,UACnD,OAAK6T,EAGEnP,EAAAA,cAAoBuY,EAAAA,E,+VAAoB5I,CAAA,CAC7C/V,SAAAA,EACAuV,cAAAA,GACGA,EAAczC,OALV,IAOX,EAEA4L,EAAiBxZ,UAAY,CAC3BlF,SAAUkQ,IAAAA,MAAgB,CACxBxO,SAAUwO,IAAAA,OAAiB9K,aAC1BA,YAGL,W,wBCxBA,IAAsB0M,EAKpBxG,EAAOjO,SALayU,EAKWtG,EAAQ,SALRsG,EAAC,SAAaA,C,sBCA/CzU,EAAQ,EAAW,SAAA4H,GAAS,OAAIA,CAAS,C,yECInC2Z,EAAc,IAAIrR,IAClBsR,EAAwB,IAAItR,IAU3B,SAASuB,EAAwBpN,GACtC,IAAImN,EAAW+P,EAAYlY,IAAIhF,GAI/B,OAHKmN,IACHA,EAAWgQ,EAAsBnY,IAAIhF,EAASod,gBAEzCjQ,CACT,C,GAdU5L,SAAQ,SAAA4L,GACZA,EAASkQ,WACXF,EAAsB3X,IAAI2H,EAASmQ,SAAUnQ,GAE7C+P,EAAY1X,IAAI2H,EAASmQ,SAAUnQ,EAEvC,G,2DCV0B,WAAxB5N,OAAOjB,SAASif,UACQ,cAAxBhe,OAAOjB,SAASkf,SAEhBvB,QAAQ5I,MAAM,gFAGL,kBAAmBmB,WAC5BA,UAAUsE,cACP2E,SAAS,GAADjX,OAAI2F,GAAa,WACzBrB,MAAK,SAAU4S,GACdA,EAAI5V,iBAAiB,eAAe,YAClCsK,EAAAA,EAAAA,GAAU,6BAA8B,CAAE0G,cAAe4E,IAGzD,IAAMC,EAAmBD,EAAIE,WAC7B3B,QAAQ4B,IAAI,mBAAoBF,GAChCA,EAAiB7V,iBAAiB,eAAe,WAC/C,OAAQ6V,EAAiBle,OACvB,IAAI,YACE+U,UAAUsE,cAAcC,YAK1BxZ,OAAOgZ,cAAe,GAEtBnG,EAAAA,EAAAA,GAAU,6BAA8B,CAAE0G,cAAe4E,IAGrDne,OAAOue,qBACT7B,QAAQ4B,IAAI,4CACZte,OAAOjB,SAASyf,YAKlB9B,QAAQ4B,IAAI,sCAKZzL,EAAAA,EAAAA,GAAU,2BAA4B,CAAE0G,cAAe4E,KAEzD,MAEF,IAAI,YACFzB,QAAQ5I,MAAM,oDACdjB,EAAAA,EAAAA,GAAU,2BAA4B,CAAE0G,cAAe4E,IACvD,MAEF,IAAI,aACFtL,EAAAA,EAAAA,GAAU,wBAAyB,CAAE0G,cAAe4E,IAG1D,GACF,GACF,IAAE,OACK,SAAUhb,GACfuZ,QAAQ5I,MAAM,4CAA6C3Q,EAC7D,G,qCCzDW,SAASwJ,EAAY8R,GAAmB,IAAdphB,EAAMsJ,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,MAC7C,OAAKtJ,EAIDohB,IAAQphB,EACJ,IAGJohB,EAAIrhB,WAAW,GAAD6J,OAAI5J,EAAM,MACnBohB,EAAI7gB,MAAMP,EAAOuJ,QAGnB6X,EAXEA,CAYX,C,mnDCP8C,IAExCC,EAAY,SAAAxf,GAChB,SAAAwf,EAAa/f,GAAS,IAADQ,E,MAIjB,O,4FAJiB8S,CAAA,KAAAyM,GACnBvf,EAAAwX,EAAA,KAAA+H,EAAA,CAAO/f,I,EAAQQ,E,EAMI,WACnBA,EAAKic,SAAU,CAAEuD,SAAS,GAC5B,G,MARiB,yB,wFACfxf,EAAKe,MAAQ,CACXye,SAAS,GACTxf,CACJ,CAAC,O,qRAAA0X,CAAA6H,EAAAxf,G,EAAAwf,G,EAAA,EAAA3Y,IAAA,oBAAAgD,MAMD,YACE6V,EAAAA,EAAAA,IAAYvf,KAAKwf,mBACnB,GAAC,CAAA9Y,IAAA,SAAAgD,MAED,WACE,OACyB,IAAvB1J,KAAKa,MAAMye,SACTxZ,EAAAA,cAACA,EAAAA,SAAc,KAAE9F,KAAKV,MAAMqK,SAGlC,M,yFAAC,CAtBe,CAAS7D,EAAAA,WAyBd2Z,EAAkB,SAAHxhB,GAAuB,IAAhB2L,EAAO3L,EAAP2L,QACjC,OAAO9D,EAAAA,cAACuZ,EAAY,KAAEzV,EACxB,C,kICzCA,MAAM8V,EAAoB,IAAIvM,IAE9B,SAASwM,EAASC,EAAIC,GACpB,IAAIC,EAAQ,KACZ,OAAO,WACDA,GACF9F,aAAa8F,GACd,QAAAzY,EAAAC,UAAAC,OAHiBC,EAAI,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GAKtBoY,EAAQjG,WAAUlS,WAAC,EAAD,CAACiY,EAAIC,GAAOjY,OAAKJ,GACrC,CACF,CAEA,SAASuY,EAAcC,QAAa,IAAbA,IAAAA,EAAgB,aACrC,MAAMC,EAAMtf,OAEZ,SAASuf,EAASlR,GACZ0Q,EAAkBvZ,IAAI6I,EAAKmR,QAI/BT,EAAkBtJ,IAAIpH,EAAKmR,MAqB/B,SAAkB1gB,EAIf2gB,GAAY,IAJI,KACjBD,EAAI,MACJzW,EAAK,GACL6O,GACD9Y,EACC2gB,EAAU3T,KAAK,CACb2M,MAAO,kBACPiH,qBAAsB,CACpBF,KAAMA,EAKN5H,KAIA7O,MAAO4W,KAAKC,MAAe,QAATJ,EAAyB,IAARzW,EAAeA,KAGxD,CAxCI8W,CAAUxR,EAAMiR,EAAID,IACtB,CAEA,OAAO,gCAA0B9T,MAAKjO,IAI/B,IAJgC,OACrCwiB,EAAM,OACNC,EAAM,OACNC,GACD1iB,EACC,MAAM2iB,EAAejB,EAASO,EAAU,KAElCW,EAAeX,EAEfY,EAAenB,EAASO,EAAU,KAExCS,EAAOC,GAAc,GACrBF,EAAOG,GAAc,GACrBJ,EAAOK,GAAc,EAAK,GAE9B,CAwBO,SAASrH,EAAcsH,EAAGC,GAG7BnH,YAAW,KACT,MAAM7K,EAAOgS,EAAchB,cAAgBrf,OAAOqgB,EAAchB,eAAiBrf,OAAOyf,UAClFa,EAAYD,EAAcE,qBAAuBF,EAAcE,qBAAuB,sBAC5FlS,EAAKvC,KAAK,CACR2M,MAAO6H,GACP,GACD,GAEP,CACO,SAASE,EAAsBJ,EAAGC,GAEMA,EAAcI,yBACzDrB,EAAciB,EAAchB,cAEhC,C,mCC/EAjjB,EAAQmI,YAAa,EACrBnI,EAAAA,aAAkB,EAClB,IAIIgI,EAJiB,CACnBsc,YAAY,EACZC,gBAAgB,GAGlBvkB,EAAAA,QAAkBgI,C,qCCPlB,IAAIjI,EAAyBoO,EAAQ,OAEjC5N,EAAYR,EAAuBoO,EAAQ,QAE3CqW,EAAkBzkB,EAAuBoO,EAAQ,QAErDnO,EAAQ0c,cAAgB,SAAUxb,EAAM+iB,GACtC,IAAIthB,EAAWzB,EAAKyB,SAGpB,IAFc,EAAIpC,EAAUyB,SAAS,CAAC,EAAGwiB,EAAgBxiB,QAASiiB,GAEtDM,gBAA4D7Z,MAAM+Z,QAAQ7gB,OAAO8gB,MAC3F,OAAO,KAGT,IAAIC,EAAgB,WAClB,IAAIzkB,EAAOyC,EAAW,GAAKA,EAAS0B,SAAW1B,EAASyF,OAASzF,EAAS0F,UAAOiE,EAEjF1I,OAAO8gB,KAAKhV,KAAK,CAAC,UAAWxP,IAE7B0D,OAAO8gB,KAAKhV,KAAK,CAAC,iBACpB,EAaA,MAT4C,mBAAjC9L,OAAOuH,sBAChBvH,OAAOuH,uBAAsB,WAC3BvH,OAAOuH,sBAAsBwZ,EAC/B,IAGA7H,WAAW6H,EAAe,IAGrB,IACT,C,qCClCA,IAAI5kB,EAAyBoO,EAAQ,OAEvBA,EAAQ,OAEKpO,EAAuBoO,EAAQ,O,mCCJ1DnO,EAAQmI,YAAa,EACrBnI,EAAAA,aAAkB,EA2BlBA,EAAAA,QAlBe,SAAkBqE,EAAUugB,GACzC,IAAIC,EAAkB,uBAEtB,IAAKna,MAAM+Z,QAAQG,GACjB,OAAOC,EAGT,IAAIC,EAAoBF,EAAmBG,MAAK,SAAUC,GACxD,OAAO3gB,EAASrD,WAAWgkB,EAAIC,UACjC,IAEA,OAAKH,EAIE,YAAcA,EAAkBI,KAAO,eAHrCL,CAIX,C,sNCxBMM,EAA8B,oBAAXvhB,OAEnBwhB,EAAO,CAAC,EAWRC,EAAS,CACbC,aAAa,EACbC,SAAS,EACTC,WAAW,GAGTC,EAAO,CAAC,EAECC,EAAkB,WAC7B,GAAMP,EAIN,MAAgD,SAAzCQ,aAAazY,QAAS,aAC/B,EAEa0Y,EAAQ,WACbT,GAINC,EAAKS,WACP,EAqBarD,EAAa,SAAAsD,GACxB,OAAOA,GAGT,EAEaC,EAAuB,WAC5BZ,GAINC,EAAKY,UA9BY,WAAH,IAAKzgB,EAAEgF,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,GAAG,WAAQ,EAAC,OAAM,SAAE4I,EAAK8S,GAC9C,GAAK9S,EAGH,OAFAwJ,EAAAA,EAAAA,UAAU,UACVpX,IAIF,GAAK0gB,GAAcA,EAAWX,aAAeW,EAAWV,QAAU,CAChE,IAAIC,EAAmC,IAAvBS,EAAWC,WAAmB,IAAI9N,MAAO+N,UACzDd,EAAOC,YAAcW,EAAWX,YAChCD,EAAOE,QAAUU,EAAWV,QAC5BF,EAAOG,UAAYA,EACnBC,EAAOQ,EAAWG,eAClBT,aAAapY,QAAS,cAAc,IACpCoP,EAAAA,EAAAA,UAAU,YACVpX,GACF,CACF,CAAE,CAagB8gB,GAClB,EAEaC,EAAa,WACxB,OAAOb,CACT,EAEac,EAAS,WACpBZ,aAAapY,QAAS,cAAc,GACpC6X,EAAKmB,QACP,C,suBC7EIvlB,EAAa,SAAoBiB,EAAQmG,GAC3C,OAAOnG,EAAOuG,OAAO,EAAGJ,EAAOoC,UAAYpC,CAC7C,EAuBI8I,EAAO,SAAcsV,EAAQC,GAQ/B,IAPA,IAAIrG,OAAQ,EACRsG,OAAW,EAEbC,EADeF,EAAIhW,MAAM,KACA,GACvBmW,EAAcC,EAAWF,GACzBG,EAA+B,KAAnBF,EAAY,GACxBG,EAASC,EAAWR,GACf3H,EAAI,EAAGoI,EAAIF,EAAOvc,OAAQqU,EAAIoI,EAAGpI,IAAK,CAC7C,IAAIqI,GAAS,EACT9V,EAAQ2V,EAAOlI,GAAGzN,MACtB,GAAIA,EAAMpP,QACR0kB,EAAW,CACTtV,MAAOA,EACPE,OAAQ,CAAC,EACTmV,IAAKA,OAJT,CAYA,IAJA,IAAIU,EAAgBN,EAAWzV,EAAMlR,MACjCoR,EAAS,CAAC,EACV8V,EAAM7D,KAAK6D,IAAIR,EAAYpc,OAAQ2c,EAAc3c,QACjD6c,EAAQ,EACLA,EAAQD,EAAKC,IAAS,CAC3B,IAAIC,EAAeH,EAAcE,GAC7BE,EAAaX,EAAYS,GAC7B,GAAIG,EAAQF,GAAe,CAKzBhW,EADYgW,EAAa9lB,MAAM,IAAM,KACrBolB,EAAYplB,MAAM6lB,GAAOxY,IAAIyB,oBAAoB7M,KAAK,KACtE,KACF,CACA,QAAmB6I,IAAfib,EAA0B,CAI5BL,GAAS,EACT,KACF,CACA,IAAIO,EAAeC,EAAQC,KAAKL,GAChC,GAAIG,IAAiBX,EAAW,EACuC,IAA5Cc,EAAcrf,QAAQkf,EAAa,KAC6J,KAAU,GACnO,IAAI9a,EAAQ2D,mBAAmBiX,GAC/BjW,EAAOmW,EAAa,IAAM9a,CAC5B,MAAO,GAAI2a,IAAiBC,EAAY,CAItCL,GAAS,EACT,KACF,CACF,CACA,IAAKA,EAAQ,CACX9G,EAAQ,CACNhP,MAAOA,EACPE,OAAQA,EACRmV,IAAK,IAAMG,EAAYplB,MAAM,EAAG6lB,GAAO5jB,KAAK,MAE9C,KACF,CA5CA,CA6CF,CACA,OAAO2c,GAASsG,GAAY,IAC9B,EAIItG,EAAQ,SAAelgB,EAAMumB,GAC/B,OAAOvV,EAAK,CAAC,CACXhR,KAAMA,IACJumB,EACN,EA4BI7kB,EAAU,SAAiB2C,EAAIjD,GAEjC,GAAIN,EAAWuD,EAAI,KACjB,OAAOA,EAET,IAAIsjB,EAAYtjB,EAAGkM,MAAM,KACvBqX,EAAaD,EAAU,GACvBE,EAAUF,EAAU,GAEpBG,EADgB1mB,EAAKmP,MAAM,KACA,GACzBwX,EAAapB,EAAWiB,GACxBI,EAAerB,EAAWmB,GAG9B,GAAsB,KAAlBC,EAAW,GACb,OAAOE,EAASH,EAAcD,GAIhC,IAAK/mB,EAAWinB,EAAW,GAAI,KAAM,CACnC,IAAI5jB,EAAW6jB,EAAard,OAAOod,GAAYxkB,KAAK,KACpD,OAAO0kB,GAA2B,MAAjBH,EAAuB,GAAK,KAAO3jB,EAAU0jB,EAChE,CASA,IAFA,IAAIK,EAAcF,EAAard,OAAOod,GAClCI,EAAW,GACNxJ,EAAI,EAAGoI,EAAImB,EAAY5d,OAAQqU,EAAIoI,EAAGpI,IAAK,CAClD,IAAIyJ,EAAUF,EAAYvJ,GACV,OAAZyJ,EAAkBD,EAAS/M,MAA2B,MAAZgN,GAAiBD,EAAS3Y,KAAK4Y,EAC/E,CACA,OAAOH,EAAS,IAAME,EAAS5kB,KAAK,KAAMskB,EAC5C,EAKIQ,EAAe,SAAsBroB,EAAMoR,GAC7C,IAAIkX,EAActoB,EAAKuQ,MAAM,KAC3BgY,EAAWD,EAAY,GACvBE,EAAeF,EAAY,GAC3BtW,OAAyB5F,IAAjBoc,EAA6B,GAAKA,EAExCC,EAAkB,IADP9B,EAAW4B,GACW5Z,KAAI,SAAUyZ,GACjD,IAAIlI,EAAQsH,EAAQC,KAAKW,GACzB,OAAOlI,EAAQ9O,EAAO8O,EAAM,IAAMkI,CACpC,IAAG7kB,KAAK,KACJmlB,EAAmBtX,EAAO3O,SAE1BkmB,GADJD,OAAwCtc,IAArBsc,EAAiC,CAAC,EAAIA,GACZxgB,OAEzC0gB,QADiCxc,IAA1Buc,EAAsC,GAAKA,GAC7BpY,MAAM,KAAK,IAAM,GAE1C,OADAkY,EAAkBR,EAASQ,EAAiBzW,EAAO4W,EAErD,EAYIpB,EAAU,SASVqB,EAAY,SAAmBT,GACjC,OAAOZ,EAAQpL,KAAKgM,EACtB,EACId,EAAU,SAAiBc,GAC7B,OAAOA,GAA0B,MAAfA,EAAQ,EAC5B,EACIU,EAAY,SAAmB5X,EAAOiW,GAMxC,MAAO,CACLjW,MAAOA,EACP6X,MAPU7X,EAAMpP,QAAU,EAAI6kB,EAAWzV,EAAMlR,MAAM8O,QAAO,SAAUia,EAAOX,GAG7E,OAFAW,GAhBiB,GAKD,SAAuBX,GACzC,MAAmB,KAAZA,CACT,CAUQY,CAAcZ,GAAwCS,EAAUT,GAAUW,GAf7D,EAe8FzB,EAAQc,GAAUW,GAASE,EAAoCF,GAhB9J,EAgBYA,GAbd,EAcPA,CACT,GAAG,GAID5B,MAAOA,EAEX,EACIL,EAAa,SAAoBR,GACnC,OAAOA,EAAO3X,IAAIma,GAAWI,MAAK,SAAUxS,EAAGgI,GAC7C,OAAOhI,EAAEqS,MAAQrK,EAAEqK,MAAQ,EAAIrS,EAAEqS,MAAQrK,EAAEqK,OAAS,EAAIrS,EAAEyQ,MAAQzI,EAAEyI,KACtE,GACF,EACIR,EAAa,SAAoBJ,GACnC,OAAOA,EAEN9f,QAAQ,eAAgB,IAAI8J,MAAM,IACrC,EACI0X,EAAW,SAAkB9jB,GAC/B,IAAK,IAAIiG,EAAOC,UAAUC,OAAQ0H,EAAQxH,MAAMJ,EAAO,EAAIA,EAAO,EAAI,GAAIK,EAAO,EAAGA,EAAOL,EAAMK,IAC/FuH,EAAMvH,EAAO,GAAKJ,UAAUI,GAK9B,OAAOtG,IAHP6N,EAAQA,EAAM3O,QAAO,SAAU8lB,GAC7B,OAAOA,GAAKA,EAAE7e,OAAS,CACzB,MAC4B0H,EAAM1H,OAAS,EAAI,IAAM0H,EAAMzO,KAAK,KAAO,GACzE,EACImkB,EAAgB,CAAC,MAAO,QCtPxBxJ,EAAW5U,OAAO4N,QAAU,SAAUtR,GACxC,IAAK,IAAI+Y,EAAI,EAAGA,EAAItU,UAAUC,OAAQqU,IAAK,CACzC,IAAIyK,EAAS/e,UAAUsU,GACvB,IAAK,IAAIlV,KAAO2f,EACV9f,OAAOtF,UAAUwB,eAAe1C,KAAKsmB,EAAQ3f,KAC/C7D,EAAO6D,GAAO2f,EAAO3f,GAG3B,CACA,OAAO7D,CACT,EACIyjB,EAAc,SAAqBD,GACrC,IAAIE,EAAmBF,EAAO3mB,SAC5ByF,EAASohB,EAAiBphB,OAC1BC,EAAOmhB,EAAiBnhB,KACxBV,EAAO6hB,EAAiB7hB,KACxB8hB,EAASD,EAAiBC,OAC1B7H,EAAW4H,EAAiB5H,SAC5B8H,EAAOF,EAAiBE,KACxB7H,EAAW2H,EAAiB3H,SAC5B8H,EAAOH,EAAiBG,KACtBtlB,EAAWilB,EAAO3mB,SAAS0B,UAC1BA,GAAYsD,GAAQiiB,IAEvBvlB,EADU,IAAIqM,IAAI/I,GACHtD,UAEjB,MAAO,CACLA,SAAUoD,UAAU8E,UAAUlI,IAC9B+D,OAAQA,EACRC,KAAMA,EACNV,KAAMA,EACN8hB,OAAQA,EACR7H,SAAUA,EACV8H,KAAMA,EACN7H,SAAUA,EACV8H,KAAMA,EACN7lB,MAAOwlB,EAAOvM,QAAQjZ,MACtB6F,IAAK2f,EAAOvM,QAAQjZ,OAASwlB,EAAOvM,QAAQjZ,MAAM6F,KAAO,UAE7D,EACIkgB,EAAgB,SAAuBP,EAAQphB,GACjD,IAAI4hB,EAAY,GACZnnB,EAAW4mB,EAAYD,GACvBS,GAAgB,EAChBC,EAAoB,WAA8B,EACtD,MAAO,CACL,YAAIrnB,GACF,OAAOA,CACT,EACA,iBAAIonB,GACF,OAAOA,CACT,EACAE,sBAAuB,WACrBF,GAAgB,EAChBC,GACF,EACA1K,OAAQ,SAAgB4K,GACtBJ,EAAUpa,KAAKwa,GACf,IAAIC,EAAmB,WACrBxnB,EAAW4mB,EAAYD,GACvBY,EAAS,CACPvnB,SAAUA,EACV4c,OAAQ,OAEZ,EAEA,OADA+J,EAAOnd,iBAAiB,WAAYge,GAC7B,WACLb,EAAO9c,oBAAoB,WAAY2d,GACvCL,EAAYA,EAAUvmB,QAAO,SAAUsf,GACrC,OAAOA,IAAOqH,CAChB,GACF,CACF,EACAvN,SAAU,SAAkBpY,GAC1B,IAAIrD,EAAOqJ,UAAUC,OAAS,QAAsB8B,IAAjB/B,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EzG,EAAQ5C,EAAK4C,MACbsmB,EAAelpB,EAAKyF,QACpBA,OAA2B2F,IAAjB8d,GAAqCA,EACjD,GAAkB,iBAAP7lB,EACT+kB,EAAOvM,QAAQsN,GAAG9lB,OACb,CACLT,EAAQsa,EAAS,CAAC,EAAGta,EAAO,CAC1B6F,IAAKyO,KAAKkS,MAAQ,KAGpB,IACMP,GAAiBpjB,EACnB2iB,EAAOvM,QAAQC,aAAalZ,EAAO,KAAMS,GAEzC+kB,EAAOvM,QAAQwN,UAAUzmB,EAAO,KAAMS,EAE1C,CAAE,MAAOwC,GACPuiB,EAAO3mB,SAASgE,EAAU,UAAY,UAAUpC,EAClD,CACF,CACA5B,EAAW4mB,EAAYD,GACvBS,GAAgB,EAChB,IAAIS,EAAa,IAAIpb,SAAQ,SAAUqb,GACrC,OAAOT,EAAoBS,CAC7B,IAOA,OANAX,EAAUlkB,SAAQ,SAAUskB,GAC1B,OAAOA,EAAS,CACdvnB,SAAUA,EACV4c,OAAQ,QAEZ,IACOiL,CACT,EAEJ,EAIIE,EAAqB,WACvB,IAAIC,EAAcpgB,UAAUC,OAAS,QAAsB8B,IAAjB/B,UAAU,GAAmBA,UAAU,GAAK,IAClF9B,EAAckiB,EAAYpiB,QAAQ,KAClCqiB,EAAkB,CACpBvmB,SAAUoE,GAAe,EAAIkiB,EAAYniB,OAAO,EAAGC,GAAekiB,EAClEviB,OAAQK,GAAe,EAAIkiB,EAAYniB,OAAOC,GAAe,IAE3D4e,EAAQ,EACRwD,EAAQ,CAACD,GACTE,EAAS,CAAC,MACd,MAAO,CACL,YAAInoB,GACF,OAAOkoB,EAAMxD,EACf,EACAlb,iBAAkB,SAA0BiX,EAAMP,GAAK,EACvDrW,oBAAqB,SAA6B4W,EAAMP,GAAK,EAC7D9F,QAAS,CACP,WAAIpX,GACF,OAAOklB,CACT,EACA,SAAIxD,GACF,OAAOA,CACT,EACA,SAAIvjB,GACF,OAAOgnB,EAAOzD,EAChB,EACAkD,UAAW,SAAmBzmB,EAAOkgB,EAAGyC,GACtC,IAAIsE,EAAatE,EAAIhW,MAAM,KACzBpM,EAAW0mB,EAAW,GACtBC,EAAcD,EAAW,GACzB3iB,OAAyBkE,IAAhB0e,EAA4B,GAAKA,EAC5C3D,IACAwD,EAAMnb,KAAK,CACTrL,SAAUA,EACV+D,OAAQA,EAAOoC,OAAS,IAAMpC,EAASA,IAEzC0iB,EAAOpb,KAAK5L,EACd,EACAkZ,aAAc,SAAsBlZ,EAAOkgB,EAAGyC,GAC5C,IAAIwE,EAAcxE,EAAIhW,MAAM,KAC1BpM,EAAW4mB,EAAY,GACvBC,EAAeD,EAAY,GAC3B7iB,OAA0BkE,IAAjB4e,EAA6B,GAAKA,EAC7CL,EAAMxD,GAAS,CACbhjB,SAAUA,EACV+D,OAAQA,GAEV0iB,EAAOzD,GAASvjB,CAClB,EACAumB,GAAI,SAAY9lB,GACd,IAAI4mB,EAAW9D,EAAQ9iB,EACnB4mB,EAAW,GAAKA,EAAWL,EAAOtgB,OAAS,IAG/C6c,EAAQ8D,EACV,GAGN,EAKIvB,IAAiC,oBAAXhmB,SAA0BA,OAAO+H,WAAY/H,OAAO+H,SAASnJ,eAInFgb,EAAgBqM,EAFXD,EAAYhmB,OAAS8mB,KAG1B,EAAWlN,EAAcb,SCrLzB,EAAWnT,OAAO4N,QAAU,SAAUtR,GACxC,IAAK,IAAI+Y,EAAI,EAAGA,EAAItU,UAAUC,OAAQqU,IAAK,CACzC,IAAIyK,EAAS/e,UAAUsU,GACvB,IAAK,IAAIlV,KAAO2f,EACV9f,OAAOtF,UAAUwB,eAAe1C,KAAKsmB,EAAQ3f,KAC/C7D,EAAO6D,GAAO2f,EAAO3f,GAG3B,CACA,OAAO7D,CACT,EACA,SAASslB,EAAyBpiB,EAAKyK,GACrC,IAAI3N,EAAS,CAAC,EACd,IAAK,IAAI+Y,KAAK7V,EACRyK,EAAKlL,QAAQsW,IAAM,GAClBrV,OAAOtF,UAAUwB,eAAe1C,KAAKgG,EAAK6V,KAC/C/Y,EAAO+Y,GAAK7V,EAAI6V,IAElB,OAAO/Y,CACT,CACA,SAAS+P,EAAgB3Q,EAAUmmB,GACjC,KAAMnmB,aAAoBmmB,GACxB,MAAM,IAAIC,UAAU,oCAExB,CACA,SAASC,EAA2BC,EAAMxoB,GACxC,IAAKwoB,EACH,MAAM,IAAIC,eAAe,6DAE3B,OAAOzoB,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BwoB,EAAPxoB,CAC5E,CACA,SAASyX,EAAUiR,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIL,UAAU,kEAAoEK,GAE1FD,EAASxnB,UAAYsF,OAAO8F,OAAOqc,GAAcA,EAAWznB,UAAW,CACrE0nB,YAAa,CACXjf,MAAO+e,EACPG,YAAY,EACZC,UAAU,EACVC,cAAc,KAGdJ,IAAYniB,OAAOwiB,eAAiBxiB,OAAOwiB,eAAeN,EAAUC,GAAcD,EAASO,UAAYN,EAC7G,CAWA,IAAIO,EAAqB,SAA4B9I,EAAM+I,GACzD,IAAIC,GAAM,IAAAjiB,eAAcgiB,GAExB,OADAC,EAAI/hB,YAAc+Y,EACXgJ,CACT,EAIIC,EAAkBH,EAAmB,YAIrCzpB,EAAW,SAAkBvB,GAC/B,IAAI0L,EAAW1L,EAAK0L,SACpB,OAAO,gBAAoByf,EAAgBha,SAAU,MAAM,SAAUG,GACnE,OAAOA,EAAU5F,EAAS4F,GAAW,gBAAoB8Z,EAAkB,KAAM1f,EACnF,GACF,EACI0f,EAAmB,SAAUxpB,GAE/B,SAASwpB,IACP,IAAIC,EAAOxpB,EACX8S,EAAgB5S,KAAMqpB,GACtB,IAAK,IAAIhiB,EAAOC,UAAUC,OAAQC,EAAOC,MAAMJ,GAAOK,EAAO,EAAGA,EAAOL,EAAMK,IAC3EF,EAAKE,GAAQJ,UAAUI,GAEzB,OAAe4hB,EAASxpB,EAAQwoB,EAA2BtoB,KAAMH,EAAiBE,KAAK4H,MAAM9H,EAAkB,CAACG,MAAM4H,OAAOJ,KAAiB1H,EAAMe,MAAQ,CAC1J0O,QAASzP,EAAMypB,aACfC,KAAM,CACJC,SAAU,OAEHnB,EAA2BxoB,EAAnCwpB,EACL,CAyDA,OAtEA9R,EAAU6R,EAAkBxpB,GAc5BwpB,EAAiBpoB,UAAUsoB,WAAa,WACtC,IAAIG,EAAiB1pB,KAAKV,MAAMwa,QAGhC,MAAO,CACLJ,SAHWgQ,EAAehQ,SAI1Bha,SAHWgqB,EAAehqB,SAK9B,EACA2pB,EAAiBpoB,UAAU0oB,kBAAoB,SAA2BlV,EAAOmV,GAC/E,IAAIC,EAAWpV,GAMb,MAAMA,GAJNqV,EADgB9pB,KAAKV,MAAMwa,QAAQJ,UACzBjF,EAAM+O,IAAK,CACnB9f,SAAS,GAKf,EACA2lB,EAAiBpoB,UAAUS,mBAAqB,SAA4BC,EAAWC,GACjFA,EAAU2N,QAAQ7P,WAAaM,KAAKa,MAAM0O,QAAQ7P,UACpDM,KAAKV,MAAMwa,QAAQkN,uBAEvB,EACAqC,EAAiBpoB,UAAUY,kBAAoB,WAC7C,IAAIU,EAASvC,KACTwpB,EAAOxpB,KAAKa,MAAM2oB,KACpB1P,EAAU9Z,KAAKV,MAAMwa,QACvBA,EAAQkN,wBACRwC,EAAKC,SAAW3P,EAAQuC,QAAO,WAC7BlQ,QAAQxN,UAAUuN,MAAK,WAErBhE,uBAAsB,WACf3F,EAAOwnB,WACVxnB,EAAOwZ,UAAS,WACd,MAAO,CACLxM,QAAShN,EAAOgnB,aAEpB,GAEJ,GACF,GACF,GACF,EACAF,EAAiBpoB,UAAUa,qBAAuB,WAChD,IAAI0nB,EAAOxpB,KAAKa,MAAM2oB,KACtBxpB,KAAK+pB,WAAY,EACjBP,EAAKC,UACP,EACAJ,EAAiBpoB,UAAUgC,OAAS,WAClC,IAAIsM,EAAUvP,KAAKa,MAAM0O,QACvB5F,EAAW3J,KAAKV,MAAMqK,SACxB,OAAO,gBAAoByf,EAAgB3f,SAAU,CACnDC,MAAO6F,GACc,mBAAb5F,EAA0BA,EAAS4F,GAAW5F,GAAY,KACtE,EACO0f,CACT,CAxEuB,CAwErB,aAIFA,EAAiBW,aAAe,CAC9BlQ,QAASS,GAGX,IAAI0P,EAAiB,SAAwBxqB,GAC3C,IAAI2Q,EAAM3Q,EAAM2Q,IACdzG,EAAWlK,EAAMkK,SACfnE,EAAc4K,EAAI9K,QAAQ,KAE1BlE,OAAW,EACX+D,EAAS,GAQb,OAVmBK,GAAe,GAKhCpE,EAAWgP,EAAIxH,UAAU,EAAGpD,GAC5BL,EAASiL,EAAIxH,UAAUpD,IAEvBpE,EAAWgP,EAEN,gBAAoBgZ,EAAgB3f,SAAU,CACnDC,MAAO,CACLhK,SAAU,CACR0B,SAAUA,EACV+D,OAAQA,EACRC,KAZK,IAcPsU,SAAU,WACR,MAAM,IAAIhK,MAAM,yCAClB,IAED/F,EACL,EAGI+S,EAAcuM,EAAmB,OAAQ,CAC3CtM,QAAS,IACTC,SAAU,IACVlD,SAAUa,EAAcb,WAKtBsD,EAAS,SAAgB1d,GAC3B,OAAO,gBAAoBod,EAAYtN,SAAU,MAAM,SAAU8a,GAC/D,OAAO,gBAAoB1qB,EAAU,MAAM,SAAU2qB,GACnD,OAAO,gBAAoBC,EAAY,EAAS,CAAC,EAAGF,EAAaC,EAAiB7qB,GACpF,GACF,GACF,EACI8qB,EAAa,SAAUC,GAEzB,SAASD,IAEP,OADAxX,EAAgB5S,KAAMoqB,GACf9B,EAA2BtoB,KAAMqqB,EAAqB1iB,MAAM3H,KAAMsH,WAC3E,CAuEA,OA3EAkQ,EAAU4S,EAAYC,GAKtBD,EAAWnpB,UAAUgC,OAAS,WAC5B,IAAIqnB,EAAStqB,KAAKV,MAChBI,EAAW4qB,EAAO5qB,SAClB6qB,EAAaD,EAAO5Q,SACpBkD,EAAW0N,EAAO1N,SAClB4N,EAAUF,EAAOE,QACjB7gB,EAAW2gB,EAAO3gB,SAElB8gB,GADUH,EAAO3N,QACE2N,EAAOnY,WAC1BA,OAAiC9I,IAArBohB,EAAiC,MAAQA,EACrDC,EAAWvC,EAAyBmC,EAAQ,CAAC,WAAY,WAAY,WAAY,UAAW,WAAY,UAAW,cACjH/G,EAAS,WAAeoH,QAAQhhB,GAAUoC,QAAO,SAAU6e,EAAOC,GACpE,IAAItH,EAASuH,GAAYlO,EAAZkO,CAAsBD,GACnC,OAAOD,EAAMhjB,OAAO2b,EACtB,GAAG,IACCniB,EAAW1B,EAAS0B,SACpB+b,EAAQlP,EAAKsV,EAAQniB,GACzB,GAAI+b,EAAO,CACT,IAAI9O,EAAS8O,EAAM9O,OACjBmV,EAAMrG,EAAMqG,IACZrV,EAAQgP,EAAMhP,MACdvE,EAAUuT,EAAMhP,MAAMzE,MAIxBkT,EAAWzO,EAAMpP,QAAU6d,EAAWzO,EAAMlR,KAAKyG,QAAQ,MAAO,IAChE,IAAIpE,EAAQ,EAAS,CAAC,EAAG+O,EAAQ,CAC/BmV,IAAKA,EACL9jB,SAAUA,EACVga,SAAU,SAAkBpY,EAAI2D,GAC9B,OAAOslB,EAAW5rB,EAAQ2C,EAAIkiB,GAAMve,EACtC,IAEE8lB,EAAQ,eAAmBnhB,EAAStK,EAAOsK,EAAQtK,MAAMqK,SAAW,gBAAoBqT,EAAQ,CAClGtd,SAAUA,EACV8qB,QAASA,GACR5gB,EAAQtK,MAAMqK,eAAYN,GAGzB2hB,EAAeR,EAAUS,EAAe9Y,EAExC+Y,EAAeV,EAAU,EAAS,CACpChH,IAAKA,EACL9jB,SAAUA,EACVyS,UAAWA,GACVuY,GAAYA,EACf,OAAO,gBAAoBhO,EAAYjT,SAAU,CAC/CC,MAAO,CACLiT,QAAS6G,EACT5G,SAAUA,EACVlD,SAAUpa,EAAMoa,WAEjB,gBAAoBsR,EAAcE,EAAcH,GACrD,CAcE,OAAO,IAEX,EACOX,CACT,CA7EiB,CA6Ef,iBACFA,EAAWJ,aAAe,CACxBQ,SAAS,GAEX,IAAIW,EAAelC,EAAmB,SAClCgC,EAAe,SAAsB/qB,GACvC,IAAIsjB,EAAMtjB,EAAMsjB,IACd9jB,EAAWQ,EAAMR,SACjByS,EAAYjS,EAAMiS,UAClBuY,EAAWvC,EAAyBjoB,EAAO,CAAC,MAAO,WAAY,cACjE,OAAO,gBAAoBirB,EAAa/b,SAAU,MAAM,SAAUgc,GAChE,OAAO,gBAAoBC,EAAkB,EAAS,CAAC,EAAGX,EAAU,CAClEvY,UAAWA,EACXiZ,aAAcA,EACd5H,IAAKA,EACL9jB,SAAUA,IAEd,GACF,EAGI4rB,GAAgB,EAChBC,EAAoB,EACpBF,EAAmB,SAAU5P,GAE/B,SAAS4P,IACP,IAAIG,EAAQhX,EACZ5B,EAAgB5S,KAAMqrB,GACtB,IAAK,IAAII,EAAQnkB,UAAUC,OAAQC,EAAOC,MAAMgkB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFlkB,EAAKkkB,GAASpkB,UAAUokB,GAE1B,OAAgBF,EAAUhX,EAAS8T,EAA2BtoB,KAAMyb,EAAkB1b,KAAK4H,MAAM8T,EAAmB,CAACzb,MAAM4H,OAAOJ,KAAkBgN,EAAO3T,MAAQ,CAAC,EAAG2T,EAAO4W,aAAe,SAAU3iB,IAChM+L,EAAO3T,MAAM8qB,aAAeljB,GAC/BA,EAAKmjB,OAET,EAAYtD,EAA2B9T,EAApCgX,EACL,CA2EA,OAvFAhU,EAAU6T,EAAkB5P,GAa5B4P,EAAiBQ,yBAA2B,SAAkClR,EAAW/Y,GAEvF,GAD+B,MAAjBA,EAAU4hB,IAEtB,OAAO,EAAS,CACdmI,aAAa,GACZhR,GAEH,IAAImR,EAAenR,EAAU6I,MAAQ5hB,EAAU4hB,IAC3CuI,EAAkBnqB,EAAUlC,SAAS0B,WAAauZ,EAAUjb,SAAS0B,UAAYuZ,EAAUjb,SAAS0B,WAAauZ,EAAU6I,IAC/H,OAAO,EAAS,CACdmI,YAAaG,GAAgBC,GAC5BpR,EAEP,EACA0Q,EAAiBpqB,UAAUY,kBAAoB,WAC7C0pB,IACAvrB,KAAK4rB,OACP,EACAP,EAAiBpqB,UAAUa,qBAAuB,WAEtB,MAD1BypB,IAEED,GAAgB,EAEpB,EACAD,EAAiBpqB,UAAUS,mBAAqB,SAA4BC,EAAWC,GACjFD,EAAUjC,WAAaM,KAAKV,MAAMI,UAAYM,KAAKa,MAAM8qB,aAC3D3rB,KAAK4rB,OAET,EACAP,EAAiBpqB,UAAU2qB,MAAQ,WAOjC,IAAIR,EAAeprB,KAAKV,MAAM8rB,aAC1BA,EACFA,EAAaprB,KAAKyI,MAEd6iB,EACFA,GAAgB,EACPtrB,KAAKyI,OAGTzI,KAAKyI,KAAKujB,SAAStjB,SAASujB,gBAC/BjsB,KAAKyI,KAAKmjB,QAIlB,EACAP,EAAiBpqB,UAAUgC,OAAS,WAClC,IAAIiT,EAASlW,KACTksB,EAAUlsB,KAAKV,MAEjBmB,GADWyrB,EAAQviB,SACXuiB,EAAQzrB,OAEhB0rB,GADeD,EAAQd,aACHc,EAAQ/Z,WAC5Bia,OAA6B/iB,IAAtB8iB,EAAkC,MAAQA,EAGjDzB,GAFMwB,EAAQ1I,IACH0I,EAAQxsB,SACRyoB,EAAyB+D,EAAS,CAAC,WAAY,QAAS,eAAgB,YAAa,MAAO,cACzG,OAAO,gBAAoBE,EAAM,EAAS,CACxC3rB,MAAO,EAAS,CACd4rB,QAAS,QACR5rB,GACH6rB,SAAU,KACVjqB,IAAK,SAAakqB,GAChB,OAAOrW,EAAOzN,KAAO8jB,CACvB,GACC7B,GAAW,gBAAoBS,EAAa1hB,SAAU,CACvDC,MAAO1J,KAAKorB,cACXprB,KAAKV,MAAMqK,UAChB,EACO0hB,CACT,CAzFuB,CAyFrB,cACF,OAASA,GACT,IAAImB,EAAI,WAAc,EAGlBxnB,EAAa,kBACS,IAAfA,IACTA,EAAa,SAAoBynB,GAC/B,OAAOA,CACT,GAEF,IAAI5oB,EAAOmB,GAAW,SAAUuY,EAAOlb,GACrC,IAAIG,EAAW+a,EAAM/a,SACnBlD,EAAQ6oB,EAAyB5K,EAAO,CAAC,aAC3C,OAAO,gBAAoBb,EAAYtN,SAAU,MAAM,SAAUsd,GAChDA,EAAM9P,SAArB,IACED,EAAU+P,EAAM/P,QAClB,OAAO,gBAAoBnd,EAAU,MAAM,SAAUmtB,GACnD,IAAIjtB,EAAWitB,EAAMjtB,SACnBga,EAAWiT,EAAMjT,SACfpY,EAAKhC,EAAMgC,GACbT,EAAQvB,EAAMuB,MACd6C,EAAUpE,EAAMoE,QAChBkpB,EAAkBttB,EAAM+D,SACxBA,OAA+BgG,IAApBujB,EAAgCJ,EAAII,EAC/CC,EAAc1E,EAAyB7oB,EAAO,CAAC,KAAM,QAAS,UAAW,aACvEoF,EAAO/F,EAAQ2C,EAAIqb,GACnBmQ,EAActoB,UAAUE,GACxBtE,EAAYV,EAAS0B,WAAa0rB,EAClC3sB,EAAqBpC,EAAW2B,EAAS0B,SAAU0rB,GACvD,OAAO,gBAAoB,IAAK,EAAS,CACvCzqB,IAAKA,GAAOG,EACZ,eAAgBpC,EAAY,YAASiJ,GACpCwjB,EAAaxpB,EAAS,CACvBjD,UAAWA,EACXD,mBAAoBA,EACpBuE,KAAMA,EACNhF,SAAUA,IACR,CACFgF,KAAMA,EACNnB,QAAS,SAAiB6V,GAExB,GADIyT,EAAYtpB,SAASspB,EAAYtpB,QAAQ6V,GACzC2T,GAAe3T,GAAQ,CACzBA,EAAM9U,iBACN,IAAIC,EAAgBb,EACpB,GAAuB,kBAAZA,GAAyBtD,EAAW,CAC7C,IAAI4sB,EAAkB,EAAS,CAAC,EAAGttB,EAASmB,OAE1CosB,GADMD,EAAgBtmB,IACVyhB,EAAyB6E,EAAiB,CAAC,SFrL1BE,EEsLA,EAAS,CAAC,EAAGrsB,GFtLPssB,EEsLeF,EAApD1oB,GFrLR6oB,EAAW7mB,OAAOiK,KAAK0c,IACX3lB,SAAWhB,OAAOiK,KAAK2c,GAAM5lB,QAAU6lB,EAASC,OAAM,SAAU3mB,GAC9E,OAAOymB,EAAK1qB,eAAeiE,IAAQwmB,EAAKxmB,KAASymB,EAAKzmB,EACxD,GEmLU,CACAgT,EAAShV,EAAM,CACb7D,MAAOA,EACP6C,QAASa,GAEb,CF5LW,IAAwB2oB,EAAMC,EAC7CC,CE4LE,IAEJ,GACF,GACF,IAKA,SAASE,EAAgB9J,GACvBxjB,KAAKwjB,IAAMA,CACb,CANA3f,EAAKuD,YAAc,OAOnB,IAAIyiB,EAAa,SAAoB0D,GACnC,OAAOA,aAAaD,CACtB,EACIE,EAAa,SAAoBlsB,GACnC,MAAM,IAAIgsB,EAAgBhsB,EAC5B,EACImsB,EAAe,SAAUC,GAE3B,SAASD,IAEP,OADA7a,EAAgB5S,KAAMytB,GACfnF,EAA2BtoB,KAAM0tB,EAAkB/lB,MAAM3H,KAAMsH,WACxE,CAoCA,OAxCAkQ,EAAUiW,EAAcC,GAOxBD,EAAaxsB,UAAUY,kBAAoB,WACzC,IAAI8rB,EAAU3tB,KAAKV,MACjBoa,EAAWiU,EAAQjU,SACnBpY,EAAKqsB,EAAQrsB,GAEbssB,GADOD,EAAQE,KACGF,EAAQjqB,SAC1BA,OAA8B2F,IAApBukB,GAAuCA,EACjD/sB,EAAQ8sB,EAAQ9sB,MAEhB8b,GADUgR,EAAQG,QACRH,EAAQhR,SAClBrd,EAAQ6oB,EAAyBwF,EAAS,CAAC,WAAY,KAAM,OAAQ,UAAW,QAAS,UAAW,YACtGxhB,QAAQxN,UAAUuN,MAAK,WACrB,IAAI6hB,EAAapvB,EAAQ2C,EAAIqb,GAC7BjD,EAAS4L,EAAayI,EAAYzuB,GAAQ,CACxCoE,QAASA,EACT7C,MAAOA,GAEX,GACF,EACA4sB,EAAaxsB,UAAUgC,OAAS,WAC9B,IAAI+qB,EAAUhuB,KAAKV,MAEjBgC,GADW0sB,EAAQtU,SACdsU,EAAQ1sB,IAIbwsB,GAHOE,EAAQH,KACLG,EAAQtqB,QACVsqB,EAAQntB,MACNmtB,EAAQF,SAClBnR,EAAUqR,EAAQrR,QAClBrd,EAAQ6oB,EAAyB6F,EAAS,CAAC,WAAY,KAAM,OAAQ,UAAW,QAAS,UAAW,YAClGD,EAAapvB,EAAQ2C,EAAIqb,GAE7B,OADKmR,GAASN,EAAWlI,EAAayI,EAAYzuB,IAC3C,IACT,EACOmuB,CACT,CA1CmB,CA0CjB,aACEQ,EAAW,SAAkB3uB,GAC/B,OAAO,gBAAoBod,EAAYtN,SAAU,MAAM,SAAU8e,GAC/D,IAAIvR,EAAUuR,EAAMvR,QACpB,OAAO,gBAAoBnd,EAAU,MAAM,SAAU2qB,GACnD,OAAO,gBAAoBsD,EAAc,EAAS,CAAC,EAAGtD,EAAiB,CACrExN,QAASA,GACRrd,GACL,GACF,GACF,EAII6uB,EAAQ,SAAeC,GACzB,IAAInxB,EAAOmxB,EAAMnxB,KACf0M,EAAWykB,EAAMzkB,SACnB,OAAO,gBAAoB+S,EAAYtN,SAAU,MAAM,SAAUif,GAC/D,IAAI1R,EAAU0R,EAAM1R,QACpB,OAAO,gBAAoBnd,EAAU,MAAM,SAAU8uB,GACnD,IAAI5U,EAAW4U,EAAO5U,SACpBha,EAAW4uB,EAAO5uB,SAChB6uB,EAAe5vB,EAAQ1B,EAAM0f,GAC7B9Q,EAASsR,EAAMoR,EAAc7uB,EAAS0B,UAC1C,OAAOuI,EAAS,CACd+P,SAAUA,EACVha,SAAUA,EACVyd,MAAOtR,EAAS,EAAS,CAAC,EAAGA,EAAOwC,OAAQ,CAC1CmV,IAAK3X,EAAO2X,IACZvmB,KAAMA,IACH,MAET,GACF,GACF,EAKIwN,GAAc,WAChB,IAAI8E,GAAU,IAAA7E,YAAW0e,GACzB,IAAK7Z,EACH,MAAM,IAAIG,MAAM,8JAElB,OAAOH,EAAQ7P,QACjB,EACI8uB,GAAc,WAChB,IAAIjf,GAAU,IAAA7E,YAAWgS,GACzB,IAAKnN,EACH,MAAM,IAAIG,MAAM,0JAElB,OAAOH,EAAQmK,QACjB,EACI+U,GAAY,WACd,IAAIlf,GAAU,IAAA7E,YAAWgS,GACzB,IAAKnN,EACH,MAAM,IAAIG,MAAM,4JAElB,IAAIhQ,EAAW+K,KACXkB,EAAUwR,EAAM5N,EAAQqN,SAAUld,EAAS0B,UAC/C,OAAOuK,EAAUA,EAAQ0C,OAAS,IACpC,EACIqgB,GAAW,SAAkBzxB,GAC/B,IAAKA,EACH,MAAM,IAAIyS,MAAM,4EAElB,IAAIH,GAAU,IAAA7E,YAAWgS,GACzB,IAAKnN,EACH,MAAM,IAAIG,MAAM,2JAElB,IAAIhQ,EAAW+K,KACX8jB,EAAe5vB,EAAQ1B,EAAMsS,EAAQoN,SACrC9Q,EAASsR,EAAMoR,EAAc7uB,EAAS0B,UAC1C,OAAOyK,EAAS,EAAS,CAAC,EAAGA,EAAOwC,OAAQ,CAC1CmV,IAAK3X,EAAO2X,IACZvmB,KAAMA,IACH,IACP,EAII0xB,GAAe,SAAsBvP,GACvC,OAAOA,EAAI1b,QAAQ,eAAgB,GACrC,EACIonB,GAAc,SAASA,EAAYlO,GACrC,OAAO,SAAUhT,GACf,IAAKA,EACH,OAAO,KAET,GAAIA,EAAQ2C,OAAS,YAAkB3C,EAAQtK,MAAMqK,SACnD,OAAO,WAAeiC,IAAIhC,EAAQtK,MAAMqK,SAAUmhB,EAAYlO,IFnZ7C,IAA0BiR,EAAMvsB,EACjDhB,EEuZF,GAHEsJ,EAAQtK,MAAMrC,MAAQ2M,EAAQtK,MAAMP,SAAW6K,EAAQ2C,OAAS0hB,GAAuN,KAAU,GAChSrkB,EAAQ2C,OAAS0hB,GAAcrkB,EAAQtK,MAAMuuB,MAASjkB,EAAQtK,MAAMgC,IAAqN,KAAU,GACnSsI,EAAQ2C,OAAS0hB,IFvZyBJ,EEuZKjkB,EAAQtK,MAAMuuB,KFvZbvsB,EEuZmBsI,EAAQtK,MAAMgC,GFtZlFhB,EAAS,SAAgB+kB,GAC3B,OAAOS,EAAUT,EACnB,EACiBzB,EAAWiK,GAAMvtB,OAAOA,GAAQ6lB,OAAO3lB,KAAK,OAC9CojB,EAAWtiB,GAAIhB,OAAOA,GAAQ6lB,OAAO3lB,KAAK,OEkZyQ,KAAU,GACtUoJ,EAAQtK,MAAMP,QAChB,MAAO,CACL2K,MAAOE,EACP7K,SAAS,GAGb,IAAI6vB,EAAchlB,EAAQ2C,OAAS0hB,EAAWrkB,EAAQtK,MAAMuuB,KAAOjkB,EAAQtK,MAAMrC,KAC7EA,EAAuB,MAAhB2xB,EAAsBhS,EAAW+R,GAAa/R,GAAY,IAAM+R,GAAaC,GACxF,MAAO,CACLllB,MAAOE,EACP7K,QAAS6K,EAAQtK,MAAMP,QACvB9B,KAAM2M,EAAQtK,MAAMqK,SAAWglB,GAAa1xB,GAAQ,KAAOA,EAE/D,CACF,EACI8vB,GAAiB,SAAwB3T,GAC3C,OAAQA,EAAMnV,kBAAqC,IAAjBmV,EAAMpV,UAAkBoV,EAAMlV,SAAWkV,EAAMjV,QAAUiV,EAAMhV,SAAWgV,EAAM/U,SACpH,C,mCCnmBA,IAAI8W,EAAW5U,OAAO4N,QAAU,SAAUtR,GACxC,IAAK,IAAI+Y,EAAI,EAAGA,EAAItU,UAAUC,OAAQqU,IAAK,CACzC,IAAIyK,EAAS/e,UAAUsU,GACvB,IAAK,IAAIlV,KAAO2f,EACV9f,OAAOtF,UAAUwB,eAAe1C,KAAKsmB,EAAQ3f,KAC/C7D,EAAO6D,GAAO2f,EAAO3f,GAG3B,CACA,OAAO7D,CACT,EACIyjB,EAAc,SAAqBD,GACrC,IAAIE,EAAmBF,EAAO3mB,SAC5ByF,EAASohB,EAAiBphB,OAC1BC,EAAOmhB,EAAiBnhB,KACxBV,EAAO6hB,EAAiB7hB,KACxB8hB,EAASD,EAAiBC,OAC1B7H,EAAW4H,EAAiB5H,SAC5B8H,EAAOF,EAAiBE,KACxB7H,EAAW2H,EAAiB3H,SAC5B8H,EAAOH,EAAiBG,KACtBtlB,EAAWilB,EAAO3mB,SAAS0B,UAC1BA,GAAYsD,GAAQiiB,IAEvBvlB,EADU,IAAIqM,IAAI/I,GACHtD,UAEjB,MAAO,CACLA,SAAUoD,UAAU8E,UAAUlI,IAC9B+D,OAAQA,EACRC,KAAMA,EACNV,KAAMA,EACN8hB,OAAQA,EACR7H,SAAUA,EACV8H,KAAMA,EACN7H,SAAUA,EACV8H,KAAMA,EACN7lB,MAAOwlB,EAAOvM,QAAQjZ,MACtB6F,IAAK2f,EAAOvM,QAAQjZ,OAASwlB,EAAOvM,QAAQjZ,MAAM6F,KAAO,UAE7D,EACIkgB,EAAgB,SAAuBP,EAAQphB,GACjD,IAAI4hB,EAAY,GACZnnB,EAAW4mB,EAAYD,GACvBS,GAAgB,EAChBC,EAAoB,WAA8B,EACtD,MAAO,CACL,YAAIrnB,GACF,OAAOA,CACT,EACA,iBAAIonB,GACF,OAAOA,CACT,EACAE,sBAAuB,WACrBF,GAAgB,EAChBC,GACF,EACA1K,OAAQ,SAAgB4K,GACtBJ,EAAUpa,KAAKwa,GACf,IAAIC,EAAmB,WACrBxnB,EAAW4mB,EAAYD,GACvBY,EAAS,CACPvnB,SAAUA,EACV4c,OAAQ,OAEZ,EAEA,OADA+J,EAAOnd,iBAAiB,WAAYge,GAC7B,WACLb,EAAO9c,oBAAoB,WAAY2d,GACvCL,EAAYA,EAAUvmB,QAAO,SAAUsf,GACrC,OAAOA,IAAOqH,CAChB,GACF,CACF,EACAvN,SAAU,SAAkBpY,GAC1B,IAAIrD,EAAOqJ,UAAUC,OAAS,QAAsB8B,IAAjB/B,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EzG,EAAQ5C,EAAK4C,MACbsmB,EAAelpB,EAAKyF,QACpBA,OAA2B2F,IAAjB8d,GAAqCA,EACjD,GAAkB,iBAAP7lB,EACT+kB,EAAOvM,QAAQsN,GAAG9lB,OACb,CACLT,EAAQsa,EAAS,CAAC,EAAGta,EAAO,CAC1B6F,IAAKyO,KAAKkS,MAAQ,KAGpB,IACMP,GAAiBpjB,EACnB2iB,EAAOvM,QAAQC,aAAalZ,EAAO,KAAMS,GAEzC+kB,EAAOvM,QAAQwN,UAAUzmB,EAAO,KAAMS,EAE1C,CAAE,MAAOwC,GACPuiB,EAAO3mB,SAASgE,EAAU,UAAY,UAAUpC,EAClD,CACF,CACA5B,EAAW4mB,EAAYD,GACvBS,GAAgB,EAChB,IAAIS,EAAa,IAAIpb,SAAQ,SAAUqb,GACrC,OAAOT,EAAoBS,CAC7B,IAOA,OANAX,EAAUlkB,SAAQ,SAAUskB,GAC1B,OAAOA,EAAS,CACdvnB,SAAUA,EACV4c,OAAQ,QAEZ,IACOiL,CACT,EAEJ,EAIIE,EAAqB,WACvB,IAAIC,EAAcpgB,UAAUC,OAAS,QAAsB8B,IAAjB/B,UAAU,GAAmBA,UAAU,GAAK,IAClF9B,EAAckiB,EAAYpiB,QAAQ,KAClCqiB,EAAkB,CACpBvmB,SAAUoE,GAAe,EAAIkiB,EAAYniB,OAAO,EAAGC,GAAekiB,EAClEviB,OAAQK,GAAe,EAAIkiB,EAAYniB,OAAOC,GAAe,IAE3D4e,EAAQ,EACRwD,EAAQ,CAACD,GACTE,EAAS,CAAC,MACd,MAAO,CACL,YAAInoB,GACF,OAAOkoB,EAAMxD,EACf,EACAlb,iBAAkB,SAA0BiX,EAAMP,GAAK,EACvDrW,oBAAqB,SAA6B4W,EAAMP,GAAK,EAC7D9F,QAAS,CACP,WAAIpX,GACF,OAAOklB,CACT,EACA,SAAIxD,GACF,OAAOA,CACT,EACA,SAAIvjB,GACF,OAAOgnB,EAAOzD,EAChB,EACAkD,UAAW,SAAmBzmB,EAAOkgB,EAAGyC,GACtC,IAAIsE,EAAatE,EAAIhW,MAAM,KACzBpM,EAAW0mB,EAAW,GACtBC,EAAcD,EAAW,GACzB3iB,OAAyBkE,IAAhB0e,EAA4B,GAAKA,EAC5C3D,IACAwD,EAAMnb,KAAK,CACTrL,SAAUA,EACV+D,OAAQA,EAAOoC,OAAS,IAAMpC,EAASA,IAEzC0iB,EAAOpb,KAAK5L,EACd,EACAkZ,aAAc,SAAsBlZ,EAAOkgB,EAAGyC,GAC5C,IAAIwE,EAAcxE,EAAIhW,MAAM,KAC1BpM,EAAW4mB,EAAY,GACvBC,EAAeD,EAAY,GAC3B7iB,OAA0BkE,IAAjB4e,EAA6B,GAAKA,EAC7CL,EAAMxD,GAAS,CACbhjB,SAAUA,EACV+D,OAAQA,GAEV0iB,EAAOzD,GAASvjB,CAClB,EACAumB,GAAI,SAAY9lB,GACd,IAAI4mB,EAAW9D,EAAQ9iB,EACnB4mB,EAAW,GAAKA,EAAWL,EAAOtgB,OAAS,IAG/C6c,EAAQ8D,EACV,GAGN,EAKIvB,IAAiC,oBAAXhmB,SAA0BA,OAAO+H,WAAY/H,OAAO+H,SAASnJ,eAInFgb,EAAgBqM,EAFXD,EAAYhmB,OAAS8mB,KAG1B/N,EAAWa,EAAcb,SAI7B3c,EAAQ,GAAgBwd,C,qCC1LxBxd,EAAQmI,YAAa,EACrBnI,EAAQkf,eAAiBlf,EAAQ8xB,iBAAmB9xB,EAAQuoB,aAAevoB,EAAQ4B,QAAU5B,EAAQogB,MAAQpgB,EAAQkR,KAAOlR,EAAQgB,gBAAasL,EACjJ,IAEgCtD,EAF5B+oB,EAAa,EAAQ,OACrBC,GAC4BhpB,EADS+oB,IAEzB/oB,EAAIb,WAAaa,EAAM,CACnChH,QAASgH,GAMb,IAAIhI,EAAa,SAAoBiB,EAAQmG,GAC3C,OAAOnG,EAAOuG,OAAO,EAAGJ,EAAOoC,UAAYpC,CAC7C,EAuBI8I,EAAO,SAAcsV,EAAQC,GAQ/B,IAPA,IAAIrG,OAAQ,EACRsG,OAAW,EAEbC,EADeF,EAAIhW,MAAM,KACA,GACvBmW,EAAcC,EAAWF,GACzBG,EAA+B,KAAnBF,EAAY,GACxBG,EAASC,EAAWR,GACf3H,EAAI,EAAGoI,EAAIF,EAAOvc,OAAQqU,EAAIoI,EAAGpI,IAAK,CAC7C,IAAIqI,GAAS,EACT9V,EAAQ2V,EAAOlI,GAAGzN,MACtB,GAAIA,EAAMpP,QACR0kB,EAAW,CACTtV,MAAOA,EACPE,OAAQ,CAAC,EACTmV,IAAKA,OAJT,CAYA,IAJA,IAAIU,EAAgBN,EAAWzV,EAAMlR,MACjCoR,EAAS,CAAC,EACV8V,EAAM7D,KAAK6D,IAAIR,EAAYpc,OAAQ2c,EAAc3c,QACjD6c,EAAQ,EACLA,EAAQD,EAAKC,IAAS,CAC3B,IAAIC,EAAeH,EAAcE,GAC7BE,EAAaX,EAAYS,GAC7B,GAAIG,EAAQF,GAAe,CAKzBhW,EADYgW,EAAa9lB,MAAM,IAAM,KACrBolB,EAAYplB,MAAM6lB,GAAOxY,IAAIyB,oBAAoB7M,KAAK,KACtE,KACF,CACA,QAAmB6I,IAAfib,EAA0B,CAI5BL,GAAS,EACT,KACF,CACA,IAAIO,EAAeC,EAAQC,KAAKL,GAChC,GAAIG,IAAiBX,EAAW,EACuC,IAA5Cc,EAAcrf,QAAQkf,EAAa,MAC4K,EAAIuK,EAAYhwB,UAAS,GACjQ,IAAI2K,EAAQ2D,mBAAmBiX,GAC/BjW,EAAOmW,EAAa,IAAM9a,CAC5B,MAAO,GAAI2a,IAAiBC,EAAY,CAItCL,GAAS,EACT,KACF,CACF,CACA,IAAKA,EAAQ,CACX9G,EAAQ,CACNhP,MAAOA,EACPE,OAAQA,EACRmV,IAAK,IAAMG,EAAYplB,MAAM,EAAG6lB,GAAO5jB,KAAK,MAE9C,KACF,CA5CA,CA6CF,CACA,OAAO2c,GAASsG,GAAY,IAC9B,EA0GIgB,EAAU,SASVqB,EAAY,SAAmBT,GACjC,OAAOZ,EAAQpL,KAAKgM,EACtB,EACId,EAAU,SAAiBc,GAC7B,OAAOA,GAA0B,MAAfA,EAAQ,EAC5B,EACIU,EAAY,SAAmB5X,EAAOiW,GAMxC,MAAO,CACLjW,MAAOA,EACP6X,MAPU7X,EAAMpP,QAAU,EAAI6kB,EAAWzV,EAAMlR,MAAM8O,QAAO,SAAUia,EAAOX,GAG7E,OAFAW,GAhBiB,GAKD,SAAuBX,GACzC,MAAmB,KAAZA,CACT,CAUQY,CAAcZ,GAAwCS,EAAUT,GAAUW,GAf7D,EAe8FzB,EAAQc,GAAUW,GAASE,EAAoCF,GAhB9J,EAgBYA,GAbd,EAcPA,CACT,GAAG,GAID5B,MAAOA,EAEX,EACIL,EAAa,SAAoBR,GACnC,OAAOA,EAAO3X,IAAIma,GAAWI,MAAK,SAAUxS,EAAGgI,GAC7C,OAAOhI,EAAEqS,MAAQrK,EAAEqK,MAAQ,EAAIrS,EAAEqS,MAAQrK,EAAEqK,OAAS,EAAIrS,EAAEyQ,MAAQzI,EAAEyI,KACtE,GACF,EACIR,EAAa,SAAoBJ,GACnC,OAAOA,EAEN9f,QAAQ,eAAgB,IAAI8J,MAAM,IACrC,EACI0X,EAAW,SAAkB9jB,GAC/B,IAAK,IAAIiG,EAAOC,UAAUC,OAAQ0H,EAAQxH,MAAMJ,EAAO,EAAIA,EAAO,EAAI,GAAIK,EAAO,EAAGA,EAAOL,EAAMK,IAC/FuH,EAAMvH,EAAO,GAAKJ,UAAUI,GAK9B,OAAOtG,IAHP6N,EAAQA,EAAM3O,QAAO,SAAU8lB,GAC7B,OAAOA,GAAKA,EAAE7e,OAAS,CACzB,MAC4B0H,EAAM1H,OAAS,EAAI,IAAM0H,EAAMzO,KAAK,KAAO,GACzE,EACImkB,EAAgB,CAAC,MAAO,QAe5B5nB,EAAQgB,WAAaA,EACrBhB,EAAQkR,KAAOA,EACflR,EAAQogB,MArKI,SAAelgB,EAAMumB,GAC/B,OAAOvV,EAAK,CAAC,CACXhR,KAAMA,IACJumB,EACN,EAkKAzmB,EAAQ4B,QAtIM,SAAiB2C,EAAIjD,GAEjC,GAAIN,EAAWuD,EAAI,KACjB,OAAOA,EAET,IAAIsjB,EAAYtjB,EAAGkM,MAAM,KACvBqX,EAAaD,EAAU,GACvBE,EAAUF,EAAU,GAEpBG,EADgB1mB,EAAKmP,MAAM,KACA,GACzBwX,EAAapB,EAAWiB,GACxBI,EAAerB,EAAWmB,GAG9B,GAAsB,KAAlBC,EAAW,GACb,OAAOE,EAASH,EAAcD,GAIhC,IAAK/mB,EAAWinB,EAAW,GAAI,KAAM,CACnC,IAAI5jB,EAAW6jB,EAAard,OAAOod,GAAYxkB,KAAK,KACpD,OAAO0kB,GAA2B,MAAjBH,EAAuB,GAAK,KAAO3jB,EAAU0jB,EAChE,CASA,IAFA,IAAIK,EAAcF,EAAard,OAAOod,GAClCI,EAAW,GACNxJ,EAAI,EAAGoI,EAAImB,EAAY5d,OAAQqU,EAAIoI,EAAGpI,IAAK,CAClD,IAAIyJ,EAAUF,EAAYvJ,GACV,OAAZyJ,EAAkBD,EAAS/M,MAA2B,MAAZgN,GAAiBD,EAAS3Y,KAAK4Y,EAC/E,CACA,OAAOH,EAAS,IAAME,EAAS5kB,KAAK,KAAMskB,EAC5C,EAmGA/nB,EAAQuoB,aA9FW,SAAsBroB,EAAMoR,GAC7C,IAAIkX,EAActoB,EAAKuQ,MAAM,KAC3BgY,EAAWD,EAAY,GACvBE,EAAeF,EAAY,GAC3BtW,OAAyB5F,IAAjBoc,EAA6B,GAAKA,EAExCC,EAAkB,IADP9B,EAAW4B,GACW5Z,KAAI,SAAUyZ,GACjD,IAAIlI,EAAQsH,EAAQC,KAAKW,GACzB,OAAOlI,EAAQ9O,EAAO8O,EAAM,IAAMkI,CACpC,IAAG7kB,KAAK,KACJmlB,EAAmBtX,EAAO3O,SAE1BkmB,GADJD,OAAwCtc,IAArBsc,EAAiC,CAAC,EAAIA,GACZxgB,OAEzC0gB,QADiCxc,IAA1Buc,EAAsC,GAAKA,GAC7BpY,MAAM,KAAK,IAAM,GAE1C,OADAkY,EAAkBR,EAASQ,EAAiBzW,EAAO4W,EAErD,EA8EA9oB,EAAQ8xB,iBA7Ee,SAA0BhB,EAAMvsB,GACrD,IAAIhB,EAAS,SAAgB+kB,GAC3B,OAAOS,EAAUT,EACnB,EAGA,OAFiBzB,EAAWiK,GAAMvtB,OAAOA,GAAQ6lB,OAAO3lB,KAAK,OAC9CojB,EAAWtiB,GAAIhB,OAAOA,GAAQ6lB,OAAO3lB,KAAK,IAE3D,EAuEAzD,EAAQkf,eAda,SAAwBiR,EAAMC,GACjD,IAAIC,EAAW7mB,OAAOiK,KAAK0c,GAC3B,OAAOE,EAAS7lB,SAAWhB,OAAOiK,KAAK2c,GAAM5lB,QAAU6lB,EAASC,OAAM,SAAU3mB,GAC9E,OAAOymB,EAAK1qB,eAAeiE,IAAQwmB,EAAKxmB,KAASymB,EAAKzmB,EACxD,GACF,C,iCC1QAsE,EAAOjO,QAAUwJ,OAAO4N,M,iCC8CxBnJ,EAAOjO,QA5BS,SAASiyB,EAAWC,EAAQtb,EAAGgI,EAAGuT,EAAGC,EAAGrrB,EAAGsrB,GAOzD,IAAKJ,EAAW,CACd,IAAIva,EACJ,QAAepL,IAAX4lB,EACFxa,EAAQ,IAAI/E,MACV,qIAGG,CACL,IAAIlI,EAAO,CAACmM,EAAGgI,EAAGuT,EAAGC,EAAGrrB,EAAGsrB,GACvBC,EAAW,GACf5a,EAAQ,IAAI/E,MACVuf,EAAOvrB,QAAQ,OAAO,WAAa,OAAO8D,EAAK6nB,IAAa,MAExDlP,KAAO,qBACf,CAGA,MADA1L,EAAM6a,YAAc,EACd7a,CACR,CACF,C,oBC1CAzJ,EAAOjO,QAJP,SAAgC+G,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAI0kB,eAAe,6DAC3C,OAAO1kB,CACT,EACyCkH,EAAOjO,QAAQmI,YAAa,EAAM8F,EAAOjO,QAAiB,QAAIiO,EAAOjO,O,oBCJ9G,SAASoe,IACP,OAAOnQ,EAAOjO,QAAUoe,EAAW5U,OAAO4N,OAAS5N,OAAO4N,OAAOpT,OAAS,SAAUwrB,GAClF,IAAK,IAAIzoB,EAAI,EAAGA,EAAIwD,UAAUC,OAAQzD,IAAK,CACzC,IAAIyrB,EAAIjoB,UAAUxD,GAClB,IAAK,IAAI0rB,KAAKD,GAAG,CAAG,GAAE9sB,eAAe1C,KAAKwvB,EAAGC,KAAOjD,EAAEiD,GAAKD,EAAEC,GAC/D,CACA,OAAOjD,CACT,EAAGvhB,EAAOjO,QAAQmI,YAAa,EAAM8F,EAAOjO,QAAiB,QAAIiO,EAAOjO,QAASoe,EAASxT,MAAM,KAAML,UACxG,CACA0D,EAAOjO,QAAUoe,EAAUnQ,EAAOjO,QAAQmI,YAAa,EAAM8F,EAAOjO,QAAiB,QAAIiO,EAAOjO,O,uBCThG,IAAIgsB,EAAiB,EAAQ,OAI7B/d,EAAOjO,QAHP,SAAwBwyB,EAAGhC,GACzBgC,EAAEtuB,UAAYsF,OAAO8F,OAAOkhB,EAAEtsB,WAAYsuB,EAAEtuB,UAAU0nB,YAAc4G,EAAGxG,EAAewG,EAAGhC,EAC3F,EACiCviB,EAAOjO,QAAQmI,YAAa,EAAM8F,EAAOjO,QAAiB,QAAIiO,EAAOjO,O,oBCCtGiO,EAAOjO,QALP,SAAgC+G,GAC9B,OAAOA,GAAKA,EAAEoB,WAAapB,EAAI,CAC7B,QAAWA,EAEf,EACyCkH,EAAOjO,QAAQmI,YAAa,EAAM8F,EAAOjO,QAAiB,QAAIiO,EAAOjO,O,oBCI9GiO,EAAOjO,QATP,SAAuCyyB,EAAG1rB,GACxC,GAAI,MAAQ0rB,EAAG,MAAO,CAAC,EACvB,IAAID,EAAI,CAAC,EACT,IAAK,IAAIhD,KAAKiD,EAAG,GAAI,CAAC,EAAE/sB,eAAe1C,KAAKyvB,EAAGjD,GAAI,CACjD,GAAIzoB,EAAEiS,SAASwW,GAAI,SACnBgD,EAAEhD,GAAKiD,EAAEjD,EACX,CACA,OAAOgD,CACT,EACgDvkB,EAAOjO,QAAQmI,YAAa,EAAM8F,EAAOjO,QAAiB,QAAIiO,EAAOjO,O,oBCTrH,SAAS0yB,EAAgBF,EAAGzrB,GAC1B,OAAOkH,EAAOjO,QAAU0yB,EAAkBlpB,OAAOwiB,eAAiBxiB,OAAOwiB,eAAehoB,OAAS,SAAUwuB,EAAGzrB,GAC5G,OAAOyrB,EAAEvG,UAAYllB,EAAGyrB,CAC1B,EAAGvkB,EAAOjO,QAAQmI,YAAa,EAAM8F,EAAOjO,QAAiB,QAAIiO,EAAOjO,QAAS0yB,EAAgBF,EAAGzrB,EACtG,CACAkH,EAAOjO,QAAU0yB,EAAiBzkB,EAAOjO,QAAQmI,YAAa,EAAM8F,EAAOjO,QAAiB,QAAIiO,EAAOjO,O","sources":["webpack://bubble-corporate-site/./node_modules/gatsby-link/index.js","webpack://bubble-corporate-site/./node_modules/gatsby-link/parse-path.js","webpack://bubble-corporate-site/./node_modules/gatsby-react-router-scroll/index.js","webpack://bubble-corporate-site/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://bubble-corporate-site/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://bubble-corporate-site/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://bubble-corporate-site/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://bubble-corporate-site/./.cache/api-runner-browser-plugins.js","webpack://bubble-corporate-site/./.cache/api-runner-browser.js","webpack://bubble-corporate-site/./node_modules/mitt/dist/mitt.es.js","webpack://bubble-corporate-site/./.cache/emitter.js","webpack://bubble-corporate-site/./.cache/normalize-page-path.js","webpack://bubble-corporate-site/./.cache/find-path.js","webpack://bubble-corporate-site/./.cache/gatsby-browser-entry.js","webpack://bubble-corporate-site/./.cache/prefetch.js","webpack://bubble-corporate-site/./.cache/loader.js","webpack://bubble-corporate-site/./.cache/page-renderer.js","webpack://bubble-corporate-site/./.cache/route-announcer-props.js","webpack://bubble-corporate-site/./.cache/navigation.js","webpack://bubble-corporate-site/./node_modules/shallow-compare/es/index.js","webpack://bubble-corporate-site/./.cache/ensure-resources.js","webpack://bubble-corporate-site/./.cache/production-app.js","webpack://bubble-corporate-site/./.cache/public-page-renderer-prod.js","webpack://bubble-corporate-site/./.cache/public-page-renderer.js","webpack://bubble-corporate-site/./.cache/react-lifecycles-compat.js","webpack://bubble-corporate-site/./.cache/redirect-utils.js","webpack://bubble-corporate-site/./.cache/register-service-worker.js","webpack://bubble-corporate-site/./.cache/strip-prefix.js","webpack://bubble-corporate-site/./gatsby-browser.js","webpack://bubble-corporate-site/./node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js","webpack://bubble-corporate-site/./node_modules/gatsby-plugin-hubspot/default-options.js","webpack://bubble-corporate-site/./node_modules/gatsby-plugin-hubspot/gatsby-browser.js","webpack://bubble-corporate-site/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://bubble-corporate-site/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://bubble-corporate-site/./src/utils/auth.js","webpack://bubble-corporate-site/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://bubble-corporate-site/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://bubble-corporate-site/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://bubble-corporate-site/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://bubble-corporate-site/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://bubble-corporate-site/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://bubble-corporate-site/./node_modules/invariant/browser.js","webpack://bubble-corporate-site/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://bubble-corporate-site/./node_modules/@babel/runtime/helpers/extends.js","webpack://bubble-corporate-site/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://bubble-corporate-site/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://bubble-corporate-site/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://bubble-corporate-site/./node_modules/@babel/runtime/helpers/setPrototypeOf.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\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\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-about-js\": () => import(\"./../../../src/pages/about.js\" /* webpackChunkName: \"component---src-pages-about-js\" */),\n \"component---src-pages-accessibility-js\": () => import(\"./../../../src/pages/accessibility.js\" /* webpackChunkName: \"component---src-pages-accessibility-js\" */),\n \"component---src-pages-account-js\": () => import(\"./../../../src/pages/account.js\" /* webpackChunkName: \"component---src-pages-account-js\" */),\n \"component---src-pages-askdoss-js\": () => import(\"./../../../src/pages/askdoss.js\" /* webpackChunkName: \"component---src-pages-askdoss-js\" */),\n \"component---src-pages-auto-insurance-js\": () => import(\"./../../../src/pages/auto-insurance.js\" /* webpackChunkName: \"component---src-pages-auto-insurance-js\" */),\n \"component---src-pages-auto-insurance-nationwide-js\": () => import(\"./../../../src/pages/auto-insurance/nationwide.js\" /* webpackChunkName: \"component---src-pages-auto-insurance-nationwide-js\" */),\n \"component---src-pages-auto-insurance-safeco-js\": () => import(\"./../../../src/pages/auto-insurance/safeco.js\" /* webpackChunkName: \"component---src-pages-auto-insurance-safeco-js\" */),\n \"component---src-pages-auto-insurance-stillwater-js\": () => import(\"./../../../src/pages/auto-insurance/stillwater.js\" /* webpackChunkName: \"component---src-pages-auto-insurance-stillwater-js\" */),\n \"component---src-pages-barnstable-js\": () => import(\"./../../../src/pages/barnstable.js\" /* webpackChunkName: \"component---src-pages-barnstable-js\" */),\n \"component---src-pages-benanderson-365-js\": () => import(\"./../../../src/pages/benanderson365.js\" /* webpackChunkName: \"component---src-pages-benanderson-365-js\" */),\n \"component---src-pages-blog-js\": () => import(\"./../../../src/pages/blog.js\" /* webpackChunkName: \"component---src-pages-blog-js\" */),\n \"component---src-pages-briggsfreeman-js\": () => import(\"./../../../src/pages/briggsfreeman.js\" /* webpackChunkName: \"component---src-pages-briggsfreeman-js\" */),\n \"component---src-pages-bubble-protects-js\": () => import(\"./../../../src/pages/bubble-protects.js\" /* webpackChunkName: \"component---src-pages-bubble-protects-js\" */),\n \"component---src-pages-calculator-pages-page-1-js\": () => import(\"./../../../src/pages/calculator-pages/page1.js\" /* webpackChunkName: \"component---src-pages-calculator-pages-page-1-js\" */),\n \"component---src-pages-calculator-pages-page-2-blueline-svg-js\": () => import(\"./../../../src/pages/calculator-pages/page2blueline.svg.js\" /* webpackChunkName: \"component---src-pages-calculator-pages-page-2-blueline-svg-js\" */),\n \"component---src-pages-calculator-pages-page-2-js\": () => import(\"./../../../src/pages/calculator-pages/page2.js\" /* webpackChunkName: \"component---src-pages-calculator-pages-page-2-js\" */),\n \"component---src-pages-calculator-pages-page-2-line-1-svg-js\": () => import(\"./../../../src/pages/calculator-pages/page2-line1.svg.js\" /* webpackChunkName: \"component---src-pages-calculator-pages-page-2-line-1-svg-js\" */),\n \"component---src-pages-calculator-pages-page-3-donut-svg-js\": () => import(\"./../../../src/pages/calculator-pages/page3donut.svg.js\" /* webpackChunkName: \"component---src-pages-calculator-pages-page-3-donut-svg-js\" */),\n \"component---src-pages-calculator-pages-page-3-js\": () => import(\"./../../../src/pages/calculator-pages/page3.js\" /* webpackChunkName: \"component---src-pages-calculator-pages-page-3-js\" */),\n \"component---src-pages-callback-js\": () => import(\"./../../../src/pages/callback.js\" /* webpackChunkName: \"component---src-pages-callback-js\" */),\n \"component---src-pages-carrier-plan-js\": () => import(\"./../../../src/pages/carrier-plan.js\" /* webpackChunkName: \"component---src-pages-carrier-plan-js\" */),\n \"component---src-pages-contact-us-js\": () => import(\"./../../../src/pages/contact-us.js\" /* webpackChunkName: \"component---src-pages-contact-us-js\" */),\n \"component---src-pages-demo-js\": () => import(\"./../../../src/pages/demo.js\" /* webpackChunkName: \"component---src-pages-demo-js\" */),\n \"component---src-pages-details-4-id-js\": () => import(\"./../../../src/pages/details4id.js\" /* webpackChunkName: \"component---src-pages-details-4-id-js\" */),\n \"component---src-pages-faq-application-js\": () => import(\"./../../../src/pages/faq-application.js\" /* webpackChunkName: \"component---src-pages-faq-application-js\" */),\n \"component---src-pages-faq-beneficiaries-js\": () => import(\"./../../../src/pages/faq-beneficiaries.js\" /* webpackChunkName: \"component---src-pages-faq-beneficiaries-js\" */),\n \"component---src-pages-faq-categories-js\": () => import(\"./../../../src/pages/faq-categories.js\" /* webpackChunkName: \"component---src-pages-faq-categories-js\" */),\n \"component---src-pages-faq-home-js\": () => import(\"./../../../src/pages/faq-home.js\" /* webpackChunkName: \"component---src-pages-faq-home-js\" */),\n \"component---src-pages-faq-home-life-js\": () => import(\"./../../../src/pages/faq-home-life.js\" /* webpackChunkName: \"component---src-pages-faq-home-life-js\" */),\n \"component---src-pages-faq-js\": () => import(\"./../../../src/pages/faq.js\" /* webpackChunkName: \"component---src-pages-faq-js\" */),\n \"component---src-pages-faq-life-js\": () => import(\"./../../../src/pages/faq-life.js\" /* webpackChunkName: \"component---src-pages-faq-life-js\" */),\n \"component---src-pages-faq-page-2-js\": () => import(\"./../../../src/pages/faqPage2.js\" /* webpackChunkName: \"component---src-pages-faq-page-2-js\" */),\n \"component---src-pages-faq-page-js\": () => import(\"./../../../src/pages/faqPage.js\" /* webpackChunkName: \"component---src-pages-faq-page-js\" */),\n \"component---src-pages-faq-policy-and-claims-js\": () => import(\"./../../../src/pages/faq-policy-and-claims.js\" /* webpackChunkName: \"component---src-pages-faq-policy-and-claims-js\" */),\n \"component---src-pages-faq-premium-payments-js\": () => import(\"./../../../src/pages/faq-premium-payments.js\" /* webpackChunkName: \"component---src-pages-faq-premium-payments-js\" */),\n \"component---src-pages-faq-why-bubble-js\": () => import(\"./../../../src/pages/faq-why-bubble.js\" /* webpackChunkName: \"component---src-pages-faq-why-bubble-js\" */),\n \"component---src-pages-firstmutualholding-js\": () => import(\"./../../../src/pages/firstmutualholding.js\" /* webpackChunkName: \"component---src-pages-firstmutualholding-js\" */),\n \"component---src-pages-firstrepublic-js\": () => import(\"./../../../src/pages/firstrepublic.js\" /* webpackChunkName: \"component---src-pages-firstrepublic-js\" */),\n \"component---src-pages-flyhomes-js\": () => import(\"./../../../src/pages/flyhomes.js\" /* webpackChunkName: \"component---src-pages-flyhomes-js\" */),\n \"component---src-pages-head-js\": () => import(\"./../../../src/pages/head.js\" /* webpackChunkName: \"component---src-pages-head-js\" */),\n \"component---src-pages-home-js\": () => import(\"./../../../src/pages/home.js\" /* webpackChunkName: \"component---src-pages-home-js\" */),\n \"component---src-pages-home-page-first-slider-js\": () => import(\"./../../../src/pages/HomePageFirstSlider.js\" /* webpackChunkName: \"component---src-pages-home-page-first-slider-js\" */),\n \"component---src-pages-home-page-js\": () => import(\"./../../../src/pages/HomePage.js\" /* webpackChunkName: \"component---src-pages-home-page-js\" */),\n \"component---src-pages-home-page-second-slider-js\": () => import(\"./../../../src/pages/HomePageSecondSlider.js\" /* webpackChunkName: \"component---src-pages-home-page-second-slider-js\" */),\n \"component---src-pages-homeowners-insurance-js\": () => import(\"./../../../src/pages/homeowners-insurance.js\" /* webpackChunkName: \"component---src-pages-homeowners-insurance-js\" */),\n \"component---src-pages-homeowners-insurance-nationwide-js\": () => import(\"./../../../src/pages/homeowners-insurance/nationwide.js\" /* webpackChunkName: \"component---src-pages-homeowners-insurance-nationwide-js\" */),\n \"component---src-pages-homeowners-insurance-safeco-js\": () => import(\"./../../../src/pages/homeowners-insurance/safeco.js\" /* webpackChunkName: \"component---src-pages-homeowners-insurance-safeco-js\" */),\n \"component---src-pages-homesmart-demo-js\": () => import(\"./../../../src/pages/homesmart_demo.js\" /* webpackChunkName: \"component---src-pages-homesmart-demo-js\" */),\n \"component---src-pages-homesmart-old-index-js\": () => import(\"./../../../src/pages/homesmart-old/index.js\" /* webpackChunkName: \"component---src-pages-homesmart-old-index-js\" */),\n \"component---src-pages-homeward-js\": () => import(\"./../../../src/pages/homeward.js\" /* webpackChunkName: \"component---src-pages-homeward-js\" */),\n \"component---src-pages-hp-home-insurance-js\": () => import(\"./../../../src/pages/HPHomeInsurance.js\" /* webpackChunkName: \"component---src-pages-hp-home-insurance-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-insurance-dictionary-js\": () => import(\"./../../../src/pages/insurance-dictionary.js\" /* webpackChunkName: \"component---src-pages-insurance-dictionary-js\" */),\n \"component---src-pages-invalid-js\": () => import(\"./../../../src/pages/invalid.js\" /* webpackChunkName: \"component---src-pages-invalid-js\" */),\n \"component---src-pages-landingcalculator-js\": () => import(\"./../../../src/pages/landingcalculator.js\" /* webpackChunkName: \"component---src-pages-landingcalculator-js\" */),\n \"component---src-pages-license-numbers-js\": () => import(\"./../../../src/pages/license-numbers.js\" /* webpackChunkName: \"component---src-pages-license-numbers-js\" */),\n \"component---src-pages-life-insurance-arizona-js\": () => import(\"./../../../src/pages/life-insurance-arizona.js\" /* webpackChunkName: \"component---src-pages-life-insurance-arizona-js\" */),\n \"component---src-pages-life-insurance-california-js\": () => import(\"./../../../src/pages/life-insurance-california.js\" /* webpackChunkName: \"component---src-pages-life-insurance-california-js\" */),\n \"component---src-pages-life-insurance-js\": () => import(\"./../../../src/pages/life-insurance.js\" /* webpackChunkName: \"component---src-pages-life-insurance-js\" */),\n \"component---src-pages-life-insurance-new-jersey-js\": () => import(\"./../../../src/pages/life-insurance-new-jersey.js\" /* webpackChunkName: \"component---src-pages-life-insurance-new-jersey-js\" */),\n \"component---src-pages-life-insurance-ohio-js\": () => import(\"./../../../src/pages/life-insurance-ohio.js\" /* webpackChunkName: \"component---src-pages-life-insurance-ohio-js\" */),\n \"component---src-pages-life-insurance-texas-js\": () => import(\"./../../../src/pages/life-insurance-texas.js\" /* webpackChunkName: \"component---src-pages-life-insurance-texas-js\" */),\n \"component---src-pages-life-insurance-washington-js\": () => import(\"./../../../src/pages/life-insurance-washington.js\" /* webpackChunkName: \"component---src-pages-life-insurance-washington-js\" */),\n \"component---src-pages-lowrateco-js\": () => import(\"./../../../src/pages/lowrateco.js\" /* webpackChunkName: \"component---src-pages-lowrateco-js\" */),\n \"component---src-pages-mainspring-js\": () => import(\"./../../../src/pages/mainspring.js\" /* webpackChunkName: \"component---src-pages-mainspring-js\" */),\n \"component---src-pages-next-by-pacific-life-js\": () => import(\"./../../../src/pages/next-by-pacific-life.js\" /* webpackChunkName: \"component---src-pages-next-by-pacific-life-js\" */),\n \"component---src-pages-old-privacy-policy-js\": () => import(\"./../../../src/pages/old-privacy-policy.js\" /* webpackChunkName: \"component---src-pages-old-privacy-policy-js\" */),\n \"component---src-pages-olympic-media-js\": () => import(\"./../../../src/pages/olympic-media.js\" /* webpackChunkName: \"component---src-pages-olympic-media-js\" */),\n \"component---src-pages-onetrusthomeloans-js\": () => import(\"./../../../src/pages/onetrusthomeloans.js\" /* webpackChunkName: \"component---src-pages-onetrusthomeloans-js\" */),\n \"component---src-pages-onlineinsurance-js\": () => import(\"./../../../src/pages/onlineinsurance.js\" /* webpackChunkName: \"component---src-pages-onlineinsurance-js\" */),\n \"component---src-pages-our-story-js\": () => import(\"./../../../src/pages/our-story.js\" /* webpackChunkName: \"component---src-pages-our-story-js\" */),\n \"component---src-pages-our-team-js\": () => import(\"./../../../src/pages/our-team.js\" /* webpackChunkName: \"component---src-pages-our-team-js\" */),\n \"component---src-pages-ownerly-js\": () => import(\"./../../../src/pages/ownerly.js\" /* webpackChunkName: \"component---src-pages-ownerly-js\" */),\n \"component---src-pages-pacwm-js\": () => import(\"./../../../src/pages/pacwm.js\" /* webpackChunkName: \"component---src-pages-pacwm-js\" */),\n \"component---src-pages-page-2-js\": () => import(\"./../../../src/pages/page-2.js\" /* webpackChunkName: \"component---src-pages-page-2-js\" */),\n \"component---src-pages-page-3-js\": () => import(\"./../../../src/pages/page-3.js\" /* webpackChunkName: \"component---src-pages-page-3-js\" */),\n \"component---src-pages-partnerwithus-js\": () => import(\"./../../../src/pages/partnerwithus.js\" /* webpackChunkName: \"component---src-pages-partnerwithus-js\" */),\n \"component---src-pages-partnerwithuspage-js\": () => import(\"./../../../src/pages/partnerwithuspage.js\" /* webpackChunkName: \"component---src-pages-partnerwithuspage-js\" */),\n \"component---src-pages-plan-js\": () => import(\"./../../../src/pages/plan.js\" /* webpackChunkName: \"component---src-pages-plan-js\" */),\n \"component---src-pages-press-release-js\": () => import(\"./../../../src/pages/press-release.js\" /* webpackChunkName: \"component---src-pages-press-release-js\" */),\n \"component---src-pages-privacy-js\": () => import(\"./../../../src/pages/privacy.js\" /* webpackChunkName: \"component---src-pages-privacy-js\" */),\n \"component---src-pages-privacy-policy-js\": () => import(\"./../../../src/pages/privacy-policy.js\" /* webpackChunkName: \"component---src-pages-privacy-policy-js\" */),\n \"component---src-pages-prmg-js\": () => import(\"./../../../src/pages/prmg.js\" /* webpackChunkName: \"component---src-pages-prmg-js\" */),\n \"component---src-pages-redwoodcu-js\": () => import(\"./../../../src/pages/redwoodcu.js\" /* webpackChunkName: \"component---src-pages-redwoodcu-js\" */),\n \"component---src-pages-royal-united-js\": () => import(\"./../../../src/pages/royal-united.js\" /* webpackChunkName: \"component---src-pages-royal-united-js\" */),\n \"component---src-pages-sbli-js\": () => import(\"./../../../src/pages/sbli.js\" /* webpackChunkName: \"component---src-pages-sbli-js\" */),\n \"component---src-pages-sheally-v-2-js\": () => import(\"./../../../src/pages/sheally_v2.js\" /* webpackChunkName: \"component---src-pages-sheally-v-2-js\" */),\n \"component---src-pages-site-map-js\": () => import(\"./../../../src/pages/site-map.js\" /* webpackChunkName: \"component---src-pages-site-map-js\" */),\n \"component---src-pages-sitemap-js\": () => import(\"./../../../src/pages/sitemap.js\" /* webpackChunkName: \"component---src-pages-sitemap-js\" */),\n \"component---src-pages-stillwater-js\": () => import(\"./../../../src/pages/stillwater.js\" /* webpackChunkName: \"component---src-pages-stillwater-js\" */),\n \"component---src-pages-tdemo-js\": () => import(\"./../../../src/pages/tdemo.js\" /* webpackChunkName: \"component---src-pages-tdemo-js\" */),\n \"component---src-pages-terms-conditions-accessibility-js\": () => import(\"./../../../src/pages/TermsConditionsAccessibility.js\" /* webpackChunkName: \"component---src-pages-terms-conditions-accessibility-js\" */),\n \"component---src-pages-terms-of-service-js\": () => import(\"./../../../src/pages/terms-of-service.js\" /* webpackChunkName: \"component---src-pages-terms-of-service-js\" */),\n \"component---src-pages-termsandconditions-js\": () => import(\"./../../../src/pages/termsandconditions.js\" /* webpackChunkName: \"component---src-pages-termsandconditions-js\" */),\n \"component---src-pages-testimonial-js\": () => import(\"./../../../src/pages/testimonial.js\" /* webpackChunkName: \"component---src-pages-testimonial-js\" */),\n \"component---src-pages-testimonials-js\": () => import(\"./../../../src/pages/testimonials.js\" /* webpackChunkName: \"component---src-pages-testimonials-js\" */),\n \"component---src-pages-toner-group-js\": () => import(\"./../../../src/pages/toner-group.js\" /* webpackChunkName: \"component---src-pages-toner-group-js\" */),\n \"component---src-pages-upload-js\": () => import(\"./../../../src/pages/upload.js\" /* webpackChunkName: \"component---src-pages-upload-js\" */),\n \"component---src-pages-uwm-js\": () => import(\"./../../../src/pages/uwm.js\" /* webpackChunkName: \"component---src-pages-uwm-js\" */),\n \"component---src-pages-vertical-slider-js\": () => import(\"./../../../src/pages/VerticalSlider.js\" /* webpackChunkName: \"component---src-pages-vertical-slider-js\" */),\n \"component---src-pages-wns-js\": () => import(\"./../../../src/pages/wns.js\" /* webpackChunkName: \"component---src-pages-wns-js\" */),\n \"component---src-templates-partner-js\": () => import(\"./../../../src/templates/partner.js\" /* webpackChunkName: \"component---src-templates-partner-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"gatsby-starter-default\",\"short_name\":\"starter\",\"start_url\":\"/\",\"background_color\":\"#663399\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"src/images/favicon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"501ef488b75aaf22e82c70cfdc07833c\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-hubspot/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingCode\":\"8926444\",\"respectDNT\":true,\"productionOnly\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-WMBC6G9\",\"enableWebVitalsTracking\":true,\"defaultDataLayer\":{\"type\":\"function\",\"value\":\"function () {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tpageType: window.pageType\\n\\t\\t\\t\\t};\\n\\t\\t\\t}\"},\"includeInDevelopment\":false,\"routeChangeEventName\":\"gatsby-route-change\",\"selfHostedOrigin\":\"https://www.googletagmanager.com\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(pageData.path, {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n // window.___webpackCompilationHash gets set in production-app.js after navigationInit() is called\n // So on a direct visit of a page with a browser redirect this check is truthy and thus the codepath is hit\n // While the resource actually exists, but only too late\n // TODO: This should probably be fixed by setting ___webpackCompilationHash before navigationInit() is called\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\n })\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrateRoot ? ReactDOM.hydrateRoot : ReactDOM.hydrate\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.hydrateRoot) {\n renderer(rootElement, )\n } else {\n renderer(, rootElement)\n }\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","/**\n * Implement Gatsby's Browser APIs in this file.\n *\n * See: https://www.gatsbyjs.com/docs/browser-apis/\n */\n\n// You can delete this file if you're not using it\nimport React from 'react';\n\n// import 'jquery/dist/jquery.min.js'\n// import 'popper.js/dist/popper.min'\n//import 'bootstrap/dist/js/bootstrap.min.js';\nimport { silentAuth } from './src/utils/auth';\n\nclass SessionCheck extends React.Component {\n constructor( props ) {\n super( props );\n this.state = {\n loading: true\n };\n }\n\n handleCheckSession = () => {\n this.setState( { loading: false } );\n };\n\n componentDidMount() {\n silentAuth( this.handleCheckSession );\n }\n\n render() {\n return (\n this.state.loading === false && (\n {this.props.children}\n )\n );\n }\n}\n\nexport const wrapRootElement = ( { element } ) => {\n return {element};\n};\n","const listOfMetricsSend = new Set();\n\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(fn, timeout, ...args);\n };\n}\n\nfunction sendWebVitals(dataLayerName = `dataLayer`) {\n const win = window;\n\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGTM(data, win[dataLayerName]);\n }\n\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens\n\n const debouncedFID = sendData; // LCP can occur multiple times so we debounce it\n\n const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late.\n\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\n\nfunction sendToGTM({\n name,\n value,\n id\n}, dataLayer) {\n dataLayer.push({\n event: `core-web-vitals`,\n webVitalsMeasurement: {\n name: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n value: Math.round(name === `CLS` ? value * 1000 : value)\n }\n });\n}\n\nexport function onRouteUpdate(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` || pluginOptions.includeInDevelopment) {\n // wrap inside a timeout to ensure the title has properly been changed\n setTimeout(() => {\n const data = pluginOptions.dataLayerName ? window[pluginOptions.dataLayerName] : window.dataLayer;\n const eventName = pluginOptions.routeChangeEventName ? pluginOptions.routeChangeEventName : `gatsby-route-change`;\n data.push({\n event: eventName\n });\n }, 50);\n }\n}\nexport function onInitialClientRender(_, pluginOptions) {\n // we only load the polyfill in production so we can't enable it in development\n if (process.env.NODE_ENV === `production` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals(pluginOptions.dataLayerName);\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar defaultOptions = {\n respectDNT: false,\n productionOnly: true\n};\nvar _default = defaultOptions;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defaultOptions = _interopRequireDefault(require(\"./default-options\"));\n\nexports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var options = (0, _extends2.default)({}, _defaultOptions.default, pluginOptions);\n\n if (options.productionOnly && process.env.NODE_ENV !== 'production' || !Array.isArray(window._hsq)) {\n return null;\n }\n\n var trackPageView = function trackPageView() {\n var path = location ? \"\" + location.pathname + location.search + location.hash : undefined;\n\n window._hsq.push(['setPath', path]);\n\n window._hsq.push(['trackPageView']);\n }; // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // react-helmet is using requestAnimationFrame (https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299)\n\n\n if (typeof window.requestAnimationFrame === 'function') {\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(trackPageView);\n });\n } else {\n // simulate 2 requestAnimationFrame calls\n setTimeout(trackPageView, 32);\n }\n\n return null;\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","// https://auth0.com/blog/securing-gatsby-with-auth0/\nimport auth0 from 'auth0-js';\nimport { navigate } from 'gatsby';\n\nconst isBrowser = typeof window !== 'undefined';\n\nconst auth = {};\n// isBrowser\n// ? new auth0.WebAuth({\n// domain: process.env.AUTH0_DOMAIN,\n// clientID: process.env.AUTH0_CLIENTID,\n// redirectUri: process.env.AUTH0_CALLBACK,\n// responseType: \"token id_token\",\n// scope: \"openid profile email\",\n// })\n// : {}\n\nconst tokens = {\n accessToken: false,\n idToken: false,\n expiresAt: false\n};\n\nlet user = {};\n\nexport const isAuthenticated = () => {\n if ( !isBrowser ) {\n return;\n }\n\n return localStorage.getItem( 'isLoggedIn' ) === 'true';\n};\n\nexport const login = () => {\n if ( !isBrowser ) {\n return;\n }\n\n auth.authorize();\n};\n\nconst setSession = ( cb = () => { } ) => ( err, authResult ) => {\n if ( err ) {\n navigate( '/' );\n cb();\n return;\n }\n\n if ( authResult && authResult.accessToken && authResult.idToken ) {\n let expiresAt = authResult.expiresIn * 1000 + new Date().getTime();\n tokens.accessToken = authResult.accessToken;\n tokens.idToken = authResult.idToken;\n tokens.expiresAt = expiresAt;\n user = authResult.idTokenPayload;\n localStorage.setItem( 'isLoggedIn', true );\n navigate( '/account' );\n cb();\n }\n};\n\nexport const silentAuth = callback => {\n return callback();\n // if (!isAuthenticated()) return callback()\n // auth.checkSession({}, setSession(callback))\n};\n\nexport const handleAuthentication = () => {\n if ( !isBrowser ) {\n return;\n }\n\n auth.parseHash( setSession() );\n};\n\nexport const getProfile = () => {\n return user;\n};\n\nexport const logout = () => {\n localStorage.setItem( 'isLoggedIn', false );\n auth.logout();\n};\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n var dynamicMatch = paramRe.exec(routeSegment);\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n return {\n get location() {\n return location;\n },\n get transitioning() {\n return transitioning;\n },\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n function LocationProvider() {\n var _temp, _this, _ret;\n _classCallCheck(this, LocationProvider);\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n var refs = this.state.refs,\n history = this.props.history;\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n});\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n return RouterImpl;\n}(React.PureComponent);\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n _classCallCheck(this, FocusHandlerImpl);\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n var requestFocus = this.props.requestFocus;\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n return FocusHandlerImpl;\n}(React.Component);\npolyfill(FocusHandlerImpl);\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n return RedirectImpl;\n}(React.Component);\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n return context.location;\n};\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n return context.navigate;\n};\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch, resolve , BaseContext };","\"use strict\";\n\nexports.__esModule = true;\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n return {\n get location() {\n return location;\n },\n get transitioning() {\n return transitioning;\n },\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\nvar _invariant = require(\"invariant\");\nvar _invariant2 = _interopRequireDefault(_invariant);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n var dynamicMatch = paramRe.exec(routeSegment);\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","\"use strict\";\n\nmodule.exports = Object.assign;","/**\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(t, e) {\n return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["_interopRequireDefault","exports","withPrefix","path","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","_excluded","isAbsolutePath","startsWith","prefix","_ref","_prefix","getGlobalBasePrefix","isLocalLink","base","endsWith","slice","rewriteLinkPath","relativeTo","current","resolve","absolutify","NavLinkPropTypes","activeClassName","default","string","activeStyle","object","partiallyActive","bool","GatsbyLinkLocationWrapper","props","createElement","Location","_ref2","location","GatsbyLink","_location","_React$Component","_this","call","this","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","filter","Boolean","join","style","IOSupported","window","IntersectionObserver","state","handleRef","bind","_proto","prototype","_prefetch","currentPath","pathname","rewrittenPath","to","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","replace","rest","prefixedTo","Link","e","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","encodeURI","___navigate","href","Component","propTypes","func","isRequired","_default","forwardRef","options","__esModule","search","hash","hashIndex","indexOf","substr","searchIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","React","obj","nodeInterop","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","desc","set","_interopRequireWildcard","_sessionStorage","WeakMap","cacheBabelInterop","cacheNodeInterop","createContext","SessionStorage","displayName","_len","arguments","length","args","Array","_key","apply","concat","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","requestAnimationFrame","_saveScroll","windowScroll","position","shouldUpdateScroll","scrollTo","scrollToHash","node","document","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","save","scrollPosition","addEventListener","_this$props$location","read","undefined","decodeURI","removeEventListener","_this$props$location2","Provider","value","children","element","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","storedValue","stringify","setItem","stateKeyBase","identifier","useLocation","useContext","useRef","useLayoutEffect","onScroll","scrollTop","components","module","plugin","require","plugins","_require$publicLoader","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","results","map","result","_typeof","reduce","previous","next","then","Promise","all","create","on","type","handler","push","off","splice","emit","evt","mitt","charAt","pathCache","Map","matchPaths","trimPathname","rawPathname","decodeURIComponent","stripPrefix","__BASE_PATH__","split","URL","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","pick","normalizePagePath","route","grabMatchParams","params","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","data","query","finalData","StaticQuery","Consumer","useStaticQuery","_context$query","context","isNaN","Number","Error","graphql","PropTypes","supportedPrefetchStrategy","feature","fakeLink","relList","supports","err","support","url","reject","link","setAttribute","keys","onload","onerror","getElementsByTagName","getElementsByName","parentNode","appendChild","req","XMLHttpRequest","open","status","send","preFetched","PageResourceStatus","Success","preferDefault","m","createPageDataUrl","s","fixedPath","__PATH_PREFIX__","doFetch","method","onreadystatechange","readyState","toPageResources","pageData","component","page","componentChunkName","webpackCompilationHash","staticQueryHashes","json","BaseLoader","_createClass","loadComponent","_classCallCheck","_defineProperty","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","inFlightPromise","inFlightNetworkRequests","response","apiRunner","prefetchDisabled","some","a","loadObj","pagePath","_loadObj$retries","retries","memoizedGet","responseText","jsonPayload","assign","payload","fetchPageDataJson","notFound","rawPath","_this4","error","loadAppData","loadPageDataJson","allData","_pageData","_pageData$staticQuery","finalResult","componentChunkPromise","pageResources","createdAt","Date","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","_slicedToArray","_objectSpread","emitter","withErrorDetails","navigator","connection","effectiveType","includes","saveData","doesConnectionSupportPrefetch","_this5","shouldPrefetch","add","realPath","doPrefetch","_this6","pageDataUrl","prefetchHelper","crossOrigin","as","_toConsumableArray","createComponentUrls","_this7","appData","___chunkMapping","chunk","ProdLoader","_BaseLoader2","asyncRequires","_this8","_callSuper","chunkName","_inherits","_superPropGet","componentUrls","setLoader","_loader","publicLoader","prefetch","isPageNotFound","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","pop","RouteAnnouncerProps","id","top","width","height","padding","overflow","clip","whiteSpace","border","maybeRedirect","_window$location","___replace","nextRoute","event","test","reason","onPreRouteUpdate","prevLocation","onRouteUpdate","navigate","___swUpdated","timeoutId","setTimeout","history","replaceState","clearTimeout","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","globalHistory","getSavedScrollPosition","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","querySelectorAll","textContent","newAnnouncement","innerText","_extends","compareLocationProps","nextLocation","_prevLocation$state","_nextLocation$state","RouteUpdates","_React$Component2","shallowDiffers","b","i","_i","EnsureResources","setState","nextState","shallowCompare","loadResources","setApiRunner","___emitter","listen","action","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","_window","browserLoc","match","message","console","SiteRoot","_ref4","App","onClientEntryRanRef","performance","mark","renderer","ReactDOM","hydrateRoot","runRender","rootElement","doc","documentElement","doScroll","ProdPageRenderer","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","toLowerCase","ignoreCase","fromPath","protocol","hostname","register","reg","installingWorker","installing","log","___failedResources","reload","str","SessionCheck","loading","silentAuth","handleCheckSession","wrapRootElement","listOfMetricsSend","debounce","fn","timeout","timer","sendWebVitals","dataLayerName","win","sendData","name","dataLayer","webVitalsMeasurement","Math","round","sendToGTM","getLCP","getFID","getCLS","debouncedCLS","debouncedFID","debouncedLCP","_","pluginOptions","eventName","routeChangeEventName","onInitialClientRender","enableWebVitalsTracking","respectDNT","productionOnly","_defaultOptions","isArray","_hsq","trackPageView","localizedManifests","defaultFilename","localizedManifest","find","app","start_url","lang","isBrowser","auth","tokens","accessToken","idToken","expiresAt","user","isAuthenticated","localStorage","login","authorize","callback","handleAuthentication","parseHash","authResult","expiresIn","getTime","idTokenPayload","setSession","getProfile","logout","routes","uri","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","routeSegments","max","index","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","exec","reservedNames","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","isDynamic","rankRoute","score","isRootSegment","SEGMENT_POINTS","sort","q","source","getLocation","_source$location","origin","host","port","canUseDOM","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","listener","popstateListener","_ref$replace","go","now","pushState","transition","res","createMemorySource","initialPath","initialLocation","stack","states","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","_objectWithoutProperties","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","subClass","superClass","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","toArray","array","child","createRoute","clone","FocusWrapper","FocusHandler","wrapperProps","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_temp2","_len2","_key2","shouldFocus","focus","getDerivedStateFromProps","myURIChanged","navigatedUpToMe","contains","activeElement","_props2","_props2$component","Comp","outline","tabIndex","n","k","C","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","obj1","obj2","obj1Keys","every","RedirectRequest","o","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","from","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","validateRedirect","_invariant","_invariant2","condition","format","c","d","f","argIndex","framesToPop","t","r","_setPrototypeOf"],"sourceRoot":""}