{"version":3,"file":"a198fdd9-f22e71a980ac5c2c7805.js","mappings":";uXAWA,SAASA,EAAaC,GAAW,IAAIC,EAErC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQC,UAAUC,QAAQC,KAAKP,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOI,GAAK,OAAO,GAF9PC,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,GAAQ,OAAgBb,GAAkB,GAAIC,EAA2B,CAAE,IAAIa,GAAY,OAAgBC,MAAMC,YAAaJ,EAASV,QAAQC,UAAUU,EAAOI,UAAWH,QAAqBF,EAASC,EAAMK,MAAMH,KAAME,WAAc,OAAO,OAA2BF,KAAMH,IAI5Z,SAASO,EAA2BC,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAKE,EAAI,CAAE,GAAIG,MAAMC,QAAQN,KAAOE,EAE9K,SAAqCF,EAAGO,GAAU,IAAKP,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAOQ,EAAkBR,EAAGO,GAAS,IAAIE,EAAIC,OAAOvB,UAAUwB,SAAStB,KAAKW,GAAGY,MAAM,GAAI,GAAc,WAANH,GAAkBT,EAAEJ,cAAaa,EAAIT,EAAEJ,YAAYiB,MAAM,GAAU,QAANJ,GAAqB,QAANA,EAAa,OAAOJ,MAAMS,KAAKd,GAAI,GAAU,cAANS,GAAqB,2CAA2CM,KAAKN,GAAI,OAAOD,EAAkBR,EAAGO,GAFnOS,CAA4BhB,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAEiB,OAAqB,CAAMf,IAAIF,EAAIE,GAAI,IAAIgB,EAAI,EAAOC,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGV,EAAG,WAAe,OAAIS,GAAKlB,EAAEiB,OAAe,CAAEI,MAAM,GAAe,CAAEA,MAAM,EAAOC,MAAOtB,EAAEkB,OAAW5B,EAAG,SAAWiC,GAAM,MAAMA,GAAOC,EAAGL,GAAO,MAAM,IAAIM,UAAU,yIAA4I,IAA6CC,EAAzCC,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAER,EAAG,WAAelB,EAAKA,EAAGb,KAAKW,IAAOS,EAAG,WAAe,IAAIoB,EAAO3B,EAAG4B,OAAsC,OAA9BH,EAAmBE,EAAKR,KAAaQ,GAASvC,EAAG,SAAWyC,GAAOH,GAAS,EAAMF,EAAMK,GAAQP,EAAG,WAAe,IAAWG,GAAiC,MAAbzB,EAAG8B,QAAgB9B,EAAG8B,SAAY,QAAU,GAAIJ,EAAQ,MAAMF,KAIz9B,SAASlB,EAAkByB,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIhB,UAAQiB,EAAMD,EAAIhB,QAAQ,IAAK,IAAIC,EAAI,EAAGiB,EAAO,IAAI9B,MAAM6B,GAAMhB,EAAIgB,EAAKhB,IAAOiB,EAAKjB,GAAKe,EAAIf,GAAM,OAAOiB,EAMhL,IAAItB,EAAO,qBACPuB,EAAU,SAoBVC,EAAc,GAqClB,IAiMMC,EAjMFC,EAAiC,WAInC,SAASA,EAAkBC,IACzB,OAAgB7C,KAAM4C,GAEtB5C,KAAK6C,YAAcA,EAEnB7C,KAAK8C,QAAU,YAiDjB,OAzCA,OAAaF,EAAmB,CAAC,CAC/BG,IAAK,MACLpB,MAAO,SAAaoB,EAAKpB,GACV,MAATA,EACF3B,KAAK6C,YAAYG,WAAWhD,KAAKiD,cAAcF,IAE/C/C,KAAK6C,YAAYK,QAAQlD,KAAKiD,cAAcF,IAAM,QAAUpB,MAO/D,CACDoB,IAAK,MACLpB,MAAO,SAAaoB,GAClB,IAAII,EAAYnD,KAAK6C,YAAYO,QAAQpD,KAAKiD,cAAcF,IAE5D,OAAiB,MAAbI,EACK,MAEA,QAASA,KAGnB,CACDJ,IAAK,SACLpB,MAAO,SAAgBoB,GACrB/C,KAAK6C,YAAYG,WAAWhD,KAAKiD,cAAcF,MAEhD,CACDA,IAAK,gBACLpB,MAAO,SAAuBT,GAC5B,OAAOlB,KAAK8C,QAAU5B,IAEvB,CACD6B,IAAK,WACLpB,MAAO,WACL,OAAO3B,KAAK6C,YAAY7B,eAIrB4B,EA1D4B,GAmFjCS,EAA6B,WAC/B,SAASA,KACP,OAAgBrD,KAAMqD,GAEtBrD,KAAKsD,OAAS,GACdtD,KAAKuD,mBAAoB,EA4B3B,OAzBA,OAAaF,EAAe,CAAC,CAC3BN,IAAK,MACLpB,MAAO,SAAaoB,EAAKpB,GACV,MAATA,SACK3B,KAAKsD,OAAOP,GAEnB/C,KAAKsD,OAAOP,GAAOpB,IAGtB,CACDoB,IAAK,MACLpB,MAAO,SAAaoB,GAClB,OAAI,QAAS/C,KAAKsD,OAAQP,GACjB/C,KAAKsD,OAAOP,GAGd,OAER,CACDA,IAAK,SACLpB,MAAO,SAAgBoB,UACd/C,KAAKsD,OAAOP,OAIhBM,EAjCwB,GA+D7BG,EAAmB,SAA0BC,GAC/C,IAGE,GAAsB,oBAAXC,aAA4D,IAA3BA,OAAOD,GAAiC,CAElF,IAAIE,EAAaD,OAAOD,GAGxB,OAFAE,EAAWT,QAAQ,oBAAqB,SACxCS,EAAWX,WAAW,qBACf,IAAIJ,EAAkBe,IAE/B,MAAOhE,IAIT,OAAO,IAAI0D,GAKTO,EAAoBJ,EAAiB,gBAGrCK,EAAiBL,EAAiB,kBAkBlCM,EAAY,IAAI,KAAO,sBAKvBC,GACEpB,EAAK,EACF,WACL,OAAOA,MAUPqB,EAAO,SAAcC,GACvB,IAAIC,GAAY,QAAkBD,GAC9BD,EAAO,IAAI,KACfA,EAAKG,OAAOD,GACZ,IAAIE,EAAYJ,EAAKK,SACrB,OAAO,qBAAuBD,IAG5BE,EAAmB,SAASA,IAG9B,IAFA,IAAIC,EAAU,GAELhD,EAAI,EAAGA,EAAIrB,UAAUoB,OAAQC,IAAK,CACzC,IAAIiD,EAAMjD,EAAI,GAAKrB,UAAUoB,QAAUC,OAAIkD,EAAYvE,UAAUqB,GAE7Db,MAAMC,QAAQ6D,IAAQA,GAAsB,iBAARA,GAClB,iBAAfA,EAAIlD,OACTiD,GAAWD,EAAiBnE,MAAM,KAAMqE,GAExCD,GADwB,iBAARC,GACL,QAAUA,GAEVA,EAGbD,GAAW,IAGb,OAAOA,GAOLG,EAAS,KAKTC,GAAY,EAOZC,EAAkB,SAAyBC,EAASC,IACtD,SAAQA,IAA0B,IAAZD,IAAgC,IAAZA,EAAmB,+CAE7C,IAAZA,GACFf,EAAUiB,SAAW,aACrBL,EAASZ,EAAUkB,IAAIC,KAAKnB,GAExBgB,GACFjB,EAAeqB,IAAI,mBAAmB,IAEZ,mBAAZL,EAChBH,EAASG,GAETH,EAAS,KACTb,EAAesB,OAAO,qBAItBH,EAAM,WASR,IARkB,IAAdL,IACFA,GAAY,EAEG,OAAXD,IAA6D,IAA1Cb,EAAeuB,IAAI,oBACxCR,GAAgB,IAIhBF,EAAQ,CACV,IAAK,IAAIW,EAAOnF,UAAUoB,OAAQgE,EAAU,IAAI5E,MAAM2E,GAAOE,EAAQ,EAAGA,EAAQF,EAAME,IACpFD,EAAQC,GAASrF,UAAUqF,GAG7B,IAAIhB,EAAUD,EAAiBnE,MAAM,KAAMmF,GAC3CZ,EAAOH,KAIPiB,EAAa,SAAoBC,GACnC,OAAO,WACL,IAAK,IAAIC,EAAQxF,UAAUoB,OAAQgE,EAAU,IAAI5E,MAAMgF,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACvFL,EAAQK,GAASzF,UAAUyF,GAG7BX,EAAI7E,WAAM,EAAQ,CAACsF,GAAQG,OAAON,MAIlCO,EAAQ,WACV,IAAItB,EAAU,4BAA8BD,EAAiBnE,WAAM,EAAQD,WAC3E4D,EAAU+B,MAAMtB,IAGduB,EAAQ,WACV,IAAIvB,EAAU,yBAAyBqB,OAAOtB,EAAiBnE,WAAM,EAAQD,YAE7E,MADA4D,EAAU+B,MAAMtB,GACV,IAAIwB,MAAMxB,IAGdyB,EAAO,WACT,IAAIzB,EAAU,qBAAuBD,EAAiBnE,WAAM,EAAQD,WACpE4D,EAAUkC,KAAKzB,IAmBb0B,EAAsB,SAA6BC,GACrD,MAAuB,iBAATA,IAAsBA,GAASA,GAC7CA,IAASC,OAAOC,mBAAqBF,IAASC,OAAOE,oBAgDnDC,EAAW,aAKXC,EAAW,aAKXC,EAAc,SAAqBC,EAAGC,GACxC,GAAID,IAAMC,EACR,OAAO,EACF,GAAID,IAAMH,GAAYI,IAAMH,EACjC,OAAQ,EACH,GAAIG,IAAMJ,GAAYG,IAAMF,EACjC,OAAO,EAEP,IAAII,EAASC,GAAYH,GACrBI,EAASD,GAAYF,GAEzB,OAAe,OAAXC,EACa,OAAXE,EACKF,EAASE,GAAW,EAAIJ,EAAEnF,OAASoF,EAAEpF,OAASqF,EAASE,GAEtD,EAEU,OAAXA,EACF,EAEAJ,EAAIC,GAAK,EAAI,GAStBI,EAAgB,SAAuBL,EAAGC,GAC5C,OAAID,IAAMC,EACD,EACED,EAAIC,GACL,EAED,GAIPK,EAAa,SAAoBhE,EAAKiE,GACxC,GAAIA,GAAOjE,KAAOiE,EAChB,OAAOA,EAAIjE,GAEX,MAAM,IAAIgD,MAAM,yBAA2BhD,EAAM,iBAAkB,QAAUiE,KAI7EC,EAAoB,SAASA,EAAkBD,GACjD,GAAmB,iBAARA,GAA4B,OAARA,EAC7B,OAAO,QAAUA,GAGnB,IAAIE,EAAO,GAEX,IAAK,IAAIC,KAAKH,EACZE,EAAKE,KAAKD,GAIZD,EAAKG,OAGL,IAFA,IAAItE,EAAM,IAEDxB,EAAI,EAAGA,EAAI2F,EAAK5F,OAAQC,IACrB,IAANA,IACFwB,GAAO,KAGTA,IAAO,QAAUmE,EAAK3F,IACtBwB,GAAO,IACPA,GAAOkE,EAAkBD,EAAIE,EAAK3F,KAIpC,OADAwB,GAAO,KAWLuE,EAAoB,SAA2BrD,EAAKsD,GACtD,IAAIhF,EAAM0B,EAAI3C,OAEd,GAAIiB,GAAOgF,EACT,MAAO,CAACtD,GAKV,IAFA,IAAIuD,EAAW,GAENC,EAAI,EAAGA,EAAIlF,EAAKkF,GAAKF,EACxBE,EAAIF,EAAUhF,EAChBiF,EAASJ,KAAKnD,EAAIyD,UAAUD,EAAGlF,IAE/BiF,EAASJ,KAAKnD,EAAIyD,UAAUD,EAAGA,EAAIF,IAIvC,OAAOC,GAUT,SAASG,EAAKX,EAAKY,GACjB,IAAK,IAAI7E,KAAOiE,EACVA,EAAIa,eAAe9E,IACrB6E,EAAG7E,EAAKiE,EAAIjE,IAalB,IAAI+E,EAAwB,SAA+BC,IACzD,SAAQ9B,EAAoB8B,GAAI,uBAEhC,IAGItG,EAAG9B,EAAGkC,EAAGmG,EAAIzG,EADb0G,EAAO,KAID,IAANF,GACFpI,EAAI,EACJkC,EAAI,EACJJ,EAAI,EAAIsG,IAAOG,EAAAA,EAAW,EAAI,IAE9BzG,EAAIsG,EAAI,GACRA,EAAII,KAAKC,IAAIL,KAEJI,KAAKE,IAAI,GAAG,OAGnB1I,GADAqI,EAAKG,KAAKG,IAAIH,KAAKI,MAAMJ,KAAKnD,IAAI+C,GAAKI,KAAKK,KAAMP,IACzCA,EACTpG,EAAIsG,KAAKM,MAAMV,EAAII,KAAKE,IAAI,EAjBpB,GAiB+BL,GAAMG,KAAKE,IAAI,EAjB9C,OAoBR1I,EAAI,EACJkC,EAAIsG,KAAKM,MAAMV,EAAII,KAAKE,IAAI,GAAG,SAKnC,IAAIK,EAAO,GAEX,IAAKnH,EA5BO,GA4BIA,EAAGA,GAAK,EACtBmH,EAAKtB,KAAKvF,EAAI,EAAI,EAAI,GACtBA,EAAIsG,KAAKI,MAAM1G,EAAI,GAGrB,IAAKN,EAlCO,GAkCIA,EAAGA,GAAK,EACtBmH,EAAKtB,KAAKzH,EAAI,EAAI,EAAI,GACtBA,EAAIwI,KAAKI,MAAM5I,EAAI,GAGrB+I,EAAKtB,KAAK3F,EAAI,EAAI,GAClBiH,EAAKC,UACL,IAAI1E,EAAMyE,EAAKE,KAAK,IAEhBC,EAAgB,GAEpB,IAAKtH,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC1B,IAAIuH,EAAUC,SAAS9E,EAAI+E,OAAOzH,EAAG,GAAI,GAAGP,SAAS,IAE9B,IAAnB8H,EAAQxH,SACVwH,EAAU,IAAMA,GAGlBD,GAAgCC,EAGlC,OAAOD,EAAcI,eA8CvB,IAAIC,EAAkB,IAAIC,OAAO,qBAK7BC,GAAkB,WAKlBC,GAAiB,WAKjBzC,GAAc,SAAqB3C,GACrC,GAAIiF,EAAgB9H,KAAK6C,GAAM,CAC7B,IAAIqF,EAASnD,OAAOlC,GAEpB,GAAIqF,GAAUF,GAAkBE,GAAUD,GACxC,OAAOC,EAIX,OAAO,MAqBLC,GAAiB,SAAwB3B,GAC3C,IACEA,IACA,MAAOjI,GAEP6J,YAAW,WAKT,IAAIC,EAAQ9J,EAAE8J,OAAS,GAEvB,MADAzD,EAAK,yCAA0CyD,GACzC9J,IACLwI,KAAKI,MAAM,MA2BdmB,GAAwB,SAA+B9B,EAAI+B,GAC7D,IAAIC,EAAUJ,WAAW5B,EAAI+B,GAO7B,MALuB,iBAAZC,GAAwBA,EAAe,OAEhDA,EAAe,QAGVA,GAwBLC,GAAqC,WACvC,SAASA,EAAsBC,EAAUC,GACvC,IAAIC,EAAQhK,MAEZ,OAAgBA,KAAM6J,GAEtB7J,KAAK8J,SAAWA,EAChB9J,KAAK+J,iBAAmBA,EACxB/J,KAAKiK,SAAWF,MAAAA,OAA2D,EAASA,EAAiBG,aAAa,CAChHC,UAAU,IAGPnK,KAAKiK,UACRF,MAAAA,GAAoEA,EAAiB3E,MAAMgF,MAAK,SAAUH,GACxG,OAAOD,EAAMC,SAAWA,KA4C9B,OAvCA,OAAaJ,EAAuB,CAAC,CACnC9G,IAAK,WACLpB,MAAO,SAAkB0I,GACvB,IAAIC,EAAStK,KAEb,OAAKA,KAAKiK,SAgBHjK,KAAKiK,SAASM,SAASF,GAfrB,IAAIG,SAAQ,SAAUC,EAASC,GAKpClB,YAAW,WACLc,EAAOL,SACTK,EAAOC,SAASF,GAAcD,KAAKK,EAASC,GAE5CD,EAAQ,QAET,QAMR,CACD1H,IAAK,yBACLpB,MAAO,SAAgCgJ,GACrC,IAAIC,EAE6B,QAAhCA,EAAK5K,KAAK+J,wBAAqC,IAAPa,GAAyBA,EAAGxF,MAAMgF,MAAK,SAAUH,GACxF,OAAOA,EAASY,iBAAiBF,QAGpC,CACD5H,IAAK,wBACLpB,MAAO,WACLqE,EAAK,oDAAqDJ,OAAO5F,KAAK8J,SAAU,MAAS,mFAItFD,EA1DgC,GAkFrCiB,GAAyC,WAC3C,SAASA,EAA0BhB,EAAUiB,EAAkBC,GAC7D,IAAIC,EAASjL,MAEb,OAAgBA,KAAM8K,GAEtB9K,KAAK8J,SAAWA,EAChB9J,KAAK+K,iBAAmBA,EACxB/K,KAAKgL,cAAgBA,EACrBhL,KAAKkL,MAAQ,KACblL,KAAKkL,MAAQF,EAAcd,aAAa,CACtCC,UAAU,IAGPnK,KAAKkL,OACRF,EAAcG,QAAO,SAAUC,GAC7B,OAAOH,EAAOC,MAAQE,KA0E5B,OArEA,OAAaN,EAA2B,CAAC,CACvC/H,IAAK,WACLpB,MAAO,SAAkB0I,GACvB,IAAIgB,EAASrL,KAEb,OAAKA,KAAKkL,MAgBHlL,KAAKkL,MAAMX,SAASF,GAAciB,OAAM,SAAUzF,GAGvD,OAAIA,GAAwB,+BAAfA,EAAM0F,MACjBvG,EAAI,kEACG,MAEAwF,QAAQE,OAAO7E,MAtBjB,IAAI2E,SAAQ,SAAUC,EAASC,GAKpClB,YAAW,WACL6B,EAAOH,MACTG,EAAOd,SAASF,GAAcD,KAAKK,EAASC,GAE5CD,EAAQ,QAET,QAeR,CACD1H,IAAK,yBACLpB,MAAO,SAAgCgJ,GAGjC3K,KAAKkL,MACPlL,KAAKkL,MAAMM,qBAAqBb,GAEhC3K,KAAKgL,cAAc5F,MAAMgF,MAAK,SAAUgB,GACtC,OAAOA,EAAKI,qBAAqBb,QAItC,CACD5H,IAAK,4BACLpB,MAAO,SAAmCgJ,GACxC3K,KAAKgL,cAAc5F,MAAMgF,MAAK,SAAUgB,GACtC,OAAOA,EAAKK,wBAAwBd,QAGvC,CACD5H,IAAK,wBACLpB,MAAO,WACL,IAAI+J,EAAe,0DAA4D1L,KAAK8J,SAAjE,iFAEf,eAAgB9J,KAAK+K,iBACvBW,GAAgB,uJACP,mBAAoB1L,KAAK+K,iBAClCW,GAAgB,2JAEhBA,GAAgB,kKAGlB1F,EAAK0F,OAIFZ,EA1FoC,GA+FzCa,GAAqC,WACvC,SAASA,EAAsBC,IAC7B,OAAgB5L,KAAM2L,GAEtB3L,KAAK4L,YAAcA,EAyBrB,OAtBA,OAAaD,EAAuB,CAAC,CACnC5I,IAAK,WACLpB,MAAO,SAAkB0I,GACvB,OAAOG,QAAQC,QAAQ,CACrBmB,YAAa5L,KAAK4L,gBAGrB,CACD7I,IAAK,yBACLpB,MAAO,SAAgCgJ,GAGrCA,EAAS3K,KAAK4L,eAEf,CACD7I,IAAK,4BACLpB,MAAO,SAAmCgJ,MACzC,CACD5H,IAAK,wBACLpB,MAAO,gBAGFgK,EA7BgC,GAkCzCA,GAAsBE,MAAQ,QAkB9B,IAAIC,GAAmB,IAOnBC,GAAkB,6EAIlBC,GAAY,YACZC,GAAe,eAsBfC,GAAwB,WAS1B,SAASA,EAASC,EAAMC,EAAQC,EAAWC,GACzC,IAAIC,EAAYrM,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,IAAmBA,UAAU,GAC3EsM,EAAiBtM,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,GACrFuM,EAAgCvM,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,IAAmBA,UAAU,IAEnG,OAAgBF,KAAMkM,GAEtBlM,KAAKoM,OAASA,EACdpM,KAAKqM,UAAYA,EACjBrM,KAAKsM,cAAgBA,EACrBtM,KAAKuM,UAAYA,EACjBvM,KAAKwM,eAAiBA,EACtBxM,KAAKyM,8BAAgCA,EACrCzM,KAAK0M,MAAQP,EAAKlD,cAClBjJ,KAAK2M,QAAU3M,KAAK0M,MAAM1D,OAAOhJ,KAAK0M,MAAME,QAAQ,KAAO,GAC3D5M,KAAK6M,aAAejJ,EAAkBwB,IAAI,QAAU+G,IAASnM,KAAK0M,MA+CpE,OA5CA,OAAaR,EAAU,CAAC,CACtBnJ,IAAK,kBACLpB,MAAO,WACL,MAA0C,OAAnC3B,KAAK6M,aAAa7D,OAAO,EAAG,KAEpC,CACDjG,IAAK,eACLpB,MAAO,WACL,MAAwB,mBAAjB3B,KAAK2M,SAAiD,wBAAjB3M,KAAK2M,UAElD,CACD5J,IAAK,OACLqC,IAAK,WACH,OAAOpF,KAAK0M,OAEdxH,IAAK,SAAa4H,GACZA,IAAY9M,KAAK6M,eACnB7M,KAAK6M,aAAeC,EAEhB9M,KAAK+M,mBACPnJ,EAAkBsB,IAAI,QAAUlF,KAAK0M,MAAO1M,KAAK6M,iBAItD,CACD9J,IAAK,WACLpB,MAAO,WACL,IAAIsC,EAAMjE,KAAKgN,cAMf,OAJIhN,KAAKwM,iBACPvI,GAAO,IAAMjE,KAAKwM,eAAiB,KAG9BvI,IAER,CACDlB,IAAK,cACLpB,MAAO,WACL,IAAIsL,EAAWjN,KAAKoM,OAAS,WAAa,UACtCc,EAAQlN,KAAKyM,8BAAgC,OAAO7G,OAAO5F,KAAKqM,WAAa,GACjF,MAAO,GAAGzG,OAAOqH,GAAUrH,OAAO5F,KAAKmM,KAAM,KAAKvG,OAAOsH,OAItDhB,EAvEmB,GAsF5B,SAASiB,GAAsBC,EAAUC,EAAMC,GAG7C,IAAIC,EAEJ,IAJA,QAAuB,iBAATF,EAAmB,+BACjC,QAAyB,iBAAXC,EAAqB,gCAG/BD,IAASrB,GACXuB,GAAWH,EAAShB,OAAS,SAAW,SAAWgB,EAASP,aAAe,YACtE,IAAIQ,IAASpB,GAGlB,MAAM,IAAIlG,MAAM,4BAA8BsH,GAF9CE,GAAWH,EAAShB,OAAS,WAAa,WAAagB,EAASP,aAAe,SApBnF,SAAiCO,GAC/B,OAAOA,EAASjB,OAASiB,EAASP,cAAgBO,EAASI,gBAAkBJ,EAASX,+BAwBlFgB,CAAwBL,KAC1BE,EAAW,GAAIF,EAASf,WAG1B,IAAIqB,EAAQ,GAIZ,OAHA/F,EAAK2F,GAAQ,SAAUvK,EAAKpB,GAC1B+L,EAAMtG,KAAKrE,EAAM,IAAMpB,MAElB4L,EAAUG,EAAM9E,KAAK,KAwB9B,IAAI+E,GAA+B,WACjC,SAASA,KACP,OAAgB3N,KAAM2N,GAEtB3N,KAAK4N,UAAY,GAqBnB,OAlBA,OAAaD,EAAiB,CAAC,CAC7B5K,IAAK,mBACLpB,MAAO,SAA0BT,GAC/B,IAAI2M,EAAS3N,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,GAE5E,QAASF,KAAK4N,UAAW1M,KAC5BlB,KAAK4N,UAAU1M,GAAQ,GAGzBlB,KAAK4N,UAAU1M,IAAS2M,IAEzB,CACD9K,IAAK,MACLpB,MAAO,WACL,OAAO,QAAS3B,KAAK4N,eAIlBD,EAzB0B,GA6C/BG,GAAc,GACdC,GAAY,GAEhB,SAASC,GAA0BZ,GACjC,IAAIa,EAAab,EAASpM,WAM1B,OAJK8M,GAAYG,KACfH,GAAYG,GAAc,IAAIN,IAGzBG,GAAYG,GAmCrB,IAAIC,GAA8B,WAIhC,SAASA,EAAeC,IACtB,OAAgBnO,KAAMkO,GAEtBlO,KAAKmO,WAAaA,EAClBnO,KAAKoO,iBAAmB,GACxBpO,KAAKqO,mBAAqB,EAC1BrO,KAAKsO,oBAAsB,EAC3BtO,KAAKuO,QAAU,KAgEjB,OA7DA,OAAaL,EAAgB,CAAC,CAC5BnL,IAAK,aACLpB,MAAO,SAAoB6M,EAAaC,GACtCzO,KAAKsO,mBAAqBE,EAC1BxO,KAAKuO,QAAUE,EAEXzO,KAAKsO,mBAAqBtO,KAAKqO,qBACjCrO,KAAKuO,UACLvO,KAAKuO,QAAU,QASlB,CACDxL,IAAK,iBACLpB,MAAO,SAAwB+M,EAAYxI,GACzC,IAAIyI,EAAS3O,KAEbA,KAAKoO,iBAAiBM,GAAcxI,EA+BpC,IA7BA,IAAI0I,EAAQ,WACV,IAAIC,EAAYF,EAAOP,iBAAiBO,EAAON,2BACxCM,EAAOP,iBAAiBO,EAAON,oBAUtC,IARA,IAAIS,EAAS,SAAgBvN,GACvBsN,EAAUtN,IACZgI,IAAe,WACboF,EAAOR,WAAWU,EAAUtN,QAKzBA,EAAI,EAAGA,EAAIsN,EAAUvN,SAAUC,EACtCuN,EAAOvN,GAGT,GAAIoN,EAAON,qBAAuBM,EAAOL,mBAOvC,OANIK,EAAOJ,UACTI,EAAOJ,UAEPI,EAAOJ,QAAU,MAGZ,QAGTI,EAAON,sBAGFrO,KAAKoO,iBAAiBpO,KAAKqO,qBAAqB,CAGrD,GAAa,UAFFO,IAEW,WAKrBV,EA3EyB,GAgG9Ba,GAAgC,QAChCC,GAAkC,QAkClCC,GAAqC,WAYvC,SAASA,EAAsBC,EAAQ9B,EAAU+B,EAAeC,EAAeC,EAAWC,EAAoBC,GAC5G,IAAIC,EAASxP,MAEb,OAAgBA,KAAMiP,GAEtBjP,KAAKkP,OAASA,EACdlP,KAAKoN,SAAWA,EAChBpN,KAAKmP,cAAgBA,EACrBnP,KAAKoP,cAAgBA,EACrBpP,KAAKqP,UAAYA,EACjBrP,KAAKsP,mBAAqBA,EAC1BtP,KAAKuP,cAAgBA,EACrBvP,KAAKyP,UAAY,EACjBzP,KAAK0P,cAAgB,EACrB1P,KAAK2P,gBAAiB,EACtB3P,KAAK4P,KAAOpK,EAAW0J,GACvBlP,KAAK6P,OAAS7B,GAA0BZ,GAExCpN,KAAK8P,MAAQ,SAAUxC,GAMrB,OAJIkC,EAAOJ,gBACT9B,EAA4B,GAAIkC,EAAOJ,eAGlCjC,GAAsBC,EAAUnB,GAAcqB,IAwSzD,OA/RA,OAAa2B,EAAuB,CAAC,CACnClM,IAAK,OACLpB,MAAO,SAAcoO,EAAWC,GAC9B,IAAIC,EAASjQ,KAEbA,KAAKkQ,cAAgB,EACrBlQ,KAAKmQ,cAAgBH,EACrBhQ,KAAKoQ,gBAAkB,IAAIlC,GAAe6B,GAC1C/P,KAAKqQ,WAAY,EACjBrQ,KAAKsQ,qBAAuB9G,YAAW,WACrCyG,EAAOL,KAAK,gCAGZK,EAAOM,YAEPN,EAAOK,qBAAuB,OAC7BnI,KAAKI,MAlEW,MAp/BC,SAA6BX,GACrD,IAAI,WAAuC,aAAxB4I,SAASC,WAC1B7I,QACK,CAGL,IAAI8I,GAAS,EAETC,EAAY,SAASA,IAClBH,SAASI,KAKTF,IACHA,GAAS,EACT9I,KANA4B,WAAWmH,EAAWxI,KAAKI,MAAM,MAUjCiI,SAASK,kBACXL,SAASK,iBAAiB,mBAAoBF,GAAW,GAEzDjN,OAAOmN,iBAAiB,OAAQF,GAAW,IAClCH,SAASM,cAGlBN,SAASM,YAAY,sBAAsB,WACb,aAAxBN,SAASC,YACXE,OAKJjN,OAAOoN,YAAY,SAAUH,KAshC7BI,EAAoB,WAClB,IAAId,EAAOI,UAAX,CAKAJ,EAAOe,gBAAkB,IAAIC,IAA2B,WACtD,IAAK,IAAIC,EAAQhR,UAAUoB,OAAQ6P,EAAO,IAAIzQ,MAAMwQ,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IACpFD,EAAKC,GAASlR,UAAUkR,GAG1B,IAAIC,EAAUF,EAAK,GACfG,EAAOH,EAAK,GACZI,EAAOJ,EAAK,GACLA,EAAK,GACLA,EAAK,GAIhB,GAFAlB,EAAOuB,wBAAwBL,GAE1BlB,EAAOe,gBAWZ,GAPIf,EAAOK,uBACTmB,aAAaxB,EAAOK,sBACpBL,EAAOK,qBAAuB,MAGhCL,EAAON,gBAAiB,EAEpB0B,IAAYtC,GACdkB,EAAOtN,GAAK2O,EACZrB,EAAOyB,SAAWH,MACb,IAAIF,IAAYrC,GAerB,MAAM,IAAIjJ,MAAM,kCAAoCsL,GAbhDC,GAGFrB,EAAOe,gBAAgBW,cAAe,EAGtC1B,EAAOG,gBAAgBwB,WAAWN,GAAM,WACtCrB,EAAOM,gBAGTN,EAAOM,gBAKV,WACD,IAAK,IAAIsB,EAAQ3R,UAAUoB,OAAQ6P,EAAO,IAAIzQ,MAAMmR,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFX,EAAKW,GAAS5R,UAAU4R,GAG1B,IAAIC,EAAKZ,EAAK,GACVjL,EAAOiL,EAAK,GAEhBlB,EAAOuB,wBAAwBL,GAE/BlB,EAAOG,gBAAgB4B,eAAeD,EAAI7L,MACzC,WACD+J,EAAOM,cACNN,EAAOH,OAGV,IAAImC,EAAY,CAChBA,MAA2C,KAC3CA,EAAwC,IAAI9J,KAAKI,MAAsB,IAAhBJ,KAAK+J,UAExDjC,EAAOe,gBAAgBmB,2BACzBF,EAA6C,GAAIhC,EAAOe,gBAAgBmB,0BAG1EF,EAAuB,EAAInG,GAEvBmE,EAAOX,qBACT2C,EAAiC,EAAIhC,EAAOX,oBAG1CW,EAAOV,gBACT0C,EAA4B,GAAIhC,EAAOV,eAGrCU,EAAOd,gBACT8C,EAA8B,EAAIhC,EAAOd,eAGvCc,EAAOb,gBACT6C,EAA+B,GAAIhC,EAAOb,eAGpB,oBAAbgD,UAA4BA,SAASC,UAAYtG,GAAgB3K,KAAKgR,SAASC,YACxFJ,EAAuB,EA1hBjB,KA6hBR,IAAIK,EAAarC,EAAOH,MAAMmC,GAE9BhC,EAAOL,KAAK,+BAAiC0C,GAE7CrC,EAAOe,gBAAgBuB,OAAOD,GAAY,qBAS7C,CACDvP,IAAK,QACLpB,MAAO,WACL3B,KAAKgR,gBAAgBwB,cAAcxS,KAAK2C,GAAI3C,KAAK0R,UACjD1R,KAAKyS,uBAAuBzS,KAAK2C,GAAI3C,KAAK0R,YAM3C,CACD3O,IAAK,wBACLpB,MAIA,cAKC,CACDoB,IAAK,YACLpB,MAAO,WACL3B,KAAKqQ,WAAY,EAEbrQ,KAAKgR,kBACPhR,KAAKgR,gBAAgB0B,QACrB1S,KAAKgR,gBAAkB,MAIrBhR,KAAK2S,iBACPnC,SAASI,KAAKgC,YAAY5S,KAAK2S,gBAC/B3S,KAAK2S,eAAiB,MAGpB3S,KAAKsQ,uBACPmB,aAAazR,KAAKsQ,sBAClBtQ,KAAKsQ,qBAAuB,QAO/B,CACDvN,IAAK,YACLpB,MAAO,WACA3B,KAAKqQ,YACRrQ,KAAK4P,KAAK,8BACV5P,KAAK6S,YAED7S,KAAKmQ,gBACPnQ,KAAKmQ,cAAcnQ,KAAK2P,gBACxB3P,KAAKmQ,cAAgB,SAS1B,CACDpN,IAAK,QACLpB,MAAO,WACA3B,KAAKqQ,YACRrQ,KAAK4P,KAAK,6BACV5P,KAAK6S,eASR,CACD9P,IAAK,OACLpB,MAAO,SAAcuE,GACnB,IAAI4M,GAAU,QAAU5M,GACxBlG,KAAKyP,WAAaqD,EAAQxR,OAC1BtB,KAAK6P,OAAOkD,iBAAiB,aAAcD,EAAQxR,QAQnD,IANA,IAAI0R,GAAa,QAAaF,GAG1BtL,EAAWF,EAAkB0L,EArRhBC,MAwRR1R,EAAI,EAAGA,EAAIiG,EAASlG,OAAQC,IACnCvB,KAAKgR,gBAAgBkC,eAAelT,KAAKkQ,cAAe1I,EAASlG,OAAQkG,EAASjG,IAClFvB,KAAKkQ,kBASR,CACDnN,IAAK,yBACLpB,MAAO,SAAgCgB,EAAIwQ,GACzC,KAAI,UAAJ,CAIAnT,KAAK2S,eAAiBnC,SAAS4C,cAAc,UAC7C,IAAInB,EAAY,CAChBA,OAA2D,KAC3DA,EAAoC,GAAItP,EACxCsP,EAAoC,GAAIkB,EACxCnT,KAAK2S,eAAeU,IAAMrT,KAAK8P,MAAMmC,GACrCjS,KAAK2S,eAAeW,MAAMC,QAAU,OACpC/C,SAASI,KAAK4C,YAAYxT,KAAK2S,mBAMhC,CACD5P,IAAK,0BACLpB,MAAO,SAAiCwP,GAEtC,IAAIzB,GAAgB,QAAUyB,GAAM7P,OACpCtB,KAAK0P,eAAiBA,EACtB1P,KAAK6P,OAAOkD,iBAAiB,iBAAkBrD,MAE/C,CAAC,CACH3M,IAAK,aACLpB,MAAO,WACLsN,EAAsBwE,aAAc,IAMrC,CACD1Q,IAAK,gBACLpB,MAAO,WACLsN,EAAsByE,gBAAiB,IAGxC,CACD3Q,IAAK,cACLpB,MAAO,WACL,QAAI,cAEOsN,EAAsBwE,eAKvBxE,EAAsByE,gBAAsC,oBAAblD,UAAsD,MAA1BA,SAAS4C,eAxkCtE,iBAAX1P,QAAuBA,OAAe,QAAKA,OAAe,OAAa,YAAM,UAAUtC,KAAKsC,OAAO0O,SAASuB,OASnG,iBAAZC,SAA8C,iBAAfA,QAAQC,SAokC9C5E,EA5UgC,GAmVrCgC,GAA0C,WAO5C,SAASA,EAA2B6C,EAAWC,EAAa/D,EAAcF,GAoBxE,IAnBA,OAAgB9P,KAAMiR,GAEtBjR,KAAKgQ,aAAeA,EACpBhQ,KAAK8P,MAAQA,EAGb9P,KAAKgU,oBAAsB,IAAIC,IAE/BjU,KAAKkU,YAAc,GAMnBlU,KAAKmU,cAAgBhM,KAAKI,MAAsB,IAAhBJ,KAAK+J,UAGrClS,KAAK2R,cAAe,GAEf,UAmCH3R,KAAK8T,UAAYA,EACjB9T,KAAK+T,YAAcA,MApCH,CAKhB/T,KAAKmS,yBAA2BpO,IAChCL,OArZkC,aAqZS1D,KAAKmS,0BAA4B2B,EAC5EpQ,OArZ+B,UAqZS1D,KAAKmS,0BAA4B4B,EAEzE/T,KAAKoU,SAAWnD,EAA2BoD,gBAE3C,IAAIC,EAAS,GAGb,GAAItU,KAAKoU,SAASf,KAA6D,gBAAtDrT,KAAKoU,SAASf,IAAIrK,OAAO,EAAG,cAAc1H,QAEjEgT,EAAS,4BADW9D,SAAS+D,OAC0B,eAGzD,IAAIC,EAAiB,eAAiBF,EAAS,iBAE/C,IACEtU,KAAKoU,SAASK,IAAIC,OAClB1U,KAAKoU,SAASK,IAAIE,MAAMH,GACxBxU,KAAKoU,SAASK,IAAI/B,QAClB,MAAO/S,GACPqF,EAAI,2BAEArF,EAAE8J,OACJzE,EAAIrF,EAAE8J,OAGRzE,EAAIrF,KAwQV,OA3PA,OAAasR,EAA4B,CAAC,CACxClO,IAAK,QACLpB,MAIA,WACE,IAAIiT,EAAS5U,KAGbA,KAAK6U,OAAQ,EAET7U,KAAKoU,WAIPpU,KAAKoU,SAASK,IAAI7D,KAAKkE,UAAY,GACnCtL,YAAW,WACe,OAApBoL,EAAOR,WACT5D,SAASI,KAAKgC,YAAYgC,EAAOR,UACjCQ,EAAOR,SAAW,QAEnBjM,KAAKI,MAAM,KAIhB,IAAIyH,EAAehQ,KAAKgQ,aAEpBA,IACFhQ,KAAKgQ,aAAe,KACpBA,OASH,CACDjN,IAAK,gBACLpB,MAAO,SAAuBgB,EAAIwQ,GAKhC,IAJAnT,KAAK+U,KAAOpS,EACZ3C,KAAKgV,KAAO7B,EACZnT,KAAK6U,OAAQ,EAEN7U,KAAKiV,mBAUb,CACDlS,IAAK,cACLpB,MAAO,WAIL,GAAI3B,KAAK6U,OAAS7U,KAAK2R,cAAgB3R,KAAKgU,oBAAoBkB,MAAQlV,KAAKkU,YAAY5S,OAAS,EAAI,EAAI,GAAI,CAE5GtB,KAAKmU,gBACL,IAAIlC,EAAY,GAChBA,EAAoC,GAAIjS,KAAK+U,KAC7C9C,EAAoC,GAAIjS,KAAKgV,KAC7C/C,EAAwC,IAAIjS,KAAKmU,cAMjD,IALA,IAAIgB,EAASnV,KAAK8P,MAAMmC,GAEpBmD,EAAgB,GAChB7T,EAAI,EAEDvB,KAAKkU,YAAY5S,OAAS,GAAG,CAIlC,KAFctB,KAAKkU,YAAY,GAEnBmB,EAAE/T,OA5fF,GA4f6B8T,EAAc9T,QA7fzC,MAmgBZ,MAJA,IAAIgU,EAAStV,KAAKkU,YAAYqB,QAC9BH,EAAgBA,EAAAA,OAA4D7T,EAAI,IAAM+T,EAAOE,IAA7EJ,MAAgI7T,EAAI,IAAM+T,EAAOG,GAAjJL,KAA2L7T,EAAI,IAAM+T,EAAOD,EAC5N9T,IAQJ,OAFA4T,GAAkBC,EAClBpV,KAAK0V,gBAAgBP,EAAQnV,KAAKmU,gBAC3B,EAEP,OAAO,IAUV,CACDpR,IAAK,iBACLpB,MAAO,SAAwBgU,EAAQC,EAAW1P,GAEhDlG,KAAKkU,YAAY9M,KAAK,CACpBoO,IAAKG,EACLF,GAAIG,EACJP,EAAGnP,IAIDlG,KAAK6U,OACP7U,KAAKiV,gBASR,CACDlS,IAAK,kBACLpB,MAAO,SAAyBkU,EAAKC,GACnC,IAAIC,EAAS/V,KAGbA,KAAKgU,oBAAoBgC,IAAIF,GAE7B,IAAIG,EAAe,WACjBF,EAAO/B,oBAAoBkC,OAAOJ,GAElCC,EAAOd,eAKLkB,EAAmB3M,WAAWyM,EAAc9N,KAAKI,MAhjB1B,OAyjB3BvI,KAAKuS,OAAOsD,GAPO,WAEjBpE,aAAa0E,GAEbF,SAWH,CACDlT,IAAK,SACLpB,MAAO,SAAgBkU,EAAKO,GAC1B,IAAIC,EAAUrW,MAEV,UAEFA,KAAKsW,eAAeT,EAAKO,GAEzB5M,YAAW,WACT,IAEE,IAAK6M,EAAQ1E,aACX,OAGF,IAAI4E,EAAYF,EAAQjC,SAASK,IAAIrB,cAAc,UAEnDmD,EAAUlJ,KAAO,kBACjBkJ,EAAUC,OAAQ,EAClBD,EAAUlD,IAAMwC,EAEhBU,EAAUE,OAASF,EAAUG,mBAAqB,WAEhD,IAAIC,EAASJ,EAAU9F,WAElBkG,GAAqB,WAAXA,GAAkC,aAAXA,IAEpCJ,EAAUE,OAASF,EAAUG,mBAAqB,KAE9CH,EAAUK,YACZL,EAAUK,WAAWhE,YAAY2D,GAGnCH,MAIJG,EAAUM,QAAU,WAClB7R,EAAI,oCAAsC6Q,GAC1CQ,EAAQ1E,cAAe,EAEvB0E,EAAQ3D,SAGV2D,EAAQjC,SAASK,IAAI7D,KAAK4C,YAAY+C,GACtC,MAAO5W,OAERwI,KAAKI,MAAM,OAGhB,CAAC,CACHxF,IAAK,gBACLpB,MAAO,WACL,IAAImV,EAAStG,SAAS4C,cAAc,UAGpC,GAFA0D,EAAOxD,MAAMC,QAAU,QAEnB/C,SAASI,KAoBX,KAAM,oGAnBNJ,SAASI,KAAK4C,YAAYsD,GAE1B,IAIUA,EAAOC,cAAcvG,UAI3BxL,EAAI,iCAEN,MAAOrF,GACP,IAAI4U,EAAS/D,SAAS+D,OACtBuC,EAAOzD,IAAM,gEAAkEkB,EAAS,2BAmB5F,OAVIuC,EAAOE,gBACTF,EAAOrC,IAAMqC,EAAOE,gBACXF,EAAOC,cAChBD,EAAOrC,IAAMqC,EAAOC,cAAcvG,SAEzBsG,EAAOtG,WAEhBsG,EAAOrC,IAAMqC,EAAOtG,UAGfsG,MAIJ7F,EAnUqC,GAyV1CgG,GAAgB,KAEQ,oBAAjBC,aACTD,GAAgBC,aACc,oBAAdC,YAChBF,GAAgBE,WAOlB,IAAIC,GAAmC,WAYrC,SAASA,EAAoBlI,EAAQ9B,EAAU+B,EAAeC,EAAeC,EAAWC,EAAoBC,IAC1G,OAAgBvP,KAAMoX,GAEtBpX,KAAKkP,OAASA,EACdlP,KAAKmP,cAAgBA,EACrBnP,KAAKoP,cAAgBA,EACrBpP,KAAKqP,UAAYA,EACjBrP,KAAKqX,eAAiB,KACtBrX,KAAKsX,OAAS,KACdtX,KAAKuX,YAAc,EACnBvX,KAAKyP,UAAY,EACjBzP,KAAK0P,cAAgB,EACrB1P,KAAK4P,KAAOpK,EAAWxF,KAAKkP,QAC5BlP,KAAK6P,OAAS7B,GAA0BZ,GACxCpN,KAAKuN,QAAU6J,EAAoBI,eAAepK,EAAUkC,EAAoBC,EAAeH,GAC/FpP,KAAKuM,UAAYa,EAASb,UAgX5B,OArWA,OAAa6K,EAAqB,CAAC,CACjCrU,IAAK,OACLpB,MAKA,SAAcoO,EAAWC,GACvB,IAAIyH,EAAUzX,KAEdA,KAAKgQ,aAAeA,EACpBhQ,KAAK+P,UAAYA,EACjB/P,KAAK4P,KAAK,2BAA6B5P,KAAKuN,SAC5CvN,KAAK2P,gBAAiB,EAEtB/L,EAAkBsB,IAAI,8BAA8B,GAEpD,IACE,IAAI,UAAa,CACf,IAAIwS,EAAS1X,KAAKuM,UAAY,YAAc,OAExCoL,EAAU,CACZC,QAAS,CACP,aAAc,YAAYhS,OAAOkG,GAAkB,KAAKlG,OAAOlD,EAAa,KAAKkD,OAAOiS,QAAQC,SAAU,KAAKlS,OAAO8R,GACtH,mBAAoB1X,KAAKmP,eAAiB,KAQ1CnP,KAAKqP,YACPsI,EAAQC,QAAuB,cAAI,UAAUhS,OAAO5F,KAAKqP,YAGvDrP,KAAKoP,gBACPuI,EAAQC,QAAQ,uBAAyB5X,KAAKoP,eAIhD,IAAI2I,EAAM,GACNC,EAA2C,IAAnChY,KAAKuN,QAAQX,QAAQ,UAAkBmL,EAAiB,aAAKA,EAAiB,YAAIA,EAAgB,YAAKA,EAAgB,WAE/HC,IACFL,EAAe,MAAI,CACjBM,OAAQD,IAIZhY,KAAKkY,OAAS,IAAIjB,GAAcjX,KAAKuN,QAAS,GAAIoK,OAC7C,CACL,IAAIQ,EAAW,CACbP,QAAS,CACP,mBAAoB5X,KAAKmP,eAAiB,GAC1C,sBAAuBnP,KAAKoP,eAAiB,KAGjDpP,KAAKkY,OAAS,IAAIjB,GAAcjX,KAAKuN,QAAS,GAAI4K,IAEpD,MAAOxY,GACPK,KAAK4P,KAAK,kCAEV,IAAIwI,EAASzY,EAAE4E,SAAW5E,EAAEuG,KAO5B,OALIkS,GACFpY,KAAK4P,KAAKwI,QAGZpY,KAAKuQ,YAIPvQ,KAAKkY,OAAOG,OAAS,WACnBZ,EAAQ7H,KAAK,wBAEb6H,EAAQ9H,gBAAiB,GAG3B3P,KAAKkY,OAAOI,QAAU,WACpBb,EAAQ7H,KAAK,0CAEb6H,EAAQS,OAAS,KAEjBT,EAAQlH,aAGVvQ,KAAKkY,OAAOK,UAAY,SAAUC,GAChCf,EAAQgB,oBAAoBD,IAG9BxY,KAAKkY,OAAOrB,QAAU,SAAUlX,GAC9B8X,EAAQ7H,KAAK,yCAGb,IAAI/J,EAAQlG,EAAE4E,SAAW5E,EAAEuG,KAEvBL,GACF4R,EAAQ7H,KAAK/J,GAGf4R,EAAQlH,eAOX,CACDxN,IAAK,QACLpB,MAAO,cACN,CACDoB,IAAK,wBACLpB,MAAO,WACLiC,EAAkBuB,OAAO,gCAE1B,CACDpC,IAAK,eACLpB,MAAO,SAAsBuE,GAG3B,GAFAlG,KAAKsX,OAAOlQ,KAAKlB,GAEblG,KAAKsX,OAAOhW,SAAWtB,KAAKuX,YAAa,CAC3C,IAAImB,EAAW1Y,KAAKsX,OAAO1O,KAAK,IAChC5I,KAAKsX,OAAS,KACd,IAAIqB,GAAW,QAASD,GAExB1Y,KAAK+P,UAAU4I,MAOlB,CACD5V,IAAK,uBACLpB,MAAO,SAA8BiX,GACnC5Y,KAAKuX,YAAcqB,EACnB5Y,KAAKsX,OAAS,KAOf,CACDvU,IAAK,qBACLpB,MAAO,SAA4BuE,GAIjC,IAHA,QAAuB,OAAhBlG,KAAKsX,OAAiB,kCAGzBpR,EAAK5E,QAAU,EAAG,CACpB,IAAIsX,EAAazS,OAAOD,GAExB,IAAK2S,MAAMD,GAET,OADA5Y,KAAK8Y,qBAAqBF,GACnB,KAKX,OADA5Y,KAAK8Y,qBAAqB,GACnB5S,IAOR,CACDnD,IAAK,sBACLpB,MAAO,SAA6BoX,GAClC,GAAoB,OAAhB/Y,KAAKkY,OAAT,CAIA,IAAIhS,EAAO6S,EAAW,KAKtB,GAJA/Y,KAAK0P,eAAiBxJ,EAAK5E,OAC3BtB,KAAK6P,OAAOkD,iBAAiB,iBAAkB7M,EAAK5E,QACpDtB,KAAKgZ,iBAEe,OAAhBhZ,KAAKsX,OAEPtX,KAAKiZ,aAAa/S,OACb,CAEL,IAAIgT,EAAgBlZ,KAAKmZ,mBAAmBjT,GAEtB,OAAlBgT,GACFlZ,KAAKiZ,aAAaC,OASvB,CACDnW,IAAK,OACLpB,MAAO,SAAcuE,GACnBlG,KAAKgZ,iBACL,IAAIlG,GAAU,QAAU5M,GACxBlG,KAAKyP,WAAaqD,EAAQxR,OAC1BtB,KAAK6P,OAAOkD,iBAAiB,aAAcD,EAAQxR,QAGnD,IAAIkG,EAAWF,EAAkBwL,EAjQR,OAmQrBtL,EAASlG,OAAS,GACpBtB,KAAKoZ,YAAYC,OAAO7R,EAASlG,SAInC,IAAK,IAAIC,EAAI,EAAGA,EAAIiG,EAASlG,OAAQC,IACnCvB,KAAKoZ,YAAY5R,EAASjG,MAG7B,CACDwB,IAAK,YACLpB,MAAO,WACL3B,KAAKqQ,WAAY,EAEbrQ,KAAKqX,iBACPiC,cAActZ,KAAKqX,gBACnBrX,KAAKqX,eAAiB,MAGpBrX,KAAKkY,SACPlY,KAAKkY,OAAOxF,QACZ1S,KAAKkY,OAAS,QAGjB,CACDnV,IAAK,YACLpB,MAAO,WACA3B,KAAKqQ,YACRrQ,KAAK4P,KAAK,+BACV5P,KAAK6S,YAED7S,KAAKgQ,eACPhQ,KAAKgQ,aAAahQ,KAAK2P,gBACvB3P,KAAKgQ,aAAe,SASzB,CACDjN,IAAK,QACLpB,MAAO,WACA3B,KAAKqQ,YACRrQ,KAAK4P,KAAK,6BACV5P,KAAK6S,eAQR,CACD9P,IAAK,iBACLpB,MAAO,WACL,IAAI4X,EAAUvZ,KAEdsZ,cAActZ,KAAKqX,gBACnBrX,KAAKqX,eAAiBmC,aAAY,WAE5BD,EAAQrB,QACVqB,EAAQH,YAAY,KAGtBG,EAAQP,mBAEP7Q,KAAKI,MAvUqB,SA+U9B,CACDxF,IAAK,cACLpB,MAAO,SAAqBsC,GAI1B,IACEjE,KAAKkY,OAAOuB,KAAKxV,GACjB,MAAOtE,GACPK,KAAK4P,KAAK,0CAA2CjQ,EAAE4E,SAAW5E,EAAEuG,KAAM,uBAC1EsD,WAAWxJ,KAAKuQ,UAAUtL,KAAKjF,MAAO,OAGxC,CAAC,CACH+C,IAAK,iBACLpB,MAAO,SAAwByL,EAAUkC,EAAoBC,EAAeH,GAC1E,IAAI6C,EAAY,GAmBhB,OAlBAA,EAAuB,EAAInG,KAEtB,WAAmC,oBAAbsG,UAA4BA,SAASC,UAAYtG,GAAgB3K,KAAKgR,SAASC,YACxGJ,EAAuB,EA54Cf,KA+4CN3C,IACF2C,EAAiC,EAAI3C,GAGnCC,IACF0C,EAA4B,GAAI1C,GAG9BH,IACF6C,EAA+B,GAAI7C,GAG9BjC,GAAsBC,EAAUpB,GAAWiG,KAEnD,CACDlP,IAAK,gBACLpB,MAAO,WACLyV,EAAoB1D,gBAAiB,IAEtC,CACD3Q,IAAK,cACLpB,MAAO,WACL,IAAI+X,GAAe,EAEnB,GAAyB,oBAAdC,WAA6BA,UAAUC,UAAW,CAC3D,IACIC,EAAkBF,UAAUC,UAAUE,MADpB,kCAGlBD,GAAmBA,EAAgBvY,OAAS,GAC1CyY,WAAWF,EAAgB,IAAM,MACnCH,GAAe,GAKrB,OAAQA,GAAkC,OAAlBzC,KAA2BG,EAAoB1D,iBAMxE,CACD3Q,IAAK,mBACLpB,MAAO,WAGL,OAAOiC,EAAkBL,oBAA6E,IAAxDK,EAAkBwB,IAAI,kCAIjEgS,EA3Y8B,GAkZvCA,GAAoB4C,6BAA+B,EAKnD5C,GAAoB6C,eAAiB,IA0BrC,IAAIC,GAAgC,WAIlC,SAASA,EAAiB9M,IACxB,OAAgBpN,KAAMka,GAEtBla,KAAKma,gBAAgB/M,GAyEvB,OAtEA,OAAa8M,EAAkB,CAAC,CAC9BnX,IAAK,kBACLpB,MAAO,SAAyByL,GAC9B,IAAIgN,EAAwBhD,IAAuBA,GAAiC,cAChFiD,EAAuBD,IAA0BhD,GAAoBkD,mBAUzE,GARIlN,EAASd,gBACN8N,GACHpU,EAAK,mFAGPqU,GAAuB,GAGrBA,EACFra,KAAKua,YAAc,CAACnD,QACf,CACL,IAGIoD,EAHAC,EAAaza,KAAKua,YAAc,GAEhCG,EAAYta,EAA2B8Z,EAAiBS,gBAG5D,IACE,IAAKD,EAAUjZ,MAAO+Y,EAAQE,EAAU5Z,KAAKY,MAAO,CAClD,IAAIkZ,EAAYJ,EAAM7Y,MAElBiZ,GAAaA,EAAuB,eACtCH,EAAWrT,KAAKwT,IAGpB,MAAO7Y,GACP2Y,EAAU/a,EAAEoC,GACZ,QACA2Y,EAAU7Y,QAQf,CACDkB,IAAK,mBACLpB,MAAO,WACL,GAAI3B,KAAKua,YAAYjZ,OAAS,EAC5B,OAAOtB,KAAKua,YAAY,GAExB,MAAM,IAAIxU,MAAM,6BAOnB,CACDhD,IAAK,mBACLpB,MAAO,WACL,OAAI3B,KAAKua,YAAYjZ,OAAS,EACrBtB,KAAKua,YAAY,GAEjB,QAGT,CAAC,CACHxX,IAAK,iBACLqC,IAAK,WACH,MAAO,CAAC6J,GAAuBmI,QAI5B8C,EAhF2B,GA6HhCW,GAA0B,WAa5B,SAASA,EAAWlY,EAAImY,EAAWC,EAAgBC,EAAgBC,EAAY9M,EAAY+M,EAAU/K,EAAegL,EAAS5L,IAC3H,OAAgBvP,KAAM6a,GAEtB7a,KAAK2C,GAAKA,EACV3C,KAAK8a,UAAYA,EACjB9a,KAAK+a,eAAiBA,EACtB/a,KAAKgb,eAAiBA,EACtBhb,KAAKib,WAAaA,EAClBjb,KAAKmO,WAAaA,EAClBnO,KAAKkb,SAAWA,EAChBlb,KAAKmQ,cAAgBA,EACrBnQ,KAAKmb,QAAUA,EACfnb,KAAKuP,cAAgBA,EACrBvP,KAAKob,gBAAkB,EACvBpb,KAAKqb,oBAAsB,GAC3Brb,KAAKsb,OAAS,EAGdtb,KAAK4P,KAAOpK,EAAW,KAAOxF,KAAK2C,GAAK,KACxC3C,KAAKub,kBAAoB,IAAIrB,GAAiBY,GAC9C9a,KAAK4P,KAAK,sBACV5P,KAAKwb,SA6fP,OAtfA,OAAaX,EAAY,CAAC,CACxB9X,IAAK,SACLpB,MAAO,WACL,IAAI8Z,EAAUzb,KAEV0b,EAAO1b,KAAKub,kBAAkBI,mBAClC3b,KAAK4b,MAAQ,IAAIF,EAAK1b,KAAK6b,mBAAoB7b,KAAK8a,UAAW9a,KAAK+a,eAAgB/a,KAAKgb,eAAgBhb,KAAKib,WAAY,KAAMjb,KAAKuP,eAGrIvP,KAAK8b,0BAA4BJ,EAAmC,8BAAK,EACzE,IAAIK,EAAoB/b,KAAKgc,cAAchc,KAAK4b,OAC5CK,EAAmBjc,KAAKkc,iBAAiBlc,KAAK4b,OAClD5b,KAAKmc,IAAMnc,KAAK4b,MAChB5b,KAAKoc,IAAMpc,KAAK4b,MAChB5b,KAAKqc,eAAiB,KACtBrc,KAAKsc,YAAa,EAQlB9S,YAAW,WAETiS,EAAQG,OAASH,EAAQG,MAAMlH,KAAKqH,EAAmBE,KACtD9T,KAAKI,MAAM,IACd,IAAIgU,EAAmBb,EAAqB,gBAAK,EAE7Ca,EAAmB,IACrBvc,KAAKwc,gBAAkB9S,IAAsB,WAC3C+R,EAAQe,gBAAkB,KAErBf,EAAQa,aACPb,EAAQG,OAASH,EAAQG,MAAMlM,cA3FT,QA4FxB+L,EAAQ7L,KAAK,wDAA0D6L,EAAQG,MAAMlM,cAAgB,wCAErG+L,EAAQa,YAAa,EAErBb,EAAQG,MAAMa,yBACLhB,EAAQG,OAASH,EAAQG,MAAMnM,UAlGpB,MAmGpBgM,EAAQ7L,KAAK,oDAAsD6L,EAAQG,MAAMnM,UAAY,uCAI7FgM,EAAQ7L,KAAK,+CAEb6L,EAAQ/I,YAIXvK,KAAKI,MAAMgU,OAGjB,CACDxZ,IAAK,mBACLpB,MAAO,WACL,MAAO,KAAO3B,KAAK2C,GAAK,IAAM3C,KAAKob,oBAEpC,CACDrY,IAAK,mBACLpB,MAAO,SAA0B+Z,GAC/B,IAAIgB,EAAU1c,KAEd,OAAO,SAAU2c,GACXjB,IAASgB,EAAQd,MACnBc,EAAQE,kBAAkBD,GACjBjB,IAASgB,EAAQL,gBAC1BK,EAAQ9M,KAAK,8BAEb8M,EAAQG,8BAERH,EAAQ9M,KAAK,gCAIlB,CACD7M,IAAK,gBACLpB,MAAO,SAAuB+Z,GAC5B,IAAIoB,EAAU9c,KAEd,OAAO,SAAUuE,GACQ,IAAnBuY,EAAQxB,SAGNI,IAASoB,EAAQV,IACnBU,EAAQC,0BAA0BxY,GACzBmX,IAASoB,EAAQT,eAC1BS,EAAQE,4BAA4BzY,GAEpCuY,EAAQlN,KAAK,iCASpB,CACD7M,IAAK,cACLpB,MAAO,SAAqBsb,GAE1B,IAAIC,EAAM,CACRC,EAAG,IACH9H,EAAG4H,GAELjd,KAAKod,UAAUF,KAEhB,CACDna,IAAK,uBACLpB,MAAO,WACD3B,KAAKmc,MAAQnc,KAAKqc,gBAAkBrc,KAAKoc,MAAQpc,KAAKqc,iBACxDrc,KAAK4P,KAAK,2CAA6C5P,KAAKqc,eAAenN,QAC3ElP,KAAK4b,MAAQ5b,KAAKqc,eAClBrc,KAAKqc,eAAiB,QAGzB,CACDtZ,IAAK,sBACLpB,MAAO,SAA6B0b,GAClC,GAjLa,MAiLOA,EAAa,CAC/B,IAAIC,EAAMD,EAAwB,EA5KzB,MA8KLC,EACFtd,KAAKud,6BAlLK,MAmLDD,GAETtd,KAAK4P,KAAK,wCACV5P,KAAKqc,eAAe3J,QAEhB1S,KAAKmc,MAAQnc,KAAKqc,gBAAkBrc,KAAKoc,MAAQpc,KAAKqc,gBACxDrc,KAAK0S,SAvLE,MAyLA4K,IACTtd,KAAK4P,KAAK,0BACV5P,KAAKwd,8BACLxd,KAAKud,iCAIV,CACDxa,IAAK,8BACLpB,MAAO,SAAqC8b,GAC1C,IAAIC,EAAQ3W,EAAW,IAAK0W,GACxBvX,EAAOa,EAAW,IAAK0W,GAE3B,GAAc,MAAVC,EACF1d,KAAK2d,oBAAoBzX,OACpB,IAAc,MAAVwX,EAIT,MAAM,IAAI3X,MAAM,2BAA6B2X,GAF7C1d,KAAKqb,oBAAoBjU,KAAKlB,MAKjC,CACDnD,IAAK,6BACLpB,MAAO,WACD3B,KAAKwd,6BAA+B,GACtCxd,KAAK4P,KAAK,oCACV5P,KAAKsc,YAAa,EAClBtc,KAAKqc,eAAeI,wBACpBzc,KAAK4d,wBAGL5d,KAAK4P,KAAK,8BACV5P,KAAKqc,eAAe5C,KAAK,CACvB0D,EAAG,IACH9H,EAAG,CACD8H,EA1ND,IA2NC9H,EAAG,SAKV,CACDtS,IAAK,sBACLpB,MAAO,WAEL3B,KAAKqc,eAAewB,QAEpB7d,KAAK4P,KAAK,mCACV5P,KAAKqc,eAAe5C,KAAK,CACvB0D,EAAG,IACH9H,EAAG,CACD8H,EA5OO,IA6OP9H,EAAG,MAKPrV,KAAK4P,KAAK,kCACV5P,KAAK4b,MAAMnC,KAAK,CACd0D,EAAG,IACH9H,EAAG,CACD8H,EArPa,IAsPb9H,EAAG,MAGPrV,KAAKmc,IAAMnc,KAAKqc,eAChBrc,KAAK8d,yBAEN,CACD/a,IAAK,4BACLpB,MAAO,SAAmC8b,GAExC,IAAIC,EAAQ3W,EAAW,IAAK0W,GACxBvX,EAAOa,EAAW,IAAK0W,GAEb,MAAVC,EACF1d,KAAK+d,WAAW7X,GACG,MAAVwX,GACT1d,KAAKge,eAAe9X,KAGvB,CACDnD,IAAK,iBACLpB,MAAO,SAAwB4C,GAC7BvE,KAAKie,qBAELje,KAAKmO,WAAW5J,KAEjB,CACDxB,IAAK,qBACLpB,MAAO,WACA3B,KAAKsc,aACRtc,KAAK8b,4BAED9b,KAAK8b,2BAA6B,IACpC9b,KAAK4P,KAAK,kCACV5P,KAAKsc,YAAa,EAClBtc,KAAK4b,MAAMa,4BAIhB,CACD1Z,IAAK,aACLpB,MAAO,SAAoB0b,GACzB,IAAIC,EAAMvW,EAvSG,IAuSsBsW,GAEnC,GAxSa,MAwSOA,EAAa,CAC/B,IAAIa,EAAUb,EAAwB,EAEtC,GAnSW,MAmSPC,EACFtd,KAAKme,aAAaD,QACb,GAvSQ,MAuSJZ,EAA0B,CACnCtd,KAAK4P,KAAK,qCACV5P,KAAKoc,IAAMpc,KAAKqc,eAEhB,IAAK,IAAI9a,EAAI,EAAGA,EAAIvB,KAAKqb,oBAAoB/Z,SAAUC,EACrDvB,KAAKge,eAAehe,KAAKqb,oBAAoB9Z,IAG/CvB,KAAKqb,oBAAsB,GAC3Brb,KAAK8d,2BArTQ,MAsTJR,EAGTtd,KAAKoe,sBAAsBF,GAxTjB,MAyTDZ,EAETtd,KAAKqe,SAASH,GA1TJ,MA2TDZ,EACTzX,EAAM,iBAAmBqY,GA3ThB,MA4TAZ,GACTtd,KAAK4P,KAAK,wBACV5P,KAAKie,qBACLje,KAAKse,iCAELzY,EAAM,mCAAqCyX,MAQhD,CACDva,IAAK,eACLpB,MAAO,SAAsB4c,GAC3B,IAAIC,EAAYD,EAAU9I,GACtBhT,EAAU8b,EAAUxW,EACpBoE,EAAOoS,EAAUE,EACrBze,KAAK0e,UAAYH,EAAU9c,EAC3BzB,KAAK8a,UAAU3O,KAAOA,EAEF,IAAhBnM,KAAKsb,SAGPtb,KAAK4b,MAAMiC,QACX7d,KAAK2e,yBAAyB3e,KAAK4b,MAAO4C,GAEtC1S,KAAqBrJ,GACvBuD,EAAK,sCAIPhG,KAAK4e,sBAGR,CACD7b,IAAK,mBACLpB,MAAO,WACL,IAAI+Z,EAAO1b,KAAKub,kBAAkBsD,mBAE9BnD,GACF1b,KAAK8e,cAAcpD,KAGtB,CACD3Y,IAAK,gBACLpB,MAAO,SAAuB+Z,GAC5B,IAAIqD,EAAU/e,KAEdA,KAAKqc,eAAiB,IAAIX,EAAK1b,KAAK6b,mBAAoB7b,KAAK8a,UAAW9a,KAAK+a,eAAgB/a,KAAKgb,eAAgBhb,KAAKib,WAAYjb,KAAK0e,WAGxI1e,KAAKwd,4BAA8B9B,EAAmC,8BAAK,EAC3E,IAAI3L,EAAY/P,KAAKgc,cAAchc,KAAKqc,gBACpCrM,EAAehQ,KAAKkc,iBAAiBlc,KAAKqc,gBAC9Crc,KAAKqc,eAAe3H,KAAK3E,EAAWC,GAEpCtG,IAAsB,WAChBqV,EAAQ1C,iBACV0C,EAAQnP,KAAK,gCAEbmP,EAAQ1C,eAAe3J,WAExBvK,KAAKI,MA1YQ,QA4YjB,CACDxF,IAAK,WACLpB,MAAO,SAAkBwK,GACvBnM,KAAK4P,KAAK,qCAAuCzD,GACjDnM,KAAK8a,UAAU3O,KAAOA,EAGF,IAAhBnM,KAAKsb,OAGPtb,KAAK0S,SAGL1S,KAAKgf,oBACLhf,KAAKwb,YAGR,CACDzY,IAAK,2BACLpB,MAAO,SAAkC+Z,EAAM8C,GAC7C,IAAIS,EAAUjf,KAEdA,KAAK4P,KAAK,oCACV5P,KAAK4b,MAAQF,EACb1b,KAAKsb,OAAS,EAIVtb,KAAKkb,WACPlb,KAAKkb,SAASsD,EAAWxe,KAAK0e,WAC9B1e,KAAKkb,SAAW,MAKqB,IAAnClb,KAAK8b,2BACP9b,KAAK4P,KAAK,kCACV5P,KAAKsc,YAAa,GAElB5S,IAAsB,WACpBuV,EAAQX,kCACPnW,KAAKI,MAlb0B,QAqbrC,CACDxF,IAAK,gCACLpB,MAAO,WAEA3B,KAAKsc,YAA8B,IAAhBtc,KAAKsb,SAG3Btb,KAAK4P,KAAK,4BACV5P,KAAKod,UAAU,CACbD,EAAG,IACH9H,EAAG,CACD8H,EAlbD,IAmbC9H,EAAG,SAKV,CACDtS,IAAK,6BACLpB,MAAO,WACL,IAAI+Z,EAAO1b,KAAKqc,eAChBrc,KAAKqc,eAAiB,KAElBrc,KAAKmc,MAAQT,GAAQ1b,KAAKoc,MAAQV,GAEpC1b,KAAK0S,UAQR,CACD3P,IAAK,oBACLpB,MAAO,SAA2Bgb,GAChC3c,KAAK4b,MAAQ,KAGRe,GAAiC,IAAhB3c,KAAKsb,OAUA,IAAhBtb,KAAKsb,QAGdtb,KAAK4P,KAAK,8BAVV5P,KAAK4P,KAAK,+BAEN5P,KAAK8a,UAAU/N,oBACjBnJ,EAAkBuB,OAAO,QAAUnF,KAAK8a,UAAU3O,MAElDnM,KAAK8a,UAAUjO,aAAe7M,KAAK8a,UAAU3O,OAQjDnM,KAAK0S,UAEN,CACD3P,IAAK,wBACLpB,MAAO,SAA+Bud,GACpClf,KAAK4P,KAAK,0DAEN5P,KAAKmb,UACPnb,KAAKmb,QAAQ+D,GACblf,KAAKmb,QAAU,MAKjBnb,KAAKmQ,cAAgB,KACrBnQ,KAAK0S,UAEN,CACD3P,IAAK,YACLpB,MAAO,SAAmBuE,GACxB,GAAoB,IAAhBlG,KAAKsb,OAGP,KAAM,8BAENtb,KAAKmc,IAAI1C,KAAKvT,KAOjB,CACDnD,IAAK,QACLpB,MAAO,WACe,IAAhB3B,KAAKsb,SAGPtb,KAAK4P,KAAK,gCACV5P,KAAKsb,OAAS,EAGdtb,KAAKgf,oBAEDhf,KAAKmQ,gBACPnQ,KAAKmQ,gBACLnQ,KAAKmQ,cAAgB,SAI1B,CACDpN,IAAK,oBACLpB,MAAO,WACL3B,KAAK4P,KAAK,iCAEN5P,KAAK4b,QACP5b,KAAK4b,MAAMlJ,QACX1S,KAAK4b,MAAQ,MAGX5b,KAAKqc,iBACPrc,KAAKqc,eAAe3J,QACpB1S,KAAKqc,eAAiB,MAGpBrc,KAAKwc,kBACP/K,aAAazR,KAAKwc,iBAClBxc,KAAKwc,gBAAkB,UAKtB3B,EA/hBqB,GA0jB1BsE,GAA6B,WAC/B,SAASA,KACP,OAAgBnf,KAAMmf,GAuCxB,OApCA,OAAaA,EAAe,CAAC,CAC3Bpc,IAAK,MACLpB,MAAO,SAAayd,EAAYlZ,EAAMmZ,EAAYC,MACjD,CACDvc,IAAK,QACLpB,MAAO,SAAeyd,EAAYlZ,EAAMmZ,EAAYC,MAMnD,CACDvc,IAAK,mBACLpB,MAAO,SAA0B4d,MAMhC,CACDxc,IAAK,uBACLpB,MAAO,SAA8B4d,MACpC,CACDxc,IAAK,kBACLpB,MAAO,SAAyByd,EAAYlZ,EAAMmZ,MACjD,CACDtc,IAAK,oBACLpB,MAAO,SAA2Byd,EAAYlZ,EAAMmZ,MACnD,CACDtc,IAAK,qBACLpB,MAAO,SAA4Byd,EAAYC,MAC9C,CACDtc,IAAK,cACLpB,MAAO,SAAqB6d,QAGvBL,EAzCwB,GAkE7BM,GAA4B,WAC9B,SAASA,EAAaC,IACpB,OAAgB1f,KAAMyf,GAEtBzf,KAAK0f,eAAiBA,EACtB1f,KAAK2f,WAAa,IAClB,QAAOjf,MAAMC,QAAQ+e,IAAmBA,EAAepe,OAAS,EAAG,8BA4DrE,OArDA,OAAame,EAAc,CAAC,CAC1B1c,IAAK,UACLpB,MAAO,SAAiBie,GACtB,GAAIlf,MAAMC,QAAQX,KAAK2f,WAAWC,IAAa,CAI7C,IAFA,IAAIC,GAAY,OAAmB7f,KAAK2f,WAAWC,IAE1CE,EAAQ5f,UAAUoB,OAAQgE,EAAU,IAAI5E,MAAMof,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IAC3Gza,EAAQya,EAAQ,GAAK7f,UAAU6f,GAGjC,IAAK,IAAIxe,EAAI,EAAGA,EAAIse,EAAUve,OAAQC,IACpCse,EAAUte,GAAGkN,SAAStO,MAAM0f,EAAUte,GAAGye,QAAS1a,MAIvD,CACDvC,IAAK,KACLpB,MAAO,SAAYie,EAAWnR,EAAUuR,GACtChgB,KAAKigB,mBAAmBL,GACxB5f,KAAK2f,WAAWC,GAAa5f,KAAK2f,WAAWC,IAAc,GAC3D5f,KAAK2f,WAAWC,GAAWxY,KAAK,CAC9BqH,SAAUA,EACVuR,QAASA,IAEX,IAAIE,EAAYlgB,KAAKmgB,gBAAgBP,GAEjCM,GACFzR,EAAStO,MAAM6f,EAASE,KAG3B,CACDnd,IAAK,MACLpB,MAAO,SAAaie,EAAWnR,EAAUuR,GACvChgB,KAAKigB,mBAAmBL,GAGxB,IAFA,IAAIC,EAAY7f,KAAK2f,WAAWC,IAAc,GAErCre,EAAI,EAAGA,EAAIse,EAAUve,OAAQC,IACpC,GAAIse,EAAUte,GAAGkN,WAAaA,KAAcuR,GAAWA,IAAYH,EAAUte,GAAGye,SAE9E,YADAH,EAAUO,OAAO7e,EAAG,KAKzB,CACDwB,IAAK,qBACLpB,MAAO,SAA4Bie,IACjC,QAAO5f,KAAK0f,eAAeW,MAAK,SAAUC,GACxC,OAAOA,IAAOV,KACZ,kBAAoBA,OAIrBH,EAlEuB,GA8F5Bc,GAA6B,SAAUC,IACzC,OAAUD,EAAeC,GAEzB,IAAIC,EAASzhB,EAAauhB,GAE1B,SAASA,IACP,IAAIG,EA2BJ,OAzBA,OAAgB1gB,KAAMugB,IAEtBG,EAAUD,EAAO/gB,KAAKM,KAAM,CAAC,YACrB2gB,SAAU,EAKI,oBAAXjd,aAA6D,IAA5BA,OAAOmN,mBAAqC,YACtFnN,OAAOmN,iBAAiB,UAAU,WAC3B6P,EAAQC,UACXD,EAAQC,SAAU,EAElBD,EAAQE,QAAQ,UAAU,OAE3B,GACHld,OAAOmN,iBAAiB,WAAW,WAC7B6P,EAAQC,UACVD,EAAQC,SAAU,EAElBD,EAAQE,QAAQ,UAAU,OAE3B,IAGEF,EAqBT,OAlBA,OAAaH,EAAe,CAAC,CAC3Bxd,IAAK,kBACLpB,MAAO,SAAyBie,GAE9B,OADA,QAAqB,WAAdA,EAAwB,uBAAyBA,GACjD,CAAC5f,KAAK2gB,WAEd,CACD5d,IAAK,kBACLpB,MAAO,WACL,OAAO3B,KAAK2gB,WAEZ,CAAC,CACH5d,IAAK,cACLpB,MAAO,WACL,OAAO,IAAI4e,MAIRA,EAtDwB,CAuD/Bd,IA+BEoB,GAAoB,WAKtB,SAASA,EAAKC,EAAcC,GAG1B,IAFA,OAAgB/gB,KAAM6gB,QAEL,IAAbE,EAAqB,CACvB/gB,KAAKghB,QAAUF,EAAaG,MAAM,KAIlC,IAFA,IAAIC,EAAS,EAEJ3f,EAAI,EAAGA,EAAIvB,KAAKghB,QAAQ1f,OAAQC,IACnCvB,KAAKghB,QAAQzf,GAAGD,OAAS,IAC3BtB,KAAKghB,QAAQE,GAAUlhB,KAAKghB,QAAQzf,GACpC2f,KAIJlhB,KAAKghB,QAAQ1f,OAAS4f,EACtBlhB,KAAKmhB,UAAY,OAEjBnhB,KAAKghB,QAAUF,EACf9gB,KAAKmhB,UAAYJ,EAmBrB,OAfA,OAAaF,EAAM,CAAC,CAClB9d,IAAK,WACLpB,MAAO,WAGL,IAFA,IAAIyd,EAAa,GAER7d,EAAIvB,KAAKmhB,UAAW5f,EAAIvB,KAAKghB,QAAQ1f,OAAQC,IAC5B,KAApBvB,KAAKghB,QAAQzf,KACf6d,GAAc,IAAMpf,KAAKghB,QAAQzf,IAIrC,OAAO6d,GAAc,QAIlByB,EA3Ce,GA8CxB,SAASO,KACP,OAAO,IAAIP,GAAK,IAGlB,SAASQ,GAAaC,GACpB,OAAIA,EAAKH,WAAaG,EAAKN,QAAQ1f,OAC1B,KAGFggB,EAAKN,QAAQM,EAAKH,WAO3B,SAASI,GAAcD,GACrB,OAAOA,EAAKN,QAAQ1f,OAASggB,EAAKH,UAGpC,SAASK,GAAaF,GACpB,IAAIP,EAAWO,EAAKH,UAMpB,OAJIJ,EAAWO,EAAKN,QAAQ1f,QAC1Byf,IAGK,IAAIF,GAAKS,EAAKN,QAASD,GAGhC,SAASU,GAAYH,GACnB,OAAIA,EAAKH,UAAYG,EAAKN,QAAQ1f,OACzBggB,EAAKN,QAAQM,EAAKN,QAAQ1f,OAAS,GAGrC,KAoBT,SAASogB,GAAUJ,GACjB,IAAIK,EAAQzhB,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,EAChF,OAAOohB,EAAKN,QAAQ/f,MAAMqgB,EAAKH,UAAYQ,GAG7C,SAASC,GAAWN,GAClB,GAAIA,EAAKH,WAAaG,EAAKN,QAAQ1f,OACjC,OAAO,KAKT,IAFA,IAAIugB,EAAS,GAEJtgB,EAAI+f,EAAKH,UAAW5f,EAAI+f,EAAKN,QAAQ1f,OAAS,EAAGC,IACxDsgB,EAAOza,KAAKka,EAAKN,QAAQzf,IAG3B,OAAO,IAAIsf,GAAKgB,EAAQ,GAG1B,SAASC,GAAUR,EAAMS,GAGvB,IAFA,IAAIF,EAAS,GAEJtgB,EAAI+f,EAAKH,UAAW5f,EAAI+f,EAAKN,QAAQ1f,OAAQC,IACpDsgB,EAAOza,KAAKka,EAAKN,QAAQzf,IAG3B,GAAIwgB,aAAwBlB,GAC1B,IAAK,IAAImB,EAAKD,EAAaZ,UAAWa,EAAKD,EAAaf,QAAQ1f,OAAQ0gB,IACtEH,EAAOza,KAAK2a,EAAaf,QAAQgB,SAKnC,IAFA,IAAIC,EAAcF,EAAad,MAAM,KAE5BiB,EAAM,EAAGA,EAAMD,EAAY3gB,OAAQ4gB,IACtCD,EAAYC,GAAK5gB,OAAS,GAC5BugB,EAAOza,KAAK6a,EAAYC,IAK9B,OAAO,IAAIrB,GAAKgB,EAAQ,GAO1B,SAASM,GAAYb,GACnB,OAAOA,EAAKH,WAAaG,EAAKN,QAAQ1f,OAOxC,SAAS8gB,GAAgBC,EAAWC,GAClC,IAAIC,EAAQlB,GAAagB,GACrBG,EAAQnB,GAAaiB,GAEzB,GAAc,OAAVC,EACF,OAAOD,EACF,GAAIC,IAAUC,EACnB,OAAOJ,GAAgBZ,GAAaa,GAAYb,GAAac,IAE7D,MAAM,IAAIvc,MAAM,8BAAgCuc,EAAhC,8BAAiFD,EAAY,KA+BjH,SAASI,GAAWnB,EAAMoB,GACxB,GAAInB,GAAcD,KAAUC,GAAcmB,GACxC,OAAO,EAGT,IAAK,IAAInhB,EAAI+f,EAAKH,UAAWwB,EAAID,EAAMvB,UAAW5f,GAAK+f,EAAKN,QAAQ1f,OAAQC,IAAKohB,IAC/E,GAAIrB,EAAKN,QAAQzf,KAAOmhB,EAAM1B,QAAQ2B,GACpC,OAAO,EAIX,OAAO,EAOT,SAASC,GAAatB,EAAMoB,GAC1B,IAAInhB,EAAI+f,EAAKH,UACTwB,EAAID,EAAMvB,UAEd,GAAII,GAAcD,GAAQC,GAAcmB,GACtC,OAAO,EAGT,KAAOnhB,EAAI+f,EAAKN,QAAQ1f,QAAQ,CAC9B,GAAIggB,EAAKN,QAAQzf,KAAOmhB,EAAM1B,QAAQ2B,GACpC,OAAO,IAGPphB,IACAohB,EAGJ,OAAO,EAcT,IAAIE,IAA8B,QAKlC,SAASA,EAAevB,EAAMwB,IAC5B,OAAgB9iB,KAAM6iB,GAEtB7iB,KAAK8iB,aAAeA,EACpB9iB,KAAK+iB,OAASrB,GAAUJ,EAAM,GAG9BthB,KAAKgjB,YAAc7a,KAAK8a,IAAI,EAAGjjB,KAAK+iB,OAAOzhB,QAE3C,IAAK,IAAIC,EAAI,EAAGA,EAAIvB,KAAK+iB,OAAOzhB,OAAQC,IACtCvB,KAAKgjB,cAAe,QAAahjB,KAAK+iB,OAAOxhB,IAG/C2hB,GAAyBljB,SAuB3B,SAASkjB,GAAyBC,GAChC,GAAIA,EAAeH,YAtSO,IAuSxB,MAAM,IAAIjd,MAAMod,EAAeL,aAAfK,yCAAmGA,EAAeH,YAAc,MAGlJ,GAAIG,EAAeJ,OAAOzhB,OA7SP,GA8SjB,MAAM,IAAIyE,MAAMod,EAAeL,aAAfK,gGAAoJC,GAA4BD,IAQpM,SAASC,GAA4BD,GACnC,OAAqC,IAAjCA,EAAeJ,OAAOzhB,OACjB,GAGF,gBAAkB6hB,EAAeJ,OAAOna,KAAK,KAAO,IAoB7D,IAAIya,GAAiC,SAAUC,IAC7C,OAAUD,EAAmBC,GAE7B,IAAIC,EAAUvkB,EAAaqkB,GAE3B,SAASA,IACP,IAAIG,EAKAC,EACAC,EAqCJ,OAzCA,OAAgB1jB,KAAMqjB,GAEtBG,EAAUD,EAAQ7jB,KAAKM,KAAM,CAAC,YAIN,oBAAbwQ,eAAiE,IAA9BA,SAASK,wBACnB,IAAvBL,SAAiB,QAE1BkT,EAAmB,mBACnBD,EAAS,eACiC,IAA1BjT,SAAoB,WACpCkT,EAAmB,sBACnBD,EAAS,kBACgC,IAAzBjT,SAAmB,UACnCkT,EAAmB,qBACnBD,EAAS,iBACoC,IAA7BjT,SAAuB,eACvCkT,EAAmB,yBACnBD,EAAS,iBAQbD,EAAQG,UAAW,EAEfD,GACFlT,SAASK,iBAAiB6S,GAAkB,WAC1C,IAAIE,GAAWpT,SAASiT,GAEpBG,IAAYJ,EAAQG,WACtBH,EAAQG,SAAWC,EAEnBJ,EAAQ5C,QAAQ,UAAWgD,OAE5B,GAGEJ,EAgBT,OAbA,OAAaH,EAAmB,CAAC,CAC/BtgB,IAAK,kBACLpB,MAAO,SAAyBie,GAE9B,OADA,QAAqB,YAAdA,EAAyB,uBAAyBA,GAClD,CAAC5f,KAAK2jB,aAEb,CAAC,CACH5gB,IAAK,cACLpB,MAAO,WACL,OAAO,IAAI0hB,MAIRA,EAjE4B,CAkEnC5D,IAmBEoE,GAAsB,IAmBtBC,GAAoC,SAAUC,IAChD,OAAUD,EAAsBC,GAEhC,IA8uBQC,EA9uBJC,EAAUjlB,EAAa8kB,GAO3B,SAASA,EAAqBhJ,EAAWC,EAAgBmJ,EAAeC,EAAkBC,EAAqBC,EAAoBC,EAAwBC,GACzJ,IAAIC,EA2CJ,IAzCA,OAAgBxkB,KAAM8jB,IAEtBU,EAAUP,EAAQvkB,KAAKM,OACf8a,UAAYA,EACpB0J,EAAQzJ,eAAiBA,EACzByJ,EAAQN,cAAgBA,EACxBM,EAAQL,iBAAmBA,EAC3BK,EAAQJ,oBAAsBA,EAC9BI,EAAQH,mBAAqBA,EAC7BG,EAAQF,uBAAyBA,EACjCE,EAAQD,cAAgBA,EAExBC,EAAQ7hB,GAAKmhB,EAAqBW,8BAClCD,EAAQ5U,KAAOpK,EAAW,KAAOgf,EAAQ7hB,GAAK,KAC9C6hB,EAAQE,kBAAoB,GAC5BF,EAAQG,QAAU,IAAIC,IACtBJ,EAAQK,iBAAmB,GAC3BL,EAAQM,iBAAmB,GAC3BN,EAAQO,qBAAuB,EAC/BP,EAAQQ,qBAAuB,EAC/BR,EAAQS,0BAA4B,GACpCT,EAAQU,YAAa,EACrBV,EAAQW,gBAAkBtB,GAC1BW,EAAQY,mBAtDsB,IAuD9BZ,EAAQa,uBAAyB,KACjCb,EAAQjV,cAAgB,KACxBiV,EAAQc,0BAA4B,KACpCd,EAAQb,UAAW,EAEnBa,EAAQe,eAAiB,GACzBf,EAAQgB,eAAiB,EACzBhB,EAAQiB,UAAY,KACpBjB,EAAQvJ,WAAa,KACrBuJ,EAAQxJ,eAAiB,KACzBwJ,EAAQkB,oBAAqB,EAC7BlB,EAAQmB,uBAAyB,EACjCnB,EAAQoB,2BAA6B,EACrCpB,EAAQqB,kBAAmB,EAC3BrB,EAAQsB,2BAA6B,KACrCtB,EAAQuB,+BAAiC,KAErCxB,KAAkB,UACpB,MAAM,IAAIxe,MAAM,kFASlB,OANAsd,GAAkB2C,cAAcC,GAAG,UAAWzB,EAAQ0B,YAAY,OAAuB1B,KAE9C,IAAvC1J,EAAU3O,KAAKS,QAAQ,YACzB2T,GAAcyF,cAAcC,GAAG,SAAUzB,EAAQ2B,WAAW,OAAuB3B,IAG9EA,EAkiCT,OA/hCA,OAAaV,EAAsB,CAAC,CAClC/gB,IAAK,cACLpB,MAAO,SAAqBykB,EAAQxV,EAAMyV,GACxC,IAAIC,IAActmB,KAAKwlB,eACnBtI,EAAM,CACRqJ,EAAGD,EACH7f,EAAG2f,EACH1f,EAAGkK,GAEL5Q,KAAK4P,MAAK,QAAUsN,KACpB,QAAOld,KAAKklB,WAAY,0DACxBllB,KAAKylB,UAAUe,YAAYtJ,GAEvBmJ,IACFrmB,KAAKulB,eAAee,GAAaD,KAGpC,CACDtjB,IAAK,MACLpB,MAAO,SAAauL,GAClB,IAAIuZ,EAAUzmB,KAEdA,KAAK0mB,kBACL,IAAIC,EAAW,IAAI,KACfC,EAAU,CACZC,EAAG3Z,EAAM4Z,MAAM9lB,WACf+lB,EAAG7Z,EAAM8Z,cAEPC,EAAiB,CACnBb,OAAQ,IACRQ,QAASA,EACTvH,WAAY,SAAoB9a,GAC9B,IAAI2Z,EAAU3Z,EAAW,EAEJ,OAAjBA,EAAW,GACbkiB,EAAQvC,cAAc0C,EAAW,EAAG1I,GAEpC,EAEA,MAEAyI,EAASlc,QAAQyT,IAEjByI,EAASjc,OAAOwT,KAItBle,KAAK8kB,iBAAiB1d,KAAK6f,GAC3BjnB,KAAKglB,uBACL,IAAIkC,EAAQlnB,KAAK8kB,iBAAiBxjB,OAAS,EA2B3C,OAzBKtB,KAAKklB,YACR1b,YAAW,WACT,IAAIpE,EAAMqhB,EAAQ3B,iBAAiBoC,QAEvBziB,IAARW,GAAqB6hB,IAAmB7hB,WAIrCqhB,EAAQ3B,iBAAiBoC,GAChCT,EAAQzB,uBAE6B,IAAjCyB,EAAQzB,uBACVyB,EAAQ3B,iBAAmB,IAG7B2B,EAAQ7W,KAAK,OAASsX,EAAQ,4BAE9BP,EAASjc,OAAO,IAAI3E,MAAM,0BAvJV,KA2JhB/F,KAAKklB,YACPllB,KAAKmnB,SAASD,GAGTP,EAASS,UAEjB,CACDrkB,IAAK,SACLpB,MAAO,SAAgBuL,EAAOma,EAAeC,EAAKjI,GAChDrf,KAAK0mB,kBACL,IAAIa,EAAUra,EAAMsa,iBAEhBpI,EAAalS,EAAM4Z,MAAM9lB,WAE7BhB,KAAK4P,KAAK,qBAAuBwP,EAAa,IAAMmI,GAE/CvnB,KAAK2kB,QAAQ8C,IAAIrI,IACpBpf,KAAK2kB,QAAQzf,IAAIka,EAAY,IAAIwF,MAGnC,QAAO1X,EAAMwa,aAAaC,cAAgBza,EAAMwa,aAAaE,eAAgB,uDAC7E,SAAQ5nB,KAAK2kB,QAAQvf,IAAIga,GAAYqI,IAAIF,GAAU,gDACnD,IAAIM,EAAa,CACfxI,WAAYA,EACZyI,OAAQT,EACRna,MAAOA,EACPoa,IAAKA,GAEPtnB,KAAK2kB,QAAQvf,IAAIga,GAAYla,IAAIqiB,EAASM,GAEtC7nB,KAAKklB,YACPllB,KAAK+nB,YAAYF,KAGpB,CACD9kB,IAAK,WACLpB,MAAO,SAAkBulB,GACvB,IAAIc,EAAUhoB,KAEVoF,EAAMpF,KAAK8kB,iBAAiBoC,GAChClnB,KAAKwmB,YAAY,IAAKphB,EAAIwhB,SAAS,SAAUriB,UACpCyjB,EAAQlD,iBAAiBoC,GAChCc,EAAQhD,uBAE6B,IAAjCgD,EAAQhD,uBACVgD,EAAQlD,iBAAmB,IAGzB1f,EAAIia,YACNja,EAAIia,WAAW9a,QAIpB,CACDxB,IAAK,cACLpB,MAAO,SAAqBkmB,GAC1B,IAAII,EAAUjoB,KAEVkN,EAAQ2a,EAAW3a,MAEnBkS,EAAalS,EAAM4Z,MAAM9lB,WAEzBumB,EAAUra,EAAMsa,iBACpBxnB,KAAK4P,KAAK,aAAewP,EAAa,QAAUmI,GAChD,IAAIW,EAAM,CAERrB,EAAGzH,GAIDyI,EAAWP,MACbY,EAAO,EAAIhb,EAAM8Z,aACjBkB,EAAO,EAAIL,EAAWP,KAGxBY,EAEG,EAAIL,EAAWC,SAClB9nB,KAAKwmB,YAVQ,IAUY0B,GAAK,SAAU3jB,GACtC,IAAI2Z,EAAU3Z,EAEX,EACC4jB,EAAS5jB,EAEV,EAEHuf,EAAqBsE,sBAAsBlK,EAAShR,IAE5B+a,EAAQtD,QAAQvf,IAAIga,IAAe6I,EAAQtD,QAAQvf,IAAIga,GAAYha,IAAImiB,MAGrEM,IACxBI,EAAQrY,KAAK,kBAAmBrL,GAEjB,OAAX4jB,GACFF,EAAQI,cAAcjJ,EAAYmI,GAGhCM,EAAWxI,YACbwI,EAAWxI,WAAW8I,EAAQjK,SAKrC,CACDnb,IAAK,mBACLpB,MAAO,SAA0B4d,GAC/Bvf,KAAKib,WAAasE,EAClBvf,KAAK4P,KAAK,wBAEN5P,KAAKib,WACPjb,KAAKsoB,UAIDtoB,KAAKklB,YACPllB,KAAKwmB,YAAY,SAAU,IAAI,eAInCxmB,KAAKuoB,uCAAuChJ,KAE7C,CACDxc,IAAK,yCACLpB,MAAO,SAAgD6mB,IAG9BA,GAAoC,KAAtBA,EAAWlnB,SAExB,QAAQknB,MAC9BxoB,KAAK4P,KAAK,iEACV5P,KAAKolB,mBA7RwB,OAgShC,CACDriB,IAAK,uBACLpB,MAAO,SAA8B4d,GACnCvf,KAAKgb,eAAiBuE,EACtBvf,KAAK4P,KAAK,6BAEN5P,KAAKgb,eACPhb,KAAKyoB,cAKDzoB,KAAKklB,YACPllB,KAAKwmB,YAAY,WAAY,IAAI,iBAStC,CACDzjB,IAAK,UACLpB,MAAO,WACL,IAAI+mB,EAAU1oB,KAEd,GAAIA,KAAKklB,YAAcllB,KAAKib,WAAY,CACtC,IAAIsE,EAAQvf,KAAKib,WACb0N,GAAa,QAAcpJ,GAAS,OAAS,QAC7CqJ,EAAc,CAChBC,KAAMtJ,GAGmB,OAAvBvf,KAAKukB,cACPqE,EAAoB,QAAI,EACe,iBAAvB5oB,KAAKukB,gBACrBqE,EAAqB,QAAI5oB,KAAKukB,eAGhCvkB,KAAKwmB,YAAYmC,EAAYC,GAAa,SAAUE,GAClD,IAAIX,EAASW,EAEV,EACC5iB,EAAO4iB,EAER,GAAK,QAEJJ,EAAQzN,aAAesE,IACV,OAAX4I,EACFO,EAAQ/C,uBAAyB,EAGjC+C,EAAQK,eAAeZ,EAAQjiB,UAYxC,CACDnD,IAAK,cACLpB,MAAO,WACL,IAAIqnB,EAAUhpB,KAEVA,KAAKklB,YAAcllB,KAAKgb,gBAC1Bhb,KAAKwmB,YAAY,WAAY,CAC3B,MAASxmB,KAAKgb,iBACb,SAAU8N,GACX,IAAIX,EAASW,EAEV,EACC5iB,EAAO4iB,EAER,GAAK,QAEO,OAAXX,EACFa,EAAQpD,2BAA6B,EAErCoD,EAAQC,mBAAmBd,EAAQjiB,QAS1C,CACDnD,IAAK,WACLpB,MAAO,SAAkBuL,EAAOoa,GAC9B,IAAIlI,EAAalS,EAAM4Z,MAAM9lB,WAEzBumB,EAAUra,EAAMsa,iBACpBxnB,KAAK4P,KAAK,uBAAyBwP,EAAa,IAAMmI,IACtD,QAAOra,EAAMwa,aAAaC,cAAgBza,EAAMwa,aAAaE,eAAgB,wDAChE5nB,KAAKqoB,cAAcjJ,EAAYmI,IAE9BvnB,KAAKklB,YACjBllB,KAAKkpB,cAAc9J,EAAYmI,EAASra,EAAM8Z,aAAcM,KAG/D,CACDvkB,IAAK,gBACLpB,MAAO,SAAuByd,EAAYmI,EAAS4B,EAAU7B,GAC3DtnB,KAAK4P,KAAK,eAAiBwP,EAAa,QAAUmI,GAClD,IAAIW,EAAM,CAERrB,EAAGzH,GAIDkI,IACFY,EAAO,EAAIiB,EACXjB,EAAO,EAAIZ,GAGbtnB,KAAKwmB,YAPQ,IAOY0B,KAE1B,CACDnlB,IAAK,kBACLpB,MAAO,SAAyByd,EAAYlZ,EAAMmZ,GAChDrf,KAAK0mB,kBAED1mB,KAAKklB,WACPllB,KAAKopB,kBAAkB,IAAKhK,EAAYlZ,EAAMmZ,GAE9Crf,KAAKilB,0BAA0B7d,KAAK,CAClCgY,WAAYA,EACZgH,OAAQ,IACRlgB,KAAMA,EACNmZ,WAAYA,MAIjB,CACDtc,IAAK,oBACLpB,MAAO,SAA2Byd,EAAYlZ,EAAMmZ,GAClDrf,KAAK0mB,kBAED1mB,KAAKklB,WACPllB,KAAKopB,kBAAkB,KAAMhK,EAAYlZ,EAAMmZ,GAE/Crf,KAAKilB,0BAA0B7d,KAAK,CAClCgY,WAAYA,EACZgH,OAAQ,KACRlgB,KAAMA,EACNmZ,WAAYA,MAIjB,CACDtc,IAAK,qBACLpB,MAAO,SAA4Byd,EAAYC,GAC7Crf,KAAK0mB,kBAED1mB,KAAKklB,WACPllB,KAAKopB,kBAAkB,KAAMhK,EAAY,KAAMC,GAE/Crf,KAAKilB,0BAA0B7d,KAAK,CAClCgY,WAAYA,EACZgH,OAAQ,KACRlgB,KAAM,KACNmZ,WAAYA,MAIjB,CACDtc,IAAK,oBACLpB,MAAO,SAA2BykB,EAAQhH,EAAYlZ,EAAMmZ,GAC1D,IAAIuH,EAAU,CAEZC,EAAGzH,EAGH/J,EAAGnP,GAELlG,KAAK4P,KAAK,gBAAkBwW,EAAQQ,GACpC5mB,KAAKwmB,YAAYJ,EAAQQ,GAAS,SAAUyC,GACtChK,GACF7V,YAAW,WACT6V,EAAWgK,EAER,EAAGA,EAEH,KACFlhB,KAAKI,MAAM,SAInB,CACDxF,IAAK,MACLpB,MAAO,SAAayd,EAAYlZ,EAAMmZ,EAAYC,GAChDtf,KAAKspB,YAAY,IAAKlK,EAAYlZ,EAAMmZ,EAAYC,KAErD,CACDvc,IAAK,QACLpB,MAAO,SAAeyd,EAAYlZ,EAAMmZ,EAAYC,GAClDtf,KAAKspB,YAAY,IAAKlK,EAAYlZ,EAAMmZ,EAAYC,KAErD,CACDvc,IAAK,cACLpB,MAAO,SAAqBykB,EAAQhH,EAAYlZ,EAAMmZ,EAAYC,GAChEtf,KAAK0mB,kBACL,IAAIE,EAAU,CAEZC,EAAGzH,EAGH/J,EAAGnP,QAGQzB,IAAT6a,IACFsH,EAEG,EAAItH,GAITtf,KAAK6kB,iBAAiBzd,KAAK,CACzBgf,OAAQA,EACRQ,QAASA,EACTvH,WAAYA,IAEdrf,KAAK+kB,uBACL,IAAImC,EAAQlnB,KAAK6kB,iBAAiBvjB,OAAS,EAEvCtB,KAAKklB,WACPllB,KAAKupB,SAASrC,GAEdlnB,KAAK4P,KAAK,kBAAoBwP,KAGjC,CACDrc,IAAK,WACLpB,MAAO,SAAkBulB,GACvB,IAAIsC,EAAUxpB,KAEVomB,EAASpmB,KAAK6kB,iBAAiBqC,GAAOd,OACtCQ,EAAU5mB,KAAK6kB,iBAAiBqC,GAAON,QACvCvH,EAAarf,KAAK6kB,iBAAiBqC,GAAO7H,WAC9Crf,KAAK6kB,iBAAiBqC,GAAOuC,OAASzpB,KAAKklB,WAC3CllB,KAAKwmB,YAAYJ,EAAQQ,GAAS,SAAUriB,GAC1CilB,EAAQ5Z,KAAKwW,EAAS,YAAa7hB,UAE5BilB,EAAQ3E,iBAAiBqC,GAChCsC,EAAQzE,uBAE6B,IAAjCyE,EAAQzE,uBACVyE,EAAQ3E,iBAAmB,IAGzBxF,GACFA,EAAW9a,EAER,EAAGA,EAEH,QAIR,CACDxB,IAAK,cACLpB,MAAO,SAAqB6d,GAC1B,IAAIkK,EAAU1pB,KAGd,GAAIA,KAAKklB,WAAY,CACnB,IAAI0B,EAAU,CAEZnf,EAAG+X,GAELxf,KAAK4P,KAAK,cAAegX,GACzB5mB,KAAKwmB,YAEL,IAAKI,GAAS,SAAU/mB,GAKtB,GAAe,OAJFA,EAEV,EAEkB,CACnB,IAAI8pB,EAAc9pB,EAEf,EAEH6pB,EAAQ9Z,KAAK,cAAe,wBAA0B+Z,UAK7D,CACD5mB,IAAK,iBACLpB,MAAO,SAAwB4C,GAC7B,GAAI,MAAOA,EAAS,CAElBvE,KAAK4P,KAAK,iBAAkB,QAAUrL,IACtC,IAAIqlB,EAASrlB,EAAW,EACpB8hB,EAAarmB,KAAKulB,eAAeqE,GAEjCvD,WACKrmB,KAAKulB,eAAeqE,GAC3BvD,EAAW9hB,EAER,QAEA,IAAI,UAAWA,EACpB,KAAM,qCAAuCA,EAAe,MACnD,MAAOA,GAEhBvE,KAAK6pB,YAAYtlB,EAAW,EAAGA,EAAW,MAG7C,CACDxB,IAAK,cACLpB,MAAO,SAAqBykB,EAAQxV,GAClC5Q,KAAK4P,KAAK,sBAAuBwW,EAAQxV,GAE1B,MAAXwV,EACFpmB,KAAKkkB,cAActT,EAEhB,EAAGA,EAEH,GAEH,EAAOA,EAAQ,GACK,MAAXwV,EACTpmB,KAAKkkB,cAActT,EAEhB,EAAGA,EAEH,GAEH,EAAMA,EAAQ,GACM,MAAXwV,EACTpmB,KAAK8pB,iBAAiBlZ,EAEnB,EAAGA,EAEH,GACiB,OAAXwV,EACTpmB,KAAK+oB,eAAenY,EAEjB,EAAGA,EAEH,GACiB,QAAXwV,EACTpmB,KAAKipB,mBAAmBrY,EAErB,EAAGA,EAEH,GACiB,OAAXwV,EACTpmB,KAAK+pB,uBAAuBnZ,GAE5B/K,EAAM,8CAA+C,QAAUugB,GAAU,wCAG5E,CACDrjB,IAAK,WACLpB,MAAO,SAAkB6c,EAAWE,GAClC1e,KAAK4P,KAAK,oBACV5P,KAAKklB,YAAa,EAClBllB,KAAK+lB,gCAAiC,IAAIiE,MAAOC,UACjDjqB,KAAKkqB,iBAAiB1L,GACtBxe,KAAKuP,cAAgBmP,EAEjB1e,KAAK6lB,kBACP7lB,KAAKmqB,oBAGPnqB,KAAKoqB,gBACLpqB,KAAK6lB,kBAAmB,EACxB7lB,KAAKmkB,kBAAiB,KAEvB,CACDphB,IAAK,mBACLpB,MAAO,SAA0BiI,GAC/B,IAAIygB,EAAUrqB,MAEd,SAAQA,KAAKylB,UAAW,0DAEpBzlB,KAAKslB,2BACP7T,aAAazR,KAAKslB,2BAKpBtlB,KAAKslB,0BAA4B9b,YAAW,WAC1C6gB,EAAQ/E,0BAA4B,KAEpC+E,EAAQC,yBAEPniB,KAAKI,MAAMqB,MAEf,CACD7G,IAAK,kBACLpB,MAAO,YACA3B,KAAKylB,WAAazlB,KAAK6lB,kBAC1B7lB,KAAKuqB,iBAAiB,KAGzB,CACDxnB,IAAK,aACLpB,MAAO,SAAoBiiB,GAErBA,IAAY5jB,KAAK2jB,UAAY3jB,KAAKmlB,kBAAoBnlB,KAAKolB,qBAC7DplB,KAAK4P,KAAK,2CACV5P,KAAKmlB,gBAAkBtB,GAElB7jB,KAAKylB,WACRzlB,KAAKuqB,iBAAiB,IAI1BvqB,KAAK2jB,SAAWC,IAEjB,CACD7gB,IAAK,YACLpB,MAAO,SAAmB6oB,GACpBA,GACFxqB,KAAK4P,KAAK,wBACV5P,KAAKmlB,gBAAkBtB,GAElB7jB,KAAKylB,WACRzlB,KAAKuqB,iBAAiB,KAGxBvqB,KAAK4P,KAAK,8CAEN5P,KAAKylB,WACPzlB,KAAKylB,UAAU/S,WAIpB,CACD3P,IAAK,wBACLpB,MAAO,WASL,GARA3B,KAAK4P,KAAK,4BACV5P,KAAKklB,YAAa,EAClBllB,KAAKylB,UAAY,KAEjBzlB,KAAKyqB,0BAELzqB,KAAKulB,eAAiB,GAElBvlB,KAAK0qB,mBAAoB,CAC3B,GAAK1qB,KAAK2jB,UAIH,GAAI3jB,KAAK+lB,+BAAgC,EAEV,IAAIiE,MAAOC,UAAYjqB,KAAK+lB,+BAtuBtC,MAyuBxB/lB,KAAKmlB,gBAAkBtB,IAGzB7jB,KAAK+lB,+BAAiC,WAXtC/lB,KAAK4P,KAAK,8CACV5P,KAAKmlB,gBAAkBnlB,KAAKolB,mBAC5BplB,KAAK8lB,4BAA6B,IAAIkE,MAAOC,UAY/C,IAAIU,GAA8B,IAAIX,MAAOC,UAAYjqB,KAAK8lB,2BAC1D8E,EAAiBziB,KAAK8a,IAAI,EAAGjjB,KAAKmlB,gBAAkBwF,GACxDC,EAAiBziB,KAAK+J,SAAW0Y,EACjC5qB,KAAK4P,KAAK,0BAA4Bgb,EAAiB,MACvD5qB,KAAKuqB,iBAAiBK,GAEtB5qB,KAAKmlB,gBAAkBhd,KAAKG,IAAItI,KAAKolB,mBAtvBZ,IAsvBgCplB,KAAKmlB,iBAGhEnlB,KAAKmkB,kBAAiB,KAEvB,CACDphB,IAAK,uBACLpB,OACMqiB,GAAwB,OAAgC,UAAyB,SAAS6G,IAC5F,IAEIC,EAAeC,EAASC,EAAe9b,EAAQK,EAAe0b,EAAUC,EAAYC,EAASC,EAAe/gB,EAAcghB,EAAoBC,EAAqBjc,EAAWD,EAF9Kmc,EAAUvrB,KAId,OAAO,UAAyB,SAAkBwrB,GAChD,OACE,OAAQA,EAASC,KAAOD,EAASrpB,MAC/B,KAAK,EACH,IAAKnC,KAAK0qB,mBAAoB,CAC5Bc,EAASrpB,KAAO,GAChB,MAqCF,OAlCAnC,KAAK4P,KAAK,+BACV5P,KAAK8lB,4BAA6B,IAAIkE,MAAOC,UAC7CjqB,KAAK+lB,+BAAiC,KACtC+E,EAAgB9qB,KAAKge,eAAe/Y,KAAKjF,MACzC+qB,EAAU/qB,KAAKkb,SAASjW,KAAKjF,MAC7BgrB,EAAgBhrB,KAAK0rB,sBAAsBzmB,KAAKjF,MAChDkP,EAASlP,KAAK2C,GAAK,IAAMmhB,EAAqB6H,oBAC9Cpc,EAAgBvP,KAAKuP,cACrB0b,GAAW,EACXC,EAAa,KAEbC,EAAU,WACJD,EACFA,EAAWxY,SAEXuY,GAAW,EAEXD,MAIJI,EAAgB,SAAuBlO,IACrC,QAAOgO,EAAY,0DACnBA,EAAW1E,YAAYtJ,IAGzBld,KAAKylB,UAAY,CACf/S,MAAOyY,EACP3E,YAAa4E,GAEf/gB,EAAerK,KAAK0lB,mBACpB1lB,KAAK0lB,oBAAqB,EAC1B8F,EAASC,KAAO,GAChBD,EAASrpB,KAAO,GACTqI,QAAQohB,IAAI,CAAC5rB,KAAKqkB,mBAAmB9Z,SAASF,GAAerK,KAAKskB,uBAAuB/Z,SAASF,KAE3G,KAAK,GACHghB,EAAqBG,EAASK,KAC9BP,GAAsB,OAAeD,EAAoB,GACzDhc,EAAYic,EAAoB,GAChClc,EAAgBkc,EAAoB,GAE/BL,EAYHjmB,EAAI,0CAXJA,EAAI,8CACJhF,KAAKib,WAAa5L,GAAaA,EAAUzD,YACzC5L,KAAKgb,eAAiB5L,GAAiBA,EAAcmQ,MACrD2L,EAAa,IAAIrQ,GAAW3L,EAAQlP,KAAK8a,UAAW9a,KAAK+a,eAAgB/a,KAAKgb,eAAgBhb,KAAKib,WAAY6P,EAAeC,EAASC,GAEvI,SAAU9L,GACRlZ,EAAKkZ,EAAS,KAAOqM,EAAQzQ,UAAU9Z,WAAa,KAEpDuqB,EAAQO,UA5zBO,iBA6zBdvc,IAKLic,EAASrpB,KAAO,GAChB,MAEF,KAAK,GACHqpB,EAASC,KAAO,GAChBD,EAASO,GAAKP,EAAgB,MAAE,IAChCxrB,KAAK4P,KAAK,wBAA0B4b,EAASO,IAExCd,IACCjrB,KAAK8a,UAAUvO,WAIjBvG,EAAKwlB,EAASO,IAGhBZ,KAGJ,KAAK,GACL,IAAK,MACH,OAAOK,EAASQ,UAGrBnB,EAAS7qB,KAAM,CAAC,CAAC,GAAI,UAG1B,WACE,OAAOgkB,EAAsB7jB,MAAMH,KAAME,cAK5C,CACD6C,IAAK,YACLpB,MAAO,SAAmBud,GACxBla,EAAI,uCAAyCka,GAC7Clf,KAAK0kB,kBAAkBxF,IAAU,EAE7Blf,KAAKylB,UACPzlB,KAAKylB,UAAU/S,SAEX1S,KAAKslB,4BACP7T,aAAazR,KAAKslB,2BAClBtlB,KAAKslB,0BAA4B,MAG/BtlB,KAAKklB,YACPllB,KAAK0rB,2BAIV,CACD3oB,IAAK,SACLpB,MAAO,SAAgBud,GACrBla,EAAI,mCAAqCka,UAClClf,KAAK0kB,kBAAkBxF,IAE1B,QAAQlf,KAAK0kB,qBACf1kB,KAAKmlB,gBAAkBtB,GAElB7jB,KAAKylB,WACRzlB,KAAKuqB,iBAAiB,MAI3B,CACDxnB,IAAK,mBACLpB,MAAO,SAA0B6c,GAC/B,IAAIyN,EAAQzN,GAAY,IAAIwL,MAAOC,UACnCjqB,KAAKokB,oBAAoB,CACvB8H,iBAAkBD,MAGrB,CACDlpB,IAAK,0BACLpB,MAAO,WACL,IAAK,IAAIJ,EAAI,EAAGA,EAAIvB,KAAK6kB,iBAAiBvjB,OAAQC,IAAK,CACrD,IAAI4qB,EAAMnsB,KAAK6kB,iBAAiBtjB,GAE5B4qB,GAEJ,MAAOA,EAAIvF,SAAWuF,EAAI1C,SACpB0C,EAAI9M,YACN8M,EAAI9M,WAAW,qBAGVrf,KAAK6kB,iBAAiBtjB,GAC7BvB,KAAK+kB,wBAKyB,IAA9B/kB,KAAK+kB,uBACP/kB,KAAK6kB,iBAAmB,MAG3B,CACD9hB,IAAK,mBACLpB,MAAO,SAA0Byd,EAAYlS,GAE3C,IAAIqa,EAKFA,EAHGra,EAGOA,EAAMkf,KAAI,SAAUrF,GAC5B,OAAO9f,EAAkB8f,MACxBne,KAAK,KAJE,UAOZ,IAAIyjB,EAASrsB,KAAKqoB,cAAcjJ,EAAYmI,GAExC8E,GAAUA,EAAOhN,YACnBgN,EAAOhN,WAAW,uBAGrB,CACDtc,IAAK,gBACLpB,MAAO,SAAuByd,EAAYmI,GACxC,IAEI8E,EAFAC,EAAuB,IAAIzL,GAAKzB,GAAYpe,WAIhD,GAAIhB,KAAK2kB,QAAQ8C,IAAI6E,GAAuB,CAC1C,IAAIC,EAAOvsB,KAAK2kB,QAAQvf,IAAIknB,GAE5BD,EAASE,EAAKnnB,IAAImiB,GAElBgF,EAAKrW,OAAOqR,GAEM,IAAdgF,EAAKrX,MACPlV,KAAK2kB,QAAQzO,OAAOoW,QAItBD,OAAS5nB,EAGX,OAAO4nB,IAER,CACDtpB,IAAK,iBACLpB,MAAO,SAAwB6qB,EAAYC,GACzCznB,EAAI,uBAAyBwnB,EAAa,IAAMC,GAChDzsB,KAAKib,WAAa,KAClBjb,KAAK0lB,oBAAqB,EAC1B1lB,KAAKylB,UAAU/S,QAEI,kBAAf8Z,GAAiD,sBAAfA,IAIpCxsB,KAAK2lB,yBAED3lB,KAAK2lB,wBA39Ba,IA69BpB3lB,KAAKmlB,gBAp+BsB,IAu+B3BnlB,KAAKqkB,mBAAmBqI,4BAI7B,CACD3pB,IAAK,qBACLpB,MAAO,SAA4B6qB,EAAYC,GAC7CznB,EAAI,4BAA8BwnB,EAAa,IAAMC,GACrDzsB,KAAKgb,eAAiB,KACtBhb,KAAK0lB,oBAAqB,EAGP,kBAAf8G,GAAiD,sBAAfA,IAIpCxsB,KAAK4lB,6BAED5lB,KAAK4lB,4BAl/Ba,GAm/BpB5lB,KAAKskB,uBAAuBoI,2BAIjC,CACD3pB,IAAK,yBACLpB,MAAO,SAAgCiP,GACjC5Q,KAAKqlB,uBACPrlB,KAAKqlB,uBAAuBzU,GAExB,QAASA,GACX+b,QAAQ3nB,IAAI,aAAe4L,EAAU,IAAEgc,QAAQ,KAAM,mBAI1D,CACD7pB,IAAK,gBACLpB,MAAO,WAEL3B,KAAKsoB,UACLtoB,KAAKyoB,cAGL,IACIoE,EADAC,EAAa1sB,EAA2BJ,KAAK2kB,QAAQoI,UAGzD,IACE,IAAKD,EAAWrrB,MAAOorB,EAASC,EAAWhsB,KAAKY,MAAO,CACrD,IAGIsrB,EADAC,EAAa7sB,EAFHysB,EAAOlrB,MAE+BorB,UAGpD,IACE,IAAKE,EAAWxrB,MAAOurB,EAASC,EAAWnsB,KAAKY,MAAO,CACrD,IAAImmB,EAAamF,EAAOrrB,MACxB3B,KAAK+nB,YAAYF,IAEnB,MAAO9lB,GACPkrB,EAAWttB,EAAEoC,GACb,QACAkrB,EAAWprB,MAGf,MAAOE,GACP+qB,EAAWntB,EAAEoC,GACb,QACA+qB,EAAWjrB,IAGb,IAAK,IAAIN,EAAI,EAAGA,EAAIvB,KAAK6kB,iBAAiBvjB,OAAQC,IAC5CvB,KAAK6kB,iBAAiBtjB,IACxBvB,KAAKupB,SAAShoB,GAIlB,KAAOvB,KAAKilB,0BAA0B3jB,QAAQ,CAC5C,IAAIslB,EAAU5mB,KAAKilB,0BAA0B1P,QAC7CvV,KAAKopB,kBAAkBxC,EAAQR,OAAQQ,EAAQxH,WAAYwH,EAAQ1gB,KAAM0gB,EAAQvH,YAGnF,IAAK,IAAI6N,EAAM,EAAGA,EAAMltB,KAAK8kB,iBAAiBxjB,OAAQ4rB,IAChDltB,KAAK8kB,iBAAiBoI,IACxBltB,KAAKmnB,SAAS+F,KAQnB,CACDnqB,IAAK,oBACLpB,MAAO,WACL,IAAI6d,EAAQ,GACR2N,EAAa,MAEb,YAEAA,EADEntB,KAAK8a,UAAUvO,UACJ,aAEA,QAIjBiT,EAAM,OAAS2N,EAAa,IAAMzqB,EAAYkqB,QAAQ,MAAO,MAAQ,GAEjE,UACFpN,EAAM,qBAAuB,GACpB,YACTA,EAAM,yBAA2B,GAGnCxf,KAAKotB,YAAY5N,KAElB,CACDzc,IAAK,mBACLpB,MAAO,WACL,IAAI6oB,EAASjK,GAAcyF,cAAcqH,kBACzC,OAAO,QAAQrtB,KAAK0kB,oBAAsB8F,KAE1C,CAAC,CACHznB,IAAK,wBACLpB,MAAO,SAA+Buc,EAAShR,GAC7C,GAAIgR,GAA8B,iBAAZA,IAAwB,QAASA,EAAS,KAAM,CAEpE,IAAIoP,GAAW,QAAQpP,EAAS,KAEhC,GAAIxd,MAAMC,QAAQ2sB,KAAcA,EAAS1gB,QAAQ,YAAa,CAC5D,IAAI2gB,EAAY,gBAAkBrgB,EAAMwa,aAAa8F,WAAWxsB,WAAa,IAEzEysB,EAAYvgB,EAAM4Z,MAAM9lB,WAE5BgF,EAAK,gEAAkE,2CAA2CJ,OAAO2nB,EAAW,QAAU,GAAG3nB,OAAO6nB,EAAW,0DAMpK3J,EAlmC+B,CAmmCtC3E,IAEF2E,GAAqBW,4BAA8B,EAKnDX,GAAqB6H,kBAAoB,EAkBzC,IAkGI+B,GAlGAC,GAAyB,WAC3B,SAASA,EAAUzsB,EAAM0sB,IACvB,OAAgB5tB,KAAM2tB,GAEtB3tB,KAAKkB,KAAOA,EACZlB,KAAK4tB,KAAOA,EAUd,OAPA,OAAaD,EAAW,KAAM,CAAC,CAC7B5qB,IAAK,OACLpB,MAAO,SAAcT,EAAM0sB,GACzB,OAAO,IAAID,EAAUzsB,EAAM0sB,OAIxBD,EAfoB,GAmCzBE,GAAqB,WACvB,SAASA,KACP,OAAgB7tB,KAAM6tB,GAyCxB,OAtCA,OAAaA,EAAO,CAAC,CACnB9qB,IAAK,aACLpB,MAKA,WACE,OAAO3B,KAAK8tB,QAAQ7oB,KAAKjF,QAU1B,CACD+C,IAAK,sBACLpB,MAAO,SAA6BosB,EAASC,GAC3C,IAAIC,EAAa,IAAIN,GAAUrnB,EAAUynB,GACrCG,EAAa,IAAIP,GAAUrnB,EAAU0nB,GACzC,OAAgD,IAAzChuB,KAAK8tB,QAAQG,EAAYC,KAOjC,CACDnrB,IAAK,UACLpB,MAAO,WAEL,OAAOgsB,GAAUQ,QAIdN,EA3CgB,GAiErBO,GAAwB,SAAUC,IACpC,OAAUD,EAAUC,GAEpB,IAAIC,EAAUtvB,EAAaovB,GAE3B,SAASA,IAGP,OAFA,OAAgBpuB,KAAMouB,GAEfE,EAAQnuB,MAAMH,KAAME,WA2D7B,OAxDA,OAAakuB,EAAU,CAAC,CACtBrrB,IAAK,UACLpB,MAAO,SAAiB8E,EAAGC,GACzB,OAAOF,EAAYC,EAAEvF,KAAMwF,EAAExF,QAE9B,CACD6B,IAAK,cACLpB,MAAO,SAAqBisB,GAG1B,MAAM,QAAe,qDAEtB,CACD7qB,IAAK,sBACLpB,MAAO,SAA6BosB,EAASC,GAC3C,OAAO,IAER,CACDjrB,IAAK,UACLpB,MAAO,WAEL,OAAOgsB,GAAUQ,MAElB,CACDprB,IAAK,UACLpB,MAAO,WAGL,OAAO,IAAIgsB,GAAUpnB,EAAUmnB,MAEhC,CACD3qB,IAAK,WACLpB,MAAO,SAAkB4sB,EAAYrtB,GAGnC,OAFA,QAA6B,iBAAfqtB,EAAyB,gDAEhC,IAAIZ,GAAUY,EAAYb,MAMlC,CACD3qB,IAAK,WACLpB,MAAO,WACL,MAAO,UAEP,CAAC,CACHoB,IAAK,eACLqC,IAAK,WACH,OAAOsoB,IAETxoB,IAAK,SAAaspB,GAChBd,GAAec,MAIZJ,EAnEmB,CAoE1BP,IAEEY,GAAY,IAAIL,GAsBhBM,GAAiC,WAKnC,SAASA,EAAkBd,EAAMe,EAAUC,EAAYC,GACrD,IAAIC,EAAmB5uB,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,MAE3F,OAAgBF,KAAM0uB,GAEtB1uB,KAAK6uB,WAAaA,EAClB7uB,KAAK8uB,iBAAmBA,EACxB9uB,KAAK+uB,WAAa,GAGlB,IAFA,IAAIC,EAAM,GAEFpB,EAAKqB,WAQX,GAPArB,EAAOA,EACPoB,EAAML,EAAWC,EAAWhB,EAAK7qB,IAAK4rB,GAAY,EAE9CE,IACFG,IAAQ,GAGNA,EAAM,EAGNpB,EADE5tB,KAAK6uB,WACAjB,EAAKsB,KAELtB,EAAKuB,UAET,IAAY,IAARH,EAAW,CAEpBhvB,KAAK+uB,WAAW3nB,KAAKwmB,GACrB,MAGA5tB,KAAK+uB,WAAW3nB,KAAKwmB,GAGnBA,EADE5tB,KAAK6uB,WACAjB,EAAKuB,MAELvB,EAAKsB,MAoEpB,OA9DA,OAAaR,EAAmB,CAAC,CAC/B3rB,IAAK,UACLpB,MAAO,WACL,GAA+B,IAA3B3B,KAAK+uB,WAAWztB,OAClB,OAAO,KAGT,IACIzB,EADA+tB,EAAO5tB,KAAK+uB,WAAWK,MAY3B,GAREvvB,EADEG,KAAK8uB,iBACE9uB,KAAK8uB,iBAAiBlB,EAAK7qB,IAAK6qB,EAAKjsB,OAErC,CACPoB,IAAK6qB,EAAK7qB,IACVpB,MAAOisB,EAAKjsB,OAIZ3B,KAAK6uB,WAGP,IAFAjB,EAAOA,EAAKsB,MAEJtB,EAAKqB,WACXjvB,KAAK+uB,WAAW3nB,KAAKwmB,GACrBA,EAAOA,EAAKuB,WAKd,IAFAvB,EAAOA,EAAKuB,OAEJvB,EAAKqB,WACXjvB,KAAK+uB,WAAW3nB,KAAKwmB,GACrBA,EAAOA,EAAKsB,KAIhB,OAAOrvB,IAER,CACDkD,IAAK,UACLpB,MAAO,WACL,OAAO3B,KAAK+uB,WAAWztB,OAAS,IAEjC,CACDyB,IAAK,OACLpB,MAAO,WACL,GAA+B,IAA3B3B,KAAK+uB,WAAWztB,OAClB,OAAO,KAGT,IAAIssB,EAAO5tB,KAAK+uB,WAAW/uB,KAAK+uB,WAAWztB,OAAS,GAEpD,OAAItB,KAAK8uB,iBACA9uB,KAAK8uB,iBAAiBlB,EAAK7qB,IAAK6qB,EAAKjsB,OAErC,CACLoB,IAAK6qB,EAAK7qB,IACVpB,MAAOisB,EAAKjsB,WAMb+sB,EA7G4B,GAoHjCW,GAAwB,WAQ1B,SAASA,EAAStsB,EAAKpB,EAAO2tB,EAAOJ,EAAMC,IACzC,OAAgBnvB,KAAMqvB,GAEtBrvB,KAAK+C,IAAMA,EACX/C,KAAK2B,MAAQA,EACb3B,KAAKsvB,MAAiB,MAATA,EAAgBA,EAAQD,EAASE,IAC9CvvB,KAAKkvB,KAAe,MAARA,EAAeA,EAAOM,GAAUC,WAC5CzvB,KAAKmvB,MAAiB,MAATA,EAAgBA,EAAQK,GAAUC,WA0TjD,OA5SA,OAAaJ,EAAU,CAAC,CACtBtsB,IAAK,OACLpB,MAAO,SAAcoB,EAAKpB,EAAO2tB,EAAOJ,EAAMC,GAC5C,OAAO,IAAIE,EAAgB,MAAPtsB,EAAcA,EAAM/C,KAAK+C,IAAc,MAATpB,EAAgBA,EAAQ3B,KAAK2B,MAAgB,MAAT2tB,EAAgBA,EAAQtvB,KAAKsvB,MAAe,MAARJ,EAAeA,EAAOlvB,KAAKkvB,KAAe,MAATC,EAAgBA,EAAQnvB,KAAKmvB,SAMzL,CACDpsB,IAAK,QACLpB,MAAO,WACL,OAAO3B,KAAKkvB,KAAKQ,QAAU,EAAI1vB,KAAKmvB,MAAMO,UAM3C,CACD3sB,IAAK,UACLpB,MAAO,WACL,OAAO,IAYR,CACDoB,IAAK,mBACLpB,MAAO,SAA0BykB,GAC/B,OAAOpmB,KAAKkvB,KAAKS,iBAAiBvJ,MAAaA,EAAOpmB,KAAK+C,IAAK/C,KAAK2B,QAAU3B,KAAKmvB,MAAMQ,iBAAiBvJ,KAW5G,CACDrjB,IAAK,mBACLpB,MAAO,SAA0BykB,GAC/B,OAAOpmB,KAAKmvB,MAAMS,iBAAiBxJ,IAAWA,EAAOpmB,KAAK+C,IAAK/C,KAAK2B,QAAU3B,KAAKkvB,KAAKU,iBAAiBxJ,KAM1G,CACDrjB,IAAK,OACLpB,MAAO,WACL,OAAI3B,KAAKkvB,KAAKD,UACLjvB,KAEAA,KAAKkvB,KAAKW,SAOpB,CACD9sB,IAAK,SACLpB,MAAO,WACL,OAAO3B,KAAK6vB,OAAO9sB,MAMpB,CACDA,IAAK,SACLpB,MAAO,WACL,OAAI3B,KAAKmvB,MAAMF,UACNjvB,KAAK+C,IAEL/C,KAAKmvB,MAAMW,WAUrB,CACD/sB,IAAK,SACLpB,MAAO,SAAgBoB,EAAKpB,EAAOitB,GACjC,IAAI9tB,EAAId,KACJgvB,EAAMJ,EAAW7rB,EAAKjC,EAAEiC,KAU5B,OAPEjC,EADEkuB,EAAM,EACJluB,EAAEivB,KAAK,KAAM,KAAM,KAAMjvB,EAAEouB,KAAKc,OAAOjtB,EAAKpB,EAAOitB,GAAa,MACnD,IAARI,EACLluB,EAAEivB,KAAK,KAAMpuB,EAAO,KAAM,KAAM,MAEhCb,EAAEivB,KAAK,KAAM,KAAM,KAAM,KAAMjvB,EAAEquB,MAAMa,OAAOjtB,EAAKpB,EAAOitB,KAGvDqB,WAMV,CACDltB,IAAK,aACLpB,MAAO,WACL,GAAI3B,KAAKkvB,KAAKD,UACZ,OAAOO,GAAUC,WAGnB,IAAI3uB,EAAId,KAOR,OALKc,EAAEouB,KAAKgB,UAAapvB,EAAEouB,KAAKA,KAAKgB,WACnCpvB,EAAIA,EAAEqvB,iBAGRrvB,EAAIA,EAAEivB,KAAK,KAAM,KAAM,KAAMjvB,EAAEouB,KAAKkB,aAAc,OACzCH,WAQV,CACDltB,IAAK,SACLpB,MAAO,SAAgBoB,EAAK6rB,GAC1B,IAAI9tB,EAAGuvB,EAGP,GAAIzB,EAAW7rB,GAFfjC,EAAId,MAEkB+C,KAAO,EACtBjC,EAAEouB,KAAKD,WAAcnuB,EAAEouB,KAAKgB,UAAapvB,EAAEouB,KAAKA,KAAKgB,WACxDpvB,EAAIA,EAAEqvB,gBAGRrvB,EAAIA,EAAEivB,KAAK,KAAM,KAAM,KAAMjvB,EAAEouB,KAAK/pB,OAAOpC,EAAK6rB,GAAa,UACxD,CASL,GARI9tB,EAAEouB,KAAKgB,WACTpvB,EAAIA,EAAEwvB,gBAGHxvB,EAAEquB,MAAMF,WAAcnuB,EAAEquB,MAAMe,UAAapvB,EAAEquB,MAAMD,KAAKgB,WAC3DpvB,EAAIA,EAAEyvB,iBAGuB,IAA3B3B,EAAW7rB,EAAKjC,EAAEiC,KAAY,CAChC,GAAIjC,EAAEquB,MAAMF,UACV,OAAOO,GAAUC,WAEjBY,EAAWvvB,EAAEquB,MAAMU,OACnB/uB,EAAIA,EAAEivB,KAAKM,EAASttB,IAAKstB,EAAS1uB,MAAO,KAAM,KAAMb,EAAEquB,MAAMiB,cAIjEtvB,EAAIA,EAAEivB,KAAK,KAAM,KAAM,KAAM,KAAMjvB,EAAEquB,MAAMhqB,OAAOpC,EAAK6rB,IAGzD,OAAO9tB,EAAEmvB,WAMV,CACDltB,IAAK,SACLpB,MAAO,WACL,OAAO3B,KAAKsvB,QAMb,CACDvsB,IAAK,SACLpB,MAAO,WACL,IAAIb,EAAId,KAcR,OAZIc,EAAEquB,MAAMe,WAAapvB,EAAEouB,KAAKgB,WAC9BpvB,EAAIA,EAAE0vB,eAGJ1vB,EAAEouB,KAAKgB,UAAYpvB,EAAEouB,KAAKA,KAAKgB,WACjCpvB,EAAIA,EAAEwvB,gBAGJxvB,EAAEouB,KAAKgB,UAAYpvB,EAAEquB,MAAMe,WAC7BpvB,EAAIA,EAAE2vB,cAGD3vB,IAMR,CACDiC,IAAK,eACLpB,MAAO,WACL,IAAIb,EAAId,KAAKywB,aAQb,OANI3vB,EAAEquB,MAAMD,KAAKgB,WAGfpvB,GADAA,GADAA,EAAIA,EAAEivB,KAAK,KAAM,KAAM,KAAM,KAAMjvB,EAAEquB,MAAMmB,iBACrCE,eACAC,cAGD3vB,IAMR,CACDiC,IAAK,gBACLpB,MAAO,WACL,IAAIb,EAAId,KAAKywB,aAOb,OALI3vB,EAAEouB,KAAKA,KAAKgB,WAEdpvB,GADAA,EAAIA,EAAEwvB,gBACAG,cAGD3vB,IAMR,CACDiC,IAAK,cACLpB,MAAO,WACL,IAAI+uB,EAAK1wB,KAAK+vB,KAAK,KAAM,KAAMV,EAASE,IAAK,KAAMvvB,KAAKmvB,MAAMD,MAC9D,OAAOlvB,KAAKmvB,MAAMY,KAAK,KAAM,KAAM/vB,KAAKsvB,MAAOoB,EAAI,QAMpD,CACD3tB,IAAK,eACLpB,MAAO,WACL,IAAIgvB,EAAK3wB,KAAK+vB,KAAK,KAAM,KAAMV,EAASE,IAAKvvB,KAAKkvB,KAAKC,MAAO,MAC9D,OAAOnvB,KAAKkvB,KAAKa,KAAK,KAAM,KAAM/vB,KAAKsvB,MAAO,KAAMqB,KAMrD,CACD5tB,IAAK,aACLpB,MAAO,WACL,IAAIutB,EAAOlvB,KAAKkvB,KAAKa,KAAK,KAAM,MAAO/vB,KAAKkvB,KAAKI,MAAO,KAAM,MAC1DH,EAAQnvB,KAAKmvB,MAAMY,KAAK,KAAM,MAAO/vB,KAAKmvB,MAAMG,MAAO,KAAM,MACjE,OAAOtvB,KAAK+vB,KAAK,KAAM,MAAO/vB,KAAKsvB,MAAOJ,EAAMC,KAQjD,CACDpsB,IAAK,iBACLpB,MAAO,WACL,IAAIivB,EAAa5wB,KAAK6wB,SACtB,OAAO1oB,KAAKE,IAAI,EAAKuoB,IAAe5wB,KAAK0vB,QAAU,IAEpD,CACD3sB,IAAK,SACLpB,MAAO,WACL,GAAI3B,KAAKkwB,UAAYlwB,KAAKkvB,KAAKgB,SAC7B,MAAM,IAAInqB,MAAM,0BAA4B/F,KAAK+C,IAAM,IAAM/C,KAAK2B,MAAQ,KAG5E,GAAI3B,KAAKmvB,MAAMe,SACb,MAAM,IAAInqB,MAAM,mBAAqB/F,KAAK+C,IAAM,IAAM/C,KAAK2B,MAAQ,YAGrE,IAAIivB,EAAa5wB,KAAKkvB,KAAK2B,SAE3B,GAAID,IAAe5wB,KAAKmvB,MAAM0B,SAC5B,MAAM,IAAI9qB,MAAM,uBAEhB,OAAO6qB,GAAc5wB,KAAKkwB,SAAW,EAAI,OAKxCb,EAzUmB,GA4U5BA,GAASE,KAAM,EACfF,GAASyB,OAAQ,EAKjB,IAqXIC,GArXAC,GAA6B,WAC/B,SAASA,KACP,OAAgBhxB,KAAMgxB,GAiHxB,OA9GA,OAAaA,EAAe,CAAC,CAC3BjuB,IAAK,OACLpB,MAMA,SAAcoB,EAAKpB,EAAO2tB,EAAOJ,EAAMC,GACrC,OAAOnvB,OAWR,CACD+C,IAAK,SACLpB,MAAO,SAAgBoB,EAAKpB,EAAOitB,GACjC,OAAO,IAAIS,GAAStsB,EAAKpB,EAAO,QAUjC,CACDoB,IAAK,SACLpB,MAAO,SAAgBoB,EAAK6rB,GAC1B,OAAO5uB,OAMR,CACD+C,IAAK,QACLpB,MAAO,WACL,OAAO,IAMR,CACDoB,IAAK,UACLpB,MAAO,WACL,OAAO,IAWR,CACDoB,IAAK,mBACLpB,MAAO,SAA0BykB,GAC/B,OAAO,IAWR,CACDrjB,IAAK,mBACLpB,MAAO,SAA0BykB,GAC/B,OAAO,IAER,CACDrjB,IAAK,SACLpB,MAAO,WACL,OAAO,OAER,CACDoB,IAAK,SACLpB,MAAO,WACL,OAAO,OAER,CACDoB,IAAK,SACLpB,MAAO,WACL,OAAO,IAMR,CACDoB,IAAK,SACLpB,MAAO,WACL,OAAO,MAIJqvB,EAnHwB,GA2H7BxB,GAAyB,WAK3B,SAASA,EAAUyB,GACjB,IAAIC,EAAQhxB,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAKsvB,EAAUC,YAE1F,OAAgBzvB,KAAMwvB,GAEtBxvB,KAAKixB,YAAcA,EACnBjxB,KAAKkxB,MAAQA,EA6Lf,OAjLA,OAAa1B,EAAW,CAAC,CACvBzsB,IAAK,SACLpB,MAAO,SAAgBoB,EAAKpB,GAC1B,OAAO,IAAI6tB,EAAUxvB,KAAKixB,YAAajxB,KAAKkxB,MAAMlB,OAAOjtB,EAAKpB,EAAO3B,KAAKixB,aAAalB,KAAK,KAAM,KAAMV,GAASyB,MAAO,KAAM,SAS/H,CACD/tB,IAAK,SACLpB,MAAO,SAAgBoB,GACrB,OAAO,IAAIysB,EAAUxvB,KAAKixB,YAAajxB,KAAKkxB,MAAM/rB,OAAOpC,EAAK/C,KAAKixB,aAAalB,KAAK,KAAM,KAAMV,GAASyB,MAAO,KAAM,SAUxH,CACD/tB,IAAK,MACLpB,MAAO,SAAaoB,GAIlB,IAHA,IAAIisB,EACApB,EAAO5tB,KAAKkxB,OAERtD,EAAKqB,WAAW,CAGtB,GAAY,KAFZD,EAAMhvB,KAAKixB,YAAYluB,EAAK6qB,EAAK7qB,MAG/B,OAAO6qB,EAAKjsB,MACHqtB,EAAM,EACfpB,EAAOA,EAAKsB,KACHF,EAAM,IACfpB,EAAOA,EAAKuB,OAIhB,OAAO,OAQR,CACDpsB,IAAK,oBACLpB,MAAO,SAA2BoB,GAKhC,IAJA,IAAIisB,EACApB,EAAO5tB,KAAKkxB,MACZC,EAAc,MAEVvD,EAAKqB,WAAW,CAGtB,GAAY,KAFZD,EAAMhvB,KAAKixB,YAAYluB,EAAK6qB,EAAK7qB,MAElB,CACb,GAAK6qB,EAAKsB,KAAKD,UAQR,OAAIkC,EACFA,EAAYpuB,IAEZ,KARP,IAFA6qB,EAAOA,EAAKsB,MAEJtB,EAAKuB,MAAMF,WACjBrB,EAAOA,EAAKuB,MAGd,OAAOvB,EAAK7qB,IAMLisB,EAAM,EACfpB,EAAOA,EAAKsB,KACHF,EAAM,IACfmC,EAAcvD,EACdA,EAAOA,EAAKuB,OAIhB,MAAM,IAAIppB,MAAM,2EAMjB,CACDhD,IAAK,UACLpB,MAAO,WACL,OAAO3B,KAAKkxB,MAAMjC,YAMnB,CACDlsB,IAAK,QACLpB,MAAO,WACL,OAAO3B,KAAKkxB,MAAMxB,UAMnB,CACD3sB,IAAK,SACLpB,MAAO,WACL,OAAO3B,KAAKkxB,MAAME,WAMnB,CACDruB,IAAK,SACLpB,MAAO,WACL,OAAO3B,KAAKkxB,MAAMpB,WAYnB,CACD/sB,IAAK,mBACLpB,MAAO,SAA0BykB,GAC/B,OAAOpmB,KAAKkxB,MAAMvB,iBAAiBvJ,KAWpC,CACDrjB,IAAK,mBACLpB,MAAO,SAA0BykB,GAC/B,OAAOpmB,KAAKkxB,MAAMtB,iBAAiBxJ,KAOpC,CACDrjB,IAAK,cACLpB,MAAO,SAAqB0vB,GAC1B,OAAO,IAAI3C,GAAkB1uB,KAAKkxB,MAAO,KAAMlxB,KAAKixB,aAAa,EAAOI,KAEzE,CACDtuB,IAAK,kBACLpB,MAAO,SAAyBoB,EAAKsuB,GACnC,OAAO,IAAI3C,GAAkB1uB,KAAKkxB,MAAOnuB,EAAK/C,KAAKixB,aAAa,EAAOI,KAExE,CACDtuB,IAAK,yBACLpB,MAAO,SAAgCoB,EAAKsuB,GAC1C,OAAO,IAAI3C,GAAkB1uB,KAAKkxB,MAAOnuB,EAAK/C,KAAKixB,aAAa,EAAMI,KAEvE,CACDtuB,IAAK,qBACLpB,MAAO,SAA4B0vB,GACjC,OAAO,IAAI3C,GAAkB1uB,KAAKkxB,MAAO,KAAMlxB,KAAKixB,aAAa,EAAMI,OAIpE7B,EAxMoB,GAiO7B,SAAS8B,GAAqBpC,EAAMC,GAClC,OAAO3oB,EAAY0oB,EAAKhuB,KAAMiuB,EAAMjuB,MAGtC,SAASqwB,GAAgBrC,EAAMC,GAC7B,OAAO3oB,EAAY0oB,EAAMC,GAvB3BK,GAAUC,WAAa,IAAIuB,GAiD3B,IAyCIQ,GA6RAC,GACAC,GAvUAC,GAAmB,SAA0BC,GAC/C,MAAwB,iBAAbA,EACF,UAAY9pB,EAAsB8pB,GAElC,UAAYA,GAQnBC,GAAuB,SAA8BC,GACvD,GAAIA,EAAaC,aAAc,CAC7B,IAAIvD,EAAMsD,EAAatD,OACvB,QAAsB,iBAARA,GAAmC,iBAARA,GAAmC,iBAARA,IAAoB,QAASA,EAAK,OAAQ,6CAE9G,QAAOsD,IAAiBf,IAAce,EAAa7C,UAAW,iCAIhE,QAAO6C,IAAiBf,IAAce,EAAaE,cAAc/C,UAAW,uDA4B1EgD,GAAwB,WAM1B,SAASA,EAASC,GAChB,IAAIC,EAAgBjyB,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK+xB,EAAST,0BAA0B/B,YAE3H,OAAgBzvB,KAAMiyB,GAEtBjyB,KAAKkyB,OAASA,EACdlyB,KAAKmyB,cAAgBA,EACrBnyB,KAAKoyB,UAAY,MACjB,aAAuB3tB,IAAhBzE,KAAKkyB,QAAwC,OAAhBlyB,KAAKkyB,OAAiB,4DAC1DL,GAAqB7xB,KAAKmyB,eA4O5B,OAzOA,OAAaF,EAAU,CAAC,CACtBlvB,IAAK,aACLpB,MAEA,WACE,OAAO,IAIR,CACDoB,IAAK,cACLpB,MAAO,WACL,OAAO3B,KAAKmyB,gBAIb,CACDpvB,IAAK,iBACLpB,MAAO,SAAwB0wB,GAC7B,OAAO,IAAIJ,EAASjyB,KAAKkyB,OAAQG,KAIlC,CACDtvB,IAAK,oBACLpB,MAAO,SAA2B2wB,GAEhC,MAAkB,cAAdA,EACKtyB,KAAKmyB,cAELF,EAAST,0BAA0B/B,aAK7C,CACD1sB,IAAK,WACLpB,MAAO,SAAkB2f,GACvB,OAAIa,GAAYb,GACPthB,KACyB,cAAvBqhB,GAAaC,GACfthB,KAAKmyB,cAELF,EAAST,0BAA0B/B,aAG7C,CACD1sB,IAAK,WACLpB,MAAO,WACL,OAAO,IAIR,CACDoB,IAAK,0BACLpB,MAAO,SAAiC2wB,EAAWC,GACjD,OAAO,OAIR,CACDxvB,IAAK,uBACLpB,MAAO,SAA8B2wB,EAAWE,GAC9C,MAAkB,cAAdF,EACKtyB,KAAKyyB,eAAeD,GAClBA,EAAavD,WAA2B,cAAdqD,EAC5BtyB,KAEAiyB,EAAST,0BAA0B/B,WAAWiD,qBAAqBJ,EAAWE,GAAcC,eAAezyB,KAAKmyB,iBAK1H,CACDpvB,IAAK,cACLpB,MAAO,SAAqB2f,EAAMkR,GAChC,IAAIG,EAAQtR,GAAaC,GAEzB,OAAc,OAAVqR,EACKH,EACEA,EAAavD,WAAuB,cAAV0D,EAC5B3yB,OAEP,QAAiB,cAAV2yB,GAAiD,IAAxBpR,GAAcD,GAAa,8CACpDthB,KAAK0yB,qBAAqBC,EAAOV,EAAST,0BAA0B/B,WAAWmD,YAAYpR,GAAaF,GAAOkR,OAKzH,CACDzvB,IAAK,UACLpB,MAAO,WACL,OAAO,IAIR,CACDoB,IAAK,cACLpB,MAAO,WACL,OAAO,IAIR,CACDoB,IAAK,eACLpB,MAAO,SAAsBulB,EAAOd,GAClC,OAAO,IAER,CACDrjB,IAAK,MACLpB,MAAO,SAAakxB,GAClB,OAAIA,IAAiB7yB,KAAKgyB,cAAc/C,UAC/B,CACL,SAAUjvB,KAAK8yB,WACf,YAAa9yB,KAAKgyB,cAAcxD,OAG3BxuB,KAAK8yB,aAKf,CACD/vB,IAAK,OACLpB,MAAO,WACL,GAAuB,OAAnB3B,KAAKoyB,UAAoB,CAC3B,IAAIW,EAAS,GAER/yB,KAAKmyB,cAAclD,YACtB8D,GAAU,YAAcpB,GAAiB3xB,KAAKmyB,cAAc3D,OAAS,KAGvE,IAAInhB,SAAcrN,KAAKkyB,OACvBa,GAAU1lB,EAAO,IAGf0lB,GADW,WAAT1lB,EACQvF,EAAsB9H,KAAKkyB,QAE3BlyB,KAAKkyB,OAGjBlyB,KAAKoyB,UAAYpuB,EAAK+uB,GAGxB,OAAO/yB,KAAKoyB,YAOb,CACDrvB,IAAK,WACLpB,MAAO,WACL,OAAO3B,KAAKkyB,SAEb,CACDnvB,IAAK,YACLpB,MAAO,SAAmB+gB,GACxB,OAAIA,IAAUuP,EAAST,0BAA0B/B,WACxC,EACE/M,aAAiBuP,EAAST,2BAC3B,IAER,QAAO9O,EAAMqP,aAAc,qBACpB/xB,KAAKgzB,mBAAmBtQ,MAOlC,CACD3f,IAAK,qBACLpB,MAAO,SAA4BsxB,GACjC,IAAIC,SAAuBD,EAAUf,OACjCiB,SAAsBnzB,KAAKkyB,OAC3BkB,EAAanB,EAASoB,iBAAiBzmB,QAAQsmB,GAC/CI,EAAYrB,EAASoB,iBAAiBzmB,QAAQumB,GAIlD,OAHA,QAAOC,GAAc,EAAG,sBAAwBF,IAChD,QAAOI,GAAa,EAAG,sBAAwBH,GAE3CC,IAAeE,EAEI,WAAjBH,EAEK,EAGHnzB,KAAKkyB,OAASe,EAAUf,QAClB,EACClyB,KAAKkyB,SAAWe,EAAUf,OAC5B,EAEA,EAIJoB,EAAYF,IAGtB,CACDrwB,IAAK,YACLpB,MAAO,WACL,OAAO3B,OAER,CACD+C,IAAK,YACLpB,MAAO,WACL,OAAO,IAER,CACDoB,IAAK,SACLpB,MAAO,SAAgB+gB,GACrB,GAAIA,IAAU1iB,KACZ,OAAO,EACF,GAAI0iB,EAAMqP,aAAc,CAC7B,IAAIkB,EAAYvQ,EAChB,OAAO1iB,KAAKkyB,SAAWe,EAAUf,QAAUlyB,KAAKmyB,cAAcoB,OAAON,EAAUd,eAE/E,OAAO,KAGT,CAAC,CACHpvB,IAAK,4BACLqC,IAAK,WACH,OAAOosB,IAETtsB,IAAK,SAAaspB,GAChBgD,GAA4BhD,MAIzByD,EA3PmB,GAmQ5BA,GAASoB,iBAAmB,CAAC,SAAU,UAAW,SAAU,UA6B5D,IA8NIG,GA8KA/D,GA5YAgE,GAA6B,SAAUC,IACzC,OAAUD,EAAeC,GAEzB,IAAIC,EAAU30B,EAAay0B,GAE3B,SAASA,IAGP,OAFA,OAAgBzzB,KAAMyzB,GAEfE,EAAQxzB,MAAMH,KAAME,WAsD7B,OAnDA,OAAauzB,EAAe,CAAC,CAC3B1wB,IAAK,UACLpB,MAAO,SAAiB8E,EAAGC,GACzB,IAAIktB,EAAYntB,EAAEmnB,KAAKoE,cACnB6B,EAAYntB,EAAEknB,KAAKoE,cACnB8B,EAAWF,EAAUG,UAAUF,GAEnC,OAAiB,IAAbC,EACKttB,EAAYC,EAAEvF,KAAMwF,EAAExF,MAEtB4yB,IAGV,CACD/wB,IAAK,cACLpB,MAAO,SAAqBisB,GAC1B,OAAQA,EAAKoE,cAAc/C,YAE5B,CACDlsB,IAAK,sBACLpB,MAAO,SAA6BosB,EAASC,GAC3C,OAAQD,EAAQiE,cAAcuB,OAAOvF,EAAQgE,iBAE9C,CACDjvB,IAAK,UACLpB,MAAO,WAEL,OAAOgsB,GAAUQ,MAElB,CACDprB,IAAK,UACLpB,MAAO,WACL,OAAO,IAAIgsB,GAAUpnB,EAAU,IAAI0rB,GAAS,kBAAmBP,OAEhE,CACD3uB,IAAK,WACLpB,MAAO,SAAkB4sB,EAAYrtB,GACnC,IAAI4wB,EAAeL,GAAelD,GAClC,OAAO,IAAIZ,GAAUzsB,EAAM,IAAI+wB,GAAS,kBAAmBH,MAM5D,CACD/uB,IAAK,WACLpB,MAAO,WACL,MAAO,gBAIJ8xB,EA9DwB,CA+D/B5F,IAEEmG,GAAiB,IAAIP,GAkBrBQ,GAAQ9rB,KAAKnD,IAAI,GAEjBkvB,GAAyB,WAC3B,SAASA,EAAU5yB,IACjB,OAAgBtB,KAAMk0B,GAEtB,IAAiCC,EAUjCn0B,KAAK0vB,OAV4ByE,EAUX7yB,EAAS,EAR3ByH,SAASZ,KAAKnD,IAAImvB,GAAOF,GAAO,KASpCj0B,KAAKo0B,SAAWp0B,KAAK0vB,MAAQ,EAC7B,IAN+BhnB,EAM3B2rB,GAN2B3rB,EAMZ1I,KAAK0vB,MALf3mB,SAASrI,MAAMgI,EAAO,GAAGE,KAAK,KAAM,IAM7C5I,KAAKs0B,MAAQhzB,EAAS,EAAI+yB,EAa5B,OAVA,OAAaH,EAAW,CAAC,CACvBnxB,IAAK,eACLpB,MAAO,WAEL,IAAI9B,IAAWG,KAAKs0B,MAAQ,GAAOt0B,KAAKo0B,UAExC,OADAp0B,KAAKo0B,WACEv0B,MAIJq0B,EA9BoB,GA+CzBK,GAAgB,SAAuBC,EAAWxF,EAAKyF,EAAOC,GAChEF,EAAUntB,KAAK2nB,GAEf,IAAI2F,EAAoB,SAASA,EAAkBC,EAAKC,GACtD,IACIC,EACA/xB,EAFAzB,EAASuzB,EAAOD,EAIpB,GAAe,IAAXtzB,EACF,OAAO,KACF,GAAe,IAAXA,EAGT,OAFAwzB,EAAYN,EAAUI,GACtB7xB,EAAM0xB,EAAQA,EAAMK,GAAaA,EAC1B,IAAIzF,GAAStsB,EAAK+xB,EAAUlH,KAAMyB,GAASyB,MAAO,KAAM,MAG/D,IAAIiE,EAAShsB,SAASzH,EAAS,EAAG,IAAMszB,EACpC1F,EAAOyF,EAAkBC,EAAKG,GAC9B5F,EAAQwF,EAAkBI,EAAS,EAAGF,GAG1C,OAFAC,EAAYN,EAAUO,GACtBhyB,EAAM0xB,EAAQA,EAAMK,GAAaA,EAC1B,IAAIzF,GAAStsB,EAAK+xB,EAAUlH,KAAMyB,GAASyB,MAAO5B,EAAMC,IA+C/D6F,EA3CmB,SAA0BC,GAyB/C,IAxBA,IAAIrH,EAAO,KACPoH,EAAO,KACP9N,EAAQsN,EAAUlzB,OAElB4zB,EAAe,SAAsBC,EAAW7F,GAClD,IAAIsF,EAAM1N,EAAQiO,EACdN,EAAO3N,EACXA,GAASiO,EACT,IAAIC,EAAYT,EAAkBC,EAAM,EAAGC,GACvCC,EAAYN,EAAUI,GACtB7xB,EAAM0xB,EAAQA,EAAMK,GAAaA,EACrCO,EAAc,IAAIhG,GAAStsB,EAAK+xB,EAAUlH,KAAM0B,EAAO,KAAM8F,KAG3DC,EAAgB,SAAuBC,GACrC1H,GACFA,EAAKsB,KAAOoG,EACZ1H,EAAO0H,IAEPN,EAAOM,EACP1H,EAAO0H,IAIF/zB,EAAI,EAAGA,EAAI0zB,EAAOvF,QAASnuB,EAAG,CACrC,IAAIg0B,EAAQN,EAAOO,eAEfL,EAAYhtB,KAAKE,IAAI,EAAG4sB,EAAOvF,OAASnuB,EAAI,IAE5Cg0B,EACFL,EAAaC,EAAW9F,GAASyB,QAGjCoE,EAAaC,EAAW9F,GAASyB,OACjCoE,EAAaC,EAAW9F,GAASE,MAIrC,OAAOyF,EAIES,CADE,IAAIvB,GAAUM,EAAUlzB,SAGrC,OAAO,IAAIkuB,GAAUkF,GAAa1F,EAAKgG,IAsBrCU,GAAiB,GAEjBC,GAAwB,WAC1B,SAASA,EAASC,EAAUC,IAC1B,OAAgB71B,KAAM21B,GAEtB31B,KAAK41B,SAAWA,EAChB51B,KAAK61B,UAAYA,EAgJnB,OAzIA,OAAaF,EAAU,CAAC,CACtB5yB,IAAK,MACLpB,MAAO,SAAam0B,GAClB,IAAIC,GAAY,QAAQ/1B,KAAK41B,SAAUE,GAEvC,IAAKC,EACH,MAAM,IAAIhwB,MAAM,wBAA0B+vB,GAG5C,OAAIC,aAAqBvG,GAChBuG,EAIA,OAGV,CACDhzB,IAAK,WACLpB,MAAO,SAAkBq0B,GACvB,OAAO,QAASh2B,KAAK61B,UAAWG,EAAgBh1B,cAEjD,CACD+B,IAAK,WACLpB,MAAO,SAAkBq0B,EAAiBC,IACxC,QAAOD,IAAoBvH,GAAW,uEAMtC,IALA,IAWIyH,EAXA1B,EAAY,GACZ2B,GAAkB,EAClBC,EAAOH,EAAiBI,YAAY1I,GAAU2I,MAC9Cn0B,EAAOi0B,EAAKG,UAETp0B,GACLg0B,EAAkBA,GAAmBH,EAAgBQ,YAAYr0B,EAAKyrB,MACtE4G,EAAUptB,KAAKjF,GACfA,EAAOi0B,EAAKG,UAMZL,EADEC,EACS5B,GAAcC,EAAWwB,EAAgBS,cAEzCf,GAGb,IAAIgB,EAAYV,EAAgBh1B,WAC5B21B,EAAc51B,OAAO61B,OAAO,GAAI52B,KAAK61B,WACzCc,EAAYD,GAAaV,EACzB,IAAIa,EAAa91B,OAAO61B,OAAO,GAAI52B,KAAK41B,UAExC,OADAiB,EAAWH,GAAaR,EACjB,IAAIP,EAASkB,EAAYF,KAMjC,CACD5zB,IAAK,eACLpB,MAAO,SAAsBmzB,EAAWmB,GACtC,IAAIa,EAAU92B,KAuCd,OAAO,IAAI21B,GArCM,QAAI31B,KAAK41B,UAAU,SAAUmB,EAAiBL,GAC7D,IAAIxP,GAAQ,QAAQ4P,EAAQjB,UAAWa,GAGvC,IAFA,QAAOxP,EAAO,oCAAsCwP,GAEhDK,IAAoBrB,GAAgB,CAEtC,GAAIxO,EAAMsP,YAAY1B,EAAUlH,MAAO,CAMrC,IAJA,IAAI4G,EAAY,GACZ4B,EAAOH,EAAiBI,YAAY1I,GAAU2I,MAC9Cn0B,EAAOi0B,EAAKG,UAETp0B,GACDA,EAAKjB,OAAS4zB,EAAU5zB,MAC1BszB,EAAUptB,KAAKjF,GAGjBA,EAAOi0B,EAAKG,UAId,OADA/B,EAAUptB,KAAK0tB,GACRP,GAAcC,EAAWtN,EAAMuP,cAGtC,OAAOf,GAGT,IAAIsB,EAAef,EAAiB7wB,IAAI0vB,EAAU5zB,MAC9C+1B,EAAcF,EAMlB,OAJIC,IACFC,EAAcA,EAAY9xB,OAAO,IAAIwoB,GAAUmH,EAAU5zB,KAAM81B,KAG1DC,EAAYjH,OAAO8E,EAAWA,EAAUlH,SAGnB5tB,KAAK61B,aAMtC,CACD9yB,IAAK,oBACLpB,MAAO,SAA2BmzB,EAAWmB,GAgB3C,OAAO,IAAIN,GAfM,QAAI31B,KAAK41B,UAAU,SAAUmB,GAC5C,GAAIA,IAAoBrB,GAEtB,OAAOqB,EAEP,IAAIC,EAAef,EAAiB7wB,IAAI0vB,EAAU5zB,MAElD,OAAI81B,EACKD,EAAgB5xB,OAAO,IAAIwoB,GAAUmH,EAAU5zB,KAAM81B,IAGrDD,KAImB/2B,KAAK61B,cAErC,CAAC,CACH9yB,IAAK,UACLqC,IAAK,WAOH,OANA,QAAOswB,IAAkB1B,GAAgB,uCACzCR,GAAmBA,IAAoB,IAAImC,EAAS,CAClD,YAAaD,IACZ,CACD,YAAa1B,SAMZ2B,EArJmB,GAiLxBuB,GAA4B,WAK9B,SAASA,EAAaC,EAAWhF,EAAeiF,IAC9C,OAAgBp3B,KAAMk3B,GAEtBl3B,KAAKm3B,UAAYA,EACjBn3B,KAAKmyB,cAAgBA,EACrBnyB,KAAKo3B,UAAYA,EACjBp3B,KAAKoyB,UAAY,KAObpyB,KAAKmyB,eACPN,GAAqB7xB,KAAKmyB,eAGxBnyB,KAAKm3B,UAAUlI,YACjB,SAAQjvB,KAAKmyB,eAAiBnyB,KAAKmyB,cAAclD,UAAW,wCAiZhE,OA7YA,OAAaiI,EAAc,CAAC,CAC1Bn0B,IAAK,aACLpB,MAEA,WACE,OAAO,IAIR,CACDoB,IAAK,cACLpB,MAAO,WACL,OAAO3B,KAAKmyB,eAAiB1C,KAI9B,CACD1sB,IAAK,iBACLpB,MAAO,SAAwB0wB,GAC7B,OAAIryB,KAAKm3B,UAAUlI,UAEVjvB,KAEA,IAAIk3B,EAAal3B,KAAKm3B,UAAW9E,EAAiBryB,KAAKo3B,aAKjE,CACDr0B,IAAK,oBACLpB,MAAO,SAA2B2wB,GAEhC,GAAkB,cAAdA,EACF,OAAOtyB,KAAKgyB,cAEZ,IAAIqF,EAASr3B,KAAKm3B,UAAU/xB,IAAIktB,GAEhC,OAAkB,OAAX+E,EAAkB5H,GAAa4H,IAKzC,CACDt0B,IAAK,WACLpB,MAAO,SAAkB2f,GACvB,IAAIqR,EAAQtR,GAAaC,GAEzB,OAAc,OAAVqR,EACK3yB,KAGFA,KAAKs3B,kBAAkB3E,GAAO4E,SAAS/V,GAAaF,MAI5D,CACDve,IAAK,WACLpB,MAAO,SAAkB2wB,GACvB,OAAyC,OAAlCtyB,KAAKm3B,UAAU/xB,IAAIktB,KAI3B,CACDvvB,IAAK,uBACLpB,MAAO,SAA8B2wB,EAAWE,GAG9C,IAFA,QAAOA,EAAc,8CAEH,cAAdF,EACF,OAAOtyB,KAAKyyB,eAAeD,GAE3B,IACIyE,EAAaO,EADb1C,EAAY,IAAInH,GAAU2E,EAAWE,GAGrCA,EAAavD,WACfgI,EAAcj3B,KAAKm3B,UAAUhyB,OAAOmtB,GACpCkF,EAAcx3B,KAAKo3B,UAAUK,kBAAkB3C,EAAW90B,KAAKm3B,aAE/DF,EAAcj3B,KAAKm3B,UAAUnH,OAAOsC,EAAWE,GAC/CgF,EAAcx3B,KAAKo3B,UAAUM,aAAa5C,EAAW90B,KAAKm3B,YAG5D,IAAIQ,EAAcV,EAAYhI,UAAYQ,GAAazvB,KAAKmyB,cAC5D,OAAO,IAAI+E,EAAaD,EAAaU,EAAaH,KAKrD,CACDz0B,IAAK,cACLpB,MAAO,SAAqB2f,EAAMkR,GAChC,IAAIG,EAAQtR,GAAaC,GAEzB,GAAc,OAAVqR,EACF,OAAOH,GAEP,QAA8B,cAAvBnR,GAAaC,IAAiD,IAAxBC,GAAcD,GAAa,8CACxE,IAAIsW,EAAoB53B,KAAKs3B,kBAAkB3E,GAAOC,YAAYpR,GAAaF,GAAOkR,GACtF,OAAOxyB,KAAK0yB,qBAAqBC,EAAOiF,KAK3C,CACD70B,IAAK,UACLpB,MAAO,WACL,OAAO3B,KAAKm3B,UAAUlI,YAIvB,CACDlsB,IAAK,cACLpB,MAAO,WACL,OAAO3B,KAAKm3B,UAAUzH,UAIvB,CACD3sB,IAAK,MACLpB,MAAO,SAAakxB,GAClB,GAAI7yB,KAAKivB,UACP,OAAO,KAGT,IAAIjoB,EAAM,GACN6wB,EAAU,EACV/H,EAAS,EACTgI,GAAiB,EAYrB,GAXA93B,KAAK+3B,aAAa/D,IAAgB,SAAUjxB,EAAKwvB,GAC/CvrB,EAAIjE,GAAOwvB,EAAU/D,IAAIqE,GACzBgF,IAEIC,GAAkBZ,EAAahuB,gBAAgB9H,KAAK2B,GACtD+sB,EAAS3nB,KAAK8a,IAAI6M,EAAQ3pB,OAAOpD,IAEjC+0B,GAAiB,MAIhBjF,GAAgBiF,GAAkBhI,EAAS,EAAI+H,EAAS,CAE3D,IAAIG,EAAQ,GAEZ,IAAK,IAAIj1B,KAAOiE,EACdgxB,EAAMj1B,GAAOiE,EAAIjE,GAGnB,OAAOi1B,EAMP,OAJInF,IAAiB7yB,KAAKgyB,cAAc/C,YACtCjoB,EAAI,aAAehH,KAAKgyB,cAAcxD,OAGjCxnB,IAKV,CACDjE,IAAK,OACLpB,MAAO,WACL,GAAuB,OAAnB3B,KAAKoyB,UAAoB,CAC3B,IAAIW,EAAS,GAER/yB,KAAKgyB,cAAc/C,YACtB8D,GAAU,YAAcpB,GAAiB3xB,KAAKgyB,cAAcxD,OAAS,KAGvExuB,KAAK+3B,aAAa/D,IAAgB,SAAUjxB,EAAKwvB,GAC/C,IAAI0F,EAAY1F,EAAUjT,OAER,KAAd2Y,IACFlF,GAAU,IAAMhwB,EAAM,IAAMk1B,MAGhCj4B,KAAKoyB,UAAuB,KAAXW,EAAgB,GAAK/uB,EAAK+uB,GAG7C,OAAO/yB,KAAKoyB,YAIb,CACDrvB,IAAK,0BACLpB,MAAO,SAAiC2wB,EAAWC,EAAWrL,GAC5D,IAAIgR,EAAMl4B,KAAKm4B,cAAcjR,GAE7B,GAAIgR,EAAK,CACP,IAAIE,EAAeF,EAAIG,kBAAkB,IAAI1K,GAAU2E,EAAWC,IAElE,OAAO6F,EAAeA,EAAal3B,KAAO,KAE1C,OAAOlB,KAAKm3B,UAAUkB,kBAAkB/F,KAG3C,CACDvvB,IAAK,oBACLpB,MAAO,SAA2Bq0B,GAChC,IAAIkC,EAAMl4B,KAAKm4B,cAAcnC,GAE7B,GAAIkC,EAAK,CACP,IAAI9G,EAAS8G,EAAI9G,SACjB,OAAOA,GAAUA,EAAOlwB,KAExB,OAAOlB,KAAKm3B,UAAU/F,WAGzB,CACDruB,IAAK,gBACLpB,MAAO,SAAuBq0B,GAC5B,IAAI5E,EAASpxB,KAAKs4B,kBAAkBtC,GAEpC,OAAI5E,EACK,IAAIzD,GAAUyD,EAAQpxB,KAAKm3B,UAAU/xB,IAAIgsB,IAEzC,OAOV,CACDruB,IAAK,mBACLpB,MAAO,SAA0Bq0B,GAC/B,IAAIkC,EAAMl4B,KAAKm4B,cAAcnC,GAE7B,GAAIkC,EAAK,CACP,IAAIpI,EAASoI,EAAIpI,SACjB,OAAOA,GAAUA,EAAO5uB,KAExB,OAAOlB,KAAKm3B,UAAUrH,WAGzB,CACD/sB,IAAK,eACLpB,MAAO,SAAsBq0B,GAC3B,IAAIlG,EAAS9vB,KAAKu4B,iBAAiBvC,GAEnC,OAAIlG,EACK,IAAInC,GAAUmC,EAAQ9vB,KAAKm3B,UAAU/xB,IAAI0qB,IAEzC,OAGV,CACD/sB,IAAK,eACLpB,MAAO,SAAsBulB,EAAOd,GAClC,IAAI8R,EAAMl4B,KAAKm4B,cAAcjR,GAE7B,OAAIgR,EACKA,EAAIvI,kBAAiB,SAAU6I,GACpC,OAAOpS,EAAOoS,EAAYt3B,KAAMs3B,EAAY5K,SAGvC5tB,KAAKm3B,UAAUxH,iBAAiBvJ,KAG1C,CACDrjB,IAAK,cACLpB,MAAO,SAAqBq0B,GAC1B,OAAOh2B,KAAKy4B,gBAAgBzC,EAAgB0C,UAAW1C,KAExD,CACDjzB,IAAK,kBACLpB,MAAO,SAAyBg3B,EAAW3C,GACzC,IAAIkC,EAAMl4B,KAAKm4B,cAAcnC,GAE7B,GAAIkC,EACF,OAAOA,EAAIO,gBAAgBE,GAAW,SAAU51B,GAC9C,OAAOA,KAMT,IAHA,IAAItC,EAAWT,KAAKm3B,UAAUsB,gBAAgBE,EAAUz3B,KAAMysB,GAAU2I,MACpEn0B,EAAO1B,EAASm4B,OAEL,MAARz2B,GAAgB6zB,EAAgBlI,QAAQ3rB,EAAMw2B,GAAa,GAChEl4B,EAAS81B,UACTp0B,EAAO1B,EAASm4B,OAGlB,OAAOn4B,IAGV,CACDsC,IAAK,qBACLpB,MAAO,SAA4Bq0B,GACjC,OAAOh2B,KAAK64B,uBAAuB7C,EAAgB8C,UAAW9C,KAE/D,CACDjzB,IAAK,yBACLpB,MAAO,SAAgCo3B,EAAS/C,GAC9C,IAAIkC,EAAMl4B,KAAKm4B,cAAcnC,GAE7B,GAAIkC,EACF,OAAOA,EAAIW,uBAAuBE,GAAS,SAAUh2B,GACnD,OAAOA,KAMT,IAHA,IAAItC,EAAWT,KAAKm3B,UAAU0B,uBAAuBE,EAAQ73B,KAAMysB,GAAU2I,MACzEn0B,EAAO1B,EAASm4B,OAEL,MAARz2B,GAAgB6zB,EAAgBlI,QAAQ3rB,EAAM42B,GAAW,GAC9Dt4B,EAAS81B,UACTp0B,EAAO1B,EAASm4B,OAGlB,OAAOn4B,IAGV,CACDsC,IAAK,YACLpB,MAAO,SAAmB+gB,GACxB,OAAI1iB,KAAKivB,UACHvM,EAAMuM,UACD,GAEC,EAEDvM,EAAMqP,cAAgBrP,EAAMuM,UAC9B,EACEvM,IAAUsW,IACX,EAGD,IAGV,CACDj2B,IAAK,YACLpB,MAAO,SAAmBq0B,GACxB,GAAIA,IAAoBvH,IAAazuB,KAAKo3B,UAAU6B,SAASjD,GAC3D,OAAOh2B,KAEP,IAAIw3B,EAAcx3B,KAAKo3B,UAAU8B,SAASlD,EAAiBh2B,KAAKm3B,WAChE,OAAO,IAAID,EAAal3B,KAAKm3B,UAAWn3B,KAAKmyB,cAAeqF,KAG/D,CACDz0B,IAAK,YACLpB,MAAO,SAAmBulB,GACxB,OAAOA,IAAUuH,IAAazuB,KAAKo3B,UAAU6B,SAAS/R,KAEvD,CACDnkB,IAAK,SACLpB,MAAO,SAAgB+gB,GACrB,GAAIA,IAAU1iB,KACZ,OAAO,EACF,GAAI0iB,EAAMqP,aACf,OAAO,EAEP,IAAIoH,EAAoBzW,EAExB,GAAK1iB,KAAKgyB,cAAcuB,OAAO4F,EAAkBnH,eAE1C,IAAIhyB,KAAKm3B,UAAUzH,UAAYyJ,EAAkBhC,UAAUzH,QAAS,CAMzE,IALA,IAAI0J,EAAWp5B,KAAKq2B,YAAYrC,IAC5BqF,EAAYF,EAAkB9C,YAAYrC,IAC1CsF,EAAcF,EAAS7C,UACvBgD,EAAeF,EAAU9C,UAEtB+C,GAAeC,GAAc,CAClC,GAAID,EAAYp4B,OAASq4B,EAAar4B,OAASo4B,EAAY1L,KAAK2F,OAAOgG,EAAa3L,MAClF,OAAO,EAGT0L,EAAcF,EAAS7C,UACvBgD,EAAeF,EAAU9C,UAG3B,OAAuB,OAAhB+C,GAAyC,OAAjBC,EAE/B,OAAO,EAlBP,OAAO,IA4BZ,CACDx2B,IAAK,gBACLpB,MAAO,SAAuBq0B,GAC5B,OAAIA,IAAoBvH,GACf,KAEAzuB,KAAKo3B,UAAUhyB,IAAI4wB,EAAgBh1B,eAG5C,CAAC,CACH+B,IAAK,aACLqC,IAAK,WACH,OAAOqqB,KAAeA,GAAa,IAAIyH,EAAa,IAAI1H,GAAU+B,IAAkB,KAAMoE,GAAS6D,cAIhGtC,EAxauB,GA2ahCA,GAAahuB,gBAAkB,iBAE/B,IAkDI8vB,GAAW,IAlDY,SAAUS,IACnC,OAAUC,EAASD,GAEnB,IAAIE,EAAU36B,EAAa06B,GAE3B,SAASA,IAGP,OAFA,OAAgB15B,KAAM05B,GAEfC,EAAQj6B,KAAKM,KAAM,IAAIwvB,GAAU+B,IAAkB2F,GAAazH,WAAYkG,GAAS6D,SAmC9F,OAhCA,OAAaE,EAAS,CAAC,CACrB32B,IAAK,YACLpB,MAAO,SAAmB+gB,GACxB,OAAIA,IAAU1iB,KACL,EAEA,IAGV,CACD+C,IAAK,SACLpB,MAAO,SAAgB+gB,GAErB,OAAOA,IAAU1iB,OAElB,CACD+C,IAAK,cACLpB,MAAO,WACL,OAAO3B,OAER,CACD+C,IAAK,oBACLpB,MAAO,SAA2B2wB,GAChC,OAAO4E,GAAazH,aAErB,CACD1sB,IAAK,UACLpB,MAAO,WACL,OAAO,MAIJ+3B,EA3CkB,CA4CzBxC,KAOFn2B,OAAO64B,iBAAiBjM,GAAW,CACjCQ,IAAK,CACHxsB,MAAO,IAAIgsB,GAAUrnB,EAAU4wB,GAAazH,aAE9CoK,IAAK,CACHl4B,MAAO,IAAIgsB,GAAUpnB,EAAUyyB,OAOnC5K,GAASV,aAAewJ,GAAazH,WACrCwC,GAAST,0BAA4B0F,GAptCnCnG,GAqtCWiI,GAr4Bb,SAAoBxK,GAClBkD,GAAalD,EAq4BfsL,CAAWd,IA0BX,SAASe,GAAaC,GACpB,IAAIpI,EAAW1xB,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,KAEnF,GAAa,OAAT85B,EACF,OAAO9C,GAAazH,WActB,GAXoB,iBAATuK,GAAqB,cAAeA,IAC7CpI,EAAWoI,EAAK,eAGlB,QAAoB,OAAbpI,GAAyC,iBAAbA,GAA6C,iBAAbA,GAA6C,iBAAbA,GAAyB,QAASA,EAAU,uCAAyCA,GAEpK,iBAAToI,GAAqB,WAAYA,GAA2B,OAAnBA,EAAK,YACvDA,EAAOA,EAAK,WAIM,iBAATA,GAAqB,QAASA,EAAM,CAC7C,IAAIC,EAAWD,EACf,OAAO,IAAI/H,GAASgI,EAAUF,GAAanI,IAG7C,GAAMoI,aAAgBt5B,MAkCf,CACL,IAAIktB,EAAOsJ,GAAazH,WAaxB,OAZA9nB,EAAKqyB,GAAM,SAAUj3B,EAAKm3B,GACxB,IAAI,QAASF,EAAMj3B,IACW,MAAxBA,EAAI2E,UAAU,EAAG,GAAY,CAE/B,IAAI6qB,EAAYwH,GAAaG,IAEzB3H,EAAUR,cAAiBQ,EAAUtD,YACvCrB,EAAOA,EAAK8E,qBAAqB3vB,EAAKwvB,QAKvC3E,EAAK6E,eAAesH,GAAanI,IA/CxC,IAAIuI,EAAW,GACXC,GAAuB,EACvBC,EAAeL,EAanB,GAZAryB,EAAK0yB,GAAc,SAAUt3B,EAAKu3B,GAChC,GAA4B,MAAxBv3B,EAAI2E,UAAU,EAAG,GAAY,CAE/B,IAAI6qB,EAAYwH,GAAaO,GAExB/H,EAAUtD,YACbmL,EAAuBA,IAAyB7H,EAAUP,cAAc/C,UACxEkL,EAAS/yB,KAAK,IAAIumB,GAAU5qB,EAAKwvB,SAKf,IAApB4H,EAAS74B,OACX,OAAO41B,GAAazH,WAGtB,IAAI8K,EAAWhG,GAAc4F,EAAU7I,IAAsB,SAAUwD,GACrE,OAAOA,EAAU5zB,OAChBqwB,IAEH,GAAI6I,EAAsB,CACxB,IAAII,EAAiBjG,GAAc4F,EAAUnG,GAAeyC,cAC5D,OAAO,IAAIS,GAAaqD,EAAUR,GAAanI,GAAW,IAAI+D,GAAS,CACrE,YAAa6E,GACZ,CACD,YAAaxG,MAGf,OAAO,IAAIkD,GAAaqD,EAAUR,GAAanI,GAAW+D,GAAS6D,UA39BzE,SAAyBhL,GACvBiD,GAAiBjD,EA8+BnBiM,CAAgBV,IAkBhB,IAwLMW,GAKAC,GA7LFC,GAAyB,SAAUC,IACrC,OAAUD,EAAWC,GAErB,IAAIC,EAAU97B,EAAa47B,GAE3B,SAASA,EAAUG,GACjB,IAAIC,EAOJ,OALA,OAAgBh7B,KAAM46B,IAEtBI,EAAUF,EAAQp7B,KAAKM,OACf+6B,WAAaA,GACrB,SAAQ5Y,GAAY4Y,IAA4C,cAA7B1Z,GAAa0Z,GAA6B,2DACtEC,EA8CT,OA3CA,OAAaJ,EAAW,CAAC,CACvB73B,IAAK,eACLpB,MAAO,SAAsBs5B,GAC3B,OAAOA,EAAK1D,SAASv3B,KAAK+6B,cAE3B,CACDh4B,IAAK,cACLpB,MAAO,SAAqBisB,GAC1B,OAAQA,EAAK2J,SAASv3B,KAAK+6B,YAAY9L,YAExC,CACDlsB,IAAK,UACLpB,MAAO,SAAiB8E,EAAGC,GACzB,IAAIw0B,EAASl7B,KAAKm7B,aAAa10B,EAAEmnB,MAC7BwN,EAASp7B,KAAKm7B,aAAaz0B,EAAEknB,MAC7BkG,EAAWoH,EAAOnH,UAAUqH,GAEhC,OAAiB,IAAbtH,EACKttB,EAAYC,EAAEvF,KAAMwF,EAAExF,MAEtB4yB,IAGV,CACD/wB,IAAK,WACLpB,MAAO,SAAkB4sB,EAAYrtB,GACnC,IAAIm6B,EAAYtB,GAAaxL,GACzBX,EAAOsJ,GAAazH,WAAWmD,YAAY5yB,KAAK+6B,WAAYM,GAChE,OAAO,IAAI1N,GAAUzsB,EAAM0sB,KAE5B,CACD7qB,IAAK,UACLpB,MAAO,WACL,IAAIisB,EAAOsJ,GAAazH,WAAWmD,YAAY5yB,KAAK+6B,WAAY/B,IAChE,OAAO,IAAIrL,GAAUpnB,EAAUqnB,KAEhC,CACD7qB,IAAK,WACLpB,MAAO,WACL,OAAO+f,GAAU1hB,KAAK+6B,WAAY,GAAGnyB,KAAK,SAIvCgyB,EA3DoB,CA4D3B/M,IAmBEyN,GAA0B,SAAUC,IACtC,OAAUD,EAAYC,GAEtB,IAAIC,EAAUx8B,EAAas8B,GAE3B,SAASA,IAGP,OAFA,OAAgBt7B,KAAMs7B,GAEfE,EAAQr7B,MAAMH,KAAME,WAqD7B,OAlDA,OAAao7B,EAAY,CAAC,CACxBv4B,IAAK,UACLpB,MAAO,SAAiB8E,EAAGC,GACzB,IAAIotB,EAAWrtB,EAAEmnB,KAAKmG,UAAUrtB,EAAEknB,MAElC,OAAiB,IAAbkG,EACKttB,EAAYC,EAAEvF,KAAMwF,EAAExF,MAEtB4yB,IAGV,CACD/wB,IAAK,cACLpB,MAAO,SAAqBisB,GAC1B,OAAO,IAER,CACD7qB,IAAK,sBACLpB,MAAO,SAA6BosB,EAASC,GAC3C,OAAQD,EAAQwF,OAAOvF,KAExB,CACDjrB,IAAK,UACLpB,MAAO,WAEL,OAAOgsB,GAAUQ,MAElB,CACDprB,IAAK,UACLpB,MAAO,WAEL,OAAOgsB,GAAUkM,MAElB,CACD92B,IAAK,WACLpB,MAAO,SAAkB4sB,EAAYrtB,GACnC,IAAIm6B,EAAYtB,GAAaxL,GAC7B,OAAO,IAAIZ,GAAUzsB,EAAMm6B,KAM5B,CACDt4B,IAAK,WACLpB,MAAO,WACL,MAAO,aAIJ25B,EA7DqB,CA8D5BzN,IAEE4N,GAAc,IAAIH,GAmBlBI,GAAa,mEAmBbC,IAGEjB,GAAe,EAKfC,GAAgB,GACb,SAAUiB,GACf,IAEIr6B,EAFAs6B,EAAgBD,IAAQlB,GAC5BA,GAAekB,EAEf,IAAIE,EAAiB,IAAIp7B,MAAM,GAE/B,IAAKa,EAAI,EAAGA,GAAK,EAAGA,IAClBu6B,EAAev6B,GAAKm6B,GAAWK,OAAOH,EAAM,IAG5CA,EAAMzzB,KAAKI,MAAMqzB,EAAM,KAGzB,QAAe,IAARA,EAAW,4BAClB,IAAIj5B,EAAKm5B,EAAelzB,KAAK,IAE7B,GAAKizB,EAIE,CAGL,IAAKt6B,EAAI,GAAIA,GAAK,GAA0B,KAArBo5B,GAAcp5B,GAAWA,IAC9Co5B,GAAcp5B,GAAK,EAGrBo5B,GAAcp5B,UAVd,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClBo5B,GAAcp5B,GAAK4G,KAAKI,MAAsB,GAAhBJ,KAAK+J,UAYvC,IAAK3Q,EAAI,EAAGA,EAAI,GAAIA,IAClBoB,GAAM+4B,GAAWK,OAAOpB,GAAcp5B,IAIxC,OADA,QAAqB,KAAdoB,EAAGrB,OAAe,oCAClBqB,IA4GX,SAASq5B,GAAYC,GACnB,MAAO,CACL5uB,KAAM,QAGN4uB,aAAcA,GAIlB,SAASC,GAAiB5J,EAAW2J,GACnC,MAAO,CACL5uB,KAAM,cAGN4uB,aAAcA,EACd3J,UAAWA,GAIf,SAAS6J,GAAmB7J,EAAW2J,GACrC,MAAO,CACL5uB,KAAM,gBAGN4uB,aAAcA,EACd3J,UAAWA,GAIf,SAAS8J,GAAmB9J,EAAW2J,EAAcI,GACnD,MAAO,CACLhvB,KAAM,gBAGN4uB,aAAcA,EACd3J,UAAWA,EACX+J,QAASA,GAmCb,IA4eIC,GAA2B,WAC7B,SAASA,KACP,OAAgBt8B,KAAMs8B,GAEtBt8B,KAAKu8B,WAAY,EACjBv8B,KAAKw8B,WAAY,EACjBx8B,KAAKy8B,eAAgB,EACrBz8B,KAAK08B,gBAAiB,EACtB18B,KAAK28B,SAAU,EACf38B,KAAK48B,aAAc,EACnB58B,KAAK68B,eAAgB,EACrB78B,KAAK88B,OAAS,EACd98B,KAAK+8B,UAAY,GACjB/8B,KAAKg9B,iBAAmB,KACxBh9B,KAAKi9B,gBAAkB,GACvBj9B,KAAKk9B,eAAiB,KACtBl9B,KAAKm9B,cAAgB,GACrBn9B,KAAKo9B,OAASpJ,GAyJhB,OAtJA,OAAasI,EAAa,CAAC,CACzBv5B,IAAK,WACLpB,MAAO,WACL,OAAO3B,KAAKw8B,YAEb,CACDz5B,IAAK,gBACLpB,MAAO,WACL,OAAO3B,KAAK08B,iBAEb,CACD35B,IAAK,eACLpB,MAAO,WACL,OAAO3B,KAAK68B,gBAMb,CACD95B,IAAK,iBACLpB,MAAO,WACL,MAAuB,KAAnB3B,KAAK+8B,UAKA/8B,KAAKw8B,UAEc,MAAnBx8B,KAAK+8B,YASf,CACDh6B,IAAK,qBACLpB,MAAO,WAEL,OADA,QAAO3B,KAAKw8B,UAAW,oCAChBx8B,KAAKg9B,mBAOb,CACDj6B,IAAK,oBACLpB,MAAO,WAGL,OAFA,QAAO3B,KAAKw8B,UAAW,oCAEnBx8B,KAAKy8B,cACAz8B,KAAKi9B,gBAEL32B,IAGV,CACDvD,IAAK,SACLpB,MAAO,WACL,OAAO3B,KAAK28B,UAMb,CACD55B,IAAK,mBACLpB,MAAO,WAEL,OADA,QAAO3B,KAAK28B,QAAS,kCACd38B,KAAKk9B,iBAOb,CACDn6B,IAAK,kBACLpB,MAAO,WAGL,OAFA,QAAO3B,KAAK28B,QAAS,kCAEjB38B,KAAK48B,YACA58B,KAAKm9B,cAEL52B,IAGV,CACDxD,IAAK,WACLpB,MAAO,WACL,OAAO3B,KAAKu8B,YAMb,CACDx5B,IAAK,mBACLpB,MAAO,WACL,OAAO3B,KAAKu8B,WAAgC,KAAnBv8B,KAAK+8B,YAM/B,CACDh6B,IAAK,WACLpB,MAAO,WAEL,OADA,QAAO3B,KAAKu8B,UAAW,oCAChBv8B,KAAK88B,SAEb,CACD/5B,IAAK,WACLpB,MAAO,WACL,OAAO3B,KAAKo9B,SAEb,CACDr6B,IAAK,eACLpB,MAAO,WACL,QAAS3B,KAAKw8B,WAAax8B,KAAK28B,SAAW38B,KAAKu8B,aAEjD,CACDx5B,IAAK,YACLpB,MAAO,WACL,OAAO3B,KAAK4nB,gBAAkB5nB,KAAKo9B,SAAWpJ,KAE/C,CACDjxB,IAAK,OACLpB,MAAO,WACL,IAAIouB,EAAO,IAAIuM,EAaf,OAZAvM,EAAKwM,UAAYv8B,KAAKu8B,UACtBxM,EAAK+M,OAAS98B,KAAK88B,OACnB/M,EAAKyM,UAAYx8B,KAAKw8B,UACtBzM,EAAKiN,iBAAmBh9B,KAAKg9B,iBAC7BjN,EAAK0M,cAAgBz8B,KAAKy8B,cAC1B1M,EAAKkN,gBAAkBj9B,KAAKi9B,gBAC5BlN,EAAK4M,QAAU38B,KAAK28B,QACpB5M,EAAKmN,eAAiBl9B,KAAKk9B,eAC3BnN,EAAK6M,YAAc58B,KAAK48B,YACxB7M,EAAKoN,cAAgBn9B,KAAKm9B,cAC1BpN,EAAKqN,OAASp9B,KAAKo9B,OACnBrN,EAAKgN,UAAY/8B,KAAK+8B,UACfhN,MAIJuM,EA1KsB,GAkT/B,SAASe,GAAuCC,GAC9C,IAMIC,EANAC,EAAK,GAET,OAAIF,EAAY3V,cAMZ2V,EAAYF,SAAWpJ,GACzBuJ,EAAU,YAGDD,EAAYF,SAAW3B,GAChC8B,EAAU,SAGDD,EAAYF,SAAW3O,GAChC8O,EAAU,SAIV,QAAOD,EAAYF,kBAAkBxC,GAAW,4BAChD2C,EAAUD,EAAYF,OAAOp8B,YAG/Bw8B,EAEA,SAAI,QAAUD,GAEVD,EAAYd,YACdgB,EAEA,SAAI,QAAUF,EAAYN,kBAEtBM,EAAYb,gBACde,EAEA,SAAK,KAAM,QAAUF,EAAYL,mBAIjCK,EAAYX,UACda,EAEA,OAAI,QAAUF,EAAYJ,gBAEtBI,EAAYV,cACdY,EAEA,OAAK,KAAM,QAAUF,EAAYH,iBAIjCG,EAAYf,YACVe,EAAYG,iBACdD,EAEA,aAAIF,EAAYR,OAEhBU,EAEA,YAAIF,EAAYR,SA1DXU,EAiEX,SAASE,GAA0BJ,GACjC,IAAIt2B,EAAM,GA0BV,GAxBIs2B,EAAYd,YACdx1B,EAEA,GAAIs2B,EAAYN,iBAEZM,EAAYb,gBACdz1B,EAEA,GAAIs2B,EAAYL,kBAIhBK,EAAYX,UACd31B,EAEA,GAAIs2B,EAAYJ,eAEZI,EAAYV,cACd51B,EAEA,GAAIs2B,EAAYH,gBAIhBG,EAAYf,UAAW,CACzBv1B,EAEA,EAAIs2B,EAAYR,OAChB,IAAIa,EAAWL,EAAYP,UAEV,KAAbY,IAEAA,EADEL,EAAYG,iBACH,IAIA,KAMfz2B,EAEA,GAAI22B,EAUN,OANIL,EAAYF,SAAWpJ,KACzBhtB,EAEA,EAAIs2B,EAAYF,OAAOp8B,YAGlBgG,EA0BT,IAAI42B,GAAkC,SAAUC,IAC9C,OAAUD,EAAoBC,GAE9B,IAAIC,EAAU9+B,EAAa4+B,GAM3B,SAASA,EAAmB9iB,EAAWoJ,EAAeG,EAAoBC,GACxE,IAAIyZ,EAkBJ,OAhBA,OAAgB/9B,KAAM49B,IAEtBG,EAAUD,EAAQp+B,KAAKM,OACf8a,UAAYA,EACpBijB,EAAQ7Z,cAAgBA,EACxB6Z,EAAQ1Z,mBAAqBA,EAC7B0Z,EAAQzZ,uBAAyBA,EAGjCyZ,EAAQnuB,KAAOpK,EAAW,WAM1Bu4B,EAAQC,SAAW,GACZD,EAmLT,OAhLA,OAAaH,EAAoB,CAAC,CAChC76B,IAAK,cACLpB,MAAO,SAAqB6d,GAC1B,MAAM,IAAIzZ,MAAM,6BAEjB,CACDhD,IAAK,SACLpB,MAEA,SAAgBuL,EAAOma,EAAeC,EAAKjI,GACzC,IAAI4e,EAAUj+B,KAEVof,EAAalS,EAAM4Z,MAAM9lB,WAE7BhB,KAAK4P,KAAK,qBAAuBwP,EAAa,IAAMlS,EAAMsa,kBAE1D,IAAI0W,EAAWN,EAAmBO,aAAajxB,EAAOoa,GAClD8W,EAAa,GACjBp+B,KAAKg+B,SAASE,GAAYE,EAC1B,IAAIC,EAAwBhB,GAAuCnwB,EAAMwa,cACzE1nB,KAAKs+B,aAAalf,EAAa,QAASif,GAAuB,SAAUx4B,EAAOhG,GAC9E,IAAIqG,EAAOrG,GAEG,MAAVgG,IACFK,EAAO,KACPL,EAAQ,MAGI,OAAVA,GACFo4B,EAAQ/Z,cAAc9E,EAAYlZ,GAElC,EAAOohB,IAGL,QAAQ2W,EAAQD,SAAUE,KAAcE,IAW1C/e,EARKxZ,EAEgB,MAAVA,EACA,oBAEA,cAAgBA,EAJhB,KAOQ,WAMxB,CACD9C,IAAK,WACLpB,MAAO,SAAkBuL,EAAOoa,GAC9B,IAAI4W,EAAWN,EAAmBO,aAAajxB,EAAOoa,UAC/CtnB,KAAKg+B,SAASE,KAEtB,CACDn7B,IAAK,MACLpB,MAAO,SAAauL,GAClB,IAAIqxB,EAAUv+B,KAEVq+B,EAAwBhB,GAAuCnwB,EAAMwa,cAErEtI,EAAalS,EAAM4Z,MAAM9lB,WAEzB2lB,EAAW,IAAI,KAqBnB,OApBA3mB,KAAKs+B,aAAalf,EAAa,QAASif,GAAuB,SAAUx4B,EAAOhG,GAC9E,IAAIqG,EAAOrG,EAEG,MAAVgG,IACFK,EAAO,KACPL,EAAQ,MAGI,OAAVA,GACF04B,EAAQra,cAAc9E,EAAYlZ,GAElC,EAEA,MAEAygB,EAASlc,QAAQvE,IAEjBygB,EAASjc,OAAO,IAAI3E,MAAMG,OAGvBygB,EAASS,UAIjB,CACDrkB,IAAK,mBACLpB,MAAO,SAA0B4d,MAOhC,CACDxc,IAAK,eACLpB,MAAO,SAAsByd,GAC3B,IAAIof,EAAUx+B,KAEVq+B,EAAwBn+B,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,GAC5FuO,EAAWvO,UAAUoB,OAAS,EAAIpB,UAAU,QAAKuE,EAErD,OADA45B,EAA8B,OAAI,SAC3B7zB,QAAQohB,IAAI,CAAC5rB,KAAKqkB,mBAAmB9Z,UAE5C,GAAQvK,KAAKskB,uBAAuB/Z,UAEpC,KAASH,MAAK,SAAUq0B,GACtB,IAAIC,GAAQ,OAAeD,EAAM,GAC7BpvB,EAAYqvB,EAAM,GAClBtvB,EAAgBsvB,EAAM,GAEtBrvB,GAAaA,EAAUzD,cACzByyB,EAA4B,KAAIhvB,EAAUzD,aAGxCwD,GAAiBA,EAAcmQ,QACjC8e,EAA0B,GAAIjvB,EAAcmQ,OAG9C,IAAI1J,GAAO2oB,EAAQ1jB,UAAU1O,OAAS,WAAa,WAAaoyB,EAAQ1jB,UAAU3O,KAAOiT,EAA/E,OAA0Gof,EAAQ1jB,UAAUzO,WAAY,QAAYgyB,GAE9JG,EAAQ5uB,KAAK,4BAA8BiG,GAE3C,IAAI8oB,EAAM,IAAIC,eAEdD,EAAIjoB,mBAAqB,WACvB,GAAIjI,GAA+B,IAAnBkwB,EAAIluB,WAAkB,CACpC+tB,EAAQ5uB,KAAK,qBAAuBiG,EAAM,qBAAsB8oB,EAAIxW,OAAQ,YAAawW,EAAIE,cAE7F,IAAI/V,EAAM,KAEV,GAAI6V,EAAIxW,QAAU,KAAOwW,EAAIxW,OAAS,IAAK,CACzC,IACEW,GAAM,QAAS6V,EAAIE,cACnB,MAAOl/B,GACPqG,EAAK,qCAAuC6P,EAAM,KAAO8oB,EAAIE,cAG/DpwB,EAAS,KAAMqa,QAGI,MAAf6V,EAAIxW,QAAiC,MAAfwW,EAAIxW,QAC5BniB,EAAK,sCAAwC6P,EAAM,YAAc8oB,EAAIxW,QAGvE1Z,EAASkwB,EAAIxW,QAGf1Z,EAAW,OAIfkwB,EAAIjqB,KAAK,MAAOmB,GAEhB,GACA8oB,EAAIllB,aAGN,CAAC,CACH1W,IAAK,eACLpB,MAAO,SAAsBuL,EAAOoa,GAClC,YAAY7iB,IAAR6iB,EACK,OAASA,IAEhB,QAAOpa,EAAMwa,aAAaC,YAAa,kDAChCza,EAAM4Z,MAAM9lB,gBAKlB48B,EA/M6B,CAgNpCze,IAuBE2f,GAA8B,WAChC,SAASA,KACP,OAAgB9+B,KAAM8+B,GAEtB9+B,KAAK++B,UAAY7H,GAAazH,WAehC,OAZA,OAAaqP,EAAgB,CAAC,CAC5B/7B,IAAK,UACLpB,MAAO,SAAiB2f,GACtB,OAAOthB,KAAK++B,UAAUxH,SAASjW,KAEhC,CACDve,IAAK,iBACLpB,MAAO,SAAwB2f,EAAM0d,GACnCh/B,KAAK++B,UAAY/+B,KAAK++B,UAAUnM,YAAYtR,EAAM0d,OAI/CF,EAnByB,GAuClC,SAASG,KACP,MAAO,CACLt9B,MAAO,KACPw4B,SAAU,IAAIvV,KAYlB,SAASsa,GAA2BC,EAAoB7d,EAAMpb,GAC5D,GAAIic,GAAYb,GACd6d,EAAmBx9B,MAAQuE,EAC3Bi5B,EAAmBhF,SAASiF,aACvB,GAAiC,OAA7BD,EAAmBx9B,MAC5Bw9B,EAAmBx9B,MAAQw9B,EAAmBx9B,MAAMixB,YAAYtR,EAAMpb,OACjE,CACL,IAAIm5B,EAAWhe,GAAaC,GAEvB6d,EAAmBhF,SAAS1S,IAAI4X,IACnCF,EAAmBhF,SAASj1B,IAAIm6B,EAAUJ,MAM5CC,GAHcC,EAAmBhF,SAAS/0B,IAAIi6B,GAE9C/d,EAAOE,GAAaF,GACsBpb,IAwD9C,SAASo5B,GAA8BH,EAAoBI,EAAYC,GACpC,OAA7BL,EAAmBx9B,MACrB69B,EAAKD,EAAYJ,EAAmBx9B,OAgBxC,SAAwCw9B,EAAoBK,GAC1DL,EAAmBhF,SAASsF,SAAQ,SAAUC,EAAM38B,GAClDy8B,EAAKz8B,EAAK28B,MAhBVC,CAA+BR,GAAoB,SAAUp8B,EAAK28B,GAEhEJ,GAA8BI,EADnB,IAAI7e,GAAK0e,EAAWv+B,WAAa,IAAM+B,GACRy8B,MAyChD,IAiHII,GAjHAC,GAA6B,WAC/B,SAASA,EAAcC,IACrB,OAAgB9/B,KAAM6/B,GAEtB7/B,KAAK8/B,YAAcA,EACnB9/B,KAAK+/B,MAAQ,KAoBf,OAjBA,OAAaF,EAAe,CAAC,CAC3B98B,IAAK,MACLpB,MAAO,WACL,IAAIq+B,EAAWhgC,KAAK8/B,YAAY16B,MAC5B6mB,EAAQlrB,OAAO61B,OAAO,GAAIoJ,GAS9B,OAPIhgC,KAAK+/B,OACPp4B,EAAK3H,KAAK+/B,OAAO,SAAUE,EAAMt+B,GAC/BsqB,EAAMgU,GAAQhU,EAAMgU,GAAQt+B,KAIhC3B,KAAK+/B,MAAQC,EACN/T,MAIJ4T,EAzBwB,GAqD7BK,GAA6B,WAC/B,SAASA,EAAcC,EAAYC,IACjC,OAAgBpgC,KAAMkgC,GAEtBlgC,KAAKogC,QAAUA,EACfpgC,KAAKqgC,eAAiB,GACtBrgC,KAAKsgC,eAAiB,IAAIT,GAAcM,GACxC,IAAIv2B,EAZmB,IAYc,IAAgDzB,KAAK+J,SAC1FxI,GAAsB1J,KAAKugC,aAAat7B,KAAKjF,MAAOmI,KAAKI,MAAMqB,IA2BjE,OAxBA,OAAas2B,EAAe,CAAC,CAC3Bn9B,IAAK,eACLpB,MAAO,WACL,IAAI6+B,EAAUxgC,KAEVwf,EAAQxf,KAAKsgC,eAAel7B,MAC5Bq7B,EAAgB,GAChBC,GAAoB,EACxB/4B,EAAK6X,GAAO,SAAUygB,EAAMt+B,GACtBA,EAAQ,IAAK,QAAS6+B,EAAQH,eAAgBJ,KAChDQ,EAAcR,GAAQt+B,EACtB++B,GAAoB,MAIpBA,GACF1gC,KAAKogC,QAAQhT,YAAYqT,GAI3B/2B,GAAsB1J,KAAKugC,aAAat7B,KAAKjF,MAAOmI,KAAKI,MAAsB,EAAhBJ,KAAK+J,SAjC9C,UAqCnBguB,EAnCwB,GAuFjC,SAASS,GAAoCpZ,GAC3C,MAAO,CACLqZ,UAAU,EACVC,YAAY,EACZtZ,QAASA,EACTuZ,QAAQ,IA9BZ,SAAWlB,GACTA,EAAcA,EAAyB,UAAI,GAAK,YAChDA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAA8B,eAAI,GAAK,iBACrDA,EAAcA,EAA+B,gBAAI,GAAK,kBAJxD,CAKGA,KAAkBA,GAAgB,KA8CrC,IAqbImB,GArbAC,GAA4B,WAI9B,SAASA,EAET1f,EAEA2f,EAEAC,IACE,OAAgBlhC,KAAMghC,GAEtBhhC,KAAKshB,KAAOA,EACZthB,KAAKihC,aAAeA,EACpBjhC,KAAKkhC,OAASA,EAGdlhC,KAAKqN,KAAOuyB,GAAcuB,eAG1BnhC,KAAKohC,OAhEA,CACLR,UAAU,EACVC,YAAY,EACZtZ,QAAS,KACTuZ,QAAQ,GAgFV,OAjBA,OAAaE,EAAc,CAAC,CAC1Bj+B,IAAK,oBACLpB,MAAO,SAA2B2wB,GAChC,GAAKnQ,GAAYniB,KAAKshB,MAGf,IAA+B,MAA3BthB,KAAKihC,aAAat/B,MAG3B,OAFA,QAAO3B,KAAKihC,aAAa9G,SAASlL,UAAW,4DAEtCjvB,KAEP,IAAIo1B,EAAYp1B,KAAKihC,aAAaI,QAAQ,IAAIxgB,GAAKyR,IACnD,OAAO,IAAI0O,EAAa5f,KAAgBgU,EAAWp1B,KAAKkhC,QAPxD,OADA,QAAO7f,GAAarhB,KAAKshB,QAAUgR,EAAW,iDACvC,IAAI0O,EAAaxf,GAAaxhB,KAAKshB,MAAOthB,KAAKihC,aAAcjhC,KAAKkhC,YAYxEF,EAzCuB,GAuG5BM,GAAyB,WAC3B,SAASA,EAAUF,EAAQ9f,EAAM2Z,IAC/B,OAAgBj7B,KAAMshC,GAEtBthC,KAAKohC,OAASA,EACdphC,KAAKshB,KAAOA,EACZthB,KAAKi7B,KAAOA,EAGZj7B,KAAKqN,KAAOuyB,GAAc2B,UAc5B,OAXA,OAAaD,EAAW,CAAC,CACvBv+B,IAAK,oBACLpB,MAAO,SAA2B2wB,GAChC,OAAInQ,GAAYniB,KAAKshB,MACZ,IAAIggB,EAAUthC,KAAKohC,OAAQhgB,KAAgBphB,KAAKi7B,KAAK3D,kBAAkBhF,IAEvE,IAAIgP,EAAUthC,KAAKohC,OAAQ5f,GAAaxhB,KAAKshB,MAAOthB,KAAKi7B,UAK/DqG,EAvBoB,GA2CzBE,GAAqB,WACvB,SAASA,EAETJ,EAEA9f,EAEA6Y,IACE,OAAgBn6B,KAAMwhC,GAEtBxhC,KAAKohC,OAASA,EACdphC,KAAKshB,KAAOA,EACZthB,KAAKm6B,SAAWA,EAGhBn6B,KAAKqN,KAAOuyB,GAAc6B,MA+B5B,OA5BA,OAAaD,EAAO,CAAC,CACnBz+B,IAAK,oBACLpB,MAAO,SAA2B2wB,GAChC,GAAInQ,GAAYniB,KAAKshB,MAAO,CAC1B,IAAI8T,EAAYp1B,KAAKm6B,SAASkH,QAAQ,IAAIxgB,GAAKyR,IAE/C,OAAI8C,EAAUnG,UAEL,KACEmG,EAAUzzB,MAEZ,IAAI2/B,GAAUthC,KAAKohC,OAAQhgB,KAAgBgU,EAAUzzB,OAGrD,IAAI6/B,EAAMxhC,KAAKohC,OAAQhgB,KAAgBgU,GAIhD,OADA,QAAO/T,GAAarhB,KAAKshB,QAAUgR,EAAW,kEACvC,IAAIkP,EAAMxhC,KAAKohC,OAAQ5f,GAAaxhB,KAAKshB,MAAOthB,KAAKm6B,YAG/D,CACDp3B,IAAK,WACLpB,MAAO,WACL,MAAO,aAAe3B,KAAKshB,KAAO,KAAOthB,KAAKohC,OAAOpgC,WAAa,WAAahB,KAAKm6B,SAASn5B,WAAa,QAIvGwgC,EA9CgB,GAyErBE,GAAyB,WAC3B,SAASA,EAAUC,EAAOC,EAAmBC,IAC3C,OAAgB7hC,KAAM0hC,GAEtB1hC,KAAK2hC,MAAQA,EACb3hC,KAAK4hC,kBAAoBA,EACzB5hC,KAAK6hC,UAAYA,EA2CnB,OApCA,OAAaH,EAAW,CAAC,CACvB3+B,IAAK,qBACLpB,MAAO,WACL,OAAO3B,KAAK4hC,oBAMb,CACD7+B,IAAK,aACLpB,MAAO,WACL,OAAO3B,KAAK6hC,YAEb,CACD9+B,IAAK,oBACLpB,MAAO,SAA2B2f,GAChC,GAAIa,GAAYb,GACd,OAAOthB,KAAK8hC,uBAAyB9hC,KAAK6hC,UAG5C,IAAIxC,EAAWhe,GAAaC,GAC5B,OAAOthB,KAAK+hC,mBAAmB1C,KAEhC,CACDt8B,IAAK,qBACLpB,MAAO,SAA4BoB,GACjC,OAAO/C,KAAK8hC,uBAAyB9hC,KAAK6hC,WAAa7hC,KAAK2hC,MAAMK,SAASj/B,KAE5E,CACDA,IAAK,UACLpB,MAAO,WACL,OAAO3B,KAAK2hC,UAITD,EAjDoB,GA6H7B,SAASO,GAAoCC,EAAgBC,EAAQviB,EAAWwiB,EAASC,EAAeC,GACtG,IAAIC,EAAkBH,EAAQI,QAAO,SAAUC,GAC7C,OAAOA,EAAOp1B,OAASuS,KAEzB2iB,EAAgBl7B,MAAK,SAAUZ,EAAGC,GAChC,OAqBJ,SAAsCw7B,EAAgBz7B,EAAGC,GACvD,GAAmB,MAAfD,EAAE6rB,WAAoC,MAAf5rB,EAAE4rB,UAC3B,MAAM,QAAe,sCAGvB,IAAIoQ,EAAW,IAAI/U,GAAUlnB,EAAE6rB,UAAW7rB,EAAEw1B,cACxC0G,EAAW,IAAIhV,GAAUjnB,EAAE4rB,UAAW5rB,EAAEu1B,cAC5C,OAAOiG,EAAe9E,OAAOtP,QAAQ4U,EAAUC,GA5BtCC,CAA6BV,EAAgBz7B,EAAGC,MAEzD67B,EAAgB9C,SAAQ,SAAUgD,GAChC,IAAII,EASR,SAA+CX,EAAgBO,EAAQH,GACrE,MAAoB,UAAhBG,EAAOp1B,MAAoC,kBAAhBo1B,EAAOp1B,OAGpCo1B,EAAOK,SAAWR,EAAWS,wBAAwBN,EAAOnQ,UAAWmQ,EAAOxG,aAAciG,EAAe9E,SAFpGqF,EAXkBO,CAAsCd,EAAgBO,EAAQH,GACvFD,EAAc5C,SAAQ,SAAUwD,GAC1BA,EAAaC,WAAWT,EAAOp1B,OACjC80B,EAAO/6B,KAAK67B,EAAaE,YAAYN,EAAoBX,EAAekB,eA0ChF,SAASC,GAAaf,EAAYgB,GAChC,MAAO,CACLhB,WAAYA,EACZgB,YAAaA,GAIjB,SAASC,GAAyBC,EAAWC,EAAWC,EAAUC,GAChE,OAAON,GAAa,IAAI3B,GAAU+B,EAAWC,EAAUC,GAAWH,EAAUF,aAG9E,SAASM,GAA0BJ,EAAWK,EAAYH,EAAUC,GAClE,OAAON,GAAaG,EAAUlB,WAAY,IAAIZ,GAAUmC,EAAYH,EAAUC,IAGhF,SAASG,GAA8BN,GACrC,OAAOA,EAAUlB,WAAWR,qBAAuB0B,EAAUlB,WAAWyB,UAAY,KAGtF,SAASC,GAA+BR,GACtC,OAAOA,EAAUF,YAAYxB,qBAAuB0B,EAAUF,YAAYS,UAAY,KA0BxF,IAAIE,GAAgB,WAKlB,OAJKlD,KACHA,GAAyB,IAAIvR,GAAU1oB,IAGlCi6B,IAOLmD,GAA6B,WAC/B,SAASA,EAAcviC,GACrB,IAAIw4B,EAAWj6B,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK+jC,MAEnF,OAAgBjkC,KAAMkkC,GAEtBlkC,KAAK2B,MAAQA,EACb3B,KAAKm6B,SAAWA,EA6UlB,OA1UA,OAAa+J,EAAe,CAAC,CAC3BnhC,IAAK,UACLpB,MAIA,WACE,OAAsB,OAAf3B,KAAK2B,OAAkB3B,KAAKm6B,SAASlL,YAa7C,CACDlsB,IAAK,mCACLpB,MAAO,SAA0CwiC,EAAcC,GAC7D,GAAkB,MAAdpkC,KAAK2B,OAAiByiC,EAAUpkC,KAAK2B,OACvC,MAAO,CACL2f,KAAMF,KACNzf,MAAO3B,KAAK2B,OAGd,GAAIwgB,GAAYgiB,GACd,OAAO,KAEP,IAAIxR,EAAQtR,GAAa8iB,GAErBE,EAAUrkC,KAAKm6B,SAAS/0B,IAAIutB,GAEhC,GAAgB,OAAZ0R,EAAkB,CACpB,IAAIC,EAA4BD,EAAQE,iCAAiC/iB,GAAa2iB,GAAeC,GAErG,OAAiC,MAA7BE,EAEK,CACLhjB,KAFaQ,GAAU,IAAIjB,GAAK8R,GAAQ2R,EAA0BhjB,MAGlE3f,MAAO2iC,EAA0B3iC,OAG5B,KAGT,OAAO,OAUd,CACDoB,IAAK,2BACLpB,MAAO,SAAkCwiC,GACvC,OAAOnkC,KAAKukC,iCAAiCJ,GAAc,WACzD,OAAO,OAOV,CACDphC,IAAK,UACLpB,MAAO,SAAiBwiC,GACtB,GAAIhiB,GAAYgiB,GACd,OAAOnkC,KAEP,IAAI2yB,EAAQtR,GAAa8iB,GACrB/O,EAAYp1B,KAAKm6B,SAAS/0B,IAAIutB,GAElC,OAAkB,OAAdyC,EACKA,EAAUiM,QAAQ7f,GAAa2iB,IAE/B,IAAID,EAAc,QAY9B,CACDnhC,IAAK,MACLpB,MAAO,SAAawiC,EAAcK,GAChC,GAAIriB,GAAYgiB,GACd,OAAO,IAAID,EAAcM,EAAOxkC,KAAKm6B,UAErC,IAAIxH,EAAQtR,GAAa8iB,GAIrBM,GAFUzkC,KAAKm6B,SAAS/0B,IAAIutB,IAAU,IAAIuR,EAAc,OAErCh/B,IAAIsc,GAAa2iB,GAAeK,GAEnDvN,EAAcj3B,KAAKm6B,SAASnK,OAAO2C,EAAO8R,GAC9C,OAAO,IAAIP,EAAclkC,KAAK2B,MAAOs1B,KAUxC,CACDl0B,IAAK,SACLpB,MAAO,SAAgBwiC,GACrB,GAAIhiB,GAAYgiB,GACd,OAAInkC,KAAKm6B,SAASlL,UACT,IAAIiV,EAAc,MAElB,IAAIA,EAAc,KAAMlkC,KAAKm6B,UAGtC,IAAIxH,EAAQtR,GAAa8iB,GAErBO,EAAU1kC,KAAKm6B,SAAS/0B,IAAIutB,GAEhC,GAAI+R,EAAS,CACX,IAEIzN,EAFAwN,EAAWC,EAAQv/B,OAAOqc,GAAa2iB,IAU3C,OALElN,EADEwN,EAASxV,UACGjvB,KAAKm6B,SAASh1B,OAAOwtB,GAErB3yB,KAAKm6B,SAASnK,OAAO2C,EAAO8R,GAGzB,OAAfzkC,KAAK2B,OAAkBs1B,EAAYhI,UAC9B,IAAIiV,EAAc,MAElB,IAAIA,EAAclkC,KAAK2B,MAAOs1B,GAGvC,OAAOj3B,OAWZ,CACD+C,IAAK,MACLpB,MAAO,SAAawiC,GAClB,GAAIhiB,GAAYgiB,GACd,OAAOnkC,KAAK2B,MAEZ,IAAIgxB,EAAQtR,GAAa8iB,GAErBQ,EAAU3kC,KAAKm6B,SAAS/0B,IAAIutB,GAEhC,OAAIgS,EACKA,EAAQv/B,IAAIoc,GAAa2iB,IAEzB,OAYZ,CACDphC,IAAK,UACLpB,MAAO,SAAiBwiC,EAAcS,GACpC,GAAIziB,GAAYgiB,GACd,OAAOS,EAEP,IAMI3N,EANAtE,EAAQtR,GAAa8iB,GAIrBM,GAFUzkC,KAAKm6B,SAAS/0B,IAAIutB,IAAU,IAAIuR,EAAc,OAErCW,QAAQrjB,GAAa2iB,GAAeS,GAU3D,OALE3N,EADEwN,EAASxV,UACGjvB,KAAKm6B,SAASh1B,OAAOwtB,GAErB3yB,KAAKm6B,SAASnK,OAAO2C,EAAO8R,GAGrC,IAAIP,EAAclkC,KAAK2B,MAAOs1B,KASxC,CACDl0B,IAAK,OACLpB,MAAO,SAAciG,GACnB,OAAO5H,KAAK8kC,MAAM1jB,KAAgBxZ,KAMnC,CACD7E,IAAK,QACLpB,MAAO,SAAeojC,EAAWn9B,GAC/B,IAAIo9B,EAAQ,GAIZ,OAHAhlC,KAAKm6B,SAASxK,kBAAiB,SAAU0P,EAAUjK,GACjD4P,EAAM3F,GAAYjK,EAAU0P,MAAMhjB,GAAUijB,EAAW1F,GAAWz3B,MAE7DA,EAAGm9B,EAAW/kC,KAAK2B,MAAOqjC,KAMlC,CACDjiC,IAAK,aACLpB,MAAO,SAAoB2f,EAAMzf,GAC/B,OAAO7B,KAAKilC,YAAY3jB,EAAMF,KAAgBvf,KAE/C,CACDkB,IAAK,cACLpB,MAAO,SAAqBujC,EAAcH,EAAWljC,GACnD,IAAIhC,IAASG,KAAK2B,OAAQE,EAAEkjC,EAAW/kC,KAAK2B,OAE5C,GAAI9B,EACF,OAAOA,EAEP,GAAIsiB,GAAY+iB,GACd,OAAO,KAEP,IAAIvS,EAAQtR,GAAa6jB,GACrBC,EAAYnlC,KAAKm6B,SAAS/0B,IAAIutB,GAElC,OAAIwS,EACKA,EAAUF,YAAYzjB,GAAa0jB,GAAepjB,GAAUijB,EAAWpS,GAAQ9wB,GAE/E,OAKd,CACDkB,IAAK,gBACLpB,MAAO,SAAuB2f,EAAMzf,GAClC,OAAO7B,KAAKolC,eAAe9jB,EAAMF,KAAgBvf,KAElD,CACDkB,IAAK,iBACLpB,MAAO,SAAwBujC,EAAcG,EAAqBxjC,GAChE,GAAIsgB,GAAY+iB,GACd,OAAOllC,KAEHA,KAAK2B,OACPE,EAAEwjC,EAAqBrlC,KAAK2B,OAG9B,IAAIgxB,EAAQtR,GAAa6jB,GACrBC,EAAYnlC,KAAKm6B,SAAS/0B,IAAIutB,GAElC,OAAIwS,EACKA,EAAUC,eAAe5jB,GAAa0jB,GAAepjB,GAAUujB,EAAqB1S,GAAQ9wB,GAE5F,IAAIqiC,EAAc,QAW9B,CACDnhC,IAAK,UACLpB,MAAO,SAAiBE,GACtB7B,KAAKslC,SAASlkB,KAAgBvf,KAE/B,CACDkB,IAAK,WACLpB,MAAO,SAAkB0jC,EAAqBxjC,GAC5C7B,KAAKm6B,SAASxK,kBAAiB,SAAU2C,EAAW8C,GAClDA,EAAUkQ,SAASxjB,GAAUujB,EAAqB/S,GAAYzwB,MAG5D7B,KAAK2B,OACPE,EAAEwjC,EAAqBrlC,KAAK2B,SAG/B,CACDoB,IAAK,eACLpB,MAAO,SAAsBE,GAC3B7B,KAAKm6B,SAASxK,kBAAiB,SAAU2C,EAAW8C,GAC9CA,EAAUzzB,OACZE,EAAEywB,EAAW8C,EAAUzzB,aAI3B,CAAC,CACHoB,IAAK,aACLpB,MAAO,SAAoBqF,GACzB,IAAI04B,EAAO,IAAIwE,EAAc,MAI7B,OAHAv8B,EAAKX,GAAK,SAAUu+B,EAAWC,GAC7B9F,EAAOA,EAAKx6B,IAAI,IAAI2b,GAAK0kB,GAAYC,MAEhC9F,MAIJwE,EApVwB,GA+W7BuB,GAA6B,WAC/B,SAASA,EAAcC,IACrB,OAAgB1lC,KAAMylC,GAEtBzlC,KAAK0lC,WAAaA,EAUpB,OAPA,OAAaD,EAAe,KAAM,CAAC,CACjC1iC,IAAK,QACLpB,MAAO,WACL,OAAO,IAAI8jC,EAAc,IAAIvB,GAAc,WAIxCuB,EAdwB,GAiBjC,SAASE,GAAsBC,EAAetkB,EAAMsM,GAClD,GAAIzL,GAAYb,GACd,OAAO,IAAImkB,GAAc,IAAIvB,GAActW,IAE3C,IAAIiY,EAAWD,EAAcF,WAAWI,yBAAyBxkB,GAEjE,GAAgB,MAAZukB,EAAkB,CACpB,IAAIE,EAAeF,EAASvkB,KACxB3f,EAAQkkC,EAASlkC,MACjBwiC,EAAe/hB,GAAgB2jB,EAAczkB,GAEjD,OADA3f,EAAQA,EAAMixB,YAAYuR,EAAcvW,GACjC,IAAI6X,GAAcG,EAAcF,WAAWxgC,IAAI6gC,EAAcpkC,IAEpE,IAAI0/B,EAAU,IAAI6C,GAActW,GAE5BoY,EAAgBJ,EAAcF,WAAWb,QAAQvjB,EAAM+f,GAE3D,OAAO,IAAIoE,GAAcO,GAK/B,SAASC,GAAuBL,EAAetkB,EAAM4kB,GACnD,IAAIC,EAAWP,EAIf,OAHAj+B,EAAKu+B,GAAS,SAAU7G,EAAUzR,GAChCuY,EAAWR,GAAsBQ,EAAUrkB,GAAUR,EAAM+d,GAAWzR,MAEjEuY,EAYT,SAASC,GAAyBR,EAAetkB,GAC/C,GAAIa,GAAYb,GACd,OAAOmkB,GAAcY,QAErB,IAAIC,EAAiBV,EAAcF,WAAWb,QAAQvjB,EAAM,IAAI4iB,GAAc,OAE9E,OAAO,IAAIuB,GAAca,GAa7B,SAASC,GAA8BX,EAAetkB,GACpD,OAA4D,MAArDklB,GAA6BZ,EAAetkB,GAYrD,SAASklB,GAA6BZ,EAAetkB,GACnD,IAAIukB,EAAWD,EAAcF,WAAWI,yBAAyBxkB,GAEjE,OAAgB,MAAZukB,EACKD,EAAcF,WAAWtgC,IAAIygC,EAASvkB,MAAMiW,SAASnV,GAAgByjB,EAASvkB,KAAMA,IAEpF,KAWX,SAASmlB,GAAiCb,GACxC,IAAIzL,EAAW,GACXvM,EAAOgY,EAAcF,WAAW/jC,MAiBpC,OAfY,MAARisB,EAEGA,EAAKmE,cACRnE,EAAKmK,aAAa/D,IAAgB,SAAU1B,EAAWC,GACrD4H,EAAS/yB,KAAK,IAAIumB,GAAU2E,EAAWC,OAI3CqT,EAAcF,WAAWvL,SAASxK,kBAAiB,SAAU2C,EAAW8C,GAC/C,MAAnBA,EAAUzzB,OACZw4B,EAAS/yB,KAAK,IAAIumB,GAAU2E,EAAW8C,EAAUzzB,WAKhDw4B,EAGT,SAASuM,GAAgCd,EAAetkB,GACtD,GAAIa,GAAYb,GACd,OAAOskB,EAEP,IAAIe,EAAgBH,GAA6BZ,EAAetkB,GAEhE,OACS,IAAImkB,GADQ,MAAjBkB,EACuB,IAAIzC,GAAcyC,GAElBf,EAAcF,WAAWrE,QAAQ/f,IAUhE,SAASslB,GAAqBhB,GAC5B,OAAOA,EAAcF,WAAWzW,UAUlC,SAAS4X,GAAmBjB,EAAehY,GACzC,OAAOkZ,GAAkB1lB,KAAgBwkB,EAAcF,WAAY9X,GAGrE,SAASkZ,GAAkB3C,EAAc4C,EAAWnZ,GAClD,GAAuB,MAAnBmZ,EAAUplC,MAEZ,OAAOisB,EAAKgF,YAAYuR,EAAc4C,EAAUplC,OAEhD,IAAIqlC,EAAgB,KAgBpB,OAfAD,EAAU5M,SAASxK,kBAAiB,SAAU0P,EAAUjK,GACrC,cAAbiK,IAGF,QAA2B,OAApBjK,EAAUzzB,MAAgB,6CACjCqlC,EAAgB5R,EAAUzzB,OAE1BisB,EAAOkZ,GAAkBhlB,GAAUqiB,EAAc9E,GAAWjK,EAAWxH,MAItEA,EAAK2J,SAAS4M,GAAclV,WAA+B,OAAlB+X,IAC5CpZ,EAAOA,EAAKgF,YAAY9Q,GAAUqiB,EAAc,aAAc6C,IAGzDpZ,EA0BX,SAASqZ,GAAqBF,EAAWzlB,GACvC,OAAO4lB,GAAgB5lB,EAAMylB,GA8C/B,SAASI,GAAkBJ,EAAWK,GACpC,IAAK,IAAI7lC,EAAI,EAAGA,EAAIwlC,EAAUM,UAAU/lC,OAAQC,IAAK,CACnD,IAAI+lC,EAASP,EAAUM,UAAU9lC,GAEjC,GAAI+lC,EAAOF,UAAYA,EACrB,OAAOE,EAIX,OAAO,KAWT,SAASC,GAAqBR,EAAWK,GAKvC,IAAIlP,EAAM6O,EAAUM,UAAUG,WAAU,SAAU/lC,GAChD,OAAOA,EAAE2lC,UAAYA,MAEvB,QAAOlP,GAAO,EAAG,gDACjB,IAAIuP,EAAgBV,EAAUM,UAAUnP,GACxC6O,EAAUM,UAAUjnB,OAAO8X,EAAK,GAKhC,IAJA,IAAIwP,EAAyBD,EAAc7jB,QACvC+jB,GAAsC,EACtCpmC,EAAIwlC,EAAUM,UAAU/lC,OAAS,EAE9BomC,GAA0BnmC,GAAK,GAAG,CACvC,IAAIqmC,EAAeb,EAAUM,UAAU9lC,GAEnCqmC,EAAahkB,UACXriB,GAAK22B,GAAO2P,GAA6BD,EAAcH,EAAcnmB,MAEvEomB,GAAyB,EAChB9kB,GAAa6kB,EAAcnmB,KAAMsmB,EAAatmB,QAEvDqmB,GAAsC,IAI1CpmC,IAGF,GAAKmmC,EAEE,IAAIC,EAGT,OAkCJ,SAA6BZ,GAC3BA,EAAUe,cAAgBC,GAAoBhB,EAAUM,UAAWW,GAAyB5mB,MAExF2lB,EAAUM,UAAU/lC,OAAS,EAC/BylC,EAAUkB,YAAclB,EAAUM,UAAUN,EAAUM,UAAU/lC,OAAS,GAAG8lC,QAE5EL,EAAUkB,aAAe,EAzCzBC,CAAoBnB,IACb,EAGHU,EAAcxM,KAChB8L,EAAUe,cAAgB1B,GAAyBW,EAAUe,cAAeL,EAAcnmB,MAG1F3Z,EADe8/B,EAActN,UACd,SAAU7H,GACvByU,EAAUe,cAAgB1B,GAAyBW,EAAUe,cAAehmB,GAAU2lB,EAAcnmB,KAAMgR,OAI9G,OAAO,EAhBP,OAAO,EAoBX,SAASuV,GAA6BM,EAAa7mB,GACjD,GAAI6mB,EAAYlN,KACd,OAAOrY,GAAaulB,EAAY7mB,KAAMA,GAEtC,IAAK,IAAIgR,KAAa6V,EAAYhO,SAChC,GAAIgO,EAAYhO,SAAStyB,eAAeyqB,IAAc1P,GAAad,GAAUqmB,EAAY7mB,KAAMgR,GAAYhR,GACzG,OAAO,EAIX,OAAO,EAsBX,SAAS0mB,GAAwBrzB,GAC/B,OAAOA,EAAMiP,QAQf,SAASmkB,GAAoBK,EAAQ5F,EAAQ6F,GAG3C,IAFA,IAAIzC,EAAgBH,GAAcY,QAEzB9kC,EAAI,EAAGA,EAAI6mC,EAAO9mC,SAAUC,EAAG,CACtC,IAAIoT,EAAQyzB,EAAO7mC,GAInB,GAAIihC,EAAO7tB,GAAQ,CACjB,IAAI2zB,EAAY3zB,EAAM2M,KAClB6iB,OAAe,EAEnB,GAAIxvB,EAAMsmB,KACJrY,GAAaylB,EAAUC,GAEzB1C,EAAgBD,GAAsBC,EADtCzB,EAAe/hB,GAAgBimB,EAAUC,GAC0B3zB,EAAMsmB,MAChErY,GAAa0lB,EAAWD,KACjClE,EAAe/hB,GAAgBkmB,EAAWD,GAC1CzC,EAAgBD,GAAsBC,EAAexkB,KAAgBzM,EAAMsmB,KAAK1D,SAAS4M,SAEtF,KAAIxvB,EAAMwlB,SAqBf,MAAM,QAAe,8CApBrB,GAAIvX,GAAaylB,EAAUC,GAEzB1C,EAAgBK,GAAuBL,EADvCzB,EAAe/hB,GAAgBimB,EAAUC,GAC2B3zB,EAAMwlB,eACrE,GAAIvX,GAAa0lB,EAAWD,GAGjC,GAAIlmB,GAFJgiB,EAAe/hB,GAAgBkmB,EAAWD,IAGxCzC,EAAgBK,GAAuBL,EAAexkB,KAAgBzM,EAAMwlB,cACvE,CACL,IAAIoO,GAAU,QAAQ5zB,EAAMwlB,SAAU9Y,GAAa8iB,IAEnD,GAAIoE,EAAS,CAEX,IAAIC,EAAWD,EAAQhR,SAAS/V,GAAa2iB,IAE7CyB,EAAgBD,GAAsBC,EAAexkB,KAAgBonB,OAUjF,OAAO5C,EAWT,SAAS6C,GAAgC1B,EAAW2B,EAAUC,EAAqBC,EAAmBC,GACpG,GAAKD,GAAsBC,EAkBpB,CACL,IAAIC,EAAQpC,GAAgCK,EAAUe,cAAeY,GAErE,IAAKG,GAAuBjC,GAAqBkC,GAC/C,OAAOH,EAGP,GAAKE,GAA8C,MAAvBF,GAAgCpC,GAA8BuC,EAAO1nB,MAE1F,CASL,OAAOylB,GAJWkB,GAAoBhB,EAAUM,WAJnC,SAAgB1yB,GAC3B,OAAQA,EAAMiP,SAAWilB,MAA0BD,KAAuBA,EAAkBh8B,QAAQ+H,EAAMyyB,YAAcxkB,GAAajO,EAAM2M,KAAMonB,IAAa9lB,GAAa8lB,EAAU/zB,EAAM2M,SAG1HonB,GAE/CC,GAAuBzR,GAAazH,YARxD,OAAO,KAzBX,IAAIkX,EAAgBH,GAA6BO,EAAUe,cAAeY,GAE1E,GAAqB,MAAjB/B,EACF,OAAOA,EAEP,IAAIoC,EAAWrC,GAAgCK,EAAUe,cAAeY,GAExE,OAAI9B,GAAqBmC,GAChBJ,EACyB,MAAvBA,GAAgCpC,GAA8BwC,EAAU3nB,MAK1EylB,GAAmBkC,EADPJ,GAAuBzR,GAAazH,YAFhD,KA4Mf,SAASuZ,GAAmCC,EAAcN,EAAqBC,EAAmBC,GAChG,OAAOJ,GAAgCQ,EAAalC,UAAWkC,EAAaP,SAAUC,EAAqBC,EAAmBC,GAShI,SAASK,GAAsCD,EAAcE,GAC3D,OApLF,SAA4CpC,EAAW2B,EAAUS,GAC/D,IAAIC,EAAmBlS,GAAazH,WAChC4Z,EAAc7C,GAA6BO,EAAUe,cAAeY,GAExE,GAAIW,EAQF,OAPKA,EAAYtX,cAEfsX,EAAYtR,aAAa/D,IAAgB,SAAU1B,EAAWkT,GAC5D4D,EAAmBA,EAAiB1W,qBAAqBJ,EAAWkT,MAIjE4D,EACF,GAAID,EAAwB,CAGjC,IAAIL,EAAQpC,GAAgCK,EAAUe,cAAeY,GASrE,OARAS,EAAuBpR,aAAa/D,IAAgB,SAAU1B,EAAWC,GACvE,IAAI3E,EAAOiZ,GAAmBH,GAAgCoC,EAAO,IAAIjoB,GAAKyR,IAAaC,GAC3F6W,EAAmBA,EAAiB1W,qBAAqBJ,EAAW1E,MAGtE6Y,GAAiCqC,GAAOrJ,SAAQ,SAAU3K,GACxDsU,EAAmBA,EAAiB1W,qBAAqBoC,EAAU5zB,KAAM4zB,EAAUlH,SAE9Ewb,EASP,OAHA3C,GAFaC,GAAgCK,EAAUe,cAAeY,IAE7BjJ,SAAQ,SAAU3K,GACzDsU,EAAmBA,EAAiB1W,qBAAqBoC,EAAU5zB,KAAM4zB,EAAUlH,SAE9Ewb,EAkJFE,CAAmCL,EAAalC,UAAWkC,EAAaP,SAAUS,GAoB3F,SAASI,GAA+CN,EAAc3nB,EAAMkoB,EAAmBC,GAC7F,OApJF,SAAqD1C,EAAW2B,EAAUnD,EAAWiE,EAAmBC,IACtG,QAAOD,GAAqBC,EAAoB,6DAChD,IAAInoB,EAAOQ,GAAU4mB,EAAUnD,GAE/B,GAAIgB,GAA8BQ,EAAUe,cAAexmB,GAGzD,OAAO,KAGP,IAAIooB,EAAahD,GAAgCK,EAAUe,cAAexmB,GAE1E,OAAIslB,GAAqB8C,GAEhBD,EAAmBlS,SAASgO,GAQ5BsB,GAAmB6C,EAAYD,EAAmBlS,SAASgO,IA8H/DoE,CAA4CV,EAAalC,UAAWkC,EAAaP,SAAUpnB,EAAMkoB,EAAmBC,GAU7H,SAASG,GAA2BX,EAAc3nB,GAChD,OAzGF,SAAiCylB,EAAWzlB,GAC1C,OAAOklB,GAA6BO,EAAUe,cAAexmB,GAwGtDuoB,CAAwBZ,EAAalC,UAAWjlB,GAAUmnB,EAAaP,SAAUpnB,IAQ1F,SAASwoB,GAA6Bb,EAAcc,EAAoBpR,EAAWjJ,EAAO/mB,EAASue,GACjG,OAzGF,SAAmC6f,EAAW2B,EAAUqB,EAAoBpR,EAAWjJ,EAAO/mB,EAASue,GACrG,IAAI8iB,EACAlB,EAAQpC,GAAgCK,EAAUe,cAAeY,GACjE/B,EAAgBH,GAA6BsC,EAAO1nB,MAExD,GAAqB,MAAjBulB,EACFqD,EAAYrD,MACP,IAA0B,MAAtBoD,EAIT,MAAO,GAHPC,EAAYnD,GAAmBiC,EAAOiB,GAQxC,IAFAC,EAAYA,EAAUC,UAAU/iB,IAEjB+H,WAAc+a,EAAUjY,aAgBrC,MAAO,GAVP,IALA,IAAImY,EAAQ,GACRlb,EAAM9H,EAAMuP,aACZL,EAAOztB,EAAUqhC,EAAUnR,uBAAuBF,EAAWzR,GAAS8iB,EAAUvR,gBAAgBE,EAAWzR,GAC3G/kB,EAAOi0B,EAAKG,UAETp0B,GAAQ+nC,EAAM5oC,OAASouB,GACC,IAAzBV,EAAI7sB,EAAMw2B,IACZuR,EAAM9iC,KAAKjF,GAGbA,EAAOi0B,EAAKG,UAGd,OAAO2T,EA2EFC,CAA0BlB,EAAalC,UAAWkC,EAAaP,SAAUqB,EAAoBpR,EAAWjJ,EAAO/mB,EAASue,GAQjI,SAASkjB,GAA8BnB,EAAc5J,EAAUgL,GAC7D,OAjJF,SAAoCtD,EAAW2B,EAAUrJ,EAAUoK,GACjE,IAAInoB,EAAOQ,GAAU4mB,EAAUrJ,GAC3BsH,EAAgBH,GAA6BO,EAAUe,cAAexmB,GAE1E,OAAqB,MAAjBqlB,EACKA,EAEH8C,EAAmB1H,mBAAmB1C,GAEjCwH,GADUH,GAAgCK,EAAUe,cAAexmB,GACpCmoB,EAAmB1F,UAAUzM,kBAAkB+H,IAE9E,KAsIJiL,CAA2BrB,EAAalC,UAAWkC,EAAaP,SAAUrJ,EAAUgL,GAO7F,SAASE,GAAkBtB,EAAc3W,GACvC,OAAO4U,GAAgBplB,GAAUmnB,EAAaP,SAAUpW,GAAY2W,EAAalC,WAGnF,SAASG,GAAgB5lB,EAAMylB,GAC7B,MAAO,CACL2B,SAAUpnB,EACVylB,UAAWA,GAqBf,IAAIyD,GAAsC,WACxC,SAASA,KACP,OAAgBxqC,KAAMwqC,GAEtBxqC,KAAKyqC,UAAY,IAAI7lB,IAiEvB,OA9DA,OAAa4lB,EAAwB,CAAC,CACpCznC,IAAK,mBACLpB,MAAO,SAA0B8gC,GAC/B,IAAIp1B,EAAOo1B,EAAOp1B,KACdgyB,EAAWoD,EAAOnQ,WACtB,QAAgB,gBAATjlB,GAEK,kBAATA,GAES,kBAATA,EAED,8CACF,QAAoB,cAAbgyB,EAA0B,mDACjC,IAAIqL,EAAY1qC,KAAKyqC,UAAUrlC,IAAIi6B,GAEnC,GAAIqL,EAAW,CACb,IAAIC,EAAUD,EAAUr9B,KAExB,GAAa,gBAATA,GAEW,kBAAZs9B,EAGD3qC,KAAKyqC,UAAUvlC,IAAIm6B,EAAUjD,GAAmBiD,EAAUoD,EAAOxG,aAAcyO,EAAUzO,oBACpF,GAAa,kBAAT5uB,GAEI,gBAAZs9B,EAGD3qC,KAAKyqC,UAAUv0B,OAAOmpB,QACjB,GAAa,kBAAThyB,GAEI,kBAAZs9B,EAGD3qC,KAAKyqC,UAAUvlC,IAAIm6B,EAAUlD,GAAmBkD,EAAUqL,EAAUrO,eAC/D,GAAa,kBAAThvB,GAEI,gBAAZs9B,EAGD3qC,KAAKyqC,UAAUvlC,IAAIm6B,EAAUnD,GAAiBmD,EAAUoD,EAAOxG,mBAC1D,IAAa,kBAAT5uB,GAEI,kBAAZs9B,EAKD,MAAM,QAAe,mCAAqClI,EAAS,mBAAqBiI,GAFxF1qC,KAAKyqC,UAAUvlC,IAAIm6B,EAAUjD,GAAmBiD,EAAUoD,EAAOxG,aAAcyO,EAAUrO,gBAK3Fr8B,KAAKyqC,UAAUvlC,IAAIm6B,EAAUoD,KAGhC,CACD1/B,IAAK,aACLpB,MAAO,WACL,OAAOjB,MAAMS,KAAKnB,KAAKyqC,UAAU1d,cAI9Byd,EArEiC,GAsHtCI,GAA2B,IAxBW,WACxC,SAASC,KACP,OAAgB7qC,KAAM6qC,GAexB,OAZA,OAAaA,EAAwB,CAAC,CACpC9nC,IAAK,mBACLpB,MAAO,SAA0B09B,GAC/B,OAAO,OAER,CACDt8B,IAAK,qBACLpB,MAAO,SAA4BulB,EAAOoT,EAAO3xB,GAC/C,OAAO,SAIJkiC,EAjBiC,IA8BtCC,GAA4C,WAC9C,SAASA,EAA6BC,EAASC,GAC7C,IAAIC,EAA0B/qC,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,MAElG,OAAgBF,KAAM8qC,GAEtB9qC,KAAK+qC,QAAUA,EACf/qC,KAAKgrC,WAAaA,EAClBhrC,KAAKirC,wBAA0BA,EA6BjC,OA1BA,OAAaH,EAA8B,CAAC,CAC1C/nC,IAAK,mBACLpB,MAAO,SAA0B09B,GAC/B,IAAIzR,EAAO5tB,KAAKgrC,WAAW1I,WAE3B,GAAI1U,EAAKmU,mBAAmB1C,GAC1B,OAAOzR,EAAKmW,UAAUzM,kBAAkB+H,GAExC,IAAI6L,EAA6C,MAAhClrC,KAAKirC,wBAAkC,IAAIvJ,GAAU1hC,KAAKirC,yBAAyB,GAAM,GAASjrC,KAAKgrC,WAAW1H,YACnI,OAAO8G,GAA8BpqC,KAAK+qC,QAAS1L,EAAU6L,KAGhE,CACDnoC,IAAK,qBACLpB,MAAO,SAA4BulB,EAAOoT,EAAO3xB,GAC/C,IAAIohC,EAAqD,MAAhC/pC,KAAKirC,wBAAkCjrC,KAAKirC,wBAA0BjH,GAA+BhkC,KAAKgrC,YAC/Hd,EAAQJ,GAA6B9pC,KAAK+qC,QAAShB,EAAoBzP,EAAO,EAAG3xB,EAASue,GAE9F,OAAqB,IAAjBgjB,EAAM5oC,OACD,KAEA4oC,EAAM,OAKZY,EArCuC,GAoEhD,SAASK,GAA4BC,EAAeC,EAAcC,EAAWC,EAAaC,GACxF,IACInI,EAAcoI,EADdC,EAAc,IAAIlB,GAGtB,GAAIc,EAAUj+B,OAASuyB,GAAc2B,UAAW,CAC9C,IAAIoK,EAAYL,EAEZK,EAAUvK,OAAOR,SACnByC,EAAeuI,GAAgCR,EAAeC,EAAcM,EAAUrqB,KAAMqqB,EAAU1Q,KAAMsQ,EAAaC,EAAeE,KAExI,QAAOC,EAAUvK,OAAOP,WAAY,mBAIpC4K,EAAmBE,EAAUvK,OAAON,QAAUuK,EAAa/H,YAAYuI,eAAiB1pB,GAAYwpB,EAAUrqB,MAC9G+hB,EAAeyI,GAAkCV,EAAeC,EAAcM,EAAUrqB,KAAMqqB,EAAU1Q,KAAMsQ,EAAaC,EAAeC,EAAkBC,SAEzJ,GAAIJ,EAAUj+B,OAASuyB,GAAc6B,MAAO,CACjD,IAAIqH,EAAQwC,EAERxC,EAAM1H,OAAOR,SACfyC,EA6MN,SAAqC+H,EAAe5H,EAAWliB,EAAMyqB,EAAiBR,EAAajI,EAAaoI,GAO9G,IAAIM,EAAexI,EAenB,OAdAuI,EAAgBE,SAAQ,SAAU9H,EAAc5R,GAC9C,IAAI+V,EAAYxmB,GAAUR,EAAM6iB,GAE5B+H,GAA2B1I,EAAWniB,GAAainB,MACrD0D,EAAeJ,GAAgCR,EAAeY,EAAc1D,EAAW/V,EAAWgZ,EAAajI,EAAaoI,OAGhIK,EAAgBE,SAAQ,SAAU9H,EAAc5R,GAC9C,IAAI+V,EAAYxmB,GAAUR,EAAM6iB,GAE3B+H,GAA2B1I,EAAWniB,GAAainB,MACtD0D,EAAeJ,GAAgCR,EAAeY,EAAc1D,EAAW/V,EAAWgZ,EAAajI,EAAaoI,OAGzHM,EAnOYG,CAA4Bf,EAAeC,EAAcvC,EAAMxnB,KAAMwnB,EAAM3O,SAAUoR,EAAaC,EAAeE,KAEhI,QAAO5C,EAAM1H,OAAOP,WAAY,mBAEhC4K,EAAmB3C,EAAM1H,OAAON,QAAUuK,EAAa/H,YAAYuI,aACnExI,EAAe+I,GAA8BhB,EAAeC,EAAcvC,EAAMxnB,KAAMwnB,EAAM3O,SAAUoR,EAAaC,EAAeC,EAAkBC,SAEjJ,GAAIJ,EAAUj+B,OAASuyB,GAAcuB,eAAgB,CAC1D,IAAIkL,EAAef,EAKjBjI,EAHGgJ,EAAanL,OA4TtB,SAAsCkK,EAAe5H,EAAWliB,EAAMiqB,EAAa5C,EAAqB+C,GACtG,IAAIhI,EAEJ,GAAqD,MAAjDkG,GAA2B2B,EAAajqB,GAC1C,OAAOkiB,EAEP,IAEI8I,EAFAlL,EAAS,IAAI0J,GAA6BS,EAAa/H,EAAWmF,GAClE4D,EAAgB/I,EAAUlB,WAAWyB,UAGzC,GAAI5hB,GAAYb,IAAgC,cAAvBD,GAAaC,GAAuB,CAC3D,IAAI0M,EAEJ,GAAIwV,EAAUF,YAAYxB,qBACxB9T,EAAUgb,GAAmCuC,EAAavH,GAA+BR,QACpF,CACL,IAAIgJ,EAAiBhJ,EAAUF,YAAYS,WAC3C,QAAOyI,aAA0BtV,GAAc,iDAC/ClJ,EAAUkb,GAAsCqC,EAAaiB,GAG/Dxe,EAAUA,EACVse,EAAgBlB,EAAc5I,OAAOiK,eAAeF,EAAeve,EAAS0d,OACvE,CACL,IAAIrM,EAAWhe,GAAaC,GACxBmjB,EAAW2F,GAA8BmB,EAAalM,EAAUmE,EAAUF,aAE9D,MAAZmB,GAAoBjB,EAAUF,YAAYvB,mBAAmB1C,KAC/DoF,EAAW8H,EAAcjV,kBAAkB+H,KAI3CiN,EADc,MAAZ7H,EACc2G,EAAc5I,OAAO5P,YAAY2Z,EAAelN,EAAUoF,EAAUjjB,GAAaF,GAAO8f,EAAQsK,GACvGlI,EAAUlB,WAAWyB,UAAU/B,SAAS3C,GAEjC+L,EAAc5I,OAAO5P,YAAY2Z,EAAelN,EAAUnI,GAAazH,WAAYjO,GAAaF,GAAO8f,EAAQsK,GAE/Ga,GAGAtd,WAAauU,EAAUF,YAAYxB,uBAEnD4B,EAAWsF,GAAmCuC,EAAavH,GAA+BR,KAE7EzR,eACXua,EAAgBlB,EAAc5I,OAAOiK,eAAeH,EAAe5I,EAAUgI,IAMnF,OADAhI,EAAWF,EAAUF,YAAYxB,sBAAmF,MAA3D8H,GAA2B2B,EAAanqB,MAC1FmiB,GAAyBC,EAAW8I,EAAe5I,EAAU0H,EAAc5I,OAAOkK,gBA5WxEC,CAA6BvB,EAAeC,EAAcgB,EAAa/qB,KAAMiqB,EAAaC,EAAeE,GA0Q9H,SAAmCN,EAAe5H,EAAWoJ,EAAS3L,EAAcsK,EAAaC,EAAeE,GAC9G,GAAwD,MAApD9B,GAA2B2B,EAAaqB,GAC1C,OAAOpJ,EAIT,IAAIiI,EAAmBjI,EAAUF,YAAYuI,aAGzCvI,EAAcE,EAAUF,YAE5B,GAA0B,MAAtBrC,EAAat/B,MAAe,CAE9B,GAAIwgB,GAAYyqB,IAAYtJ,EAAYxB,sBAAwBwB,EAAYuJ,kBAAkBD,GAC5F,OAAOd,GAAkCV,EAAe5H,EAAWoJ,EAAStJ,EAAYS,UAAUxM,SAASqV,GAAUrB,EAAaC,EAAeC,EAAkBC,GAC9J,GAAIvpB,GAAYyqB,GAAU,CAG/B,IAAIb,EAAkB,IAAI7H,GAAc,MAIxC,OAHAZ,EAAYS,UAAUhM,aAAatJ,IAAW,SAAUvtB,EAAM0sB,GAC5Dme,EAAkBA,EAAgB7mC,IAAI,IAAI2b,GAAK3f,GAAO0sB,MAEjDwe,GAA8BhB,EAAe5H,EAAWoJ,EAASb,EAAiBR,EAAaC,EAAeC,EAAkBC,GAEvI,OAAOlI,EAIT,IAAIsJ,EAAmB,IAAI5I,GAAc,MASzC,OAPAjD,EAAagL,SAAQ,SAAUc,EAAWprC,GACxC,IAAIqrC,EAAkBlrB,GAAU8qB,EAASG,GAErCzJ,EAAYuJ,kBAAkBG,KAChCF,EAAmBA,EAAiB5nC,IAAI6nC,EAAWzJ,EAAYS,UAAUxM,SAASyV,QAG/EZ,GAA8BhB,EAAe5H,EAAWoJ,EAASE,EAAkBvB,EAAaC,EAAeC,EAAkBC,GAjTvHuB,CAA0B7B,EAAeC,EAAcgB,EAAa/qB,KAAM+qB,EAAapL,aAAcsK,EAAaC,EAAeE,OAI7I,IAAIJ,EAAUj+B,OAASuyB,GAAcsN,gBAG1C,MAAM,QAAe,2BAA6B5B,EAAUj+B,MAF5Dg2B,EAgTJ,SAAqC+H,EAAe5H,EAAWliB,EAAMiqB,EAAaG,GAChF,IAAIyB,EAAgB3J,EAAUF,YAC1BD,EAAeO,GAA0BJ,EAAW2J,EAAcpJ,UAAWoJ,EAAcrL,sBAAwB3f,GAAYb,GAAO6rB,EAActB,cACxJ,OAAOuB,GAAgDhC,EAAe/H,EAAc/hB,EAAMiqB,EAAaX,GAA0Bc,GAnThH2B,CAA4BjC,EAAeC,EAAcC,EAAUhqB,KAAMiqB,EAAaG,GAKvG,IAAItJ,EAAUsJ,EAAY4B,aAE1B,OAMF,SAAyCjC,EAAchI,EAAcqI,GACnE,IAAIjI,EAAYJ,EAAaf,WAE7B,GAAImB,EAAU3B,qBAAsB,CAClC,IAAIyL,EAAgB9J,EAAUM,UAAUhS,cAAgB0R,EAAUM,UAAU9U,UACxEue,EAAkB1J,GAA8BuH,IAEhDK,EAAYpqC,OAAS,IAAM+pC,EAAa/I,WAAWR,sBAAwByL,IAAkB9J,EAAUM,UAAUxQ,OAAOia,KAAqB/J,EAAUM,UAAU/R,cAAcuB,OAAOia,EAAgBxb,iBACxM0Z,EAAYtkC,KAAK40B,GAAY8H,GAA8BT,MAf/DoK,CAAgCpC,EAAchI,EAAcjB,GACrD,CACLoB,UAAWH,EACXjB,QAASA,GAiBb,SAASgL,GAAgDhC,EAAe5H,EAAWkK,EAAYnC,EAAanK,EAAQsK,GAClH,IAMMY,EAAepB,EANjByC,EAAenK,EAAUlB,WAE7B,GAA2D,MAAvDsH,GAA2B2B,EAAamC,GAE1C,OAAOlK,EAIP,GAAIrhB,GAAYurB,GAId,IAFA,QAAOlK,EAAUF,YAAYxB,qBAAsB,8DAE/C0B,EAAUF,YAAYuI,aAAc,CAItC,IAAIvI,EAAcU,GAA+BR,GAE7CoK,EAAwB1E,GAAsCqC,EAD3CjI,aAAuBpM,GAAeoM,EAAcpM,GAAazH,YAExF6c,EAAgBlB,EAAc5I,OAAOiK,eAAejJ,EAAUlB,WAAWyB,UAAW6J,EAAuBlC,OACtG,CACL,IAAImC,EAAe7E,GAAmCuC,EAAavH,GAA+BR,IAClG8I,EAAgBlB,EAAc5I,OAAOiK,eAAejJ,EAAUlB,WAAWyB,UAAW8J,EAAcnC,OAE/F,CACL,IAAIrM,EAAWhe,GAAaqsB,GAE5B,GAAiB,cAAbrO,EAA0B,EAC5B,QAAqC,IAA9B9d,GAAcmsB,GAAmB,yDACxC,IAAII,EAAeH,EAAa5J,UAG5BgK,EAAkBxE,GAA+CgC,EAAamC,EAAYI,EAF9F5C,EAAa1H,EAAUF,YAAYS,WAKjCuI,EADqB,MAAnByB,EACc3C,EAAc5I,OAAO/P,eAAeqb,EAAcC,GAGlDJ,EAAa5J,cAE1B,CACL,IAEIiK,EAFAC,EAAkBzsB,GAAaksB,GAInC,GAAIC,EAAa5L,mBAAmB1C,GAAW,CAC7C6L,EAAa1H,EAAUF,YAAYS,UACnC,IAAImK,EAAmB3E,GAA+CgC,EAAamC,EAAYC,EAAa5J,UAAWmH,GAGrH8C,EADsB,MAApBE,EACcP,EAAa5J,UAAUzM,kBAAkB+H,GAAUzM,YAAYqb,EAAiBC,GAGhFP,EAAa5J,UAAUzM,kBAAkB+H,QAG3D2O,EAAgB5D,GAA8BmB,EAAalM,EAAUmE,EAAUF,aAI/EgJ,EADmB,MAAjB0B,EACc5C,EAAc5I,OAAO5P,YAAY+a,EAAa5J,UAAW1E,EAAU2O,EAAeC,EAAiB7M,EAAQsK,GAG3GiC,EAAa5J,WAKnC,OAAOR,GAAyBC,EAAW8I,EAAeqB,EAAa7L,sBAAwB3f,GAAYurB,GAAatC,EAAc5I,OAAOkK,gBAIjJ,SAASZ,GAAkCV,EAAeC,EAAcqC,EAAYS,EAAa5C,EAAaC,EAAeC,EAAkBC,GAC7I,IACI0C,EADAC,EAAgBhD,EAAa/H,YAE7BgL,EAAe7C,EAAmBL,EAAc5I,OAAS4I,EAAc5I,OAAO+L,mBAElF,GAAIpsB,GAAYurB,GACdU,EAAiBE,EAAa7B,eAAe4B,EAActK,UAAWoK,EAAa,WAC9E,GAAIG,EAAa5B,iBAAmB2B,EAAcxC,aAAc,CAErE,IAAI2C,EAAgBH,EAActK,UAAUnR,YAAY8a,EAAYS,GACpEC,EAAiBE,EAAa7B,eAAe4B,EAActK,UAAWyK,EAAe,UAChF,CACL,IAAInP,EAAWhe,GAAaqsB,GAE5B,IAAKW,EAAcxB,kBAAkBa,IAAensB,GAAcmsB,GAAc,EAE9E,OAAOrC,EAGT,IAAI4C,EAAkBzsB,GAAaksB,GAE/Blb,EADY6b,EAActK,UAAUzM,kBAAkB+H,GAC7BzM,YAAYqb,EAAiBE,GAGxDC,EADe,cAAb/O,EACeiP,EAAa7b,eAAe4b,EAActK,UAAWvR,GAErD8b,EAAa1b,YAAYyb,EAActK,UAAW1E,EAAU7M,EAAcyb,EAAiBrD,GAA0B,MAI1I,IAAIvH,EAAeO,GAA0ByH,EAAc+C,EAAgBC,EAAcvM,sBAAwB3f,GAAYurB,GAAaY,EAAa5B,gBAEvJ,OAAOU,GAAgDhC,EAAe/H,EAAcqK,EAAYnC,EADnF,IAAIT,GAA6BS,EAAalI,EAAcmI,GAC4CE,GAGvH,SAASE,GAAgCR,EAAeC,EAAcqC,EAAYS,EAAa5C,EAAaC,EAAeE,GACzH,IACIrI,EAAciJ,EADdqB,EAAetC,EAAa/I,WAE5BlB,EAAS,IAAI0J,GAA6BS,EAAaF,EAAcG,GAEzE,GAAIrpB,GAAYurB,GACdpB,EAAgBlB,EAAc5I,OAAOiK,eAAepB,EAAa/I,WAAWyB,UAAWoK,EAAazC,GACpGrI,EAAeE,GAAyB8H,EAAciB,GAAe,EAAMlB,EAAc5I,OAAOkK,oBAC3F,CACL,IAAIrN,EAAWhe,GAAaqsB,GAE5B,GAAiB,cAAbrO,EACFiN,EAAgBlB,EAAc5I,OAAO/P,eAAe4Y,EAAa/I,WAAWyB,UAAWoK,GACvF9K,EAAeE,GAAyB8H,EAAciB,EAAeqB,EAAa7L,qBAAsB6L,EAAa9B,kBAChH,CACL,IAEIpH,EAFAwJ,EAAkBzsB,GAAaksB,GAC/Be,EAAWd,EAAa5J,UAAUzM,kBAAkB+H,GAGxD,GAAIld,GAAY8rB,GAEdxJ,EAAW0J,MACN,CACL,IAAI5b,EAAY6O,EAAOsN,iBAAiBrP,GAMpCoF,EAJa,MAAblS,EACmC,cAAjC9Q,GAAYwsB,IAAoC1b,EAAUgF,SAAS3V,GAAWqsB,IAAkBhf,UAGvFsD,EAEAA,EAAUK,YAAYqb,EAAiBE,GAIzCjX,GAAazH,WAI5B,GAAKgf,EAASlb,OAAOkR,GAInBpB,EAAegI,OAFfhI,EAAeE,GAAyB8H,EADrBD,EAAc5I,OAAO5P,YAAY+a,EAAa5J,UAAW1E,EAAUoF,EAAUwJ,EAAiB7M,EAAQsK,GACrDiC,EAAa7L,qBAAsBsJ,EAAc5I,OAAOkK,iBAOlI,OAAOrJ,EAGT,SAAS6I,GAA2B1I,EAAWnE,GAC7C,OAAOmE,EAAUlB,WAAWP,mBAAmB1C,GA4BjD,SAASsP,GAAwBvD,EAAexd,EAAMkb,GAIpD,OAHAA,EAAMmD,SAAQ,SAAU9H,EAAc5R,GACpC3E,EAAOA,EAAKgF,YAAYuR,EAAc5R,MAEjC3E,EAGT,SAASwe,GAA8BhB,EAAe5H,EAAWliB,EAAMyqB,EAAiBR,EAAajI,EAAamI,EAAkBC,GAGlI,GAAIlI,EAAUF,YAAYS,UAAU9U,YAAcuU,EAAUF,YAAYxB,qBACtE,OAAO0B,EAST,IACIoL,EADA5C,EAAexI,EAIjBoL,EADEzsB,GAAYb,GACEyqB,EAEA,IAAI7H,GAAc,MAAMW,QAAQvjB,EAAMyqB,GAGxD,IAAIb,EAAa1H,EAAUF,YAAYS,UAiBvC,OAhBA6K,EAAczU,SAASxK,kBAAiB,SAAU0P,EAAUjK,GAC1D,GAAI8V,EAAWlJ,SAAS3C,GAAW,CACjC,IACIoF,EAAWkK,GAAwBvD,EADrB5H,EAAUF,YAAYS,UAAUzM,kBAAkB+H,GACDjK,GACnE4W,EAAeF,GAAkCV,EAAeY,EAAc,IAAInrB,GAAKwe,GAAWoF,EAAU8G,EAAajI,EAAamI,EAAkBC,OAG5JkD,EAAczU,SAASxK,kBAAiB,SAAU0P,EAAUwP,GAC1D,IAAIC,GAAsBtL,EAAUF,YAAYvB,mBAAmB1C,SAAsC56B,IAAzBoqC,EAAeltC,MAE/F,IAAKupC,EAAWlJ,SAAS3C,KAAcyP,EAAoB,CACzD,IACIrK,EAAWkK,GAAwBvD,EADrB5H,EAAUF,YAAYS,UAAUzM,kBAAkB+H,GACDwP,GACnE7C,EAAeF,GAAkCV,EAAeY,EAAc,IAAInrB,GAAKwe,GAAWoF,EAAU8G,EAAajI,EAAamI,EAAkBC,OAGrJM,EAoIT,IAmKI+C,GA5HJ,SAASC,GAA2BC,EAAM3tB,GACxC,IAAI4tB,EAAQlL,GAA+BiL,EAAKjE,YAEhD,OAAIkE,IAGED,EAAK/hC,MAAMwa,aAAaE,iBAAmBzF,GAAYb,KAAU4tB,EAAM5X,kBAAkBjW,GAAaC,IAAO2N,WACxGigB,EAAM3X,SAASjW,GAInB,KA2DT,SAAS6tB,GAAmBF,EAAM3D,EAAWC,EAAa5C,GACpD2C,EAAUj+B,OAASuyB,GAAc6B,OAAsC,OAA7B6J,EAAUlK,OAAO7Z,WAC7D,QAAOyc,GAA+BiL,EAAKjE,YAAa,8DACxD,QAAOlH,GAA8BmL,EAAKjE,YAAa,4DAGzD,IAriBkCI,EAAe5H,EAqiB7C6H,EAAe4D,EAAKjE,WACpBnrC,EAASsrC,GAA4B8D,EAAKG,WAAY/D,EAAcC,EAAWC,EAAa5C,GAIhG,OA1iBkCyC,EAuiBP6D,EAAKG,WAviBiB5L,EAuiBL3jC,EAAO2jC,WAtiBnD,QAAOA,EAAUlB,WAAWyB,UAAUsL,UAAUjE,EAAc5I,OAAOhV,YAAa,2BAClF,QAAOgW,EAAUF,YAAYS,UAAUsL,UAAUjE,EAAc5I,OAAOhV,YAAa,4BAsiBnF,QAAO3tB,EAAO2jC,UAAUF,YAAYxB,uBAAyBuJ,EAAa/H,YAAYxB,qBAAsB,2DAC5GmN,EAAKjE,WAAanrC,EAAO2jC,UAClB8L,GAA8BL,EAAMpvC,EAAOuiC,QAASviC,EAAO2jC,UAAUlB,WAAWyB,UAAW,MAqBpG,SAASuL,GAA8BL,EAAM7M,EAASE,EAAYiN,GAChE,IAAIlN,EAAgBkN,EAAoB,CAACA,GAAqBN,EAAKO,oBACnE,OA59DF,SAAgDtN,EAAgBE,EAASE,EAAYmN,GACnF,IAAItN,EAAS,GACTuN,EAAQ,GAuBZ,OAtBAtN,EAAQ3C,SAAQ,SAAUgD,GA10D5B,IAA0BnQ,EA20DF,kBAAhBmQ,EAAOp1B,MAER60B,EAAe9E,OAAOuS,oBAAoBlN,EAAOpG,QAASoG,EAAOxG,eAClEyT,EAAMtoC,MA90DckrB,EA80DQmQ,EAAOnQ,UA70DhC,CACLjlB,KAAM,cAGN4uB,aAy0DgDwG,EAAOxG,aAx0DvD3J,UAAWA,QA20Db2P,GAAoCC,EAAgBC,EAAQ,gBAE1DC,EAASqN,EAAoBnN,GAC/BL,GAAoCC,EAAgBC,EAAQ,cAE1DC,EAASqN,EAAoBnN,GAC/BL,GAAoCC,EAAgBC,EAAQ,cAE1DuN,EAAOD,EAAoBnN,GAC7BL,GAAoCC,EAAgBC,EAAQ,gBAE1DC,EAASqN,EAAoBnN,GAC/BL,GAAoCC,EAAgBC,EAAQ,QAE1DC,EAASqN,EAAoBnN,GACxBH,EAm8DAyN,CAAuCX,EAAKY,gBAAiBzN,EAASE,EAAYD,GAgC3F,IAiSIyN,GAvQJ,SAASC,GAAwBC,EAAW1E,EAAWC,EAAa0E,GAClE,IAAI1oB,EAAU+jB,EAAUlK,OAAO7Z,QAE/B,GAAgB,OAAZA,EAAkB,CACpB,IAAI0nB,EAAOe,EAAUE,MAAM9qC,IAAImiB,GAE/B,OADA,QAAe,MAAR0nB,EAAc,gDACdE,GAAmBF,EAAM3D,EAAWC,EAAa0E,GAExD,IAGIE,EAHAhO,EAAS,GAETiO,EAAahwC,EAA2B4vC,EAAUE,MAAMnjB,UAG5D,IACE,IAAKqjB,EAAW3uC,MAAO0uC,EAASC,EAAWtvC,KAAKY,MAAO,CACrD,IAAI2uC,EAAQF,EAAOxuC,MACnBwgC,EAASA,EAAOv8B,OAAOupC,GAAmBkB,EAAO/E,EAAWC,EAAa0E,KAE3E,MAAOluC,GACPquC,EAAWzwC,EAAEoC,GACb,QACAquC,EAAWvuC,IAGb,OAAOsgC,EAkKX,SAASmO,GAAgCN,EAAW1uB,GAClD,IAGIivB,EAHAjN,EAAc,KAEdkN,EAAapwC,EAA2B4vC,EAAUE,MAAMnjB,UAG5D,IACE,IAAKyjB,EAAW/uC,MAAO8uC,EAASC,EAAW1vC,KAAKY,MAAO,CACrD,IAAIutC,EAAOsB,EAAO5uC,MAClB2hC,EAAcA,GAAe0L,GAA2BC,EAAM3tB,IAEhE,MAAOvf,GACPyuC,EAAW7wC,EAAEoC,GACb,QACAyuC,EAAW3uC,IAGb,OAAOyhC,EA4ET,IAuBImN,IAAwB,QAK5B,SAASA,EAASC,IAChB,OAAgB1wC,KAAMywC,GAEtBzwC,KAAK0wC,gBAAkBA,EAKvB1wC,KAAK2wC,eAAiB,IAAIzM,GAAc,MAKxClkC,KAAK4wC,kBAtuCE,CACL9I,cAAerC,GAAcY,QAC7BgB,UAAW,GACXY,aAAc,GAouChBjoC,KAAK6wC,cAAgB,IAAIjsB,IACzB5kB,KAAK8wC,cAAgB,IAAIlsB,OAS3B,SAASmsB,GAA2BC,EAAU1vB,EAAM2vB,EAAS7J,EAASxjB,GAIpE,OA7oDF,SAA+BmjB,EAAWzlB,EAAM2Z,EAAMmM,EAASxjB,IAC7D,QAAOwjB,EAAUL,EAAUkB,YAAa,qDAExBxjC,IAAZmf,IACFA,GAAU,GAGZmjB,EAAUM,UAAUjgC,KAAK,CACvBka,KAAMA,EACN2Z,KAAMA,EACNmM,QAASA,EACTxjB,QAASA,IAGPA,IACFmjB,EAAUe,cAAgBnC,GAAsBoB,EAAUe,cAAexmB,EAAM2Z,IAGjF8L,EAAUkB,YAAcb,EAynDxB8J,CAAsBF,EAASJ,kBAAmBtvB,EAAM2vB,EAAS7J,EAASxjB,GAErEA,EAGIutB,GAAoCH,EAAU,IAAI1P,GA3sFpD,CACLV,UAAU,EACVC,YAAY,EACZtZ,QAAS,KACTuZ,QAAQ,GAusFqFxf,EAAM2vB,IAF5F,GA0BX,SAASG,GAAqBJ,EAAU5J,GACtC,IAAIlG,EAAShhC,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,IAAmBA,UAAU,GACxEyU,EAAQwyB,GAAkB6J,EAASJ,kBAAmBxJ,GACtDiK,EAAmB9J,GAAqByJ,EAASJ,kBAAmBxJ,GAExE,GAAKiK,EAEE,CACL,IAAIpQ,EAAe,IAAIiD,GAAc,MAWrC,OATkB,MAAdvvB,EAAMsmB,KAERgG,EAAeA,EAAa/7B,IAAIkc,MAAgB,GAEhDzZ,EAAKgN,EAAMwlB,UAAU,SAAU/a,GAC7B6hB,EAAeA,EAAa/7B,IAAI,IAAI2b,GAAKzB,IAAa,MAInD+xB,GAAoCH,EAAU,IAAIhQ,GAAarsB,EAAM2M,KAAM2f,EAAcC,IAbhG,MAAO,GAuBX,SAASoQ,GAA6BN,EAAU1vB,EAAM2vB,GACpD,OAAOE,GAAoCH,EAAU,IAAI1P,GAxvFlD,CACLV,UAAU,EACVC,YAAY,EACZtZ,QAAS,KACTuZ,QAAQ,GAovFqFxf,EAAM2vB,IA4PvG,SAASM,GAA+BP,EAAU1vB,EAAMsnB,GACtD,IACI7B,EAAYiK,EAASJ,kBACrBtN,EAAc0N,EAASL,eAAea,WAAWlwB,GAAM,SAAUyjB,EAAWiL,GAC9E,IACI1M,EAAcgN,GAAgCN,EAD/B5tB,GAAgB2iB,EAAWzjB,IAG9C,GAAIgiB,EACF,OAAOA,KAGX,OAAOmF,GAAgC1B,EAAWzlB,EAAMgiB,EAAasF,GAV7C,GAoD1B,SAASuI,GAAoCH,EAAU1F,GACrD,OAAOmG,GAA8BnG,EAAW0F,EAASL,eAEzD,KAAM1J,GAAqB+J,EAASJ,kBAAmBxvB,OAOzD,SAASqwB,GAA8BnG,EAAWoG,EAAepO,EAAaiI,GAC5E,GAAIppB,GAAYmpB,EAAUhqB,MACxB,OAAOqwB,GAAyCrG,EAAWoG,EAAepO,EAAaiI,GAEvF,IAAIyE,EAAY0B,EAActsC,IAAIgc,MAEf,MAAfkiB,GAAoC,MAAb0M,IACzB1M,EAAcgN,GAAgCN,EAAW5uB,OAG3D,IAAI+gB,EAAS,GACT7P,EAAYjR,GAAaiqB,EAAUhqB,MACnCswB,EAAiBtG,EAAUuG,kBAAkBvf,GAC7C8C,EAAYsc,EAAcvX,SAAS/0B,IAAIktB,GAE3C,GAAI8C,GAAawc,EAAgB,CAC/B,IAAIE,EAAmBxO,EAAcA,EAAYhM,kBAAkBhF,GAAa,KAC5Eyf,EAAmBxH,GAAkBgB,EAAajZ,GACtD6P,EAASA,EAAOv8B,OAAO6rC,GAA8BG,EAAgBxc,EAAW0c,EAAkBC,IAOpG,OAJI/B,IACF7N,EAASA,EAAOv8B,OAAOmqC,GAAwBC,EAAW1E,EAAWC,EAAajI,KAG7EnB,EAQX,SAASwP,GAAyCrG,EAAWoG,EAAepO,EAAaiI,GACvF,IAAIyE,EAAY0B,EAActsC,IAAIgc,MAEf,MAAfkiB,GAAoC,MAAb0M,IACzB1M,EAAcgN,GAAgCN,EAAW5uB,OAG3D,IAAI+gB,EAAS,GAeb,OAdAuP,EAAcvX,SAASxK,kBAAiB,SAAU2C,EAAW8C,GAC3D,IAAI0c,EAAmBxO,EAAcA,EAAYhM,kBAAkBhF,GAAa,KAC5Eyf,EAAmBxH,GAAkBgB,EAAajZ,GAClDsf,EAAiBtG,EAAUuG,kBAAkBvf,GAE7Csf,IACFzP,EAASA,EAAOv8B,OAAO+rC,GAAyCC,EAAgBxc,EAAW0c,EAAkBC,QAI7G/B,IACF7N,EAASA,EAAOv8B,OAAOmqC,GAAwBC,EAAW1E,EAAWC,EAAajI,KAG7EnB,EAoDT,SAAS6P,GAAwBhB,EAAU1pB,GACzC,OAAO0pB,EAASH,cAAczrC,IAAIkiB,GAOpC,SAAS2qB,GAAuBC,GAC9B,IAAIC,EAAaD,EAAStlC,QAAQ,KAElC,OADA,SAAuB,IAAhBulC,GAAqBA,EAAaD,EAAS5wC,OAAS,EAAG,iBACvD,CACLimB,QAAS2qB,EAASlpC,OAAOmpC,EAAa,GACtC7wB,KAAM,IAAIT,GAAKqxB,EAASlpC,OAAO,EAAGmpC,KAQtC,SAASC,GAA8BpB,EAAUqB,EAAW/G,GAC1D,IAAI0E,EAAYgB,EAASL,eAAevrC,IAAIitC,GAG5C,OAFA,QAAOrC,EAAW,wDAEXD,GAAwBC,EAAW1E,EADxBrE,GAAqB+J,EAASJ,kBAAmByB,GACD,MAoIpE,IAAIC,GAAqC,WACvC,SAASA,EAAsB3Q,IAC7B,OAAgB3hC,KAAMsyC,GAEtBtyC,KAAK2hC,MAAQA,EAgBf,OAbA,OAAa2Q,EAAuB,CAAC,CACnCvvC,IAAK,oBACLpB,MAAO,SAA2B2wB,GAEhC,OAAO,IAAIggB,EADCtyC,KAAK2hC,MAAMrK,kBAAkBhF,MAG1C,CACDvvB,IAAK,OACLpB,MAAO,WACL,OAAO3B,KAAK2hC,UAIT2Q,EApBgC,GAuBrCC,GAAqC,WACvC,SAASA,EAAsBvB,EAAU1vB,IACvC,OAAgBthB,KAAMuyC,GAEtBvyC,KAAKwyC,UAAYxB,EACjBhxC,KAAKyyC,MAAQnxB,EAgBf,OAbA,OAAaixB,EAAuB,CAAC,CACnCxvC,IAAK,oBACLpB,MAAO,SAA2B2wB,GAChC,IAAIiT,EAAYzjB,GAAU9hB,KAAKyyC,MAAOngB,GACtC,OAAO,IAAIigB,EAAsBvyC,KAAKwyC,UAAWjN,KAElD,CACDxiC,IAAK,OACLpB,MAAO,WACL,OAAO4vC,GAA+BvxC,KAAKwyC,UAAWxyC,KAAKyyC,WAIxDF,EArBgC,GAuCrCG,GAA2B,SAAkC/wC,EAAOgxC,EAAaC,GACnF,OAAKjxC,GAA0B,iBAAVA,IAIrB,QAAO,QAASA,EAAO,6CAEK,iBAAjBA,EAAM,OACRkxC,GAA2BlxC,EAAM,OAAQgxC,EAAaC,GAC5B,iBAAjBjxC,EAAM,OACfmxC,GAA4BnxC,EAAM,OAAQgxC,QAEjD,SAAO,EAAO,4BAA8BI,KAAKC,UAAUrxC,EAAO,KAAM,KAVjEA,GAcPkxC,GAA6B,SAAoCI,EAAIC,EAAUN,GACjF,GACO,cADCK,EAEJ,OAAOL,EAAwB,WAG/B,SAAO,EAAO,4BAA8BK,IAI9CH,GAA8B,SAAqCG,EAAIC,EAAUC,GAC9EF,EAAGprC,eAAe,eACrB,SAAO,EAAO,4BAA8BkrC,KAAKC,UAAUC,EAAI,KAAM,IAGvE,IAAIhnB,EAAQgnB,EAAc,UAEL,iBAAVhnB,IACT,SAAO,EAAO,+BAAiCA,GAGjD,IAAImnB,EAAeF,EAAStlB,OAG5B,IAFA,QAAOwlB,MAAAA,EAA8D,+CAEhEA,EAAarhB,aAChB,OAAO9F,EAGT,IACI0mB,EADOS,EACYtgB,WAEvB,MAA2B,iBAAhB6f,EACF1mB,EAIF0mB,EAAc1mB,GAWnBonB,GAA2B,SAAkC/xB,EAAMsM,EAAMojB,EAAU4B,GACrF,OAAOU,GAAqB1lB,EAAM,IAAI2kB,GAAsBvB,EAAU1vB,GAAOsxB,IAS3EW,GAA+B,SAAsC3lB,EAAMslB,EAAUN,GACvF,OAAOU,GAAqB1lB,EAAM,IAAI0kB,GAAsBY,GAAWN,IAGzE,SAASU,GAAqB1lB,EAAM+kB,EAAaC,GAC/C,IAEI5kB,EAFAwlB,EAAS5lB,EAAKoE,cAAcxD,MAC5BoD,EAAW8gB,GAAyBc,EAAQb,EAAYrb,kBAAkB,aAAcsb,GAG5F,GAAIhlB,EAAKmE,aAAc,CACrB,IAAI0hB,EAAW7lB,EACXjsB,EAAQ+wC,GAAyBe,EAAS3gB,WAAY6f,EAAaC,GAEvE,OAAIjxC,IAAU8xC,EAAS3gB,YAAclB,IAAa6hB,EAASzhB,cAAcxD,MAChE,IAAIyD,GAAStwB,EAAOo4B,GAAanI,IAEjChE,EAGT,IAAI8lB,EAAe9lB,EAcnB,OAbAI,EAAU0lB,EAEN9hB,IAAa8hB,EAAa1hB,cAAcxD,QAC1CR,EAAUA,EAAQyE,eAAe,IAAIR,GAASL,KAGhD8hB,EAAa3b,aAAa/D,IAAgB,SAAU1B,EAAWC,GAC7D,IAAIC,EAAe8gB,GAAqB/gB,EAAWogB,EAAYrb,kBAAkBhF,GAAYsgB,GAEzFpgB,IAAiBD,IACnBvE,EAAUA,EAAQ0E,qBAAqBJ,EAAWE,OAG/CxE,EA2BX,IAAI2lB,IAAoB,QAMxB,SAASA,IACP,IAAIzyC,EAAOhB,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,GAC3E0zC,EAAS1zC,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,KAC7E0tB,EAAO1tB,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK,CAC7Ei6B,SAAU,GACV0Z,WAAY,IAGd,OAAgB7zC,KAAM2zC,GAEtB3zC,KAAKkB,KAAOA,EACZlB,KAAK4zC,OAASA,EACd5zC,KAAK4tB,KAAOA,KAUd,SAASkmB,GAAYpU,EAAMqU,GAMzB,IAJA,IAAIzyB,EAAOyyB,aAAmBlzB,GAAOkzB,EAAU,IAAIlzB,GAAKkzB,GACpDzZ,EAAQoF,EACRv9B,EAAOkf,GAAaC,GAER,OAATnf,GAAe,CACpB,IAAIowB,GAAY,QAAQ+H,EAAM1M,KAAKuM,SAAUh4B,IAAS,CACpDg4B,SAAU,GACV0Z,WAAY,GAEdvZ,EAAQ,IAAIqZ,GAAKxxC,EAAMm4B,EAAO/H,GAE9BpwB,EAAOkf,GADPC,EAAOE,GAAaF,IAItB,OAAOgZ,EAST,SAAS0Z,GAAatU,GACpB,OAAOA,EAAK9R,KAAKjsB,MASnB,SAASsyC,GAAavU,EAAM/9B,GAC1B+9B,EAAK9R,KAAKjsB,MAAQA,EAClBuyC,GAAkBxU,GAOpB,SAASyU,GAAgBzU,GACvB,OAAOA,EAAK9R,KAAKimB,WAAa,EAiBhC,SAASO,GAAiB1U,EAAMtZ,GAC9Bze,EAAK+3B,EAAK9R,KAAKuM,UAAU,SAAUG,EAAOlF,GACxChP,EAAO,IAAIutB,GAAKrZ,EAAOoF,EAAMtK,OAcjC,SAASif,GAAsB3U,EAAMtZ,EAAQkuB,EAAaC,GACpDD,IAAgBC,GAClBnuB,EAAOsZ,GAGT0U,GAAiB1U,GAAM,SAAUpF,GAC/B+Z,GAAsB/Z,EAAOlU,GAAQ,EAAMmuB,MAGzCD,GAAeC,GACjBnuB,EAAOsZ,GA+BX,SAAS8U,GAAY9U,GACnB,OAAO,IAAI7e,GAAqB,OAAhB6e,EAAKkU,OAAkBlU,EAAKx+B,KAAOszC,GAAY9U,EAAKkU,QAAU,IAAMlU,EAAKx+B,MAO3F,SAASgzC,GAAkBxU,GACL,OAAhBA,EAAKkU,QAYX,SAAyBlU,EAAMpN,EAAWgI,GACxC,IAAIma,EAzFN,SAAqB/U,GACnB,YAA8Bj7B,IAAvBuvC,GAAatU,KAAwByU,GAAgBzU,GAwF3CgV,CAAYpa,GACzBqa,GAAc,QAASjV,EAAK9R,KAAKuM,SAAU7H,GAE3CmiB,GAAcE,UACTjV,EAAK9R,KAAKuM,SAAS7H,GAC1BoN,EAAK9R,KAAKimB,aACVK,GAAkBxU,IACR+U,GAAeE,IACzBjV,EAAK9R,KAAKuM,SAAS7H,GAAagI,EAAM1M,KACtC8R,EAAK9R,KAAKimB,aACVK,GAAkBxU,IAtBlBkV,CAAgBlV,EAAKkU,OAAQlU,EAAKx+B,KAAMw+B,GA+C5C,IAAImV,GAAqB,iCAMrBC,GAAsB,+BAKtBC,GAAiB,SAEjBC,GAAa,SAAoBjyC,GACnC,MAAsB,iBAARA,GAAmC,IAAfA,EAAIzB,SAAiBuzC,GAAmBzzC,KAAK2B,IAG7EkyC,GAAoB,SAA2B71B,GACjD,MAA6B,iBAAfA,GAAiD,IAAtBA,EAAW9d,SAAiBwzC,GAAoB1zC,KAAKge,IAqB5F81B,GAA0B,SAAiCC,EAAQxzC,EAAO2f,EAAMnX,GAC9EA,QAAsB1F,IAAV9C,GAIhByzC,IAAqB,QAAYD,EAAQ,SAAUxzC,EAAO2f,IAOxD8zB,GAAuB,SAASA,EAAqBC,EAAanvC,EAAMusC,GAC1E,IAAInxB,EAAOmxB,aAAiB5xB,GAAO,IAAIgC,GAAe4vB,EAAO4C,GAAe5C,EAE5E,QAAahuC,IAATyB,EACF,MAAM,IAAIH,MAAMsvC,EAAc,sBAAwBjyB,GAA4B9B,IAGpF,GAAoB,mBAATpb,EACT,MAAM,IAAIH,MAAMsvC,EAAc,uBAAyBjyB,GAA4B9B,GAAQ,oBAAsBpb,EAAKlF,YAGxH,GAAIiF,EAAoBC,GACtB,MAAM,IAAIH,MAAMsvC,EAAc,YAAcnvC,EAAKlF,WAAa,IAAMoiB,GAA4B9B,IAIlG,GAAoB,iBAATpb,GAAqBA,EAAK5E,OAASyzC,GAAiB,IAAK,QAAa7uC,GAAQ6uC,GACvF,MAAM,IAAIhvC,MAAMsvC,EAAc,kCAAdA,uBAAoFjyB,GAA4B9B,GAAQ,MAAQpb,EAAKwB,UAAU,EAAG,IAAM,SAK1K,GAAIxB,GAAwB,iBAATA,EAAmB,CACpC,IAAIovC,GAAc,EACdC,GAAiB,EAiBrB,GAhBA5tC,EAAKzB,GAAM,SAAUnD,EAAKpB,GACxB,GAAY,WAARoB,EACFuyC,GAAc,OACT,GAAY,cAARvyC,GAA+B,QAARA,IAChCwyC,GAAiB,GAEZP,GAAWjyC,IACd,MAAM,IAAIgD,MAAMsvC,EAAc,6BAA+BtyC,EAAM,KAAOqgB,GAA4B9B,GAAtF+zB,wFAzuS1B,IAA4BlyB,EAAgBmX,EAAAA,EA6uSbv3B,GA7uSHogB,EA6uSH7B,GA3uSJyB,OAAOzhB,OAAS,IACjC6hB,EAAeH,aAAe,GAGhCG,EAAeJ,OAAO3b,KAAKkzB,GAC3BnX,EAAeH,cAAe,QAAasX,GAC3CpX,GAAyBC,GAsuSrBiyB,EAAqBC,EAAa1zC,EAAO2f,GAnuS/C,SAA2B6B,GACzB,IAAIqyB,EAAOryB,EAAeJ,OAAOqM,MACjCjM,EAAeH,cAAe,QAAawyB,GAEvCryB,EAAeJ,OAAOzhB,OAAS,IACjC6hB,EAAeH,aAAe,GA+tS5ByyB,CAAkBn0B,MAGhBg0B,GAAeC,EACjB,MAAM,IAAIxvC,MAAMsvC,EAAc,4BAA8BjyB,GAA4B9B,GAAQ,sCAqGlGo0B,GAAqB,SAA4BP,EAAQQ,EAAcv2B,EAAYjV,GACrF,KAAIA,QAA2B1F,IAAf2a,GAIX61B,GAAkB71B,IACrB,MAAM,IAAIrZ,OAAM,QAAYovC,EAAQQ,GAAgB,0BAA4Bv2B,EAAhE,qFAiBhBw2B,GAAuB,SAA8BT,EAAQ7zB,GAC/D,GAA2B,UAAvBD,GAAaC,GACf,MAAM,IAAIvb,MAAMovC,EAAS,8CAIzBU,GAAc,SAAqBV,EAAQW,GAE7C,IAAI12B,EAAa02B,EAAUx0B,KAAKtgB,WAEhC,GAAyC,iBAA5B80C,EAAU1oC,SAASjB,MAAyD,IAAnC2pC,EAAU1oC,SAASjB,KAAK7K,SAAiB0zC,GAAWc,EAAU1oC,SAASf,YAAwD,cAA1CypC,EAAU1oC,SAASjB,KAAK8U,MAAM,KAAK,IAA4C,IAAtB7B,EAAW9d,SA9MrL,SAA+B8d,GAMzD,OALIA,IAEFA,EAAaA,EAAWwN,QAAQ,mBAAoB,MAG/CqoB,GAAkB71B,GAwMuM22B,CAAsB32B,GACpP,MAAM,IAAIrZ,OAAM,QAAYovC,EAAQ,OAApB,yFAmChBa,IAA0B,QAAa,SAASA,KAClD,OAAgBh2C,KAAMg2C,GAEtBh2C,KAAKi2C,YAAc,GAKnBj2C,KAAKk2C,gBAAkB,KAOzB,SAASC,GAAsBC,EAAYC,GAIzC,IAFA,IAAIC,EAAW,KAEN/0C,EAAI,EAAGA,EAAI80C,EAAc/0C,OAAQC,IAAK,CAC7C,IAAI2E,EAAOmwC,EAAc90C,GACrB+f,EAAOpb,EAAKqwC,UAEC,OAAbD,GAAsB7zB,GAAWnB,EAAMg1B,EAASh1B,QAClD80B,EAAWH,YAAY7uC,KAAKkvC,GAC5BA,EAAW,MAGI,OAAbA,IACFA,EAAW,CACTnU,OAAQ,GACR7gB,KAAMA,IAIVg1B,EAASnU,OAAO/6B,KAAKlB,GAGnBowC,GACFF,EAAWH,YAAY7uC,KAAKkvC,GA+BhC,SAASE,GAAoCJ,EAAYK,EAAaJ,GACpEF,GAAsBC,EAAYC,GAClCK,GAA6CN,GAAY,SAAUO,GACjE,OAAO/zB,GAAa+zB,EAAWF,IAAgB7zB,GAAa6zB,EAAaE,MAI7E,SAASD,GAA6CN,EAAYhS,GAChEgS,EAAWF,kBAGX,IAFA,IAAIU,GAAU,EAELr1C,EAAI,EAAGA,EAAI60C,EAAWH,YAAY30C,OAAQC,IAAK,CACtD,IAAIs1C,EAAYT,EAAWH,YAAY10C,GAEvC,GAAIs1C,EAGEzS,EAFYyS,EAAUv1B,OAGxBw1B,GAAeV,EAAWH,YAAY10C,IACtC60C,EAAWH,YAAY10C,GAAK,MAE5Bq1C,GAAU,EAKZA,IACFR,EAAWH,YAAc,IAG3BG,EAAWF,kBAOb,SAASY,GAAeD,GACtB,IAAK,IAAIt1C,EAAI,EAAGA,EAAIs1C,EAAU1U,OAAO7gC,OAAQC,IAAK,CAChD,IAAI2e,EAAY22B,EAAU1U,OAAO5gC,GAEjC,GAAkB,OAAd2e,EAAoB,CACtB22B,EAAU1U,OAAO5gC,GAAK,KACtB,IAAIw1C,EAAU72B,EAAU82B,iBAEpBtyC,GACFM,EAAI,UAAYkb,EAAUlf,YAG5BuI,GAAewtC,KAsBrB,IAAIE,GAAmB,iBAYnBC,GAAoB,WACtB,SAASA,EAAKp8B,EAAWq8B,EAAkB9yB,EAAoB+yB,IAC7D,OAAgBp3C,KAAMk3C,GAEtBl3C,KAAK8a,UAAYA,EACjB9a,KAAKm3C,iBAAmBA,EACxBn3C,KAAKqkB,mBAAqBA,EAC1BrkB,KAAKo3C,kBAAoBA,EACzBp3C,KAAKq3C,gBAAkB,EACvBr3C,KAAKsgC,eAAiB,KACtBtgC,KAAKs3C,YAAc,IAAItB,GACvBh2C,KAAKu3C,aAAe,EACpBv3C,KAAKw3C,6BAA+B,KAGpCx3C,KAAKmQ,cAAgB8uB,KAGrBj/B,KAAKy3C,sBAAwB,IAAI9D,GAEjC3zC,KAAK03C,sBAAwB,KAE7B13C,KAAK+C,IAAM/C,KAAK8a,UAAU9N,cAc5B,OAPA,OAAakqC,EAAM,CAAC,CAClBn0C,IAAK,WACLpB,MAAO,WACL,OAAQ3B,KAAK8a,UAAU1O,OAAS,WAAa,WAAapM,KAAK8a,UAAU3O,SAItE+qC,EApCe,GAuCxB,SAASS,GAAUC,EAAMC,EAAOC,GAG9B,GAFAF,EAAK/nC,OAAS7B,GAA0B4pC,EAAK98B,WAEzC88B,EAAKT,mBAzhZyB,iBAAXzzC,QAAuBA,OAAkB,WAAKA,OAAkB,UAAa,WAAK,IAKxFq0C,OAAO,6FAA+F,EAqhZrHH,EAAKxX,QAAU,IAAIxC,GAAmBga,EAAK98B,WAAW,SAAUsE,EAAYlZ,EAAM8xC,EAAS1wB,GACzF2wB,GAAiBL,EAAMx4B,EAAYlZ,EAAM8xC,EAAS1wB,KACjDswB,EAAKvzB,mBAAoBuzB,EAAKR,mBAEjC5tC,YAAW,WACT,OAAO0uC,GAAoBN,GAE3B,KACC,OACE,CAEL,GAAI,MAAOE,EAAuD,CAChE,GAA4B,iBAAjBA,EACT,MAAM,IAAI/xC,MAAM,sEAGlB,KACE,QAAU+xC,GACV,MAAOn4C,GACP,MAAM,IAAIoG,MAAM,kCAAoCpG,IAIxDi4C,EAAKF,sBAAwB,IAAI5zB,GAAqB8zB,EAAK98B,UAAW+8B,GAAO,SAAUz4B,EAAYlZ,EAAM8xC,EAAS1wB,GAChH2wB,GAAiBL,EAAMx4B,EAAYlZ,EAAM8xC,EAAS1wB,MACjD,SAAU6wB,GACXD,GAAoBN,EAAMO,MACzB,SAAUjS,IA0HjB,SAAgC0R,EAAM1R,GACpCv+B,EAAKu+B,GAAS,SAAUnjC,EAAKpB,GAC3By2C,GAAeR,EAAM70C,EAAKpB,MA3HxB02C,CAAuBT,EAAM1R,KAC5B0R,EAAKvzB,mBAAoBuzB,EAAKR,kBAAmBU,GACpDF,EAAKxX,QAAUwX,EAAKF,sBAlkYxB,IAAyCtqC,EAAUkrC,EAC7CrqC,EAokYJ2pC,EAAKvzB,mBAAmBk0B,wBAAuB,SAAUh5B,GACvDq4B,EAAKxX,QAAQoY,iBAAiBj5B,MAEhCq4B,EAAKR,kBAAkBmB,wBAAuB,SAAU14C,GACtD+3C,EAAKxX,QAAQqY,qBAAqB54C,EAAO0f,UAI3Cq4B,EAAKc,gBA7kYkCtrC,EA6kYewqC,EAAK98B,UA7kYVw9B,EA6kYqB,WACpE,OAAO,IAAIpY,GAAc0X,EAAK/nC,OAAQ+nC,EAAKxX,UA7kYzCnyB,EAAab,EAASpM,WAErB+M,GAAUE,KACbF,GAAUE,GAAcqqC,KAGnBvqC,GAAUE,IA0kYjB2pC,EAAKe,UAAY,IAAI7Z,GACrB8Y,EAAKgB,cAAgB,IAAInI,GAAS,CAChCoI,eAAgB,SAAwB3rC,EAAOoa,EAAKD,EAAehI,GACjE,IAAIy5B,EAAa,GACblrB,EAAOgqB,EAAKe,UAAU5U,QAAQ72B,EAAM4Z,OAUxC,OAPK8G,EAAKqB,YACR6pB,EAAaxH,GAA6BsG,EAAKgB,cAAe1rC,EAAM4Z,MAAO8G,GAC3EpkB,YAAW,WACT6V,EAAW,QACV,IAGEy5B,GAETC,cAAe,eAEjBX,GAAeR,EAAM,aAAa,GAClCA,EAAKoB,gBAAkB,IAAIvI,GAAS,CAClCoI,eAAgB,SAAwB3rC,EAAOoa,EAAKD,EAAehI,GAMjE,OALAu4B,EAAKxX,QAAQ/T,OAAOnf,EAAOma,EAAeC,GAAK,SAAUa,EAAQjiB,GAC/D,IAAIi8B,EAAS9iB,EAAW8I,EAAQjiB,GAChCswC,GAAoCoB,EAAKN,YAAapqC,EAAM4Z,MAAOqb,MAG9D,IAET4W,cAAe,SAAuB7rC,EAAOoa,GAC3CswB,EAAKxX,QAAQ6Y,SAAS/rC,EAAOoa,MASnC,SAAS4xB,GAAetB,GACtB,IACIuB,EADavB,EAAKe,UAAU5U,QAAQ,IAAIljB,GAAK,2BACzB2N,OAAS,EACjC,OAAO,IAAIxE,MAAOC,UAAYkvB,EAOhC,SAASC,GAAyBxB,GAChC,OAp4BA7qB,GADmDA,EAq4BzB,CACxBvO,UAAW06B,GAAetB,MAr4BT,IACD,UAAI7qB,EAAkB,YAAK,IAAI/C,MAAOC,UACjD8C,EAHgB,IAA4BA,EA84BrD,SAASkrB,GAAiBL,EAAMx4B,EAAYlZ,EAAM8xC,EAAS1wB,GAEzDswB,EAAKP,kBACL,IAAI/1B,EAAO,IAAIT,GAAKzB,GACpBlZ,EAAO0xC,EAAKJ,6BAA+BI,EAAKJ,6BAA6Bp4B,EAAYlZ,GAAQA,EACjG,IAAIi8B,EAAS,GAEb,GAAI7a,EACF,GAAI0wB,EAAS,CACX,IAAIqB,GAAiB,QAAInzC,GAAM,SAAUozC,GACvC,OAAOvf,GAAauf,MAEtBnX,EAn3CN,SAAuC6O,EAAU1vB,EAAMyqB,EAAiBzkB,GACtE,IAAI4qB,EAAWF,GAAwBhB,EAAU1pB,GAEjD,GAAI4qB,EAAU,CACZ,IAAI3rB,EAAI0rB,GAAuBC,GAC3BG,EAAY9rB,EAAEjF,KACdiG,EAAUhB,EAAEgB,QACZ4c,EAAe/hB,GAAgBiwB,EAAW/wB,GAC1Ci4B,EAAarV,GAAcsV,WAAWzN,GAE1C,OAAOqG,GAA8BpB,EAAUqB,EADtC,IAAI7Q,GAAMb,GAAoCpZ,GAAU4c,EAAcoV,IAI/E,MAAO,GAs2CIE,CAA8B7B,EAAKoB,gBAAiB13B,EAAM+3B,EAAgB/xB,OAC9E,CACL,IAAIoyB,EAAa3f,GAAa7zB,GAC9Bi8B,EA54CN,SAA2C6O,EAAU1vB,EAAM2Z,EAAM3T,GAC/D,IAAI4qB,EAAWF,GAAwBhB,EAAU1pB,GAEjD,GAAgB,MAAZ4qB,EAAkB,CACpB,IAAI3rB,EAAI0rB,GAAuBC,GAC3BG,EAAY9rB,EAAEjF,KACdiG,EAAUhB,EAAEgB,QACZ4c,EAAe/hB,GAAgBiwB,EAAW/wB,GAE9C,OAAO8wB,GAA8BpB,EAAUqB,EADtC,IAAI/Q,GAAUX,GAAoCpZ,GAAU4c,EAAclJ,IAInF,MAAO,GAg4CI0e,CAAkC/B,EAAKoB,gBAAiB13B,EAAMo4B,EAAYpyB,QAEhF,GAAI0wB,EAAS,CAClB,IAAIjM,GAAkB,QAAI7lC,GAAM,SAAUozC,GACxC,OAAOvf,GAAauf,MAEtBnX,EAhhDJ,SAAkC6O,EAAU1vB,EAAMyqB,GAChD,IAAIwN,EAAarV,GAAcsV,WAAWzN,GAC1C,OAAOoF,GAAoCH,EAAU,IAAIxP,GAnwFlD,CACLZ,UAAU,EACVC,YAAY,EACZtZ,QAAS,KACTuZ,QAAQ,GA+vFiFxf,EAAMi4B,IA8gDtFK,CAAyBhC,EAAKoB,gBAAiB13B,EAAMyqB,OACzD,CACL,IAAI9Q,EAAOlB,GAAa7zB,GACxBi8B,EAASmP,GAA6BsG,EAAKoB,gBAAiB13B,EAAM2Z,GAGpE,IAAI4e,EAAev4B,EAEf6gB,EAAO7gC,OAAS,IAGlBu4C,EAAeC,GAAsBlC,EAAMt2B,IAG7Ck1B,GAAoCoB,EAAKN,YAAauC,EAAc1X,GAGtE,SAAS+V,GAAoBN,EAAMO,GACjCC,GAAeR,EAAM,YAAaO,IAEZ,IAAlBA,GA0IN,SAAmCP,GACjCmC,GAAQnC,EAAM,sBACd,IAAIhF,EAAewG,GAAyBxB,GACxCoC,EAA2B/a,KAC/BK,GAA8BsY,EAAKznC,cAAeiR,MAAgB,SAAUE,EAAMsM,GAChF,IAAIqsB,EAAW5G,GAAyB/xB,EAAMsM,EAAMgqB,EAAKoB,gBAAiBpG,GAC1E1T,GAA2B8a,EAA0B14B,EAAM24B,MAE7D,IAAI9X,EAAS,GACb7C,GAA8B0a,EAA0B54B,MAAgB,SAAUE,EAAM2Z,GACtFkH,EAASA,EAAOv8B,OAAO0rC,GAA6BsG,EAAKoB,gBAAiB13B,EAAM2Z,IAChF,IAAI4e,EAAeK,GAAsBtC,EAAMt2B,GAC/Cw4B,GAAsBlC,EAAMiC,MAE9BjC,EAAKznC,cAAgB8uB,KACrBuX,GAAoCoB,EAAKN,YAAal2B,KAAgB+gB,GAxJpEgY,CAA0BvC,GAU9B,SAASQ,GAAeR,EAAMx4B,EAAYzd,GACxC,IAAI2f,EAAO,IAAIT,GAAK,UAAYzB,GAC5B4O,EAAU+L,GAAap4B,GAC3Bi2C,EAAKe,UAAUyB,eAAe94B,EAAM0M,GACpC,IAAImU,EAASmP,GAA6BsG,EAAKgB,cAAet3B,EAAM0M,GACpEwoB,GAAoCoB,EAAKN,YAAah2B,EAAM6gB,GAG9D,SAASkY,GAAmBzC,GAC1B,OAAOA,EAAKL,eAsCd,SAAS+C,GAAoB1C,EAAMt2B,EAAMi5B,EAAQ5iB,EAAatY,GAC5D06B,GAAQnC,EAAM,MAAO,CACnBt2B,KAAMA,EAAKtgB,WACXW,MAAO44C,EACP3oB,SAAU+F,IAIZ,IAAIib,EAAewG,GAAyBxB,GACxC4C,EAAoBzgB,GAAawgB,EAAQ5iB,GACzCub,EAAW3B,GAA+BqG,EAAKoB,gBAAiB13B,GAChE0M,EAAUulB,GAA6BiH,EAAmBtH,EAAUN,GACpExL,EAAUiT,GAAmBzC,GAC7BzV,EAAS4O,GAA2B6G,EAAKoB,gBAAiB13B,EAAM0M,EAASoZ,GAAS,GACtF+O,GAAsByB,EAAKN,YAAanV,GACxCyV,EAAKxX,QAAQjU,IAAI7K,EAAKtgB,WAAYw5C,EAAkBhsB,KAEpD,IAAO,SAAUrG,EAAQwB,GACvB,IAAI8wB,EAAqB,OAAXtyB,EAETsyB,GACHz0C,EAAK,UAAYsb,EAAO,YAAc6G,GAGxC,IAAIuyB,EAActJ,GAAqBwG,EAAKoB,gBAAiB5R,GAAUqT,GACvEjE,GAAoCoB,EAAKN,YAAah2B,EAAMo5B,GAC5DC,GAA2B/C,EAAMv4B,EAAY8I,EAAQwB,MAEvD,IAAIkwB,EAAeK,GAAsBtC,EAAMt2B,GAC/Cw4B,GAAsBlC,EAAMiC,GAE5BrD,GAAoCoB,EAAKN,YAAauC,EAAc,IAoJtE,SAASe,GAAchD,GACjBA,EAAKF,uBACPE,EAAKF,sBAAsB5rB,UAAUmrB,IAUzC,SAAS8C,GAAQnC,GACf,IAAInyC,EAAS,GAETmyC,EAAKF,wBACPjyC,EAASmyC,EAAKF,sBAAsB/0C,GAAK,KAG3C,IAAK,IAAIk4C,EAAQ36C,UAAUoB,OAAQgE,EAAU,IAAI5E,MAAMm6C,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IAC3Gx1C,EAAQw1C,EAAQ,GAAK56C,UAAU46C,GAGjC91C,EAAI7E,WAAM,EAAQ,CAACsF,GAAQG,OAAON,IAGpC,SAASq1C,GAA2B/C,EAAMnpC,EAAU0Z,EAAQwB,GACtDlb,GACFlF,IAAe,WACb,GAAe,OAAX4e,EACF1Z,EAAS,UACJ,CACL,IAAIlD,GAAQ4c,GAAU,SAAS4yB,cAC3Bx2C,EAAUgH,EAEVoe,IACFplB,GAAW,KAAOolB,GAGpB,IAAIqxB,EAAU,IAAIj1C,MAAMxB,GAGxBy2C,EAAQzvC,KAAOA,EACfkD,EAASusC,OAkGjB,SAASC,GAAmBrD,EAAMt2B,EAAM45B,GACtC,OAAO3J,GAA+BqG,EAAKoB,gBAAiB13B,EAAM45B,IAAgBhkB,GAAazH,WAajG,SAAS0rB,GAA0BvD,GACjC,IAAIhqB,EAAO1tB,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,GAAK03C,EAAKH,sBAOpF,GAJK7pB,GACHwtB,GAAwCxD,EAAMhqB,GAG5ComB,GAAapmB,GAAO,CACtB,IAAIytB,EAAQC,GAA0B1D,EAAMhqB,IAC5C,QAAOytB,EAAM/5C,OAAS,EAAG,yCACzB,IAAIi6C,EAASF,EAAMG,OAAM,SAAUC,GACjC,OAA8B,IAAvBA,EAAYtzB,UAKjBozB,GACFG,GAAyB9D,EAAMpD,GAAY5mB,GAAOytB,QAE3ClH,GAAgBvmB,IACzBwmB,GAAiBxmB,GAAM,SAAU2E,GAC/B4oB,GAA0BvD,EAAMrlB,MAatC,SAASmpB,GAAyB9D,EAAMt2B,EAAM+5B,GAS5C,IAPA,IAAIM,EAAeN,EAAMjvB,KAAI,SAAUwvB,GACrC,OAAOA,EAAIC,kBAETC,EAAcb,GAAmBrD,EAAMt2B,EAAMq6B,GAC7CI,EAAaD,EACbE,EAAaF,EAAYx8B,OAEpB/d,EAAI,EAAGA,EAAI85C,EAAM/5C,OAAQC,IAAK,CACrC,IAAIq6C,EAAMP,EAAM95C,IAChB,QAAsB,IAAfq6C,EAAIzzB,OAET,iEACFyzB,EAAIzzB,OAAS,EAGbyzB,EAAIK,aACJ,IAAI9X,EAAe/hB,GAAgBd,EAAMs6B,EAAIt6B,MAE7Cy6B,EAAaA,EAAWnpB,YAAYuR,EAElCyX,EAAIM,0BAGR,IAAIC,EAAaJ,EAAWvtB,KAAI,GAC5B4tB,EAAa96B,EAEjBs2B,EAAKxX,QAAQjU,IAAIiwB,EAAWp7C,WAAYm7C,GAAY,SAAUh0B,GAC5D4xB,GAAQnC,EAAM,2BAA4B,CACxCt2B,KAAM86B,EAAWp7C,WACjBmnB,OAAQA,IAEV,IAAIga,EAAS,GAEb,GAAe,OAAXha,EAAiB,CAuBnB,IAnBA,IAAIk0B,EAAY,GAEZC,EAAS,SAAgBC,GAC3BlB,EAAMkB,GAAKp0B,OAAS,EAGpBga,EAASA,EAAOv8B,OAAOwrC,GAAqBwG,EAAKoB,gBAAiBqC,EAAMkB,GAAKV,iBAEzER,EAAMkB,GAAKl9B,YAGbg9B,EAAUj1C,MAAK,WACb,OAAOi0C,EAAMkB,GAAKl9B,WAAW,MAAM,EAAMg8B,EAAMkB,GAAKC,kCAIxDnB,EAAMkB,GAAKE,aAGJF,EAAM,EAAGA,EAAMlB,EAAM/5C,OAAQi7C,IACpCD,EAAOC,GAITnB,GAAwCxD,EAAM9D,GAAY8D,EAAKH,sBAAuBn2B,IAEtF65B,GAA0BvD,EAAMA,EAAKH,uBACrCjB,GAAoCoB,EAAKN,YAAah2B,EAAM6gB,GAE5D,IAAK,IAAIua,EAAM,EAAGA,EAAML,EAAU/6C,OAAQo7C,IACxCnzC,GAAe8yC,EAAUK,QAEtB,CAEL,GAAe,cAAXv0B,EACF,IAAK,IAAIw0B,EAAM,EAAGA,EAAMtB,EAAM/5C,OAAQq7C,IACV,IAAtBtB,EAAMsB,GAAKx0B,OAGbkzB,EAAMsB,GAAKx0B,OAAS,EAIpBkzB,EAAMsB,GAAKx0B,OAAS,MAKnB,CACLniB,EAAK,kBAAoBo2C,EAAWp7C,WAAa,YAAcmnB,GAE/D,IAAK,IAAIy0B,EAAM,EAAGA,EAAMvB,EAAM/5C,OAAQs7C,IACpCvB,EAAMuB,GAAKz0B,OAAS,EAGpBkzB,EAAMuB,GAAKC,YAAc10B,EAI7B2xB,GAAsBlC,EAAMt2B,MAE7B06B,GAeL,SAASlC,GAAsBlC,EAAMnB,GACnC,IAAIqG,EAA0BC,GAA+BnF,EAAMnB,GAC/Dn1B,EAAOkzB,GAAYsI,GAGvB,OAWF,SAAmClF,EAAMyD,EAAO/5B,GAC9C,GAAqB,IAAjB+5B,EAAM/5C,OACR,OAqGF,IA/FA,IAAI+6C,EAAY,GACZla,EAAS,GAOTwZ,EALcN,EAAM7Y,QAAO,SAAUzb,GACvC,OAAoB,IAAbA,EAAEoB,UAIoBiE,KAAI,SAAUrF,GAC3C,OAAOA,EAAE80B,kBAGPmB,EAAS,SAAgBz7C,GAC3B,IAgEak7C,EAhEThB,EAAcJ,EAAM95C,GACpB4iC,EAAe/hB,GAAgBd,EAAMm6B,EAAYn6B,MACjD27B,GAAmB,EACnBJ,OAAc,EAGlB,IAFA,QAAwB,OAAjB1Y,EAAuB,iEAEH,IAAvBsX,EAAYtzB,OAGd80B,GAAmB,EACnBJ,EAAcpB,EAAYoB,YAC1B1a,EAASA,EAAOv8B,OAAOwrC,GAAqBwG,EAAKoB,gBAAiByC,EAAYI,gBAAgB,SACzF,GAA2B,IAAvBJ,EAAYtzB,OAGrB,GAAIszB,EAAYQ,YAlxBQ,GAmxBtBgB,GAAmB,EACnBJ,EAAc,WACd1a,EAASA,EAAOv8B,OAAOwrC,GAAqBwG,EAAKoB,gBAAiByC,EAAYI,gBAAgB,QACzF,CAEL,IAAIqB,EAAcjC,GAAmBrD,EAAM6D,EAAYn6B,KAAMq6B,GAC7DF,EAAY0B,qBAAuBD,EACnC,IAAIjM,EAAUoK,EAAM95C,GAAG4C,OAAO+4C,EAAY1uB,OAE1C,QAAgB/pB,IAAZwsC,EAAuB,CACzBmE,GAAqB,qCAAsCnE,EAASwK,EAAYn6B,MAChF,IAAI87B,EAAcrjB,GAAakX,GACc,iBAAZA,GAAmC,MAAXA,IAAmB,QAASA,EAAS,eAI5FmM,EAAcA,EAAY3qB,eAAeyqB,EAAYlrB,gBAGvD,IAAIqrB,EAAa5B,EAAYI,eACzBjJ,EAAewG,GAAyBxB,GACxC0F,EAAkB/J,GAA6B6J,EAAaF,EAAatK,GAC7E6I,EAAYS,yBAA2BkB,EACvC3B,EAAYe,8BAAgCc,EAC5C7B,EAAYI,eAAiBxB,GAAmBzC,GAEhD+D,EAAav7B,OAAOu7B,EAAa/uC,QAAQywC,GAAa,GAEtDlb,GADAA,EAASA,EAAOv8B,OAAOmrC,GAA2B6G,EAAKoB,gBAAiByC,EAAYn6B,KAAMg8B,EAAiB7B,EAAYI,eAAgBJ,EAAY8B,gBACnI33C,OAAOwrC,GAAqBwG,EAAKoB,gBAAiBqE,GAAY,SAE9EJ,GAAmB,EACnBJ,EAAc,SACd1a,EAASA,EAAOv8B,OAAOwrC,GAAqBwG,EAAKoB,gBAAiByC,EAAYI,gBAAgB,IAKpGrF,GAAoCoB,EAAKN,YAAah2B,EAAM6gB,GAC5DA,EAAS,GAEL8a,IAEF5B,EAAM95C,GAAG4mB,OAAS,EAMPs0B,EAERpB,EAAM95C,GAAGk7C,UADVjzC,WAAWizC,EAAWt0C,KAAKI,MAAM,IAG/B8yC,EAAM95C,GAAG8d,aACS,WAAhBw9B,EACFR,EAAUj1C,MAAK,WACb,OAAOi0C,EAAM95C,GAAG8d,WAAW,MAAM,EAAOg8B,EAAM95C,GAAG47C,yBAGnDd,EAAUj1C,MAAK,WACb,OAAOi0C,EAAM95C,GAAG8d,WAAW,IAAItZ,MAAM82C,IAAc,EAAO,YAO3Dt7C,EAAI,EAAGA,EAAI85C,EAAM/5C,OAAQC,IAChCy7C,EAAOz7C,GAIT65C,GAAwCxD,EAAMA,EAAKH,uBAEnD,IAAK,IAAI+F,EAAM,EAAGA,EAAMnB,EAAU/6C,OAAQk8C,IACxCj0C,GAAe8yC,EAAUmB,IAI3BrC,GAA0BvD,EAAMA,EAAKH,uBA/HrCgG,CAA0B7F,EADd0D,GAA0B1D,EAAMkF,GACLx7B,GAChCA,EA0IT,SAASy7B,GAA+BnF,EAAMt2B,GAC5C,IAAIqR,EAGA+qB,EAAkB9F,EAAKH,sBAG3B,IAFA9kB,EAAQtR,GAAaC,GAEJ,OAAVqR,QAAoDluB,IAAlCuvC,GAAa0J,IACpCA,EAAkB5J,GAAY4J,EAAiB/qB,GAE/CA,EAAQtR,GADRC,EAAOE,GAAaF,IAItB,OAAOo8B,EAWT,SAASpC,GAA0B1D,EAAM8F,GAEvC,IAAIC,EAAmB,GAMvB,OALAC,GAAsChG,EAAM8F,EAAiBC,GAE7DA,EAAiBt2C,MAAK,SAAUZ,EAAGC,GACjC,OAAOD,EAAEo3C,MAAQn3C,EAAEm3C,SAEdF,EAGT,SAASC,GAAsChG,EAAMhqB,EAAMytB,GACzD,IAAIyC,EAAY9J,GAAapmB,GAE7B,GAAIkwB,EACF,IAAK,IAAIv8C,EAAI,EAAGA,EAAIu8C,EAAUx8C,OAAQC,IACpC85C,EAAMj0C,KAAK02C,EAAUv8C,IAIzB6yC,GAAiBxmB,GAAM,SAAU0M,GAC/BsjB,GAAsChG,EAAMtd,EAAO+gB,MAQvD,SAASD,GAAwCxD,EAAMhqB,GACrD,IAAIytB,EAAQrH,GAAapmB,GAEzB,GAAIytB,EAAO,CAGT,IAFA,IAAI0C,EAAK,EAEA58C,EAAO,EAAGA,EAAOk6C,EAAM/5C,OAAQH,IACX,IAAvBk6C,EAAMl6C,GAAMgnB,SAGdkzB,EAAM0C,GAAM1C,EAAMl6C,GAClB48C,KAIJ1C,EAAM/5C,OAASy8C,EACf9J,GAAarmB,EAAMytB,EAAM/5C,OAAS,EAAI+5C,OAAQ52C,GAGhD2vC,GAAiBxmB,GAAM,SAAU2E,GAC/B6oB,GAAwCxD,EAAMrlB,MAYlD,SAAS2nB,GAAsBtC,EAAMt2B,GACnC,IAAIu4B,EAAerF,GAAYuI,GAA+BnF,EAAMt2B,IAChEo8B,EAAkB5J,GAAY8D,EAAKH,sBAAuBn2B,GAQ9D,OAl7CF,SAA6Boe,EAAMtZ,EAAQkuB,GAGzC,IAFA,IAAI1mB,EAAO0mB,EAAc5U,EAAOA,EAAKkU,OAErB,OAAThmB,GAAe,CACpB,GAAIxH,EAAOwH,GACT,OAAO,EAGTA,EAAOA,EAAKgmB,QAm6CdoK,CAAoBN,GAAiB,SAAU9vB,GAC7CqwB,GAA4BrG,EAAMhqB,MAEpCqwB,GAA4BrG,EAAM8F,GAClCrJ,GAAsBqJ,GAAiB,SAAU9vB,GAC/CqwB,GAA4BrG,EAAMhqB,MAE7BisB,EAST,SAASoE,GAA4BrG,EAAMhqB,GACzC,IAAIytB,EAAQrH,GAAapmB,GAEzB,GAAIytB,EAAO,CAUT,IANA,IAAIgB,EAAY,GAGZla,EAAS,GACT+b,GAAY,EAEP38C,EAAI,EAAGA,EAAI85C,EAAM/5C,OAAQC,IACR,IAApB85C,EAAM95C,GAAG4mB,SAEmB,IAApBkzB,EAAM95C,GAAG4mB,SAGnB,QAAO+1B,IAAa38C,EAAI,EAAG,mDAC3B28C,EAAW38C,EAEX85C,EAAM95C,GAAG4mB,OAAS,EAGlBkzB,EAAM95C,GAAGs7C,YAAc,SAEvB,QAA2B,IAApBxB,EAAM95C,GAAG4mB,OAEd,0CAEFkzB,EAAM95C,GAAGk7C,YACTta,EAASA,EAAOv8B,OAAOwrC,GAAqBwG,EAAKoB,gBAAiBqC,EAAM95C,GAAGs6C,gBAAgB,IAEvFR,EAAM95C,GAAG8d,YACXg9B,EAAUj1C,KAAKi0C,EAAM95C,GAAG8d,WAAWpa,KAAK,KAAM,IAAIc,MAAM,QAAQ,EAAO,UAK3D,IAAdm4C,EAEFjK,GAAarmB,OAAMnpB,GAGnB42C,EAAM/5C,OAAS48C,EAAW,EAI5B1H,GAAoCoB,EAAKN,YAAa9C,GAAY5mB,GAAOuU,GAEzE,IAAK,IAAIgc,EAAO,EAAGA,EAAO9B,EAAU/6C,OAAQ68C,IAC1C50C,GAAe8yC,EAAU8B,KAgF/B,IAAIC,GAAgB,SAAuBC,EAAS9xC,GAClD,IAAIupC,EAAYwI,GAAiBD,GAC7BhyC,EAAYypC,EAAUzpC,UAED,iBAArBypC,EAAUvhC,QACZzO,EAAMgwC,EAAU3pC,KAAV2pC,8EAIFzpC,GAA2B,cAAdA,GAAmD,cAArBypC,EAAUvhC,QACzDzO,EAAM,gFAGHgwC,EAAU1pC,QA97bO,oBAAX1I,QAA0BA,OAAO0O,UAAY1O,OAAO0O,SAASnF,WAA4D,IAAhDvJ,OAAO0O,SAASnF,SAASL,QAAQ,WACnH5G,EAAK,6FAi8bP,IAAIsG,EAAqC,OAArBwpC,EAAUyI,QAAwC,QAArBzI,EAAUyI,OAC3D,MAAO,CACLnxC,SAAU,IAAIlB,GAAS4pC,EAAU3pC,KAAM2pC,EAAU1pC,OAAQC,EAAWE,EAAWD,EAE/E,GAEAD,IAAcypC,EAAU0I,WACxBl9B,KAAM,IAAIT,GAAKi1B,EAAU12B,cAIzBk/B,GAAmB,SAA0BD,GAE/C,IAAIlyC,EAAO,GACPoI,EAAS,GACTiqC,EAAY,GACZp/B,EAAa,GACb/S,EAAY,GAEZD,GAAS,EACTmyC,EAAS,QACTE,EAAO,IAEX,GAAuB,iBAAZJ,EAAsB,CAE/B,IAAIK,EAAWL,EAAQzxC,QAAQ,MAE3B8xC,GAAY,IACdH,EAASF,EAAQ32C,UAAU,EAAGg3C,EAAW,GACzCL,EAAUA,EAAQ32C,UAAUg3C,EAAW,IAIzC,IAAIC,EAAWN,EAAQzxC,QAAQ,MAEb,IAAd+xC,IACFA,EAAWN,EAAQ/8C,QAGrB,IAAIs9C,EAAkBP,EAAQzxC,QAAQ,MAEb,IAArBgyC,IACFA,EAAkBP,EAAQ/8C,QAG5B6K,EAAOkyC,EAAQ32C,UAAU,EAAGS,KAAKG,IAAIq2C,EAAUC,IAE3CD,EAAWC,IAEbx/B,EA5HN,SAAoBA,GAIlB,IAHA,IAAIy/B,EAAoB,GACpBh9B,EAASzC,EAAW6B,MAAM,KAErB1f,EAAI,EAAGA,EAAIsgB,EAAOvgB,OAAQC,IACjC,GAAIsgB,EAAOtgB,GAAGD,OAAS,EAAG,CACxB,IAAIw9C,EAAQj9B,EAAOtgB,GAEnB,IACEu9C,EAAQC,mBAAmBD,EAAMlyB,QAAQ,MAAO,MAChD,MAAOjtB,IAETk/C,GAAqB,IAAMC,EAI/B,OAAOD,EA4GUG,CAAWX,EAAQ32C,UAAUi3C,EAAUC,KAGtD,IAAIthB,EAxGR,SAAqB2hB,GACnB,IAAIC,EAAU,GAEgB,MAA1BD,EAAYljB,OAAO,KACrBkjB,EAAcA,EAAYv3C,UAAU,IAGtC,IACIy3C,EADAC,EAAch/C,EAA2B6+C,EAAYh+B,MAAM,MAG/D,IACE,IAAKm+B,EAAY39C,MAAO09C,EAASC,EAAYt+C,KAAKY,MAAO,CACvD,IAAI29C,EAAUF,EAAOx9C,MAErB,GAAuB,IAAnB09C,EAAQ/9C,OAAZ,CAIA,IAAIg+C,EAAKD,EAAQp+B,MAAM,KAEL,IAAdq+B,EAAGh+C,OACL49C,EAAQH,mBAAmBO,EAAG,KAAOP,mBAAmBO,EAAG,IAE3Dt5C,EAAK,0BAA0BJ,OAAOy5C,EAAS,gBAAgBz5C,OAAOq5C,EAAa,QAGvF,MAAOl9C,GACPq9C,EAAYz/C,EAAEoC,GACd,QACAq9C,EAAYv9C,IAGd,OAAOq9C,EAwEaK,CAAYlB,EAAQ32C,UAAUS,KAAKG,IAAI+1C,EAAQ/8C,OAAQs9C,MAEzEF,EAAWvyC,EAAKS,QAAQ,OAER,GACdR,EAAoB,UAAXmyC,GAAiC,QAAXA,EAC/BE,EAAO11C,SAASoD,EAAKzE,UAAUg3C,EAAW,GAAI,KAE9CA,EAAWvyC,EAAK7K,OAGlB,IAAIk+C,EAAkBrzC,EAAKlL,MAAM,EAAGy9C,GAEpC,GAAsC,cAAlCc,EAAgBv2C,cAClBsL,EAAS,iBACJ,GAAIirC,EAAgBv+B,MAAM,KAAK3f,QAAU,EAC9CiT,EAASirC,MACJ,CAEL,IAAIC,EAAStzC,EAAKS,QAAQ,KAC1B4xC,EAAYryC,EAAKzE,UAAU,EAAG+3C,GAAQx2C,cACtCsL,EAASpI,EAAKzE,UAAU+3C,EAAS,GAEjCpzC,EAAYmyC,EAIV,OAAQlhB,IACVjxB,EAAYixB,EAAgB,IAIhC,MAAO,CACLnxB,KAAMA,EACNsyC,KAAMA,EACNlqC,OAAQA,EACRiqC,UAAWA,EACXpyC,OAAQA,EACRmyC,OAAQA,EACRn/B,WAAYA,EACZ/S,UAAWA,IA0VXqzC,GAAyB,WAI3B,SAASA,EAAUC,EAAO74B,EAAOY,EAAck4B,IAC7C,OAAgB5/C,KAAM0/C,GAEtB1/C,KAAK2/C,MAAQA,EACb3/C,KAAK8mB,MAAQA,EACb9mB,KAAK0nB,aAAeA,EACpB1nB,KAAK4/C,eAAiBA,EA2DxB,OAxDA,OAAaF,EAAW,CAAC,CACvB38C,IAAK,MACLqC,IAAK,WACH,OAAI+c,GAAYniB,KAAK8mB,OACZ,KAEArF,GAAYzhB,KAAK8mB,SAG3B,CACD/jB,IAAK,MACLqC,IAAK,WACH,OAAO,IAAIy6C,GAAc7/C,KAAK2/C,MAAO3/C,KAAK8mB,SAE3C,CACD/jB,IAAK,mBACLqC,IAAK,WACH,IAAI4B,EAAM02B,GAA0B19B,KAAK0nB,cACrC/kB,EAAKsE,EAAkBD,GAC3B,MAAc,OAAPrE,EAAc,UAAYA,IAMlC,CACDI,IAAK,eACLqC,IAAK,WACH,OAAOs4B,GAA0B19B,KAAK0nB,gBAEvC,CACD3kB,IAAK,UACLpB,MAAO,SAAiB+gB,GAGtB,MAFAA,GAAQ,QAAmBA,cAEJg9B,GACrB,OAAO,EAGT,IAAII,EAAW9/C,KAAK2/C,QAAUj9B,EAAMi9B,MAChCI,EAAWt9B,GAAWziB,KAAK8mB,MAAOpE,EAAMoE,OACxCk5B,EAAsBhgD,KAAKwnB,mBAAqB9E,EAAM8E,iBAC1D,OAAOs4B,GAAYC,GAAYC,IAEhC,CACDj9C,IAAK,SACLpB,MAAO,WACL,OAAO3B,KAAKgB,aAEb,CACD+B,IAAK,WACLpB,MAAO,WACL,OAAO3B,KAAK2/C,MAAM3+C,WAx0WxB,SAAgCsgB,GAG9B,IAFA,IAAIlC,EAAa,GAER7d,EAAI+f,EAAKH,UAAW5f,EAAI+f,EAAKN,QAAQ1f,OAAQC,IAC5B,KAApB+f,EAAKN,QAAQzf,KACf6d,GAAc,IAAM6gC,mBAAmB5mC,OAAOiI,EAAKN,QAAQzf,MAI/D,OAAO6d,GAAc,IA+zWc8gC,CAAuBlgD,KAAK8mB,WAIxD44B,EArEoB,GAoJ7B,IAAIG,GAA6B,SAAUM,IACzC,OAAUN,EAAeM,GAEzB,IAAIC,EAAWphD,EAAa6gD,GAG5B,SAASA,EAAcjI,EAAMt2B,GAG3B,OAFA,OAAgBthB,KAAM6/C,GAEfO,EAAS1gD,KAAKM,KAAM43C,EAAMt2B,EAAM,IAAIgb,IAAe,GAsB5D,OAnBA,OAAaujB,EAAe,CAAC,CAC3B98C,IAAK,SACLqC,IAAK,WACH,IAAIi7C,EAAaz+B,GAAW5hB,KAAK8mB,OACjC,OAAsB,OAAfu5B,EAAsB,KAAO,IAAIR,EAAc7/C,KAAK2/C,MAAOU,KAEnE,CACDt9C,IAAK,OACLqC,IAAK,WAGH,IAFA,IAAIk7C,EAAMtgD,KAEY,OAAfsgD,EAAI1M,QACT0M,EAAMA,EAAI1M,OAGZ,OAAO0M,MAIJT,EA/BwB,CAgC/BH,IA8OF,SAASY,GAAIC,EAAIj/B,GAKf,OAJAi/B,GAAK,QAAmBA,IAErBC,iBAAiB,YAEJ/7C,IAAT6c,EAAqBm/B,GAAQF,EAAGG,MAAOp/B,GAAQi/B,EAAGG,MAgD3D,SAASD,GAAQ7M,EAAQtyB,GAtsEI,IAAgC6zB,EAAQQ,EAAcv2B,EAAYjV,EA+sE7F,OANmC,OAA/BkX,IAFJuyB,GAAS,QAAmBA,IAEJ9sB,QAzsEmCquB,EA0sElC,QA1sE0CQ,EA0sEjC,OA1sE2DxrC,GA0sE7C,GA1sEiCiV,EA0sEvCkC,KAvsExClC,EAAaA,EAAWwN,QAAQ,mBAAoB,MAGtD8oB,GAAmBP,EAAQQ,EAAcv2B,EAAYjV,IAssEnDurC,GAAmB,QAAS,OAAQp0B,GAAM,GAGrC,IAAIu+B,GAAcjM,EAAO+L,MAAO79B,GAAU8xB,EAAO9sB,MAAOxF,IAwCjE,SAASla,GAAKwsC,EAAQjyC,GACpBiyC,GAAS,QAAmBA,GAC5BgC,GAAqB,OAAQhC,EAAO9sB,OACpCouB,GAAwB,OAAQvzC,EAAOiyC,EAAO9sB,OAAO,GACrD,IAYIM,EAZAwU,EAAMsd,GAAetF,EAAO+L,OAC5Bz+C,EAAOy6B,GAAWC,GAOlB+kB,EAAmBF,GAAQ7M,EAAQ1yC,GAEnC0/C,EAAUH,GAAQ7M,EAAQ1yC,GAc9B,OATEkmB,EADW,MAATzlB,EACQuD,GAAI07C,EAASj/C,GAAOyI,MAAK,WACjC,OAAOw2C,KAGCp2C,QAAQC,QAAQm2C,GAG5BD,EAAiBv2C,KAAOgd,EAAQhd,KAAKnF,KAAKmiB,GAC1Cu5B,EAAiBr1C,MAAQ8b,EAAQhd,KAAKnF,KAAKmiB,OAAS3iB,GAC7Ck8C,EAqDT,SAASz7C,GAAIo7C,EAAK3+C,GAChB2+C,GAAM,QAAmBA,GACzB1K,GAAqB,MAAO0K,EAAIx5B,OAChCouB,GAAwB,MAAOvzC,EAAO2+C,EAAIx5B,OAAO,GACjD,IAAIH,EAAW,IAAI,KAInB,OAHA2zB,GAAoBgG,EAAIX,MAAOW,EAAIx5B,MAAOnlB,EAE1C,KAAMglB,EAASk6B,cAAa,gBACrBl6B,EAASS,SAp4HlB,SAA0CoH,IACxC,SAAQugB,GAAwB,mDAChCA,GAAyBvgB,EA+2J3BsyB,CAAiCjB,IA1lJjC,SAAyCrxB,IACvC,SAAQshB,GAAsB,mDAC9BA,GAAuBthB,EAylJzBuyB,CAAgClB,IA2BhC,IAKImB,GAAQ,GAKRC,IAAgB,EAoBpB,SAASC,GAA2BC,EAAKC,EAAcr3C,EAAkB8L,EAAKtJ,GAC5E,IAAI80C,EAAQxrC,GAAOsrC,EAAIxpC,QAAQ2pC,iBAEjB78C,IAAV48C,IACGF,EAAIxpC,QAAQ4pC,WACfz7C,EAAM,kHAGRd,EAAI,kCAAmCm8C,EAAIxpC,QAAQ4pC,WACnDF,EAAQ,GAAGz7C,OAAOu7C,EAAIxpC,QAAQ4pC,UAAW,iCAG3C,IAEIC,EAFA1L,EAAYsI,GAAciD,EAAO90C,GACjCa,EAAW0oC,EAAU1oC,SAErBq0C,OAAiBh9C,EAEE,oBAAZoT,UACT4pC,EAAiB,GAA+C,iCAG9DA,GACFD,GAAa,EACbH,EAAQ,UAAUz7C,OAAO67C,EAAgB,QAAQ77C,OAAOwH,EAASf,WAEjEe,GADA0oC,EAAYsI,GAAciD,EAAO90C,IACZa,UAErBo0C,GAAc1L,EAAU1oC,SAAShB,OAGnC,IAAIs1C,EAAoBn1C,GAAai1C,EAAa,IAAI71C,GAAsBA,GAAsBE,OAAS,IAAIf,GAA0Bq2C,EAAIjgD,KAAMigD,EAAIxpC,QAASypC,GAChKvL,GAAY,gCAAiCC,GAExC3zB,GAAY2zB,EAAUx0B,OACzBxb,EAAM,4FAGR,IAAI8xC,EA4BN,SAA+BxqC,EAAU+zC,EAAKO,EAAmB33C,GAC/D,IAAI43C,EAAWX,GAAMG,EAAIjgD,MAEpBygD,IACHA,EAAW,GACXX,GAAMG,EAAIjgD,MAAQygD,GAGpB,IAAI/J,EAAO+J,EAASv0C,EAASJ,eAEzB4qC,GACF9xC,EAAM,2HAKR,OAFA8xC,EAAO,IAAIV,GAAK9pC,EAAU6zC,GAAeS,EAAmB33C,GAC5D43C,EAASv0C,EAASJ,eAAiB4qC,EAC5BA,EA5CIgK,CAAsBx0C,EAAU+zC,EAAKO,EAAmB,IAAI73C,GAAsBs3C,EAAIjgD,KAAM6I,IACvG,OAAO,IAAI83C,GAASjK,EAAMuJ,GA0D5B,IAAIU,GAAwB,WAE1B,SAASA,EAASC,EAElBX,IACE,OAAgBnhD,KAAM6hD,GAEtB7hD,KAAK8hD,cAAgBA,EACrB9hD,KAAKmhD,IAAMA,EAGXnhD,KAAW,KAAI,WAGfA,KAAK+hD,kBAAmB,EA0C1B,OAvCA,OAAaF,EAAU,CAAC,CACtB9+C,IAAK,QACLqC,IAAK,WAMH,OALKpF,KAAK+hD,mBACRpK,GAAU33C,KAAK8hD,cAAe9hD,KAAKmhD,IAAIxpC,QAAQkgC,MAAO73C,KAAKmhD,IAAIxpC,QAAsC,8BACrG3X,KAAK+hD,kBAAmB,GAGnB/hD,KAAK8hD,gBAEb,CACD/+C,IAAK,QACLqC,IAAK,WAKH,OAJKpF,KAAKgiD,gBACRhiD,KAAKgiD,cAAgB,IAAInC,GAAc7/C,KAAK2/C,MAAOv+B,OAG9CphB,KAAKgiD,gBAEb,CACDj/C,IAAK,UACLpB,MAAO,WAxFX,IAA+Bi2C,EAAMqK,EAC/BN,EA8FA,OAN2B,OAAvB3hD,KAAKgiD,gBAzFgBpK,EA0FD53C,KAAK2/C,MA1FEsC,EA0FKjiD,KAAKmhD,IAAIjgD,MAzF7CygD,EAAWX,GAAMiB,KAEJN,EAAS/J,EAAK70C,OAAS60C,GACtC9xC,EAAM,YAAYF,OAAOq8C,EAAS,KAAKr8C,OAAOgyC,EAAK98B,UAAW,gCAGhE8/B,GAAchD,UACP+J,EAAS/J,EAAK70C,KAmFf/C,KAAK8hD,cAAgB,KACrB9hD,KAAKgiD,cAAgB,MAGhBx3C,QAAQC,YAEhB,CACD1H,IAAK,mBACLpB,MAAO,SAA0BugD,GACJ,OAAvBliD,KAAKgiD,eACPl8C,EAAM,eAAiBo8C,EAAU,+BAKhCL,EAxDmB,GAwE5B,SAASM,KACP,IAAIhB,EAAMjhD,UAAUoB,OAAS,QAAsBmD,IAAjBvE,UAAU,GAAmBA,UAAU,IAAK,UAC1E2V,EAAM3V,UAAUoB,OAAS,EAAIpB,UAAU,QAAKuE,EAChD,OAAO,QAAa08C,EAAK,YAAYj3C,aAAa,CAChDk4C,WAAYvsC,IA4ThBiO,GAAqBtkB,UAAU6iD,aAAe,SAAUjjC,EAAYC,GAClErf,KAAKwmB,YAAY,IAAK,CACpBK,EAAGzH,GACFC,IAILyE,GAAqBtkB,UAAU8iD,KAAO,SAAUp8C,EAAMq8C,GACpDviD,KAAKwmB,YAAY,OAAQ,CACvBnR,EAAGnP,GACFq8C,IASL,IA5N0BC,IA9nhB1B,SAAuB//C,GACrBC,EAAcD,EA8nhBdggD,CAAc,OAEd,QAAmB,IAAI,KAAU,YAAY,SAAUC,EAAWC,GAChE,IAAI9sC,EAAM8sC,EAAMC,mBAIhB,OAAO1B,GAHGwB,EAAUG,YAAY,OAAO34C,eACpBw4C,EAAUG,YAAY,iBAClBH,EAAUG,YAAY,sBAC0BhtC,KACtE,UAEDitC,sBAAqB,KAEvB,QAAgB5hD,EAAMuB,EAAS+/C,KAE/B,QAAgBthD,EAAMuB,EAAS","sources":["webpack://oliver-temple/./node_modules/@firebase/database/dist/index.esm2017.js"],"sourcesContent":["import _slicedToArray from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _asyncToGenerator from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport _assertThisInitialized from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\";\nimport _inherits from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/inherits.js\";\nimport _possibleConstructorReturn from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\";\nimport _getPrototypeOf from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\";\nimport _toConsumableArray from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _classCallCheck from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport _regeneratorRuntime from \"/opt/buildhome/repo/node_modules/@babel/runtime/regenerator/index.js\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { getApp, _getProvider, SDK_VERSION as SDK_VERSION$1, _registerComponent, registerVersion } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { stringify, jsonEval, contains, assert, base64, stringToByteArray, Sha1, isNodeSdk, deepCopy, base64Encode, isMobileCordova, stringLength, Deferred, safeGet, isAdmin, isValidFormat, isEmpty, isReactNative, assertionError, map, querystring, errorPrefix, getModularInstance, createMockUserToken } from '@firebase/util';\nimport { Logger, LogLevel } from '@firebase/logger';\nvar name = \"@firebase/database\";\nvar version = \"0.12.5\";\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/** The semver (www.semver.org) version of the SDK. */\n\nvar SDK_VERSION = '';\n/**\r\n * SDK_VERSION should be set before any database instance is created\r\n * @internal\r\n */\n\nfunction setSDKVersion(version) {\n SDK_VERSION = version;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Wraps a DOM Storage object and:\r\n * - automatically encode objects as JSON strings before storing them to allow us to store arbitrary types.\r\n * - prefixes names with \"firebase:\" to avoid collisions with app data.\r\n *\r\n * We automatically (see storage.js) create two such wrappers, one for sessionStorage,\r\n * and one for localStorage.\r\n *\r\n */\n\n\nvar DOMStorageWrapper = /*#__PURE__*/function () {\n /**\r\n * @param domStorage_ - The underlying storage object (e.g. localStorage or sessionStorage)\r\n */\n function DOMStorageWrapper(domStorage_) {\n _classCallCheck(this, DOMStorageWrapper);\n\n this.domStorage_ = domStorage_; // Use a prefix to avoid collisions with other stuff saved by the app.\n\n this.prefix_ = 'firebase:';\n }\n /**\r\n * @param key - The key to save the value under\r\n * @param value - The value being stored, or null to remove the key.\r\n */\n\n\n _createClass(DOMStorageWrapper, [{\n key: \"set\",\n value: function set(key, value) {\n if (value == null) {\n this.domStorage_.removeItem(this.prefixedName_(key));\n } else {\n this.domStorage_.setItem(this.prefixedName_(key), stringify(value));\n }\n }\n /**\r\n * @returns The value that was stored under this key, or null\r\n */\n\n }, {\n key: \"get\",\n value: function get(key) {\n var storedVal = this.domStorage_.getItem(this.prefixedName_(key));\n\n if (storedVal == null) {\n return null;\n } else {\n return jsonEval(storedVal);\n }\n }\n }, {\n key: \"remove\",\n value: function remove(key) {\n this.domStorage_.removeItem(this.prefixedName_(key));\n }\n }, {\n key: \"prefixedName_\",\n value: function prefixedName_(name) {\n return this.prefix_ + name;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this.domStorage_.toString();\n }\n }]);\n\n return DOMStorageWrapper;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * An in-memory storage implementation that matches the API of DOMStorageWrapper\r\n * (TODO: create interface for both to implement).\r\n */\n\n\nvar MemoryStorage = /*#__PURE__*/function () {\n function MemoryStorage() {\n _classCallCheck(this, MemoryStorage);\n\n this.cache_ = {};\n this.isInMemoryStorage = true;\n }\n\n _createClass(MemoryStorage, [{\n key: \"set\",\n value: function set(key, value) {\n if (value == null) {\n delete this.cache_[key];\n } else {\n this.cache_[key] = value;\n }\n }\n }, {\n key: \"get\",\n value: function get(key) {\n if (contains(this.cache_, key)) {\n return this.cache_[key];\n }\n\n return null;\n }\n }, {\n key: \"remove\",\n value: function remove(key) {\n delete this.cache_[key];\n }\n }]);\n\n return MemoryStorage;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Helper to create a DOMStorageWrapper or else fall back to MemoryStorage.\r\n * TODO: Once MemoryStorage and DOMStorageWrapper have a shared interface this method annotation should change\r\n * to reflect this type\r\n *\r\n * @param domStorageName - Name of the underlying storage object\r\n * (e.g. 'localStorage' or 'sessionStorage').\r\n * @returns Turning off type information until a common interface is defined.\r\n */\n\n\nvar createStoragefor = function createStoragefor(domStorageName) {\n try {\n // NOTE: just accessing \"localStorage\" or \"window['localStorage']\" may throw a security exception,\n // so it must be inside the try/catch.\n if (typeof window !== 'undefined' && typeof window[domStorageName] !== 'undefined') {\n // Need to test cache. Just because it's here doesn't mean it works\n var domStorage = window[domStorageName];\n domStorage.setItem('firebase:sentinel', 'cache');\n domStorage.removeItem('firebase:sentinel');\n return new DOMStorageWrapper(domStorage);\n }\n } catch (e) {} // Failed to create wrapper. Just return in-memory storage.\n // TODO: log?\n\n\n return new MemoryStorage();\n};\n/** A storage object that lasts across sessions */\n\n\nvar PersistentStorage = createStoragefor('localStorage');\n/** A storage object that only lasts one session */\n\nvar SessionStorage = createStoragefor('sessionStorage');\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar logClient = new Logger('@firebase/database');\n/**\r\n * Returns a locally-unique ID (generated by just incrementing up from 0 each time its called).\r\n */\n\nvar LUIDGenerator = function () {\n var id = 1;\n return function () {\n return id++;\n };\n}();\n/**\r\n * Sha1 hash of the input string\r\n * @param str - The string to hash\r\n * @returns {!string} The resulting hash\r\n */\n\n\nvar sha1 = function sha1(str) {\n var utf8Bytes = stringToByteArray(str);\n var sha1 = new Sha1();\n sha1.update(utf8Bytes);\n var sha1Bytes = sha1.digest();\n return base64.encodeByteArray(sha1Bytes);\n};\n\nvar buildLogMessage_ = function buildLogMessage_() {\n var message = '';\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (Array.isArray(arg) || arg && typeof arg === 'object' && // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof arg.length === 'number') {\n message += buildLogMessage_.apply(null, arg);\n } else if (typeof arg === 'object') {\n message += stringify(arg);\n } else {\n message += arg;\n }\n\n message += ' ';\n }\n\n return message;\n};\n/**\r\n * Use this for all debug messages in Firebase.\r\n */\n\n\nvar logger = null;\n/**\r\n * Flag to check for log availability on first log message\r\n */\n\nvar firstLog_ = true;\n/**\r\n * The implementation of Firebase.enableLogging (defined here to break dependencies)\r\n * @param logger_ - A flag to turn on logging, or a custom logger\r\n * @param persistent - Whether or not to persist logging settings across refreshes\r\n */\n\nvar enableLogging$1 = function enableLogging$1(logger_, persistent) {\n assert(!persistent || logger_ === true || logger_ === false, \"Can't turn on custom loggers persistently.\");\n\n if (logger_ === true) {\n logClient.logLevel = LogLevel.VERBOSE;\n logger = logClient.log.bind(logClient);\n\n if (persistent) {\n SessionStorage.set('logging_enabled', true);\n }\n } else if (typeof logger_ === 'function') {\n logger = logger_;\n } else {\n logger = null;\n SessionStorage.remove('logging_enabled');\n }\n};\n\nvar log = function log() {\n if (firstLog_ === true) {\n firstLog_ = false;\n\n if (logger === null && SessionStorage.get('logging_enabled') === true) {\n enableLogging$1(true);\n }\n }\n\n if (logger) {\n for (var _len = arguments.length, varArgs = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n varArgs[_key2] = arguments[_key2];\n }\n\n var message = buildLogMessage_.apply(null, varArgs);\n logger(message);\n }\n};\n\nvar logWrapper = function logWrapper(prefix) {\n return function () {\n for (var _len2 = arguments.length, varArgs = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n varArgs[_key3] = arguments[_key3];\n }\n\n log.apply(void 0, [prefix].concat(varArgs));\n };\n};\n\nvar error = function error() {\n var message = 'FIREBASE INTERNAL ERROR: ' + buildLogMessage_.apply(void 0, arguments);\n logClient.error(message);\n};\n\nvar fatal = function fatal() {\n var message = \"FIREBASE FATAL ERROR: \".concat(buildLogMessage_.apply(void 0, arguments));\n logClient.error(message);\n throw new Error(message);\n};\n\nvar warn = function warn() {\n var message = 'FIREBASE WARNING: ' + buildLogMessage_.apply(void 0, arguments);\n logClient.warn(message);\n};\n/**\r\n * Logs a warning if the containing page uses https. Called when a call to new Firebase\r\n * does not use https.\r\n */\n\n\nvar warnIfPageIsSecure = function warnIfPageIsSecure() {\n // Be very careful accessing browser globals. Who knows what may or may not exist.\n if (typeof window !== 'undefined' && window.location && window.location.protocol && window.location.protocol.indexOf('https:') !== -1) {\n warn('Insecure Firebase access from a secure page. ' + 'Please use https in calls to new Firebase().');\n }\n};\n/**\r\n * Returns true if data is NaN, or +/- Infinity.\r\n */\n\n\nvar isInvalidJSONNumber = function isInvalidJSONNumber(data) {\n return typeof data === 'number' && (data !== data || // NaN\n data === Number.POSITIVE_INFINITY || data === Number.NEGATIVE_INFINITY);\n};\n\nvar executeWhenDOMReady = function executeWhenDOMReady(fn) {\n if (isNodeSdk() || document.readyState === 'complete') {\n fn();\n } else {\n // Modeled after jQuery. Try DOMContentLoaded and onreadystatechange (which\n // fire before onload), but fall back to onload.\n var called = false;\n\n var wrappedFn = function wrappedFn() {\n if (!document.body) {\n setTimeout(wrappedFn, Math.floor(10));\n return;\n }\n\n if (!called) {\n called = true;\n fn();\n }\n };\n\n if (document.addEventListener) {\n document.addEventListener('DOMContentLoaded', wrappedFn, false); // fallback to onload.\n\n window.addEventListener('load', wrappedFn, false); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } else if (document.attachEvent) {\n // IE.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n document.attachEvent('onreadystatechange', function () {\n if (document.readyState === 'complete') {\n wrappedFn();\n }\n }); // fallback to onload.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n window.attachEvent('onload', wrappedFn); // jQuery has an extra hack for IE that we could employ (based on\n // http://javascript.nwbox.com/IEContentLoaded/) But it looks really old.\n // I'm hoping we don't need it.\n }\n }\n};\n/**\r\n * Minimum key name. Invalid for actual data, used as a marker to sort before any valid names\r\n */\n\n\nvar MIN_NAME = '[MIN_NAME]';\n/**\r\n * Maximum key name. Invalid for actual data, used as a marker to sort above any valid names\r\n */\n\nvar MAX_NAME = '[MAX_NAME]';\n/**\r\n * Compares valid Firebase key names, plus min and max name\r\n */\n\nvar nameCompare = function nameCompare(a, b) {\n if (a === b) {\n return 0;\n } else if (a === MIN_NAME || b === MAX_NAME) {\n return -1;\n } else if (b === MIN_NAME || a === MAX_NAME) {\n return 1;\n } else {\n var aAsInt = tryParseInt(a),\n bAsInt = tryParseInt(b);\n\n if (aAsInt !== null) {\n if (bAsInt !== null) {\n return aAsInt - bAsInt === 0 ? a.length - b.length : aAsInt - bAsInt;\n } else {\n return -1;\n }\n } else if (bAsInt !== null) {\n return 1;\n } else {\n return a < b ? -1 : 1;\n }\n }\n};\n/**\r\n * @returns {!number} comparison result.\r\n */\n\n\nvar stringCompare = function stringCompare(a, b) {\n if (a === b) {\n return 0;\n } else if (a < b) {\n return -1;\n } else {\n return 1;\n }\n};\n\nvar requireKey = function requireKey(key, obj) {\n if (obj && key in obj) {\n return obj[key];\n } else {\n throw new Error('Missing required key (' + key + ') in object: ' + stringify(obj));\n }\n};\n\nvar ObjectToUniqueKey = function ObjectToUniqueKey(obj) {\n if (typeof obj !== 'object' || obj === null) {\n return stringify(obj);\n }\n\n var keys = []; // eslint-disable-next-line guard-for-in\n\n for (var k in obj) {\n keys.push(k);\n } // Export as json, but with the keys sorted.\n\n\n keys.sort();\n var key = '{';\n\n for (var i = 0; i < keys.length; i++) {\n if (i !== 0) {\n key += ',';\n }\n\n key += stringify(keys[i]);\n key += ':';\n key += ObjectToUniqueKey(obj[keys[i]]);\n }\n\n key += '}';\n return key;\n};\n/**\r\n * Splits a string into a number of smaller segments of maximum size\r\n * @param str - The string\r\n * @param segsize - The maximum number of chars in the string.\r\n * @returns The string, split into appropriately-sized chunks\r\n */\n\n\nvar splitStringBySize = function splitStringBySize(str, segsize) {\n var len = str.length;\n\n if (len <= segsize) {\n return [str];\n }\n\n var dataSegs = [];\n\n for (var c = 0; c < len; c += segsize) {\n if (c + segsize > len) {\n dataSegs.push(str.substring(c, len));\n } else {\n dataSegs.push(str.substring(c, c + segsize));\n }\n }\n\n return dataSegs;\n};\n/**\r\n * Apply a function to each (key, value) pair in an object or\r\n * apply a function to each (index, value) pair in an array\r\n * @param obj - The object or array to iterate over\r\n * @param fn - The function to apply\r\n */\n\n\nfunction each(obj, fn) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn(key, obj[key]);\n }\n }\n}\n/**\r\n * Borrowed from http://hg.secondlife.com/llsd/src/tip/js/typedarray.js (MIT License)\r\n * I made one modification at the end and removed the NaN / Infinity\r\n * handling (since it seemed broken [caused an overflow] and we don't need it). See MJL comments.\r\n * @param v - A double\r\n *\r\n */\n\n\nvar doubleToIEEE754String = function doubleToIEEE754String(v) {\n assert(!isInvalidJSONNumber(v), 'Invalid JSON number'); // MJL\n\n var ebits = 11,\n fbits = 52;\n var bias = (1 << ebits - 1) - 1;\n var s, e, f, ln, i; // Compute sign, exponent, fraction\n // Skip NaN / Infinity handling --MJL.\n\n if (v === 0) {\n e = 0;\n f = 0;\n s = 1 / v === -Infinity ? 1 : 0;\n } else {\n s = v < 0;\n v = Math.abs(v);\n\n if (v >= Math.pow(2, 1 - bias)) {\n // Normalized\n ln = Math.min(Math.floor(Math.log(v) / Math.LN2), bias);\n e = ln + bias;\n f = Math.round(v * Math.pow(2, fbits - ln) - Math.pow(2, fbits));\n } else {\n // Denormalized\n e = 0;\n f = Math.round(v / Math.pow(2, 1 - bias - fbits));\n }\n } // Pack sign, exponent, fraction\n\n\n var bits = [];\n\n for (i = fbits; i; i -= 1) {\n bits.push(f % 2 ? 1 : 0);\n f = Math.floor(f / 2);\n }\n\n for (i = ebits; i; i -= 1) {\n bits.push(e % 2 ? 1 : 0);\n e = Math.floor(e / 2);\n }\n\n bits.push(s ? 1 : 0);\n bits.reverse();\n var str = bits.join(''); // Return the data as a hex string. --MJL\n\n var hexByteString = '';\n\n for (i = 0; i < 64; i += 8) {\n var hexByte = parseInt(str.substr(i, 8), 2).toString(16);\n\n if (hexByte.length === 1) {\n hexByte = '0' + hexByte;\n }\n\n hexByteString = hexByteString + hexByte;\n }\n\n return hexByteString.toLowerCase();\n};\n/**\r\n * Used to detect if we're in a Chrome content script (which executes in an\r\n * isolated environment where long-polling doesn't work).\r\n */\n\n\nvar isChromeExtensionContentScript = function isChromeExtensionContentScript() {\n return !!(typeof window === 'object' && window['chrome'] && window['chrome']['extension'] && !/^chrome/.test(window.location.href));\n};\n/**\r\n * Used to detect if we're in a Windows 8 Store app.\r\n */\n\n\nvar isWindowsStoreApp = function isWindowsStoreApp() {\n // Check for the presence of a couple WinRT globals\n return typeof Windows === 'object' && typeof Windows.UI === 'object';\n};\n/**\r\n * Converts a server error code to a Javascript Error\r\n */\n\n\nfunction errorForServerCode(code, query) {\n var reason = 'Unknown Error';\n\n if (code === 'too_big') {\n reason = 'The data requested exceeds the maximum size ' + 'that can be accessed with a single request.';\n } else if (code === 'permission_denied') {\n reason = \"Client doesn't have permission to access the desired data.\";\n } else if (code === 'unavailable') {\n reason = 'The service is unavailable';\n }\n\n var error = new Error(code + ' at ' + query._path.toString() + ': ' + reason); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n error.code = code.toUpperCase();\n return error;\n}\n/**\r\n * Used to test for integer-looking strings\r\n */\n\n\nvar INTEGER_REGEXP_ = new RegExp('^-?(0*)\\\\d{1,10}$');\n/**\r\n * For use in keys, the minimum possible 32-bit integer.\r\n */\n\nvar INTEGER_32_MIN = -2147483648;\n/**\r\n * For use in kyes, the maximum possible 32-bit integer.\r\n */\n\nvar INTEGER_32_MAX = 2147483647;\n/**\r\n * If the string contains a 32-bit integer, return it. Else return null.\r\n */\n\nvar tryParseInt = function tryParseInt(str) {\n if (INTEGER_REGEXP_.test(str)) {\n var intVal = Number(str);\n\n if (intVal >= INTEGER_32_MIN && intVal <= INTEGER_32_MAX) {\n return intVal;\n }\n }\n\n return null;\n};\n/**\r\n * Helper to run some code but catch any exceptions and re-throw them later.\r\n * Useful for preventing user callbacks from breaking internal code.\r\n *\r\n * Re-throwing the exception from a setTimeout is a little evil, but it's very\r\n * convenient (we don't have to try to figure out when is a safe point to\r\n * re-throw it), and the behavior seems reasonable:\r\n *\r\n * * If you aren't pausing on exceptions, you get an error in the console with\r\n * the correct stack trace.\r\n * * If you're pausing on all exceptions, the debugger will pause on your\r\n * exception and then again when we rethrow it.\r\n * * If you're only pausing on uncaught exceptions, the debugger will only pause\r\n * on us re-throwing it.\r\n *\r\n * @param fn - The code to guard.\r\n */\n\n\nvar exceptionGuard = function exceptionGuard(fn) {\n try {\n fn();\n } catch (e) {\n // Re-throw exception when it's safe.\n setTimeout(function () {\n // It used to be that \"throw e\" would result in a good console error with\n // relevant context, but as of Chrome 39, you just get the firebase.js\n // file/line number where we re-throw it, which is useless. So we log\n // e.stack explicitly.\n var stack = e.stack || '';\n warn('Exception was thrown by user callback.', stack);\n throw e;\n }, Math.floor(0));\n }\n};\n/**\r\n * @returns {boolean} true if we think we're currently being crawled.\r\n */\n\n\nvar beingCrawled = function beingCrawled() {\n var userAgent = typeof window === 'object' && window['navigator'] && window['navigator']['userAgent'] || ''; // For now we whitelist the most popular crawlers. We should refine this to be the set of crawlers we\n // believe to support JavaScript/AJAX rendering.\n // NOTE: Google Webmaster Tools doesn't really belong, but their \"This is how a visitor to your website\n // would have seen the page\" is flaky if we don't treat it as a crawler.\n\n return userAgent.search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i) >= 0;\n};\n/**\r\n * Same as setTimeout() except on Node.JS it will /not/ prevent the process from exiting.\r\n *\r\n * It is removed with clearTimeout() as normal.\r\n *\r\n * @param fn - Function to run.\r\n * @param time - Milliseconds to wait before running.\r\n * @returns The setTimeout() return value.\r\n */\n\n\nvar setTimeoutNonBlocking = function setTimeoutNonBlocking(fn, time) {\n var timeout = setTimeout(fn, time); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n if (typeof timeout === 'object' && timeout['unref']) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n timeout['unref']();\n }\n\n return timeout;\n};\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Abstraction around AppCheck's token fetching capabilities.\r\n */\n\n\nvar AppCheckTokenProvider = /*#__PURE__*/function () {\n function AppCheckTokenProvider(appName_, appCheckProvider) {\n var _this = this;\n\n _classCallCheck(this, AppCheckTokenProvider);\n\n this.appName_ = appName_;\n this.appCheckProvider = appCheckProvider;\n this.appCheck = appCheckProvider === null || appCheckProvider === void 0 ? void 0 : appCheckProvider.getImmediate({\n optional: true\n });\n\n if (!this.appCheck) {\n appCheckProvider === null || appCheckProvider === void 0 ? void 0 : appCheckProvider.get().then(function (appCheck) {\n return _this.appCheck = appCheck;\n });\n }\n }\n\n _createClass(AppCheckTokenProvider, [{\n key: \"getToken\",\n value: function getToken(forceRefresh) {\n var _this2 = this;\n\n if (!this.appCheck) {\n return new Promise(function (resolve, reject) {\n // Support delayed initialization of FirebaseAppCheck. This allows our\n // customers to initialize the RTDB SDK before initializing Firebase\n // AppCheck and ensures that all requests are authenticated if a token\n // becomes available before the timoeout below expires.\n setTimeout(function () {\n if (_this2.appCheck) {\n _this2.getToken(forceRefresh).then(resolve, reject);\n } else {\n resolve(null);\n }\n }, 0);\n });\n }\n\n return this.appCheck.getToken(forceRefresh);\n }\n }, {\n key: \"addTokenChangeListener\",\n value: function addTokenChangeListener(listener) {\n var _a;\n\n (_a = this.appCheckProvider) === null || _a === void 0 ? void 0 : _a.get().then(function (appCheck) {\n return appCheck.addTokenListener(listener);\n });\n }\n }, {\n key: \"notifyForInvalidToken\",\n value: function notifyForInvalidToken() {\n warn(\"Provided AppCheck credentials for the app named \\\"\".concat(this.appName_, \"\\\" \") + 'are invalid. This usually indicates your app was not initialized correctly.');\n }\n }]);\n\n return AppCheckTokenProvider;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Abstraction around FirebaseApp's token fetching capabilities.\r\n */\n\n\nvar FirebaseAuthTokenProvider = /*#__PURE__*/function () {\n function FirebaseAuthTokenProvider(appName_, firebaseOptions_, authProvider_) {\n var _this3 = this;\n\n _classCallCheck(this, FirebaseAuthTokenProvider);\n\n this.appName_ = appName_;\n this.firebaseOptions_ = firebaseOptions_;\n this.authProvider_ = authProvider_;\n this.auth_ = null;\n this.auth_ = authProvider_.getImmediate({\n optional: true\n });\n\n if (!this.auth_) {\n authProvider_.onInit(function (auth) {\n return _this3.auth_ = auth;\n });\n }\n }\n\n _createClass(FirebaseAuthTokenProvider, [{\n key: \"getToken\",\n value: function getToken(forceRefresh) {\n var _this4 = this;\n\n if (!this.auth_) {\n return new Promise(function (resolve, reject) {\n // Support delayed initialization of FirebaseAuth. This allows our\n // customers to initialize the RTDB SDK before initializing Firebase\n // Auth and ensures that all requests are authenticated if a token\n // becomes available before the timoeout below expires.\n setTimeout(function () {\n if (_this4.auth_) {\n _this4.getToken(forceRefresh).then(resolve, reject);\n } else {\n resolve(null);\n }\n }, 0);\n });\n }\n\n return this.auth_.getToken(forceRefresh).catch(function (error) {\n // TODO: Need to figure out all the cases this is raised and whether\n // this makes sense.\n if (error && error.code === 'auth/token-not-initialized') {\n log('Got auth/token-not-initialized error. Treating as null token.');\n return null;\n } else {\n return Promise.reject(error);\n }\n });\n }\n }, {\n key: \"addTokenChangeListener\",\n value: function addTokenChangeListener(listener) {\n // TODO: We might want to wrap the listener and call it with no args to\n // avoid a leaky abstraction, but that makes removing the listener harder.\n if (this.auth_) {\n this.auth_.addAuthTokenListener(listener);\n } else {\n this.authProvider_.get().then(function (auth) {\n return auth.addAuthTokenListener(listener);\n });\n }\n }\n }, {\n key: \"removeTokenChangeListener\",\n value: function removeTokenChangeListener(listener) {\n this.authProvider_.get().then(function (auth) {\n return auth.removeAuthTokenListener(listener);\n });\n }\n }, {\n key: \"notifyForInvalidToken\",\n value: function notifyForInvalidToken() {\n var errorMessage = 'Provided authentication credentials for the app named \"' + this.appName_ + '\" are invalid. This usually indicates your app was not ' + 'initialized correctly. ';\n\n if ('credential' in this.firebaseOptions_) {\n errorMessage += 'Make sure the \"credential\" property provided to initializeApp() ' + 'is authorized to access the specified \"databaseURL\" and is from the correct ' + 'project.';\n } else if ('serviceAccount' in this.firebaseOptions_) {\n errorMessage += 'Make sure the \"serviceAccount\" property provided to initializeApp() ' + 'is authorized to access the specified \"databaseURL\" and is from the correct ' + 'project.';\n } else {\n errorMessage += 'Make sure the \"apiKey\" and \"databaseURL\" properties provided to ' + 'initializeApp() match the values provided for your app at ' + 'https://console.firebase.google.com/.';\n }\n\n warn(errorMessage);\n }\n }]);\n\n return FirebaseAuthTokenProvider;\n}();\n/* AuthTokenProvider that supplies a constant token. Used by Admin SDK or mockUserToken with emulators. */\n\n\nvar EmulatorTokenProvider = /*#__PURE__*/function () {\n function EmulatorTokenProvider(accessToken) {\n _classCallCheck(this, EmulatorTokenProvider);\n\n this.accessToken = accessToken;\n }\n\n _createClass(EmulatorTokenProvider, [{\n key: \"getToken\",\n value: function getToken(forceRefresh) {\n return Promise.resolve({\n accessToken: this.accessToken\n });\n }\n }, {\n key: \"addTokenChangeListener\",\n value: function addTokenChangeListener(listener) {\n // Invoke the listener immediately to match the behavior in Firebase Auth\n // (see packages/auth/src/auth.js#L1807)\n listener(this.accessToken);\n }\n }, {\n key: \"removeTokenChangeListener\",\n value: function removeTokenChangeListener(listener) {}\n }, {\n key: \"notifyForInvalidToken\",\n value: function notifyForInvalidToken() {}\n }]);\n\n return EmulatorTokenProvider;\n}();\n/** A string that is treated as an admin access token by the RTDB emulator. Used by Admin SDK. */\n\n\nEmulatorTokenProvider.OWNER = 'owner';\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar PROTOCOL_VERSION = '5';\nvar VERSION_PARAM = 'v';\nvar TRANSPORT_SESSION_PARAM = 's';\nvar REFERER_PARAM = 'r';\nvar FORGE_REF = 'f'; // Matches console.firebase.google.com, firebase-console-*.corp.google.com and\n// firebase.corp.google.com\n\nvar FORGE_DOMAIN_RE = /(console\\.firebase|firebase-console-\\w+\\.corp|firebase\\.corp)\\.google\\.com/;\nvar LAST_SESSION_PARAM = 'ls';\nvar APPLICATION_ID_PARAM = 'p';\nvar APP_CHECK_TOKEN_PARAM = 'ac';\nvar WEBSOCKET = 'websocket';\nvar LONG_POLLING = 'long_polling';\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * A class that holds metadata about a Repo object\r\n */\n\nvar RepoInfo = /*#__PURE__*/function () {\n /**\r\n * @param host - Hostname portion of the url for the repo\r\n * @param secure - Whether or not this repo is accessed over ssl\r\n * @param namespace - The namespace represented by the repo\r\n * @param webSocketOnly - Whether to prefer websockets over all other transports (used by Nest).\r\n * @param nodeAdmin - Whether this instance uses Admin SDK credentials\r\n * @param persistenceKey - Override the default session persistence storage key\r\n */\n function RepoInfo(host, secure, namespace, webSocketOnly) {\n var nodeAdmin = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var persistenceKey = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';\n var includeNamespaceInQueryParams = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n _classCallCheck(this, RepoInfo);\n\n this.secure = secure;\n this.namespace = namespace;\n this.webSocketOnly = webSocketOnly;\n this.nodeAdmin = nodeAdmin;\n this.persistenceKey = persistenceKey;\n this.includeNamespaceInQueryParams = includeNamespaceInQueryParams;\n this._host = host.toLowerCase();\n this._domain = this._host.substr(this._host.indexOf('.') + 1);\n this.internalHost = PersistentStorage.get('host:' + host) || this._host;\n }\n\n _createClass(RepoInfo, [{\n key: \"isCacheableHost\",\n value: function isCacheableHost() {\n return this.internalHost.substr(0, 2) === 's-';\n }\n }, {\n key: \"isCustomHost\",\n value: function isCustomHost() {\n return this._domain !== 'firebaseio.com' && this._domain !== 'firebaseio-demo.com';\n }\n }, {\n key: \"host\",\n get: function get() {\n return this._host;\n },\n set: function set(newHost) {\n if (newHost !== this.internalHost) {\n this.internalHost = newHost;\n\n if (this.isCacheableHost()) {\n PersistentStorage.set('host:' + this._host, this.internalHost);\n }\n }\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var str = this.toURLString();\n\n if (this.persistenceKey) {\n str += '<' + this.persistenceKey + '>';\n }\n\n return str;\n }\n }, {\n key: \"toURLString\",\n value: function toURLString() {\n var protocol = this.secure ? 'https://' : 'http://';\n var query = this.includeNamespaceInQueryParams ? \"?ns=\".concat(this.namespace) : '';\n return \"\".concat(protocol).concat(this.host, \"/\").concat(query);\n }\n }]);\n\n return RepoInfo;\n}();\n\nfunction repoInfoNeedsQueryParam(repoInfo) {\n return repoInfo.host !== repoInfo.internalHost || repoInfo.isCustomHost() || repoInfo.includeNamespaceInQueryParams;\n}\n/**\r\n * Returns the websocket URL for this repo\r\n * @param repoInfo - RepoInfo object\r\n * @param type - of connection\r\n * @param params - list\r\n * @returns The URL for this repo\r\n */\n\n\nfunction repoInfoConnectionURL(repoInfo, type, params) {\n assert(typeof type === 'string', 'typeof type must == string');\n assert(typeof params === 'object', 'typeof params must == object');\n var connURL;\n\n if (type === WEBSOCKET) {\n connURL = (repoInfo.secure ? 'wss://' : 'ws://') + repoInfo.internalHost + '/.ws?';\n } else if (type === LONG_POLLING) {\n connURL = (repoInfo.secure ? 'https://' : 'http://') + repoInfo.internalHost + '/.lp?';\n } else {\n throw new Error('Unknown connection type: ' + type);\n }\n\n if (repoInfoNeedsQueryParam(repoInfo)) {\n params['ns'] = repoInfo.namespace;\n }\n\n var pairs = [];\n each(params, function (key, value) {\n pairs.push(key + '=' + value);\n });\n return connURL + pairs.join('&');\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Tracks a collection of stats.\r\n */\n\n\nvar StatsCollection = /*#__PURE__*/function () {\n function StatsCollection() {\n _classCallCheck(this, StatsCollection);\n\n this.counters_ = {};\n }\n\n _createClass(StatsCollection, [{\n key: \"incrementCounter\",\n value: function incrementCounter(name) {\n var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n if (!contains(this.counters_, name)) {\n this.counters_[name] = 0;\n }\n\n this.counters_[name] += amount;\n }\n }, {\n key: \"get\",\n value: function get() {\n return deepCopy(this.counters_);\n }\n }]);\n\n return StatsCollection;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar collections = {};\nvar reporters = {};\n\nfunction statsManagerGetCollection(repoInfo) {\n var hashString = repoInfo.toString();\n\n if (!collections[hashString]) {\n collections[hashString] = new StatsCollection();\n }\n\n return collections[hashString];\n}\n\nfunction statsManagerGetOrCreateReporter(repoInfo, creatorFunction) {\n var hashString = repoInfo.toString();\n\n if (!reporters[hashString]) {\n reporters[hashString] = creatorFunction();\n }\n\n return reporters[hashString];\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * This class ensures the packets from the server arrive in order\r\n * This class takes data from the server and ensures it gets passed into the callbacks in order.\r\n */\n\n\nvar PacketReceiver = /*#__PURE__*/function () {\n /**\r\n * @param onMessage_\r\n */\n function PacketReceiver(onMessage_) {\n _classCallCheck(this, PacketReceiver);\n\n this.onMessage_ = onMessage_;\n this.pendingResponses = [];\n this.currentResponseNum = 0;\n this.closeAfterResponse = -1;\n this.onClose = null;\n }\n\n _createClass(PacketReceiver, [{\n key: \"closeAfter\",\n value: function closeAfter(responseNum, callback) {\n this.closeAfterResponse = responseNum;\n this.onClose = callback;\n\n if (this.closeAfterResponse < this.currentResponseNum) {\n this.onClose();\n this.onClose = null;\n }\n }\n /**\r\n * Each message from the server comes with a response number, and an array of data. The responseNumber\r\n * allows us to ensure that we process them in the right order, since we can't be guaranteed that all\r\n * browsers will respond in the same order as the requests we sent\r\n */\n\n }, {\n key: \"handleResponse\",\n value: function handleResponse(requestNum, data) {\n var _this5 = this;\n\n this.pendingResponses[requestNum] = data;\n\n var _loop = function _loop() {\n var toProcess = _this5.pendingResponses[_this5.currentResponseNum];\n delete _this5.pendingResponses[_this5.currentResponseNum];\n\n var _loop2 = function _loop2(i) {\n if (toProcess[i]) {\n exceptionGuard(function () {\n _this5.onMessage_(toProcess[i]);\n });\n }\n };\n\n for (var i = 0; i < toProcess.length; ++i) {\n _loop2(i);\n }\n\n if (_this5.currentResponseNum === _this5.closeAfterResponse) {\n if (_this5.onClose) {\n _this5.onClose();\n\n _this5.onClose = null;\n }\n\n return \"break\";\n }\n\n _this5.currentResponseNum++;\n };\n\n while (this.pendingResponses[this.currentResponseNum]) {\n var _ret = _loop();\n\n if (_ret === \"break\") break;\n }\n }\n }]);\n\n return PacketReceiver;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n// URL query parameters associated with longpolling\n\n\nvar FIREBASE_LONGPOLL_START_PARAM = 'start';\nvar FIREBASE_LONGPOLL_CLOSE_COMMAND = 'close';\nvar FIREBASE_LONGPOLL_COMMAND_CB_NAME = 'pLPCommand';\nvar FIREBASE_LONGPOLL_DATA_CB_NAME = 'pRTLPCB';\nvar FIREBASE_LONGPOLL_ID_PARAM = 'id';\nvar FIREBASE_LONGPOLL_PW_PARAM = 'pw';\nvar FIREBASE_LONGPOLL_SERIAL_PARAM = 'ser';\nvar FIREBASE_LONGPOLL_CALLBACK_ID_PARAM = 'cb';\nvar FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM = 'seg';\nvar FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET = 'ts';\nvar FIREBASE_LONGPOLL_DATA_PARAM = 'd';\nvar FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM = 'dframe'; //Data size constants.\n//TODO: Perf: the maximum length actually differs from browser to browser.\n// We should check what browser we're on and set accordingly.\n\nvar MAX_URL_DATA_SIZE = 1870;\nvar SEG_HEADER_SIZE = 30; //ie: &seg=8299234&ts=982389123&d=\n\nvar MAX_PAYLOAD_SIZE = MAX_URL_DATA_SIZE - SEG_HEADER_SIZE;\n/**\r\n * Keepalive period\r\n * send a fresh request at minimum every 25 seconds. Opera has a maximum request\r\n * length of 30 seconds that we can't exceed.\r\n */\n\nvar KEEPALIVE_REQUEST_INTERVAL = 25000;\n/**\r\n * How long to wait before aborting a long-polling connection attempt.\r\n */\n\nvar LP_CONNECT_TIMEOUT = 30000;\n/**\r\n * This class manages a single long-polling connection.\r\n */\n\nvar BrowserPollConnection = /*#__PURE__*/function () {\n /**\r\n * @param connId An identifier for this connection, used for logging\r\n * @param repoInfo The info for the endpoint to send data to.\r\n * @param applicationId The Firebase App ID for this project.\r\n * @param appCheckToken The AppCheck token for this client.\r\n * @param authToken The AuthToken to use for this connection.\r\n * @param transportSessionId Optional transportSessionid if we are\r\n * reconnecting for an existing transport session\r\n * @param lastSessionId Optional lastSessionId if the PersistentConnection has\r\n * already created a connection previously\r\n */\n function BrowserPollConnection(connId, repoInfo, applicationId, appCheckToken, authToken, transportSessionId, lastSessionId) {\n var _this6 = this;\n\n _classCallCheck(this, BrowserPollConnection);\n\n this.connId = connId;\n this.repoInfo = repoInfo;\n this.applicationId = applicationId;\n this.appCheckToken = appCheckToken;\n this.authToken = authToken;\n this.transportSessionId = transportSessionId;\n this.lastSessionId = lastSessionId;\n this.bytesSent = 0;\n this.bytesReceived = 0;\n this.everConnected_ = false;\n this.log_ = logWrapper(connId);\n this.stats_ = statsManagerGetCollection(repoInfo);\n\n this.urlFn = function (params) {\n // Always add the token if we have one.\n if (_this6.appCheckToken) {\n params[APP_CHECK_TOKEN_PARAM] = _this6.appCheckToken;\n }\n\n return repoInfoConnectionURL(repoInfo, LONG_POLLING, params);\n };\n }\n /**\r\n * @param onMessage - Callback when messages arrive\r\n * @param onDisconnect - Callback with connection lost.\r\n */\n\n\n _createClass(BrowserPollConnection, [{\n key: \"open\",\n value: function open(onMessage, onDisconnect) {\n var _this7 = this;\n\n this.curSegmentNum = 0;\n this.onDisconnect_ = onDisconnect;\n this.myPacketOrderer = new PacketReceiver(onMessage);\n this.isClosed_ = false;\n this.connectTimeoutTimer_ = setTimeout(function () {\n _this7.log_('Timed out trying to connect.'); // Make sure we clear the host cache\n\n\n _this7.onClosed_();\n\n _this7.connectTimeoutTimer_ = null; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }, Math.floor(LP_CONNECT_TIMEOUT)); // Ensure we delay the creation of the iframe until the DOM is loaded.\n\n executeWhenDOMReady(function () {\n if (_this7.isClosed_) {\n return;\n } //Set up a callback that gets triggered once a connection is set up.\n\n\n _this7.scriptTagHolder = new FirebaseIFrameScriptHolder(function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var command = args[0],\n arg1 = args[1],\n arg2 = args[2],\n arg3 = args[3],\n arg4 = args[4];\n\n _this7.incrementIncomingBytes_(args);\n\n if (!_this7.scriptTagHolder) {\n return; // we closed the connection.\n }\n\n if (_this7.connectTimeoutTimer_) {\n clearTimeout(_this7.connectTimeoutTimer_);\n _this7.connectTimeoutTimer_ = null;\n }\n\n _this7.everConnected_ = true;\n\n if (command === FIREBASE_LONGPOLL_START_PARAM) {\n _this7.id = arg1;\n _this7.password = arg2;\n } else if (command === FIREBASE_LONGPOLL_CLOSE_COMMAND) {\n // Don't clear the host cache. We got a response from the server, so we know it's reachable\n if (arg1) {\n // We aren't expecting any more data (other than what the server's already in the process of sending us\n // through our already open polls), so don't send any more.\n _this7.scriptTagHolder.sendNewPolls = false; // arg1 in this case is the last response number sent by the server. We should try to receive\n // all of the responses up to this one before closing\n\n _this7.myPacketOrderer.closeAfter(arg1, function () {\n _this7.onClosed_();\n });\n } else {\n _this7.onClosed_();\n }\n } else {\n throw new Error('Unrecognized command received: ' + command);\n }\n }, function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key5 = 0; _key5 < _len4; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var pN = args[0],\n data = args[1];\n\n _this7.incrementIncomingBytes_(args);\n\n _this7.myPacketOrderer.handleResponse(pN, data);\n }, function () {\n _this7.onClosed_();\n }, _this7.urlFn); //Send the initial request to connect. The serial number is simply to keep the browser from pulling previous results\n //from cache.\n\n var urlParams = {};\n urlParams[FIREBASE_LONGPOLL_START_PARAM] = 't';\n urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = Math.floor(Math.random() * 100000000);\n\n if (_this7.scriptTagHolder.uniqueCallbackIdentifier) {\n urlParams[FIREBASE_LONGPOLL_CALLBACK_ID_PARAM] = _this7.scriptTagHolder.uniqueCallbackIdentifier;\n }\n\n urlParams[VERSION_PARAM] = PROTOCOL_VERSION;\n\n if (_this7.transportSessionId) {\n urlParams[TRANSPORT_SESSION_PARAM] = _this7.transportSessionId;\n }\n\n if (_this7.lastSessionId) {\n urlParams[LAST_SESSION_PARAM] = _this7.lastSessionId;\n }\n\n if (_this7.applicationId) {\n urlParams[APPLICATION_ID_PARAM] = _this7.applicationId;\n }\n\n if (_this7.appCheckToken) {\n urlParams[APP_CHECK_TOKEN_PARAM] = _this7.appCheckToken;\n }\n\n if (typeof location !== 'undefined' && location.hostname && FORGE_DOMAIN_RE.test(location.hostname)) {\n urlParams[REFERER_PARAM] = FORGE_REF;\n }\n\n var connectURL = _this7.urlFn(urlParams);\n\n _this7.log_('Connecting via long-poll to ' + connectURL);\n\n _this7.scriptTagHolder.addTag(connectURL, function () {\n /* do nothing */\n });\n });\n }\n /**\r\n * Call this when a handshake has completed successfully and we want to consider the connection established\r\n */\n\n }, {\n key: \"start\",\n value: function start() {\n this.scriptTagHolder.startLongPoll(this.id, this.password);\n this.addDisconnectPingFrame(this.id, this.password);\n }\n /**\r\n * Forces long polling to be considered as a potential transport\r\n */\n\n }, {\n key: \"markConnectionHealthy\",\n value:\n /**\r\n * No-op for polling\r\n */\n function markConnectionHealthy() {}\n /**\r\n * Stops polling and cleans up the iframe\r\n */\n\n }, {\n key: \"shutdown_\",\n value: function shutdown_() {\n this.isClosed_ = true;\n\n if (this.scriptTagHolder) {\n this.scriptTagHolder.close();\n this.scriptTagHolder = null;\n } //remove the disconnect frame, which will trigger an XHR call to the server to tell it we're leaving.\n\n\n if (this.myDisconnFrame) {\n document.body.removeChild(this.myDisconnFrame);\n this.myDisconnFrame = null;\n }\n\n if (this.connectTimeoutTimer_) {\n clearTimeout(this.connectTimeoutTimer_);\n this.connectTimeoutTimer_ = null;\n }\n }\n /**\r\n * Triggered when this transport is closed\r\n */\n\n }, {\n key: \"onClosed_\",\n value: function onClosed_() {\n if (!this.isClosed_) {\n this.log_('Longpoll is closing itself');\n this.shutdown_();\n\n if (this.onDisconnect_) {\n this.onDisconnect_(this.everConnected_);\n this.onDisconnect_ = null;\n }\n }\n }\n /**\r\n * External-facing close handler. RealTime has requested we shut down. Kill our connection and tell the server\r\n * that we've left.\r\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (!this.isClosed_) {\n this.log_('Longpoll is being closed.');\n this.shutdown_();\n }\n }\n /**\r\n * Send the JSON object down to the server. It will need to be stringified, base64 encoded, and then\r\n * broken into chunks (since URLs have a small maximum length).\r\n * @param data - The JSON data to transmit.\r\n */\n\n }, {\n key: \"send\",\n value: function send(data) {\n var dataStr = stringify(data);\n this.bytesSent += dataStr.length;\n this.stats_.incrementCounter('bytes_sent', dataStr.length); //first, lets get the base64-encoded data\n\n var base64data = base64Encode(dataStr); //We can only fit a certain amount in each URL, so we need to split this request\n //up into multiple pieces if it doesn't fit in one request.\n\n var dataSegs = splitStringBySize(base64data, MAX_PAYLOAD_SIZE); //Enqueue each segment for transmission. We assign each chunk a sequential ID and a total number\n //of segments so that we can reassemble the packet on the server.\n\n for (var i = 0; i < dataSegs.length; i++) {\n this.scriptTagHolder.enqueueSegment(this.curSegmentNum, dataSegs.length, dataSegs[i]);\n this.curSegmentNum++;\n }\n }\n /**\r\n * This is how we notify the server that we're leaving.\r\n * We aren't able to send requests with DHTML on a window close event, but we can\r\n * trigger XHR requests in some browsers (everything but Opera basically).\r\n */\n\n }, {\n key: \"addDisconnectPingFrame\",\n value: function addDisconnectPingFrame(id, pw) {\n if (isNodeSdk()) {\n return;\n }\n\n this.myDisconnFrame = document.createElement('iframe');\n var urlParams = {};\n urlParams[FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM] = 't';\n urlParams[FIREBASE_LONGPOLL_ID_PARAM] = id;\n urlParams[FIREBASE_LONGPOLL_PW_PARAM] = pw;\n this.myDisconnFrame.src = this.urlFn(urlParams);\n this.myDisconnFrame.style.display = 'none';\n document.body.appendChild(this.myDisconnFrame);\n }\n /**\r\n * Used to track the bytes received by this client\r\n */\n\n }, {\n key: \"incrementIncomingBytes_\",\n value: function incrementIncomingBytes_(args) {\n // TODO: This is an annoying perf hit just to track the number of incoming bytes. Maybe it should be opt-in.\n var bytesReceived = stringify(args).length;\n this.bytesReceived += bytesReceived;\n this.stats_.incrementCounter('bytes_received', bytesReceived);\n }\n }], [{\n key: \"forceAllow\",\n value: function forceAllow() {\n BrowserPollConnection.forceAllow_ = true;\n }\n /**\r\n * Forces longpolling to not be considered as a potential transport\r\n */\n\n }, {\n key: \"forceDisallow\",\n value: function forceDisallow() {\n BrowserPollConnection.forceDisallow_ = true;\n } // Static method, use string literal so it can be accessed in a generic way\n\n }, {\n key: \"isAvailable\",\n value: function isAvailable() {\n if (isNodeSdk()) {\n return false;\n } else if (BrowserPollConnection.forceAllow_) {\n return true;\n } else {\n // NOTE: In React-Native there's normally no 'document', but if you debug a React-Native app in\n // the Chrome debugger, 'document' is defined, but document.createElement is null (2015/06/08).\n return !BrowserPollConnection.forceDisallow_ && typeof document !== 'undefined' && document.createElement != null && !isChromeExtensionContentScript() && !isWindowsStoreApp();\n }\n }\n }]);\n\n return BrowserPollConnection;\n}();\n/*********************************************************************************************\r\n * A wrapper around an iframe that is used as a long-polling script holder.\r\n *********************************************************************************************/\n\n\nvar FirebaseIFrameScriptHolder = /*#__PURE__*/function () {\n /**\r\n * @param commandCB - The callback to be called when control commands are recevied from the server.\r\n * @param onMessageCB - The callback to be triggered when responses arrive from the server.\r\n * @param onDisconnect - The callback to be triggered when this tag holder is closed\r\n * @param urlFn - A function that provides the URL of the endpoint to send data to.\r\n */\n function FirebaseIFrameScriptHolder(commandCB, onMessageCB, onDisconnect, urlFn) {\n _classCallCheck(this, FirebaseIFrameScriptHolder);\n\n this.onDisconnect = onDisconnect;\n this.urlFn = urlFn; //We maintain a count of all of the outstanding requests, because if we have too many active at once it can cause\n //problems in some browsers.\n\n this.outstandingRequests = new Set(); //A queue of the pending segments waiting for transmission to the server.\n\n this.pendingSegs = []; //A serial number. We use this for two things:\n // 1) A way to ensure the browser doesn't cache responses to polls\n // 2) A way to make the server aware when long-polls arrive in a different order than we started them. The\n // server needs to release both polls in this case or it will cause problems in Opera since Opera can only execute\n // JSONP code in the order it was added to the iframe.\n\n this.currentSerial = Math.floor(Math.random() * 100000000); // This gets set to false when we're \"closing down\" the connection (e.g. we're switching transports but there's still\n // incoming data from the server that we're waiting for).\n\n this.sendNewPolls = true;\n\n if (!isNodeSdk()) {\n //Each script holder registers a couple of uniquely named callbacks with the window. These are called from the\n //iframes where we put the long-polling script tags. We have two callbacks:\n // 1) Command Callback - Triggered for control issues, like starting a connection.\n // 2) Message Callback - Triggered when new data arrives.\n this.uniqueCallbackIdentifier = LUIDGenerator();\n window[FIREBASE_LONGPOLL_COMMAND_CB_NAME + this.uniqueCallbackIdentifier] = commandCB;\n window[FIREBASE_LONGPOLL_DATA_CB_NAME + this.uniqueCallbackIdentifier] = onMessageCB; //Create an iframe for us to add script tags to.\n\n this.myIFrame = FirebaseIFrameScriptHolder.createIFrame_(); // Set the iframe's contents.\n\n var script = ''; // if we set a javascript url, it's IE and we need to set the document domain. The javascript url is sufficient\n // for ie9, but ie8 needs to do it again in the document itself.\n\n if (this.myIFrame.src && this.myIFrame.src.substr(0, 'javascript:'.length) === 'javascript:') {\n var currentDomain = document.domain;\n script = '';\n }\n\n var iframeContents = '
' + script + '';\n\n try {\n this.myIFrame.doc.open();\n this.myIFrame.doc.write(iframeContents);\n this.myIFrame.doc.close();\n } catch (e) {\n log('frame writing exception');\n\n if (e.stack) {\n log(e.stack);\n }\n\n log(e);\n }\n } else {\n this.commandCB = commandCB;\n this.onMessageCB = onMessageCB;\n }\n }\n /**\r\n * Each browser has its own funny way to handle iframes. Here we mush them all together into one object that I can\r\n * actually use.\r\n */\n\n\n _createClass(FirebaseIFrameScriptHolder, [{\n key: \"close\",\n value:\n /**\r\n * Cancel all outstanding queries and remove the frame.\r\n */\n function close() {\n var _this8 = this;\n\n //Mark this iframe as dead, so no new requests are sent.\n this.alive = false;\n\n if (this.myIFrame) {\n //We have to actually remove all of the html inside this iframe before removing it from the\n //window, or IE will continue loading and executing the script tags we've already added, which\n //can lead to some errors being thrown. Setting innerHTML seems to be the easiest way to do this.\n this.myIFrame.doc.body.innerHTML = '';\n setTimeout(function () {\n if (_this8.myIFrame !== null) {\n document.body.removeChild(_this8.myIFrame);\n _this8.myIFrame = null;\n }\n }, Math.floor(0));\n } // Protect from being called recursively.\n\n\n var onDisconnect = this.onDisconnect;\n\n if (onDisconnect) {\n this.onDisconnect = null;\n onDisconnect();\n }\n }\n /**\r\n * Actually start the long-polling session by adding the first script tag(s) to the iframe.\r\n * @param id - The ID of this connection\r\n * @param pw - The password for this connection\r\n */\n\n }, {\n key: \"startLongPoll\",\n value: function startLongPoll(id, pw) {\n this.myID = id;\n this.myPW = pw;\n this.alive = true; //send the initial request. If there are requests queued, make sure that we transmit as many as we are currently able to.\n\n while (this.newRequest_()) {}\n }\n /**\r\n * This is called any time someone might want a script tag to be added. It adds a script tag when there aren't\r\n * too many outstanding requests and we are still alive.\r\n *\r\n * If there are outstanding packet segments to send, it sends one. If there aren't, it sends a long-poll anyways if\r\n * needed.\r\n */\n\n }, {\n key: \"newRequest_\",\n value: function newRequest_() {\n // We keep one outstanding request open all the time to receive data, but if we need to send data\n // (pendingSegs.length > 0) then we create a new request to send the data. The server will automatically\n // close the old request.\n if (this.alive && this.sendNewPolls && this.outstandingRequests.size < (this.pendingSegs.length > 0 ? 2 : 1)) {\n //construct our url\n this.currentSerial++;\n var urlParams = {};\n urlParams[FIREBASE_LONGPOLL_ID_PARAM] = this.myID;\n urlParams[FIREBASE_LONGPOLL_PW_PARAM] = this.myPW;\n urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = this.currentSerial;\n var theURL = this.urlFn(urlParams); //Now add as much data as we can.\n\n var curDataString = '';\n var i = 0;\n\n while (this.pendingSegs.length > 0) {\n //first, lets see if the next segment will fit.\n var nextSeg = this.pendingSegs[0];\n\n if (nextSeg.d.length + SEG_HEADER_SIZE + curDataString.length <= MAX_URL_DATA_SIZE) {\n //great, the segment will fit. Lets append it.\n var theSeg = this.pendingSegs.shift();\n curDataString = curDataString + '&' + FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM + i + '=' + theSeg.seg + '&' + FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET + i + '=' + theSeg.ts + '&' + FIREBASE_LONGPOLL_DATA_PARAM + i + '=' + theSeg.d;\n i++;\n } else {\n break;\n }\n }\n\n theURL = theURL + curDataString;\n this.addLongPollTag_(theURL, this.currentSerial);\n return true;\n } else {\n return false;\n }\n }\n /**\r\n * Queue a packet for transmission to the server.\r\n * @param segnum - A sequential id for this packet segment used for reassembly\r\n * @param totalsegs - The total number of segments in this packet\r\n * @param data - The data for this segment.\r\n */\n\n }, {\n key: \"enqueueSegment\",\n value: function enqueueSegment(segnum, totalsegs, data) {\n //add this to the queue of segments to send.\n this.pendingSegs.push({\n seg: segnum,\n ts: totalsegs,\n d: data\n }); //send the data immediately if there isn't already data being transmitted, unless\n //startLongPoll hasn't been called yet.\n\n if (this.alive) {\n this.newRequest_();\n }\n }\n /**\r\n * Add a script tag for a regular long-poll request.\r\n * @param url - The URL of the script tag.\r\n * @param serial - The serial number of the request.\r\n */\n\n }, {\n key: \"addLongPollTag_\",\n value: function addLongPollTag_(url, serial) {\n var _this9 = this;\n\n //remember that we sent this request.\n this.outstandingRequests.add(serial);\n\n var doNewRequest = function doNewRequest() {\n _this9.outstandingRequests.delete(serial);\n\n _this9.newRequest_();\n }; // If this request doesn't return on its own accord (by the server sending us some data), we'll\n // create a new one after the KEEPALIVE interval to make sure we always keep a fresh request open.\n\n\n var keepaliveTimeout = setTimeout(doNewRequest, Math.floor(KEEPALIVE_REQUEST_INTERVAL));\n\n var readyStateCB = function readyStateCB() {\n // Request completed. Cancel the keepalive.\n clearTimeout(keepaliveTimeout); // Trigger a new request so we can continue receiving data.\n\n doNewRequest();\n };\n\n this.addTag(url, readyStateCB);\n }\n /**\r\n * Add an arbitrary script tag to the iframe.\r\n * @param url - The URL for the script tag source.\r\n * @param loadCB - A callback to be triggered once the script has loaded.\r\n */\n\n }, {\n key: \"addTag\",\n value: function addTag(url, loadCB) {\n var _this10 = this;\n\n if (isNodeSdk()) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.doNodeLongPoll(url, loadCB);\n } else {\n setTimeout(function () {\n try {\n // if we're already closed, don't add this poll\n if (!_this10.sendNewPolls) {\n return;\n }\n\n var newScript = _this10.myIFrame.doc.createElement('script');\n\n newScript.type = 'text/javascript';\n newScript.async = true;\n newScript.src = url; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n newScript.onload = newScript.onreadystatechange = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rstate = newScript.readyState;\n\n if (!rstate || rstate === 'loaded' || rstate === 'complete') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newScript.onload = newScript.onreadystatechange = null;\n\n if (newScript.parentNode) {\n newScript.parentNode.removeChild(newScript);\n }\n\n loadCB();\n }\n };\n\n newScript.onerror = function () {\n log('Long-poll script failed to load: ' + url);\n _this10.sendNewPolls = false;\n\n _this10.close();\n };\n\n _this10.myIFrame.doc.body.appendChild(newScript);\n } catch (e) {// TODO: we should make this error visible somehow\n }\n }, Math.floor(1));\n }\n }\n }], [{\n key: \"createIFrame_\",\n value: function createIFrame_() {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none'; // This is necessary in order to initialize the document inside the iframe\n\n if (document.body) {\n document.body.appendChild(iframe);\n\n try {\n // If document.domain has been modified in IE, this will throw an error, and we need to set the\n // domain of the iframe's document manually. We can do this via a javascript: url as the src attribute\n // Also note that we must do this *after* the iframe has been appended to the page. Otherwise it doesn't work.\n var a = iframe.contentWindow.document;\n\n if (!a) {\n // Apologies for the log-spam, I need to do something to keep closure from optimizing out the assignment above.\n log('No IE domain setting required');\n }\n } catch (e) {\n var domain = document.domain;\n iframe.src = \"javascript:void((function(){document.open();document.domain='\" + domain + \"';document.close();})())\";\n }\n } else {\n // LongPollConnection attempts to delay initialization until the document is ready, so hopefully this\n // never gets hit.\n throw 'Document body has not initialized. Wait to initialize Firebase until after the document is ready.';\n } // Get the document of the iframe in a browser-specific way.\n\n\n if (iframe.contentDocument) {\n iframe.doc = iframe.contentDocument; // Firefox, Opera, Safari\n } else if (iframe.contentWindow) {\n iframe.doc = iframe.contentWindow.document; // Internet Explorer\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } else if (iframe.document) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n iframe.doc = iframe.document; //others?\n }\n\n return iframe;\n }\n }]);\n\n return FirebaseIFrameScriptHolder;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar WEBSOCKET_MAX_FRAME_SIZE = 16384;\nvar WEBSOCKET_KEEPALIVE_INTERVAL = 45000;\nvar WebSocketImpl = null;\n\nif (typeof MozWebSocket !== 'undefined') {\n WebSocketImpl = MozWebSocket;\n} else if (typeof WebSocket !== 'undefined') {\n WebSocketImpl = WebSocket;\n}\n/**\r\n * Create a new websocket connection with the given callbacks.\r\n */\n\n\nvar WebSocketConnection = /*#__PURE__*/function () {\n /**\r\n * @param connId identifier for this transport\r\n * @param repoInfo The info for the websocket endpoint.\r\n * @param applicationId The Firebase App ID for this project.\r\n * @param appCheckToken The App Check Token for this client.\r\n * @param authToken The Auth Token for this client.\r\n * @param transportSessionId Optional transportSessionId if this is connecting\r\n * to an existing transport session\r\n * @param lastSessionId Optional lastSessionId if there was a previous\r\n * connection\r\n */\n function WebSocketConnection(connId, repoInfo, applicationId, appCheckToken, authToken, transportSessionId, lastSessionId) {\n _classCallCheck(this, WebSocketConnection);\n\n this.connId = connId;\n this.applicationId = applicationId;\n this.appCheckToken = appCheckToken;\n this.authToken = authToken;\n this.keepaliveTimer = null;\n this.frames = null;\n this.totalFrames = 0;\n this.bytesSent = 0;\n this.bytesReceived = 0;\n this.log_ = logWrapper(this.connId);\n this.stats_ = statsManagerGetCollection(repoInfo);\n this.connURL = WebSocketConnection.connectionURL_(repoInfo, transportSessionId, lastSessionId, appCheckToken);\n this.nodeAdmin = repoInfo.nodeAdmin;\n }\n /**\r\n * @param repoInfo - The info for the websocket endpoint.\r\n * @param transportSessionId - Optional transportSessionId if this is connecting to an existing transport\r\n * session\r\n * @param lastSessionId - Optional lastSessionId if there was a previous connection\r\n * @returns connection url\r\n */\n\n\n _createClass(WebSocketConnection, [{\n key: \"open\",\n value:\n /**\r\n * @param onMessage - Callback when messages arrive\r\n * @param onDisconnect - Callback with connection lost.\r\n */\n function open(onMessage, onDisconnect) {\n var _this11 = this;\n\n this.onDisconnect = onDisconnect;\n this.onMessage = onMessage;\n this.log_('Websocket connecting to ' + this.connURL);\n this.everConnected_ = false; // Assume failure until proven otherwise.\n\n PersistentStorage.set('previous_websocket_failure', true);\n\n try {\n if (isNodeSdk()) {\n var device = this.nodeAdmin ? 'AdminNode' : 'Node'; // UA Format: Firebase/Note: This method must be called before performing any other operation.\r\n *\r\n * @param db - The instance to modify.\r\n * @param host - The emulator host (ex: localhost)\r\n * @param port - The emulator port (ex: 8080)\r\n * @param options.mockUserToken - the mock auth token to use for unit testing Security Rules\r\n */\n\n\nfunction connectDatabaseEmulator(db, host, port) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n db = getModularInstance(db);\n\n db._checkNotDeleted('useEmulator');\n\n if (db._instanceStarted) {\n fatal('Cannot call useEmulator() after instance has already been initialized.');\n }\n\n var repo = db._repoInternal;\n var tokenProvider = undefined;\n\n if (repo.repoInfo_.nodeAdmin) {\n if (options.mockUserToken) {\n fatal('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the \"firebase\" package instead of \"firebase-admin\".');\n }\n\n tokenProvider = new EmulatorTokenProvider(EmulatorTokenProvider.OWNER);\n } else if (options.mockUserToken) {\n var token = typeof options.mockUserToken === 'string' ? options.mockUserToken : createMockUserToken(options.mockUserToken, db.app.options.projectId);\n tokenProvider = new EmulatorTokenProvider(token);\n } // Modify the repo to apply emulator settings\n\n\n repoManagerApplyEmulatorSettings(repo, host, port, tokenProvider);\n}\n/**\r\n * Disconnects from the server (all Database operations will be completed\r\n * offline).\r\n *\r\n * The client automatically maintains a persistent connection to the Database\r\n * server, which will remain active indefinitely and reconnect when\r\n * disconnected. However, the `goOffline()` and `goOnline()` methods may be used\r\n * to control the client connection in cases where a persistent connection is\r\n * undesirable.\r\n *\r\n * While offline, the client will no longer receive data updates from the\r\n * Database. However, all Database operations performed locally will continue to\r\n * immediately fire events, allowing your application to continue behaving\r\n * normally. Additionally, each operation performed locally will automatically\r\n * be queued and retried upon reconnection to the Database server.\r\n *\r\n * To reconnect to the Database and begin receiving remote events, see\r\n * `goOnline()`.\r\n *\r\n * @param db - The instance to disconnect.\r\n */\n\n\nfunction goOffline(db) {\n db = getModularInstance(db);\n\n db._checkNotDeleted('goOffline');\n\n repoInterrupt(db._repo);\n}\n/**\r\n * Reconnects to the server and synchronizes the offline Database state\r\n * with the server state.\r\n *\r\n * This method should be used after disabling the active connection with\r\n * `goOffline()`. Once reconnected, the client will transmit the proper data\r\n * and fire the appropriate events so that your client \"catches up\"\r\n * automatically.\r\n *\r\n * @param db - The instance to reconnect.\r\n */\n\n\nfunction goOnline(db) {\n db = getModularInstance(db);\n\n db._checkNotDeleted('goOnline');\n\n repoResume(db._repo);\n}\n\nfunction enableLogging(logger, persistent) {\n enableLogging$1(logger, persistent);\n}\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction registerDatabase(variant) {\n setSDKVersion(SDK_VERSION$1);\n\n _registerComponent(new Component('database', function (container, _ref3) {\n var url = _ref3.instanceIdentifier;\n var app = container.getProvider('app').getImmediate();\n var authProvider = container.getProvider('auth-internal');\n var appCheckProvider = container.getProvider('app-check-internal');\n return repoManagerDatabaseFromApp(app, authProvider, appCheckProvider, url);\n }, \"PUBLIC\"\n /* PUBLIC */\n ).setMultipleInstances(true));\n\n registerVersion(name, version, variant); // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n\n registerVersion(name, version, 'esm2017');\n}\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar SERVER_TIMESTAMP = {\n '.sv': 'timestamp'\n};\n/**\r\n * Returns a placeholder value for auto-populating the current timestamp (time\r\n * since the Unix epoch, in milliseconds) as determined by the Firebase\r\n * servers.\r\n */\n\nfunction serverTimestamp() {\n return SERVER_TIMESTAMP;\n}\n/**\r\n * Returns a placeholder value that can be used to atomically increment the\r\n * current database value by the provided delta.\r\n *\r\n * @param delta - the amount to modify the current value atomically.\r\n * @returns A placeholder value for modifying data atomically server-side.\r\n */\n\n\nfunction increment(delta) {\n return {\n '.sv': {\n 'increment': delta\n }\n };\n}\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * A type for the resolve value of {@link runTransaction}.\r\n */\n\n\nvar TransactionResult = /*#__PURE__*/function () {\n /** @hideconstructor */\n function TransactionResult(\n /** Whether the transaction was successfully committed. */\n committed,\n /** The resulting data snapshot. */\n snapshot) {\n _classCallCheck(this, TransactionResult);\n\n this.committed = committed;\n this.snapshot = snapshot;\n }\n /** Returns a JSON-serializable representation of this object. */\n\n\n _createClass(TransactionResult, [{\n key: \"toJSON\",\n value: function toJSON() {\n return {\n committed: this.committed,\n snapshot: this.snapshot.toJSON()\n };\n }\n }]);\n\n return TransactionResult;\n}();\n/**\r\n * Atomically modifies the data at this location.\r\n *\r\n * Atomically modify the data at this location. Unlike a normal `set()`, which\r\n * just overwrites the data regardless of its previous value, `runTransaction()` is\r\n * used to modify the existing value to a new value, ensuring there are no\r\n * conflicts with other clients writing to the same location at the same time.\r\n *\r\n * To accomplish this, you pass `runTransaction()` an update function which is\r\n * used to transform the current value into a new value. If another client\r\n * writes to the location before your new value is successfully written, your\r\n * update function will be called again with the new current value, and the\r\n * write will be retried. This will happen repeatedly until your write succeeds\r\n * without conflict or you abort the transaction by not returning a value from\r\n * your update function.\r\n *\r\n * Note: Modifying data with `set()` will cancel any pending transactions at\r\n * that location, so extreme care should be taken if mixing `set()` and\r\n * `runTransaction()` to update the same data.\r\n *\r\n * Note: When using transactions with Security and Firebase Rules in place, be\r\n * aware that a client needs `.read` access in addition to `.write` access in\r\n * order to perform a transaction. This is because the client-side nature of\r\n * transactions requires the client to read the data in order to transactionally\r\n * update it.\r\n *\r\n * @param ref - The location to atomically modify.\r\n * @param transactionUpdate - A developer-supplied function which will be passed\r\n * the current data stored at this location (as a JavaScript object). The\r\n * function should return the new value it would like written (as a JavaScript\r\n * object). If `undefined` is returned (i.e. you return with no arguments) the\r\n * transaction will be aborted and the data at this location will not be\r\n * modified.\r\n * @param options - An options object to configure transactions.\r\n * @returns A `Promise` that can optionally be used instead of the `onComplete`\r\n * callback to handle success and failure.\r\n */\n\n\nfunction runTransaction(ref, // eslint-disable-next-line @typescript-eslint/no-explicit-any\ntransactionUpdate, options) {\n var _a;\n\n ref = getModularInstance(ref);\n validateWritablePath('Reference.transaction', ref._path);\n\n if (ref.key === '.length' || ref.key === '.keys') {\n throw 'Reference.transaction failed: ' + ref.key + ' is a read-only object.';\n }\n\n var applyLocally = (_a = options === null || options === void 0 ? void 0 : options.applyLocally) !== null && _a !== void 0 ? _a : true;\n var deferred = new Deferred();\n\n var promiseComplete = function promiseComplete(error, committed, node) {\n var dataSnapshot = null;\n\n if (error) {\n deferred.reject(error);\n } else {\n dataSnapshot = new DataSnapshot(node, new ReferenceImpl(ref._repo, ref._path), PRIORITY_INDEX);\n deferred.resolve(new TransactionResult(committed, dataSnapshot));\n }\n }; // Add a watch to make sure we get server updates.\n\n\n var unwatcher = onValue(ref, function () {});\n repoStartTransaction(ref._repo, ref._path, transactionUpdate, promiseComplete, unwatcher, applyLocally);\n return deferred.promise;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nPersistentConnection; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nPersistentConnection.prototype.simpleListen = function (pathString, onComplete) {\n this.sendRequest('q', {\n p: pathString\n }, onComplete);\n}; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nPersistentConnection.prototype.echo = function (data, onEcho) {\n this.sendRequest('echo', {\n d: data\n }, onEcho);\n}; // RealTimeConnection properties that we use in tests.\n\n\nConnection;\n/**\r\n * @internal\r\n */\n\nvar hijackHash = function hijackHash(newHash) {\n var oldPut = PersistentConnection.prototype.put;\n\n PersistentConnection.prototype.put = function (pathString, data, onComplete, hash) {\n if (hash !== undefined) {\n hash = newHash();\n }\n\n oldPut.call(this, pathString, data, onComplete, hash);\n };\n\n return function () {\n PersistentConnection.prototype.put = oldPut;\n };\n};\n\nRepoInfo;\n/**\r\n * Forces the RepoManager to create Repos that use ReadonlyRestClient instead of PersistentConnection.\r\n * @internal\r\n */\n\nvar forceRestClient = function forceRestClient(_forceRestClient) {\n repoManagerForceRestClient(_forceRestClient);\n};\n/**\r\n * Firebase Realtime Database\r\n *\r\n * @packageDocumentation\r\n */\n\n\nregisterDatabase();\nexport { DataSnapshot, Database, OnDisconnect, QueryConstraint, TransactionResult, QueryImpl as _QueryImpl, QueryParams as _QueryParams, ReferenceImpl as _ReferenceImpl, forceRestClient as _TEST_ACCESS_forceRestClient, hijackHash as _TEST_ACCESS_hijackHash, repoManagerDatabaseFromApp as _repoManagerDatabaseFromApp, setSDKVersion as _setSDKVersion, validatePathString as _validatePathString, validateWritablePath as _validateWritablePath, _child9 as child, connectDatabaseEmulator, enableLogging, endAt, endBefore, equalTo, get, getDatabase, goOffline, goOnline, increment, limitToFirst, limitToLast, off, onChildAdded, onChildChanged, onChildMoved, onChildRemoved, onDisconnect, onValue, orderByChild, orderByKey, orderByPriority, orderByValue, push, query, ref, refFromURL, remove, runTransaction, serverTimestamp, set, setPriority, setWithPriority, startAfter, startAt, update };"],"names":["_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","prototype","valueOf","call","e","_isNativeReflectConstruct","result","Super","NewTarget","this","constructor","arguments","apply","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","minLen","_arrayLikeToArray","n","Object","toString","slice","name","from","test","_unsupportedIterableToArray","length","i","F","s","done","value","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","version","SDK_VERSION","id","DOMStorageWrapper","domStorage_","prefix_","key","removeItem","prefixedName_","setItem","storedVal","getItem","MemoryStorage","cache_","isInMemoryStorage","createStoragefor","domStorageName","window","domStorage","PersistentStorage","SessionStorage","logClient","LUIDGenerator","sha1","str","utf8Bytes","update","sha1Bytes","digest","buildLogMessage_","message","arg","undefined","logger","firstLog_","enableLogging$1","logger_","persistent","logLevel","log","bind","set","remove","get","_len","varArgs","_key2","logWrapper","prefix","_len2","_key3","concat","error","fatal","Error","warn","isInvalidJSONNumber","data","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","MIN_NAME","MAX_NAME","nameCompare","a","b","aAsInt","tryParseInt","bAsInt","stringCompare","requireKey","obj","ObjectToUniqueKey","keys","k","push","sort","splitStringBySize","segsize","dataSegs","c","substring","each","fn","hasOwnProperty","doubleToIEEE754String","v","ln","bias","Infinity","Math","abs","pow","min","floor","LN2","round","bits","reverse","join","hexByteString","hexByte","parseInt","substr","toLowerCase","INTEGER_REGEXP_","RegExp","INTEGER_32_MIN","INTEGER_32_MAX","intVal","exceptionGuard","setTimeout","stack","setTimeoutNonBlocking","time","timeout","AppCheckTokenProvider","appName_","appCheckProvider","_this","appCheck","getImmediate","optional","then","forceRefresh","_this2","getToken","Promise","resolve","reject","listener","_a","addTokenListener","FirebaseAuthTokenProvider","firebaseOptions_","authProvider_","_this3","auth_","onInit","auth","_this4","catch","code","addAuthTokenListener","removeAuthTokenListener","errorMessage","EmulatorTokenProvider","accessToken","OWNER","PROTOCOL_VERSION","FORGE_DOMAIN_RE","WEBSOCKET","LONG_POLLING","RepoInfo","host","secure","namespace","webSocketOnly","nodeAdmin","persistenceKey","includeNamespaceInQueryParams","_host","_domain","indexOf","internalHost","newHost","isCacheableHost","toURLString","protocol","query","repoInfoConnectionURL","repoInfo","type","params","connURL","isCustomHost","repoInfoNeedsQueryParam","pairs","StatsCollection","counters_","amount","collections","reporters","statsManagerGetCollection","hashString","PacketReceiver","onMessage_","pendingResponses","currentResponseNum","closeAfterResponse","onClose","responseNum","callback","requestNum","_this5","_loop","toProcess","_loop2","FIREBASE_LONGPOLL_START_PARAM","FIREBASE_LONGPOLL_CLOSE_COMMAND","BrowserPollConnection","connId","applicationId","appCheckToken","authToken","transportSessionId","lastSessionId","_this6","bytesSent","bytesReceived","everConnected_","log_","stats_","urlFn","onMessage","onDisconnect","_this7","curSegmentNum","onDisconnect_","myPacketOrderer","isClosed_","connectTimeoutTimer_","onClosed_","document","readyState","called","wrappedFn","body","addEventListener","attachEvent","executeWhenDOMReady","scriptTagHolder","FirebaseIFrameScriptHolder","_len3","args","_key4","command","arg1","arg2","incrementIncomingBytes_","clearTimeout","password","sendNewPolls","closeAfter","_len4","_key5","pN","handleResponse","urlParams","random","uniqueCallbackIdentifier","location","hostname","connectURL","addTag","startLongPoll","addDisconnectPingFrame","close","myDisconnFrame","removeChild","shutdown_","dataStr","incrementCounter","base64data","MAX_URL_DATA_SIZE","enqueueSegment","pw","createElement","src","style","display","appendChild","forceAllow_","forceDisallow_","href","Windows","UI","commandCB","onMessageCB","outstandingRequests","Set","pendingSegs","currentSerial","myIFrame","createIFrame_","script","domain","iframeContents","doc","open","write","_this8","alive","innerHTML","myID","myPW","newRequest_","size","theURL","curDataString","d","theSeg","shift","seg","ts","addLongPollTag_","segnum","totalsegs","url","serial","_this9","add","doNewRequest","delete","keepaliveTimeout","loadCB","_this10","doNodeLongPoll","newScript","async","onload","onreadystatechange","rstate","parentNode","onerror","iframe","contentWindow","contentDocument","WebSocketImpl","MozWebSocket","WebSocket","WebSocketConnection","keepaliveTimer","frames","totalFrames","connectionURL_","_this11","device","options","headers","process","platform","env","proxy","origin","mySock","_options","_error","onopen","onclose","onmessage","m","handleIncomingFrame","fullMess","jsonMess","frameCount","isNaN","handleNewFrameCount_","mess","resetKeepAlive","appendFrame_","remainingData","extractFrameCount_","sendString_","String","clearInterval","_this12","setInterval","send","isOldAndroid","navigator","userAgent","oldAndroidMatch","match","parseFloat","responsesRequiredToBeHealthy","healthyTimeout","TransportManager","initTransports_","isWebSocketsAvailable","isSkipPollConnection","previouslyFailed","transports_","_step","transports","_iterator","ALL_TRANSPORTS","transport","Connection","repoInfo_","applicationId_","appCheckToken_","authToken_","onReady_","onKill_","connectionCount","pendingDataMessages","state_","transportManager_","start_","_this13","conn","initialTransport","conn_","nextTransportId_","primaryResponsesRequired_","onMessageReceived","connReceiver_","onConnectionLost","disconnReceiver_","tx_","rx_","secondaryConn_","isHealthy_","healthyTimeoutMS","healthyTimeout_","markConnectionHealthy","_this14","everConnected","onConnectionLost_","onSecondaryConnectionLost_","_this15","onPrimaryMessageReceived_","onSecondaryMessageReceived_","dataMsg","msg","t","sendData_","controlData","cmd","upgradeIfSecondaryHealthy_","secondaryResponsesRequired_","parsedData","layer","onSecondaryControl_","proceedWithUpgrade_","start","tryCleanupConnection","onControl_","onDataMessage_","onPrimaryResponse_","payload","onHandshake_","onConnectionShutdown_","onReset_","sendPingOnPrimaryIfNecessary_","handshake","timestamp","h","sessionId","onConnectionEstablished_","tryStartUpgrade_","upgradeTransport","startUpgrade_","_this16","closeConnections_","_this17","reason","ServerActions","pathString","onComplete","hash","token","stats","EventEmitter","allowedEvents_","listeners_","eventType","listeners","_len5","_key6","context","validateEventType_","eventData","getInitialEvent","splice","find","et","OnlineMonitor","_EventEmitter","_super","_this18","online_","trigger","Path","pathOrString","pieceNum","pieces_","split","copyTo","pieceNum_","newEmptyPath","pathGetFront","path","pathGetLength","pathPopFront","pathGetBack","pathSlice","begin","pathParent","pieces","pathChild","childPathObj","_i","childPieces","_i2","pathIsEmpty","newRelativePath","outerPath","innerPath","outer","inner","pathEquals","other","j","pathContains","ValidationPath","errorPrefix_","parts_","byteLength_","max","validationPathCheckValid","validationPath","validationPathToErrorString","VisibilityMonitor","_EventEmitter2","_super2","_this19","hidden","visibilityChange","visible_","visible","RECONNECT_MIN_DELAY","PersistentConnection","_ServerActions","_establishConnection_","_super3","onDataUpdate_","onConnectStatus_","onServerInfoUpdate_","authTokenProvider_","appCheckTokenProvider_","authOverride_","_this20","nextPersistentConnectionId_","interruptReasons_","listens","Map","outstandingPuts_","outstandingGets_","outstandingPutCount_","outstandingGetCount_","onDisconnectRequestQueue_","connected_","reconnectDelay_","maxReconnectDelay_","securityDebugCallback_","establishConnectionTimer_","requestCBHash_","requestNumber_","realtime_","forceTokenRefresh_","invalidAuthTokenCount_","invalidAppCheckTokenCount_","firstConnection_","lastConnectionAttemptTime_","lastConnectionEstablishedTime_","getInstance","on","onVisible_","onOnline_","action","onResponse","curReqNum","r","sendRequest","_this21","initConnection_","deferred","request","p","_path","q","_queryObject","outstandingGet","index","sendGet_","promise","currentHashFn","tag","queryId","_queryIdentifier","has","_queryParams","isDefault","loadsAllData","listenSpec","hashFn","sendListen_","_this22","_this23","req","status","warnOnListenWarnings_","removeListen_","tryAuth","reduceReconnectDelayIfAdminCredential_","credential","tryAppCheck","_this24","authMethod","requestData","cred","res","onAuthRevoked_","_this25","onAppCheckRevoked_","sendUnlisten_","queryObj","sendOnDisconnect_","response","putInternal","sendPut_","_this26","queued","_this27","errorReason","reqNum","onDataPush_","onListenRevoked_","onSecurityDebugPacket_","Date","getTime","handleTimestamp_","sendConnectStats_","restoreState_","_this28","establishConnection_","scheduleConnect_","online","cancelSentTransactions_","shouldReconnect_","timeSinceLastConnectAttempt","reconnectDelay","_callee","onDataMessage","onReady","_onDisconnect","canceled","connection","closeFn","sendRequestFn","_yield$Promise$all","_yield$Promise$all2","_this29","_context","prev","onRealtimeDisconnect_","nextConnectionId_","all","sent","interrupt","t0","stop","delta","serverTimeOffset","put","map","listen","normalizedPathString","_map","statusCode","explanation","notifyForInvalidToken","console","replace","_step2","_iterator2","values","_step3","_iterator3","_i3","clientName","reportStats","currentlyOnline","warnings","indexSpec","getIndex","indexPath","__EMPTY_NODE","NamedNode","node","Index","compare","oldNode","newNode","oldWrapped","newWrapped","MIN","KeyIndex","_Index","_super4","indexValue","val","KEY_INDEX","SortedMapIterator","startKey","comparator","isReverse_","resultGenerator_","nodeStack_","cmp","isEmpty","left","right","pop","LLRBNode","color","RED","SortedMap","EMPTY_NODE","count","inorderTraversal","reverseTraversal","min_","maxKey","copy","insert","fixUp_","isRed_","moveRedLeft_","removeMin_","smallest","rotateRight_","moveRedRight_","rotateLeft_","colorFlip_","nl","nr","blackDepth","check_","BLACK","MAX_NODE$2","LLRBEmptyNode","comparator_","root_","rightParent","minKey","resultGenerator","NAME_ONLY_COMPARATOR","NAME_COMPARATOR","__childrenNodeConstructor","nodeFromJSON$1","MAX_NODE$1","priorityHashText","priority","validatePriorityNode","priorityNode","isLeafNode","getPriority","LeafNode","value_","priorityNode_","lazyHash_","newPriorityNode","childName","childNode","newChildNode","updatePriority","updateImmediateChild","front","updateChild","exportFormat","getValue","toHash","compareToLeafNode_","otherLeaf","otherLeafType","thisLeafType","otherIndex","VALUE_TYPE_ORDER","thisIndex","equals","_defaultIndexMap","PriorityIndex","_Index2","_super5","aPriority","bPriority","indexCmp","compareTo","PRIORITY_INDEX","LOG_2","Base12Num","num","current_","mask","bits_","buildChildSet","childList","keyFn","mapSortFn","buildBalancedTree","low","high","namedNode","middle","root","base12","buildPennant","chunkSize","childTree","attachPennant","pennant","isOne","nextBitIsOne","buildFrom12Array","fallbackObject","IndexMap","indexes_","indexSet_","indexKey","sortedMap","indexDefinition","existingChildren","newIndex","sawIndexedValue","iter","getIterator","Wrap","getNext","isDefinedOn","getCompare","indexName","newIndexSet","assign","newIndexes","_this30","indexedChildren","existingSnap","newChildren","ChildrenNode","children_","indexMap_","_child","getImmediateChild","getChild","newIndexMap","removeFromIndexes","addToIndexes","newPriority","newImmediateChild","numKeys","allIntegerKeys","forEachChild","array","childHash","idx","resolveIndex_","_predecessor","getPredecessorKey","getFirstChildName","getLastChildName","wrappedNode","getIteratorFrom","minPost","startPost","peek","getReverseIteratorFrom","maxPost","endPost","MAX_NODE","hasIndex","addIndex","otherChildrenNode","thisIter","otherIter","thisCurrent","otherCurrent","Default","_ChildrenNode","MaxNode","_super6","defineProperties","MAX","setMaxNode","nodeFromJSON","json","jsonLeaf","childData","children","childrenHavePriority","hinzeJsonObj","child","childSet","sortedChildSet","setNodeFromJSON","lastPushTime","lastRandChars","PathIndex","_Index3","_super7","indexPath_","_this31","snap","aChild","extractChild","bChild","valueNode","ValueIndex","_Index4","_super8","VALUE_INDEX","PUSH_CHARS","nextPushId","now","duplicateTime","timeStampChars","charAt","changeValue","snapshotNode","changeChildAdded","changeChildRemoved","changeChildChanged","oldSnap","QueryParams","limitSet_","startSet_","startNameSet_","startAfterSet_","endSet_","endNameSet_","endBeforeSet_","limit_","viewFrom_","indexStartValue_","indexStartName_","indexEndValue_","indexEndName_","index_","queryParamsToRestQueryStringParameters","queryParams","orderBy","qs","isViewFromLeft","queryParamsGetQueryObject","viewFrom","ReadonlyRestClient","_ServerActions2","_super9","_this32","listens_","_this33","listenId","getListenId_","thisListen","queryStringParameters","restRequest_","_this34","_this35","_ref","_ref2","xhr","XMLHttpRequest","responseText","SnapshotHolder","rootNode_","newSnapshotNode","newSparseSnapshotTree","sparseSnapshotTreeRemember","sparseSnapshotTree","clear","childKey","sparseSnapshotTreeForEachTree","prefixPath","func","forEach","tree","sparseSnapshotTreeForEachChild","OperationType","StatsListener","collection_","last_","newStats","stat","StatsReporter","collection","server_","statsToReport_","statsListener_","reportStats_","_this36","reportedStats","haveStatsToReport","newOperationSourceServerTaggedQuery","fromUser","fromServer","tagged","emptyChildrenSingleton","AckUserWrite","affectedTree","revert","ACK_USER_WRITE","source","subtree","Overwrite","OVERWRITE","Merge","MERGE","CacheNode","node_","fullyInitialized_","filtered_","isFullyInitialized","isCompleteForChild","hasChild","eventGeneratorGenerateEventsForType","eventGenerator","events","changes","registrations","eventCache","filteredChanges","filter","change","aWrapped","bWrapped","eventGeneratorCompareChanges","materializedChange","prevName","getPredecessorChildName","eventGeneratorMaterializeSingleChange","registration","respondsTo","createEvent","query_","newViewCache","serverCache","viewCacheUpdateEventSnap","viewCache","eventSnap","complete","filtered","viewCacheUpdateServerSnap","serverSnap","viewCacheGetCompleteEventSnap","getNode","viewCacheGetCompleteServerSnap","EmptyChildren","ImmutableTree","relativePath","predicate","_child3","childExistingPathAndValue","findRootMostMatchingPathAndValue","toSet","newChild","_child5","_child6","newTree","setTree","fold_","pathSoFar","accum","findOnPath_","pathToFollow","nextChild","foreachOnPath_","currentRelativePath","foreach_","childPath","childSnap","CompoundWrite","writeTree_","compoundWriteAddWrite","compoundWrite","rootmost","findRootMostValueAndPath","rootMostPath","_newWriteTree","compoundWriteAddWrites","updates","newWrite","compoundWriteRemoveWrite","empty","_newWriteTree2","compoundWriteHasCompleteWrite","compoundWriteGetCompleteNode","compoundWriteGetCompleteChildren","compoundWriteChildCompoundWrite","shadowingNode","compoundWriteIsEmpty","compoundWriteApply","applySubtreeWrite","writeTree","priorityWrite","writeTreeChildWrites","newWriteTreeRef","writeTreeGetWrite","writeId","allWrites","record","writeTreeRemoveWrite","findIndex","writeToRemove","removedWriteWasVisible","removedWriteOverlapsWithOtherWrites","currentWrite","writeTreeRecordContainsPath_","visibleWrites","writeTreeLayerTree_","writeTreeDefaultFilter_","lastWriteId","writeTreeResetTree_","writeRecord","writes","treeRoot","writePath","_child8","deepNode","writeTreeCalcCompleteEventCache","treePath","completeServerCache","writeIdsToExclude","includeHiddenWrites","merge","subMerge","writeTreeRefCalcCompleteEventCache","writeTreeRef","writeTreeRefCalcCompleteEventChildren","completeServerChildren","completeChildren","topLevelSet","writeTreeCalcCompleteEventChildren","writeTreeRefCalcEventCacheAfterServerOverwrite","existingEventSnap","existingServerSnap","childMerge","writeTreeCalcEventCacheAfterServerOverwrite","writeTreeRefShadowingWrite","writeTreeShadowingWrite","writeTreeRefCalcIndexedSlice","completeServerData","toIterate","withIndex","nodes","writeTreeCalcIndexedSlice","writeTreeRefCalcCompleteChild","existingServerCache","writeTreeCalcCompleteChild","writeTreeRefChild","ChildChangeAccumulator","changeMap","oldChange","oldType","NO_COMPLETE_CHILD_SOURCE","NoCompleteChildSource_","WriteTreeCompleteChildSource","writes_","viewCache_","optCompleteServerCache_","serverNode","viewProcessorApplyOperation","viewProcessor","oldViewCache","operation","writesCache","completeCache","filterServerNode","accumulator","overwrite","viewProcessorApplyUserOverwrite","isFiltered","viewProcessorApplyServerOverwrite","changedChildren","curViewCache","foreach","viewProcessorCacheHasChild","viewProcessorApplyUserMerge","viewProcessorApplyServerMerge","ackUserWrite","newEventCache","oldEventCache","serverChildren","updateFullNode","filtersNodes","viewProcessorRevertUserWrite","ackPath","isCompleteForPath","_changedChildren","mergePath","serverCachePath","viewProcessorAckUserWrite","LISTEN_COMPLETE","oldServerNode","viewProcessorGenerateEventCacheAfterServerEvent","viewProcessorListenComplete","getChanges","isLeafOrEmpty","oldCompleteSnap","viewProcessorMaybeAddValueEvent","changePath","oldEventSnap","completeEventChildren","completeNode","oldEventNode","updatedPriority","newEventChild","childChangePath","eventChildUpdate","changedSnap","newServerCache","oldServerSnap","serverFilter","getIndexedFilter","newServerNode","oldChild","getCompleteChild","viewProcessorApplyMerge","viewMergeTree","childMergeTree","isUnknownDeepMerge","referenceConstructor$1","viewGetCompleteServerCache","view","cache","viewApplyOperation","processor_","isIndexed","viewGenerateEventsForChanges_","eventRegistration","eventRegistrations_","eventRegistrations","moves","indexedValueChanged","eventGeneratorGenerateEventsForChanges","eventGenerator_","referenceConstructor","syncPointApplyOperation","syncPoint","optCompleteServerCache","views","_step4","_iterator5","_view","syncPointGetCompleteServerCache","_step7","_iterator8","SyncTree","listenProvider_","syncPointTree_","pendingWriteTree_","tagToQueryMap","queryToTagMap","syncTreeApplyUserOverwrite","syncTree","newData","writeTreeAddOverwrite","syncTreeApplyOperationToSyncPoints_","syncTreeAckUserWrite","needToReevaluate","syncTreeApplyServerOverwrite","syncTreeCalcCompleteEventCache","findOnPath","syncTreeApplyOperationHelper_","syncPointTree","syncTreeApplyOperationDescendantsHelper_","childOperation","operationForChild","childServerCache","childWritesCache","syncTreeQueryKeyForTag_","syncTreeParseQueryKey_","queryKey","splitIndex","syncTreeApplyTaggedOperation_","queryPath","ExistingValueProvider","DeferredValueProvider","syncTree_","path_","resolveDeferredLeafValue","existingVal","serverValues","resolveScalarDeferredValue","resolveComplexDeferredValue","JSON","stringify","op","existing","unused","existingNode","resolveDeferredValueTree","resolveDeferredValue","resolveDeferredValueSnapshot","rawPri","leafNode","childrenNode","Tree","parent","childCount","treeSubTree","pathObj","treeGetValue","treeSetValue","treeUpdateParents","treeHasChildren","treeForEachChild","treeForEachDescendant","includeSelf","childrenFirst","treeGetPath","childEmpty","treeIsEmpty","childExists","treeUpdateChild","INVALID_KEY_REGEX_","INVALID_PATH_REGEX_","MAX_LEAF_SIZE_","isValidKey","isValidPathString","validateFirebaseDataArg","fnName","validateFirebaseData","errorPrefix","hasDotValue","hasActualChild","last","validationPathPop","validatePathString","argumentName","validateWritablePath","validateUrl","parsedUrl","isValidRootPathString","EventQueue","eventLists_","recursionDepth_","eventQueueQueueEvents","eventQueue","eventDataList","currList","getPath","eventQueueRaiseEventsForChangedPath","changedPath","eventQueueRaiseQueuedEventsMatchingPredicate","eventPath","sentAll","eventList","eventListRaise","eventFn","getEventRunner","INTERRUPT_REASON","Repo","forceRestClient_","appCheckProvider_","dataUpdateCount","eventQueue_","nextWriteId_","interceptServerDataCallback_","transactionQueueTree_","persistentConnection_","repoStart","repo","appId","authOverride","search","isMerge","repoOnDataUpdate","repoOnConnectStatus","connectStatus","repoUpdateInfo","repoOnServerInfoUpdate","creatorFunction","addTokenChangeListener","refreshAuthToken","refreshAppCheckToken","statsReporter_","infoData_","infoSyncTree_","startListening","infoEvents","stopListening","serverSyncTree_","unlisten","repoServerTime","offset","repoGenerateServerValues","taggedChildren","raw","changeTree","fromObject","syncTreeApplyTaggedQueryMerge","taggedSnap","syncTreeApplyTaggedQueryOverwrite","syncTreeApplyServerMerge","affectedPath","repoRerunTransactions","repoLog","resolvedOnDisconnectTree","resolved","repoAbortTransactions","repoRunOnDisconnectEvents","updateSnapshot","repoGetNextWriteId","repoSetWithPriority","newVal","newNodeUnresolved","success","clearEvents","repoCallOnCompleteCallback","repoInterrupt","_len6","_key7","toUpperCase","_error3","repoGetLatestState","excludeSets","repoSendReadyTransactions","repoPruneCompletedTransactionsBelowNode","queue","repoBuildTransactionQueue","allRun","every","transaction","repoSendTransactionQueue","setsToIgnore","txn","currentWriteId","latestState","snapToSend","latestHash","retryCount","currentOutputSnapshotRaw","dataToSend","pathToSend","callbacks","_loop3","_i5","currentOutputSnapshotResolved","unwatcher","_i6","_i7","_i8","abortReason","rootMostTransactionNode","repoGetAncestorTransactionNode","_loop4","abortTransaction","currentNode","currentInputSnapshot","newDataNode","oldWriteId","newNodeResolved","applyLocally","_i9","repoRerunTransactionQueue","transactionNode","transactionQueue","repoAggregateTransactionQueuesForNode","order","nodeQueue","to","treeForEachAncestor","repoAbortTransactionsOnNode","lastSent","_i10","parseRepoInfo","dataURL","parseDatabaseURL","scheme","subdomain","port","colonInd","slashInd","questionMarkInd","pathStringDecoded","piece","decodeURIComponent","decodePath","queryString","results","_step9","_iterator10","segment","kv","decodeQuery","hostWithoutPort","dotInd","QueryImpl","_repo","_orderByCalled","ReferenceImpl","sameRepo","samePath","sameQueryIdentifier","encodeURIComponent","pathToUrlEncodedString","_QueryImpl","_super10","parentPath","ref","db","_checkNotDeleted","_child9","_root","thennablePushRef","pushRef","wrapCallback","syncPointSetReferenceConstructor","syncTreeSetReferenceConstructor","repos","useRestClient","repoManagerDatabaseFromApp","app","authProvider","dbUrl","databaseURL","projectId","isEmulator","dbEmulatorHost","authTokenProvider","appRepos","repoManagerCreateRepo","Database","_repoInternal","_instanceStarted","_rootInternal","appName","apiName","getDatabase","identifier","simpleListen","echo","onEcho","variant","setSDKVersion","container","_ref3","instanceIdentifier","getProvider","setMultipleInstances"],"sourceRoot":""}