polfan-server-js-client 0.2.95 → 0.2.96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/workspace.xml +16 -17
- package/build/index.cjs.js +180 -152
- package/build/index.cjs.js.map +1 -1
- package/build/index.umd.js +1 -1
- package/build/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/state-tracker/MessagesManager.ts +18 -9
package/build/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAqB,YAAID,IAEzBD,EAAkB,YAAIC,GACvB,CATD,CASGK,KAAM,I,mBCRT,IAAIC,EAAsB,CCA1BA,EAAwB,CAACL,EAASM,KACjC,IAAI,IAAIC,KAAOD,EACXD,EAAoBG,EAAEF,EAAYC,KAASF,EAAoBG,EAAER,EAASO,IAC5EE,OAAOC,eAAeV,EAASO,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,MCJ3EF,EAAwB,CAACQ,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFT,EAAyBL,IACH,oBAAXkB,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeV,EAASkB,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeV,EAAS,aAAc,CAAEoB,OAAO,M,ipCCkBhD,IAAMC,EAAW,WAEsD,O,EAFtD,SAAAA,K,4FAAAC,CAAA,KAAAD,GAAAE,EAAA,cACY,IAAIC,KAAkCD,EAAA,kBAClC,IAAIC,IAAkC,G,EAAA,EAAAjB,IAAA,KAAAa,MAI1E,SAAUK,EAAmBC,GAEzB,OADAtB,KAAKuB,WAAWvB,KAAKwB,OAAQH,EAAWC,GACjCtB,IACX,GAAC,CAAAG,IAAA,OAAAa,MAID,SAAYK,EAAmBC,GAE3B,OADAtB,KAAKuB,WAAWvB,KAAKyB,WAAYJ,EAAWC,GACrCtB,IACX,GAAC,CAAAG,IAAA,MAAAa,MAID,SAAWK,EAAmBC,GAAkC,IAAAI,EAAAC,EACtDC,EAAkC,QAA7BF,EAAG1B,KAAKwB,OAAOhB,IAAIa,UAAU,IAAAK,OAAA,EAA1BA,EAA4BG,QAAQP,GAClD,YAAcQ,IAAVF,GAAuBA,EAAQ,GAGT,QAA1BD,EAAA3B,KAAKwB,OAAOhB,IAAIa,UAAU,IAAAM,GAA1BA,EAA4BI,OAAOH,EAAO,GAF/B5B,IAIf,GAAC,CAAAG,IAAA,OAAAa,MAID,SAAYK,EAAmBW,GAI3B,OAHAhC,KAAKiC,aAAajC,KAAKwB,OAAQH,EAAWW,GAC1ChC,KAAKiC,aAAajC,KAAKyB,WAAYJ,EAAWW,GAC9ChC,KAAKyB,WAAU,OAAQJ,GAChBrB,IACX,GAAC,CAAAG,IAAA,aAAAa,MAED,SAAmBkB,EAAkBb,EAAmBC,GAAkC,IAAAa,EAChFC,EAA6B,QAArBD,EAAGD,EAAI1B,IAAIa,UAAU,IAAAc,EAAAA,EAAI,GACvCC,EAASC,KAAKf,GACdY,EAAII,IAAIjB,EAAWe,EACvB,GAAC,CAAAjC,IAAA,eAAAa,MAED,SAAqBkB,EAAkBb,EAAmBW,GAAsB,IAAAO,EAC1D,QAAlBA,EAAAL,EAAI1B,IAAIa,UAAU,IAAAkB,GAAlBA,EAAoBC,QAAQ,SAAAC,GAAQ,OAAIA,EAAST,EAAM,EAC3D,M,yFAAC,CA9CmB,G,2lDCoGjB,IAAeU,EAAkB,SAAAC,GAAA,SAAAD,IAAA,IAAAE,G,4FAAA1B,CAAA,KAAAwB,GAAA,QAAAG,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAEF,OAFE/B,EAAAyB,EAAAO,EAAA,KAAAT,EAAA,GAAAU,OAAAJ,IAAA,mBACgC,IAAI5B,KAAsCD,EAAAyB,EAAA,cAC7E,GAACA,CAAA,Q,qRAAAS,CAAAX,EAAAC,G,EAAAD,E,EAAA,EAAAvC,IAAA,iBAAAa,MAKlC,SAAmCsC,EAAcC,GAC7C,MAAO,CACHD,KAAAA,EAAMC,KAAAA,EAAMC,OAAQxD,KAAKyD,aAAaC,WAE9C,GAAC,CAAAvD,IAAA,mCAAAa,MAED,SACyC2C,GACa,IAAAC,EAAA,KAClD,OAAO,IAAIC,QAAQ,mBAAAC,EAAAhB,UAAAC,OAAIC,EAAI,IAAAC,MAAAa,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJf,EAAIe,GAAAjB,UAAAiB,GAAA,OACtBH,EAAKI,iBAAiB1B,IAAIqB,EAASH,IAAeR,EAAK,EAChE,GAAC,CAAA7C,IAAA,yBAAAa,MAED,SAAiC2C,GAC7B,GAAK3D,KAAKgE,iBAAiBC,IAAIN,EAASH,KAAxC,CAGA,IAAMU,EAA4B,UAAlBP,EAASL,KACzBtD,KAAKgE,iBAAiBxD,IAAImD,EAASH,KAAK,GAAG,CACvCD,KAAMW,EAAU,KAAOP,EAASJ,KAChCY,MAAOD,EAAUP,EAASJ,KAAO,OAErCvD,KAAKgE,iBAAgB,OAAQL,EAASH,IANtC,CAOJ,GAAC,CAAArD,IAAA,0BAAAa,MAED,SAAkC2C,EAAoBQ,GAC7CnE,KAAKgE,iBAAiBC,IAAIN,EAASH,OAGxCxD,KAAKgE,iBAAiBxD,IAAImD,EAASH,KAAK,GAAGW,GAC3CnE,KAAKgE,iBAAgB,OAAQL,EAASH,KAC1C,I,4FAAC,CAtCmC,CAAsDvC,G,otGCzHvF,IAAMmD,EAAiB,WAG1B,SAAAA,IAA6D,IAA1CC,EAAmCvB,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAG,GAAE5B,EAAA,KAAAkD,GAAAjD,EAAA,cAFrB,IAAIC,KAGtCpB,KAAKsC,IAAGgC,MAARtE,KAAIuE,EAAQF,GAChB,CAAC,OAAAG,EAAAJ,EAAA,EAAAjE,IAAA,QAAAK,IAED,WACI,OAAOR,KAAKyE,MAChB,GAAC,CAAAtE,IAAA,SAAAK,IAED,WACI,OAAOR,KAAKyE,OAAOC,IACvB,GAAC,CAAAvE,IAAA,MAAAa,MAED,WAA6C,QAAA6B,EAAAC,UAAAC,OAA/BsB,EAAK,IAAApB,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAALmB,EAAKnB,GAAAJ,UAAAI,GACf,IAAK,IAALyB,EAAA,EAAAF,EAAmBJ,EAAKM,EAAAF,EAAA1B,OAAA4B,IAAE,CAArB,IAAMC,EAAIH,EAAAE,GACX3E,KAAKyE,OAAOnC,IAAIsC,EAAK,GAAIA,EAAK,GAClC,CACJ,GAAC,CAAAzE,IAAA,MAAAa,MAED,SAAW6D,GACP,OAAO7E,KAAKqE,MAAM7D,IAAIqE,EAC1B,GAAC,CAAA1E,IAAA,MAAAa,MAED,SAAW6D,GACP,OAAO7E,KAAKqE,MAAMJ,IAAIY,EAC1B,GAAC,CAAA1E,IAAA,SAAAa,MAED,WAAoC,QAAA8C,EAAAhB,UAAAC,OAAnB+B,EAAG,IAAA7B,MAAAa,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAHe,EAAGf,GAAAjB,UAAAiB,GAChB,IAAK,IAALgB,EAAA,EAAAC,EAAiBF,EAAGC,EAAAC,EAAAjC,OAAAgC,IAAE,CAAjB,IAAMF,EAAEG,EAAAD,GACT/E,KAAKqE,MAAK,OAAQQ,EACtB,CACJ,GAAC,CAAA1E,IAAA,YAAAa,MAED,WACIhB,KAAKqE,MAAMY,OACf,GAAC,CAAA9E,IAAA,SAAAa,MAED,SAAckE,EAAqBC,GAG/B,IAHwG,IAEpGP,EAF6CQ,EAAatC,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAG,KAC3DuC,EAAS,IAAIjB,KAEVQ,EAAO5E,KAAKqE,MAAMiB,UAAUC,OAAOvE,OAAOwE,MAC3CJ,GAASC,EAAOtC,SAAWqC,IAG3BR,EAAK,GAAGM,KAAWC,GACnBE,EAAO/C,IAAIsC,GAGnB,OAAOS,CACX,GAAC,CAAAlF,IAAA,eAAAa,MAED,WACI,IAAMyE,EAAO,IAAIrB,EAEjB,OADAqB,EAAKhB,OAASzE,KAAKyE,OACZgB,CACX,IAAC,CAzDyB,GA4DjBC,EAAuB,WAGhC,SAAAA,EACoBb,GAElB,IADER,EAAUvB,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAG,GAAE5B,EAAA,KAAAwE,GAAAvE,EAAA,2BADC0D,GAAAA,EAGhB7E,KAAKyE,OAAS,IAAIL,EAClBpE,KAAKsC,IAAGgC,MAARtE,KAAIuE,EAAQF,GAChB,CAAC,OAAAG,EAAAkB,EAAA,EAAAvF,IAAA,QAAAK,IAED,WACI,OAAOyC,MAAM0C,KAAK3F,KAAKyE,OAAOJ,MAAMuB,SACxC,GAAC,CAAAzF,IAAA,SAAAK,IAED,WACI,OAAOR,KAAKyE,OAAO1B,MACvB,GAAC,CAAA5C,IAAA,MAAAa,MAED,WAAgC,QAAA6E,EAAAjD,EAAA,KAAAkD,EAAAhD,UAAAC,OAAlBsB,EAAK,IAAApB,MAAA6C,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAL1B,EAAK0B,GAAAjD,UAAAiD,IACfF,EAAA7F,KAAKyE,QAAOnC,IAAGgC,MAAAuB,EAAAtB,EAAKF,EAAMnC,IAAI,SAAA0C,GAAI,MAAI,CAAChC,EAAKoD,MAAMpB,GAAOA,EAAK,IAClE,GAAC,CAAAzE,IAAA,MAAAa,MAED,SAAW6D,GACP,OAAO7E,KAAKyE,OAAOjE,IAAIqE,EAC3B,GAAC,CAAA1E,IAAA,QAAAa,MAED,SAAaY,GACT,OAAO5B,KAAKqE,MAAMzC,EACtB,GAAC,CAAAzB,IAAA,MAAAa,MAED,SAAW6D,GACP,OAAO7E,KAAKyE,OAAOR,IAAIY,EAC3B,GAAC,CAAA1E,IAAA,SAAAa,MAED,WAAmC,IAAAiF,GAC/BA,EAAAjG,KAAKyE,QAAM,OAAOH,MAAA2B,EAAAnD,UACtB,GAAC,CAAA3C,IAAA,YAAAa,MAED,WACIhB,KAAKyE,OAAOyB,WAChB,GAAC,CAAA/F,IAAA,SAAAa,MAED,SAAckE,EAAgBC,GAAoE,IAEhEgB,EAFcf,EAAatC,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAG,KACtDuC,EAAS,IAAIK,EAA2B1F,KAAK6E,IAAIuB,E,goBAAAC,CACnCrG,KAAKqE,OAAK,IAA9B,IAAA+B,EAAAE,MAAAH,EAAAC,EAAAG,KAAAf,MAAgC,KAArBxE,EAAKmF,EAAAnF,MACZ,GAAIoE,GAASC,EAAOtC,SAAWqC,EAC3B,MAEApE,EAAMkE,KAAWC,GACjBE,EAAO/C,IAAItB,EAEnB,CAAC,OAAAwF,GAAAJ,EAAAK,EAAAD,EAAA,SAAAJ,EAAAM,GAAA,CACD,OAAOrB,CACX,GAAC,CAAAlF,IAAA,eAAAa,MAED,WACI,IAAMyE,EAAO,IAAIC,EAA2B1F,KAAK6E,IAEjD,OADAY,EAAKhB,OAASzE,KAAKyE,OACZgB,CACX,GAAC,CAAAtF,IAAA,QAAAa,MAED,SAAgB4D,GACZ,MAA0B,mBAAZ5E,KAAK6E,GAAoB7E,KAAK6E,GAAGD,GAAQA,EAAK5E,KAAK6E,GACrE,IAAC,CAhE+B,GAuEvB8B,EAA2B,SAAAC,GAQpC,SAAAD,IAA6D,IAAAE,EAAAjD,EAA1CS,EAAmCvB,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAG,GAGlC,OAHoC5B,EAAA,KAAAyF,GAC/CxF,EAARyC,EAAAT,EAAA,KAAAwD,GAAQ,sBACR/C,EAAKkD,YAAc,IAAI7F,GACvB4F,EAAAjD,GAAKtB,IAAGgC,MAAAuC,EAAAtC,EAAIF,IAAOT,CACvB,CAAC,OAAAP,EAAAsD,EAAAC,GAAApC,EAAAmC,EAAA,EAAAxG,IAAA,MAAAa,MAED,WAAuC,QAAA+F,EAAAjE,UAAAC,OAAzBsB,EAAK,IAAApB,MAAA8D,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAL3C,EAAK2C,GAAAlE,UAAAkE,GACX3C,EAAMtB,SACNkE,EAAAN,EAAA,aAAAM,CAAa5C,GACbrE,KAAK8G,YAAYI,KAAK,SAAU,CAAEC,SAAU9C,EAAMnC,IAAI,SAAA0C,GAAI,OAAIA,EAAK,EAAE,KAE7E,GAAC,CAAAzE,IAAA,SAAAa,MAED,WAA8B,QAAAoG,EAAAtE,UAAAC,OAAb+B,EAAG,IAAA7B,MAAAmE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAHvC,EAAGuC,GAAAvE,UAAAuE,GACZvC,EAAI/B,SACJkE,EAAAN,EAAA,gBAAAM,CAAgBnC,GAChB9E,KAAK8G,YAAYI,KAAK,SAAU,CAAEI,aAAcxC,IAExD,GAAC,CAAA3E,IAAA,YAAAa,MAED,WACI,GAAIhB,KAAK+C,OAAQ,CACb,IAAM+B,EAAM7B,MAAM0C,KAAK3F,KAAKyE,OAAO8C,QACnCN,EAAAN,EAAA,mBAAAM,CAAA,IACAjH,KAAK8G,YAAYI,KAAK,SAAU,CAAEI,aAAcrE,MAAM0C,KAAKb,IAC/D,CACJ,GAAC,CAAA3E,IAAA,eAAAa,MAED,WACI,IAAMyE,EAAO,IAAIkB,EAGjB,OAFAlB,EAAKqB,YAAc9G,KAAK8G,YACxBrB,EAAKhB,OAASzE,KAAKyE,OACZgB,CACX,GAAC,CAAAtF,IAAA,KAAAa,MAED,SAA8CK,EAAcC,GAExD,OADAtB,KAAK8G,YAAYU,GAAGnG,EAAWC,GACxBtB,IACX,GAAC,CAAAG,IAAA,OAAAa,MAED,SAAgDK,EAAcC,GAE1D,OADAtB,KAAK8G,YAAYW,KAAKpG,EAAWC,GAC1BtB,IACX,GAAC,CAAAG,IAAA,MAAAa,MAED,SAA+CK,EAAcC,GAEzD,OADAtB,KAAK8G,YAAYY,IAAIrG,EAAWC,GACzBtB,IACX,IAAC,CAxDmC,CAI9BoE,GAuDGuD,EAAiC,SAAAC,GAM1C,SAAAD,EACI9C,GAEF,IAAAgD,EAAAC,EADEzD,EAAcvB,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAG,GAIE,OAJA5B,EAAA,KAAAyG,GAETxG,EAAV2G,EAAA3E,EAAA,KAAAwE,EAAA,CAAM9C,IAAI,sBACViD,EAAKhB,YAAc,IAAI7F,GACvB4G,EAAAC,GAAKxF,IAAGgC,MAAAuD,EAAAtD,EAAIF,IAAOyD,CACvB,CAAC,OAAAzE,EAAAsE,EAAAC,GAAApD,EAAAmD,EAAA,EAAAxH,IAAA,MAAAa,MAED,WAA8B,QAAA+G,EAAA,KAAAC,EAAAlF,UAAAC,OAAhBsB,EAAK,IAAApB,MAAA+E,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAL5D,EAAK4D,GAAAnF,UAAAmF,GACX5D,EAAMtB,SACNkE,EAAAU,EAAA,aAAAV,CAAa5C,GACbrE,KAAK8G,YAAYI,KAAK,SAAU,CAAEC,SAAU9C,EAAMnC,IAAI,SAAA0C,GAAI,OAAImD,EAAK/B,MAAMpB,EAAK,KAEtF,GAAC,CAAAzE,IAAA,SAAAa,MAED,WAAgC,QAAAkH,EAAApF,UAAAC,OAAf+B,EAAG,IAAA7B,MAAAiF,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAHrD,EAAGqD,GAAArF,UAAAqF,GACZrD,EAAI/B,SACJkE,EAAAU,EAAA,gBAAAV,CAAgBnC,GAChB9E,KAAK8G,YAAYI,KAAK,SAAU,CAAEI,aAAcxC,IAExD,GAAC,CAAA3E,IAAA,YAAAa,MAED,WAAmB,IAAAoH,EAAA,KACf,GAAIpI,KAAK+C,OAAQ,CACb,IAAM+B,EAAM9E,KAAKqE,MAAMnC,IAAI,SAAA0C,GAAI,OAAIwD,EAAKpC,MAAMpB,EAAK,GACnDqC,EAAAU,EAAA,mBAAAV,CAAA,IACAjH,KAAK8G,YAAYI,KAAK,SAAU,CAAEI,aAAcxC,GACpD,CACJ,GAAC,CAAA3E,IAAA,eAAAa,MAED,WACI,IAAMyE,EAAO,IAAIkC,EAAoD3H,KAAK6E,IAG1E,OAFAY,EAAKqB,YAAc9G,KAAK8G,YACxBrB,EAAKhB,OAASzE,KAAKyE,OACZgB,CACX,GAAC,CAAAtF,IAAA,KAAAa,MAED,SACIK,EACAC,GAGA,OADAtB,KAAK8G,YAAYU,GAAGnG,EAAWC,GACxBtB,IACX,GAAC,CAAAG,IAAA,OAAAa,MAED,SACIK,EACAC,GAGA,OADAtB,KAAK8G,YAAYW,KAAKpG,EAAWC,GAC1BtB,IACX,GAAC,CAAAG,IAAA,MAAAa,MAED,SACIK,EACAC,GAGA,OADAtB,KAAK8G,YAAYY,IAAIrG,EAAWC,GACzBtB,IACX,IAAC,CAlEyC,CAGpC0F,G,6gCCjMH,IAAM2C,EAAY7D,EAIrB,SAAA6D,IAAqB,IAAAzF,EAAA,KAAA1B,EAAA,KAAAmH,GAAAlH,EAAA,uBAAAA,EAAA,uBACjBnB,KAAKsI,QAAU,IAAIzE,QAAc,SAAC0E,GAAO,OAAK3F,EAAK2F,QAAUA,CAAO,EACxE,GAGSC,EAAe,WACwC,OAAAhE,EADxC,SAAAgE,IAAAtH,EAAA,KAAAsH,GAAArH,EAAA,gBACL,IAAIiD,EAAyC,IAAAjE,IAAA,WAAAa,MAEhE,SAAyBsH,EAAqBnI,GAC1CH,KAAKyI,SAASnG,IAAI,CAACnC,EAAKmI,GAC5B,GAAC,CAAAnI,IAAA,qBAAAa,MAED,SAA0B0H,EAAwBvI,GAC9CH,KAAK2I,SAASD,IAAMvI,EACxB,GAAC,CAAAA,IAAA,MAAAa,MAED,SAAoBb,GAChB,OAAOH,KAAKyI,SAASjI,IAAIL,EAC7B,GAAC,CAAAA,IAAA,MAAAa,MAED,SAAWb,GACP,OAAOH,KAAKyI,SAASxE,IAAI9D,EAC7B,GAAC,CAAAA,IAAA,WAAAa,MAED,SAAgBb,GACZ,OAASH,KAAKiE,IAAI9D,EACtB,GAAC,CAAAA,IAAA,SAAAa,MAED,WAAuC,IAAA4H,GACnCA,EAAA5I,KAAKyI,UAAQ,OAAOnE,MAAAsE,EAAA9F,UACxB,GAAC,CAAA3C,IAAA,YAAAa,MAED,WACIhB,KAAKyI,SAASvC,WAClB,IAAC,CA7BuB,G,smECV5B,IAAAO,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,EAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,EAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,EAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,EAAAF,EAAA,cAAAa,GAAAX,EAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,EAAAW,EAAA5J,EAAA,qBAAAiJ,EAAAF,GAAAE,EAAAF,EAAA/I,EAAA,aAAAiJ,EAAAF,EAAA5C,EAAA,yBAAA8C,EAAAF,EAAA,oDAAAkB,EAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,EAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,EAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,EAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,EAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,EAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,EAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,EAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAA5J,GAAAwI,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,8CAAAkB,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAoE,GAAAiC,EAAAqC,EAAAD,GAAA,OAAAC,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,CAAA,UAAAtD,GAAA0F,EAAAzI,EAAAqG,GAAA,OAAArG,EAAA8K,GAAA9K,GAAA,SAAAyI,EAAApC,GAAA,GAAAA,IAAA,UAAA0E,EAAA1E,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAqD,UAAA,4EAAArD,GAAA,YAAAA,EAAA,UAAA2E,eAAA,oEAAA3E,CAAA,CAAA4E,CAAAxC,EAAA,CAAAyC,CAAAzC,EAAA0C,KAAAC,QAAAC,UAAArL,EAAAqG,GAAA,GAAAyE,GAAArC,GAAA6C,aAAAtL,EAAAkE,MAAAuE,EAAApC,GAAA,UAAA8E,KAAA,QAAA1C,GAAA8C,QAAAhL,UAAAiL,QAAA/K,KAAA2K,QAAAC,UAAAE,QAAA,wBAAA9C,GAAA,QAAA0C,GAAA,mBAAA1C,CAAA,cAAAqC,GAAArC,GAAA,OAAAqC,GAAA7K,OAAA6J,eAAA7J,OAAA4J,eAAAL,OAAA,SAAAf,GAAA,OAAAA,EAAAsB,WAAA9J,OAAA4J,eAAApB,EAAA,EAAAqC,GAAArC,EAAA,UAAAxF,GAAAwF,EAAApC,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAAqD,UAAA,sDAAAjB,EAAAlI,UAAAN,OAAA+I,OAAA3C,GAAAA,EAAA9F,UAAA,CAAA+K,YAAA,CAAA1K,MAAA6H,EAAA6B,UAAA,EAAAD,cAAA,KAAApK,OAAAC,eAAAuI,EAAA,aAAA6B,UAAA,IAAAjE,GAAAoF,GAAAhD,EAAApC,EAAA,UAAAoF,GAAAhD,EAAApC,GAAA,OAAAoF,GAAAxL,OAAA6J,eAAA7J,OAAA6J,eAAAN,OAAA,SAAAf,EAAApC,GAAA,OAAAoC,EAAAsB,UAAA1D,EAAAoC,CAAA,EAAAgD,GAAAhD,EAAApC,EAAA,UAAAtF,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,EAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,EAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,EAAAnC,GAAAA,EAAAA,EAAA,GAGO,IAAKkD,GAAW,SAAXA,GAAW,OAAXA,EAAAA,EAAW,eAAXA,EAAAA,EAAW,mBAAXA,EAAAA,EAAW,eAAXA,EAAAA,EAAW,mBAAXA,CAAW,MAkSVC,GAAkB,SAAAC,GAa3B,SAAAD,EACYE,EACAC,EACAC,GAEV,IAAA1F,EADE2F,IAAmB1J,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,KAAAA,UAAA,GASlB,OATyB5B,GAAA,KAAAiL,GAb9BhL,GAeI0F,EAAA1D,GAAA,KAAAgJ,EAAA,CAAM,OAfV,cAGkDD,IAAWrF,EAOjDwF,OAAAA,EAAcxF,EACdyF,QAAAA,EAAezF,EACf0F,QAAAA,EAKR1F,EAAK4F,cAAcC,cAAe,EAE9BF,IACA3F,EAAK0F,QAAQI,OAAOnF,GAAG,aAAc,SAAAoF,GAAE,OAAI/F,EAAKgG,iBAAiBD,EAAG,GACpE/F,EAAK0F,QAAQI,OAAOnF,GAAG,mBAAoB,SAAAoF,GAAE,OAAI/F,EAAKiG,uBAAuBF,EAAG,IACnF/F,CACL,CAAC,OAAAxD,GAAA8I,EAAAC,GAAA5H,GAAA2H,EAAA,EAAAhM,IAAA,eAAAa,MAED,WACI,IAAMyE,EAAO,IAAI0G,EAAmBnM,KAAKqM,OAAQrM,KAAKsM,QAAStM,KAAKuM,SAAS,GAI7E,OAHA9G,EAAKqB,YAAc9G,KAAK8G,YACxBrB,EAAKhB,OAASzE,KAAKyE,OACnBgB,EAAKgH,cAAgBzM,KAAKyM,cACnBhH,CACX,GAAC,CAAAtF,IAAA,mBAAAK,IAED,WACI,OAAOR,KAAKyM,cAAcC,YAC9B,GAAC,CAAAvM,IAAA,kBAAAa,OAAA+L,EAAAlC,GAAAR,IAAAE,EAED,SAAAyC,EAA6BC,GAAa,OAAA5C,IAAAC,EAAA,SAAA4C,GAAA,cAAAA,EAAA3G,GAAA,OACC,GAAvCvG,KAAKyM,cAAcC,aAAeO,GAE9BA,GAASjN,KAAKmN,QAAUjB,GAAYkB,MAAQpN,KAAKmN,QAAUjB,GAAYmB,OAAO,CAAAH,EAAA3G,EAAA,eAAA2G,EAAA3G,EAAA,EAAAU,EAAAkF,EAAA,uBAAAlF,CAAA,kBAAAiG,EAAAxD,EAAA,KAAAsD,EAAA,SAGrF,SAN2BM,GAAA,OAAAP,EAAAzI,MAAC,KAADxB,UAAA,KAAA3C,IAAA,gBAAAa,OAAAuM,EAAA1C,GAAAR,IAAAE,EAQ5B,SAAAiD,IAAA,OAAAnD,IAAAC,EAAA,SAAAmD,GAAA,cAAAA,EAAAlH,GAAA,WACQvG,KAAKyM,cAAcC,aAAc,CAAFe,EAAAlH,EAAA,eAAAkH,EAAA/D,EAAA,iBAAA+D,EAAA/D,EAAA,EAAAzC,EAAAkF,EAAA,uBAAAlF,CAAA,OAAAuG,EAAA,SAItC,WALyB,OAAAD,EAAAjJ,MAAC,KAADxB,UAAA,KAAA3C,IAAA,YAAAa,OAAA0M,EAAA7C,GAAAR,IAAAE,EAO1B,SAAAoD,IAAA,OAAAtD,IAAAC,EAAA,SAAAsD,GAAA,cAAAA,EAAArH,GAAA,WACQvG,KAAKyM,cAAcC,aAAc,CAAFkB,EAAArH,EAAA,eAAAqH,EAAAlE,EAAA,iBAAAkE,EAAAlE,EAAA,EAAAzC,EAAAkF,EAAA,mBAAAlF,CAAA,OAAA0G,EAAA,SAItC,WALqB,OAAAD,EAAApJ,MAAC,KAADxB,UAAA,KAAA3C,IAAA,gBAAAa,OAAA6M,EAAAhD,GAAAR,IAAAE,EAOtB,SAAAuD,IAAA,OAAAzD,IAAAC,EAAA,SAAAyD,GAAA,cAAAA,EAAAxH,GAAA,WACQvG,KAAKyM,cAAcC,aAAc,CAAFqB,EAAAxH,EAAA,eAAAwH,EAAArE,EAAA,iBAAAqE,EAAArE,EAAA,EAAAzC,EAAAkF,EAAA,uBAAAlF,CAAA,OAAA6G,EAAA,SAItC,WALyB,OAAAD,EAAAvJ,MAAC,KAADxB,UAAA,KAAA3C,IAAA,SAAAa,OAAAgN,EAAAnD,GAAAR,IAAAE,EAO1B,SAAA0D,EAAoBpJ,GAAU,OAAAwF,IAAAC,EAAA,SAAA4D,GAAA,cAAAA,EAAA3H,GAAA,WACtBvG,KAAKyM,cAAcC,aAAc,CAAFwB,EAAA3H,EAAA,eAAA2H,EAAAxE,EAAA,iBAAAwE,EAAAxE,EAAA,EAAAzC,EAAAkF,EAAA,gBAAAlF,CAAA,CAGfpC,KAAE,EAAAoJ,EAAA,SACzB,SALkBE,GAAA,OAAAH,EAAA1J,MAAC,KAADxB,UAAA,IAOnB,CAAA3C,IAAA,0BAAAa,MAIA,SAA+BoN,GAC3B,IAAMC,EAAarO,KAAKQ,IAAI4N,EAASC,WAAWxJ,IAE5CwJ,GAEArO,KAAKsC,IAAGgM,EAAAA,EAAC,CAAC,EAAGD,GAAU,IAAEE,SAAUH,EAASvJ,KAEpD,GAAC,CAAA1E,IAAA,kBAAAa,OAAAwN,EAAA3D,GAAAR,IAAAE,EAED,SAAAkE,IAAA,IAAAC,EAAAC,EAAAtJ,EAAA,OAAAgF,IAAAC,EAAA,SAAAsE,GAAA,cAAAA,EAAArI,GAAA,OACmD,GAAzCoI,EAAqC,QAA9BD,EAAG1O,KAAK6O,MAAM7O,KAAK+C,OAAS,UAAE,IAAA2L,OAAA,EAA3BA,EAA6B7J,GAE9B,CAAF+J,EAAArI,EAAA,eAAAqI,EAAAlF,EAAA,EAEF,MAAI,cAAAkF,EAAArI,EAAA,EAGMvG,KAAKuM,QAAQI,OAAOmC,KAAK,cAAe,CACzDC,SAAU,CAAC1C,OAAQrM,KAAKqM,OAAQC,QAAStM,KAAKsM,SAC9C0C,MAAOL,EACPvJ,MAAOpF,KAAKyM,cAAcwC,aAC5B,OAJU,KAAN5J,EAAMuJ,EAAAnF,GAMDtF,MAAO,CAAFyK,EAAArI,EAAA,cACN,IAAI2I,MAAM,0BAAD9L,OAA2BiC,EAAOlB,MAAMgL,UAAU,cAAAP,EAAAlF,EAAA,EAG9DrE,EAAO9B,KAAK6L,UAAQ,EAAAX,EAAA,SAC9B,WAnB8B,OAAAD,EAAAlK,MAAC,KAADxB,UAAA,KAAA3C,IAAA,mBAAAa,OAAAqO,EAAAxE,GAAAR,IAAAE,EAqB/B,SAAA+E,EAAiCzK,GAAU,IAAAQ,EAAA,OAAAgF,IAAAC,EAAA,SAAAiF,GAAA,cAAAA,EAAAhJ,GAAA,cAAAgJ,EAAAhJ,EAAA,EAClBvG,KAAKuM,QAAQI,OAAOmC,KAAK,cAAe,CACzDC,SAAU,CAAC1C,OAAQrM,KAAKqM,OAAQC,QAAStM,KAAKsM,SAC9CkD,OAAQ3K,EACRO,MAAOpF,KAAKyM,cAAcwC,aAC5B,OAJU,KAAN5J,EAAMkK,EAAA9F,GAMDtF,MAAO,CAAFoL,EAAAhJ,EAAA,cACN,IAAI2I,MAAM,0BAAD9L,OAA2BiC,EAAOlB,MAAMgL,UAAU,cAAAI,EAAA7F,EAAA,EAG9DrE,EAAO9B,KAAK6L,UAAQ,EAAAE,EAAA,SAC9B,SAZ+BG,GAAA,OAAAJ,EAAA/K,MAAC,KAADxB,UAAA,KAAA3C,IAAA,mBAAAa,OAAA0O,EAAA7E,GAAAR,IAAAE,EAchC,SAAAoF,IAAA,IAAAC,EAAAC,EAAAxK,EAAA,OAAAgF,IAAAC,EAAA,SAAAwF,GAAA,cAAAA,EAAAvJ,GAAA,OACsC,GAA5BsJ,EAAwB,QAAhBD,EAAG5P,KAAK6O,MAAM,UAAE,IAAAe,OAAA,EAAbA,EAAe/K,GAEhB,CAAFiL,EAAAvJ,EAAA,eAAAuJ,EAAApG,EAAA,EAEH,MAAI,cAAAoG,EAAAvJ,EAAA,EAGMvG,KAAKuM,QAAQI,OAAOmC,KAAK,cAAe,CACzDC,SAAU,CAAC1C,OAAQrM,KAAKqM,OAAQC,QAAStM,KAAKsM,SAC9CyD,OAAQF,EACRzK,MAAOpF,KAAKyM,cAAcwC,aAC5B,OAJU,KAAN5J,EAAMyK,EAAArG,GAMDtF,MAAO,CAAF2L,EAAAvJ,EAAA,cACN,IAAI2I,MAAM,0BAAD9L,OAA2BiC,EAAOlB,MAAMgL,UAAU,cAAAW,EAAApG,EAAA,EAG9DrE,EAAO9B,KAAK6L,UAAQ,EAAAO,EAAA,SAC9B,WAnB+B,OAAAD,EAAApL,MAAC,KAADxB,UAAA,KAAA3C,IAAA,mBAAAa,OAAAgP,EAAAnF,GAAAR,IAAAE,EAqBhC,SAAA0F,IAAA,IAAA5K,EAAA,OAAAgF,IAAAC,EAAA,SAAA4F,GAAA,cAAAA,EAAA3J,GAAA,cAAA2J,EAAA3J,EAAA,EACyBvG,KAAKuM,QAAQI,OAAOmC,KAAK,cAAe,CACzDC,SAAU,CAAC1C,OAAQrM,KAAKqM,OAAQC,QAAStM,KAAKsM,SAC9ClH,MAAOpF,KAAKyM,cAAcwC,aAC5B,OAHU,KAAN5J,EAAM6K,EAAAzG,GAKDtF,MAAO,CAAF+L,EAAA3J,EAAA,cACN,IAAI2I,MAAM,0BAAD9L,OAA2BiC,EAAOlB,MAAMgL,UAAU,cAAAe,EAAAxG,EAAA,EAG9DrE,EAAO9B,KAAK6L,UAAQ,EAAAa,EAAA,SAC9B,WAX+B,OAAAD,EAAA1L,MAAC,KAADxB,UAAA,KAAA3C,IAAA,WAAAa,OAAAmP,EAAAtF,GAAAR,IAAAE,EAahC,SAAA6F,IAAA,OAAA/F,IAAAC,EAAA,SAAA+F,GAAA,cAAAA,EAAA9J,GAAA,cAAA8J,EAAA9J,EAAA,EACkBvG,KAAKuM,QAAQ+D,MAAMC,UAAUvQ,KAAKqM,OAAQ,CAACrM,KAAKsM,UAAS,cAAA+D,EAAA3G,EAAA,EAAA2G,EAAA5G,EAAEjJ,IAAIR,KAAKsM,UAAO,EAAA8D,EAAA,SAC5F,WAFqB,OAAAD,EAAA7L,MAAC,KAADxB,UAAA,KAAA3C,IAAA,qBAAAa,OAAAwP,EAAA3F,GAAAR,IAAAE,EAItB,SAAAkG,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAzG,IAAAC,EAAA,SAAAyG,GAAA,cAAAA,EAAAxK,GAAA,cAAAwK,EAAAxK,EAAA,EACkBvG,KAAKgR,WAAU,UAAAH,EAAAH,EAAAK,EAAAtH,EAAAmH,EAAA,OAAAC,EAAA,CAAAE,EAAAxK,EAAA,QAAAqK,OAAA,IAAAF,EAAA,UAAAC,EAAAC,EAAA,CAAAG,EAAAxK,EAAA,QAAAoK,EAAc,QAAdD,EAAtBA,EAAyBO,mBAAW,IAAAP,EAAA,WAAAC,EAAA,CAAAI,EAAAxK,EAAA,QAAAuK,OAAA,EAAAC,EAAAxK,EAAA,eAAAuK,EAApCJ,EAAsC7L,GAAE,cAAAkM,EAAArH,EAAA,EAAAoH,GAAA,EAAAL,EAAA,SAClD,WAF+B,OAAAD,EAAAlM,MAAC,KAADxB,UAAA,KAAA3C,IAAA,qBAAAa,OAAAkQ,EAAArG,GAAAR,IAAAE,EAIhC,SAAA4G,IAAA,IAAAC,EAAA,OAAA/G,IAAAC,EAAA,SAAA+G,GAAA,cAAAA,EAAA9K,GAAA,cAAA8K,EAAA9K,EAAA,EACgCvG,KAAKsR,qBAAoB,OAAlC,OAAbF,EAAaC,EAAA5H,EAAA4H,EAAA3H,EAAA,GACZ0H,GAAgBpR,KAAKiE,IAAImN,IAAqB,EAAAD,EAAA,SACxD,WAHiC,OAAAD,EAAA5M,MAAC,KAADxB,UAAA,KAAA3C,IAAA,mBAAAa,OAAAuQ,EAAA1G,GAAAR,IAAAE,EAKlC,SAAAiH,EAA+B5E,GAAc,IAAA6E,EAAA,OAAApH,IAAAC,EAAA,SAAAoH,GAAA,cAAAA,EAAAnL,GAAA,OAErC,CAAC2F,GAAYmB,OAAQnB,GAAYkB,MAAMuE,SAAS3R,KAAKmN,QAClDP,EAAGuC,QAAQJ,SAAS1C,SAAWrM,KAAKqM,QACpCO,EAAGuC,QAAQJ,SAASzC,UAAYtM,KAAKsM,UAElCmF,EAAgBzR,KAAKmN,MAC3BnN,KAAK4R,SAAS,CAAChF,EAAGuC,SAAU,QAC5BnP,KAAK6R,oBAAmB,EAAMJ,IACjC,cAAAC,EAAAhI,EAAA,KAAA8H,EAAA,SACJ,SAV6BM,GAAA,OAAAP,EAAAjN,MAAC,KAADxB,UAAA,KAAA3C,IAAA,yBAAAa,OAAA+Q,EAAAlH,GAAAR,IAAAE,EAY9B,SAAAyH,EAAqCpF,GAAoB,IAAAqF,EAAA,OAAA5H,IAAAC,EAAA,SAAA4H,GAAA,cAAAA,EAAA3L,GAAA,UACjDqG,EAAGmC,SAASzC,UAAYtM,KAAKsM,SAAWM,EAAGmC,SAAS1C,SAAWrM,KAAKqM,OAAM,CAAA6F,EAAA3L,EAAA,eAAA2L,EAAAxI,EAAA,UAQvD,GAJjBuI,EAAcjS,KAAKqE,MACpB8N,OAAO,SAAAC,GAAG,OAAIA,EAAI7D,UAAY3B,EAAG9H,IAAI6M,SAASS,EAAIvN,GAAG,GACrD3C,IAAI,SAAAkQ,GAAG,OAAIA,EAAI7D,QAAQ,GAE5BvO,KAAI,OAAOsE,MAAXtE,KAAIuE,EAAWqI,EAAG9H,MAEE,IAAhB9E,KAAK+C,OAAY,CAAAmP,EAAA3L,EAAA,eAAA2L,EAAA3L,EAAA,EACXvG,KAAKqS,gBAAe,OAG1BJ,EAAYlP,OAAS,GACrB/C,KAAK8G,YAAYI,KAAK,mBAAoB+K,GAC7C,cAAAC,EAAAxI,EAAA,KAAAsI,EAAA,SACJ,SAlBmCM,GAAA,OAAAP,EAAAzN,MAAC,KAADxB,UAAA,MAZN,IAAAiP,EALIR,EAJFL,EAJVV,EAbUL,EArBAH,EAdAN,EArBDL,EAF9Bb,EAzByBR,EAPJH,EAPIH,EAREH,EAF3BR,CAiJmC,CAxLT,CA1QkB,SAAAwF,GAAA,SAAAC,IAAA,IAAA5P,EAAA1B,GAAA,KAAAsR,GAAA,QAAA3P,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GA2B5C,OA3B4C/B,GAAAyB,EAAAO,GAAA,KAAAqP,EAAA,GAAApP,OAAAJ,IAAA,gBAmBzC,CACAyP,QAASvG,GAAYkB,KACrBsF,aAAS5Q,EACTsD,MAAO,IACPuN,YAAa,EACb1D,WAAY,GACZ2D,eAAgB,EAChBC,SAAU,OACbjQ,CAAA,QAAAS,GAAAmP,EAAAD,GAAA/N,GAAAgO,EAAA,EAAArS,IAAA,QAAAK,IApBD,WACI,OAAOR,KAAKyM,cAAcgG,OAC9B,GAAC,CAAAtS,IAAA,aAAAK,IAuBD,WACI,OAAOR,KAAKyM,cAAcwC,UAC9B,EAEA3M,IAGA,SAAsBtB,GAClBhB,KAAKyM,cAAcwC,WAAajO,CACpC,GAEA,CAAAb,IAAA,QAAAK,IAIA,WACI,OAAOR,KAAKyM,cAAcrH,KAC9B,EAEA9C,IAIA,SAAiBtB,GACbhB,KAAKyM,cAAcrH,MAAQpE,CAC/B,GAEA,CAAAb,IAAA,cAAAK,IAGA,WACI,OAAOR,KAAKyM,cAAckG,WAC9B,EAEArQ,IAGA,SAAuBtB,GACnBhB,KAAKyM,cAAckG,YAAc3R,CACrC,GAAC,CAAAb,IAAA,YAAAK,IAED,WACI,MAAO,CAAC0L,GAAYmB,OAAQnB,GAAYkB,MAAMuE,SAAS3R,KAAKmN,MAChE,GAAC,CAAAhN,IAAA,YAAAK,IAED,WACI,OAAOR,KAAKmN,QAAUjB,GAAY4G,QAC3B9S,KAAKmN,QAAUjB,GAAYmB,QAAUrN,KAAK+C,OAAS/C,KAAKiP,YACxB,OAAhCjP,KAAKyM,cAAcoG,UAAqB7S,KAAKiE,IAAIjE,KAAKyM,cAAcoG,SAC/E,GAAC,CAAA1S,IAAA,gBAAAa,OAAA+R,EAAAlI,GAAAR,IAAAE,EAID,SAAAyI,IAAA,IAAA3N,EAAAoM,EAAA,OAAApH,IAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA3J,EAAA2J,EAAA1M,GAAA,WACQvG,KAAKyM,cAAciG,SAAW1S,KAAKyM,cAAcgG,UAAYvG,GAAYmB,OAAM,CAAA4F,EAAA1M,EAAA,eAAA0M,EAAAvJ,EAAA,UAMnC,OAD1C+H,EAAgBzR,KAAKmN,MAC3BnN,KAAKyM,cAAciG,QAAUxG,GAAYmB,OAAO4F,EAAA3J,EAAA,EAAA2J,EAAA1M,EAAA,EAG7BvG,KAAKkT,mBAAkB,OAAtC7N,EAAM4N,EAAAxJ,EACNzJ,KAAKyM,cAAcmG,eAAiBvN,EAAOtC,OAAO,OAEX,OAFWkQ,EAAA3J,EAAA,EAElDtJ,KAAKyM,cAAciG,aAAU5Q,EAAUmR,EAAAvM,EAAA,UAG3C1G,KAAKyE,OAAOyB,YACZlG,KAAK4R,SAASvM,EAAQ,QACtBrF,KAAKyM,cAAcgG,QAAUvG,GAAYmB,OACzCrN,KAAK6R,oBAAmB,EAAMJ,GAAe,cAAAwB,EAAAvJ,EAAA,KAAAsJ,EAAA,oBAChD,WApByB,OAAAD,EAAAzO,MAAC,KAADxB,UAAA,KAAA3C,IAAA,gBAAAa,OAAAmS,EAAAtI,GAAAR,IAAAE,EAsB1B,SAAA6I,IAAA,IAAA/N,EAAAoM,EAAA4B,EAAA,OAAAhJ,IAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAAhK,EAAAgK,EAAA/M,GAAA,WACQvG,KAAKyM,cAAciG,UAAW1S,KAAKuT,UAAS,CAAAD,EAAA/M,EAAA,eAAA+M,EAAA5J,EAAA,UAMF,OADxC+H,EAAgBzR,KAAKmN,MAC3BnN,KAAKyM,cAAciG,QAAUxG,GAAYsH,KAAKF,EAAAhK,EAAA,EAAAgK,EAAA/M,EAAA,EAG3BvG,KAAKyT,mBAAkB,OAAtCpO,EAAMiO,EAAA7J,EACNzJ,KAAKyM,cAAcmG,eAAiBvN,EAASA,EAAOtC,OAAS,EAAE,OAExB,OAFwBuQ,EAAAhK,EAAA,EAE/DtJ,KAAKyM,cAAciG,aAAU5Q,EAAUwR,EAAA5M,EAAA,aAGrCrB,EAAQ,CAAFiO,EAAA/M,EAAA,eAAA+M,EAAA5J,EAAA,EACD1J,KAAKqS,iBAAe,UAGzBhN,EAAOtC,OAAQ,CAAFuQ,EAAA/M,EAAA,QAEwD,OADjE8M,EAAYrT,KAAK6O,MAAM,GAC7B7O,KAAKyM,cAAcoG,SAAWQ,EAAYrT,KAAKgG,MAAMqN,GAAa,KAAKC,EAAA/M,EAAA,EAEjEvG,KAAK0T,sBAAqB,OAOc,OAJ1C1T,KAAKyM,cAAcgG,UAAYvG,GAAYsH,OAC3CxT,KAAKyM,cAAcgG,QAAUvG,GAAY4G,QAG7C9S,KAAK6R,oBAAmB,EAAOJ,GAAe6B,EAAA5J,EAAA,UAIpB,OAA9B1J,KAAK4R,SAASvM,EAAQ,QAAQiO,EAAA/M,EAAA,EACxBvG,KAAK0T,sBAAqB,OAChC1T,KAAK6R,oBAAmB,EAAMJ,GAAe,eAAA6B,EAAA5J,EAAA,KAAA0J,EAAA,oBAChD,WAtCyB,OAAAD,EAAA7O,MAAC,KAADxB,UAAA,KAAA3C,IAAA,YAAAa,OAAA2S,EAAA9I,GAAAR,IAAAE,EAwC1B,SAAAqJ,IAAA,IAAAvO,EAAAoM,EAAA,OAAApH,IAAAC,EAAA,SAAAuJ,GAAA,cAAAA,EAAAvK,EAAAuK,EAAAtN,GAAA,WACQvG,KAAKyM,cAAciG,UAAW1S,KAAK8T,UAAS,CAAAD,EAAAtN,EAAA,eAAAsN,EAAAnK,EAAA,UAMF,OADxC+H,EAAgBzR,KAAKmN,MAC3BnN,KAAKyM,cAAciG,QAAUxG,GAAYsH,KAAKK,EAAAvK,EAAA,EAAAuK,EAAAtN,EAAA,EAG3BvG,KAAK+T,kBAAiB,OAArC1O,EAAMwO,EAAApK,EACNzJ,KAAKyM,cAAcmG,eAAiBvN,EAASA,EAAOtC,OAAS,EAAE,OAExB,OAFwB8Q,EAAAvK,EAAA,EAE/DtJ,KAAKyM,cAAciG,aAAU5Q,EAAU+R,EAAAnN,EAAA,aAGrCrB,EAAQ,CAAFwO,EAAAtN,EAAA,eAAAsN,EAAAtN,EAAA,EACFvG,KAAKqS,gBAAe,cAAAwB,EAAAnK,EAAA,cAI1BrE,EAAOtC,OAAQ,CAAF8Q,EAAAtN,EAAA,QACiB,OAA9BvG,KAAK4R,SAASvM,EAAQ,QAAQwO,EAAAtN,EAAA,EACxBvG,KAAK0T,sBAAqB,OACa,OAA7C1T,KAAK6R,oBAAmB,EAAMJ,GAAeoC,EAAAnK,EAAA,iBAAAmK,EAAAnK,EAAA,KAAAkK,EAAA,oBAGpD,WA3BqB,OAAAD,EAAArP,MAAC,KAADxB,UAAA,KAAA3C,IAAA,SAAAa,OAAAgT,EAAAnJ,GAAAR,IAAAE,EA6BtB,SAAA0J,EAAoBpP,GAAU,IAAAQ,EAAAoM,EAAA,OAAApH,IAAAC,EAAA,SAAA4J,GAAA,cAAAA,EAAA5K,EAAA4K,EAAA3N,GAAA,WACtBvG,KAAKyM,cAAciG,UAAW1S,KAAKyE,OAAOR,IAAIY,GAAG,CAAAqP,EAAA3N,EAAA,eAAA2N,EAAAxK,EAAA,UAMP,OADxC+H,EAAgBzR,KAAKmN,MAC3BnN,KAAKyM,cAAciG,QAAUxG,GAAYsH,KAAKU,EAAA5K,EAAA,EAAA4K,EAAA3N,EAAA,EAG3BvG,KAAKmU,iBAAiBtP,GAAG,OAAxCQ,EAAM6O,EAAAzK,EACNzJ,KAAKyM,cAAcmG,eAAiBvN,EAASA,EAAOtC,OAAS,EAAE,OAExB,OAFwBmR,EAAA5K,EAAA,EAE/DtJ,KAAKyM,cAAciG,aAAU5Q,EAAUoS,EAAAxN,EAAA,aAGtCrB,EAAQ,CAAF6O,EAAA3N,EAAA,eAAA2N,EAAAxK,EAAA,UAIX1J,KAAKyE,OAAOyB,YACZlG,KAAK4R,SAASvM,EAAQ,QACtBrF,KAAKyM,cAAcgG,QAAUvG,GAAYsH,KACzCxT,KAAK6R,oBAAmB,EAAMJ,GAAe,cAAAyC,EAAAxK,EAAA,KAAAuK,EAAA,oBAChD,SAxBkBG,GAAA,OAAAJ,EAAA1P,MAAC,KAADxB,UAAA,KAAA3C,IAAA,sBAAAa,OAAAqT,EAAAxJ,GAAAR,IAAAE,EAoCnB,SAAA+J,IAAA,IAAAC,EAAA,OAAAlK,IAAAC,EAAA,SAAAkK,GAAA,cAAAA,EAAAjO,GAAA,cAAAiO,EAAAjO,EAAA,EACwCvG,KAAKyU,qBAAoB,WAAAD,EAAA/K,EAAE,CAAF+K,EAAAjO,EAAA,QAAAgO,EAAIrI,GAAYmB,OAAMmH,EAAAjO,EAAA,eAAAgO,EAAGrI,GAAYsH,KAAI,OAAtGxT,KAAKyM,cAAcgG,QAAO8B,EAAA,cAAAC,EAAA9K,EAAA,KAAA4K,EAAA,SAC7B,WAFkC,OAAAD,EAAA/P,MAAC,KAADxB,UAAA,KAAA3C,IAAA,WAAAa,MAInC,SAAmB0T,EAAmBC,GAA2B,IAAA9O,EACzDR,EADyDzB,EAAA,KAGlD,SAAP+Q,IACAtP,EAASrF,KAAK4U,sBAAsB,GAADxR,OAAAmB,EAAKmQ,GAAQnQ,EAAKvE,KAAKqE,QAAQ,SAG3D,SAAPsQ,IACAtP,EAASrF,KAAK4U,sBAAsB,GAADxR,OAAAmB,EAAKvE,KAAKqE,OAAKE,EAAKmQ,IAAW,SAItE1U,KAAKyE,OAAOyB,aACZL,EAAA7F,KAAKyE,QAAOnC,IAAGgC,MAAAuB,EAAAtB,EAAKc,EAAOnD,IAAI,SAAA0C,GAAI,MAAI,CAAChB,EAAKoC,MAAMpB,GAAOA,EAAK,IACnE,GAAC,CAAAzE,IAAA,qBAAAa,MAED,SAA6B6T,EAAsBpD,IAC3CoD,GAAepD,IAAkBzR,KAAKmN,QACtCnN,KAAK8G,YAAYI,KAAK,SAAU,CAAEC,SAAUlE,MAAM0C,KAAK3F,KAAKyE,OAAOJ,MAAMkD,SAEjF,GAEA,CAAApH,IAAA,wBAAAa,MAGA,SAA8BqD,EAAgBsB,GAC1C,IAAMmP,EAAgB9U,KAAKoF,MAE3B,GAAsB,OAAlB0P,GAA0BzQ,EAAMtB,QAAU+R,EAC1C,OAAOzQ,EAGX,IAAM0Q,EAAeC,KAAKC,MAAMH,EAAgB9U,KAAKyM,cAAckG,aAEnE,MAAa,SAAThN,EACOtB,EAAM6Q,OAAOH,GAGX,SAATpP,EACOtB,EAAM6Q,MAAM,EAAGH,GAGnB1Q,CACX,KAnFmB,IAAAgQ,EA7BGL,EAxCIL,EAtBAR,EAJzBJ,CAkLA,CAnQ4C,CAGvCpL,I,gxDC9BV,IAAAlB,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAe,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GAIO,IAAMmM,GAAmB,WAmB5B,OAvBJ1O,EAQI,SAAA0O,EACYC,EACA7I,GACV,IAAA3J,EAAA,MAXN,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCAWM5I,CAAA,KAAAiU,GAAAhU,GAAA,sBANuB,IAAIiD,GAA+CjD,GAAA,qBAC5C,GAAK,KAGzBiU,KAAAA,EAAU,KACV7I,QAAAA,EAERvM,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKyS,kBAAkBzI,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,WAAY,SAAAoF,GAAE,OAAIhK,EAAK0S,eAAe1I,EAAG,GAChE5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAK2S,mBAAmB3I,EAAG,GAExE5M,KAAKwV,mBAAmBxV,KAAKoV,MAEzBpV,KAAKoV,KAAKK,cACVzV,KAAK0V,4BAA4B1V,KAAKoV,KAAKK,aAEnD,EArBJ3M,EAuBI,EAAA3I,IAAA,oBAAAa,OAAA2U,EAAA9K,GAAAR,KAAAE,EAKA,SAAAyI,EAA+B1G,GAAe,IAAAsJ,EAAAC,EAAAC,EAAAhT,UAAA,OAAAuH,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,OAAuB,GAArBqP,EAAaE,EAAA/S,OAAA,QAAAjB,IAAAgU,EAAA,IAAAA,EAAA,GACpD9V,KAAK+V,eAAe9R,IAAIqI,IAAasJ,EAAI,CAAA3C,EAAA1M,EAAA,eAAA0M,EAAA1M,EAAA,EACrBvG,KAAKuM,QAAQ+D,MAAMC,UAAUvQ,KAAKoV,KAAKvQ,GAAI,CAACyH,IAAS,QAApEuJ,EAAK5C,EAAAxJ,EAAiEjJ,IAAI8L,KAG5EtM,KAAK0V,4BAA4BG,GACpC,cAAA5C,EAAAvJ,EAAA,EAGE1J,KAAK+V,eAAevV,IAAI8L,IAAQ,EAAA0G,EAAA,SAC1C,SAV6BoB,GAAA,OAAAuB,EAAArR,MAAC,KAADxB,UAAA,KAAA3C,IAAA,oBAAAa,OAAAgV,EAAAnL,GAAAR,KAAAE,EAY9B,SAAA6I,EAAgCxG,GAAe,IAAAjI,EAAAsR,EAAAC,EAAAC,EAAA,OAAA9L,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,UACvCvG,KAAKoV,KAAKvQ,KAAO+H,EAAGwI,KAAKvQ,GAAE,CAAAyO,EAAA/M,EAAA,QAC3BvG,KAAKoV,KAAOxI,EAAGwI,KAEfpV,KAAKwV,mBAAmB5I,EAAGwI,MAEvBxI,EAAGwI,KAAKK,cACRzV,KAAK0V,4BAA4B9I,EAAGwI,KAAKK,cAC5C9Q,EAAA,EAAAsR,EAEwBhT,MAAM0C,KAAK3F,KAAK+V,eAAe1R,OAAM,YAAAM,EAAAsR,EAAAlT,QAAA,CAAAuQ,EAAA/M,EAAA,QAA1C,OAA0C2P,EAAAE,GAAAH,EAAAtR,GAAA,GAAhDwR,EAAMD,EAAA,GAAA5C,EAAA/M,EAAA,EACV4P,EAAOE,gBAAgBrW,KAAK0M,cAAa,OAAA/H,IAAA2O,EAAA/M,EAAA,sBAAA+M,EAAA5J,EAAA,KAAA0J,EAAA,SAG1D,SAd8B9F,GAAA,OAAA0I,EAAA1R,MAAC,KAADxB,UAAA,KAAA3C,IAAA,iBAAAa,MAgB/B,SAAuB4L,GACf5M,KAAKoV,KAAKvQ,KAAO+H,EAAGP,QACpBrM,KAAK0V,4BAA4B9I,EAAGiJ,MAE5C,GAAC,CAAA1V,IAAA,qBAAAa,MAED,SAA2B4L,GACnB5M,KAAKoV,KAAKvQ,KAAO+H,EAAGmC,SAAS1C,QAC7BrM,KAAK+V,eAAc,OAAQnJ,EAAGmC,SAASzC,QAE/C,GAAC,CAAAnM,IAAA,8BAAAa,MAED,SAAoC6U,GAAoB,IAAAjS,EAAA,KACpD,IAAI5D,KAAK+V,eAAe9R,IAAI4R,EAAMhR,IAAlC,CAIA,IAAMyR,EAAgB,IAAInK,GAAmBnM,KAAKoV,KAAKvQ,GAAIgR,EAAMhR,GAAI7E,KAAKuM,SAgB1E,GAdK+J,EAAcD,gBAAgBrW,KAAK0M,cAExC1M,KAAK+V,eAAezT,IAAI,CAACuT,EAAMhR,GAAIyR,IAInCA,EAAc9O,GAAG,mBAAoB,SAAC+O,GAA8B,IAAAC,EAC3BrQ,EAD2BC,E,ioBAAAC,CAC1CkQ,GAAe,IAArC,IAAAnQ,EAAAE,MAAAH,EAAAC,EAAAG,KAAAf,MAAuC,KAA5B8G,EAAOnG,EAAAnF,MACd4C,EAAKmS,eAAc,OAAQzJ,EAC/B,CAAC,OAAA9F,GAAAJ,EAAAK,EAAAD,EAAA,SAAAJ,EAAAM,GAAA,EACD8P,EAAA5S,EAAK2I,QAAQ+D,OAAMmG,sBAAqBnS,MAAAkS,EAAA,CAAC5S,EAAKwR,KAAKvQ,IAAEzB,OAAAmB,GAAKgS,IAC9D,GAGIV,EAAMxH,WAAY,CAClB,IAAMqI,EAAmB1W,KAAK+V,eAAevV,IAAIqV,EAAMxH,WAAWU,SAASzC,SAC3EoK,SAAAA,EAAkBC,wBAAwBd,EAC9C,CArBA,CAsBJ,GAAC,CAAA1V,IAAA,qBAAAa,MAED,SAA2BoU,GACvBpV,KAAK0M,aAAqC,cAAtB0I,EAAKwB,QAAQC,IACrC,IAjGJ/N,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EA4BkCmN,EAL9BL,CA0EC,CA7F2B,G,m0ECJhC,IAAAlP,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAe,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GAqBO,IAAM8N,GAAe,WAmBxB,OAxCJrQ,EA4BI,SAAAqQ,EAA2BvK,GAA2B,IAAA3J,EAAA,MA5B1D,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCA4B0D5I,CAAA,KAAA4V,GAAA3V,GAAA,qBANrB,IAAIiD,GAAgDjD,GAAA,sBACnD,IAAIiD,GAA6EjD,GAAA,8BACzE,IAAIqH,GAAiBrH,GAAA,uBAC5B,IAAIkH,GAAclH,GAAA,4BACb,IAAIC,KAA0D,KAE3EmL,QAAAA,EACvBvM,KAAKuM,QAAQI,OAAOnF,GAAG,UAAW,SAAAoF,GAAE,OAAIhK,EAAKmU,cAAcnK,EAAG,GAC9D5M,KAAKuM,QAAQI,OAAOnF,GAAG,aAAc,SAAAoF,GAAE,OAAIhK,EAAKoU,eAAepK,EAAG,GAClE5M,KAAKuM,QAAQI,OAAOnF,GAAG,WAAY,SAAAoF,GAAE,OAAIhK,EAAK0S,eAAe1I,EAAG,GAChE5M,KAAKuM,QAAQI,OAAOnF,GAAG,uBAAwB,SAAAoF,GAAE,OAAIhK,EAAKqU,2BAA2BrK,EAAG,GACxF5M,KAAKuM,QAAQI,OAAOnF,GAAG,gBAAiB,SAAAoF,GAAE,OAAIhK,EAAKsU,oBAAoBtK,EAAG,GAC1E5M,KAAKuM,QAAQI,OAAOnF,GAAG,aAAc,SAAAoF,GAAE,OAAIhK,EAAKiK,iBAAiBD,EAAG,GACpE5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKuU,kBAAkBvK,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,WAAY,SAAAoF,GAAE,OAAIhK,EAAKwU,eAAexK,EAAG,GAChE5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAK2S,mBAAmB3I,EAAG,EAC5E,EAtCJ9D,EAwCI,EAAA3I,IAAA,iBAAAa,OAAAqW,EAAAxM,GAAAR,KAAAE,EAGA,SAAAyI,EAA4B3G,GAAc,OAAAhC,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,cAAA0M,EAAA1M,EAAA,EAChCvG,KAAKsX,gBAAgBhP,QAAO,cAAA2K,EAAAvJ,EAAA,EAC3B1J,KAAKuX,cAAc/W,IAAI6L,IAAO,EAAA2G,EAAA,SACxC,SAH0BoB,GAAA,OAAAiD,EAAA/S,MAAC,KAADxB,UAAA,IAK3B,CAAA3C,IAAA,2BAAAa,OAAAwW,EAAA3M,GAAAR,KAAAE,EAKA,SAAA6I,EAAsCqE,GAAsB,IAAAC,EAAAC,EAAAtS,EAAAkP,EAAA3Q,EAAA,YAAAyG,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,OAC7C,KAD6CgO,EACpDkD,GAAO,CAAAnE,EAAA/M,EAAA,eAAA+M,EAAA/M,EAAA,EAAavG,KAAKuM,QAAQqL,OAAOpX,MAAK,OAAA+T,GAAAjB,EAAA7J,EAAExF,IAAIwT,GAAO,WAAAlD,EAAA,CAAAjB,EAAA/M,EAAA,cACpD,IAAI2I,MAAM,wBAAD9L,OAAyBqU,IAAU,cAAAnE,EAAA/M,EAAA,EAG/BvG,KAAKuM,QAAQ+D,MAAM9P,MAAK,OAAsD,IAA/FkX,EAAOpE,EAAA7J,EAAoCoO,OAAO,UAAWJ,GAASpT,MAAMnC,IAAI,SAAAkT,GAAI,OAAIA,EAAKvQ,EAAE,IAEvF9B,OAAQ,CAAFuQ,EAAA/M,EAAA,eAAA+M,EAAA5J,EAAA,UAOmE,OAFjFiO,EAAgB3X,KAAKuM,QAAQI,OAAOmC,KAAK,oBAAqB,CAACC,SAAU,CAAC0I,QAAAA,KAEhFC,EAAQlV,QAAQ,SAAA6J,GAAM,OAAIzI,EAAKkU,uBAAuBnP,SAASgP,EAAetL,EAAO,GAAEiH,EAAA/M,EAAA,EAElEoR,EAAa,OAAtB,KAANtS,EAAMiO,EAAA7J,GAEDtF,MAAO,CAAFmP,EAAA/M,EAAA,cACNlB,EAAOlB,MAAK,OAGtBnE,KAAK+X,uBAAuBL,EAASrS,EAAO9B,KAAKyU,gBAAgB,cAAA1E,EAAA5J,EAAA,KAAA0J,EAAA,SACpE,SAvBoC9F,GAAA,OAAAkK,EAAAlT,MAAC,KAADxB,UAAA,IAyBrC,CAAA3C,IAAA,wBAAAa,OAAAiX,EAAApN,GAAAR,KAAAE,EAIA,SAAA0J,EAAmC5H,GAAc,IAAAxF,EAAA,YAAAwD,KAAAC,EAAA,SAAA4J,GAAA,cAAAA,EAAA3N,GAAA,cAAA2N,EAAA3N,EAAA,EAChCvG,KAAKuM,QAAQ+D,MAAM9P,MAAK,UAAA0T,EAAAzK,EAAExF,IAAIoI,GAAS,CAAH6H,EAAA3N,EAAA,eAAA2N,EAAAxK,EAAA,OACtC5H,GAAS,UAGd9B,KAAKgY,eAAe/T,IAAIoI,GAAS,CAAF6H,EAAA3N,EAAA,QAWhC,OAVGvG,KAAK8X,uBAAuBI,SAAS7L,IACrCrM,KAAK8X,uBAAuBK,mBAAkBtN,GAAAR,KAAAE,EAAC,SAAAqJ,IAAA,IAAAvO,EAAA,OAAAgF,KAAAC,EAAA,SAAAuJ,GAAA,cAAAA,EAAAtN,GAAA,cAAAsN,EAAAtN,EAAA,EACtBM,EAAK0F,QAAQI,OAAOmC,KAAK,oBAAqB,CAACC,SAAU,CAAC1C,OAAAA,KAAS,OAA5E,KAANhH,EAAMwO,EAAApK,GAEDtF,MAAO,CAAF0P,EAAAtN,EAAA,cACNlB,EAAOlB,MAAK,OAGtB0C,EAAKkR,uBAAuB,CAAC1L,GAAShH,EAAO9B,KAAKyU,gBAAgB,cAAAnE,EAAAnK,EAAA,KAAAkK,EAAA,IACnEvH,GACN6H,EAAA3N,EAAA,EAEKvG,KAAK8X,uBAAuBtX,IAAI6L,GAAO,cAAA6H,EAAAxK,EAAA,EAG1C1J,KAAKgY,eAAexX,IAAI6L,IAAO,EAAA4H,EAAA,SACzC,SAtBiC9F,GAAA,OAAA8J,EAAA3T,MAAC,KAADxB,UAAA,IAwBlC,CAAA3C,IAAA,UAAAa,OAAAoX,EAAAvN,GAAAR,KAAAE,EAGA,SAAA+J,EAAqBjI,GAAc,IAAAgM,EAAAjS,EAAAD,EAAAmS,EAAA3H,EAAA,OAAAtG,KAAAC,EAAA,SAAAkK,GAAA,cAAAA,EAAAlL,EAAAkL,EAAAjO,GAAA,cAAAiO,EAAAjO,EAAA,EACNvG,KAAKuY,sBAAsBlM,GAAO,OAA3C,GAAVgM,EAAU7D,EAAA/K,EAEE,CAAF+K,EAAAjO,EAAA,eAAAiO,EAAA9K,EAAA,UAAAtD,EAAAC,GAIYgS,EAAWhU,OAAKmQ,EAAAlL,EAAA,EAAAlD,EAAAE,IAAA,WAAAH,EAAAC,EAAAG,KAAAf,KAAE,CAAFgP,EAAAjO,EAAA,QAApB,KAAb+R,EAAanS,EAAAnF,OACFwX,SAAU,CAAFhE,EAAAjO,EAAA,eAAAiO,EAAAjO,EAAA,EAChBvG,KAAKuM,QAAQI,OAAOmC,KAAK,MAAO,CAACC,SAAUuJ,EAAcvJ,WAAU,OAAAyF,EAAAjO,EAAA,eAAAiO,EAAAjO,EAAA,eAAAiO,EAAAlL,EAAA,EAAAqH,EAAA6D,EAAA/K,EAAArD,EAAAK,EAAAkK,GAAA,cAAA6D,EAAAlL,EAAA,EAAAlD,EAAAM,IAAA8N,EAAA9N,EAAA,iBAAA8N,EAAA9K,EAAA,KAAA4K,EAAA,qBAGpF,SAZmB7E,GAAA,OAAA2I,EAAA9T,MAAC,KAADxB,UAAA,IAcpB,CAAA3C,IAAA,0BAAAa,OAAAyX,EAAA5N,GAAAR,KAAAE,EAIA,SAAAyC,EAAqC+B,GAAsB,IAAA2J,EAAAhB,EAAAiB,EAAArI,EAAAsI,EAAAJ,EAAAK,EAAAC,EAAAzM,EAAAgM,EAAAU,EAAAC,EAAAC,EAAApD,EAAAxQ,EAAAuL,EAAAC,EAAA,OAAAxG,KAAAC,EAAA,SAAA4C,GAAA,cAAAA,EAAA5D,EAAA4D,EAAA3G,GAAA,OAO9B,GANnBmS,EAAW3J,EAASzC,QAAO,SAAAlJ,OAClB2L,EAAS1C,OAAM,KAAAjJ,OAAI2L,EAASzC,SACrCyC,EAAS1C,OAAM,QAAAjJ,OACH2L,EAAS1C,QACjB0C,EAAS0I,QAAO,SAAArU,OACH2L,EAAS0I,SAClB,aAEVzX,KAAKkZ,qBAAqBjV,IAAIyU,GAAW,CAAFxL,EAAA3G,EAAA,eAAA2G,EAAAxD,EAAA,EAChC1J,KAAKkZ,qBAAqB1Y,IAAIkY,IAAS,OAGxB,OAAtBhB,EAAoB,GAAExK,EAAA3G,EAAA,EAENvG,KAAKuM,QAAQ+D,MAAM9P,MAAK,OAAjC,GAAL8P,EAAKpD,EAAAzD,GAEPsF,EAASzC,QAAS,CAAFY,EAAA3G,EAAA,WACXwI,EAAS1C,OAAQ,CAAFa,EAAA3G,EAAA,cACV,IAAI2I,MAAM,+CAA8C,OAElEwI,EAAU,CAAC3I,EAAS1C,QACpBsM,EAAgB5J,EAASzC,QAAQY,EAAA3G,EAAA,mBAC1BwI,EAAS1C,OAAQ,CAAFa,EAAA3G,EAAA,QACtBmR,EAAU,CAAC3I,EAAS1C,QAAQa,EAAA3G,EAAA,mBACrBwI,EAAS0I,QAAS,CAAFvK,EAAA3G,EAAA,eAAA2G,EAAA3G,EAAA,EACjBvG,KAAKmZ,yBAAyBpK,EAAS0I,SAAQ,OACrDC,EAAUpH,EAAMuH,OAAO,UAAW9I,EAAS0I,SAASpT,MAAMnC,IAAI,SAAA4G,GAAC,OAAIA,EAAEjE,EAAE,GAAEqI,EAAA3G,EAAA,eAEzEmR,EAAUpH,EAAMjM,MAAM8N,OAAO,SAAArJ,GAAC,OAAKA,EAAE2O,OAAO,GAAEvV,IAAI,SAAA4G,GAAC,OAAIA,EAAEjE,EAAE,GAAE,OAG7D+T,EAAe,EACfJ,GAAW,EAAKK,EAAAxS,GAECqR,GAAOxK,EAAA5D,EAAA,EAAAuP,EAAAvS,IAAA,YAAAwS,EAAAD,EAAAtS,KAAAf,KAAE,CAAF0H,EAAA3G,EAAA,SAAX,OAAN8F,EAAMyM,EAAA9X,MAAAkM,EAAA3G,EAAA,GACYvG,KAAKuY,sBAAsBlM,GAAO,QAA3C,GAAVgM,EAAUnL,EAAAzD,EAEC,CAAFyD,EAAA3G,EAAA,gBAAA2G,EAAAxD,EAAA,cAAAqP,EAAA1S,GAIKgS,EAAWhU,OAAK6I,EAAA5D,EAAA,GAAAyP,EAAAzS,IAAA,YAAA0S,EAAAD,EAAAxS,KAAAf,KAAE,CAAF0H,EAAA3G,EAAA,SAApB,GAALsP,EAAKmD,EAAAhY,OACR2X,GAAiB9C,EAAM9G,SAASzC,UAAYqM,EAAa,CAAAzL,EAAA3G,EAAA,gBAAA2G,EAAAxD,EAAA,cAIzDmM,EAAM2C,WACNA,GAAW,GAGfI,GAAmC,QAAvBK,EAAKpD,EAAM+C,oBAAY,IAAAK,EAAAA,EAAI,EAAG,QAAA/L,EAAA3G,EAAA,iBAAA2G,EAAA3G,EAAA,iBAAA2G,EAAA5D,EAAA,GAAAsH,EAAA1D,EAAAzD,EAAAsP,EAAAtS,EAAAmK,GAAA,eAAA1D,EAAA5D,EAAA,GAAAyP,EAAArS,IAAAwG,EAAAxG,EAAA,YAAAwG,EAAA3G,EAAA,iBAAA2G,EAAA3G,EAAA,iBAAA2G,EAAA5D,EAAA,GAAAuH,EAAA3D,EAAAzD,EAAAoP,EAAApS,EAAAoK,GAAA,eAAA3D,EAAA5D,EAAA,GAAAuP,EAAAnS,IAAAwG,EAAAxG,EAAA,YAKF,OAD1CrB,EAAS,CAAEuT,aAAAA,EAAcJ,SAAAA,GAC/BxY,KAAKkZ,qBAAqB5W,IAAIoW,EAAUrT,GAAQ6H,EAAAxD,EAAA,EAEzCrE,GAAM,EAAA2H,EAAA,sCAChB,SA3DmC8E,GAAA,OAAA2G,EAAAnU,MAAC,KAADxB,UAAA,IA6DpC,CAAA3C,IAAA,oBAAAa,MAIA,SAAyBqL,GAA6C,QAAA+M,EAAAtR,EAAA,KAAAjF,EAAAC,UAAAC,OAA1BsW,EAAQ,IAAApW,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAARmW,EAAQnW,EAAA,GAAAJ,UAAAI,GACjB,QAA/BkW,EAAApZ,KAAKgY,eAAexX,IAAI6L,UAAO,IAAA+M,GAA/BA,EAAA,OAAuC9U,MAAA8U,EAAIC,GAC3CA,EAAS7W,QAAQ,SAAA8J,GAAO,OAAIxE,EAAKwR,0BAA0BjN,EAAQC,EAAQ,EAC/E,GAEA,CAAAnM,IAAA,sBAAAa,OAAAuY,EAAA1O,GAAAR,KAAAE,EAIA,SAAAiD,EAAiCuB,GAAsB,IAAAI,EAAAqK,EAAAnU,EAAA,OAAAgF,KAAAC,EAAA,SAAAmD,GAAA,cAAAA,EAAAlH,GAAA,cAAAkH,EAAAlH,EAAA,EAEtBvG,KAAKyZ,eAAe1K,EAAS1C,QACrDzB,KAAK,SAAA8O,GAAW,OAAIA,aAAW,EAAXA,EAAaC,kBAAkB5K,EAASzC,SAAS,EAAK,GAC1E1B,KACG,SAAA0L,GAAa,OACTA,aAAa,EAAbA,EAAexC,YAAawC,EAAczH,MAAMyH,EAAcvT,OAAS,EAAE,GAChF,OALe,GAAhBoM,EAAgB1B,EAAAhE,EAON,CAAFgE,EAAAlH,EAAA,eAAAkH,EAAAlH,EAAA,EACavG,KAAKuM,QAAQI,OAAOmC,KAAK,cAAe,CACzDC,SAAAA,EACA3J,MAAO,IACT,OAHIC,EAAMoI,EAAAhE,EAIZ0F,EAAqB,QAAdqK,EAAGnU,EAAO9B,YAAI,IAAAiW,OAAA,EAAXA,EAAapK,SAAS,GAAG,cAAA3B,EAAA/D,EAAA,EAGhCyF,GAAW,MAAI,EAAA3B,EAAA,SACzB,SAlB+B8E,GAAA,OAAAiH,EAAAjV,MAAC,KAADxB,UAAA,IAoBhC,CAAA3C,IAAA,4BAAAa,MAGA,SAAkCqL,EAAiBC,GAC/C,GAAKD,EAAL,CAOA,GAFArM,KAAKkZ,qBAAoB,OAAQ,QAAD9V,OAASiJ,IAErCC,EACAtM,KAAKkZ,qBAAoB,OAAQ,SAAD9V,OAAUiJ,EAAM,KAAAjJ,OAAIkJ,QACjD,KAC+CsN,EAD/CC,EAAAxT,GACerG,KAAKkZ,qBAAqB3R,QAAM,IAAlD,IAAAsS,EAAAvT,MAAAsT,EAAAC,EAAAtT,KAAAf,MAAoD,KAAzCrF,EAAGyZ,EAAA5Y,MACNb,EAAI2Z,WAAW,SAAD1W,OAAUiJ,EAAM,OAC9BrM,KAAKkZ,qBAAoB,OAAQ/Y,EAEzC,CAAC,OAAAqG,GAAAqT,EAAApT,EAAAD,EAAA,SAAAqT,EAAAnT,GAAA,CACL,CAAC,IAEiDqT,EAFjDC,EAAA3T,GAEiBrG,KAAKkZ,qBAAqB3R,QAAM,IAAlD,IAAAyS,EAAA1T,MAAAyT,EAAAC,EAAAzT,KAAAf,MAAoD,KAAzCrF,EAAG4Z,EAAA/Y,OACNb,EAAI2Z,WAAW,WAAqB,cAAR3Z,IAC5BH,KAAKkZ,qBAAoB,OAAQ/Y,EAEzC,CAAC,OAAAqG,GAAAwT,EAAAvT,EAAAD,EAAA,SAAAwT,EAAAtT,GAAA,CAlBD,MAFI1G,KAAKkZ,qBAAqBjU,OAqBlC,GAAC,CAAA9E,IAAA,oCAAAa,MAED,SAA0C0W,GAAyB,IAAA7P,EAAA,KACzDoS,EAAa,IAAIC,IAAIxC,GAC3BA,EAAQlV,QAAQ,SAAA6J,GACZxE,EAAKqR,qBAAoB,OAAQ,QAAD9V,OAASiJ,GAC7C,GAAG,IAE+C8N,EAF/CC,EAAA/T,GAEerG,KAAKkZ,qBAAqB3R,QAAM,IAAlD,IAAA6S,EAAA9T,MAAA6T,EAAAC,EAAA7T,KAAAf,MAAoD,KAAzCrF,EAAGga,EAAAnZ,MACV,GAAIb,EAAI2Z,WAAW,WAAqB,cAAR3Z,EAC5BH,KAAKkZ,qBAAoB,OAAQ/Y,QAGrC,GAAIA,EAAI2Z,WAAW,UAAW,CAC1B,IAAMO,EAAQla,EAAIma,MAAM,KACpBD,EAAMtX,QAAU,GAAKkX,EAAWhW,IAAIoW,EAAM,KAC1Cra,KAAKkZ,qBAAoB,OAAQ/Y,EAEzC,CACJ,CAAC,OAAAqG,GAAA4T,EAAA3T,EAAAD,EAAA,SAAA4T,EAAA1T,GAAA,CACL,GAAC,CAAAvG,IAAA,0BAAAa,MAED,SAAgCoU,GAC5BpV,KAAKuX,cAAcjV,IAAI,CAAC8S,EAAKvQ,GAAI,IAAIsQ,GAAoBC,EAAMpV,KAAKuM,UACxE,GAAC,CAAApM,IAAA,mBAAAa,MAED,SAAyB4L,GAChB5M,KAAKua,uCAAuC3N,EACrD,GAAC,CAAAzM,IAAA,6BAAAa,MAED,SAAmC4L,GAAgC,IAAA4N,EACN,QAAzDA,EAAAxa,KAAKgY,eAAexX,IAAIoM,EAAG0L,cAAcvJ,SAAS1C,eAAO,IAAAmO,GAAzDA,EAA2DlY,IAAIsK,EAAG0L,eAClEtY,KAAKsZ,0BAA0B1M,EAAG0L,cAAcvJ,SAAS1C,OAAQO,EAAG0L,cAAcvJ,SAASzC,QAC/F,GAAC,CAAAnM,IAAA,sBAAAa,MAED,SAA4B4L,GACxB5M,KAAK+X,uBAAuB,CAACnL,EAAG0L,cAAcvJ,SAAS1C,QAAS,CAACO,EAAG0L,gBACpEtY,KAAKsZ,0BAA0B1M,EAAG0L,cAAcvJ,SAAS1C,OAAQO,EAAG0L,cAAcvJ,SAASzC,QAC/F,GAAC,CAAAnM,IAAA,oBAAAa,MAED,SAA0B4L,GACtB5M,KAAKuX,cAAa,OAAQ3K,EAAG/H,IAC7B7E,KAAKya,kCAAkC7N,EAAG/H,GAC9C,GAAC,CAAA1E,IAAA,iBAAAa,MAED,SAAuB4L,GACnB5M,KAAK0a,wBAAwB9N,EAAGwI,MAChCpV,KAAKya,kCAAkC7N,EAAGwI,KAAKvQ,GACnD,GAAC,CAAA1E,IAAA,iBAAAa,MAED,SAAuB4L,GACnB5M,KAAKuX,cAAa,OAAQ3K,EAAG/H,IAC7B7E,KAAKya,kCAAkC7N,EAAG/H,GAC9C,GAAC,CAAA1E,IAAA,iBAAAa,OAAA2Z,EAAA9P,GAAAR,KAAAE,EAED,SAAAoD,EAA6Bf,GAAY,IAAAvH,EAAAiT,EAAA,OAAAjO,KAAAC,EAAA,SAAAsD,GAAA,cAAAA,EAAArH,GAAA,WACjCvG,KAAKgY,eAAe/T,IAAI2I,EAAGP,QAAS,CAAFuB,EAAArH,EAAA,eAAAqH,EAAArH,EAAA,EAGbvG,KAAKuM,QAAQI,OAAOmC,KACrC,oBACA,CAACC,SAAU,CAAC1C,OAAQO,EAAGP,OAAQC,QAASM,EAAGiJ,MAAMhR,MACpD,OAHKQ,EAAMuI,EAAAnE,GAIN6O,EAAgBjT,EAAO9B,KAAKyU,eAAe,MAE7ChY,KAAKgY,eAAexX,IAAIoM,EAAGP,QAAQ/J,IAAIgW,GACvCtY,KAAKsZ,0BAA0B1M,EAAGP,OAAQO,EAAGiJ,MAAMhR,KACtD,cAAA+I,EAAAlE,EAAA,KAAAiE,EAAA,SAER,SAd2BiN,GAAA,OAAAD,EAAArW,MAAC,KAADxB,UAAA,KAAA3C,IAAA,qBAAAa,MAgB5B,SAA2B4L,GAAwB,IAAAiO,EACJ,QAA3CA,EAAA7a,KAAKgY,eAAexX,IAAIoM,EAAGmC,SAAS1C,eAAO,IAAAwO,GAA3CA,EAAA,OAAoDjO,EAAGmC,SAASzC,SAChEtM,KAAKsZ,0BAA0B1M,EAAGmC,SAAS1C,OAAQO,EAAGmC,SAASzC,QACnE,GAAC,CAAAnM,IAAA,gBAAAa,MAED,SAAsB4L,GAAmB,IAAA7E,EAAA,KACrC/H,KAAKgY,eAAe9R,YACpBlG,KAAK8X,uBAAuBgD,YAC5B9a,KAAKsZ,4BACLtZ,KAAKuX,cAAcrR,YACnB0G,EAAGO,MAAMmD,MAAM9N,QAAQ,SAAA4S,GAAI,OAAIrN,EAAK2S,wBAAwBtF,EAAK,GACjEpV,KAAKsX,gBAAgB/O,SACzB,GAAC,CAAApI,IAAA,yCAAAa,OAAA+Z,EAAAlQ,GAAAR,KAAAE,EAED,SAAAuD,EAAqDlB,GAAc,IAAAoO,EAAAC,EAAA3C,EAAA4C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAnR,KAAAC,EAAA,SAAAyD,GAAA,cAAAA,EAAAxH,GAAA,OAEW,GADpE0U,EAAqBjb,KAAKgY,eAAexX,IAAIoM,EAAGuC,QAAQJ,SAAS1C,QACjEiM,EAAgB2C,aAAkB,EAAlBA,EAAoBza,IAAIoM,EAAGuC,QAAQJ,SAASzC,SAE7D2O,GAAuB3C,GAAqC,cAApB1L,EAAGuC,QAAQ7L,KAAoB,CAAAyK,EAAAxH,EAAA,eAAAwH,EAAArE,EAAA,UAKd,GAAjDkD,EAAGuC,QAAQsM,OAAOC,KAAK7W,MAAsB,QAApBmW,EAAKhb,KAAKuM,QAAQoP,UAAE,IAAAX,OAAA,EAAfA,EAAiBnW,IAIlD,CAAFkJ,EAAAxH,EAAA,QAEJ2U,EAAS,CAACU,OAAQ,EAAGC,iBAAkBjP,EAAGuC,QAAQtK,IAAIkJ,EAAAxH,EAAA,kBAC3B,SAApBqG,EAAGuC,QAAQ7L,KAAe,CAAAyK,EAAAxH,EAAA,eAAAwH,EAAAxH,EAAA,EAEZvG,KAAKuM,QAAQ+D,MAAMwL,MAAMlP,EAAGuC,QAAQJ,SAAS1C,QAAO,OAAnEgP,EAAMtN,EAAAtE,EACN6R,EAAU,GAAHlY,OAAAmB,GAAiC,QAAjC4W,EAA0B,QAA1BC,EAAQC,EAAOU,mBAAW,IAAAX,OAAA,EAAlBA,EAAoBY,aAAK,IAAAb,EAAAA,EAAI,IAAE5W,GAAM8W,EAAOW,QAC3DT,EAAkB,GAAHnY,OAAAmB,GACd+W,EAAQpZ,IAAI,SAAA2C,GAAE,YAAAzB,OAAUyB,EAAE,QAAI,MAAAzB,OAC5BwJ,EAAGuC,QAAQsM,OAAOC,KAAK7W,GAAE,OAE5B2W,EAAgBD,EAAgBU,KAAK,SAAA3a,GAAO,OAAIsL,EAAGuC,QAAQ+M,QAAQvK,SAASrQ,EAAQ,GAE1F4Z,EAAS,CACLU,OAAiC,OAAzBtD,EAAcsD,OAAkB,KAAOtD,EAAcsD,OAAS,EACtEpD,UAAU,EACVI,aAAcN,EAAcM,cAAgB4C,EAAgB,EAAI,IAClEzN,EAAAxH,EAAA,eAGF2U,EAAS,CACLU,OAAiC,OAAzBtD,EAAcsD,OAAkB,KAAOtD,EAAcsD,OAAS,EACtEpD,UAAU,GACZ,OAGNyC,EAAmB3Y,IAAGgM,GAAAA,GAAC,CAAC,EAAGgK,GAAkB4C,IAC7Clb,KAAKsZ,0BAA0B1M,EAAGuC,QAAQJ,SAAS1C,OAAQO,EAAGuC,QAAQJ,SAASzC,SAAS,cAAAyB,EAAArE,EAAA,KAAAoE,EAAA,SAC3F,SAzCmDqO,GAAA,OAAApB,EAAAzW,MAAC,KAADxB,UAAA,KAAA3C,IAAA,yBAAAa,MA2CpD,SAA+B0W,EAAmBM,GAAuC,IAAA5P,EAAA,KAC/EgU,EAAoD,CAAC,EAG3DpE,EAAexV,QAAQ,SAAA8V,GAAiB,IAAA+D,EAAAC,EACO,QAA3CA,EAAAF,EAAYC,EAAC/D,EAAcvJ,SAAS1C,eAAO,IAAAiQ,IAA3CF,EAAYC,GAAoC,IAChDD,EAAa9D,EAAcvJ,SAAS1C,QAAQhK,KAAKiW,EACrD,GAEAZ,EAAQlV,QAAQ,SAAA6J,GAOc,IAAAkQ,EANpBnU,EAAK4P,eAAe/T,IAAIoI,IAC1BjE,EAAK4P,eAAe1V,IAAI,CAAC+J,EAAQ,IAAI1E,EACjC,SAAA2Q,GAAa,OAAIA,EAAcvJ,SAASzC,OAAO,KAInD8P,EAAa/P,KACbkQ,EAAAnU,EAAK4P,eAAexX,IAAI6L,IAAQ/J,IAAGgC,MAAAiY,EAAAhY,GAAI6X,EAAa/P,IAE5D,GAEArM,KAAKwc,kCAAkC9E,EAC3C,GAAC,CAAAvX,IAAA,oCAAAa,MAED,SAA0CqL,GACtCrM,KAAKgY,eAAc,OAAQ3L,GAC3BrM,KAAK8X,uBAAuB2E,OAAOpQ,GACnCrM,KAAKsZ,0BAA0BjN,EACnC,IAnZJvD,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EA0UKkS,EA9BAJ,EAvGDpB,EA1EAd,EAjBAL,EA5BAH,EA9BAT,EARAH,CA2WC,CA9XuB,G,m0ECrB5B,IAAA5Q,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAe,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GAkBO,IAAM0T,GAAY,WAkCrB,OApDJjW,EA4BI,SAAAiW,EAA2BnQ,GAA2B,IAAA3J,EAAA,MA5B1D,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCA4B0D5I,CAAA,KAAAwb,GAAAvb,GAAA,wBAAAA,GAAA,YAP9B,IAAIwG,EAAwC,OAAKxG,GAAA,cAC/C,IAAIiD,GAAqEjD,GAAA,eACxE,IAAIiD,GAA0EjD,GAAA,uBACtE,IAAIkH,GAAclH,GAAA,uBAClB,IAAIqH,GAAiBrH,GAAA,sBACtB,IAAIqH,GAAiB,KAE5B+D,QAAAA,EACvBvM,KAAKoP,SAAW,IAAI0H,GAAgBvK,GAEpCvM,KAAKuM,QAAQI,OAAOnF,GAAG,aAAc,SAAAoF,GAAE,OAAIhK,EAAKiK,iBAAiBD,EAAG,GACpE5M,KAAKuM,QAAQI,OAAOnF,GAAG,mBAAoB,SAAAoF,GAAE,OAAIhK,EAAKkK,uBAAuBF,EAAG,GAChF5M,KAAKuM,QAAQI,OAAOnF,GAAG,WAAY,SAAAoF,GAAE,OAAIhK,EAAK0S,eAAe1I,EAAG,GAChE5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAK2S,mBAAmB3I,EAAG,GACxE5M,KAAKuM,QAAQI,OAAOnF,GAAG,aAAc,SAAAoF,GAAE,OAAIhK,EAAK+Z,iBAAiB/P,EAAG,GACpE5M,KAAKuM,QAAQI,OAAOnF,GAAG,WAAY,SAAAoF,GAAE,OAAIhK,EAAKwU,eAAexK,EAAG,GAChE5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKyS,kBAAkBzI,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKuU,kBAAkBvK,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAKga,mBAAmBhQ,EAAG,GACxE5M,KAAKuM,QAAQI,OAAOnF,GAAG,mBAAoB,SAAAoF,GAAE,OAAIhK,EAAKia,uBAAuBjQ,EAAG,GAChF5M,KAAKuM,QAAQI,OAAOnF,GAAG,iBAAkB,SAAAoF,GAAE,OAAIhK,EAAKka,qBAAqBlQ,EAAG,GAC5E5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKma,kBAAkBnQ,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,oBAAqB,SAAAoF,GAAE,OAAIhK,EAAKoa,wBAAwBpQ,EAAG,GAClF5M,KAAKuM,QAAQI,OAAOnF,GAAG,kBAAmB,SAAAoF,GAAE,OAAIhK,EAAKqa,sBAAsBrQ,EAAG,GAC9E5M,KAAKuM,QAAQI,OAAOnF,GAAG,qBAAsB,SAAAoF,GAAE,OAAIhK,EAAKsa,yBAAyBtQ,EAAG,GACpF5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAKua,mBAAmBvQ,EAAG,GACxE5M,KAAKuM,QAAQI,OAAOnF,GAAG,YAAa,SAAAoF,GAAE,OAAIhK,EAAKua,mBAAmBvQ,EAAG,GACrE5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKwa,kBAAkBxQ,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,UAAW,SAAAoF,GAAE,OAAIhK,EAAKmU,cAAcnK,EAAG,EAClE,EAlDJ9D,EAoDI,EAAA3I,IAAA,aAAAa,OAAAqc,EAAAxS,GAAAR,KAAAE,EAGA,SAAA6I,EAAwB/G,GAAc,IAAAzI,EAAA,YAAAyG,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,OASjC,OARGvG,KAAKsd,gBAAgBpF,SAAS7L,IAC9BrM,KAAKsd,gBAAgBnF,mBAAkBtN,GAAAR,KAAAE,EAAC,SAAAyI,IAAA,IAAA3N,EAAA,OAAAgF,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,cAAA0M,EAAA1M,EAAA,EACf3C,EAAK2I,QAAQI,OAAOmC,KAAK,iBAAkB,CAACjK,GAAIwH,IAAQ,OAAjE,KAANhH,EAAM4N,EAAAxJ,GACDtF,MAAO,CAAF8O,EAAA1M,EAAA,cACNlB,EAAOlB,MAAK,OAEtBP,EAAKmZ,kBAAkB1X,EAAO9B,MAAM,cAAA0P,EAAAvJ,EAAA,KAAAsJ,EAAA,IACrC3G,GACNiH,EAAA/M,EAAA,EAEKvG,KAAKsd,gBAAgB9c,IAAI6L,GAAO,cAAAiH,EAAA5J,EAAA,EAC/B1J,KAAKud,QAAQ/c,IAAI6L,IAAO,EAAA+G,EAAA,SAClC,SAbsBgB,GAAA,OAAAiJ,EAAA/Y,MAAC,KAADxB,UAAA,IAevB,CAAA3C,IAAA,QAAAa,OAAAwc,EAAA3S,GAAAR,KAAAE,EAGA,SAAAqJ,EAAmBvH,GAAc,IAAAoR,EAAAF,EAAA,OAAAlT,KAAAC,EAAA,SAAAuJ,GAAA,cAAAA,EAAAtN,GAAA,cAAAsN,EAAAtN,EAAA,EACPvG,KAAKuM,QAAQuP,QAAO,OAAI,GAAxC2B,EAAM5J,EAAApK,EAAgC5E,GAEtC7E,KAAK0d,KAAKzZ,IAAIoI,GAAS,CAAFwH,EAAAtN,EAAA,eAAAsN,EAAAnK,EAAA,OAEhB5H,GAAS,cAAA+R,EAAAtN,EAAA,EAGEvG,KAAK2d,WAAWtR,GAAO,OAAhC,OAAPkR,EAAO1J,EAAApK,EAAAoK,EAAAnK,EAAA,EACN6T,aAAO,EAAPA,EAASlZ,MAAMuZ,KAAK,SAAAvC,GAAM,IAAAwC,EAAAC,EAAA,OAAoB,QAAhBD,EAAY,QAAZC,EAACzC,EAAOK,YAAI,IAAAoC,OAAA,EAAXA,EAAajZ,UAAE,IAAAgZ,EAAAA,EAAIxC,EAAOU,YAAYL,KAAK7W,MAAQ4Y,CAAM,IAAC,EAAA7J,EAAA,SACnG,SAViBtG,GAAA,OAAAkQ,EAAAlZ,MAAC,KAADxB,UAAA,IAYlB,CAAA3C,IAAA,MAAAa,MAAA,eAAA+c,EAAAlT,GAAAR,KAAAE,EAGA,SAAA0J,IAAA,OAAA5J,KAAAC,EAAA,SAAA4J,GAAA,cAAAA,EAAA3N,GAAA,cAAA2N,EAAA3N,EAAA,EACUvG,KAAKsX,gBAAgBhP,QAAO,cAAA4L,EAAAxK,EAAA,EAC3B1J,KAAK0d,MAAI,EAAAzJ,EAAA,SAFJ,OAGf,WAHe,OAAA8J,EAAAzZ,MAAC,KAADxB,UAAA,EAHhB,IAQA,CAAA3C,IAAA,YAAAa,OAAAgd,EAAAnT,GAAAR,KAAAE,EAIA,SAAA+J,EAAuBjI,EAAgB4R,GAA6B,IAAAC,EAAAC,EAAA7V,EAAAlC,EAAAD,EAAAmG,EAAAiI,EAAA1N,EAAA,YAAAwD,KAAAC,EAAA,SAAAkK,GAAA,cAAAA,EAAAlL,EAAAkL,EAAAjO,GAAA,cAAAiO,EAAAjO,EAAA,EAC1DvG,KAAKsX,gBAAgBhP,QAAO,UAE9B2V,UAAAA,EAAoBlb,OAAM,CAAAyR,EAAAjO,EAAA,QAEpB2X,EAAW,SAAC5R,GAAe,IAAA8R,EAAA,QAA8B,QAAzBA,EAAEvX,EAAKwX,OAAO7d,IAAI6L,UAAO,IAAA+R,GAAvBA,EAAyBna,IAAIqI,IAAczF,EAAKyX,eAAera,IAAIoI,EAASC,GAAQ,GACtH6R,EAAaF,EAAmB9L,OAAO+L,IAE9Bnb,SACLuF,EAAUtI,KAAKuM,QAChBI,OACAmC,KAAK,YAAa,CAACzC,OAAAA,EAAQgN,SAAU8E,IACrCvT,KAAK,SAAAvF,GAAM,IAAAkZ,EAAA,OAAgD,QAAhDA,EAAI1X,EAAKwX,OAAO7d,IAAI6E,EAAO9B,KAAKwL,SAAS1C,eAAO,IAAAkS,OAAA,EAA5CA,EAA8Cjc,IAAGgC,MAAAia,EAAAha,GAAIc,EAAO9B,KAAK8a,QAAO,GAE5FF,EAAW3b,QAAQ,SAAA8J,GAAO,OAAIzF,EAAKyX,eAAe3V,SAASL,EAAS+D,EAASC,EAAQ,IACxFlG,EAAAC,GAEqB4X,GAAkBzJ,EAAAlL,EAAA,EAAAlD,EAAAE,IAAA,WAAAH,EAAAC,EAAAG,KAAAf,KAAE,CAAFgP,EAAAjO,EAAA,QAAtB,OAAP+F,EAAOnG,EAAAnF,MAAAwT,EAAAjO,EAAA,EACRvG,KAAKse,eAAe9d,IAAI6L,EAASC,GAAQ,OAAAkI,EAAAjO,EAAA,eAAAiO,EAAAjO,EAAA,eAAAiO,EAAAlL,EAAA,EAAAiL,EAAAC,EAAA/K,EAAArD,EAAAK,EAAA8N,GAAA,cAAAC,EAAAlL,EAAA,EAAAlD,EAAAM,IAAA8N,EAAA9N,EAAA,iBAAA8N,EAAA9K,EAAA,EAIhD1J,KAAKqe,OAAO7d,IAAI6L,IAAO,EAAAiI,EAAA,qBACjC,SAvBqBnG,EAAAsB,GAAA,OAAAuO,EAAA1Z,MAAC,KAADxB,UAAA,IAyBtB,CAAA3C,IAAA,wBAAAa,MAIA,SAA6BqL,GAA6C,QAAAmS,EAAA3b,EAAAC,UAAAC,OAA1BsW,EAAQ,IAAApW,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAARmW,EAAQnW,EAAA,GAAAJ,UAAAI,GAC7B,QAAvBsb,EAAAxe,KAAKqe,OAAO7d,IAAI6L,UAAO,IAAAmS,GAAvBA,EAAA,OAA+Bla,MAAAka,EAAInF,EACvC,GAAC,CAAAlZ,IAAA,aAAAa,MAED,WAA+C,QAAAyd,EAAAC,EAAAC,EAAAC,EAAA9a,EAAAhB,UAAAC,OAAzB2U,EAAO,IAAAzU,MAAAa,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAP2T,EAAO3T,GAAAjB,UAAAiB,IACzB0a,EAAAze,KAAK0d,MAAI,OAAOpZ,MAAAma,EAAI/G,IACpBgH,EAAA1e,KAAKud,SAAO,OAAOjZ,MAAAoa,EAAIhH,IACvBiH,EAAA3e,KAAKsd,iBAAgBb,OAAMnY,MAAAqa,EAAIjH,GAE/B,IAAK,IAAL/S,EAAA,EAAAka,EAAqBnH,EAAO/S,EAAAka,EAAA9b,OAAA4B,IAAE,KAAAma,EAAAC,EAAAC,EAAnB3S,EAAMwS,EAAAla,GACP0U,EAA0E,QAAxDyF,EAA0B,QAA1BC,EAAG/e,KAAKqe,OAAO7d,IAAI6L,UAAO,IAAA0S,OAAA,EAAvBA,EAAyB1a,MAAMnC,IAAI,SAAA2T,GAAK,OAAIA,EAAMhR,EAAE,UAAC,IAAAia,EAAAA,EAAI,IACpFE,EAAAhf,KAAKoP,UAAS6P,kBAAiB3a,MAAA0a,EAAA,CAAC3S,GAAMjJ,OAAAmB,GAAK8U,IAC/C,EAEAuF,EAAA5e,KAAKqe,QAAM,OAAO/Z,MAAAsa,EAAIlH,EAC1B,GAAC,CAAAvX,IAAA,uBAAAa,MAED,SAA6ByW,GACzBzX,KAAKkf,WAAU5a,MAAftE,KAAIuE,GACGvE,KAAK0d,KAAK7F,OAAO,UAAWJ,GAASpT,MAAMnC,IAAI,SAAAkT,GAAI,OAAIA,EAAKvQ,EAAE,IAEzE,GAAC,CAAA1E,IAAA,2BAAAa,MAED,SAAiC4L,GAC7B,IACgEkM,EADhED,EAAAxS,GACmBrG,KAAK0d,KAAK7F,OAAO,UAAWjL,EAAG6K,SAASpT,OAAK,IAAhE,IAAAwU,EAAAvS,MAAAwS,EAAAD,EAAAtS,KAAAf,MAAkE,KAAvD4P,EAAI0D,EAAA9X,MACLme,EAAcnf,KAAKud,QAAQ/c,IAAI4U,EAAKvQ,IAE1C,GAAKsa,GAAgBA,EAAYlb,IAAI2I,EAAG6Q,QAAxC,CAOA,IAAM2B,EAAaD,EAAY3e,IAAIoM,EAAG6Q,QAChC1B,EAAcnP,EAAGyO,OACvBU,EAAYL,KAAO0D,EAAWrD,YAAYL,KAC1CyD,EAAY7c,IAAGgM,GAAAA,GAAC,CAAC,EAAI8Q,GAAU,IAAErD,YAAAA,IANjC,CAOJ,CAAC,OAAAvV,GAAAqS,EAAApS,EAAAD,EAAA,SAAAqS,EAAAnS,GAAA,CACL,GAAC,CAAAvG,IAAA,wBAAAa,MAED,SAA8B4L,GAA2B,IAAA9E,EAAA,KACrD9H,KAAK0d,KACA7F,OAAO,UAAWjL,EAAG6K,SAASpT,MAC9B7B,QAAQ,SAAA4S,GAAI,IAAAiK,EAAA,OAA6B,QAA7BA,EAAIvX,EAAKyV,QAAQ/c,IAAI4U,EAAKvQ,WAAG,IAAAwa,OAAA,EAAzBA,EAAA,OAAkCzS,EAAG6Q,OAAO,EACrE,GAAC,CAAAtd,IAAA,0BAAAa,MAED,SAAgC4L,GAA6B,IAAA0S,EAAAlE,EACzD,GAAMpb,KAAKud,QAAQtZ,IAAI2I,EAAGP,QAA1B,CAKA,IAAMkR,EAAUvd,KAAKud,QAAQ/c,IAAIoM,EAAGP,QAC9BgP,EAASkC,EAAQ/c,IAAIoM,EAAG6Q,QACxB8B,EAAY3S,EAAGyO,OACfK,EAA+B,QAA3B4D,EAAqB,QAArBlE,EAAGC,EAAOU,mBAAW,IAAAX,OAAA,EAAlBA,EAAoBM,YAAI,IAAA4D,EAAAA,EAAIjE,EAAOK,KAG5C6D,EAAUxD,YACVwD,EAAUxD,YAAYL,KAAOA,EAE7B6D,EAAU7D,KAAOA,EAGrB6B,EAAQjb,IAAIid,EAdZ,CAeJ,GAAC,CAAApf,IAAA,qBAAAa,MAED,SAA2B4L,GACvB5M,KAAKwf,qBAAqB5S,EAAG/H,GACjC,GAAC,CAAA1E,IAAA,qBAAAa,MAED,SAA2B4L,GAAwB,IAAA6S,EAC5Bzf,KAAKqe,OAAO7d,IAAIoM,EAAGmC,SAAS1C,QACrC,OAAQO,EAAGmC,SAASzC,SAE9B,IAAM8I,EAAOpV,KAAK0d,KAAKld,IAAIoM,EAAGmC,SAAS1C,SAClB,QAAjBoT,EAAArK,EAAKK,oBAAY,IAAAgK,OAAA,EAAjBA,EAAmB5a,MAAO+H,EAAGmC,SAASzC,SACtCtM,KAAK0d,KAAKpb,IAAGgM,GAAAA,GAAC,CAAC,EAAG8G,GAAI,IAAEK,aAAc,OAE9C,GAAC,CAAAtV,IAAA,iBAAAa,MAED,SAAuB4L,GACnB5M,KAAK0f,oBAAoB9S,EAAGP,OAAQO,EAAGiJ,MAC3C,GAAC,CAAA1V,IAAA,sBAAAa,MAED,SAA4BqL,GAA0C,QAAAvG,EAAAhD,UAAAC,OAAvBsb,EAAM,IAAApb,MAAA6C,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANsY,EAAMtY,EAAA,GAAAjD,UAAAiD,GACpB,IAAA4Z,EAAzB3f,KAAKqe,OAAOpa,IAAIoI,IAChBsT,EAAA3f,KAAKqe,OAAO7d,IAAI6L,IAAQ/J,IAAGgC,MAAAqb,EAAItB,GAE/Bre,KAAKqe,OAAO/b,IAAI,CAAC+J,EAAQ,IAAI1E,EAAyC,KAAM0W,IAEpF,GAAC,CAAAle,IAAA,mBAAAa,MAED,SAAyB4L,GACrB5M,KAAK4f,eAAehT,EAAGwI,KAC3B,GAAC,CAAAjV,IAAA,oBAAAa,MAED,SAA0B4L,GAClB5M,KAAK0d,KAAKzZ,IAAI2I,EAAGwI,KAAKvQ,KACtB7E,KAAK0d,KAAKpb,IAAIsK,EAAGwI,KAEzB,GAAC,CAAAjV,IAAA,oBAAAa,MAED,SAA0B4L,GACtB5M,KAAKkf,WAAWtS,EAAG/H,GACvB,GAAC,CAAA1E,IAAA,qBAAAa,MAED,SAA2B4L,GAAwB,IAAAiT,EACzCzK,EAAOpV,KAAK0d,KAAKld,IAAIoM,EAAGmC,SAAS1C,QAMvC,GAJuC,QAAvCwT,EAAI7f,KAAKqe,OAAO7d,IAAIoM,EAAGmC,SAAS1C,eAAO,IAAAwT,GAAnCA,EAAqC5b,IAAI2I,EAAGiJ,MAAMhR,KAClD7E,KAAKqe,OAAO7d,IAAIoM,EAAGmC,SAAS1C,QAAQ/J,IAAIsK,EAAGiJ,OAG3CT,EAAKK,aAAa5Q,KAAO+H,EAAGiJ,MAAMhR,GAAI,CACtC,IAAMib,EAAOxR,GAAA,GAAQ8G,GACrB0K,EAAQrK,aAAe7I,EAAGiJ,MAC1B7V,KAAK0d,KAAKpb,IAAIwd,EAClB,CACJ,GAAC,CAAA3f,IAAA,iBAAAa,MAED,WAA+C,QAAA+e,EAAAhZ,EAAAjE,UAAAC,OAArBuN,EAAK,IAAArN,MAAA8D,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAALsJ,EAAKtJ,GAAAlE,UAAAkE,GAC3B,IAAK,IAALjC,EAAA,EAAAib,EAAmB1P,EAAKvL,EAAAib,EAAAjd,OAAAgC,IAAE,CAArB,IAAMqQ,EAAI4K,EAAAjb,GACPqQ,EAAKK,cACLzV,KAAK0f,oBAAoBtK,EAAKvQ,GAAIuQ,EAAKK,cAGzB,OAAdL,EAAK9R,MAAiB8R,EAAK6K,aAI3BjgB,KAAK+c,kBAAkB,CACnBlY,GAAIuQ,EAAKvQ,GACT0Y,QAASnI,EAAK6K,WAAW/d,IAAI,SAAAwZ,GAAI,MAAK,CAClCA,KAAAA,EACAK,YAAa,KACbC,MAAO,KACPkE,YAAa,KACbC,WAAY,KACZC,OAAQ,GACX,KAELpgB,KAAKsd,gBAAgB3U,SAAS9E,QAAQ0E,UAAW6M,EAAKvQ,IAE9D,EACAkb,EAAA/f,KAAK0d,MAAKpb,IAAGgC,MAAAyb,EAAIzP,EACrB,GAAC,CAAAnQ,IAAA,iBAAAa,MAED,SAAuB4L,GACnB5M,KAAKkf,WAAWtS,EAAG/H,GACvB,GAAC,CAAA1E,IAAA,yBAAAa,MAED,SAA+B4L,GACvB5M,KAAKud,QAAQtZ,IAAI2I,EAAGP,SACpBrM,KAAKud,QAAQ/c,IAAIoM,EAAGP,QAAQ/J,IAAIsK,EAAGyO,OAE3C,GAAC,CAAAlb,IAAA,uBAAAa,MAED,SAA6B4L,GACrB5M,KAAKud,QAAQtZ,IAAI2I,EAAGP,SACpBrM,KAAKud,QAAQ/c,IAAIoM,EAAGP,QAAO,OAAQO,EAAG6Q,OAE9C,GAAC,CAAAtd,IAAA,oBAAAa,MAED,SAA0B4L,GAChB5M,KAAKud,QAAQtZ,IAAI2I,EAAG/H,KACtB7E,KAAKud,QAAQjb,IAAI,CACbsK,EAAG/H,GACH,IAAI8C,EACA,SAAA0T,GAAM,IAAAgF,EAAAC,EAAA,OAAmB,QAAnBD,EAAe,QAAfC,EAAIjF,EAAOK,YAAI,IAAA4E,OAAA,EAAXA,EAAazb,UAAE,IAAAwb,EAAAA,EAAIhF,EAAOU,YAAYL,KAAK7W,EAAE,EACvD+H,EAAG2Q,UAInB,GAAC,CAAApd,IAAA,gBAAAa,MAED,SAAsB4L,GAClB5M,KAAK0d,KAAKxX,YACVlG,KAAKqe,OAAOnY,YACZlG,KAAKse,eAAexD,YACpB9a,KAAKud,QAAQrX,YACblG,KAAKsd,gBAAgBxC,YAErB9a,KAAK4f,eAActb,MAAnBtE,KAAIuE,GAAmBqI,EAAGO,MAAMmD,QAEhCtQ,KAAKsX,gBAAgB/O,SACzB,GAAC,CAAApI,IAAA,oBAAAa,MAED,SAA0B4L,GAAuB,IAAA2T,EAE7CvgB,KAAKud,QAAQlZ,MAAM7B,QAAQ,SAAC+a,GACxB,IAAMlC,EAASkC,EAAQ/c,IAAIoM,EAAG8O,KAAK7W,IAEnC,GAAMwW,EAAN,CAKA,IAAMkE,EAAqBjR,GAAA,GAAO+M,GAE9BA,EAAOK,KACP6D,EAAU7D,KAAO9O,EAAG8O,KAEpB6D,EAAUxD,YAAYL,KAAO9O,EAAG8O,KAGpC6B,EAAQjb,IAAIid,EAVZ,CAWJ,GAGA,IAAMiB,EAAmB,GACzBxgB,KAAK0d,KAAKrZ,MAAM7B,QAAQ,SAAA4S,GAAQ,IAAAqL,EACT,QAAnBA,EAAIrL,EAAK6K,kBAAU,IAAAQ,GAAfA,EAAiBxE,KAAK,SAAAP,GAAI,OAAIA,EAAK7W,KAAO+H,EAAG8O,KAAK7W,EAAE,KACpDuQ,EAAK6K,WAAa7K,EAAK6K,WAAW/d,IAAI,SAAAwZ,GAAI,OAAIA,EAAK7W,KAAO+H,EAAG8O,KAAK7W,GAAK+H,EAAG8O,KAAOA,CAAI,GACrF8E,EAASne,KAAIiM,GAAC,CAAC,EAAG8G,IAE1B,IACAmL,EAAAvgB,KAAK0d,MAAKpb,IAAGgC,MAAAic,EAAIC,EACrB,GAAC,CAAArgB,IAAA,mBAAAa,MAED,SAAyB4L,GAAsB,IAAA8T,EACrCrC,EAASre,KAAKqe,OAAO7d,IAAIoM,EAAGuC,QAAQJ,SAAS1C,QAC7CwJ,EAAQwI,aAAM,EAANA,EAAQ7d,IAAIoM,EAAGuC,QAAQJ,SAASzC,SAE9C,GAAKuJ,EAAL,CAIA,IAAM8K,EAAQrS,GAAAA,GAAA,GACPuH,GAAK,IACR+K,aAAc/K,EAAM+K,aAAe,EACnC3P,YAAarE,EAAGuC,UAGpBkP,EAAO/b,IAAIqe,GACX,IAAMvL,EAAOpV,KAAK0d,KAAKld,IAAIoM,EAAGuC,QAAQJ,SAAS1C,SAE1B,QAAjBqU,EAAAtL,EAAKK,oBAAY,IAAAiL,OAAA,EAAjBA,EAAmB7b,MAAO+H,EAAGuC,QAAQJ,SAASzC,SAC9CtM,KAAK0d,KAAKpb,IAAGgM,GAAAA,GAAC,CAAC,EAAI8G,GAAI,IAAEK,aAAckL,IAZ3C,CAcJ,GAAC,CAAAxgB,IAAA,yBAAAa,OAAA+Q,EAAAlH,GAAAR,KAAAE,EAED,SAAAyC,EAAqCJ,GAAoB,IAAAyR,EAAAxI,EAAA+K,EAAA3P,EAAAN,EAAA,OAAAtG,KAAAC,EAAA,SAAA4C,GAAA,cAAAA,EAAA3G,GAAA,OAGP,GADxC8X,EAASre,KAAKqe,OAAO7d,IAAIoM,EAAGmC,SAAS1C,UACrCwJ,EAAQwI,aAAM,EAANA,EAAQ7d,IAAIoM,EAAGmC,SAASzC,UAC3B,CAAFY,EAAA3G,EAAA,QAC+D,MAA9Dqa,EAAe5L,KAAK6L,IAAIhL,EAAM+K,aAAehU,EAAG9H,IAAI/B,OAAQ,IACtB,GAAC,CAAAmK,EAAA3G,EAAA,eAAA2G,EAAA3G,EAAA,EAASvG,KAAKoP,SAAS0R,oBAAoBlU,EAAGmC,UAAS,OAAA4B,EAAAzD,EAAAzD,EAAAyD,EAAA3G,EAAA,eAAAoK,EAAG,KAAI,OAArGM,EAAoBN,EAC1B0N,EAAO/b,IAAGgM,GAAAA,GAAC,CAAC,EAAIuH,GAAK,IAAE+K,aAAAA,EAAc3P,YAAAA,KAAwB,cAAA/D,EAAAxD,EAAA,KAAAsD,EAAA,SAEpE,SATmC8E,GAAA,OAAAC,EAAAzN,MAAC,KAADxB,UAAA,KAlXxCgG,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EAgXKkJ,EAnRDiM,EAvBAR,EAlBAH,CA8ToC,CAhWf,GCOlB,SAAS0D,GAAsB1F,GAA+C,IAAAyC,EAAAkD,EACjF,OAAkB,QAAlBlD,EAAOzC,EAAOK,YAAI,IAAAoC,EAAAA,EAAsC,QAAtCkD,EAAK3F,EAAsBU,mBAAW,IAAAiF,OAAA,EAAlCA,EAAoCtF,IAC9D,C,0rDC3BA,IAAAjV,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAe,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GA4BO,IAAMiY,GAAa,WA+BtB,OA3DJxa,EAsCI,SAAAwa,EAA2B1U,GAA2B,IAAA3J,EAAA,MAtC1D,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCAsC0D5I,CAAA,KAAA+f,GAAA9f,GAAA,YAT9B,IAAIwG,EAAyC,OAAKxG,GAAA,aACjD,IAAIiD,GAAoEjD,GAAA,aACxE,IAAIiD,GAA2EjD,GAAA,uBACrE,IAAIiD,GAAmCjD,GAAA,eAC/C,IAAIiD,GAA2EjD,GAAA,uBACvE,IAAIkH,GAAclH,GAAA,qBACpB,IAAIqH,GAAiBrH,GAAA,uBACnB,IAAIqH,GAAiB,KAE7B+D,QAAAA,EACvBvM,KAAKuM,QAAQI,OAAOnF,GAAG,UAAW,SAAAoF,GAAE,OAAIhK,EAAKse,cAActU,EAAG,GAC9D5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKuU,kBAAkBvK,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKyS,kBAAkBzI,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAKua,mBAAmBvQ,EAAG,GACxE5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAKue,mBAAmBvU,EAAG,GACxE5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKwe,kBAAkBxU,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,YAAa,SAAAoF,GAAE,OAAIhK,EAAKua,mBAAmBvQ,EAAG,GACrE5M,KAAKuM,QAAQI,OAAOnF,GAAG,oBAAqB,SAAAoF,GAAE,OAAIhK,EAAKye,wBAAwBzU,EAAG,GAClF5M,KAAKuM,QAAQI,OAAOnF,GAAG,kBAAmB,SAAAoF,GAAE,OAAIhK,EAAKqa,sBAAsBrQ,EAAG,GAC9E5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAK0e,mBAAmB1U,EAAG,GACxE5M,KAAKuM,QAAQI,OAAOnF,GAAG,aAAc,SAAAoF,GAAE,OAAIhK,EAAK2e,iBAAiB3U,EAAG,GACpE5M,KAAKuM,QAAQI,OAAOnF,GAAG,qBAAsB,SAAAoF,GAAE,OAAIhK,EAAK4e,yBAAyB5U,EAAG,GACpF5M,KAAKuM,QAAQI,OAAOnF,GAAG,qBAAsB,SAAAoF,GAAE,OAAIhK,EAAKsa,yBAAyBtQ,EAAG,GACpF5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKwa,kBAAkBxQ,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,UAAW,SAAAoF,GAAE,OAAIhK,EAAK6e,cAAc7U,EAAG,GAC9D5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAK8e,kBAAkB9U,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAK+e,kBAAkB/U,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,UAAW,SAAAoF,GAAE,OAAIhK,EAAKmU,cAAcnK,EAAG,EAClE,EAzDJ9D,EA2DI,EAAA3I,IAAA,MAAAa,MAAA,eAAA+c,EAAAlT,GAAAR,KAAAE,EAGA,SAAAyI,IAAA,OAAA3I,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,cAAA0M,EAAA1M,EAAA,EACUvG,KAAKsX,gBAAgBhP,QAAO,cAAA2K,EAAAvJ,EAAA,EAC3B1J,KAAK0d,MAAI,EAAA1K,EAAA,SAFJ,OAGf,WAHe,OAAA+K,EAAAzZ,MAAC,KAADxB,UAAA,EAHhB,IAQA,CAAA3C,IAAA,WAAAa,OAAA4gB,EAAA/W,GAAAR,KAAAE,EAGA,SAAA6I,EAAsBqE,GAAe,OAAApN,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,cAAA+M,EAAA/M,EAAA,EAC3BvG,KAAKsX,gBAAgBhP,QAAO,cAAAgL,EAAA5J,EAAA,EAC3B1J,KAAKgc,MAAMxb,IAAIiX,IAAQ,EAAArE,EAAA,SACjC,SAHoBgB,GAAA,OAAAwN,EAAAtd,MAAC,KAADxB,UAAA,IAKrB,CAAA3C,IAAA,WAAAa,OAAA6gB,EAAAhX,GAAAR,KAAAE,EAGA,SAAA0J,EAAsBwD,GAAe,IAAA7T,EAAA,YAAAyG,KAAAC,EAAA,SAAA4J,GAAA,cAAAA,EAAA3N,GAAA,OAShC,OARGvG,KAAK8hB,cAAc5J,SAAST,IAC5BzX,KAAK8hB,cAAc3J,mBAAkBtN,GAAAR,KAAAE,EAAC,SAAAqJ,IAAA,IAAAvO,EAAA,OAAAgF,KAAAC,EAAA,SAAAuJ,GAAA,cAAAA,EAAAtN,GAAA,cAAAsN,EAAAtN,EAAA,EACb3C,EAAK2I,QAAQI,OAAOmC,KAAK,gBAAiB,CAACjK,GAAI4S,IAAS,OAAjE,KAANpS,EAAMwO,EAAApK,GACDtF,MAAO,CAAF0P,EAAAtN,EAAA,cACNlB,EAAOlB,MAAK,OAEtBP,EAAK2d,iBAAiBlc,EAAO9B,MAAM,cAAAsQ,EAAAnK,EAAA,KAAAkK,EAAA,IACpC6D,GACNvD,EAAA3N,EAAA,EAEKvG,KAAK8hB,cAActhB,IAAIiX,GAAQ,cAAAvD,EAAAxK,EAAA,EAC9B1J,KAAKsQ,MAAM9P,IAAIiX,IAAQ,EAAAxD,EAAA,SACjC,SAboB3G,GAAA,OAAAuU,EAAAvd,MAAC,KAADxB,UAAA,IAerB,CAAA3C,IAAA,aAAAa,OAAAqc,EAAAxS,GAAAR,KAAAE,EAGA,SAAAyC,EAAwByK,GAAe,IAAA5Q,EAAA,YAAAwD,KAAAC,EAAA,SAAA4C,GAAA,cAAAA,EAAA3G,GAAA,OASlC,OARGvG,KAAKsd,gBAAgBpF,SAAST,IAC9BzX,KAAKsd,gBAAgBnF,mBAAkBtN,GAAAR,KAAAE,EAAC,SAAA+J,IAAA,IAAAjP,EAAA,OAAAgF,KAAAC,EAAA,SAAAkK,GAAA,cAAAA,EAAAjO,GAAA,cAAAiO,EAAAjO,EAAA,EACfM,EAAK0F,QAAQI,OAAOmC,KAAK,kBAAmB,CAACjK,GAAI4S,IAAS,OAAnE,KAANpS,EAAMmP,EAAA/K,GACDtF,MAAO,CAAFqQ,EAAAjO,EAAA,cACNlB,EAAOlB,MAAK,OAEtB0C,EAAKya,mBAAmBjc,EAAO9B,MAAM,cAAAiR,EAAA9K,EAAA,KAAA4K,EAAA,IACtCmD,GACNvK,EAAA3G,EAAA,EAEKvG,KAAKsd,gBAAgB9c,IAAIiX,GAAQ,cAAAvK,EAAAxD,EAAA,EAChC1J,KAAKud,QAAQ/c,IAAIiX,IAAQ,EAAAzK,EAAA,SACnC,SAbsBmB,GAAA,OAAAkP,EAAA/Y,MAAC,KAADxB,UAAA,IAevB,CAAA3C,IAAA,QAAAa,OAAAwc,EAAA3S,GAAAR,KAAAE,EAGA,SAAAiD,EAAmBiK,GAAe,IAAAgG,EAAAF,EAAA,OAAAlT,KAAAC,EAAA,SAAAmD,GAAA,cAAAA,EAAAlH,GAAA,cAAAkH,EAAAlH,EAAA,EACRvG,KAAKuM,QAAQuP,QAAO,OAAI,GAAxC2B,EAAMhQ,EAAAhE,EAAgC5E,GAEtC7E,KAAK0d,KAAKzZ,IAAIwT,GAAU,CAAFhK,EAAAlH,EAAA,eAAAkH,EAAA/D,EAAA,OAEjB5H,GAAS,cAAA2L,EAAAlH,EAAA,EAGEvG,KAAK2d,WAAWlG,GAAQ,OAAjC,OAAP8F,EAAO9P,EAAAhE,EAAAgE,EAAA/D,EAAA,EACN6T,aAAO,EAAPA,EAASlZ,MAAMuZ,KAAK,SAAAvC,GAAM,OAAIA,EAAOK,KAAK7W,KAAO4Y,CAAM,IAAC,EAAAjQ,EAAA,SAClE,SAViBiC,GAAA,OAAA+N,EAAAlZ,MAAC,KAADxB,UAAA,KAAA3C,IAAA,gBAAAa,MAYlB,SAAsB4L,GAClB,IAAMyL,EAAarY,KAAKgc,MAAMxb,IAAIoM,EAAG6K,SACrCY,EAAW/V,IAAIsK,EAAGmV,MAClB/hB,KAAK0d,KAAKld,IAAIoM,EAAG6K,SAASuE,MAAQ3D,EAAWhU,KACjD,GAAC,CAAAlE,IAAA,gBAAAa,MAED,SAAsB4L,GAAmB,IAAAoV,EACX,QAA1BA,EAAAhiB,KAAKsQ,MAAM9P,IAAIoM,EAAG6K,gBAAQ,IAAAuK,GAA1BA,EAA4B1f,IAAIsK,EAAGqV,SACnCjiB,KAAKkiB,gBAAgB5f,IAAI,CAACsK,EAAGqV,QAAQpd,GAAI+H,EAAG6K,SAChD,GAAC,CAAAtX,IAAA,oBAAAa,MAED,SAA0B4L,GACtB,GAAIA,EAAGwI,KAAKqC,SAAWzX,KAAKsQ,MAAMrM,IAAI2I,EAAGwI,KAAKqC,SAAU,CACpD,IAAMnH,EAAQtQ,KAAKsQ,MAAM9P,IAAIoM,EAAGwI,KAAKqC,SACrCnH,EAAMhO,IAAGgM,GAAAA,GAAC,CAAC,EACJgC,EAAM9P,IAAIoM,EAAGwI,KAAKvQ,KAAG,IACxBsd,KAAMvV,EAAGwI,KAAK+M,KACdC,YAAaxV,EAAGwI,KAAKgN,cAE7B,CACJ,GAAC,CAAAjiB,IAAA,oBAAAa,OAAAqhB,EAAAxX,GAAAR,KAAAE,EAED,SAAAoD,EAAgCf,GAAe,IAAA0V,EAAA7K,EAAA8K,EAAAC,EAAA,OAAAnY,KAAAC,EAAA,SAAAsD,GAAA,cAAAA,EAAArH,GAAA,OAER,GAD7BkR,EAAUzX,KAAKkiB,gBAAgB1hB,IAAIoM,EAAG/H,IAC5C7E,KAAKkiB,gBAAe,OAAQtV,EAAG/H,IAEzB4S,EAAS,CAAF7J,EAAArH,EAAA,eAAAqH,EAAAlE,EAAA,UAIP6Y,EAAQviB,KAAK0d,KAAKld,IAAIiX,GACxB+K,GAAe,EAEI,QAAvBF,EAAAtiB,KAAKsQ,MAAM9P,IAAIiX,UAAQ,IAAA6K,GAAvBA,EAAA,OAAgC1V,EAAG/H,IAE/B0d,EAAME,aAAe7V,EAAG/H,KACxB0d,EAAME,WAAa,KACnBD,GAAe,GAGfD,EAAMG,aAAa/Q,SAAS/E,EAAG/H,MAC/B0d,EAAMG,aAAeH,EAAMG,aAAavQ,OAAO,SAAA9F,GAAM,OAAIA,IAAWO,EAAG/H,EAAE,GACzE2d,GAAe,GAGfA,GACAxiB,KAAK0d,KAAKpb,IAAIigB,GACjB,cAAA3U,EAAAlE,EAAA,KAAAiE,EAAA,SACJ,SA1B8BmE,GAAA,OAAAuQ,EAAA/d,MAAC,KAADxB,UAAA,KAAA3C,IAAA,oBAAAa,MA4B/B,SAA0B4L,GACtB,IAAMyL,EAAarY,KAAKgc,MAAMxb,IAAIoM,EAAG6K,SACrCY,EAAU,OAAQzL,EAAG/H,IACrB7E,KAAK0d,KAAKld,IAAIoM,EAAG6K,SAASuE,MAAQ3D,EAAWhU,KACjD,GAAC,CAAAlE,IAAA,qBAAAa,MAED,SAA2B4L,GACvB5M,KAAK0d,KAAKpb,IAAIsK,EAAG2V,MACrB,GAAC,CAAApiB,IAAA,qBAAAa,MAED,SAA2B4L,GAAoC,IAAA+V,EAAAC,EAAAC,EACrDnL,EAA2D,QAApDiL,EAAwB,QAAxBC,EAAG5iB,KAAKsQ,MAAM9P,IAAIoM,EAAG/H,WAAG,IAAA+d,OAAA,EAArBA,EAAuBve,MAAMnC,IAAI,SAAA0C,GAAI,OAAIA,EAAKC,EAAE,UAAC,IAAA8d,EAAAA,EAAI,IACrEE,EAAA7iB,KAAKkiB,iBAAe,OAAO5d,MAAAue,EAAAte,GAAImT,IAE/B1X,KAAKgc,MAAK,OAAQpP,EAAG/H,IACrB7E,KAAKud,QAAO,OAAQ3Q,EAAG/H,IACvB7E,KAAKsd,gBAAgBb,OAAO7P,EAAG/H,IAC/B7E,KAAKsQ,MAAK,OAAQ1D,EAAG/H,IACrB7E,KAAK8hB,cAAcrF,OAAO7P,EAAG/H,IAC7B7E,KAAK0d,KAAI,OAAQ9Q,EAAG/H,GACxB,GAAC,CAAA1E,IAAA,oBAAAa,MAED,SAA0B4L,GACtB5M,KAAK8iB,gBAAgBlW,EAAG2V,MAC5B,GAAC,CAAApiB,IAAA,kBAAAa,MAED,WAAkD,QAAA+hB,EAAAtE,EAAA5b,EAAAC,UAAAC,OAAvB6U,EAAM,IAAA3U,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAN0U,EAAM1U,GAAAJ,UAAAI,IAC7B6f,EAAA/iB,KAAKgc,OAAM1Z,IAAGgC,MAAAye,EAAAxe,GAAKqT,EAAO1V,IAAI,SAAAqgB,GAAK,MAAI,CACnCA,EAAM1d,GACN,IAAI8C,EAAwC,KAAM4a,EAAMvG,OAC3D,MACDyC,EAAAze,KAAK0d,MAAKpb,IAAGgC,MAAAma,EAAI7G,EACrB,GAAC,CAAAzX,IAAA,0BAAAa,MAED,SAAgC4L,GACxB5M,KAAKud,QAAQtZ,IAAI2I,EAAG6K,UACpBzX,KAAKud,QAAQ/c,IAAIoM,EAAG6K,SAASnV,IAAIsK,EAAGyO,OAE5C,GAAC,CAAAlb,IAAA,wBAAAa,MAED,SAA8B4L,GACtB5M,KAAKud,QAAQtZ,IAAI2I,EAAG6K,UACpBzX,KAAKud,QAAQ/c,IAAIoM,EAAG6K,SAAQ,OAAQ7K,EAAG6Q,OAE/C,GAAC,CAAAtd,IAAA,qBAAAa,MAED,SAA2B4L,GACjB5M,KAAKud,QAAQtZ,IAAI2I,EAAG/H,KACtB7E,KAAKud,QAAQjb,IAAI,CACbsK,EAAG/H,GACH,IAAI8C,EAAkC,SAAA0T,GAAM,OAAIA,aAAM,EAANA,EAAQK,KAAK7W,EAAE,EAAE+H,EAAG2Q,UAGhF,GAAC,CAAApd,IAAA,mBAAAa,MAED,SAAyB4L,GAAsB,IAAA9E,EAAA,KACtC9H,KAAKsQ,MAAMrM,IAAI2I,EAAG/H,MACnB7E,KAAKsQ,MAAMhO,IAAI,CAACsK,EAAG/H,GAAI,IAAI8C,EAAkC,KAAMiF,EAAGoW,aACtEpW,EAAGoW,UAAUxgB,QAAQ,SAAAyf,GAAO,OAAIna,EAAKoa,gBAAgB5f,IAAI,CAAC2f,EAAQpd,GAAI+H,EAAG/H,IAAI,GAErF,GAAC,CAAA1E,IAAA,2BAAAa,OAAAiiB,EAAApY,GAAAR,KAAAE,EAED,SAAAuD,EAAuClB,GAAsB,IAAA6K,EAAAyL,EAAAF,EAAAG,EAAAC,EAAA,OAAA/Y,KAAAC,EAAA,SAAAyD,GAAA,cAAAA,EAAAxH,GAAA,OAIzD,GAHMkR,EAAUzX,KAAKkiB,gBAAgB1hB,IAAIoM,EAAGqV,QAAQpd,IAC9Cqe,EAAmBljB,KAAK8hB,cAActhB,IAAIiX,IAM5CA,IAAWyL,EAAgB,CAAAnV,EAAAxH,EAAA,eAAAwH,EAAAxH,EAAA,EACrB2c,EAAgB,OAEhBF,EAAYhjB,KAAKsQ,MAAM9P,IAAIiX,GAC3B0L,EAAaH,EAAUxiB,IAAIoM,EAAGqV,QAAQpd,IAIxCue,EADAD,EACU7U,GAAAA,GAAA,GAAO6U,GAAevW,EAAGqV,SAEtBrV,EAAGqV,QAGpBe,EAAU1gB,IAAI8gB,GAAY,cAAArV,EAAArE,EAAA,KAAAoE,EAAA,SAEjC,SAvBqCwE,GAAA,OAAA2Q,EAAA3e,MAAC,KAADxB,UAAA,KAAA3C,IAAA,2BAAAa,MAyBtC,SAAiC4L,GAC7B,GAAI5M,KAAKud,QAAQtZ,IAAI2I,EAAG6K,SAAU,CAC9B,IAAM8F,EAAUvd,KAAKud,QAAQ/c,IAAIoM,EAAG6K,SAC9B4D,EAASkC,EAAQ/c,IAAIoM,EAAG6Q,QAC9BF,EAAQjb,IAAGgM,GAAAA,GAAC,CAAC,EAAG1B,EAAGyO,QAAM,IAAEK,KAAML,EAAOK,OAC5C,CACJ,GAAC,CAAAvb,IAAA,oBAAAa,MAED,SAA0B4L,GAAuB,IAAAyW,EACvCrH,EAAQhc,KAAKgc,MAAMxb,IAAIoM,EAAG6K,SAC1B6L,EAAUtH,EAAMxb,IAAIoM,EAAGmV,KAAKld,IAC5B0e,EAAU3W,EAAGmV,KACbyB,EAAgB,CAACD,GAEnBD,EAAQG,WAAaF,EAAQE,UAC7BD,EAAcnhB,KAAIiC,MAAlBkf,EAAajf,GDrRlB,SAAsCmf,EAAkBJ,EAAeK,GAE1E,IAAMC,EAAaD,EAAYF,SAAWH,EAAQG,SAAY,EACxDI,GAAcD,EACdE,EAAuB,GAiB7B,OAfAJ,EAASlhB,QAAQ,SAAAuf,GACTA,EAAKld,KAAO8e,EAAY9e,KAIxB+e,GAAaN,EAAQG,UAAY1B,EAAK0B,WACtC1B,EAAK0B,WACLK,EAAazhB,KAAK0f,IAElB8B,GAAaF,EAAYF,UAAY1B,EAAK0B,WAC1C1B,EAAK0B,WACLK,EAAazhB,KAAK0f,IAE1B,GAEO+B,CACX,CCgQmBC,CAA6B/H,EAAM3X,MAAOif,EAASC,MAI9DF,EAAArjB,KAAKgc,MAAMxb,IAAIoM,EAAG6K,UAASnV,IAAGgC,MAAA+e,EAAIG,EACtC,GAAC,CAAArjB,IAAA,gBAAAa,MAED,SAAsB4L,GAClB5M,KAAK0d,KAAKxX,YACVlG,KAAKgc,MAAM9V,YACXlG,KAAKsQ,MAAMpK,YACXlG,KAAK8hB,cAAchH,YACnB9a,KAAKud,QAAQrX,YACblG,KAAKsd,gBAAgBxC,YACrB9a,KAAKkiB,gBAAgBhc,YAErBlG,KAAK8iB,gBAAexe,MAApBtE,KAAIuE,GAAoBqI,EAAGO,MAAMyK,SAEjC5X,KAAKsX,gBAAgB/O,SACzB,GAAC,CAAApI,IAAA,oBAAAa,MAED,SAA0B4L,GACtB5M,KAAKud,QAAQlZ,MAAM7B,QAAQ,SAAC+a,GACxB,IAAMlC,EAASkC,EAAQ/c,IAAIoM,EAAG8O,KAAK7W,IAE7BwW,GAKNkC,EAAQjb,IAAGgM,GAAAA,GAAC,CAAC,EAAG+M,GAAM,IAAEK,KAAM9O,EAAG8O,OACrC,EACJ,IAvTJ5S,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EA4OKoa,EA1FAZ,EAnCD7E,EAlBAH,EAlBAwE,EARAD,CAoPC,CA3RqB,G,4hCC7BnB,IAAKoC,GAAK,SAALA,GAAK,OAALA,EAAAA,EAAK,mBAALA,EAAAA,EAAK,iBAALA,EAAAA,EAAK,eAALA,EAAAA,EAAK,iBAALA,CAAK,MAOJC,GAAoBzf,GAAA,SAAAyf,IAAA/iB,GAAA,KAAA+iB,GAAA9iB,GAAA,qBAAAA,GAAA,0BAKpB+iB,GAAW,kBAAA1f,GAAA,SAAA0f,IAAAhjB,GAAA,KAAAgjB,EAAA,SAAA/jB,IAAA,WAAAa,MAwBpB,WACI,OAAOX,OAAOkH,KAAKvH,KAAK0d,KAC5B,GAAC,CAAAvd,IAAA,YAAAa,MAED,SAAwBmhB,GACpB,OAAOniB,KAAK0d,KAAKyE,EACrB,GAAC,CAAAhiB,IAAA,sBAAAa,MAED,SAAkCmjB,EAAwCC,GAGtE,IAFYpkB,KAAKqkB,UAAUF,GAGvB,MAAM,IAAIjV,MAAM,4BAAD9L,OAA6B+gB,IAGhD,OAAOC,GAASpkB,KAAKqkB,UAAUF,GAAgBG,QACnD,IAAC,CAxCmB,G,o5ECXxB,IAAA7d,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAA+C,GAAA0F,EAAAzI,EAAAqG,GAAA,OAAArG,EAAA8K,GAAA9K,GAAA,SAAAyI,EAAApC,GAAA,GAAAA,IAAA,UAAA0E,GAAA1E,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAqD,UAAA,4EAAArD,GAAA,YAAAA,EAAA,UAAA2E,eAAA,oEAAA3E,CAAA,CAAA4E,CAAAxC,EAAA,CAAAyC,CAAAzC,EAAA0C,KAAAC,QAAAC,UAAArL,EAAAqG,GAAA,GAAAyE,GAAArC,GAAA6C,aAAAtL,EAAAkE,MAAAuE,EAAApC,GAAA,UAAA8E,KAAA,QAAA1C,GAAA8C,QAAAhL,UAAAiL,QAAA/K,KAAA2K,QAAAC,UAAAE,QAAA,wBAAA9C,GAAA,QAAA0C,GAAA,mBAAA1C,CAAA,cAAAqC,GAAArC,GAAA,OAAAqC,GAAA7K,OAAA6J,eAAA7J,OAAA4J,eAAAL,OAAA,SAAAf,GAAA,OAAAA,EAAAsB,WAAA9J,OAAA4J,eAAApB,EAAA,EAAAqC,GAAArC,EAAA,UAAAgD,GAAAhD,EAAApC,GAAA,OAAAoF,GAAAxL,OAAA6J,eAAA7J,OAAA6J,eAAAN,OAAA,SAAAf,EAAApC,GAAA,OAAAoC,EAAAsB,UAAA1D,EAAAoC,CAAA,EAAAgD,GAAAhD,EAAApC,EAAA,UAAAtF,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GDoDC7H,GAzCY+iB,GAAW,OACU,CAC1BK,KAAM,CAACvjB,MAAO,EAAQsjB,SAAUN,GAAMQ,MACtCC,aAAc,CAACzjB,MAAO,EAAQsjB,SAAUN,GAAMU,QAC9CC,YAAa,CAAC3jB,MAAO,EAAQsjB,SAAUN,GAAMY,OAC7CC,YAAa,CAAC7jB,MAAO,EAAQsjB,SAAUN,GAAMY,OAE7CE,aAAc,CAAC9jB,MAAO,GAAQsjB,SAAUN,GAAMQ,MAC9CO,YAAa,CAAC/jB,MAAO,GAAQsjB,SAAUN,GAAMgB,OAC7CC,qBAAsB,CAACjkB,MAAO,IAAQsjB,SAAUN,GAAMY,OACtDM,kBAAmB,CAAClkB,MAAO,IAAQsjB,SAAUN,GAAMQ,MACnDW,eAAgB,CAACnkB,MAAO,IAAQsjB,SAAUN,GAAMgB,OAChDI,kBAAmB,CAACpkB,MAAO,KAASsjB,SAAUN,GAAMgB,OACpDK,YAAa,CAACrkB,MAAO,KAASsjB,SAAUN,GAAMY,OAC9CU,WAAY,CAACtkB,MAAO,KAASsjB,SAAUN,GAAMQ,MAC7Ce,gBAAiB,CAACvkB,MAAO,KAASsjB,SAAUN,GAAMY,OAClDY,gBAAiB,CAACxkB,MAAO,MAASsjB,SAAUN,GAAMY,OAClDa,WAAY,CAACzkB,MAAO,MAASsjB,SAAUN,GAAMQ,MAC7CkB,KAAM,CAAC1kB,MAAO,MAASsjB,SAAUN,GAAMQ,MACvCmB,cAAe,CAAC3kB,MAAO,GAAK,GAAIsjB,SAAUN,GAAMY,OAChDgB,eAAgB,CAAC5kB,MAAO,GAAK,GAAIsjB,SAAUN,GAAMQ,MACjDqB,eAAgB,CAAC7kB,MAAO,GAAK,GAAIsjB,SAAUN,GAAMgB,SCdzD,IAAMc,GAAU,SACZ/W,EACAgX,GAAmC,MAClC,CAAChX,EAAS0I,QAAS1I,EAAS1C,OAAQ0C,EAASzC,QAASyZ,aAAM,EAANA,EAAQziB,KAAMyiB,aAAM,EAANA,EAAQtI,OAAQsI,aAAM,EAANA,EAAQC,QAAQ7T,OAAOxG,SAASsa,KAAK,IAAI,EAE5HC,GACA,SAACC,GAA8D,OAAaL,GAAQK,EAAWpX,SAAUoX,EAAWJ,OAAO,EAcpHK,GAAkB,SAAAzjB,GAI3B,SAAAyjB,EAA2B7Z,GAA2B,IAAA3J,EAYc,OAtDxE,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCA0C0D5I,CAAA,KAAAklB,GAC1CjlB,GAARyB,EAAAO,GAAA,KAAAijB,GAAQ,aAJkB,IAAIhiB,GAAiDjD,GAAAyB,EAAA,qBAC7C,IAAI4F,GAAiB5F,EAEhC2J,QAAAA,EAEvB3J,EAAK2J,QAAQI,OAAOnF,GAAG,uBAAwB,SAAAoF,GAAE,OAAIhK,EAAKyjB,2BAA2BzZ,EAAG,GACxFhK,EAAK2J,QAAQI,OAAOnF,GAAG,8BAA+B,SAAAoF,GAAE,OAAIhK,EAAKyjB,2BAA2BzZ,EAAG,GAC/FhK,EAAK2J,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAKua,mBAAmBvQ,EAAG,GACxEhK,EAAK2J,QAAQI,OAAOnF,GAAG,YAAa,SAAAoF,GAAE,OAAIhK,EAAKua,mBAAmBvQ,EAAG,GACrEhK,EAAK2J,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAKuU,kBAAkBvK,EAAG,GACtEhK,EAAK2J,QAAQI,OAAOnF,GAAG,WAAY,SAAAoF,GAAE,OAAIhK,EAAKuU,kBAAkBvK,EAAG,GACnEhK,EAAK2J,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAK2S,mBAAmB3I,EAAG,GACxEhK,EAAK2J,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAK8e,kBAAkB9U,EAAG,GACtEhK,EAAK2J,QAAQI,OAAOnF,GAAG,qBAAsB,SAAAoF,GAAE,OAAIhK,EAAKsa,yBAAyBtQ,EAAG,GACpFhK,EAAK2J,QAAQI,OAAOnF,GAAG,oBAAqB,SAAAoF,GAAE,OAAIhK,EAAKoa,wBAAwBpQ,EAAG,GAClFhK,EAAK2J,QAAQI,OAAOnF,GAAG,UAAW,SAAAoF,GAAE,OAAIhK,EAAKmU,cAAcnK,EAAG,GAAEhK,CACpE,CAAC,OAvDL,SAAAiG,EAAApC,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAAqD,UAAA,sDAAAjB,EAAAlI,UAAAN,OAAA+I,OAAA3C,GAAAA,EAAA9F,UAAA,CAAA+K,YAAA,CAAA1K,MAAA6H,EAAA6B,UAAA,EAAAD,cAAA,KAAApK,OAAAC,eAAAuI,EAAA,aAAA6B,UAAA,IAAAjE,GAAAoF,GAAAhD,EAAApC,EAAA,CAuDKpD,CAAA+iB,EAAAzjB,GAvDL8D,EAuDK2f,EAvDLtd,EAuDK,EAAA3I,IAAA,gBAAAa,OAAAslB,EAAAzb,GAAAR,KAAAE,EAED,SAAA6I,EACIrE,EACAgX,GAAkC,IAAAlhB,EAAAjB,EAAA,YAAAyG,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,OAiBjC,OAfDvG,KAAKumB,iBAAiBxX,GAEhBlK,EAAKihB,GAAQ/W,EAAUgX,GAEzB/lB,KAAKwmB,mBAAmBtO,SAASrT,IACjC7E,KAAKwmB,mBAAmBrO,mBAAkBtN,GAAAR,KAAAE,EAAC,SAAAyI,IAAA,IAAA3N,EAAA,OAAAgF,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,cAAA0M,EAAA1M,EAAA,EAClB3C,EAAK2I,QAAQI,OAAOmC,KACrC,0BACA,CAACC,SAAAA,EAAUgX,OAAAA,IACd,OAHW,KAAN1gB,EAAM4N,EAAAxJ,GAIDtF,MAAO,CAAF8O,EAAA1M,EAAA,cACNlB,EAAOlB,MAAK,OAEtBP,EAAKyiB,2BAA2BhhB,EAAO9B,MAAM,cAAA0P,EAAAvJ,EAAA,KAAAsJ,EAAA,IAC9CnO,GACNyO,EAAA/M,EAAA,EAEKvG,KAAKwmB,mBAAmBhmB,IAAIqE,GAAG,cAAAyO,EAAA5J,EAAA,EAC9B1J,KAAKmmB,WAAW3lB,IAAIqE,IAAG,EAAAuO,EAAA,SACjC,SAvByBgB,EAAA9G,GAAA,OAAAgZ,EAAAhiB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,QAAAa,OAAAylB,EAAA5b,GAAAR,KAAAE,EAyB1B,SAAAqJ,EACI8S,EACA3X,GAAsB,IAAA4X,EAAAC,EAAA,OAAAvc,KAAAC,EAAA,SAAAuJ,GAAA,cAAAA,EAAAtN,GAAA,UAEhBmgB,EAAgB3jB,OAAQ,CAAF8Q,EAAAtN,EAAA,cAClB,IAAI2I,MAAM,0CAAyC,cAAA2E,EAAAtN,EAAA,EAG9BvG,KAAK6mB,qBAAqB9X,GAAS,OAO/D,OAPG4X,EAAgB9S,EAAApK,EAChBmd,EAAoB,GAE1BF,EAAgBlkB,QAAQ,SAAA2f,IACdwE,EAAmBzC,GAAYG,UAAUlC,GAAMnhB,OACjD4lB,EAAQvkB,KAAK8f,EAErB,GAAGtO,EAAAnK,EAAA,EAEI,CACHod,GAAuB,IAAnBF,EAAQ7jB,OACZgkB,OAA2B,IAAnBH,EAAQ7jB,OAChBikB,OAAQJ,EAAQ7jB,OAAS2jB,EAAgB3jB,OACzC6jB,QAAAA,IACH,EAAAhT,EAAA,SACJ,SAvBiBzF,EAAAsB,GAAA,OAAAgX,EAAAniB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,uBAAAa,OAAAimB,EAAApc,GAAAR,KAAAE,EAyBlB,SAAA0J,EAAkClF,GAAsB,IAAAmY,EAAAC,EAAAC,EAAAC,EAAAC,EAAAlS,EAAAqI,EAAA8J,EAAAC,EAAAzL,EAAAqD,EAAAqI,EAAAhf,EAAAif,EAAAC,EAAApT,EAAA5D,EAAAC,EAAAC,EAAAC,EAAA8W,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA3d,KAAAC,EAAA,SAAA4J,GAAA,cAAAA,EAAA3N,GAAA,WACvCwI,EAAS1C,OAAM,CAAA6H,EAAA3N,EAAA,eAAA2N,EAAA3N,EAAA,EAAUvG,KAAKuM,QAAQ+D,MAAM9P,MAAK,OAAA+T,EAAAL,EAAAzK,EAAEjJ,IAAIuO,EAAS1C,QAAM6H,EAAA3N,EAAA,eAAAgO,EAAI,KAAI,OAO3D,OAP1Ba,EAAIb,EACVxF,EAAW,CACP0I,QAAyB,QAAlByP,EAAEnY,EAAS0I,eAAO,IAAAyP,EAAAA,EAAI9R,aAAI,EAAJA,EAAMqC,QACnCpL,OAAQ0C,EAAS1C,OACjBC,QAASyC,EAASzC,SAGtBtM,KAAKumB,iBAAiBxX,GAAUmF,EAAA3N,EAAA,EAEVvG,KAAKuM,QAAQuP,QAAO,OAAI,OAAxC2B,EAAMvJ,EAAAzK,EAAgC5E,GAAEqP,EAAA3N,EAAA,EACNvG,KAAKioB,mBAAmBlZ,GAAS,OAOrD,GAPqDwY,EAAArT,EAAAzK,EAAA+d,EAAApR,GAAAmR,EAAA,GAAlExL,EAAWyL,EAAA,GAAEpI,EAAUoI,EAAA,GACxBC,EAAsB,GAAHrkB,OAAAmB,GAA0B,QAA1B4iB,EAAQpL,aAAW,EAAXA,EAAaC,aAAK,IAAAmL,EAAAA,EAAI,IAAE5iB,GAAwB,QAAxB6iB,EAAOhI,aAAU,EAAVA,EAAYpD,aAAK,IAAAoL,EAAAA,EAAI,KAC/E3e,EAAiD,CAEnDzI,KAAKkoB,cAAc,CAAC,EAAG,CAAE5kB,KAAM,OAAQma,OAAAA,IAAU7S,KAAK,SAAAnB,GAAC,OAAIA,EAAE0c,UAAU,MAC1ExV,EAEG5B,EAAS0I,SAAO,CAAAvD,EAAA3N,EAAA,eAAA2N,EAAA3N,EAAA,EAAWvG,KAAKuM,QAAQqL,OAAOpX,MAAK,UAAAsQ,EAAAuW,EAAAnT,EAAAzK,IAAAoH,EAAA,OAAAC,GAAA,CAAAoD,EAAA3N,EAAA,QAAAsK,OAAA,IAAAwW,EAAA,YAAAzW,EAAAC,GAAA,CAAAqD,EAAA3N,EAAA,QAAAqK,EAAhCyW,EAAmCpjB,IAAI8K,EAAS0I,SAAQ,OAAA9G,EAAAC,EAAA,WAAAD,EAAE,CAAFuD,EAAA3N,EAAA,SACtEmhB,EAA+B,CAACjQ,QAAS1I,EAAS0I,SACxDhP,EAASpG,KAAKrC,KAAKmoB,sBAAsBT,EAAgBD,IACzDhf,EAASpG,KAAKrC,KAAKkoB,cAAcR,EAAgB,CAAEpkB,KAAM,OAAQma,OAAAA,IAAU7S,KAAK,SAAAnB,GAAC,OAAIA,EAAE0c,UAAU,IAAG,QAWpF,GARhB/Q,IACMsS,EAA+B,CAACjQ,QAAS1I,EAAS0I,QAASpL,OAAQ0C,EAAS1C,QAC9Eob,EAAU1kB,QACV0F,EAASpG,KAAKrC,KAAKmoB,sBAAsBT,EAAgBD,IAE7Dhf,EAASpG,KAAKrC,KAAKkoB,cAAcR,EAAgB,CAAEpkB,KAAM,OAAQma,OAAAA,IAAU7S,KAAK,SAAAnB,GAAC,OAAIA,EAAE0c,UAAU,OACpGyB,EAEG7Y,EAASzC,SAAO,CAAA4H,EAAA3N,EAAA,gBAAA2N,EAAA3N,EAAA,GAAWvG,KAAKuM,QAAQ+D,MAAMC,UAAUxB,EAAS1C,QAAO,WAAA0b,EAAAT,EAAApT,EAAAzK,IAAAqe,EAAA,OAAAC,GAAA,CAAA7T,EAAA3N,EAAA,SAAAuhB,OAAA,IAAAR,EAAA,aAAAO,EAAAC,GAAA,CAAA5T,EAAA3N,EAAA,SAAAshB,EAApDP,EAAuDrjB,IAAI8K,EAASzC,SAAQ,QAAAsb,EAAAC,EAAA,YAAAD,EAAE,CAAF1T,EAAA3N,EAAA,SAC5FkhB,EAAU1kB,QACV0F,EAASpG,KAAKrC,KAAKmoB,sBAAsBpZ,EAAU0Y,IAEvDhf,EAASpG,KAAKrC,KAAKkoB,cAAcnZ,EAAU,CAAEzL,KAAM,OAAQma,OAAAA,IAAU7S,KAAK,SAAAnB,GAAC,OAAIA,EAAE0c,UAAU,IAAG,QAGvF,OAHuF6B,EAG3FhoB,KAAIkU,EAAA3N,EAAA,GAAkC1C,QAAQukB,IAAI3f,GAAS,eAAAyL,EAAAxK,EAAA,EAAAse,EAAtDK,2BAA0BxnB,KAAAmnB,EAAA9T,EAAAzK,IAAA,EAAAwK,EAAA,SACzC,SAxCgCnC,GAAA,OAAAmV,EAAA3iB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,6BAAAa,MA0CjC,SAAmC4L,GAC/B5M,KAAKmmB,WAAW7jB,IAAI,CAAC4jB,GAAgBtZ,GAAKA,IAC1C5M,KAAKkH,KAAK,SACd,GAAC,CAAA/G,IAAA,qBAAAa,MAED,SAA2B4L,GAAoC,IAAA0b,EACrDxjB,EAAM9E,KAAKuoB,2BAA2BzC,GAAQ,CAACrO,QAAS7K,EAAG/H,OACjEyjB,EAAAtoB,KAAKwmB,oBAAmB/J,OAAMnY,MAAAgkB,EAAA/jB,GAAIO,GACtC,GAAC,CAAA3E,IAAA,oBAAAa,OAAAqhB,EAAAxX,GAAAR,KAAAE,EAED,SAAA+J,EAAgC1H,GAA0B,IAAAwI,EAAAoT,EAAA1jB,EAAA,OAAAuF,KAAAC,EAAA,SAAAkK,GAAA,cAAAA,EAAAjO,GAAA,cAAAiO,EAAAjO,EAAA,EAClCvG,KAAKuM,QAAQ+D,MAAM9P,MAAK,QAAtC4U,EAAIZ,EAAA/K,EAAoCjJ,IAAIoM,EAAG/H,OAE3CC,EAAM9E,KAAKuoB,2BAA2BzC,GAAQ,CAACrO,QAASrC,EAAKqC,QAASpL,OAAQ+I,EAAKvQ,OACzF2jB,EAAAxoB,KAAKwmB,oBAAmB/J,OAAMnY,MAAAkkB,EAAAjkB,GAAIO,KACrC,cAAA0P,EAAA9K,EAAA,KAAA4K,EAAA,SACJ,SAN8BhC,GAAA,OAAA+P,EAAA/d,MAAC,KAADxB,UAAA,KAAA3C,IAAA,qBAAAa,MAQ/B,SAA2B4L,GAAwB,IAAA6b,EACzC3jB,EAAM9E,KAAKuoB,2BAA2BzC,GAAQlZ,EAAGmC,YACvD0Z,EAAAzoB,KAAKwmB,oBAAmB/J,OAAMnY,MAAAmkB,EAAAlkB,GAAIO,GACtC,GAAC,CAAA3E,IAAA,oBAAAa,MAED,SAA0B4L,GAAuB,IAAA8b,EACvC5jB,EAAM9E,KAAKuoB,2BAA2BzC,GAAQ,CAACrO,QAAS7K,EAAG6K,SAAU,CAAEnU,KAAM,OAAQ0iB,OAAQpZ,EAAG/H,OACtG6jB,EAAA1oB,KAAKwmB,oBAAmB/J,OAAMnY,MAAAokB,EAAAnkB,GAAIO,GACtC,GAAC,CAAA3E,IAAA,2BAAAa,MAED,SAAiC4L,GAA8B,IAAAoO,EACvDpO,EAAG6Q,UAA0B,QAApBzC,EAAKhb,KAAKuM,QAAQoP,UAAE,IAAAX,OAAA,EAAfA,EAAiBnW,KAE/B7E,KAAKkH,KAAK,SAElB,GAAC,CAAA/G,IAAA,0BAAAa,MAED,SAAgC4L,GAA6B,IAAA+b,EACrD/b,EAAG6Q,UAA0B,QAApBkL,EAAK3oB,KAAKuM,QAAQoP,UAAE,IAAAgN,OAAA,EAAfA,EAAiB9jB,KAE/B7E,KAAKkH,KAAK,SAElB,GAEA,CAAA/G,IAAA,6BAAAa,MAGA,SAAmC4nB,GAA0B,IAAA/hB,EAAA,KACnD/B,EAAgB,GAQtB,OAPA9E,KAAKmmB,WAAW9hB,MAAM7B,QAAQ,SAAC2jB,GAC3B,IAAMthB,EAAKqhB,GAAgBC,GACvBthB,EAAGiV,WAAW8O,KACd9jB,EAAIzC,KAAKwC,GACTgC,EAAKsf,WAAU,OAAQthB,GAE/B,GACOC,CACX,GAAC,CAAA3E,IAAA,wBAAAa,OAAA6nB,EAAAhe,GAAAR,KAAAE,EAED,SAAAyC,EACI+B,EACA0Y,GAAmB,IAAAqB,EAAAhhB,EAAA,YAAAuC,KAAAC,EAAA,SAAA4C,GAAA,cAAAA,EAAA3G,GAAA,cAAA2G,EAAA3G,EAAA,EAEU1C,QAAQukB,IAAIX,EAAUvlB,IAC/C,SAAA8jB,GAAM,OAAIle,EAAKogB,cAAcnZ,EAAU,CAAEzL,KAAM,OAAQ0iB,OAAAA,GAAS,IAClE,OAFkB,OAAd8C,EAAc5b,EAAAzD,EAAAyD,EAAAxD,EAAA,EAIb1J,KAAK+oB,kCAAkCha,EAAS0I,QAASqR,IAAe,EAAA9b,EAAA,SAClF,SATkC4N,EAAAuB,GAAA,OAAA0M,EAAAvkB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,oCAAAa,OAAAgoB,EAAAne,GAAAR,KAAAE,EAWnC,SAAAiD,EACIiK,EACA0O,GAAkC,IAAA8C,EAAAC,EAAAlN,EAAAmN,EAAAC,EAAA,OAAA/e,KAAAC,EAAA,SAAAmD,GAAA,cAAAA,EAAAlH,GAAA,OAER,OAAtB0iB,EAAS,EAAGC,EAAS,EAACzb,EAAAlH,EAAA,EACNvG,KAAKuM,QAAQqL,OAAOyR,SAAS5R,GAAQ,OAkCtD,OAlCGuE,EAAKvO,EAAAhE,EACL0f,EAAmBhD,EAAWmD,KAChC,SAAC5f,EAAG6f,GAAC,OACDvN,EAAMxb,IAAIkJ,EAAEqc,OAAOC,QAAQvC,SAAWzH,EAAMxb,IAAI+oB,EAAExD,OAAOC,QAAQvC,QAAQ,GAI3E2F,EAAoBjD,EAAWqD,OACjC,SAACC,EAAuBC,GAAkC,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,OACtD9U,KAAK6L,IACD4I,EACiD,QADpCE,EACgB,QADhBC,EACbF,EAAavD,WAAW4D,aAAK,IAAAH,OAAA,EAA7BA,EAA+BlmB,SAAS,GAAGX,cAAM,IAAA4mB,EAAAA,EAAI,EACL,QADME,EAC1B,QAD0BC,EACtDJ,EAAavD,WAAW6D,YAAI,IAAAF,OAAA,EAA5BA,EAA8BpmB,SAAS,GAAGX,cAAM,IAAA8mB,EAAAA,EAAI,EACvD,EACL,GAGJV,EAAiB3mB,QAAQ,SAAAynB,GAKrB,IALuC,IAAAC,EAAAC,EAAAC,EAAAC,EACjClE,EAAa8D,EAAe9D,WAC5BmE,EAAwE,QAA5DJ,EAAkB,QAAlBC,EAAGhE,EAAW6D,YAAI,IAAAG,OAAA,EAAfA,EAAiBzmB,SAAS,GAAG4W,MAAM,IAAIiQ,UAAUtE,KAAK,WAAG,IAAAiE,EAAAA,EAAI,GAC5EM,EAAyE,QAA7DJ,EAAmB,QAAnBC,EAAGlE,EAAW4D,aAAK,IAAAM,OAAA,EAAhBA,EAAkB3mB,SAAS,GAAG4W,MAAM,IAAIiQ,UAAUtE,KAAK,WAAG,IAAAmE,EAAAA,EAAI,GAE1EphB,EAAI,EAAGA,EAAIogB,EAAmBpgB,IAAK,KAAAyhB,EAAAC,EAClCV,EAAOW,SAAwB,QAAhBF,EAACH,EAAathB,UAAE,IAAAyhB,EAAAA,EAAI,KACnCV,EAAQY,SAAwB,QAAhBD,EAACF,EAAaxhB,UAAE,IAAA0hB,EAAAA,EAAI,KAEtCV,IACAd,GAAU,GAAKlgB,GAGf+gB,IACAd,GAAU,GAAKjgB,EAEvB,CACJ,GAAGyE,EAAA/D,EAAA,EAEI,CAACqgB,MAAOd,EAAQe,KAAMd,IAAO,EAAA1b,EAAA,SACvC,SA1C8Cod,EAAAC,GAAA,OAAA7B,EAAA1kB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,6BAAAa,MA4C/C,SAAmC8pB,GAC/B,IAE8C3kB,EAF1Cd,EAAS,EAAEe,EAAAC,GAEKykB,GAA0B,IAA9C,IAAA1kB,EAAAE,MAAAH,EAAAC,EAAAG,KAAAf,MAAgD,KAArCxE,EAAKmF,EAAAnF,MACZ,GAAIA,EAAM+oB,MAAQ7F,GAAYG,UAAU,QAAQrjB,MAC5C,OAAOhB,KAAK+qB,qBAGhB1lB,EAAUA,GAAUrE,EAAMgpB,KAAQhpB,EAAM+oB,KAC5C,CAAC,OAAAvjB,GAAAJ,EAAAK,EAAAD,EAAA,SAAAJ,EAAAM,GAAA,CAED,OAAOrB,CACX,GAAC,CAAAlF,IAAA,qBAAAa,MAED,WACI,IAEyC8X,EAFrCzT,EAAS,EAAEwT,EAAAxS,GAEI6d,GAAY8G,YAAU,IAAzC,IAAAnS,EAAAvS,MAAAwS,EAAAD,EAAAtS,KAAAf,MAA2C,KAAhC2c,EAAIrJ,EAAA9X,MACXqE,GAAU6e,GAAYG,UAAUlC,GAAMnhB,KAC1C,CAAC,OAAAwF,GAAAqS,EAAApS,EAAAD,EAAA,SAAAqS,EAAAnS,GAAA,CAED,OAAOrB,CACX,GAAC,CAAAlF,IAAA,qBAAAa,OAAAiqB,EAAApgB,GAAAR,KAAAE,EAED,SAAAoD,EAAiCoB,GAAsB,IAAAmc,EAAAC,EAAAC,EAAAhH,EAAA,OAAA/Z,KAAAC,EAAA,SAAAsD,GAAA,cAAAA,EAAArH,GAAA,cAAAqH,EAAArH,EAAA,EAC7B1C,QAAQukB,IAAI,CAC9BrZ,EAAS0I,QAAUzX,KAAKuM,QAAQqL,OAAOkE,MAAM/M,EAAS0I,SAAW,KACjE1I,EAAS1C,OAASrM,KAAKuM,QAAQ+D,MAAMwL,MAAM/M,EAAS1C,QAAU,OAChE,OAG8C,GAN1C6e,EAAOtd,EAAAnE,EAKP0hB,EAAYpc,EAAS0I,UAAayT,EAAQ,GAC1CE,EAAWrc,EAAS1C,SAAY6e,EAAQ,IAE1CC,IAAaC,EAAQ,CAAAxd,EAAArH,EAAA,QACgE,MAA/E6d,EAAQ+G,EAAY,UAAH/nB,OAAa2L,EAAS0I,QAAO,cAAArU,OAAe2L,EAAS1C,OAAM,KAC5E,IAAI6C,MAAM,6CAAD9L,OAA8CghB,EAAK,sCAAoC,cAAAxW,EAAAlE,EAAA,EAGnGwhB,GAAO,EAAAvd,EAAA,SACjB,SAf+B0d,GAAA,OAAAJ,EAAA3mB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,mBAAAa,MAiBhC,SAAyB+N,GACrB,GAAIA,EAASzC,UAAayC,EAAS1C,OAC/B,MAAM,IAAI6C,MAAM,gCAExB,GAAC,CAAA/O,IAAA,gBAAAa,MAED,SAAsB4L,GAClB5M,KAAKmmB,WAAWjgB,YAChBlG,KAAKwmB,mBAAmB1L,WAC5B,IAvTJhS,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EA2RKoiB,EA7EkCjC,EAFlCH,EA/CAxG,EA3EiB4E,EAzBQR,EAFzBH,CAgQA,CAjR0B,CAASrlB,G,4nCCtCxC,IAAAwF,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAe,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GAOA,IAAMsiB,GAAa,SAENC,GAAgB,WAUxB,OAnBL9kB,EAaI,SAAA8kB,EAA2Bhf,GAA2B,IAAA3J,EAAA,MAb1D,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCAa0D5I,CAAA,KAAAqqB,GAAApqB,GAAA,YAHiC,IAAIiD,GAAmBjD,GAAA,yBAClF,IAAIqH,GAAiB,KAEtB+D,QAAAA,EACvBvM,KAAKuM,QAAQI,OAAOnF,GAAG,YAAa,SAAAoF,GAAE,OAAIhK,EAAK4oB,gBAAgB5e,EAAG,GAClE5M,KAAKuM,QAAQI,OAAOnF,GAAG,cAAe,SAAAoF,GAAE,OAAIhK,EAAK6oB,kBAAkB7e,EAAG,GACtE5M,KAAKuM,QAAQI,OAAOnF,GAAG,kBAAmB,SAAAoF,GAAE,OAAIhK,EAAK8oB,sBAAsB9e,EAAG,GAC9E5M,KAAKuM,QAAQI,OAAOnF,GAAG,eAAgB,SAAAoF,GAAE,OAAIhK,EAAKua,mBAAmBvQ,EAAG,GACxE5M,KAAKuM,QAAQI,OAAOnF,GAAG,UAAW,kBAAM5E,EAAKmU,eAAe,EAChE,EAnBJjO,EAmBK,EAAA3I,IAAA,MAAAa,MAAA,eAAA+c,EAAAlT,GAAAR,KAAAE,EAED,SAAA6I,EAAiBqE,GAAgB,IAAAtX,EAAAyD,EAAA,YAAAyG,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,OAW5B,OAVKpG,EAAMsX,QAAAA,EAAW6T,GAEnBtrB,KAAK2rB,kBAAkBzT,SAAS/X,IAChCH,KAAK2rB,kBAAkBxT,mBAAkBtN,GAAAR,KAAAE,EAAC,SAAAyI,IAAA,IAAA3N,EAAA,OAAAgF,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,cAAA0M,EAAA1M,EAAA,EACjB3C,EAAK2I,QAAQI,OAAOmC,KAAK,eAAgB,CAAC2I,QAAAA,IAAS,OAA5D,KAANpS,EAAM4N,EAAAxJ,GACDtF,MAAO,CAAF8O,EAAA1M,EAAA,cACNlB,EAAOlB,MAAK,OAEtBP,EAAK4nB,gBAAgBnmB,EAAO9B,MAAM,cAAA0P,EAAAvJ,EAAA,KAAAsJ,EAAA,IACnC7S,GACNmT,EAAA/M,EAAA,EAEKvG,KAAK2rB,kBAAkBnrB,IAAIL,GAAI,cAAAmT,EAAA5J,EAAA,EAC9B1J,KAAK0d,KAAKld,IAAIL,IAAI,EAAAiT,EAAA,SAdb,OAef,SAfegB,GAAA,OAAA2J,EAAAzZ,MAAC,KAADxB,UAAA,EAFf,IAEe,CAAA3C,IAAA,kBAAAa,MAiBhB,SAAwBgB,GAAwB,IAAA4pB,EACtCnU,EAAgC,QAAzBmU,EAAG5pB,EAAM+M,SAAS0I,eAAO,IAAAmU,EAAAA,EAAIN,GAErCtrB,KAAK0d,KAAKzZ,IAAIwT,IACfzX,KAAK0d,KAAKpb,IAAI,CAACmV,EAAS,IAAI9P,EAA4C,QAG5E,IAAM0Q,EAAarY,KAAK0d,KAAKld,IAAIiX,GACjCY,EAAW/V,IAAGgC,MAAd+T,EAAU9T,GAAQvC,EAAM6pB,WAC5B,GAAC,CAAA1rB,IAAA,oBAAAa,MAED,SAA0B4L,GAAuB,IAAAkf,EACvCzT,EAAarY,KAAK0d,KAAKld,IAAuB,QAApBsrB,EAAClf,EAAGmf,SAAStU,eAAO,IAAAqU,EAAAA,EAAIR,IACxDjT,SAAAA,EAAY/V,IAAIsK,EAAGmf,SACvB,GAAC,CAAA5rB,IAAA,wBAAAa,MAED,SAA8B4L,GAA2B,IAAAof,EAC/C3T,EAAarY,KAAK0d,KAAKld,IAAc,QAAXwrB,EAACpf,EAAG6K,eAAO,IAAAuU,EAAAA,EAAIV,IAC/CjT,SAAAA,EAAU,OAASzL,EAAGqf,WAC1B,GAAC,CAAA9rB,IAAA,qBAAAa,MAED,SAA2BgB,GACvBhC,KAAK0d,KAAI,OAAQ1b,EAAM6C,GAC3B,GAAC,CAAA1E,IAAA,gBAAAa,MAED,WACIhB,KAAK0d,KAAKxX,YACVlG,KAAK2rB,kBAAkB7Q,WAC3B,IAlEJhS,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,CAkEK,CAzDwB,G,4nCCT7B,IAAApC,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAA4K,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAe,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GAKO,IAAMkjB,GAAY,WAiBrB,OAtBJzlB,EAUI,SAAAylB,EAA2B3f,GAA2B,IAAA3J,EAAA,MAV1D,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCAU0D5I,CAAA,KAAAgrB,GAAA/qB,GAAA,oBAJvB,IAAIF,GAA+BE,GAAA,aAEA,IAAIwG,EAAkC,OAAK,KAElF4E,QAAAA,EAEvBA,EAAQI,OAAOnF,GAAG,cAAe,SAAAxF,GAAK,OAAIY,EAAKupB,YAAY,CAACnqB,EAAM0Z,MAAM,GACxEnP,EAAQI,OAAOnF,GAAG,mBAAoB,SAAAxF,GAAK,OAAIY,EAAKwpB,cAAc,CAACpqB,EAAMqZ,QAAQ,GACjF9O,EAAQI,OAAOnF,GAAG,oBAAqB,SAAAxF,GAAK,OAAIY,EAAKwpB,cAAc,CAACpqB,EAAMqZ,QAAQ,GAClF9O,EAAQI,OAAOnF,GAAG,eAAgB,SAAAxF,GAAK,OAAIY,EAAKwpB,cAAcpqB,EAAMub,QAAQ,GAC5EhR,EAAQI,OAAOnF,GAAG,cAAe,SAAAxF,GAAK,OAAIY,EAAKwpB,cAAcpqB,EAAMub,QAAQ,GAC3EhR,EAAQI,OAAOnF,GAAG,WAAY,SAAAxF,GAAK,OAAIY,EAAKupB,YAAYnqB,EAAMoN,SAASlN,IAAI,SAAAiN,GAAO,OAAIA,EAAQsM,OAAOC,IAAI,GAAE,GAC3GnP,EAAQI,OAAOnF,GAAG,aAAc,SAAAxF,GAAK,OAAIY,EAAKupB,YAAY,CAACnqB,EAAMmN,QAAQsM,OAAOC,MAAM,GACtFnP,EAAQI,OAAOnF,GAAG,UAAW,SAAAxF,GAAK,OAAIY,EAAKmU,cAAc/U,EAAM,EACnE,EApBJ8G,EAsBI,EAAA3I,IAAA,eAAAa,OAtBJuF,EAsBI8D,KAAAE,EAGA,SAAAyI,IAAA,OAAA3I,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,EAAA,OAAA0M,EAAAvJ,EAAA,EACW1J,KAAKqsB,MAAK,EAAArZ,EAAA,QAJrBsZ,EAtBJ,eAAAzjB,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,MA2BK,WAFwB,OAAAwhB,EAAAhoB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,gBAAAa,MAIzB,SAAsBuc,GAClBvd,KAAKmsB,YAAY5O,EAAQrb,IAAI6e,IACjC,GAAC,CAAA5gB,IAAA,gBAAAa,MAED,SAAsBurB,GAClBvsB,KAAKqsB,MAAMnmB,YACXlG,KAAKmsB,YAAY,CAACI,EAAQ7Q,MAC9B,GAAC,CAAAvb,IAAA,cAAAa,MAED,SAAoBqrB,GAAqB,IAAAG,EAAA5oB,EAAA,KACrCyoB,EAAM7pB,QAAQ,SAAAiqB,GACV,IAAMC,EAAU9oB,EAAKyoB,MAAM7rB,IAAIisB,EAAQ5nB,IACnC6nB,GAAWA,EAAQC,SAAWF,EAAQE,QACtC/oB,EAAKgpB,aAAa1lB,KAAK,SAAUulB,EAEzC,IAEAD,EAAAxsB,KAAKqsB,OAAM/pB,IAAGgC,MAAAkoB,EAAAjoB,GAAI8nB,GACtB,IA/CJvjB,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EAAAtC,EAsBI+lB,CAyBC,CA1CoB,G,yZCLzB,IAAA7lB,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAe,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GAUA,IAAMhD,GAAQ,SAAC6mB,EAAmBvpB,GAA0B,SAAAF,OAAgBypB,EAAS,KAAAzpB,OAAIE,EAAI,EACvFwpB,GAAwB,SAACC,GAA8B,OAAa/mB,GAAM+mB,EAAaC,QAAQnoB,GAAIkoB,EAAazpB,KAAK,EAE9G2pB,GAAoB,WAS5B,OAtBLxmB,EAiBI,SAAAwmB,EAA2B1gB,GAA2B,IAAA3J,EAAA,MAjB1D,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCAiB0D5I,CAAA,KAAA+rB,GAAA9rB,GAAA,qBAHuB,IAAIwG,EAAoDmlB,KAAsB3rB,GAAA,gBACxI,IAAIqH,GAAiB,KAEb+D,QAAAA,EACvBvM,KAAKuM,QAAQI,OAAOnF,GAAG,gBAAiB,SAAAoF,GAAE,OAAIhK,EAAKsqB,oBAAoBtgB,EAAG,GAC1E5M,KAAKuM,QAAQI,OAAOnF,GAAG,kBAAmB,SAAAoF,GAAE,OAAIhK,EAAKuqB,sBAAsBvgB,EAAG,GAC9E5M,KAAKuM,QAAQI,OAAOnF,GAAG,sBAAuB,SAAAoF,GAAE,OAAIhK,EAAKwqB,0BAA0BxgB,EAAG,GACtF5M,KAAKuM,QAAQI,OAAOnF,GAAG,UAAW,kBAAM5E,EAAKmU,eAAe,EAChE,EAtBJjO,EAsBK,EAAA3I,IAAA,MAAAa,MAAA,eAAA+c,EAAAlT,GAAAR,KAAAE,EAED,SAAA6I,IAAA,IAAAxP,EAAA,YAAAyG,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,OAQK,OAPGvG,KAAKyI,SAASyP,SAAS,QACvBlY,KAAKyI,SAAS0P,mBAAkBtN,GAAAR,KAAAE,EAAC,SAAAyI,IAAA,IAAA3N,EAAA,OAAAgF,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,cAAA0M,EAAA1M,EAAA,EACR3C,EAAK2I,QAAQI,OAAOmC,KAAK,mBAAoB,CAAC,GAAE,OAAzD,KAANzJ,EAAM4N,EAAAxJ,GACDtF,MAAO,CAAF8O,EAAA1M,EAAA,cACNlB,EAAOlB,MAAK,cAAA8O,EAAAvJ,EAAA,KAAAsJ,EAAA,IAEvB,OACNM,EAAA/M,EAAA,EAEKvG,KAAKyI,SAASjI,IAAI,OAAM,cAAA8S,EAAA5J,EAAA,EACvB1J,KAAKqtB,eAAa,EAAAja,EAAA,SAXb,OAYf,WAZe,OAAA2K,EAAAzZ,MAAC,KAADxB,UAAA,EAFf,IAEe,CAAA3C,IAAA,SAAAa,OAAAssB,EAAAziB,GAAAR,KAAAE,EAchB,SAAAqJ,EAAoBiZ,EAAmBvpB,GAA0B,OAAA+G,KAAAC,EAAA,SAAAuJ,GAAA,cAAAA,EAAAtN,GAAA,cAAAsN,EAAAtN,EAAA,EACvDvG,KAAKQ,MAAK,cAAAqT,EAAAnK,EAAA,EACT1J,KAAKqtB,cAAcppB,IAAI+B,GAAM6mB,EAAWvpB,KAAM,EAAAsQ,EAAA,SACxD,SAHkBQ,EAAA9G,GAAA,OAAAggB,EAAAhpB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,sBAAAa,MAKnB,SAA4B4L,GAAyB,IAAA/F,EAAA,KACjD7G,KAAKqtB,cAAcnnB,YACnB0G,EAAGygB,cAAc7qB,QAAQ,SAAAuqB,GACrBlmB,EAAKwmB,cAAc/qB,IAAIyqB,EAC3B,EACJ,GAAC,CAAA5sB,IAAA,wBAAAa,MAED,SAA8B4L,GACtB5M,KAAKyI,SAASxE,IAAI,QAClBjE,KAAKqtB,cAAc/qB,IAAIsK,EAAGmgB,aAElC,GAAC,CAAA5sB,IAAA,4BAAAa,MAED,SAAkC4L,GAC1B5M,KAAKyI,SAASxE,IAAI,QAClBjE,KAAKqtB,cAAa,OAAQP,GAAsBlgB,EAAGmgB,cAE3D,GAAC,CAAA5sB,IAAA,gBAAAa,MAED,WACIhB,KAAKyI,SAASqS,YACd9a,KAAKqtB,cAAcnnB,WACvB,IAjEJ4C,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EAwBoBykB,CAyCf,CApD4B,G,yZCbjC,IAAA7mB,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAA4K,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAAe,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GASO,IAAMukB,GAAgB,WA8CxB,OAvDL9mB,EA6CI,SAAA8mB,EAAmB5gB,GAA6B,IAAA/J,EAAA,MA7CpD,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCA6CoD5I,CAAA,KAAAqsB,GAAApsB,GAAA,sBAjChDA,GAAA,2BAKAA,GAAA,qBAKAA,GAAA,sBAKAA,GAAA,yBAKAA,GAAA,qBAKAA,GAAA,6BAAAA,GAAA,WAKoB,MAAIA,GAAA,uBACW,IAAIkH,GAGnCrI,KAAK2M,OAASA,EACd3M,KAAK2M,OAAOnF,GAAG,UAAW,SAAAoF,GAAE,OAAIhK,EAAKmU,cAAcnK,EAAG,GAEtD5M,KAAKwtB,YAAc,IAAIpH,GAAmBpmB,MAC1CA,KAAKsQ,MAAQ,IAAIoM,GAAa1c,MAC9BA,KAAK4X,OAAS,IAAIqJ,GAAcjhB,MAChCA,KAAK6rB,UAAY,IAAIN,GAAiBvrB,MACtCA,KAAKqsB,MAAQ,IAAIH,GAAalsB,MAC9BA,KAAKqtB,cAAgB,IAAIJ,GAAqBjtB,KAClD,EAvDJ8I,EAuDK,EAAA3I,IAAA,KAAAK,IAED,WACI,OAAOR,KAAKytB,GAChB,GAAC,CAAAttB,IAAA,QAAAa,OA3DLuF,EA2DK8D,KAAAE,EAED,SAAAyI,IAAA,OAAA3I,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,cAAA0M,EAAA1M,EAAA,EACUvG,KAAKsX,gBAAgBhP,QAAO,cAAA2K,EAAAvJ,EAAA,EAC3B1J,KAAKytB,KAAG,EAAAza,EAAA,QAJlBwK,EA3DL,eAAA3U,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,MAgEK,WAHiB,OAAA0S,EAAAlZ,MAAC,KAADxB,UAAA,KAAA3C,IAAA,gBAAAa,MAKlB,SAAsB4L,GAClB5M,KAAKytB,IAAM7gB,EAAG8O,KACd1b,KAAKsX,gBAAgB/O,SACzB,IArEJO,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EAAAtC,EA2DKiX,CAUA,CA5DwB,G,yZCT7B,IAAA/W,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAA+C,GAAA0F,EAAAzI,EAAAqG,GAAA,OAAArG,EAAA8K,GAAA9K,GAAA,SAAAyI,EAAApC,GAAA,GAAAA,IAAA,UAAA0E,GAAA1E,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAqD,UAAA,4EAAArD,GAAA,YAAAA,EAAA,UAAA2E,eAAA,oEAAA3E,CAAA,CAAA4E,CAAAxC,EAAA,CAAAyC,CAAAzC,EAAA0C,KAAAC,QAAAC,UAAArL,EAAAqG,GAAA,GAAAyE,GAAArC,GAAA6C,aAAAtL,EAAAkE,MAAAuE,EAAApC,GAAA,UAAA8E,KAAA,QAAA1C,GAAA8C,QAAAhL,UAAAiL,QAAA/K,KAAA2K,QAAAC,UAAAE,QAAA,wBAAA9C,GAAA,QAAA0C,GAAA,mBAAA1C,CAAA,cAAAqC,GAAArC,GAAA,OAAAqC,GAAA7K,OAAA6J,eAAA7J,OAAA4J,eAAAL,OAAA,SAAAf,GAAA,OAAAA,EAAAsB,WAAA9J,OAAA4J,eAAApB,EAAA,EAAAqC,GAAArC,EAAA,UAAAgD,GAAAhD,EAAApC,GAAA,OAAAoF,GAAAxL,OAAA6J,eAAA7J,OAAA6J,eAAAN,OAAA,SAAAf,EAAApC,GAAA,OAAAoC,EAAAsB,UAAA1D,EAAAoC,CAAA,EAAAgD,GAAAhD,EAAApC,EAAA,UAAAtF,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GACkE,IA0B7D0kB,GAAwB,SAAxBA,GAAwB,OAAxBA,EAAwB,kBAAxBA,EAAwB,wBAAxBA,EAAwB,kBAAxBA,EAAwB,cAAxBA,CAAwB,EAAxBA,IAAwB,IAchBC,GAAmB,SAAAC,GAa5B,SAAAD,EAAoCE,GAAiC,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAzrB,EASzB,OA/DhD,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCAsDyE5I,CAAA,KAAAysB,GACzDxsB,GAARyB,EAAAO,GAAA,KAAAwqB,GAAQ,QAbYD,IAAwBvsB,GAAAyB,EAAA,gBAAAzB,GAAAyB,EAAA,KAGjB,MAAIzB,GAAAyB,EAAA,YACD,IAAEzB,GAAAyB,EAAA,8BAAAzB,GAAAyB,EAAA,wBAAAzB,GAAAyB,EAAA,iCAAAzB,GAAAyB,EAAA,8BAAAzB,GAAAyB,EAAA,8BAAAzB,GAAAyB,EAAA,gCAAAA,EAQAirB,QAAAA,GAEF,QAA9BC,EAAIlrB,EAAKirB,QAAQS,qBAAa,IAAAR,GAAAA,KAC1BlrB,EAAKuK,MAAQ,IAAIogB,GAAgB3qB,IAGzB,QAAZmrB,EAAAF,EAAQU,YAAI,IAAAR,IAAZF,EAAQU,KAAS,CAAC,GACE,QAApBN,GAAAD,EAAAH,EAAQU,MAAKC,eAAO,IAAAP,IAApBD,EAAaQ,SAAY,GACO,QAAhCL,GAAAD,EAAAL,EAAQU,MAAKE,2BAAmB,IAAAN,IAAhCD,EAAaO,oBAAwB,MACP,QAA9BJ,GAAAD,EAAAP,EAAQU,MAAKG,yBAAiB,IAAAL,IAA9BD,EAAaM,kBAAsB,KAAK9rB,CAC5C,CAAC,OAhEL,SAAAiG,EAAApC,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAAqD,UAAA,sDAAAjB,EAAAlI,UAAAN,OAAA+I,OAAA3C,GAAAA,EAAA9F,UAAA,CAAA+K,YAAA,CAAA1K,MAAA6H,EAAA6B,UAAA,EAAAD,cAAA,KAAApK,OAAAC,eAAAuI,EAAA,aAAA6B,UAAA,IAAAjE,GAAAoF,GAAAhD,EAAApC,EAAA,CAgEKpD,CAAAsqB,EAAAC,GAhELnnB,EAgEKknB,EAhEL7kB,EAgEK,EAAA3I,IAAA,UAAAa,OAAA2tB,EAAA9jB,GAAAR,KAAAE,EAED,SAAAyI,IAAA,IAAA4b,EAAAC,EAAAC,EAAAlrB,EAAA,YAAAyG,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,WACQvG,KAAK+uB,kBAAmB/uB,KAAKgvB,sBAAqB,CAAA/b,EAAA1M,EAAA,eAAA0M,EAAAvJ,EAAA,UAc3B,OAVrBolB,EAAS,IAAIG,gBAAwC,QAAzBL,EAAC5uB,KAAK6tB,QAAQqB,mBAAW,IAAAN,EAAAA,EAAI,CAAC,IACzDtsB,IAAI,QAAStC,KAAK6tB,QAAQsB,OAEjCnvB,KAAKovB,GAAK,IAAIC,UAAU,GAADjsB,OAAIpD,KAAK6tB,QAAQyB,IAAG,KAAAlsB,OAAI0rB,IAC/C9uB,KAAKovB,GAAGG,QAAU,SAAA3iB,GAAE,OAAIhJ,EAAK4rB,QAAQ5iB,EAAG,EACxC5M,KAAKovB,GAAGK,UAAY,SAAA7iB,GAAE,OAAIhJ,EAAK8rB,UAAU9iB,EAAG,EAC5C5M,KAAK2vB,oBAAsBC,WACvB,kBAAMhsB,EAAKisB,0BAA0B,EACL,QADKhB,EACrC7uB,KAAK6tB,QAAQiC,2BAAmB,IAAAjB,EAAAA,EAAI,KAExC7uB,KAAK+vB,eAAgB,EAAM9c,EAAAvJ,EAAA,EACpB,IAAI7F,QAAQ,mBAAAhB,EAAAC,UAAAC,OAAIC,EAAI,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GAAA,OAAKU,EAAKosB,uBAAyBhtB,CAAI,IAAC,EAAAgQ,EAAA,SACtE,WAjBmB,OAAA2b,EAAArqB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,aAAAa,MAmBpB,WAA0B,IAAAivB,EACtBjwB,KAAKkwB,UAAY,GACV,QAAPD,EAAAjwB,KAAKovB,UAAE,IAAAa,GAAPA,EAASE,MAAM,KACfnwB,KAAKovB,GAAK,IACd,GAAC,CAAAjvB,IAAA,OAAAa,OAAAovB,EAAAvlB,GAAAR,KAAAE,EAED,SAAA6I,EAAyDid,EAA0BC,GAAwC,IAAA3sB,EAAA2E,EAAA,OAAA+B,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,OAG3C,GADtE5C,EAAW3D,KAAKuwB,eAA4CF,EAAaC,GACzEhoB,EAAUtI,KAAKwwB,iCAA8C7sB,KAE/D3D,KAAKgvB,wBAA0BhvB,KAAK+vB,eAAiB/vB,KAAK+uB,iBAAe,CAAAzb,EAAA/M,EAAA,QAC3C,OAA9BvG,KAAKkwB,UAAU7tB,KAAKsB,GAAU2P,EAAA5J,EAAA,EACvBpB,GAAO,OAGU,OAA5BtI,KAAKywB,aAAa9sB,GAAU2P,EAAA5J,EAAA,EACrBpB,GAAO,EAAA8K,EAAA,SACjB,SAZgBgB,EAAA9G,GAAA,OAAA8iB,EAAA9rB,MAAA,KAAAxB,UAAA,KAAA3C,IAAA,UAAAK,IAcjB,WACI,OAAOR,KAAK+uB,iBAAmB/uB,KAAK+vB,aACxC,GAAC,CAAA5vB,IAAA,eAAAa,MAED,SAAqB2C,GAA0B,IAAA+sB,EAAAC,EACvC3wB,KAAK4wB,QACL5wB,KAAKovB,GAAGtgB,KAAK+hB,KAAKC,UAAUntB,IAIhC3D,KAAK+wB,wBACDptB,EACA,IAAIuL,MAAM,4CAAD9L,OAAgE,QAAhEstB,EAAoD,QAApDC,EAA6C3wB,KAAKovB,UAAE,IAAAuB,OAAA,EAAPA,EAASK,kBAAU,IAAAN,EAAAA,EAAI,kBAAiB,oBAAAttB,OAAmBpD,KAAK+vB,cAAa,MAE3I,GAAC,CAAA5vB,IAAA,YAAAa,MAED,SAAkBgB,GACdhC,KAAKixB,sBAAwBC,KAAKC,MAClC,IAAMxtB,EAAqBktB,KAAKO,MAAMpvB,EAAMuB,MAM5C,GALAvD,KAAKqxB,uBAAuB1tB,GAC5B3D,KAAKkH,KAAKvD,EAASL,KAAMK,EAASJ,MAClCvD,KAAKkH,KAAKlH,KAAKsxB,MAAMniB,QAASxL,IAGzB3D,KAAK+vB,cAAe,CACrB,IAAMwB,EAAoC,QAAlB5tB,EAASL,KACjCtD,KAAK+vB,cAAgBwB,EACjBA,GACAvxB,KAAKwxB,yBACLxxB,KAAKgwB,uBAAuB,KAC5BhwB,KAAKkH,KAAKlH,KAAKsxB,MAAMG,SACrBzxB,KAAK0xB,iBAEL1xB,KAAKgwB,uBAAuB,GAAGrsB,EAASJ,KAEhD,CACJ,GAAC,CAAApD,IAAA,UAAAa,MAED,SAAgBgB,GACZhC,KAAK2xB,wBACLC,aAAa5xB,KAAK2vB,qBAClB,IAAMkC,EAA2B,MAAf7vB,EAAM8vB,KACpBD,GACK7xB,KAAKyxB,UAEdzxB,KAAKkH,KAAKlH,KAAKsxB,MAAMS,WAAYF,EACrC,GAAC,CAAA1xB,IAAA,gBAAAa,MAED,WAA8B,IAAA6F,EAAA,KAEtBmrB,EAAY,EAAEC,EAAA,WACsB,IAAAC,EAC9BvuB,EAAWkD,EAAKqpB,UAAUiC,GAChCvC,WAAW,kBAAM/oB,EAAK4pB,aAAa9sB,EAAS,EAAEquB,GAC9CA,GAA+C,QAAtCE,EAAIrrB,EAAKgnB,QAAQuE,6BAAqB,IAAAF,EAAAA,EAAI,GACvD,EAJA,IAAK,IAAMC,KAAanyB,KAAKkwB,UAAS+B,IAKtCjyB,KAAKkwB,UAAY,GACjB0B,aAAa5xB,KAAK2vB,oBACtB,GAAC,CAAAxvB,IAAA,2BAAAa,MAED,WACIhB,KAAK+xB,aACL/xB,KAAKkH,KAAKlH,KAAKsxB,MAAMntB,MAAO,IAAI+K,MAAM,sBAC1C,GAAC,CAAA/O,IAAA,sBAAAa,MAED,WACI,OAAOhB,KAAKovB,IAAMpvB,KAAKovB,GAAG4B,aAAehxB,KAAKovB,GAAGiD,UACrD,GAAC,CAAAlyB,IAAA,gBAAAa,MAED,WACI,OAAOhB,KAAKovB,IAAMpvB,KAAKovB,GAAG4B,aAAehxB,KAAKovB,GAAGkD,IACrD,GAAC,CAAAnyB,IAAA,yBAAAa,MAED,WAAuC,IAAA8G,EAAA,KAC9B9H,KAAK6tB,QAAQU,KAAMC,UAIxBxuB,KAAKixB,sBAAwBC,KAAKC,MAElCnxB,KAAKuyB,oBAAsBC,YAAW3nB,GAAAR,KAAAE,EAAC,SAAAqJ,IAAA,OAAAvJ,KAAAC,EAAA,SAAAuJ,GAAA,cAAAA,EAAAtN,GAAA,UAC9BuB,EAAK8oB,UAAW9oB,EAAK2qB,oBAAmB,CAAA5e,EAAAtN,EAAA,eAAAsN,EAAAnK,EAAA,eAIxCwnB,KAAKC,MAAQrpB,EAAKmpB,sBAAyBnpB,EAAK+lB,QAAQU,KAAME,qBAAmB,CAAA5a,EAAAtN,EAAA,eAAAsN,EAAAnK,EAAA,UAItF5B,EAAK2qB,oBAAsB7C,WAAW,WAClC9nB,EAAK2qB,yBAAsB3wB,EAC3BgG,EAAKsnB,GAAGe,MAAM,IAClB,EAAGroB,EAAK+lB,QAAQU,KAAKG,mBAErB5mB,EAAKgH,KAAK,OAAQ,CAAC,GAAGlE,KAAK,WACvBgnB,aAAa9pB,EAAK2qB,qBAClB3qB,EAAK2qB,yBAAsB3wB,CAC/B,GAAG,cAAA+R,EAAAnK,EAAA,KAAAkK,EAAA,IACJ,KACP,GAAC,CAAAzT,IAAA,wBAAAa,MAED,WACQhB,KAAKyyB,sBACLb,aAAa5xB,KAAKyyB,qBAClBzyB,KAAKyyB,yBAAsB3wB,GAE3B9B,KAAKuyB,sBACLG,cAAc1yB,KAAKuyB,qBACnBvyB,KAAKuyB,yBAAsBzwB,EAEnC,IAvNJgH,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EAyFKunB,EAzBAzB,CAuJA,CA9K2B,CAASjsB,G,yZCzCzC,IAAA+D,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAA8B,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAA+C,GAAA0F,EAAAzI,EAAAqG,GAAA,OAAArG,EAAA8K,GAAA9K,GAAA,SAAAyI,EAAApC,GAAA,GAAAA,IAAA,UAAA0E,GAAA1E,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAqD,UAAA,4EAAArD,GAAA,YAAAA,EAAA,UAAA2E,eAAA,oEAAA3E,CAAA,CAAA4E,CAAAxC,EAAA,CAAAyC,CAAAzC,EAAA0C,KAAAC,QAAAC,UAAArL,EAAAqG,GAAA,GAAAyE,GAAArC,GAAA6C,aAAAtL,EAAAkE,MAAAuE,EAAApC,GAAA,UAAA8E,KAAA,QAAA1C,GAAA8C,QAAAhL,UAAAiL,QAAA/K,KAAA2K,QAAAC,UAAAE,QAAA,wBAAA9C,GAAA,QAAA0C,GAAA,mBAAA1C,CAAA,cAAAqC,GAAArC,GAAA,OAAAqC,GAAA7K,OAAA6J,eAAA7J,OAAA4J,eAAAL,OAAA,SAAAf,GAAA,OAAAA,EAAAsB,WAAA9J,OAAA4J,eAAApB,EAAA,EAAAqC,GAAArC,EAAA,UAAAgD,GAAAhD,EAAApC,GAAA,OAAAoF,GAAAxL,OAAA6J,eAAA7J,OAAA6J,eAAAN,OAAA,SAAAf,EAAApC,GAAA,OAAAoC,EAAAsB,UAAA1D,EAAAoC,CAAA,EAAAgD,GAAAhD,EAAApC,EAAA,UAAAtF,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GADgI,IAY3H2pB,GAAqB,SAArBA,GAAqB,OAArBA,EAAqB,kBAArBA,EAAqB,cAArBA,EAAqB,kBAArBA,CAAqB,EAArBA,IAAqB,IAYbC,GAAgB,SAAAhF,GAKzB,SAAAgF,EAAoC/E,GAAkC,IAAAjrB,EAAF,OA5BxE,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCA4B0E5I,CAAA,KAAA0xB,GAC1DzxB,GAARyB,EAAAO,GAAA,KAAAyvB,GAAQ,QALYD,IAAqBxxB,GAAAyB,EAAA,oBAAAA,EAITirB,QAAAA,EAAgCjrB,CAEpE,CAAC,OA9BL,SAAAiG,EAAApC,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAAqD,UAAA,sDAAAjB,EAAAlI,UAAAN,OAAA+I,OAAA3C,GAAAA,EAAA9F,UAAA,CAAA+K,YAAA,CAAA1K,MAAA6H,EAAA6B,UAAA,EAAAD,cAAA,KAAApK,OAAAC,eAAAuI,EAAA,aAAA6B,UAAA,IAAAjE,GAAAoF,GAAAhD,EAAApC,EAAA,CA8BKpD,CAAAuvB,EAAAhF,GA9BLnnB,EA8BKmsB,EA9BL9pB,EA8BK,EAAA3I,IAAA,OAAAa,OAAAovB,EAAAvlB,GAAAR,KAAAE,EAED,SAAAyI,EAAyDqd,EAA0BC,GAAwC,IAAA3sB,EAAA,OAAA0G,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,EAI3E,OAFtC5C,EAAW3D,KAAKuwB,eAAeF,EAAaC,GAClDtwB,KAAK6yB,UAAUxwB,KAAK,CAACkB,KAAMI,EAAUmvB,SAAU,EAAGC,cAAe,OACjE/yB,KAAKgzB,YAAYhzB,KAAK6yB,UAAU9vB,OAAS,GAAGkQ,EAAAvJ,EAAA,EACrC1J,KAAKwwB,iCAAiC7sB,GAAS,EAAAqP,EAAA,SACzD,SANgBoB,EAAA9G,GAAA,OAAA8iB,EAAA9rB,MAAA,KAAAxB,UAAA,KAAA3C,IAAA,UAAAa,MAQjB,WAAuB,IAAA4C,EAAA,KAEnB5D,KAAK6yB,UAAUrwB,QAAQ,SAAAoC,GACfA,EAAKmuB,eACLnB,aAAahtB,EAAKmuB,eAEtBnvB,EAAKI,iBAAgB,OAAQY,EAAKrB,KAAKC,IAC3C,GACAxD,KAAK6yB,UAAY,GACjB7yB,KAAKkH,KAAKlH,KAAKsxB,MAAM2B,SAAS,EAClC,GAAC,CAAA9yB,IAAA,YAAAa,OAAAkyB,EAAAroB,GAAAR,KAAAE,EAED,SAAA6I,EAA0B+f,EAAeC,GAAkB,IAAAzvB,EAAA,OAAA0G,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,OACvB,OAAhCvG,KAAK6yB,UAAU9wB,OAAOoxB,EAAO,GAAG7f,EAAA/M,EAAA,EACC6sB,EAASC,OAAM,OAA1C1vB,EAAkB2P,EAAA7J,EACxBzJ,KAAKqxB,uBAAuB1tB,GAC5B3D,KAAKkH,KAAKvD,EAASL,KAAMK,EAASJ,MAClCvD,KAAKkH,KAAKlH,KAAKsxB,MAAMniB,QAASxL,GAAU,cAAA2P,EAAA5J,EAAA,KAAA0J,EAAA,SAC3C,SANwBjF,EAAAsB,GAAA,OAAAyjB,EAAA5uB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,UAAAa,MAQzB,SAAkBmyB,EAAeG,GAAoB,IAAAC,EAAAC,EAAA3sB,EAAA,KACjD,GAAI7G,KAAK6yB,UAAUM,GAAOL,WAAwC,QAAhCS,EAAKvzB,KAAK6tB,QAAQ4F,sBAAc,IAAAF,EAAAA,EAAI,IAKlE,OAJAvzB,KAAK6yB,UAAU9wB,OAAOoxB,EAAO,QAC7BnzB,KAAK+wB,wBAAwB/wB,KAAK6yB,UAAUM,GAAO5vB,KAAM,IAAI2L,MAAM,eAAD9L,OAC/CkwB,EAAI,6DAI3BtzB,KAAK6yB,UAAUM,GAAOJ,cAAgBnD,WAClC,kBAAM/oB,EAAKmsB,YAAYG,EAAM,EACF,QADEK,EAC7BxzB,KAAK6tB,QAAQ6F,sBAAc,IAAAF,EAAAA,EAAI,IAEvC,GAAC,CAAArzB,IAAA,cAAAa,MAED,SAAsBmyB,GAAqB,IAAAvE,EAAA9mB,EAAA,KACvC9H,KAAK6yB,UAAUM,GAAOL,WACtB,IAAMa,EAAW9C,KAAKC,UAAU9wB,KAAK6yB,UAAUM,GAAO5vB,MAChDqwB,EAAe,CACjB,eAAgB,mBAChBC,OAAQ,oBAGZD,EAAQE,cAAgB,UAAH1wB,OAAapD,KAAK6tB,QAAQsB,OAE/C,IAAML,EAAS,IAAIG,gBAAwC,QAAzBL,EAAC5uB,KAAK6tB,QAAQqB,mBAAW,IAAAN,EAAAA,EAAI,CAAC,GAC1DU,EAAM,GAAHlsB,OAAMpD,KAAK6tB,QAAQyB,KAAGlsB,OAAG0rB,EAAS,IAAMA,EAAS,IAE1DiF,MAAMzE,EAAK,CACPsE,QAAAA,EACAN,KAAMK,EACNK,OAAQ,SAEPppB,KAAK,SAAAwoB,GAAQ,OAAItrB,EAAK4nB,UAAUyD,EAAOC,EAAS,GAAC,MAC3C,kBAAMtrB,EAAKmsB,QAAQd,EAAOQ,EAAS,EAClD,IA9FJ7qB,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EAkDKqqB,EApBA9C,CAgEA,CAvEwB,CAAS1tB,G,yZCvBtC,IAAA+D,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAAqrB,GAAAztB,EAAAqC,GAAA,IAAAD,EAAAxI,OAAAkH,KAAAd,GAAA,GAAApG,OAAA8zB,sBAAA,KAAA/zB,EAAAC,OAAA8zB,sBAAA1tB,GAAAqC,IAAA1I,EAAAA,EAAA+R,OAAA,SAAArJ,GAAA,OAAAzI,OAAA+zB,yBAAA3tB,EAAAqC,GAAAvI,UAAA,IAAAsI,EAAAxG,KAAAiC,MAAAuE,EAAAzI,EAAA,QAAAyI,CAAA,UAAAyF,GAAA7H,GAAA,QAAAqC,EAAA,EAAAA,EAAAhG,UAAAC,OAAA+F,IAAA,KAAAD,EAAA,MAAA/F,UAAAgG,GAAAhG,UAAAgG,GAAA,GAAAA,EAAA,EAAAorB,GAAA7zB,OAAAwI,IAAA,GAAArG,QAAA,SAAAsG,GAAA3H,GAAAsF,EAAAqC,EAAAD,EAAAC,GAAA,GAAAzI,OAAAg0B,0BAAAh0B,OAAAi0B,iBAAA7tB,EAAApG,OAAAg0B,0BAAAxrB,IAAAqrB,GAAA7zB,OAAAwI,IAAArG,QAAA,SAAAsG,GAAAzI,OAAAC,eAAAmG,EAAAqC,EAAAzI,OAAA+zB,yBAAAvrB,EAAAC,GAAA,UAAArC,CAAA,UAAAtF,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAkE,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAA6K,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GAYO,IAAeurB,GAAkB,WAKhC,OAjBR9tB,EAeI,SAAA8tB,EACqB1G,IAhBzB,SAAAnkB,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCAiBM5I,CAAA,KAAAqzB,GAAA,KADmB1G,QAAAA,CAClB,EAjBP/kB,EAiBQ,EAAA3I,IAAA,OAAAa,OAAAovB,EAAAvlB,GAAAR,KAAAE,EAEJ,SAAAyI,EACIghB,EACAQ,GAAW,IAAAjxB,EAAAkxB,EAAAnF,EAAAgE,EAAAM,EAAAvuB,EAAAyQ,EAAAhT,UAAA,OAAAuH,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,OAmBiB,OAlB5BhD,EAASuS,EAAA/S,OAAA,QAAAjB,IAAAgU,EAAA,GAAAA,EAAA,QAAGhU,EACZ2yB,EAAyC3e,EAAA/S,OAAA,QAAAjB,IAAAgU,EAAA,GAAAA,EAAA,GAAG,CAAC,EAEzCwZ,EAAMtvB,KAAK00B,OAAOF,GAClBlB,OAAOxxB,EAEPyB,IACI,CAAC,MAAO,UAAUoO,SAASqiB,GAC3B1E,GAAO,IAAM,IAAIL,gBAAgB1rB,GAAMG,WAEvC4vB,EAAOzC,KAAKC,UAAUvtB,IAIxBqwB,EAAOtlB,GAAAA,GAAA,CACT,eAAgB,mBAChBulB,OAAQ,oBACLY,GACAz0B,KAAK20B,kBAAgB1hB,EAAA1M,EAAA,EAGPwtB,MAAMzE,EAAK,CAAC0E,OAAAA,EAAQV,KAAAA,EAAMM,QAAAA,IAAS,OAA5C,OAANvuB,EAAM4N,EAAAxJ,EAAAwJ,EAAAvJ,EAAA,EAEL1J,KAAK40B,qBAAqBvvB,IAAO,EAAA2N,EAAA,SAC3C,SA3BmBoB,EAAA9G,GAAA,OAAA8iB,EAAA9rB,MAAA,KAAAxB,UAAA,KAAA3C,IAAA,iBAAAa,MA6BpB,WACI,IAAM4yB,EAAU,CAAC,EAMjB,OAJI5zB,KAAK6tB,QAAQsB,QACbyE,EAAQE,cAAgB,UAAH1wB,OAAapD,KAAK6tB,QAAQsB,QAG5CyE,CACX,GAAC,CAAAzzB,IAAA,SAAAa,MAED,SAAiBwzB,GAAqB,IAAAK,EAClC,OAAO70B,KAAK80B,kBAAkC,QAAjBD,EAAC70B,KAAK6tB,QAAQyB,WAAG,IAAAuF,EAAAA,EAAI70B,KAAK+0B,YAAc,IAAM/0B,KAAKg1B,oBAAoBR,EACxG,GAAC,CAAAr0B,IAAA,uBAAAa,OAAAi0B,EAAApqB,GAAAR,KAAAE,EAED,SAAA6I,EAAwC/N,GAAgB,IAAA6vB,EAAA3gB,EAAA5D,EAAAC,EAAAC,EAAA,OAAAxG,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,GAAA,OAG3B,GAH2BgO,EAE5ClP,EAAOyhB,GAAEnW,EACLtL,EAAO8vB,OACyB,QADnBD,EACf7vB,EAAOuuB,QAAQpzB,IAAI,uBAAe,IAAA00B,IAAlCA,EAAoCvjB,SAAS,QAAO,CAAA2B,EAAA/M,EAAA,eAAA+M,EAAA/M,EAAA,EAASlB,EAAOguB,OAAM,OAAAziB,EAAA0C,EAAA7J,EAAA6J,EAAA/M,EAAA,sBAAA+M,EAAA/M,EAAA,EAASlB,EAAO+vB,OAAM,OAAAxkB,EAAA0C,EAAA7J,EAAA,cAAAoH,EAAAD,EAAA0C,EAAA5J,EAAA,GAFtGod,GAAEvS,EACF4gB,OAAMxkB,EACNpN,KAAIsN,IAAA,EAAAuC,EAAA,IAEX,SANmCjF,GAAA,OAAA8mB,EAAA3wB,MAAA,KAAAxB,UAAA,KAAA3C,IAAA,sBAAAa,MAQpC,SAA4Bo0B,GACxB,OAAOA,EAAKC,QAAQ,OAAQ,GAChC,GAAC,CAAAl1B,IAAA,oBAAAa,MAED,SAA0Bo0B,GACtB,OAAOA,EAAKC,QAAQ,OAAQ,GAChC,IA5EJvsB,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EA4DKosB,EA3CG7E,CA2DH,CAhEmC,G,yZCZxC,IAAA3pB,EAAAoC,EAAAC,EAAA,mBAAAhI,OAAAA,OAAA,GAAAyF,EAAAuC,EAAAC,UAAA,aAAA3I,EAAA0I,EAAA/H,aAAA,yBAAAiI,EAAAF,EAAAvC,EAAAnG,EAAA4I,GAAA,IAAAC,EAAA1C,GAAAA,EAAA5F,qBAAAuI,EAAA3C,EAAA2C,EAAAC,EAAA9I,OAAA+I,OAAAH,EAAAtI,WAAA,OAAA0I,GAAAF,EAAA,mBAAAL,EAAAvC,EAAAnG,GAAA,IAAA4I,EAAAC,EAAAE,EAAAzC,EAAA,EAAA4C,EAAAlJ,GAAA,GAAAmJ,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAA/C,EAAA,EAAAkD,EAAAhD,EAAAiD,EAAAC,EAAAjD,EAAAiD,EAAAC,KAAAnD,EAAA,GAAAkD,EAAA,SAAAd,EAAAC,GAAA,OAAAE,EAAAH,EAAAI,EAAA,EAAAE,EAAA1C,EAAA+C,EAAAjD,EAAAuC,EAAAY,CAAA,YAAAC,EAAAb,EAAAvC,GAAA,IAAA0C,EAAAH,EAAAK,EAAA5C,EAAAsC,EAAA,GAAAU,GAAA7C,IAAAtG,GAAAyI,EAAAS,EAAAvG,OAAA8F,IAAA,KAAAzI,EAAA4I,EAAAM,EAAAT,GAAAc,EAAAH,EAAAF,EAAAO,EAAAb,EAAA,GAAAF,EAAA,GAAA1I,EAAAyJ,IAAAtD,KAAA4C,EAAAH,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAvC,GAAAuC,EAAA,IAAAW,KAAAvJ,EAAA0I,EAAA,GAAAa,EAAAX,EAAA,KAAAC,EAAA,EAAAO,EAAAC,EAAAlD,EAAAiD,EAAAjD,EAAAyC,EAAA,IAAAW,EAAAE,IAAAzJ,EAAA0I,EAAA,GAAAE,EAAA,GAAAzC,GAAAA,EAAAsD,KAAAb,EAAA,GAAAF,EAAAE,EAAA,GAAAzC,EAAAiD,EAAAjD,EAAAsD,EAAAZ,EAAA,OAAA7I,GAAA0I,EAAA,SAAAY,EAAA,MAAAH,GAAA,EAAAhD,CAAA,iBAAAnG,EAAAkJ,EAAAO,GAAA,GAAAnD,EAAA,QAAAoD,UAAA,oCAAAP,GAAA,IAAAD,GAAAK,EAAAL,EAAAO,GAAAZ,EAAAK,EAAAH,EAAAU,GAAAhB,EAAAI,EAAA,EAAAxC,EAAA0C,KAAAI,GAAA,CAAAP,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAO,EAAAjD,GAAA,GAAAoD,EAAAV,EAAAE,IAAAK,EAAAjD,EAAA4C,EAAAK,EAAAC,EAAAN,GAAA,OAAAzC,EAAA,EAAAsC,EAAA,IAAAC,IAAA7I,EAAA,QAAAyI,EAAAG,EAAA5I,GAAA,MAAAyI,EAAAA,EAAAhI,KAAAmI,EAAAG,IAAA,MAAAW,UAAA,wCAAAjB,EAAArD,KAAA,OAAAqD,EAAAM,EAAAN,EAAA7H,MAAAiI,EAAA,IAAAA,EAAA,YAAAA,IAAAJ,EAAAG,EAAA,SAAAH,EAAAhI,KAAAmI,GAAAC,EAAA,IAAAE,EAAAW,UAAA,oCAAA1J,EAAA,YAAA6I,EAAA,GAAAD,EAAAvC,CAAA,UAAAoC,GAAAU,EAAAC,EAAAjD,EAAA,GAAA4C,EAAAL,EAAAjI,KAAA0F,EAAAiD,MAAAE,EAAA,YAAAb,GAAAG,EAAAvC,EAAAwC,EAAA,EAAAE,EAAAN,CAAA,SAAAnC,EAAA,UAAA1F,MAAA6H,EAAArD,KAAA+D,EAAA,GAAAT,EAAA1I,EAAA4I,IAAA,GAAAG,CAAA,KAAAO,EAAA,YAAAR,IAAA,UAAAa,IAAA,UAAAC,IAAA,CAAAnB,EAAAxI,OAAA4J,eAAA,IAAAhB,EAAA,GAAA1C,GAAAsC,EAAAA,EAAA,GAAAtC,QAAA8C,GAAAR,EAAA,GAAAtC,EAAA,yBAAAsC,GAAAM,EAAAa,EAAArJ,UAAAuI,EAAAvI,UAAAN,OAAA+I,OAAAH,GAAA,SAAAvC,EAAAD,GAAA,OAAApG,OAAA6J,eAAA7J,OAAA6J,eAAAzD,EAAAuD,IAAAvD,EAAA0D,UAAAH,EAAAX,GAAA5C,EAAArG,EAAA,sBAAAqG,EAAA9F,UAAAN,OAAA+I,OAAAD,GAAA1C,CAAA,QAAAsD,EAAApJ,UAAAqJ,EAAAX,GAAAF,EAAA,cAAAa,GAAAX,GAAAW,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAAf,GAAAW,EAAA5J,EAAA,qBAAAiJ,GAAAF,GAAAE,GAAAF,EAAA/I,EAAA,aAAAiJ,GAAAF,EAAA5C,EAAA,yBAAA8C,GAAAF,EAAA,oDAAAkB,GAAA,kBAAAC,EAAAtB,EAAAuB,EAAA7D,EAAA,cAAA2C,GAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,IAAAG,EAAA3I,OAAAC,eAAA,IAAA0I,EAAA,gBAAAvC,GAAAuC,EAAA,EAAAK,GAAA,SAAA5C,EAAAqC,EAAAvC,EAAAsC,GAAA,SAAAzI,EAAA0I,EAAAvC,GAAA8C,GAAA5C,EAAAqC,EAAA,SAAArC,GAAA,YAAA+D,QAAA1B,EAAAvC,EAAAE,EAAA,GAAAqC,EAAAE,EAAAA,EAAAvC,EAAAqC,EAAA,CAAA9H,MAAAuF,EAAAhG,YAAAsI,EAAA4B,cAAA5B,EAAA6B,UAAA7B,IAAApC,EAAAqC,GAAAvC,GAAAnG,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAiJ,GAAA5C,EAAAqC,EAAAvC,EAAAsC,EAAA,UAAAqrB,GAAAztB,EAAAqC,GAAA,IAAAD,EAAAxI,OAAAkH,KAAAd,GAAA,GAAApG,OAAA8zB,sBAAA,KAAA/zB,EAAAC,OAAA8zB,sBAAA1tB,GAAAqC,IAAA1I,EAAAA,EAAA+R,OAAA,SAAArJ,GAAA,OAAAzI,OAAA+zB,yBAAA3tB,EAAAqC,GAAAvI,UAAA,IAAAsI,EAAAxG,KAAAiC,MAAAuE,EAAAzI,EAAA,QAAAyI,CAAA,UAAAyF,GAAA7H,GAAA,QAAAqC,EAAA,EAAAA,EAAAhG,UAAAC,OAAA+F,IAAA,KAAAD,EAAA,MAAA/F,UAAAgG,GAAAhG,UAAAgG,GAAA,GAAAA,EAAA,EAAAorB,GAAA7zB,OAAAwI,IAAA,GAAArG,QAAA,SAAAsG,GAAA3H,GAAAsF,EAAAqC,EAAAD,EAAAC,GAAA,GAAAzI,OAAAg0B,0BAAAh0B,OAAAi0B,iBAAA7tB,EAAApG,OAAAg0B,0BAAAxrB,IAAAqrB,GAAA7zB,OAAAwI,IAAArG,QAAA,SAAAsG,GAAAzI,OAAAC,eAAAmG,EAAAqC,EAAAzI,OAAA+zB,yBAAAvrB,EAAAC,GAAA,UAAArC,CAAA,UAAAkE,GAAApE,EAAAsC,EAAApC,EAAAqC,EAAA1I,EAAAsJ,EAAAT,GAAA,QAAAD,EAAAzC,EAAAmD,GAAAT,GAAAE,EAAAH,EAAAhI,KAAA,OAAAuF,GAAA,YAAAE,EAAAF,EAAA,CAAAyC,EAAAxD,KAAAqD,EAAAM,GAAAtF,QAAA0E,QAAAY,GAAAyB,KAAA9B,EAAA1I,EAAA,UAAAyK,GAAAtE,GAAA,sBAAAsC,EAAA,KAAApC,EAAA3D,UAAA,WAAAe,QAAA,SAAAiF,EAAA1I,GAAA,IAAAsJ,EAAAnD,EAAAjC,MAAAuE,EAAApC,GAAA,SAAAqE,EAAAvE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,OAAAxE,EAAA,UAAAwE,EAAAxE,GAAAoE,GAAAjB,EAAAZ,EAAA1I,EAAA0K,EAAAC,EAAA,QAAAxE,EAAA,CAAAuE,OAAA,eAAAE,GAAAvE,EAAAqC,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA/F,OAAA8F,IAAA,KAAAzI,EAAA0I,EAAAD,GAAAzI,EAAAG,WAAAH,EAAAG,aAAA,EAAAH,EAAAqK,cAAA,YAAArK,IAAAA,EAAAsK,UAAA,GAAArK,OAAAC,eAAAmG,EAAAwE,GAAA7K,EAAAD,KAAAC,EAAA,WAAA+C,GAAA0F,EAAAzI,EAAAqG,GAAA,OAAArG,EAAA8K,GAAA9K,GAAA,SAAAyI,EAAApC,GAAA,GAAAA,IAAA,UAAA0E,GAAA1E,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAqD,UAAA,4EAAArD,GAAA,YAAAA,EAAA,UAAA2E,eAAA,oEAAA3E,CAAA,CAAA4E,CAAAxC,EAAA,CAAAyC,CAAAzC,EAAA0C,KAAAC,QAAAC,UAAArL,EAAAqG,GAAA,GAAAyE,GAAArC,GAAA6C,aAAAtL,EAAAkE,MAAAuE,EAAApC,GAAA,UAAA8E,KAAA,QAAA1C,GAAA8C,QAAAhL,UAAAiL,QAAA/K,KAAA2K,QAAAC,UAAAE,QAAA,wBAAA9C,GAAA,QAAA0C,GAAA,mBAAA1C,CAAA,cAAAqC,GAAArC,GAAA,OAAAqC,GAAA7K,OAAA6J,eAAA7J,OAAA4J,eAAAL,OAAA,SAAAf,GAAA,OAAAA,EAAAsB,WAAA9J,OAAA4J,eAAApB,EAAA,EAAAqC,GAAArC,EAAA,UAAAgD,GAAAhD,EAAApC,GAAA,OAAAoF,GAAAxL,OAAA6J,eAAA7J,OAAA6J,eAAAN,OAAA,SAAAf,EAAApC,GAAA,OAAAoC,EAAAsB,UAAA1D,EAAAoC,CAAA,EAAAgD,GAAAhD,EAAApC,EAAA,UAAAtF,GAAAsF,EAAAqC,EAAAD,GAAA,OAAAC,EAAAmC,GAAAnC,MAAArC,EAAApG,OAAAC,eAAAmG,EAAAqC,EAAA,CAAA9H,MAAA6H,EAAAtI,YAAA,EAAAkK,cAAA,EAAAC,UAAA,IAAAjE,EAAAqC,GAAAD,EAAApC,CAAA,UAAAwE,GAAApC,GAAA,IAAAG,EAAA,SAAAH,EAAAC,GAAA,aAAAqC,GAAAtC,KAAAA,EAAA,OAAAA,EAAA,IAAApC,EAAAoC,EAAA/H,OAAAgL,aAAA,YAAArF,EAAA,KAAAuC,EAAAvC,EAAA5F,KAAAgI,EAAAC,GAAA,wBAAAqC,GAAAnC,GAAA,OAAAA,EAAA,UAAAc,UAAA,kEAAAhB,EAAAiD,OAAAC,QAAAnD,EAAA,CAAAoD,CAAApD,EAAA,0BAAAsC,GAAAnC,GAAAA,EAAAA,EAAA,GAWO,IAAMssB,GAAW,SAAAC,GAAA,SAAAD,IAAA,IAAA1yB,GAXxB,SAAA8G,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,UAAAuD,UAAA,qCAWwB5I,CAAA,KAAAo0B,GAAA,QAAAzyB,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GACoC,OADpC/B,GAAAyB,EAAAO,GAAA,KAAAmyB,EAAA,GAAAlyB,OAAAJ,IAAA,aACW,2BAAyBJ,CAAA,QAZ5D,SAAAiG,EAAApC,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAAqD,UAAA,sDAAAjB,EAAAlI,UAAAN,OAAA+I,OAAA3C,GAAAA,EAAA9F,UAAA,CAAA+K,YAAA,CAAA1K,MAAA6H,EAAA6B,UAAA,EAAAD,cAAA,KAAApK,OAAAC,eAAAuI,EAAA,aAAA6B,UAAA,IAAAjE,GAAAoF,GAAAhD,EAAApC,EAAA,CAY4DpD,CAAAiyB,EAAAC,GAZ5D9uB,EAY4D6uB,EAZ5DxsB,EAY4D,EAAA3I,IAAA,aAAAa,OAAAw0B,EAAA3qB,GAAAR,KAAAE,EAExD,SAAAyI,EAAwByiB,GAA4B,IAAAC,EAAAvT,EAAAyR,EAAAR,EAAA,OAAA/oB,KAAAC,EAAA,SAAA2I,GAAA,cAAAA,EAAA1M,GAAA,OAMjB,OALzB4b,EAAOwT,mBAAiD,QAA/BD,EAAED,EAAyBtT,YAAI,IAAAuT,EAAAA,EAAI,IAC9D9B,EAAOtlB,GAAAA,GAAA,GACJtO,KAAK20B,kBAAgB,IACxBd,OAAQ,mBACR,sBAAuB,yBAAFzwB,OAA2B+e,EAAI,KACpD,iBAAkBsT,EAAK/wB,OAAIuO,EAAA1M,EAAA,EAGRwtB,MAAM/zB,KAAK00B,OAAO,SAAU,CAC/CV,OAAQ,OACRV,KAAMmC,EACN7B,QAAAA,IACF,OAJY,OAARR,EAAQngB,EAAAxJ,EAAAwJ,EAAAvJ,EAAA,EAMP1J,KAAK40B,qBAA2BxB,IAAS,EAAApgB,EAAA,SACnD,SAhBsBoB,GAAA,OAAAohB,EAAAlxB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,cAAAa,OAAA40B,EAAA/qB,GAAAR,KAAAE,EAkBvB,SAAA6I,EAAyBvO,GAAU,OAAAwF,KAAAC,EAAA,SAAAgJ,GAAA,cAAAA,EAAA/M,EAAA,OAAA+M,EAAA5J,EAAA,EACxB1J,KAAK8O,KAAK,MAAO,SAAWjK,GAAG,EAAAuO,EAAA,SACzC,SAFuB9F,GAAA,OAAAsoB,EAAAtxB,MAAC,KAADxB,UAAA,KAAA3C,IAAA,kBAAAa,OAAA60B,EAAAhrB,GAAAR,KAAAE,EAIxB,SAAAqJ,EAA6B9O,GAAa,IAAAgxB,EAAA,OAAAzrB,KAAAC,EAAA,SAAAuJ,GAAA,cAAAA,EAAAtN,EAEa,OAD7CuvB,EAAe,IAAI7G,gBACzBnqB,EAAItC,QAAQ,SAAAqC,GAAE,OAAIixB,EAAaC,OAAO,OAAQlxB,EAAG,GAAEgP,EAAAnK,EAAA,EAC5C1J,KAAK8O,KAAK,MAAO,SAAWgnB,GAAa,EAAAliB,EAAA,SACnD,SAJ2BzF,GAAA,OAAA0nB,EAAAvxB,MAAC,KAADxB,UAAA,KApChCgG,GAAAkC,GAAAvE,EAAA9F,UAAAmI,GAAAD,GAAAmC,GAAAvE,EAAAoC,GAAAxI,OAAAC,eAAAmG,EAAA,aAAAiE,UAAA,IAAAjE,EAAA,IAAAA,EAAAqC,EAAAD,EAgC4BgtB,EAlBDD,EAFiCJ,CAwB5B,CAzBR,CAASjB,I","sources":["webpack://PservClient/webpack/universalModuleDefinition","webpack://PservClient/webpack/bootstrap","webpack://PservClient/webpack/runtime/define property getters","webpack://PservClient/webpack/runtime/hasOwnProperty shorthand","webpack://PservClient/webpack/runtime/make namespace object","webpack://PservClient/./src/EventTarget.ts","webpack://PservClient/./src/AbstractChatClient.ts","webpack://PservClient/./src/IndexedObjectCollection.ts","webpack://PservClient/./src/state-tracker/AsyncUtils.ts","webpack://PservClient/./src/state-tracker/TopicHistoryWindow.ts","webpack://PservClient/./src/state-tracker/RoomMessagesHistory.ts","webpack://PservClient/./src/state-tracker/MessagesManager.ts","webpack://PservClient/./src/state-tracker/RoomsManager.ts","webpack://PservClient/./src/state-tracker/functions.ts","webpack://PservClient/./src/state-tracker/SpacesManager.ts","webpack://PservClient/./src/Permissions.ts","webpack://PservClient/./src/state-tracker/PermissionsManager.ts","webpack://PservClient/./src/state-tracker/EmoticonsManager.ts","webpack://PservClient/./src/state-tracker/UsersManager.ts","webpack://PservClient/./src/state-tracker/RelationshipsManager.ts","webpack://PservClient/./src/state-tracker/ChatStateTracker.ts","webpack://PservClient/./src/WebSocketChatClient.ts","webpack://PservClient/./src/WebApiChatClient.ts","webpack://PservClient/./src/AbstractRestClient.ts","webpack://PservClient/./src/FilesClient.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PservClient\"] = factory();\n\telse\n\t\troot[\"PservClient\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type EventHandler<EventT> = (ev?: EventT) => void;\ntype HandlersMap = Map<string, EventHandler<any>[]>;\ntype EventMapLike = Record<string, any>;\ntype KnownEventNames<EventT> = EventT extends EventMapLike ? keyof EventT & string : string;\ntype EventPayload<EventT, EventName extends string = never> = EventT extends EventMapLike\n ? [EventName] extends [never]\n ? EventT[keyof EventT]\n : EventName extends keyof EventT\n ? EventT[EventName]\n : EventT[keyof EventT]\n : EventT;\n\nexport type ChangeEventMap<Payload = void> = { change: Payload };\n\nexport interface ObservableInterface<EventT = any> {\n on<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n on(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n once<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n once(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n off<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n off(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n}\n\nexport class EventTarget<EventMapT extends Record<string, any> = Record<string, any>> implements ObservableInterface<EventMapT> {\n protected events: HandlersMap = new Map<string, EventHandler<any>[]>();\n protected onceEvents: HandlersMap = new Map<string, EventHandler<any>[]>();\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public on(eventName: string, handler: EventHandler<unknown>): this;\n public on(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.events, eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public once(eventName: string, handler: EventHandler<unknown>): this;\n public once(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.onceEvents, eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public off(eventName: string, handler: EventHandler<unknown>): this;\n public off(eventName: string, handler: EventHandler<any>): this {\n const index = this.events.get(eventName)?.indexOf(handler);\n if (index === undefined || index < 0) {\n return this;\n }\n this.events.get(eventName)?.splice(index, 1);\n return this;\n }\n\n public emit<K extends keyof EventMapT & string>(eventName: K, event: EventMapT[K]): this;\n public emit(eventName: string, event?: unknown): this;\n public emit(eventName: string, event?: any): this {\n this.callHandlers(this.events, eventName, event);\n this.callHandlers(this.onceEvents, eventName, event);\n this.onceEvents.delete(eventName);\n return this;\n }\n\n private addHandler(map: HandlersMap, eventName: string, handler: EventHandler<any>): void {\n const handlers = map.get(eventName) ?? [];\n handlers.push(handler);\n map.set(eventName, handlers);\n }\n\n private callHandlers(map: HandlersMap, eventName: string, event: unknown): void {\n map.get(eventName)?.forEach(callback => callback(event));\n }\n}","import {\n Bye,\n GetSession,\n JoinSpace,\n Session,\n SpaceJoined,\n Error as ErrorType,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMemberUpdated,\n SpaceDeleted,\n SpaceMembers,\n SpaceRooms,\n NewRole,\n RoomDeleted,\n RoomJoined,\n RoomLeft,\n RoomMemberLeft,\n RoomMemberJoined,\n RoomMembers,\n NewRoom,\n NewTopic,\n TopicDeleted,\n NewMessage,\n GetPermissionOverwrites,\n GetComputedPermissions,\n LeaveSpace,\n CreateSpace,\n DeleteSpace,\n GetSpaceMembers,\n GetSpaceRooms,\n CreateRole,\n DeleteRole,\n AssignRole,\n DeassignRole,\n SetPermissionOverwrites,\n JoinRoom,\n LeaveRoom,\n CreateRoom,\n DeleteRoom,\n GetRoomMembers,\n CreateTopic,\n DeleteTopic,\n CreateMessage,\n Envelope,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoomMemberUpdated,\n UpdateRole,\n RoleUpdated,\n Ack,\n UserUpdated,\n UpdateRoom,\n RoomUpdated,\n UpdateSpace,\n SpaceUpdated,\n PermissionOverwriteTargets,\n GetPermissionOverwriteTargets,\n Owners,\n Ok,\n GetOwners,\n CreateOwner,\n RoleDeleted,\n FollowedTopicUpdated,\n TopicFollowed,\n FollowedTopics,\n FollowTopic,\n UpdateFollowedTopic,\n GetFollowedTopics,\n Messages,\n GetMessages,\n Topics,\n GetTopics,\n TopicUpdated,\n UpdateTopic,\n GetDiscoverableSpaces,\n DiscoverableSpaces,\n CreateEmoticon,\n DeleteEmoticon,\n GetEmoticons,\n Emoticons,\n EmoticonDeleted,\n NewEmoticon,\n Bans,\n GetBans,\n Ban,\n Unban,\n Kick,\n ClientData,\n GetClientData,\n SetClientData,\n GetRoomSummary,\n GetSpaceSummary,\n RoomSummaryEvent,\n SpaceSummaryEvent,\n UpdateSpaceMember,\n Relationships,\n RelationshipDeleted,\n NewRelationship,\n DeleteRelationship,\n CreateRelationship,\n RoomSummaryUpdated,\n Pong,\n Ping,\n RedactMessages,\n MessagesRedacted,\n ReportAbuse,\n UpdateRoomMember,\n GetRelationships,\n GetUserInfo,\n UserInfo, SetSessionData,\n} from \"./types/src\";\nimport {EventTarget} from \"./EventTarget\";\n\ntype ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];\ntype ExtraEventMap = Record<string, any>;\n\ntype CommandDefinition<RequestT, ResponseT> = {\n request: RequestT;\n response: ResponseT;\n};\n\nexport abstract class AbstractChatClient<AdditionalEvents extends ExtraEventMap = {}> extends EventTarget<EventsMap & AdditionalEvents> {\n protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();\n protected sentCounter: number = 0;\n\n public abstract send<CommandType extends keyof CommandsMap>\n (commandType: CommandType, commandData: CommandRequest<CommandType>): Promise<CommandResult<CommandResponse<CommandType>>>;\n\n protected createEnvelope<CommandT>(type: string, data: CommandT): Envelope<CommandT> {\n return {\n type, data, ref: (++this.sentCounter).toString()\n };\n }\n\n protected createPromiseFromCommandEnvelope\n <CommandT extends keyof CommandsMap>(envelope: Envelope<CommandRequest<CommandT>>):\n Promise<CommandResult<CommandResponse<CommandT>>> {\n return new Promise((...args) =>\n this.awaitingResponse.set(envelope.ref as string, args));\n }\n\n protected handleIncomingEnvelope(envelope: Envelope): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n const isError = envelope.type === 'Error';\n this.awaitingResponse.get(envelope.ref)[0]({\n data: isError ? null : envelope.data,\n error: isError ? envelope.data : null,\n } as CommandResult<any>);\n this.awaitingResponse.delete(envelope.ref);\n }\n\n protected handleEnvelopeSendError(envelope: Envelope, error: any): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n this.awaitingResponse.get(envelope.ref)[1](error);\n this.awaitingResponse.delete(envelope.ref);\n }\n}\n\nexport type CommandResult<ResultT> = {data?: ResultT, error?: ErrorType};\nexport type CommandRequest<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['request'];\nexport type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['response'];\n\n /**\n * Map of incoming events.\n */\n export type EventsMap = {\n // General Events\n Bye: Bye,\n Ok: Ok,\n Error: ErrorType,\n Session: Session,\n Permissions: Permissions,\n PermissionOverwrites: PermissionOverwrites,\n PermissionOverwritesUpdated: PermissionOverwritesUpdated,\n PermissionOverwriteTargets: PermissionOverwriteTargets,\n Owners: Owners,\n NewEmoticon: NewEmoticon,\n EmoticonDeleted: EmoticonDeleted,\n Emoticons: Emoticons,\n Bans: Bans,\n ClientData: ClientData,\n NewRelationship: NewRelationship,\n RelationshipDeleted: RelationshipDeleted,\n Relationships: Relationships,\n Pong: Pong,\n UserInfo: UserInfo,\n // Space events\n DiscoverableSpaces: DiscoverableSpaces,\n SpaceJoined: SpaceJoined,\n SpaceLeft: SpaceLeft,\n SpaceMemberJoined: SpaceMemberJoined,\n SpaceMemberLeft: SpaceMemberLeft,\n SpaceMemberUpdated: SpaceMemberUpdated,\n SpaceUpdated: SpaceUpdated,\n SpaceDeleted: SpaceDeleted,\n SpaceMembers: SpaceMembers,\n SpaceRooms: SpaceRooms,\n NewRole: NewRole,\n RoleDeleted: RoleDeleted,\n RoleUpdated: RoleUpdated,\n SpaceSummaryEvent: SpaceSummaryEvent,\n // Room events\n RoomJoined: RoomJoined,\n RoomLeft: RoomLeft,\n RoomMemberJoined: RoomMemberJoined,\n RoomMemberLeft: RoomMemberLeft,\n RoomMemberUpdated: RoomMemberUpdated,\n RoomMembers: RoomMembers,\n NewRoom: NewRoom,\n RoomDeleted: RoomDeleted,\n RoomUpdated: RoomUpdated,\n RoomSummaryEvent: RoomSummaryEvent,\n RoomSummaryUpdated: RoomSummaryUpdated,\n // Topic events\n NewTopic: NewTopic,\n TopicDeleted: TopicDeleted,\n NewMessage: NewMessage,\n UserUpdated: UserUpdated,\n TopicFollowed: TopicFollowed,\n FollowedTopics: FollowedTopics,\n FollowedTopicUpdated: FollowedTopicUpdated,\n Messages: Messages,\n Topics: Topics,\n TopicUpdated: TopicUpdated,\n MessagesRedacted: MessagesRedacted,\n};\n\n/**\n * Map of commands and their corresponding events.\n */\nexport type CommandsMap = {\n // General commands\n GetSession: CommandDefinition<GetSession, EventsMap['Session']>,\n SetPermissionOverwrites: CommandDefinition<SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']>,\n GetPermissionOverwrites: CommandDefinition<GetPermissionOverwrites, EventsMap['PermissionOverwrites']>,\n GetComputedPermissions: CommandDefinition<GetComputedPermissions, EventsMap['Permissions']>,\n GetPermissionOverwriteTargets: CommandDefinition<GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']>,\n GetOwners: CommandDefinition<GetOwners, EventsMap['Owners']>,\n CreateOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n DeleteOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n CreateEmoticon: CommandDefinition<CreateEmoticon, EventsMap['NewEmoticon']>,\n DeleteEmoticon: CommandDefinition<DeleteEmoticon, EventsMap['EmoticonDeleted']>,\n GetEmoticons: CommandDefinition<GetEmoticons, EventsMap['Emoticons']>,\n GetBans: CommandDefinition<GetBans, EventsMap['Bans']>,\n Ban: CommandDefinition<Ban, EventsMap['Ok']>,\n Unban: CommandDefinition<Unban, EventsMap['Ok']>,\n Kick: CommandDefinition<Kick, EventsMap['Ok']>,\n GetClientData: CommandDefinition<GetClientData, EventsMap['ClientData']>,\n SetClientData: CommandDefinition<SetClientData, EventsMap['Ok']>,\n DeleteRelationship: CommandDefinition<DeleteRelationship, EventsMap['RelationshipDeleted']>,\n CreateRelationship: CommandDefinition<CreateRelationship, EventsMap['NewRelationship']>,\n GetRelationships: CommandDefinition<GetRelationships, EventsMap['Relationships']>,\n Ping: CommandDefinition<Ping, EventsMap['Pong']>,\n ReportAbuse: CommandDefinition<ReportAbuse, EventsMap['Ok']>,\n GetUserInfo: CommandDefinition<GetUserInfo, EventsMap['UserInfo']>,\n SetSessionData: CommandDefinition<SetSessionData, EventsMap['Ok']>,\n // Space commands\n GetDiscoverableSpaces: CommandDefinition<GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']>,\n JoinSpace: CommandDefinition<JoinSpace, EventsMap['SpaceJoined']>,\n LeaveSpace: CommandDefinition<LeaveSpace, EventsMap['SpaceLeft']>,\n CreateSpace: CommandDefinition<CreateSpace, EventsMap['SpaceJoined']>,\n UpdateSpace: CommandDefinition<UpdateSpace, EventsMap['SpaceUpdated']>,\n DeleteSpace: CommandDefinition<DeleteSpace, EventsMap['SpaceDeleted']>,\n GetSpaceMembers: CommandDefinition<GetSpaceMembers, EventsMap['SpaceMembers']>,\n GetSpaceRooms: CommandDefinition<GetSpaceRooms, EventsMap['SpaceRooms']>,\n CreateRole: CommandDefinition<CreateRole, EventsMap['NewRole']>,\n DeleteRole: CommandDefinition<DeleteRole, EventsMap['RoleDeleted']>,\n UpdateRole: CommandDefinition<UpdateRole, EventsMap['RoleUpdated']>,\n AssignRole: CommandDefinition<AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n DeassignRole: CommandDefinition<DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n GetSpaceSummary: CommandDefinition<GetSpaceSummary, EventsMap['SpaceSummaryEvent']>,\n UpdateSpaceMember: CommandDefinition<UpdateSpaceMember, EventsMap['SpaceMemberUpdated']>,\n // Room commands\n JoinRoom: CommandDefinition<JoinRoom, EventsMap['RoomJoined']>,\n LeaveRoom: CommandDefinition<LeaveRoom, EventsMap['RoomLeft']>,\n CreateRoom: CommandDefinition<CreateRoom, EventsMap['RoomJoined']>,\n DeleteRoom: CommandDefinition<DeleteRoom, EventsMap['RoomDeleted']>,\n UpdateRoom: CommandDefinition<UpdateRoom, EventsMap['RoomUpdated']>,\n GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>,\n GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>,\n UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>,\n // Topic commands\n CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>,\n DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>,\n CreateMessage: CommandDefinition<CreateMessage, EventsMap['NewMessage']>,\n Ack: CommandDefinition<Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']>,\n FollowTopic: CommandDefinition<FollowTopic, EventsMap['TopicFollowed']>,\n UpdateFollowedTopic: CommandDefinition<UpdateFollowedTopic, EventsMap['FollowedTopicUpdated']>,\n GetFollowedTopics: CommandDefinition<GetFollowedTopics, EventsMap['FollowedTopics']>,\n GetMessages: CommandDefinition<GetMessages, EventsMap['Messages']>,\n GetTopics: CommandDefinition<GetTopics, EventsMap['Topics']>,\n UpdateTopic: CommandDefinition<UpdateTopic, EventsMap['TopicUpdated']>,\n RedactMessages: CommandDefinition<RedactMessages, EventsMap['MessagesRedacted']>,\n }\n","import {EventHandler, EventTarget, ObservableInterface} from \"./EventTarget\";\n\nexport class IndexedCollection<KeyT, ValueT> {\n protected _items: Map<KeyT, ValueT> = new Map();\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n this.set(...items);\n }\n\n public get items(): Map<KeyT, ValueT> {\n return this._items;\n }\n\n public get length(): number {\n return this._items.size;\n }\n\n public set(...items: [KeyT, ValueT][]): void {\n for (const item of items) {\n this._items.set(item[0], item[1]);\n }\n }\n\n public get(id: KeyT): ValueT | undefined {\n return this.items.get(id);\n }\n\n public has(id: KeyT): boolean {\n return this.items.has(id);\n }\n\n public delete(...ids: KeyT[]): void {\n for (const id of ids) {\n this.items.delete(id);\n }\n }\n\n public deleteAll(): void {\n this.items.clear();\n }\n\n public findBy(field: keyof ValueT, valueToFind: any, limit: number = null): IndexedCollection<KeyT, ValueT> {\n const result = new IndexedCollection<KeyT, ValueT>();\n let item;\n while (!(item = this.items.entries().next().value).done) {\n if (limit && result.length === limit) {\n break;\n }\n if (item[1][field] === valueToFind) {\n result.set(item);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedCollection<KeyT, ValueT> {\n const copy = new IndexedCollection<KeyT, ValueT>();\n copy._items = this._items;\n return copy;\n }\n}\n\nexport class IndexedObjectCollection<T> {\n protected _items: IndexedCollection<string, T>;\n\n public constructor(\n public readonly id: keyof T | ((item: T) => any),\n items: T[] = [],\n ) {\n this._items = new IndexedCollection<string, T>();\n this.set(...items);\n }\n\n public get items(): T[] {\n return Array.from(this._items.items.values());\n }\n\n public get length(): number {\n return this._items.length;\n }\n\n public set(...items: T[]): void {\n this._items.set(...(items.map(item => [this.getId(item), item] as [string, T])));\n }\n\n public get(id: any): T | undefined {\n return this._items.get(id);\n }\n\n public getAt(index: number): T | undefined {\n return this.items[index];\n }\n\n public has(id: any): boolean {\n return this._items.has(id);\n }\n\n public delete(...ids: any[]): void {\n this._items.delete(...ids);\n }\n\n public deleteAll(): void {\n this._items.deleteAll();\n }\n\n public findBy(field: keyof T, valueToFind: any, limit: number = null): IndexedObjectCollection<T> {\n const result = new IndexedObjectCollection<T>(this.id);\n for (const value of this.items) {\n if (limit && result.length === limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set(value);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedObjectCollection<T> {\n const copy = new IndexedObjectCollection<T>(this.id);\n copy._items = this._items;\n return copy;\n }\n\n protected getId(item: T): any {\n return typeof this.id === 'function' ? this.id(item) : item[this.id];\n }\n}\n\nexport type CollectionEventMap<IdType = string> = {\n change: { setItems?: IdType[]; deletedItems?: IdType[] };\n};\n\nexport class ObservableIndexedCollection<\n KeyT,\n ValueT,\n EventMapT extends CollectionEventMap<KeyT> = CollectionEventMap<KeyT>\n> extends IndexedCollection<KeyT, ValueT> implements ObservableInterface<EventMapT> {\n\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n super();\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: [KeyT, ValueT][]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => item[0]) });\n }\n }\n\n public delete(...ids: KeyT[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = Array.from(this._items.keys());\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: Array.from(ids) });\n }\n }\n\n public createMirror(): ObservableIndexedCollection<KeyT, ValueT, EventMapT> {\n const copy = new ObservableIndexedCollection<KeyT, ValueT, EventMapT>();\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}\n\nexport class ObservableIndexedObjectCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends IndexedObjectCollection<ItemT> implements ObservableInterface<EventMapT> {\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(\n id: keyof ItemT | ((item: ItemT) => string),\n items: ItemT[] = [],\n ) {\n super(id);\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: ItemT[]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => this.getId(item)) });\n }\n }\n\n public delete(...ids: string[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = this.items.map(item => this.getId(item));\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public createMirror(): ObservableIndexedObjectCollection<ItemT, EventMapT> {\n const copy = new ObservableIndexedObjectCollection<ItemT, EventMapT>(this.id);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}","import {IndexedCollection} from \"../IndexedObjectCollection\";\r\n\r\nexport class DeferredTask {\r\n public readonly promise: Promise<void>;\r\n public resolve: () => void;\r\n\r\n public constructor() {\r\n this.promise = new Promise<void>((resolve) => this.resolve = resolve);\r\n }\r\n}\r\n\r\nexport class PromiseRegistry {\r\n private promises = new IndexedCollection<string, Promise<any>>();\r\n\r\n public register<T = any>(promise: Promise<T>, key: string): void {\r\n this.promises.set([key, promise]);\r\n }\r\n\r\n public registerByFunction(fn: () => Promise<any>, key: string): void {\r\n this.register(fn(), key);\r\n }\r\n\r\n public get<T = any>(key: string): Promise<T> | undefined {\r\n return this.promises.get(key);\r\n }\r\n\r\n public has(key: string): boolean {\r\n return this.promises.has(key);\r\n }\r\n\r\n public notExist(key: string): boolean {\r\n return ! this.has(key);\r\n }\r\n\r\n public forget(...keys: string[]): void {\r\n this.promises.delete(...keys);\r\n }\r\n\r\n public forgetAll(): void {\r\n this.promises.deleteAll();\r\n }\r\n}","import {Message, MessagesRedacted, NewMessage, Topic} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {CollectionEventMap, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\n\nexport enum WindowState {\n /**\n * The latest messages (those received live) are available in the history window, history has not been fetched.\n */\n LIVE,\n\n /**\n * The latest messages has been fetched and are available in the history window.\n */\n LATEST,\n\n /**\n * The historical messages have been fetched and are available in the history window.\n * Latest messages are not available and will not be available.\n */\n PAST,\n\n /**\n * The oldest messages have been fetched and are available in the history window.\n * Next attempts to fetch previous messages will result with no-op.\n */\n OLDEST,\n}\n\nexport abstract class TraversableRemoteCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends ObservableIndexedObjectCollection<ItemT, EventMapT> {\n /**\n * Current mode od collection window. To change mode, call one of available fetch methods.\n */\n public get state(): WindowState {\n return this.internalState.current;\n }\n\n protected internalState: {\n current: WindowState,\n ongoing?: WindowState,\n limit: number | null, // Acts as High Watermark\n retainRatio: number, // Percentage of limit to keep when trimming\n fetchLimit: number,\n lastFetchCount: number,\n oldestId: string | null,\n } = {\n current: WindowState.LIVE,\n ongoing: undefined,\n limit: 1000,\n retainRatio: 1,\n fetchLimit: 50,\n lastFetchCount: 0,\n oldestId: null,\n };\n\n /**\n * Number of items to fetch per request.\n */\n public get fetchLimit(): number {\n return this.internalState.fetchLimit;\n }\n\n /**\n * Sets number of items to fetch per request.\n */\n public set fetchLimit(value: number) {\n this.internalState.fetchLimit = value;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public get limit(): number | null {\n return this.internalState.limit;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public set limit(value: number | null) {\n this.internalState.limit = value;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public get retainRatio(): number {\n return this.internalState.retainRatio;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public set retainRatio(value: number) {\n this.internalState.retainRatio = value;\n }\n\n public get hasLatest(): boolean {\n return [WindowState.LATEST, WindowState.LIVE].includes(this.state);\n }\n\n public get hasOldest(): boolean {\n return this.state === WindowState.OLDEST\n || this.state === WindowState.LATEST && this.length < this.fetchLimit\n || this.internalState.oldestId !== null && this.has(this.internalState.oldestId);\n }\n\n public abstract createMirror(): TraversableRemoteCollection<ItemT, EventMapT>;\n\n public async resetToLatest(): Promise<void> {\n if (this.internalState.ongoing || this.internalState.current === WindowState.LATEST) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.LATEST;\n\n try {\n result = await this.fetchLatestItems();\n this.internalState.lastFetchCount = result.length;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.LATEST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.ongoing || this.hasOldest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsBefore();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n return this.resetToLatest();\n }\n\n if (! result.length) {\n const firstItem = this.getAt(0);\n this.internalState.oldestId = firstItem ? this.getId(firstItem) : null;\n\n await this.refreshFetchedState();\n\n // LATEST state has priority over OLDEST\n if (this.internalState.current === WindowState.PAST) {\n this.internalState.current = WindowState.OLDEST;\n }\n\n this.emitChangeWithDiff(false, originalState);\n return;\n }\n\n this.addItems(result, 'head');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.ongoing || this.hasLatest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAfter();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n await this.resetToLatest();\n return;\n }\n\n if (result.length) {\n this.addItems(result, 'tail');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n return;\n }\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.ongoing || this._items.has(id)) {\n return;\n }\n\n let result: ItemT[] | null;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAround(id);\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (!result) {\n return;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.PAST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n protected abstract fetchLatestItems(): Promise<ItemT[]>;\n\n protected abstract fetchItemsBefore(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAfter(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAround(id: string): Promise<ItemT[] | null>;\n\n protected abstract isLatestItemLoaded(): Promise<boolean>;\n\n protected async refreshFetchedState(): Promise<void> {\n this.internalState.current = (await this.isLatestItemLoaded()) ? WindowState.LATEST : WindowState.PAST;\n }\n\n protected addItems(newItems: ItemT[], to: 'head' | 'tail'): void {\n let result;\n\n if (to === 'head') {\n result = this.trimItemsArrayToLimit([...newItems, ...this.items], 'tail');\n }\n\n if (to === 'tail') {\n result = this.trimItemsArrayToLimit([...this.items, ...newItems], 'head');\n }\n\n // Directly calls to prevent event emit.\n this._items.deleteAll();\n this._items.set(...(result.map(item => [this.getId(item), item] as [string, ItemT])));\n }\n\n protected emitChangeWithDiff(itemChanged: boolean, originalState: WindowState): void {\n if (itemChanged || originalState !== this.state) {\n this.eventTarget.emit('change', { setItems: Array.from(this._items.items.keys()) })\n }\n }\n\n /**\n * Return array with messages trimmed using High/Low Watermark strategy.\n */\n private trimItemsArrayToLimit(items: ItemT[], from: 'head' | 'tail'): ItemT[] {\n const highWatermark = this.limit;\n\n if (highWatermark === null || items.length <= highWatermark) {\n return items;\n }\n\n const lowWatermark = Math.floor(highWatermark * this.internalState.retainRatio);\n\n if (from === 'head') {\n return items.slice(-lowWatermark);\n }\n\n if (from === 'tail') {\n return items.slice(0, lowWatermark);\n }\n\n return items;\n }\n}\n\nexport type TopicHistoryWindowEventMap = CollectionEventMap & {\n reftopicsdeleted: string[];\n};\n\nexport class TopicHistoryWindow extends TraversableRemoteCollection<\n Message,\n TopicHistoryWindowEventMap\n> {\n /**\n * Reexported available window modes enum.\n */\n public readonly WindowState: typeof WindowState = WindowState;\n\n declare protected internalState: typeof TraversableRemoteCollection<Message>['prototype']['internalState'] & {\n traverseLock: boolean,\n };\n\n public constructor(\n private roomId: string,\n private topicId: string,\n private tracker: ChatStateTracker,\n bindEvents: boolean = true,\n ) {\n super('id');\n\n this.internalState.traverseLock = false;\n\n if (bindEvents) {\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n }\n }\n\n public createMirror(): TopicHistoryWindow {\n const copy = new TopicHistoryWindow(this.roomId, this.topicId, this.tracker, false);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n copy.internalState = this.internalState;\n return copy;\n }\n\n public get isTraverseLocked(): boolean {\n return this.internalState.traverseLock;\n }\n\n public async setTraverseLock(lock: boolean): Promise<void> {\n this.internalState.traverseLock = lock;\n\n if (lock && (this.state !== WindowState.LIVE && this.state !== WindowState.LATEST)) {\n await super.resetToLatest();\n }\n }\n\n public async resetToLatest(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.resetToLatest();\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchNext();\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchPrevious();\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.jumpTo(id);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public _updateMessageReference(refTopic: Topic): void {\n const refMessage = this.get(refTopic.refMessage.id);\n\n if (refMessage) {\n // Update referenced topic ID in message\n this.set({...refMessage, topicRef: refTopic.id});\n }\n }\n\n protected async fetchItemsAfter(): Promise<Message[] | null> {\n const afterId = this.getAt(this.length - 1)?.id;\n\n if (! afterId) {\n // If there is no message to refer, fetch latest\n return null;\n }\n\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n after: afterId,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchItemsAround(id: string): Promise<Message[] | null> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n around: id,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchItemsBefore(): Promise<Message[] | null> {\n const beforeId = this.getAt(0)?.id;\n\n if (! beforeId) {\n // If there is no message to refer, fetch latest\n return null;\n }\n\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n before: beforeId,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchLatestItems(): Promise<Message[]> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n private async getTopic(): Promise<Topic | undefined> {\n return (await this.tracker.rooms.getTopics(this.roomId, [this.topicId])).get(this.topicId);\n }\n\n private async getLatestMessageId(): Promise<string | undefined> {\n return (await this.getTopic())?.lastMessage?.id;\n }\n\n protected async isLatestItemLoaded(): Promise<boolean> {\n const lastMessageId = await this.getLatestMessageId();\n return lastMessageId ? this.has(lastMessageId) : true;\n }\n\n private async handleNewMessage(ev: NewMessage): Promise<void> {\n if (\n [WindowState.LATEST, WindowState.LIVE].includes(this.state)\n && ev.message.location.roomId === this.roomId\n && ev.message.location.topicId === this.topicId\n ) {\n const originalState = this.state;\n this.addItems([ev.message], 'tail');\n this.emitChangeWithDiff(true, originalState);\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n if (ev.location.topicId !== this.topicId || ev.location.roomId !== this.roomId) {\n return;\n }\n\n const refTopicIds = this.items\n .filter(msg => msg.topicRef && ev.ids.includes(msg.id))\n .map(msg => msg.topicRef as string);\n\n this.delete(...ev.ids);\n\n if (this.length === 0) {\n await this.resetToLatest();\n }\n\n if (refTopicIds.length > 0) {\n this.eventTarget.emit('reftopicsdeleted', refTopicIds);\n }\n }\n}\n","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {NewTopic, Room, RoomUpdated, Topic, TopicDeleted} from \"../types/src\";\nimport {IndexedCollection,} from \"../IndexedObjectCollection\";\nimport {TopicHistoryWindow} from \"./TopicHistoryWindow\";\n\nexport class RoomMessagesHistory {\n private historyWindows = new IndexedCollection<string, TopicHistoryWindow>();\n private traverseLock: boolean = false;\n\n public constructor(\n private room: Room,\n private tracker: ChatStateTracker,\n ) {\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n\n this.updateTraverseLock(this.room);\n\n if (this.room.defaultTopic) {\n this.createHistoryWindowForTopic(this.room.defaultTopic);\n }\n }\n\n /**\n * Returns a history window object for the given topic ID, allowing you to view message history.\n * @param topicId\n * @param peek If true, do not create a cache for this topic and do not allow it to collect new messages.\n */\n public async getMessagesWindow(topicId: string, peek: boolean = false): Promise<TopicHistoryWindow | undefined> {\n if (!this.historyWindows.has(topicId) && !peek) {\n const topic = (await this.tracker.rooms.getTopics(this.room.id, [topicId])).get(topicId);\n\n if (topic) {\n this.createHistoryWindowForTopic(topic);\n }\n }\n\n return this.historyWindows.get(topicId);\n }\n\n private async handleRoomUpdated(ev: RoomUpdated): Promise<void> {\n if (this.room.id === ev.room.id) {\n this.room = ev.room;\n\n this.updateTraverseLock(ev.room);\n\n if (ev.room.defaultTopic) {\n this.createHistoryWindowForTopic(ev.room.defaultTopic);\n }\n\n for (const [, window] of Array.from(this.historyWindows.items)) {\n await window.setTraverseLock(this.traverseLock);\n }\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n if (this.room.id === ev.roomId) {\n this.createHistoryWindowForTopic(ev.topic);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n if (this.room.id === ev.location.roomId) {\n this.historyWindows.delete(ev.location.topicId);\n }\n }\n\n private createHistoryWindowForTopic(topic: Topic): void {\n if (this.historyWindows.has(topic.id)) {\n return;\n }\n\n const historyWindow = new TopicHistoryWindow(this.room.id, topic.id, this.tracker);\n\n void historyWindow.setTraverseLock(this.traverseLock);\n\n this.historyWindows.set([topic.id, historyWindow]);\n\n // Current behavior of deletion a message with referenced topic is to delete the whole side topic\n // So we need to listen for topic deletions here\n historyWindow.on('reftopicsdeleted', (deletedTopicIds: string[]) => {\n for (const topicId of deletedTopicIds) {\n this.historyWindows.delete(topicId);\n }\n this.tracker.rooms._deleteTopicsFromRoom(this.room.id, ...deletedTopicIds);\n });\n\n // If new topic refers to some message from this room, update other structures\n if (topic.refMessage) {\n const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);\n refHistoryWindow?._updateMessageReference(topic);\n }\n }\n\n private updateTraverseLock(room: Room): void {\n this.traverseLock = room.history.mode === 'Ephemeral';\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n NewMessage,\n FollowedTopic,\n TopicFollowed,\n RoomDeleted,\n RoomLeft,\n TopicDeleted,\n FollowedTopicUpdated,\n RoomJoined,\n NewTopic,\n Session,\n Room,\n Message, ChatLocation,\n} from \"../types/src\";\nimport {\n IndexedCollection,\n ObservableIndexedObjectCollection\n} from \"../IndexedObjectCollection\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\n\nexport class MessagesManager {\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\n private readonly followedTopicsPromises = new PromiseRegistry();\n private readonly deferredSession = new DeferredTask();\n private readonly unreadSummariesCache = new Map<string, { mentionCount: number, isUnread: boolean }>();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));\n this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n }\n\n /**\n * Get history manager for given room ID.\n */\n public async getRoomHistory(roomId: string): Promise<RoomMessagesHistory | undefined> {\n await this.deferredSession.promise;\n return this.roomHistories.get(roomId);\n }\n\n /**\n * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.\n * Then you can get them using getRoomFollowedTopics().\n * @see getRoomFollowedTopics\n */\n public async cacheSpaceFollowedTopics(spaceId: string | null): Promise<void> {\n if (spaceId && ! (await this.tracker.spaces.get()).has(spaceId)) {\n throw new Error(`You are not in space ${spaceId}`);\n }\n\n const roomIds = (await this.tracker.rooms.get()).findBy('spaceId', spaceId).items.map(room => room.id);\n\n if (! roomIds.length) {\n // We don't need to ping server for followed topics for this space, if user has no joined rooms\n return;\n }\n\n const resultPromise = this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\n\n roomIds.forEach(roomId => this.followedTopicsPromises.register(resultPromise, roomId));\n\n const result = await resultPromise;\n\n if (result.error) {\n throw result.error;\n }\n\n this.setFollowedTopicsArray(roomIds, result.data.followedTopics);\n }\n\n /**\n * Get followed topics for the given room.\n * @return Undefined if you are not in the room, collection otherwise.\n */\n public async getRoomFollowedTopics(roomId: string): Promise<ObservableIndexedObjectCollection<FollowedTopic> | undefined> {\n if (! (await this.tracker.rooms.get()).has(roomId)) {\n return undefined;\n }\n\n if (! this.followedTopics.has(roomId)) {\n if (this.followedTopicsPromises.notExist(roomId)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {roomId}});\n\n if (result.error) {\n throw result.error;\n }\n\n this.setFollowedTopicsArray([roomId], result.data.followedTopics);\n }, roomId);\n }\n\n await this.followedTopicsPromises.get(roomId);\n }\n\n return this.followedTopics.get(roomId);\n }\n\n /**\n * Batch acknowledge all messages for given room.\n */\n public async ackRoom(roomId: string): Promise<void> {\n const collection = await this.getRoomFollowedTopics(roomId);\n\n if (! collection) {\n return;\n }\n\n for (const followedTopic of collection.items) {\n if (followedTopic.isUnread) {\n await this.tracker.client.send('Ack', {location: followedTopic.location});\n }\n }\n }\n\n /**\n * Calculate missed messages with mentions from any topic in given room.\n * @return Undefined if you are not in room.\n */\n public async summarizeUnreadMessages(location: ChatLocation): Promise<{ mentionCount: number, isUnread: boolean }> {\n const cacheKey = location.topicId\n ? `topic:${location.roomId}:${location.topicId}`\n : location.roomId\n ? `room:${location.roomId}`\n : location.spaceId\n ? `space:${location.spaceId}`\n : 'spaceless';\n\n if (this.unreadSummariesCache.has(cacheKey)) {\n return this.unreadSummariesCache.get(cacheKey)!;\n }\n\n let roomIds: string[] = [];\n let targetTopicId: string | undefined;\n const rooms = await this.tracker.rooms.get();\n\n if (location.topicId) {\n if (!location.roomId) {\n throw new Error(\"roomId is required when querying by topicId\");\n }\n roomIds = [location.roomId];\n targetTopicId = location.topicId;\n } else if (location.roomId) {\n roomIds = [location.roomId];\n } else if (location.spaceId) {\n await this.cacheSpaceFollowedTopics(location.spaceId);\n roomIds = rooms.findBy('spaceId', location.spaceId).items.map(r => r.id);\n } else {\n roomIds = rooms.items.filter(r => !r.spaceId).map(r => r.id);\n }\n\n let mentionCount = 0;\n let isUnread = false;\n\n for (const roomId of roomIds) {\n const collection = await this.getRoomFollowedTopics(roomId);\n\n if (!collection) {\n continue;\n }\n\n for (const topic of collection.items) {\n if (targetTopicId && topic.location.topicId !== targetTopicId) {\n continue;\n }\n\n if (topic.isUnread) {\n isUnread = true;\n }\n\n mentionCount += (topic.mentionCount ?? 0);\n }\n }\n\n const result = { mentionCount, isUnread };\n this.unreadSummariesCache.set(cacheKey, result);\n\n return result;\n }\n\n /**\n * For internal use. If you want to delete the message, execute a proper command on client object.\n * @internal\n */\n public _deleteByTopicIds(roomId: string, ...topicIds: string[]): void {\n this.followedTopics.get(roomId)?.delete(...topicIds);\n topicIds.forEach(topicId => this.invalidateUnreadSummaries(roomId, topicId));\n }\n\n /**\n * For internal use.\n * @internal\n */\n public async _resolveLastMessage(location: ChatLocation): Promise<Message|null> {\n // Try to get last message from history window (if cached)\n let message: Message = await this.getRoomHistory(location.roomId)\n .then(roomHistory => roomHistory?.getMessagesWindow(location.topicId, true))\n .then(\n historyWindow =>\n historyWindow?.hasLatest && historyWindow.getAt(historyWindow.length - 1)\n );\n\n if (!message) {\n const result = await this.tracker.client.send('GetMessages', {\n location,\n limit: 1,\n });\n message = result.data?.messages[0];\n }\n\n return message || null;\n }\n\n /**\n * Wyczyść cache celowo, tylko dla lokalizacji których dotyczy zmiana.\n */\n private invalidateUnreadSummaries(roomId?: string, topicId?: string): void {\n if (!roomId) {\n this.unreadSummariesCache.clear();\n return;\n }\n\n this.unreadSummariesCache.delete(`room:${roomId}`);\n\n if (topicId) {\n this.unreadSummariesCache.delete(`topic:${roomId}:${topicId}`);\n } else {\n for (const key of this.unreadSummariesCache.keys()) {\n if (key.startsWith(`topic:${roomId}:`)) {\n this.unreadSummariesCache.delete(key);\n }\n }\n }\n\n for (const key of this.unreadSummariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.unreadSummariesCache.delete(key);\n }\n }\n }\n\n private invalidateUnreadSummariesForRooms(roomIds: string[]): void {\n const roomIdsSet = new Set(roomIds);\n roomIds.forEach(roomId => {\n this.unreadSummariesCache.delete(`room:${roomId}`);\n });\n\n for (const key of this.unreadSummariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.unreadSummariesCache.delete(key);\n continue;\n }\n if (key.startsWith('topic:')) {\n const parts = key.split(':');\n if (parts.length >= 2 && roomIdsSet.has(parts[1])) {\n this.unreadSummariesCache.delete(key);\n }\n }\n }\n }\n\n private createHistoryForNewRoom(room: Room): void {\n this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);\n }\n\n private handleNewMessage(ev: NewMessage): void {\n void this.updateLocallyFollowedTopicOnNewMessage(ev);\n }\n\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicFollowed(ev: TopicFollowed): void {\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.roomHistories.delete(ev.id);\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.createHistoryForNewRoom(ev.room)\n this.clearRoomFollowedTopicsStructures(ev.room.id);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.roomHistories.delete(ev.id);\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private async handleNewTopic(ev: NewTopic): Promise<void> {\n if (this.followedTopics.has(ev.roomId)) {\n // Check if the new topic is followed by user\n // only if client asked for followed topics list before for this room\n const result = await this.tracker.client.send(\n 'GetFollowedTopics',\n {location: {roomId: ev.roomId, topicId: ev.topic.id}},\n );\n const followedTopic = result.data.followedTopics[0];\n if (followedTopic) {\n this.followedTopics.get(ev.roomId).set(followedTopic);\n this.invalidateUnreadSummaries(ev.roomId, ev.topic.id);\n }\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n private handleSession(ev: Session): void {\n this.followedTopics.deleteAll();\n this.followedTopicsPromises.forgetAll();\n this.invalidateUnreadSummaries();\n this.roomHistories.deleteAll();\n ev.state.rooms.forEach(room => this.createHistoryForNewRoom(room));\n this.deferredSession.resolve();\n }\n\n private async updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): Promise<void> {\n const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);\n const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);\n\n if (!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral') {\n // Skip if we don't follow this room or targeted topic or the message is ephemeral\n return;\n }\n\n const isMe = ev.message.author.user.id === this.tracker.me?.id;\n\n let update: Partial<FollowedTopic>;\n\n if (isMe) {\n // Reset missed messages count if new message is authored by me\n update = {missed: 0, lastAckMessageId: ev.message.id};\n } else if (ev.message.type === 'Text') {\n // ...check for mentions if it's text message...\n const member = await this.tracker.rooms.getMe(ev.message.location.roomId);\n const roleIds = [...(member.spaceMember?.roles ?? []), ...member.roles];\n const mentionHandlers = [\n ...roleIds.map(id => `<@&${id}>`),\n `<@${ev.message.author.user.id}>`,\n ];\n const mentionExists = mentionHandlers.some(handler => ev.message.content.includes(handler));\n\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n mentionCount: followedTopic.mentionCount + (mentionExists ? 1 : 0),\n };\n } else {\n // ...or just mark as unread.\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n };\n }\n\n roomFollowedTopics.set({...followedTopic, ...update});\n this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);\n }\n\n private setFollowedTopicsArray(roomIds: string[], followedTopics: FollowedTopic[]): void {\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\n\n // Reassign followed topics to limit collection change event emit\n followedTopics.forEach(followedTopic => {\n roomToTopics[followedTopic.location.roomId] ??= [];\n roomToTopics[followedTopic.location.roomId].push(followedTopic);\n });\n\n roomIds.forEach(roomId => {\n if (! this.followedTopics.has(roomId)) {\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\n followedTopic => followedTopic.location.topicId\n )]);\n }\n\n if (roomToTopics[roomId]) {\n this.followedTopics.get(roomId).set(...roomToTopics[roomId]);\n }\n });\n\n this.invalidateUnreadSummariesForRooms(roomIds);\n }\n\n private clearRoomFollowedTopicsStructures(roomId: string): void {\n this.followedTopics.delete(roomId);\n this.followedTopicsPromises.forget(roomId);\n this.invalidateUnreadSummaries(roomId);\n }\n}","import {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n Message,\n MessagesRedacted,\n NewMessage,\n NewTopic,\n Room, RoomDeleted,\n RoomJoined, RoomLeft,\n RoomMember, RoomMemberJoined, RoomMemberLeft, RoomMembers,\n RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,\n SpaceMemberUpdated,\n Topic,\n TopicDeleted, TopicUpdated,\n UserUpdated,\n} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {MessagesManager} from \"./MessagesManager\";\n\nexport class RoomsManager {\n public readonly messages: MessagesManager;\n\n private readonly list = new ObservableIndexedObjectCollection<Room>('id');\n private readonly topics = new IndexedCollection<string, ObservableIndexedObjectCollection<Topic>>();\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomMember>>();\n private readonly deferredSession = new DeferredTask();\n private readonly membersPromises = new PromiseRegistry();\n private readonly topicsPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.messages = new MessagesManager(tracker);\n\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoined(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));\n this.tracker.client.on('RoomMemberJoined', ev => this.handleRoomMemberJoined(ev));\n this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));\n this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n /**\n * Get collection of room members.\n */\n public async getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined> {\n if (this.membersPromises.notExist(roomId)) {\n this.membersPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRoomMembers', {id: roomId});\n if (result.error) {\n throw result.error;\n }\n this.handleRoomMembers(result.data);\n }, roomId);\n }\n\n await this.membersPromises.get(roomId);\n return this.members.get(roomId);\n }\n\n /**\n * Get a room member representing the current user.\n */\n public async getMe(roomId: string): Promise<RoomMember | undefined> {\n const userId = (await this.tracker.getMe()).id;\n\n if (! this.list.has(roomId)) {\n // User is not in passed room.\n return undefined;\n }\n\n const members = await this.getMembers(roomId);\n return members?.items.find(member => (member.user?.id ?? member.spaceMember.user.id) === userId);\n }\n\n /**\n * Get collection of all the rooms you are in.\n */\n public async get(): Promise<ObservableIndexedObjectCollection<Room>> {\n await this.deferredSession.promise;\n return this.list;\n }\n\n /**\n * Get a collection of locally cached Topic objects for given room.\n * You can pass topic ids as second argument, to try to fetch them from the server.\n */\n public async getTopics(roomId: string, tryToFetchTopicIds?: string[]): Promise<ObservableIndexedObjectCollection<Topic> | undefined> {\n await this.deferredSession.promise;\n\n if (tryToFetchTopicIds?.length) {\n // Topic can be fetched if it isn't already cached and fetch is not already in progress\n const canFetch = (topicId: string) => ! this.topics.get(roomId)?.has(topicId) && ! this.topicsPromises.has(roomId + topicId);\n const idsToFetch = tryToFetchTopicIds.filter(canFetch);\n\n if (idsToFetch.length) {\n const promise = this.tracker\n .client\n .send('GetTopics', {roomId, topicIds: idsToFetch})\n .then(result => this.topics.get(result.data.location.roomId)?.set(...result.data.topics));\n\n idsToFetch.forEach(topicId => this.topicsPromises.register(promise, roomId + topicId));\n }\n\n for (const topicId of tryToFetchTopicIds) {\n await this.topicsPromises.get(roomId + topicId);\n }\n }\n\n return this.topics.get(roomId);\n }\n\n /**\n * For internal use. If you want to delete topic, execute a proper command on client object.\n * @internal\n */\n public _deleteTopicsFromRoom(roomId: string, ...topicIds: string[]): void {\n this.topics.get(roomId)?.delete(...topicIds);\n }\n\n private deleteRoom(...roomIds: string[]): void {\n this.list.delete(...roomIds);\n this.members.delete(...roomIds);\n this.membersPromises.forget(...roomIds);\n\n for (const roomId of roomIds) {\n const topicIds: string[] = this.topics.get(roomId)?.items.map(topic => topic.id) ?? [];\n this.messages._deleteByTopicIds(roomId, ...topicIds);\n }\n\n this.topics.delete(...roomIds);\n }\n\n private deleteRoomsBySpaceId(spaceId: string): void {\n this.deleteRoom(\n ...this.list.findBy('spaceId', spaceId).items.map(room => room.id)\n );\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n // Update members of rooms related to this space\n for (const room of this.list.findBy('spaceId', ev.spaceId).items) {\n const roomMembers = this.members.get(room.id);\n\n if (!roomMembers || !roomMembers.has(ev.userId)) {\n // Skip update if member list for this room is not loaded\n // or user is not in room\n continue;\n }\n\n // Update space member in roomMember, but first fill the user object (it's null in event)\n const roomMember = roomMembers.get(ev.userId);\n const spaceMember = ev.member;\n spaceMember.user = roomMember.spaceMember.user;\n roomMembers.set({ ...roomMember, spaceMember });\n }\n }\n\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\n this.list\n .findBy('spaceId', ev.spaceId).items\n .forEach(room => this.members.get(room.id)?.delete(ev.userId));\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (! this.members.has(ev.roomId)) {\n // We do not track member list for this room.\n return;\n }\n\n const members = this.members.get(ev.roomId);\n const member = members.get(ev.userId);\n const newMember = ev.member;\n const user = member.spaceMember?.user ?? member.user;\n\n // Preserving user object, because it's not included in event\n if (newMember.spaceMember) {\n newMember.spaceMember.user = user;\n } else {\n newMember.user = user;\n }\n\n members.set(newMember);\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n this.deleteRoomsBySpaceId(ev.id);\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const collection = this.topics.get(ev.location.roomId);\n collection.delete(ev.location.topicId);\n\n const room = this.list.get(ev.location.roomId);\n if (room.defaultTopic?.id === ev.location.topicId) {\n this.list.set({...room, defaultTopic: null});\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n this.addJoinedRoomTopics(ev.roomId, ev.topic);\n }\n\n private addJoinedRoomTopics(roomId: string, ...topics: Topic[]): void {\n if (this.topics.has(roomId)) {\n this.topics.get(roomId).set(...topics);\n } else {\n this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);\n }\n }\n\n private handleRoomJoined(ev: RoomJoined): void {\n this.addJoinedRooms(ev.room);\n }\n\n private handleRoomUpdated(ev: RoomUpdated): void {\n if (this.list.has(ev.room.id)) {\n this.list.set(ev.room);\n }\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.deleteRoom(ev.id);\n }\n\n private handleTopicUpdated(ev: TopicUpdated): void {\n const room = this.list.get(ev.location.roomId);\n\n if (this.topics.get(ev.location.roomId)?.has(ev.topic.id)) {\n this.topics.get(ev.location.roomId).set(ev.topic);\n }\n\n if (room.defaultTopic.id === ev.topic.id) {\n const newRoom = { ...room };\n newRoom.defaultTopic = ev.topic;\n this.list.set(newRoom);\n }\n }\n\n private addJoinedRooms(...rooms: Room[]): void {\n for (const room of rooms) {\n if (room.defaultTopic) {\n this.addJoinedRoomTopics(room.id, room.defaultTopic);\n }\n\n if (room.type === 'Pm' && room.recipients) {\n // Treat PM recipients as normal room members.\n // We are registering fake promise in `memberPromises`\n // because GetMembers are not supported for PM rooms.\n this.handleRoomMembers({\n id: room.id,\n members: room.recipients.map(user => ({\n user,\n spaceMember: null,\n roles: null,\n customColor: null,\n customNick: null,\n extras: '',\n })),\n });\n this.membersPromises.register(Promise.resolve(), room.id);\n }\n }\n this.list.set(...rooms);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.deleteRoom(ev.id);\n }\n\n private handleRoomMemberJoined(ev: RoomMemberJoined): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).set(ev.member);\n }\n }\n\n private handleRoomMemberLeft(ev: RoomMemberLeft): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).delete(ev.userId);\n }\n }\n\n private handleRoomMembers(ev: RoomMembers): void {\n if (! this.members.has(ev.id)) {\n this.members.set([\n ev.id,\n new ObservableIndexedObjectCollection(\n member => member.user?.id ?? member.spaceMember.user.id,\n ev.members,\n )\n ]);\n }\n }\n\n private handleSession(ev: Session): void {\n this.list.deleteAll();\n this.topics.deleteAll();\n this.topicsPromises.forgetAll();\n this.members.deleteAll();\n this.membersPromises.forgetAll();\n\n this.addJoinedRooms(...ev.state.rooms);\n\n this.deferredSession.resolve();\n }\n\n private handleUserUpdated(ev: UserUpdated): void {\n // Update room members users\n this.members.items.forEach((members) => {\n const member = members.get(ev.user.id);\n\n if (! member) {\n // Skip room; updated user is not here\n return;\n }\n\n const newMember: RoomMember = {...member};\n\n if (member.user) {\n newMember.user = ev.user;\n } else {\n newMember.spaceMember.user = ev.user;\n }\n\n members.set(newMember);\n });\n\n // Update recipients users\n const newRooms: Room[] = [];\n this.list.items.forEach(room => {\n if (room.recipients?.some(user => user.id === ev.user.id)) {\n room.recipients = room.recipients.map(user => user.id === ev.user.id ? ev.user : user);\n newRooms.push({...room});\n }\n });\n this.list.set(...newRooms);\n }\n\n private handleNewMessage(ev: NewMessage): void {\n const topics = this.topics.get(ev.message.location.roomId);\n const topic = topics?.get(ev.message.location.topicId);\n\n if (!topic) {\n return; // No topic found, nothing to update\n }\n\n const newTopic = {\n ...topic,\n messageCount: topic.messageCount + 1,\n lastMessage: ev.message,\n };\n\n topics.set(newTopic);\n const room = this.list.get(ev.message.location.roomId);\n\n if (room.defaultTopic?.id === ev.message.location.topicId) {\n this.list.set({ ...room, defaultTopic: newTopic });\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n // Remove redacted messages from topic and update metadata\n const topics = this.topics.get(ev.location.roomId);\n const topic = topics?.get(ev.location.topicId);\n if (topic) {\n const messageCount = Math.max(topic.messageCount - ev.ids.length, 0);\n const lastMessage: Message = messageCount > 0 ? await this.messages._resolveLastMessage(ev.location) : null;\n topics.set({ ...topic, messageCount, lastMessage } as Topic);\n }\n }\n}","import {Role, RoomMember, SpaceMember, User} from \"../types/src\";\r\n\r\nexport function reorderRolesOnPriorityUpdate(allRoles: Role[], oldRole: Role, updatedRole: Role): Role[] {\r\n // If the priority has changed, adjust the rest of roles\r\n const increased = (updatedRole.priority - oldRole.priority) > 0;\r\n const decreased = ! increased;\r\n const changedRoles: Role[] = [];\r\n\r\n allRoles.forEach(role => {\r\n if (role.id === updatedRole.id) {\r\n // Skip the updated role\r\n return;\r\n }\r\n if (increased && oldRole.priority <= role.priority) {\r\n role.priority--;\r\n changedRoles.push(role);\r\n }\r\n if (decreased && updatedRole.priority <= role.priority) {\r\n role.priority++;\r\n changedRoles.push(role);\r\n }\r\n });\r\n\r\n return changedRoles;\r\n}\r\n\r\nexport function extractUserFromMember(member: RoomMember | SpaceMember): User | null {\r\n return member.user ?? (member as RoomMember).spaceMember?.user;\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\r\nimport {\r\n NewRole,\r\n NewRoom,\r\n Role,\r\n RoleDeleted,\r\n RoleUpdated,\r\n RoomDeleted,\r\n RoomSummary,\r\n RoomSummaryUpdated,\r\n RoomUpdated,\r\n Session,\r\n Space,\r\n SpaceDeleted,\r\n SpaceJoined,\r\n SpaceLeft,\r\n SpaceMember,\r\n SpaceMemberJoined,\r\n SpaceMemberLeft,\r\n SpaceMembers,\r\n SpaceMemberUpdated,\r\n SpaceRooms,\r\n SpaceUpdated,\r\n UserUpdated\r\n} from \"../types/src\";\r\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\r\nimport {reorderRolesOnPriorityUpdate} from \"./functions\";\r\n\r\nexport class SpacesManager {\r\n private readonly list = new ObservableIndexedObjectCollection<Space>('id');\r\n private readonly roles = new IndexedCollection<string, ObservableIndexedObjectCollection<Role>>();\r\n private readonly rooms = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomSummary>>();\r\n private readonly roomIdToSpaceId = new IndexedCollection<string, string>();\r\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<SpaceMember>>();\r\n private readonly deferredSession = new DeferredTask();\r\n private readonly roomsPromises = new PromiseRegistry();\r\n private readonly membersPromises = new PromiseRegistry();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('NewRoom', ev => this.handleNewRoom(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceUpdated', ev => this.handleSpaceUpdated(ev));\r\n this.tracker.client.on('SpaceJoined', ev => this.handleSpaceJoined(ev));\r\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceMemberJoined', ev => this.handleSpaceMemberJoined(ev));\r\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\r\n this.tracker.client.on('SpaceMembers', ev => this.handleSpaceMembers(ev));\r\n this.tracker.client.on('SpaceRooms', ev => this.handleSpaceRooms(ev));\r\n this.tracker.client.on('RoomSummaryUpdated', ev => this.handleRoomSummaryUpdated(ev));\r\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\r\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\r\n this.tracker.client.on('NewRole', ev => this.handleNewRole(ev));\r\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\r\n this.tracker.client.on('RoleUpdated', ev => this.handleRoleUpdated(ev));\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n }\r\n\r\n /**\r\n * Get collection of all the spaces you are in.\r\n */\r\n public async get(): Promise<ObservableIndexedObjectCollection<Space>> {\r\n await this.deferredSession.promise;\r\n return this.list;\r\n }\r\n\r\n /**\r\n * Get collection of space roles.\r\n */\r\n public async getRoles(spaceId: string): Promise<ObservableIndexedObjectCollection<Role> | undefined> {\r\n await this.deferredSession.promise;\r\n return this.roles.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get collection of the all available rooms inside given space.\r\n */\r\n public async getRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {\r\n if (this.roomsPromises.notExist(spaceId)) {\r\n this.roomsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetSpaceRooms', {id: spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleSpaceRooms(result.data);\r\n }, spaceId);\r\n }\r\n\r\n await this.roomsPromises.get(spaceId);\r\n return this.rooms.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get collection of space members.\r\n */\r\n public async getMembers(spaceId: string): Promise<ObservableIndexedObjectCollection<SpaceMember> | undefined> {\r\n if (this.membersPromises.notExist(spaceId)) {\r\n this.membersPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetSpaceMembers', {id: spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleSpaceMembers(result.data);\r\n }, spaceId);\r\n }\r\n\r\n await this.membersPromises.get(spaceId);\r\n return this.members.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get a space member representing the current user.\r\n */\r\n public async getMe(spaceId: string): Promise<SpaceMember | undefined> {\r\n const userId = (await this.tracker.getMe()).id;\r\n\r\n if (! this.list.has(spaceId)) {\r\n // User is not in passed space.\r\n return undefined;\r\n }\r\n\r\n const members = await this.getMembers(spaceId);\r\n return members?.items.find(member => member.user.id === userId);\r\n }\r\n\r\n private handleNewRole(ev: NewRole): void {\r\n const collection = this.roles.get(ev.spaceId);\r\n collection.set(ev.role);\r\n this.list.get(ev.spaceId).roles = collection.items;\r\n }\r\n\r\n private handleNewRoom(ev: NewRoom): void {\r\n this.rooms.get(ev.spaceId)?.set(ev.summary);\r\n this.roomIdToSpaceId.set([ev.summary.id, ev.spaceId]);\r\n }\r\n\r\n private handleRoomUpdated(ev: RoomUpdated): void {\r\n if (ev.room.spaceId && this.rooms.has(ev.room.spaceId)) {\r\n const rooms = this.rooms.get(ev.room.spaceId);\r\n rooms.set({\r\n ...rooms.get(ev.room.id),\r\n name: ev.room.name,\r\n description: ev.room.description,\r\n } as RoomSummary);\r\n }\r\n }\r\n\r\n private async handleRoomDeleted(ev: RoomDeleted): Promise<void> {\r\n const spaceId = this.roomIdToSpaceId.get(ev.id);\r\n this.roomIdToSpaceId.delete(ev.id);\r\n\r\n if (! spaceId) {\r\n return;\r\n }\r\n\r\n const space = this.list.get(spaceId);\r\n let spaceChanged = false;\r\n\r\n this.rooms.get(spaceId)?.delete(ev.id);\r\n\r\n if (space.systemRoom === ev.id) {\r\n space.systemRoom = null;\r\n spaceChanged = true;\r\n }\r\n\r\n if (space.defaultRooms.includes(ev.id)) {\r\n space.defaultRooms = space.defaultRooms.filter(roomId => roomId !== ev.id);\r\n spaceChanged = true;\r\n }\r\n\r\n if (spaceChanged) {\r\n this.list.set(space);\r\n }\r\n }\r\n\r\n private handleRoleDeleted(ev: RoleDeleted): void {\r\n const collection = this.roles.get(ev.spaceId);\r\n collection.delete(ev.id);\r\n this.list.get(ev.spaceId).roles = collection.items;\r\n }\r\n\r\n private handleSpaceUpdated(ev: SpaceUpdated): void {\r\n this.list.set(ev.space);\r\n }\r\n\r\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\r\n const roomIds = this.rooms.get(ev.id)?.items.map(item => item.id) ?? [];\r\n this.roomIdToSpaceId.delete(...roomIds);\r\n\r\n this.roles.delete(ev.id);\r\n this.members.delete(ev.id);\r\n this.membersPromises.forget(ev.id);\r\n this.rooms.delete(ev.id);\r\n this.roomsPromises.forget(ev.id);\r\n this.list.delete(ev.id);\r\n }\r\n\r\n private handleSpaceJoined(ev: SpaceJoined): void {\r\n this.addJoinedSpaces(ev.space);\r\n }\r\n\r\n private addJoinedSpaces(...spaces: Space[]): void {\r\n this.roles.set(...(spaces.map(space => [\r\n space.id,\r\n new ObservableIndexedObjectCollection<Role>('id', space.roles)\r\n ]) as [string, ObservableIndexedObjectCollection<Role>][]));\r\n this.list.set(...spaces);\r\n }\r\n\r\n private handleSpaceMemberJoined(ev: SpaceMemberJoined): void {\r\n if (this.members.has(ev.spaceId)) {\r\n this.members.get(ev.spaceId).set(ev.member);\r\n }\r\n }\r\n\r\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\r\n if (this.members.has(ev.spaceId)) {\r\n this.members.get(ev.spaceId).delete(ev.userId);\r\n }\r\n }\r\n\r\n private handleSpaceMembers(ev: SpaceMembers): void {\r\n if (! this.members.has(ev.id)) {\r\n this.members.set([\r\n ev.id,\r\n new ObservableIndexedObjectCollection(member => member?.user.id, ev.members)\r\n ]);\r\n }\r\n }\r\n\r\n private handleSpaceRooms(ev: SpaceRooms): void {\r\n if (!this.rooms.has(ev.id)) {\r\n this.rooms.set([ev.id, new ObservableIndexedObjectCollection('id', ev.summaries)]);\r\n ev.summaries.forEach(summary => this.roomIdToSpaceId.set([summary.id, ev.id]));\r\n }\r\n }\r\n\r\n private async handleRoomSummaryUpdated(ev: RoomSummaryUpdated): Promise<void> {\r\n const spaceId = this.roomIdToSpaceId.get(ev.summary.id);\r\n const summariesPromise = this.roomsPromises.get(spaceId);\r\n\r\n /**\r\n * Update summary only if the list was already loaded.\r\n * RoomSummaryUpdated event has a partial summary, so we need to update the existing summary by merging it.\r\n */\r\n if (spaceId && summariesPromise) {\r\n await summariesPromise;\r\n\r\n const summaries = this.rooms.get(spaceId);\r\n const oldSummary = summaries.get(ev.summary.id);\r\n let newSummary: RoomSummary;\r\n\r\n if (oldSummary) {\r\n newSummary = {...oldSummary, ...ev.summary};\r\n } else {\r\n newSummary = ev.summary;\r\n }\r\n\r\n summaries.set(newSummary);\r\n }\r\n }\r\n\r\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\r\n if (this.members.has(ev.spaceId)) {\r\n const members = this.members.get(ev.spaceId);\r\n const member = members.get(ev.userId);\r\n members.set({...ev.member, user: member.user});\r\n }\r\n }\r\n\r\n private handleRoleUpdated(ev: RoleUpdated): void {\r\n const roles = this.roles.get(ev.spaceId);\r\n const oldRole = roles.get(ev.role.id);\r\n const newRole = ev.role;\r\n const rolesToUpdate = [newRole];\r\n\r\n if (oldRole.priority !== newRole.priority) {\r\n rolesToUpdate.push(\r\n ...reorderRolesOnPriorityUpdate(roles.items, oldRole, newRole)\r\n );\r\n }\r\n\r\n this.roles.get(ev.spaceId).set(...rolesToUpdate);\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.list.deleteAll();\r\n this.roles.deleteAll();\r\n this.rooms.deleteAll();\r\n this.roomsPromises.forgetAll();\r\n this.members.deleteAll();\r\n this.membersPromises.forgetAll();\r\n this.roomIdToSpaceId.deleteAll();\r\n\r\n this.addJoinedSpaces(...ev.state.spaces);\r\n\r\n this.deferredSession.resolve();\r\n }\r\n\r\n private handleUserUpdated(ev: UserUpdated): void {\r\n this.members.items.forEach((members) => {\r\n const member = members.get(ev.user.id);\r\n\r\n if (! member) {\r\n // Skip space; updated user is not here\r\n return;\r\n }\r\n\r\n members.set({...member, user: ev.user});\r\n });\r\n }\r\n}","export enum Layer {\n Global,\n Space,\n Room,\n Topic,\n}\n\nexport class PermissionDefinition {\n value: number;\n maxLayer: Layer;\n}\n\nexport class Permissions {\n public static readonly list = {\n Root: {value: 1 << 0, maxLayer: Layer.Room},\n CreateSpaces: {value: 1 << 1, maxLayer: Layer.Global},\n ManageSpace: {value: 1 << 2, maxLayer: Layer.Space},\n ManageRoles: {value: 1 << 3, maxLayer: Layer.Space},\n //ManageRoom: {value: 1 << 4, maxLayer: Layer.Room},\n CreateTopics: {value: 1 << 5, maxLayer: Layer.Room},\n ManageTopic: {value: 1 << 6, maxLayer: Layer.Topic},\n ManageMemberProfiles: {value: 1 << 7, maxLayer: Layer.Space},\n ManageMemberRoles: {value: 1 << 8, maxLayer: Layer.Room},\n CreateMessages: {value: 1 << 9, maxLayer: Layer.Topic},\n ManagePermissions: {value: 1 << 10, maxLayer: Layer.Topic},\n CreateRooms: {value: 1 << 11, maxLayer: Layer.Space},\n ManageRoom: {value: 1 << 12, maxLayer: Layer.Room},\n CreateEmoticons: {value: 1 << 13, maxLayer: Layer.Space},\n ManageEmoticons: {value: 1 << 14, maxLayer: Layer.Space},\n ManageBans: {value: 1 << 15, maxLayer: Layer.Room},\n Kick: {value: 1 << 16, maxLayer: Layer.Room},\n ChangeOwnNick: {value: 1 << 17, maxLayer: Layer.Space},\n ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},\n RedactMessages: {value: 1 << 19, maxLayer: Layer.Topic},\n };\n\n public static getNames(): (keyof typeof this.list)[] {\n return Object.keys(this.list) as any;\n }\n\n public static getByName(name: keyof typeof this.list): PermissionDefinition | undefined {\n return this.list[name];\n }\n\n public static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean {\n const def = this.getByName(permissionName);\n\n if (! def) {\n throw new Error(`Invalid permission name: ${permissionName}`);\n }\n\n return layer <= this.getByName(permissionName).maxLayer;\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n ChatLocation,\n PermissionOverwrites, PermissionOverwritesTarget,\n PermissionOverwritesUpdated,\n PermissionOverwritesValue,\n RoleDeleted,\n RoomDeleted,\n RoomLeft, RoomMember, RoomMemberUpdated, Session,\n SpaceDeleted,\n SpaceLeft, SpaceMember,\n SpaceMemberUpdated,\n TopicDeleted,\n} from \"../types/src\";\nimport {ChangeEventMap, EventTarget} from \"../EventTarget\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {Permissions} from \"../Permissions\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\n\nconst getOvId = (\n location: ChatLocation,\n target?: PermissionOverwritesTarget,\n) => [location.spaceId, location.roomId, location.topicId, target?.type, target?.userId, target?.roleId].filter(Boolean).join('/');\n\nconst getOvIdByObject\n = (overwrites: PermissionOverwrites | PermissionOverwritesUpdated): string => getOvId(overwrites.location, overwrites.target);\n\ninterface CheckPermissionsResult {\n /**\n * @deprecated Use `hasAll` instead.\n */\n ok: boolean;\n hasAll: boolean;\n hasAny: boolean;\n missing: string[];\n}\n\ntype PermissionsManagerEventMap = ChangeEventMap<void>;\n\nexport class PermissionsManager extends EventTarget<PermissionsManagerEventMap> {\n private readonly overwrites = new IndexedCollection<string, PermissionOverwrites>();\n private readonly overwritesPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n this.tracker.client.on('PermissionOverwrites', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('PermissionOverwritesUpdated', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n public async getOverwrites(\n location: ChatLocation,\n target: PermissionOverwritesTarget,\n ): Promise<PermissionOverwrites | undefined> {\n this.validateLocation(location);\n\n const id = getOvId(location, target);\n\n if (this.overwritesPromises.notExist(id)) {\n this.overwritesPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send(\n 'GetPermissionOverwrites',\n {location, target},\n );\n if (result.error) {\n throw result.error;\n }\n this.handlePermissionOverwrites(result.data);\n }, id);\n }\n\n await this.overwritesPromises.get(id);\n return this.overwrites.get(id);\n }\n\n public async check(\n permissionNames: (keyof typeof Permissions.list)[],\n location: ChatLocation,\n ): Promise<CheckPermissionsResult> {\n if (! permissionNames.length) {\n throw new Error('Permission names array cannot be empty');\n }\n\n const ownedPermissions = await this.calculatePermissions(location);\n const missing: string[] = [];\n\n permissionNames.forEach(name => {\n if (~ ownedPermissions & Permissions.getByName(name).value) {\n missing.push(name as string);\n }\n });\n\n return {\n ok: missing.length === 0,\n hasAll: missing.length === 0,\n hasAny: missing.length < permissionNames.length,\n missing,\n };\n }\n\n public async calculatePermissions(location: ChatLocation): Promise<number> {\n const room = location.roomId ? (await this.tracker.rooms.get()).get(location.roomId) : null;\n location = {\n spaceId: location.spaceId ?? room?.spaceId,\n roomId: location.roomId,\n topicId: location.topicId,\n };\n\n this.validateLocation(location);\n\n const userId = (await this.tracker.getMe()).id;\n const [spaceMember, roomMember] = await this.fetchMembersOrFail(location);\n const userRoles: string[] = [...(spaceMember?.roles ?? []), ...(roomMember?.roles ?? [])];\n const promises: Promise<PermissionOverwritesValue>[] = [\n // Global user overwrites\n this.getOverwrites({}, { type: 'User', userId }).then(v => v.overwrites),\n ];\n\n if (location.spaceId && (await this.tracker.spaces.get())?.has(location.spaceId)) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId};\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (room) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId, roomId: location.roomId};\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n }\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (location.topicId && (await this.tracker.rooms.getTopics(location.roomId))?.has(location.topicId)) {\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(location, userRoles));\n }\n promises.push(this.getOverwrites(location, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n return this.resolveOverwritesHierarchy(await Promise.all(promises));\n }\n\n private handlePermissionOverwrites(ev: PermissionOverwritesUpdated | PermissionOverwrites): void {\n this.overwrites.set([getOvIdByObject(ev), ev]);\n this.emit('change');\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.id}));\n this.overwritesPromises.forget(...ids);\n }\n\n private async handleRoomDeleted(ev: RoomDeleted | RoomLeft): Promise<void> {\n const room = (await this.tracker.rooms.get()).get(ev.id);\n if (room) {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: room.spaceId, roomId: room.id}));\n this.overwritesPromises.forget(...ids);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId(ev.location));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleRoleDeleted(ev: RoleDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.spaceId}, { type: 'Role', roleId: ev.id }));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in space could potentially have changed\n this.emit('change');\n }\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in room could potentially have changed\n this.emit('change');\n }\n }\n\n /**\n * @return Matched and deleted ids\n */\n private deleteOverwritesByIdPrefix(prefix: string): string[] {\n const ids: string[] = [];\n this.overwrites.items.forEach((overwrites) => {\n const id = getOvIdByObject(overwrites);\n if (id.startsWith(prefix)) {\n ids.push(id);\n this.overwrites.delete(id);\n }\n });\n return ids;\n }\n\n private async collectRoleOverwrites(\n location: ChatLocation,\n userRoles: string[],\n ): Promise<PermissionOverwritesValue> {\n const roleOverwrites = await Promise.all(userRoles.map(\n roleId => this.getOverwrites(location, { type: 'Role', roleId }),\n ));\n\n return this.resolveOverwritesFromRolesByOrder(location.spaceId, roleOverwrites);\n }\n\n private async resolveOverwritesFromRolesByOrder(\n spaceId: string,\n overwrites: PermissionOverwrites[],\n ): Promise<PermissionOverwritesValue> {\n let allows = 0, denies = 0;\n const roles = await this.tracker.spaces.getRoles(spaceId);\n const sortedOverwrites = overwrites.sort(\n (a, b) =>\n roles.get(a.target.roleId).priority - roles.get(b.target.roleId).priority\n );\n\n // Max length of bit word\n const permissionsLength = overwrites.reduce(\n (previousValue: number, currentValue: PermissionOverwrites) =>\n Math.max(\n previousValue,\n currentValue.overwrites.allow?.toString(2).length ?? 0,\n currentValue.overwrites.deny?.toString(2).length ?? 0,\n ),\n 0,\n );\n\n sortedOverwrites.forEach(overwriteEvent => {\n const overwrites = overwriteEvent.overwrites;\n const revDecDenies = overwrites.deny?.toString(2).split('').reverse().join('') ?? '';\n const revDecAllows = overwrites.allow?.toString(2).split('').reverse().join('') ?? '';\n\n for (let i = 0; i < permissionsLength; i++) {\n const deny = parseInt(revDecDenies[i] ?? '0');\n const allow = parseInt(revDecAllows[i] ?? '0');\n\n if (deny) {\n denies |= 1 << i;\n }\n\n if (allow) {\n allows |= 1 << i;\n }\n }\n });\n\n return {allow: allows, deny: denies};\n }\n\n private resolveOverwritesHierarchy(permissionOverwritesValues: PermissionOverwritesValue[]): number {\n let result = 0;\n\n for (const value of permissionOverwritesValues) {\n if (value.allow & Permissions.getByName('Root').value) {\n return this.getRootAccessValue();\n }\n\n result = (result & ~value.deny) | value.allow;\n }\n\n return result;\n }\n\n private getRootAccessValue(): number {\n let result = 0;\n\n for (const name of Permissions.getNames()) {\n result |= Permissions.getByName(name).value;\n }\n\n return result;\n }\n\n private async fetchMembersOrFail(location: ChatLocation): Promise<[SpaceMember | null, RoomMember | null]> {\n const results = await Promise.all([\n location.spaceId ? this.tracker.spaces.getMe(location.spaceId) : null,\n location.roomId ? this.tracker.rooms.getMe(location.roomId) : null,\n ]);\n\n const spaceFail = location.spaceId && ! results[0];\n const roomFail = location.roomId && ! results[1];\n\n if (spaceFail || roomFail) {\n const layer = spaceFail ? `space (${location.spaceId})` : `room (${location.roomId})`;\n throw new Error(`Attempting to calculate permissions for a ${layer} that the user does not belong to`);\n }\n\n return results;\n }\n\n private validateLocation(location: ChatLocation): void {\n if (location.topicId && ! location.roomId) {\n throw new Error('Corrupted arguments hierarchy');\n }\n }\n\n private handleSession(ev: Session): void {\n this.overwrites.deleteAll();\n this.overwritesPromises.forgetAll();\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {\r\n IndexedCollection,\r\n ObservableIndexedObjectCollection\r\n} from \"../IndexedObjectCollection\";\r\nimport {Emoticon, EmoticonDeleted, Emoticons, NewEmoticon, SpaceDeleted} from \"../types/src\";\r\nimport {PromiseRegistry} from \"./AsyncUtils\";\r\n\r\nconst GLOBAL_KEY = 'global';\r\n\r\nexport class EmoticonsManager {\r\n private list: IndexedCollection<string, ObservableIndexedObjectCollection<Emoticon>> = new IndexedCollection();\r\n private emoticonsPromises = new PromiseRegistry();\r\n \r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('Emoticons', ev => this.handleEmoticons(ev));\r\n this.tracker.client.on('NewEmoticon', ev => this.handleNewEmoticon(ev));\r\n this.tracker.client.on('EmoticonDeleted', ev => this.handleEmoticonDeleted(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('Session', () => this.handleSession());\r\n }\r\n\r\n public async get(spaceId?: string): Promise<ObservableIndexedObjectCollection<Emoticon>> {\r\n const key = spaceId ?? GLOBAL_KEY;\r\n\r\n if (this.emoticonsPromises.notExist(key)) {\r\n this.emoticonsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetEmoticons', {spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleEmoticons(result.data);\r\n }, key);\r\n }\r\n\r\n await this.emoticonsPromises.get(key);\r\n return this.list.get(key);\r\n }\r\n\r\n private handleEmoticons(event: Emoticons): void {\r\n const spaceId = event.location.spaceId ?? GLOBAL_KEY;\r\n\r\n if (!this.list.has(spaceId)) {\r\n this.list.set([spaceId, new ObservableIndexedObjectCollection<Emoticon>('id')]);\r\n }\r\n\r\n const collection = this.list.get(spaceId);\r\n collection.set(...event.emoticons);\r\n }\r\n\r\n private handleNewEmoticon(ev: NewEmoticon): void {\r\n const collection = this.list.get(ev.emoticon.spaceId ?? GLOBAL_KEY);\r\n collection?.set(ev.emoticon);\r\n }\r\n\r\n private handleEmoticonDeleted(ev: EmoticonDeleted): void {\r\n const collection = this.list.get(ev.spaceId ?? GLOBAL_KEY);\r\n collection?.delete(ev.emoticonId);\r\n }\r\n\r\n private handleSpaceDeleted(event: SpaceDeleted): void {\r\n this.list.delete(event.id);\r\n }\r\n\r\n private handleSession(): void {\r\n this.list.deleteAll();\r\n this.emoticonsPromises.forgetAll();\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {RoomMember, Session, SpaceMember, User} from \"../types/src\";\nimport {extractUserFromMember} from \"./functions\";\nimport {EventTarget} from \"../EventTarget\";\n\nexport class UsersManager {\n public readonly onlineStatus = new EventTarget<{ change: User }>();\n\n private readonly users: ObservableIndexedObjectCollection<User> = new ObservableIndexedObjectCollection('id');\n\n public constructor(private tracker: ChatStateTracker) {\n // RoomMemberUpdated & SpaceMemberUpdated events are not contains user object\n tracker.client.on('UserUpdated', event => this.handleUsers([event.user]));\n tracker.client.on('RoomMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMembers', event => this.handleMembers(event.members));\n tracker.client.on('RoomMembers', event => this.handleMembers(event.members));\n tracker.client.on('Messages', event => this.handleUsers(event.messages.map(message => message.author.user)));\n tracker.client.on('NewMessage', event => this.handleUsers([event.message.author.user]));\n tracker.client.on('Session', event => this.handleSession(event));\n }\n\n /**\n * Get all available (cached) user objects at once.\n */\n public async getAvailable(): Promise<ObservableIndexedObjectCollection<User>> {\n return this.users;\n }\n\n private handleMembers(members: (RoomMember | SpaceMember)[]): void {\n this.handleUsers(members.map(extractUserFromMember));\n }\n\n private handleSession(session: Session): void {\n this.users.deleteAll();\n this.handleUsers([session.user]);\n }\n\n private handleUsers(users: User[]): void {\n users.forEach(newUser => {\n const oldUser = this.users.get(newUser.id);\n if (oldUser && oldUser.online !== newUser.online) {\n this.onlineStatus.emit('change', newUser);\n }\n });\n\n this.users.set(...users);\n }\n}","import {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n NewRelationship,\n RelationshipDeleted,\n Relationships,\n UserRelationship,\n UserRelationshipType\n} from \"../types/src\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\n\nconst getId = (refUserId: string, type: UserRelationshipType): string => `${refUserId}-${type}`;\nconst getIdFromRelationship = (relationship: UserRelationship): string => getId(relationship.refUser.id, relationship.type);\n\nexport class RelationshipsManager {\n private relationships: ObservableIndexedObjectCollection<UserRelationship> = new ObservableIndexedObjectCollection<UserRelationship>(getIdFromRelationship);\n private promises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Relationships', ev => this.handleRelationships(ev));\n this.tracker.client.on('NewRelationship', ev => this.handleNewRelationship(ev));\n this.tracker.client.on('RelationshipDeleted', ev => this.handleRelationshipDeleted(ev));\n this.tracker.client.on('Session', () => this.handleSession());\n }\n\n public async get(): Promise<ObservableIndexedObjectCollection<UserRelationship>> {\n if (this.promises.notExist('all')) {\n this.promises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRelationships', {});\n if (result.error) {\n throw result.error;\n }\n }, 'all');\n }\n\n await this.promises.get('all');\n return this.relationships;\n }\n\n public async exists(refUserId: string, type: UserRelationshipType): Promise<boolean> {\n await this.get();\n return this.relationships.has(getId(refUserId, type));\n }\n\n private handleRelationships(ev: Relationships): void {\n this.relationships.deleteAll();\n ev.relationships.forEach(relationship => {\n this.relationships.set(relationship);\n });\n }\n\n private handleNewRelationship(ev: NewRelationship): void {\n if (this.promises.has('all')) {\n this.relationships.set(ev.relationship);\n }\n }\n\n private handleRelationshipDeleted(ev: RelationshipDeleted): void {\n if (this.promises.has('all')) {\n this.relationships.delete(getIdFromRelationship(ev.relationship));\n }\n }\n\n private handleSession(): void {\n this.promises.forgetAll();\n this.relationships.deleteAll();\n }\n}","import {WebSocketChatClient} from \"../WebSocketChatClient\";\r\nimport {Session, User} from \"../types/src\";\r\nimport {RoomsManager} from \"./RoomsManager\";\r\nimport {SpacesManager} from \"./SpacesManager\";\r\nimport {PermissionsManager} from \"./PermissionsManager\";\r\nimport {DeferredTask} from \"./AsyncUtils\";\r\nimport {EmoticonsManager} from \"./EmoticonsManager\";\r\nimport {UsersManager} from \"./UsersManager\";\r\nimport {RelationshipsManager} from \"./RelationshipsManager\";\r\n\r\nexport class ChatStateTracker {\r\n public readonly client: WebSocketChatClient;\r\n\r\n /**\r\n * State of your permissions.\r\n */\r\n public readonly permissions: PermissionsManager;\r\n\r\n /**\r\n * State of the rooms you are in.\r\n */\r\n public readonly rooms: RoomsManager;\r\n\r\n /**\r\n * State of the spaces you are in.\r\n */\r\n public readonly spaces: SpacesManager;\r\n\r\n /**\r\n * State of the emoticons (global and space-related).\r\n */\r\n public readonly emoticons: EmoticonsManager;\r\n\r\n /**\r\n * Users related state.\r\n */\r\n public readonly users: UsersManager;\r\n\r\n /**\r\n * State of relationships with other users.\r\n */\r\n public readonly relationships: RelationshipsManager;\r\n\r\n private _me: User = null;\r\n private readonly deferredSession = new DeferredTask();\r\n\r\n public constructor(client: WebSocketChatClient) {\r\n this.client = client;\r\n this.client.on('Session', ev => this.handleSession(ev));\r\n\r\n this.permissions = new PermissionsManager(this);\r\n this.rooms = new RoomsManager(this);\r\n this.spaces = new SpacesManager(this);\r\n this.emoticons = new EmoticonsManager(this);\r\n this.users = new UsersManager(this);\r\n this.relationships = new RelationshipsManager(this);\r\n }\r\n\r\n public get me(): User | null {\r\n return this._me;\r\n }\r\n\r\n public async getMe(): Promise<User> {\r\n await this.deferredSession.promise;\r\n return this._me;\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this._me = ev.user;\r\n this.deferredSession.resolve();\r\n }\r\n}","import {ObservableInterface} from \"./EventTarget\";\nimport {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ChatStateTracker} from \"./state-tracker/ChatStateTracker\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebSocketClientOptions {\n url: string;\n token: string;\n connectingTimeoutMs?: number;\n awaitQueueSendDelayMs?: number;\n stateTracking?: boolean;\n queryParams?: Record<string, string>;\n /**\n * Ping/pong configuration, enabled by default.\n */\n ping?: {\n enabled?: boolean;\n /**\n * Time without activity after which a ping will be sent. Default is 10 seconds.\n */\n noActivityTimeoutMs?: number;\n /**\n * Time to wait for a pong response before considering the connection dead. Default is 2 seconds.\n */\n pongBackTimeoutMs?: number;\n },\n}\n\nenum WebSocketChatClientEvent {\n connect = 'connect',\n disconnect = 'disconnect',\n message = 'message',\n error = 'error',\n}\n\ntype WebSocketEventMap = EventsMap & {\n [WebSocketChatClientEvent.connect]: void;\n [WebSocketChatClientEvent.disconnect]: boolean;\n [WebSocketChatClientEvent.message]: Envelope;\n [WebSocketChatClientEvent.error]: Error;\n};\n\nexport class WebSocketChatClient extends AbstractChatClient<Pick<WebSocketEventMap, keyof WebSocketEventMap>> implements ObservableInterface {\n public readonly Event = WebSocketChatClientEvent;\n public readonly state?: ChatStateTracker;\n\n protected ws: WebSocket|null = null;\n protected sendQueue: Envelope[] = [];\n protected connectingTimeoutId: any;\n protected authenticated: boolean;\n protected authenticatedResolvers: [() => void, (error: Error) => void];\n protected pingMonitorInterval?: NodeJS.Timeout;\n protected inFlightPingTimeout: NodeJS.Timeout;\n protected lastReceivedMessageAt?: number;\n\n public constructor(private readonly options: WebSocketClientOptions) {\n super();\n if (this.options.stateTracking ?? true) {\n this.state = new ChatStateTracker(this);\n }\n\n options.ping ??= {};\n options.ping.enabled ??= true;\n options.ping.noActivityTimeoutMs ??= 15000;\n options.ping.pongBackTimeoutMs ??= 5000;\n }\n\n public async connect(): Promise<void> {\n if (this.isOpenWsState() || this.isConnectingWsState()) {\n return;\n }\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n params.set('token', this.options.token);\n\n this.ws = new WebSocket(`${this.options.url}?${params}`);\n this.ws.onclose = ev => this.onClose(ev);\n this.ws.onmessage = ev => this.onMessage(ev);\n this.connectingTimeoutId = setTimeout(\n () => this.triggerConnectionTimeout(),\n this.options.connectingTimeoutMs ?? 10000\n );\n this.authenticated = false;\n return new Promise((...args) => this.authenticatedResolvers = args);\n }\n\n public disconnect(): void {\n this.sendQueue = [];\n this.ws?.close(1000); // Normal closure\n this.ws = null;\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope<CommandRequest<CommandType>>(commandType, commandData);\n const promise = this.createPromiseFromCommandEnvelope<CommandType>(envelope);\n\n if (this.isConnectingWsState() || !this.authenticated && this.isOpenWsState()) {\n this.sendQueue.push(envelope);\n return promise;\n }\n\n this.sendEnvelope(envelope);\n return promise;\n }\n\n public get isReady(): boolean {\n return this.isOpenWsState() && this.authenticated;\n }\n\n private sendEnvelope(envelope: Envelope): void {\n if (this.isReady) {\n this.ws.send(JSON.stringify(envelope));\n return;\n }\n\n this.handleEnvelopeSendError(\n envelope,\n new Error(`Cannot send - client is not ready (state=${this.ws?.readyState ?? '[no connection]'}; authenticated=${this.authenticated})`)\n );\n }\n\n private onMessage(event: MessageEvent): void {\n this.lastReceivedMessageAt = Date.now();\n const envelope: Envelope = JSON.parse(event.data);\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n\n // Login successfully\n if (!this.authenticated) {\n const isAuthenticated = envelope.type !== 'Bye';\n this.authenticated = isAuthenticated;\n if (isAuthenticated) {\n this.startConnectionMonitor();\n this.authenticatedResolvers[0]();\n this.emit(this.Event.connect);\n this.sendFromQueue();\n } else {\n this.authenticatedResolvers[1](envelope.data);\n }\n }\n }\n\n private onClose(event: CloseEvent): void {\n this.stopConnectionMonitor();\n clearTimeout(this.connectingTimeoutId);\n const reconnect = event.code !== 1000; // Connection was closed because of error\n if (reconnect) {\n void this.connect();\n }\n this.emit(this.Event.disconnect, reconnect);\n }\n\n private sendFromQueue(): void {\n // Send awaiting data to server\n let lastDelay = 0;\n for (const dataIndex in this.sendQueue) {\n const envelope = this.sendQueue[dataIndex];\n setTimeout(() => this.sendEnvelope(envelope), lastDelay);\n lastDelay += this.options.awaitQueueSendDelayMs ?? 500;\n }\n this.sendQueue = [];\n clearTimeout(this.connectingTimeoutId);\n }\n\n private triggerConnectionTimeout(): void {\n this.disconnect();\n this.emit(this.Event.error, new Error('Connection timeout'));\n }\n\n private isConnectingWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.CONNECTING;\n }\n\n private isOpenWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.OPEN;\n }\n\n private startConnectionMonitor(): void {\n if (!this.options.ping!.enabled) {\n return;\n }\n\n this.lastReceivedMessageAt = Date.now();\n\n this.pingMonitorInterval = setInterval(async () => {\n if (!this.isReady || this.inFlightPingTimeout) {\n return;\n }\n\n if ((Date.now() - this.lastReceivedMessageAt) < this.options.ping!.noActivityTimeoutMs) {\n return;\n }\n\n this.inFlightPingTimeout = setTimeout(() => {\n this.inFlightPingTimeout = undefined;\n this.ws.close(3000); // Service Restart (reconnect)\n }, this.options.ping.pongBackTimeoutMs);\n\n this.send('Ping', {}).then(() => {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n });\n }, 1000);\n }\n\n private stopConnectionMonitor(): void {\n if (this.inFlightPingTimeout) {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n }\n if (this.pingMonitorInterval) {\n clearInterval(this.pingMonitorInterval);\n this.pingMonitorInterval = undefined;\n }\n }\n}","import {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ObservableInterface} from \"./EventTarget\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebApiChatClientOptions {\n url: string;\n token: string;\n attemptsToSend?: number;\n attemptDelayMs?: number;\n queryParams?: Record<string, string>;\n}\n\nenum WebApiChatClientEvent {\n message = 'message',\n error = 'error',\n destroy = 'destroy',\n}\n\ntype WebApiEventMap = EventsMap & {\n [WebApiChatClientEvent.message]: Envelope;\n [WebApiChatClientEvent.error]: Error;\n [WebApiChatClientEvent.destroy]: boolean;\n};\n\nexport class WebApiChatClient extends AbstractChatClient<Pick<WebApiEventMap, keyof WebApiEventMap>> implements ObservableInterface {\n public readonly Event = WebApiChatClientEvent;\n\n protected sendStack: {data: any, attempts: number, lastTimeoutId: any}[];\n\n public constructor(private readonly options: WebApiChatClientOptions) {\n super();\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope(commandType, commandData);\n this.sendStack.push({data: envelope, attempts: 0, lastTimeoutId: null});\n this.makeApiCall(this.sendStack.length - 1);\n return this.createPromiseFromCommandEnvelope(envelope);\n }\n\n public destroy(): void {\n // Cancel all awaiting requests\n this.sendStack.forEach(item => {\n if (item.lastTimeoutId) {\n clearTimeout(item.lastTimeoutId);\n }\n this.awaitingResponse.delete(item.data.ref);\n });\n this.sendStack = [];\n this.emit(this.Event.destroy, false);\n }\n\n protected async onMessage(reqId: number, response: Response): Promise<void> {\n this.sendStack.splice(reqId, 1);\n const envelope: Envelope = await response.json();\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n }\n\n protected onError(reqId: number, body: string): void {\n if (this.sendStack[reqId].attempts >= (this.options.attemptsToSend ?? 10)) {\n this.sendStack.splice(reqId, 1);\n this.handleEnvelopeSendError(this.sendStack[reqId].data, new Error(\n `Cannot send ${body}; aborting after reaching the maximum connection errors`\n ));\n return;\n }\n this.sendStack[reqId].lastTimeoutId = setTimeout(\n () => this.makeApiCall(reqId),\n this.options.attemptDelayMs ?? 3000\n );\n }\n\n protected makeApiCall(reqId: number): void {\n this.sendStack[reqId].attempts++;\n const bodyJson = JSON.stringify(this.sendStack[reqId].data);\n const headers: any = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n };\n\n headers.Authorization = `Bearer ${this.options.token}`;\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n const url = `${this.options.url}${params ? '?' + params : ''}`;\n\n fetch(url, {\n headers,\n body: bodyJson,\n method: 'POST',\n })\n .then(response => this.onMessage(reqId, response))\n .catch(() => this.onError(reqId, bodyJson));\n }\n}","export interface RestClientOptions {\n url?: string;\n token: string;\n}\n\nexport interface RestClientResponse<T> {\n ok: boolean;\n status: number;\n data: T;\n}\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport abstract class AbstractRestClient {\n protected abstract defaultUrl: string;\n\n public constructor(\n private readonly options: RestClientOptions,\n ) {}\n\n protected async send<ResponseT = any>(\n method: HttpMethod,\n uri: string,\n data: any = undefined,\n additionalHeaders: Record<string, string> = {},\n ): Promise<RestClientResponse<ResponseT>> {\n let url = this.getUrl(uri);\n let body = undefined;\n\n if (data) {\n if (['GET', 'DELETE'].includes(method)) {\n url += '?' + new URLSearchParams(data).toString()\n } else {\n body = JSON.stringify(data);\n }\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...additionalHeaders,\n ...this.getAuthHeaders(),\n };\n\n const result = await fetch(url, {method, body, headers});\n\n return this.convertFetchResponse(result);\n }\n\n protected getAuthHeaders(): any {\n const headers = {} as any;\n\n if (this.options.token) {\n headers.Authorization = `Bearer ${this.options.token}`;\n }\n\n return headers;\n }\n\n protected getUrl(uri: string): string {\n return this.removeEndingSlash(this.options.url ?? this.defaultUrl) + '/' + this.removeStartingSlash(uri);\n }\n\n protected async convertFetchResponse<T>(result: Response): Promise<RestClientResponse<T>> {\n return {\n ok: result.ok,\n status: result.status,\n data: result.headers.get('content-type')?.includes('json') ? await result.json() : await result.text(),\n };\n }\n\n private removeStartingSlash(text: string): string {\n return text.replace(/^\\/+/, '');\n }\n\n private removeEndingSlash(text: string): string {\n return text.replace(/\\/+$/, '');\n }\n}","import {AbstractRestClient, RestClientResponse} from \"./AbstractRestClient\";\r\n\r\nexport interface File {\r\n id: string;\r\n url: string;\r\n name: string;\r\n mime: string;\r\n size: number;\r\n width?: number;\r\n height?: number;\r\n}\r\n\r\nexport class FilesClient extends AbstractRestClient {\r\n protected defaultUrl: string = 'https://files.devana.pl';\r\n\r\n public async uploadFile(file: globalThis.File | Blob): Promise<RestClientResponse<File>> {\r\n const name = encodeURIComponent((file as globalThis.File).name ?? '');\r\n let headers = {\r\n ...this.getAuthHeaders(),\r\n Accept: 'application/json',\r\n 'Content-Disposition': `attachment; filename=\"${name}\"`,\r\n 'Content-Length': file.size\r\n };\r\n\r\n const response = await fetch(this.getUrl('files'), {\r\n method: 'POST',\r\n body: file,\r\n headers\r\n });\r\n\r\n return this.convertFetchResponse<File>(response);\r\n }\r\n\r\n public async getFileMeta(id: string): Promise<RestClientResponse<File>> {\r\n return this.send('GET', 'files/' + id);\r\n }\r\n\r\n public async getFileMetaBulk(ids: string[]): Promise<RestClientResponse<File[]>> {\r\n const searchParams = new URLSearchParams();\r\n ids.forEach(id => searchParams.append('id[]', id));\r\n return this.send('GET', 'files?' + searchParams);\r\n }\r\n}"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","EventTarget","_classCallCheck","_defineProperty","Map","eventName","handler","addHandler","events","onceEvents","_this$events$get","_this$events$get2","index","indexOf","undefined","splice","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","type","data","ref","sentCounter","toString","envelope","_this2","Promise","_len2","_key2","awaitingResponse","has","isError","error","IndexedCollection","items","apply","_toConsumableArray","_createClass","_items","size","_i","item","id","ids","_i2","_ids","clear","field","valueToFind","limit","result","entries","next","done","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","_this$_items2","deleteAll","_step","_iterator","_createForOfIteratorHelper","s","n","err","e","f","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","emit","setItems","_len5","_key5","deletedItems","keys","on","once","off","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","DeferredTask","promise","resolve","PromiseRegistry","promises","fn","register","_this$promises","t","r","iterator","i","c","Generator","u","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","_invoke","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_setPrototypeOf","toPrimitive","String","Number","_toPrimitive","WindowState","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","internalState","traverseLock","client","ev","handleNewMessage","handleMessagesRedacted","_setTraverseLock","_callee6","lock","_context6","state","LIVE","LATEST","_x2","_resetToLatest2","_callee7","_context7","_fetchNext2","_callee8","_context8","_fetchPrevious2","_callee9","_context9","_jumpTo2","_callee0","_context0","_x3","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee1","_this$getAt","afterId","_context1","getAt","send","location","after","fetchLimit","Error","message","messages","_fetchItemsAround","_callee10","_context10","around","_x4","_fetchItemsBefore","_callee11","_this$getAt2","beforeId","_context11","before","_fetchLatestItems","_callee12","_context12","_getTopic","_callee13","_context13","rooms","getTopics","_getLatestMessageId","_callee14","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context14","getTopic","lastMessage","_isLatestItemLoaded","_callee15","lastMessageId","_context15","getLatestMessageId","_handleNewMessage","_callee16","originalState","_context16","includes","addItems","emitChangeWithDiff","_x5","_handleMessagesRedacted","_callee17","refTopicIds","_context17","filter","msg","resetToLatest","_x6","_ObservableIndexedObj","TraversableRemoteCollection","current","ongoing","retainRatio","lastFetchCount","oldestId","OLDEST","_resetToLatest","_callee","_context","fetchLatestItems","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","_jumpTo","_callee4","_context4","fetchItemsAround","_x","_refreshFetchedState","_callee5","_t","_context5","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","_args","historyWindows","_handleRoomUpdated","_Array$from","_Array$from$_i","window","_slicedToArray","setTraverseLock","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","_updateMessageReference","history","mode","MessagesManager","handleSession","handleRoomJoin","handleFollowedTopicUpdated","handleTopicFollowed","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","_cacheSpaceFollowedTopics","spaceId","roomIds","resultPromise","spaces","findBy","followedTopicsPromises","setFollowedTopicsArray","followedTopics","_getRoomFollowedTopics","notExist","registerByFunction","_ackRoom","collection","followedTopic","getRoomFollowedTopics","isUnread","_summarizeUnreadMessages","cacheKey","targetTopicId","mentionCount","_iterator2","_step2","_iterator3","_step3","_topic$mentionCount","unreadSummariesCache","cacheSpaceFollowedTopics","_this$followedTopics$","topicIds","invalidateUnreadSummaries","_resolveLastMessage2","_result$data","getRoomHistory","roomHistory","getMessagesWindow","_step4","_iterator4","startsWith","_step5","_iterator5","roomIdsSet","Set","_step6","_iterator6","parts","split","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","clearRoomFollowedTopicsStructures","createHistoryForNewRoom","_handleNewTopic","_x7","_this$followedTopics$3","forgetAll","_updateLocallyFollowedTopicOnNewMessage","_this$tracker$me","roomFollowedTopics","update","_member$spaceMember$r","_member$spaceMember","member","roleIds","mentionHandlers","mentionExists","author","user","me","missed","lastAckMessageId","getMe","spaceMember","roles","some","content","_x8","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this7$followedTopics","invalidateUnreadSummariesForRooms","forget","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","_getMe","userId","list","getMembers","find","_member$user$id","_member$user","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$messages","_deleteByTopicIds","deleteRoom","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","newMember","deleteRoomsBySpaceId","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get3","addJoinedRooms","_this$topics$get4","newRoom","_this$list2","_rooms","recipients","customColor","customNick","extras","_member$user$id2","_member$user2","_this$list3","newRooms","_room$recipients","_room$defaultTopic2","newTopic","messageCount","max","_resolveLastMessage","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","_getRooms","roomsPromises","role","_this$rooms$get","summary","roomIdToSpaceId","name","description","_handleRoomDeleted","_this$rooms$get2","space","spaceChanged","systemRoom","defaultRooms","_this$rooms$get$items","_this$rooms$get3","_this$roomIdToSpaceId","addJoinedSpaces","_this$roles","summaries","_handleRoomSummaryUpdated","summariesPromise","oldSummary","newSummary","_this$roles$get","oldRole","newRole","rolesToUpdate","priority","allRoles","updatedRole","increased","decreased","changedRoles","reorderRolesOnPriorityUpdate","Layer","PermissionDefinition","Permissions","permissionName","layer","getByName","maxLayer","Root","Room","CreateSpaces","Global","ManageSpace","Space","ManageRoles","CreateTopics","ManageTopic","Topic","ManageMemberProfiles","ManageMemberRoles","CreateMessages","ManagePermissions","CreateRooms","ManageRoom","CreateEmoticons","ManageEmoticons","ManageBans","Kick","ChangeOwnNick","ChangeOwnColor","RedactMessages","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","_calculatePermissions","_location$spaceId","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","fetchMembersOrFail","getOverwrites","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me2","prefix","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","getRoles","sort","b","reduce","previousValue","currentValue","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","reverse","revDecAllows","_revDecDenies$i","_revDecAllows$i","parseInt","_x9","_x0","permissionOverwritesValues","getRootAccessValue","getNames","_fetchMembersOrFail","results","spaceFail","roomFail","_x1","GLOBAL_KEY","EmoticonsManager","handleEmoticons","handleNewEmoticon","handleEmoticonDeleted","emoticonsPromises","_event$location$space","emoticons","_ev$emoticon$spaceId","emoticon","_ev$spaceId","emoticonId","UsersManager","handleUsers","handleMembers","users","_getAvailable","session","_this$users","newUser","oldUser","online","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_exists","ChatStateTracker","permissions","_me","WebSocketChatClientEvent","WebSocketChatClient","_AbstractChatClient","options","_this$options$stateTr","_options$ping","_options$ping2","_options$ping2$enable","_options$ping3","_options$ping3$noActi","_options$ping4","_options$ping4$pongBa","stateTracking","ping","enabled","noActivityTimeoutMs","pongBackTimeoutMs","_connect","_this$options$queryPa","_this$options$connect","params","isOpenWsState","isConnectingWsState","URLSearchParams","queryParams","token","ws","WebSocket","url","onclose","onClose","onmessage","onMessage","connectingTimeoutId","setTimeout","triggerConnectionTimeout","connectingTimeoutMs","authenticated","authenticatedResolvers","_this$ws","sendQueue","close","_send","commandType","commandData","createEnvelope","createPromiseFromCommandEnvelope","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","handleEnvelopeSendError","readyState","lastReceivedMessageAt","Date","now","parse","handleIncomingEnvelope","Event","isAuthenticated","startConnectionMonitor","connect","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","disconnect","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","sendStack","attempts","lastTimeoutId","makeApiCall","destroy","_onMessage","reqId","response","json","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","fetch","method","onError","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","additionalHeaders","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","status","text","replace","FilesClient","_AbstractRestClient","_uploadFile","file","_name","encodeURIComponent","_getFileMeta","_getFileMetaBulk","searchParams","append"],"ignoreList":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.umd.js","mappings":"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","sources":["webpack://PservClient/webpack/universalModuleDefinition","webpack://PservClient/webpack/bootstrap","webpack://PservClient/webpack/runtime/define property getters","webpack://PservClient/webpack/runtime/hasOwnProperty shorthand","webpack://PservClient/webpack/runtime/make namespace object","webpack://PservClient/./src/EventTarget.ts","webpack://PservClient/./src/AbstractChatClient.ts","webpack://PservClient/./src/IndexedObjectCollection.ts","webpack://PservClient/./src/state-tracker/AsyncUtils.ts","webpack://PservClient/./src/state-tracker/TopicHistoryWindow.ts","webpack://PservClient/./src/state-tracker/RoomMessagesHistory.ts","webpack://PservClient/./src/state-tracker/MessagesManager.ts","webpack://PservClient/./src/state-tracker/RoomsManager.ts","webpack://PservClient/./src/state-tracker/functions.ts","webpack://PservClient/./src/state-tracker/SpacesManager.ts","webpack://PservClient/./src/Permissions.ts","webpack://PservClient/./src/state-tracker/PermissionsManager.ts","webpack://PservClient/./src/state-tracker/EmoticonsManager.ts","webpack://PservClient/./src/state-tracker/UsersManager.ts","webpack://PservClient/./src/state-tracker/RelationshipsManager.ts","webpack://PservClient/./src/state-tracker/ChatStateTracker.ts","webpack://PservClient/./src/WebSocketChatClient.ts","webpack://PservClient/./src/WebApiChatClient.ts","webpack://PservClient/./src/AbstractRestClient.ts","webpack://PservClient/./src/FilesClient.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PservClient\"] = factory();\n\telse\n\t\troot[\"PservClient\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type EventHandler<EventT> = (ev?: EventT) => void;\ntype HandlersMap = Map<string, EventHandler<any>[]>;\ntype EventMapLike = Record<string, any>;\ntype KnownEventNames<EventT> = EventT extends EventMapLike ? keyof EventT & string : string;\ntype EventPayload<EventT, EventName extends string = never> = EventT extends EventMapLike\n ? [EventName] extends [never]\n ? EventT[keyof EventT]\n : EventName extends keyof EventT\n ? EventT[EventName]\n : EventT[keyof EventT]\n : EventT;\n\nexport type ChangeEventMap<Payload = void> = { change: Payload };\n\nexport interface ObservableInterface<EventT = any> {\n on<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n on(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n once<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n once(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n off<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n off(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n}\n\nexport class EventTarget<EventMapT extends Record<string, any> = Record<string, any>> implements ObservableInterface<EventMapT> {\n protected events: HandlersMap = new Map<string, EventHandler<any>[]>();\n protected onceEvents: HandlersMap = new Map<string, EventHandler<any>[]>();\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public on(eventName: string, handler: EventHandler<unknown>): this;\n public on(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.events, eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public once(eventName: string, handler: EventHandler<unknown>): this;\n public once(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.onceEvents, eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public off(eventName: string, handler: EventHandler<unknown>): this;\n public off(eventName: string, handler: EventHandler<any>): this {\n const index = this.events.get(eventName)?.indexOf(handler);\n if (index === undefined || index < 0) {\n return this;\n }\n this.events.get(eventName)?.splice(index, 1);\n return this;\n }\n\n public emit<K extends keyof EventMapT & string>(eventName: K, event: EventMapT[K]): this;\n public emit(eventName: string, event?: unknown): this;\n public emit(eventName: string, event?: any): this {\n this.callHandlers(this.events, eventName, event);\n this.callHandlers(this.onceEvents, eventName, event);\n this.onceEvents.delete(eventName);\n return this;\n }\n\n private addHandler(map: HandlersMap, eventName: string, handler: EventHandler<any>): void {\n const handlers = map.get(eventName) ?? [];\n handlers.push(handler);\n map.set(eventName, handlers);\n }\n\n private callHandlers(map: HandlersMap, eventName: string, event: unknown): void {\n map.get(eventName)?.forEach(callback => callback(event));\n }\n}","import {\n Bye,\n GetSession,\n JoinSpace,\n Session,\n SpaceJoined,\n Error as ErrorType,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMemberUpdated,\n SpaceDeleted,\n SpaceMembers,\n SpaceRooms,\n NewRole,\n RoomDeleted,\n RoomJoined,\n RoomLeft,\n RoomMemberLeft,\n RoomMemberJoined,\n RoomMembers,\n NewRoom,\n NewTopic,\n TopicDeleted,\n NewMessage,\n GetPermissionOverwrites,\n GetComputedPermissions,\n LeaveSpace,\n CreateSpace,\n DeleteSpace,\n GetSpaceMembers,\n GetSpaceRooms,\n CreateRole,\n DeleteRole,\n AssignRole,\n DeassignRole,\n SetPermissionOverwrites,\n JoinRoom,\n LeaveRoom,\n CreateRoom,\n DeleteRoom,\n GetRoomMembers,\n CreateTopic,\n DeleteTopic,\n CreateMessage,\n Envelope,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoomMemberUpdated,\n UpdateRole,\n RoleUpdated,\n Ack,\n UserUpdated,\n UpdateRoom,\n RoomUpdated,\n UpdateSpace,\n SpaceUpdated,\n PermissionOverwriteTargets,\n GetPermissionOverwriteTargets,\n Owners,\n Ok,\n GetOwners,\n CreateOwner,\n RoleDeleted,\n FollowedTopicUpdated,\n TopicFollowed,\n FollowedTopics,\n FollowTopic,\n UpdateFollowedTopic,\n GetFollowedTopics,\n Messages,\n GetMessages,\n Topics,\n GetTopics,\n TopicUpdated,\n UpdateTopic,\n GetDiscoverableSpaces,\n DiscoverableSpaces,\n CreateEmoticon,\n DeleteEmoticon,\n GetEmoticons,\n Emoticons,\n EmoticonDeleted,\n NewEmoticon,\n Bans,\n GetBans,\n Ban,\n Unban,\n Kick,\n ClientData,\n GetClientData,\n SetClientData,\n GetRoomSummary,\n GetSpaceSummary,\n RoomSummaryEvent,\n SpaceSummaryEvent,\n UpdateSpaceMember,\n Relationships,\n RelationshipDeleted,\n NewRelationship,\n DeleteRelationship,\n CreateRelationship,\n RoomSummaryUpdated,\n Pong,\n Ping,\n RedactMessages,\n MessagesRedacted,\n ReportAbuse,\n UpdateRoomMember,\n GetRelationships,\n GetUserInfo,\n UserInfo, SetSessionData,\n} from \"./types/src\";\nimport {EventTarget} from \"./EventTarget\";\n\ntype ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];\ntype ExtraEventMap = Record<string, any>;\n\ntype CommandDefinition<RequestT, ResponseT> = {\n request: RequestT;\n response: ResponseT;\n};\n\nexport abstract class AbstractChatClient<AdditionalEvents extends ExtraEventMap = {}> extends EventTarget<EventsMap & AdditionalEvents> {\n protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();\n protected sentCounter: number = 0;\n\n public abstract send<CommandType extends keyof CommandsMap>\n (commandType: CommandType, commandData: CommandRequest<CommandType>): Promise<CommandResult<CommandResponse<CommandType>>>;\n\n protected createEnvelope<CommandT>(type: string, data: CommandT): Envelope<CommandT> {\n return {\n type, data, ref: (++this.sentCounter).toString()\n };\n }\n\n protected createPromiseFromCommandEnvelope\n <CommandT extends keyof CommandsMap>(envelope: Envelope<CommandRequest<CommandT>>):\n Promise<CommandResult<CommandResponse<CommandT>>> {\n return new Promise((...args) =>\n this.awaitingResponse.set(envelope.ref as string, args));\n }\n\n protected handleIncomingEnvelope(envelope: Envelope): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n const isError = envelope.type === 'Error';\n this.awaitingResponse.get(envelope.ref)[0]({\n data: isError ? null : envelope.data,\n error: isError ? envelope.data : null,\n } as CommandResult<any>);\n this.awaitingResponse.delete(envelope.ref);\n }\n\n protected handleEnvelopeSendError(envelope: Envelope, error: any): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n this.awaitingResponse.get(envelope.ref)[1](error);\n this.awaitingResponse.delete(envelope.ref);\n }\n}\n\nexport type CommandResult<ResultT> = {data?: ResultT, error?: ErrorType};\nexport type CommandRequest<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['request'];\nexport type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['response'];\n\n /**\n * Map of incoming events.\n */\n export type EventsMap = {\n // General Events\n Bye: Bye,\n Ok: Ok,\n Error: ErrorType,\n Session: Session,\n Permissions: Permissions,\n PermissionOverwrites: PermissionOverwrites,\n PermissionOverwritesUpdated: PermissionOverwritesUpdated,\n PermissionOverwriteTargets: PermissionOverwriteTargets,\n Owners: Owners,\n NewEmoticon: NewEmoticon,\n EmoticonDeleted: EmoticonDeleted,\n Emoticons: Emoticons,\n Bans: Bans,\n ClientData: ClientData,\n NewRelationship: NewRelationship,\n RelationshipDeleted: RelationshipDeleted,\n Relationships: Relationships,\n Pong: Pong,\n UserInfo: UserInfo,\n // Space events\n DiscoverableSpaces: DiscoverableSpaces,\n SpaceJoined: SpaceJoined,\n SpaceLeft: SpaceLeft,\n SpaceMemberJoined: SpaceMemberJoined,\n SpaceMemberLeft: SpaceMemberLeft,\n SpaceMemberUpdated: SpaceMemberUpdated,\n SpaceUpdated: SpaceUpdated,\n SpaceDeleted: SpaceDeleted,\n SpaceMembers: SpaceMembers,\n SpaceRooms: SpaceRooms,\n NewRole: NewRole,\n RoleDeleted: RoleDeleted,\n RoleUpdated: RoleUpdated,\n SpaceSummaryEvent: SpaceSummaryEvent,\n // Room events\n RoomJoined: RoomJoined,\n RoomLeft: RoomLeft,\n RoomMemberJoined: RoomMemberJoined,\n RoomMemberLeft: RoomMemberLeft,\n RoomMemberUpdated: RoomMemberUpdated,\n RoomMembers: RoomMembers,\n NewRoom: NewRoom,\n RoomDeleted: RoomDeleted,\n RoomUpdated: RoomUpdated,\n RoomSummaryEvent: RoomSummaryEvent,\n RoomSummaryUpdated: RoomSummaryUpdated,\n // Topic events\n NewTopic: NewTopic,\n TopicDeleted: TopicDeleted,\n NewMessage: NewMessage,\n UserUpdated: UserUpdated,\n TopicFollowed: TopicFollowed,\n FollowedTopics: FollowedTopics,\n FollowedTopicUpdated: FollowedTopicUpdated,\n Messages: Messages,\n Topics: Topics,\n TopicUpdated: TopicUpdated,\n MessagesRedacted: MessagesRedacted,\n};\n\n/**\n * Map of commands and their corresponding events.\n */\nexport type CommandsMap = {\n // General commands\n GetSession: CommandDefinition<GetSession, EventsMap['Session']>,\n SetPermissionOverwrites: CommandDefinition<SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']>,\n GetPermissionOverwrites: CommandDefinition<GetPermissionOverwrites, EventsMap['PermissionOverwrites']>,\n GetComputedPermissions: CommandDefinition<GetComputedPermissions, EventsMap['Permissions']>,\n GetPermissionOverwriteTargets: CommandDefinition<GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']>,\n GetOwners: CommandDefinition<GetOwners, EventsMap['Owners']>,\n CreateOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n DeleteOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n CreateEmoticon: CommandDefinition<CreateEmoticon, EventsMap['NewEmoticon']>,\n DeleteEmoticon: CommandDefinition<DeleteEmoticon, EventsMap['EmoticonDeleted']>,\n GetEmoticons: CommandDefinition<GetEmoticons, EventsMap['Emoticons']>,\n GetBans: CommandDefinition<GetBans, EventsMap['Bans']>,\n Ban: CommandDefinition<Ban, EventsMap['Ok']>,\n Unban: CommandDefinition<Unban, EventsMap['Ok']>,\n Kick: CommandDefinition<Kick, EventsMap['Ok']>,\n GetClientData: CommandDefinition<GetClientData, EventsMap['ClientData']>,\n SetClientData: CommandDefinition<SetClientData, EventsMap['Ok']>,\n DeleteRelationship: CommandDefinition<DeleteRelationship, EventsMap['RelationshipDeleted']>,\n CreateRelationship: CommandDefinition<CreateRelationship, EventsMap['NewRelationship']>,\n GetRelationships: CommandDefinition<GetRelationships, EventsMap['Relationships']>,\n Ping: CommandDefinition<Ping, EventsMap['Pong']>,\n ReportAbuse: CommandDefinition<ReportAbuse, EventsMap['Ok']>,\n GetUserInfo: CommandDefinition<GetUserInfo, EventsMap['UserInfo']>,\n SetSessionData: CommandDefinition<SetSessionData, EventsMap['Ok']>,\n // Space commands\n GetDiscoverableSpaces: CommandDefinition<GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']>,\n JoinSpace: CommandDefinition<JoinSpace, EventsMap['SpaceJoined']>,\n LeaveSpace: CommandDefinition<LeaveSpace, EventsMap['SpaceLeft']>,\n CreateSpace: CommandDefinition<CreateSpace, EventsMap['SpaceJoined']>,\n UpdateSpace: CommandDefinition<UpdateSpace, EventsMap['SpaceUpdated']>,\n DeleteSpace: CommandDefinition<DeleteSpace, EventsMap['SpaceDeleted']>,\n GetSpaceMembers: CommandDefinition<GetSpaceMembers, EventsMap['SpaceMembers']>,\n GetSpaceRooms: CommandDefinition<GetSpaceRooms, EventsMap['SpaceRooms']>,\n CreateRole: CommandDefinition<CreateRole, EventsMap['NewRole']>,\n DeleteRole: CommandDefinition<DeleteRole, EventsMap['RoleDeleted']>,\n UpdateRole: CommandDefinition<UpdateRole, EventsMap['RoleUpdated']>,\n AssignRole: CommandDefinition<AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n DeassignRole: CommandDefinition<DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n GetSpaceSummary: CommandDefinition<GetSpaceSummary, EventsMap['SpaceSummaryEvent']>,\n UpdateSpaceMember: CommandDefinition<UpdateSpaceMember, EventsMap['SpaceMemberUpdated']>,\n // Room commands\n JoinRoom: CommandDefinition<JoinRoom, EventsMap['RoomJoined']>,\n LeaveRoom: CommandDefinition<LeaveRoom, EventsMap['RoomLeft']>,\n CreateRoom: CommandDefinition<CreateRoom, EventsMap['RoomJoined']>,\n DeleteRoom: CommandDefinition<DeleteRoom, EventsMap['RoomDeleted']>,\n UpdateRoom: CommandDefinition<UpdateRoom, EventsMap['RoomUpdated']>,\n GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>,\n GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>,\n UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>,\n // Topic commands\n CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>,\n DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>,\n CreateMessage: CommandDefinition<CreateMessage, EventsMap['NewMessage']>,\n Ack: CommandDefinition<Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']>,\n FollowTopic: CommandDefinition<FollowTopic, EventsMap['TopicFollowed']>,\n UpdateFollowedTopic: CommandDefinition<UpdateFollowedTopic, EventsMap['FollowedTopicUpdated']>,\n GetFollowedTopics: CommandDefinition<GetFollowedTopics, EventsMap['FollowedTopics']>,\n GetMessages: CommandDefinition<GetMessages, EventsMap['Messages']>,\n GetTopics: CommandDefinition<GetTopics, EventsMap['Topics']>,\n UpdateTopic: CommandDefinition<UpdateTopic, EventsMap['TopicUpdated']>,\n RedactMessages: CommandDefinition<RedactMessages, EventsMap['MessagesRedacted']>,\n }\n","import {EventHandler, EventTarget, ObservableInterface} from \"./EventTarget\";\n\nexport class IndexedCollection<KeyT, ValueT> {\n protected _items: Map<KeyT, ValueT> = new Map();\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n this.set(...items);\n }\n\n public get items(): Map<KeyT, ValueT> {\n return this._items;\n }\n\n public get length(): number {\n return this._items.size;\n }\n\n public set(...items: [KeyT, ValueT][]): void {\n for (const item of items) {\n this._items.set(item[0], item[1]);\n }\n }\n\n public get(id: KeyT): ValueT | undefined {\n return this.items.get(id);\n }\n\n public has(id: KeyT): boolean {\n return this.items.has(id);\n }\n\n public delete(...ids: KeyT[]): void {\n for (const id of ids) {\n this.items.delete(id);\n }\n }\n\n public deleteAll(): void {\n this.items.clear();\n }\n\n public findBy(field: keyof ValueT, valueToFind: any, limit: number = null): IndexedCollection<KeyT, ValueT> {\n const result = new IndexedCollection<KeyT, ValueT>();\n let item;\n while (!(item = this.items.entries().next().value).done) {\n if (limit && result.length === limit) {\n break;\n }\n if (item[1][field] === valueToFind) {\n result.set(item);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedCollection<KeyT, ValueT> {\n const copy = new IndexedCollection<KeyT, ValueT>();\n copy._items = this._items;\n return copy;\n }\n}\n\nexport class IndexedObjectCollection<T> {\n protected _items: IndexedCollection<string, T>;\n\n public constructor(\n public readonly id: keyof T | ((item: T) => any),\n items: T[] = [],\n ) {\n this._items = new IndexedCollection<string, T>();\n this.set(...items);\n }\n\n public get items(): T[] {\n return Array.from(this._items.items.values());\n }\n\n public get length(): number {\n return this._items.length;\n }\n\n public set(...items: T[]): void {\n this._items.set(...(items.map(item => [this.getId(item), item] as [string, T])));\n }\n\n public get(id: any): T | undefined {\n return this._items.get(id);\n }\n\n public getAt(index: number): T | undefined {\n return this.items[index];\n }\n\n public has(id: any): boolean {\n return this._items.has(id);\n }\n\n public delete(...ids: any[]): void {\n this._items.delete(...ids);\n }\n\n public deleteAll(): void {\n this._items.deleteAll();\n }\n\n public findBy(field: keyof T, valueToFind: any, limit: number = null): IndexedObjectCollection<T> {\n const result = new IndexedObjectCollection<T>(this.id);\n for (const value of this.items) {\n if (limit && result.length === limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set(value);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedObjectCollection<T> {\n const copy = new IndexedObjectCollection<T>(this.id);\n copy._items = this._items;\n return copy;\n }\n\n protected getId(item: T): any {\n return typeof this.id === 'function' ? this.id(item) : item[this.id];\n }\n}\n\nexport type CollectionEventMap<IdType = string> = {\n change: { setItems?: IdType[]; deletedItems?: IdType[] };\n};\n\nexport class ObservableIndexedCollection<\n KeyT,\n ValueT,\n EventMapT extends CollectionEventMap<KeyT> = CollectionEventMap<KeyT>\n> extends IndexedCollection<KeyT, ValueT> implements ObservableInterface<EventMapT> {\n\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n super();\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: [KeyT, ValueT][]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => item[0]) });\n }\n }\n\n public delete(...ids: KeyT[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = Array.from(this._items.keys());\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: Array.from(ids) });\n }\n }\n\n public createMirror(): ObservableIndexedCollection<KeyT, ValueT, EventMapT> {\n const copy = new ObservableIndexedCollection<KeyT, ValueT, EventMapT>();\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}\n\nexport class ObservableIndexedObjectCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends IndexedObjectCollection<ItemT> implements ObservableInterface<EventMapT> {\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(\n id: keyof ItemT | ((item: ItemT) => string),\n items: ItemT[] = [],\n ) {\n super(id);\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: ItemT[]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => this.getId(item)) });\n }\n }\n\n public delete(...ids: string[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = this.items.map(item => this.getId(item));\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public createMirror(): ObservableIndexedObjectCollection<ItemT, EventMapT> {\n const copy = new ObservableIndexedObjectCollection<ItemT, EventMapT>(this.id);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}","import {IndexedCollection} from \"../IndexedObjectCollection\";\r\n\r\nexport class DeferredTask {\r\n public readonly promise: Promise<void>;\r\n public resolve: () => void;\r\n\r\n public constructor() {\r\n this.promise = new Promise<void>((resolve) => this.resolve = resolve);\r\n }\r\n}\r\n\r\nexport class PromiseRegistry {\r\n private promises = new IndexedCollection<string, Promise<any>>();\r\n\r\n public register<T = any>(promise: Promise<T>, key: string): void {\r\n this.promises.set([key, promise]);\r\n }\r\n\r\n public registerByFunction(fn: () => Promise<any>, key: string): void {\r\n this.register(fn(), key);\r\n }\r\n\r\n public get<T = any>(key: string): Promise<T> | undefined {\r\n return this.promises.get(key);\r\n }\r\n\r\n public has(key: string): boolean {\r\n return this.promises.has(key);\r\n }\r\n\r\n public notExist(key: string): boolean {\r\n return ! this.has(key);\r\n }\r\n\r\n public forget(...keys: string[]): void {\r\n this.promises.delete(...keys);\r\n }\r\n\r\n public forgetAll(): void {\r\n this.promises.deleteAll();\r\n }\r\n}","import {Message, MessagesRedacted, NewMessage, Topic} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {CollectionEventMap, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\n\nexport enum WindowState {\n /**\n * The latest messages (those received live) are available in the history window, history has not been fetched.\n */\n LIVE,\n\n /**\n * The latest messages has been fetched and are available in the history window.\n */\n LATEST,\n\n /**\n * The historical messages have been fetched and are available in the history window.\n * Latest messages are not available and will not be available.\n */\n PAST,\n\n /**\n * The oldest messages have been fetched and are available in the history window.\n * Next attempts to fetch previous messages will result with no-op.\n */\n OLDEST,\n}\n\nexport abstract class TraversableRemoteCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends ObservableIndexedObjectCollection<ItemT, EventMapT> {\n /**\n * Current mode od collection window. To change mode, call one of available fetch methods.\n */\n public get state(): WindowState {\n return this.internalState.current;\n }\n\n protected internalState: {\n current: WindowState,\n ongoing?: WindowState,\n limit: number | null, // Acts as High Watermark\n retainRatio: number, // Percentage of limit to keep when trimming\n fetchLimit: number,\n lastFetchCount: number,\n oldestId: string | null,\n } = {\n current: WindowState.LIVE,\n ongoing: undefined,\n limit: 1000,\n retainRatio: 1,\n fetchLimit: 50,\n lastFetchCount: 0,\n oldestId: null,\n };\n\n /**\n * Number of items to fetch per request.\n */\n public get fetchLimit(): number {\n return this.internalState.fetchLimit;\n }\n\n /**\n * Sets number of items to fetch per request.\n */\n public set fetchLimit(value: number) {\n this.internalState.fetchLimit = value;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public get limit(): number | null {\n return this.internalState.limit;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public set limit(value: number | null) {\n this.internalState.limit = value;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public get retainRatio(): number {\n return this.internalState.retainRatio;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public set retainRatio(value: number) {\n this.internalState.retainRatio = value;\n }\n\n public get hasLatest(): boolean {\n return [WindowState.LATEST, WindowState.LIVE].includes(this.state);\n }\n\n public get hasOldest(): boolean {\n return this.state === WindowState.OLDEST\n || this.state === WindowState.LATEST && this.length < this.fetchLimit\n || this.internalState.oldestId !== null && this.has(this.internalState.oldestId);\n }\n\n public abstract createMirror(): TraversableRemoteCollection<ItemT, EventMapT>;\n\n public async resetToLatest(): Promise<void> {\n if (this.internalState.ongoing || this.internalState.current === WindowState.LATEST) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.LATEST;\n\n try {\n result = await this.fetchLatestItems();\n this.internalState.lastFetchCount = result.length;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.LATEST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.ongoing || this.hasOldest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsBefore();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n return this.resetToLatest();\n }\n\n if (! result.length) {\n const firstItem = this.getAt(0);\n this.internalState.oldestId = firstItem ? this.getId(firstItem) : null;\n\n await this.refreshFetchedState();\n\n // LATEST state has priority over OLDEST\n if (this.internalState.current === WindowState.PAST) {\n this.internalState.current = WindowState.OLDEST;\n }\n\n this.emitChangeWithDiff(false, originalState);\n return;\n }\n\n this.addItems(result, 'head');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.ongoing || this.hasLatest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAfter();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n await this.resetToLatest();\n return;\n }\n\n if (result.length) {\n this.addItems(result, 'tail');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n return;\n }\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.ongoing || this._items.has(id)) {\n return;\n }\n\n let result: ItemT[] | null;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAround(id);\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (!result) {\n return;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.PAST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n protected abstract fetchLatestItems(): Promise<ItemT[]>;\n\n protected abstract fetchItemsBefore(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAfter(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAround(id: string): Promise<ItemT[] | null>;\n\n protected abstract isLatestItemLoaded(): Promise<boolean>;\n\n protected async refreshFetchedState(): Promise<void> {\n this.internalState.current = (await this.isLatestItemLoaded()) ? WindowState.LATEST : WindowState.PAST;\n }\n\n protected addItems(newItems: ItemT[], to: 'head' | 'tail'): void {\n let result;\n\n if (to === 'head') {\n result = this.trimItemsArrayToLimit([...newItems, ...this.items], 'tail');\n }\n\n if (to === 'tail') {\n result = this.trimItemsArrayToLimit([...this.items, ...newItems], 'head');\n }\n\n // Directly calls to prevent event emit.\n this._items.deleteAll();\n this._items.set(...(result.map(item => [this.getId(item), item] as [string, ItemT])));\n }\n\n protected emitChangeWithDiff(itemChanged: boolean, originalState: WindowState): void {\n if (itemChanged || originalState !== this.state) {\n this.eventTarget.emit('change', { setItems: Array.from(this._items.items.keys()) })\n }\n }\n\n /**\n * Return array with messages trimmed using High/Low Watermark strategy.\n */\n private trimItemsArrayToLimit(items: ItemT[], from: 'head' | 'tail'): ItemT[] {\n const highWatermark = this.limit;\n\n if (highWatermark === null || items.length <= highWatermark) {\n return items;\n }\n\n const lowWatermark = Math.floor(highWatermark * this.internalState.retainRatio);\n\n if (from === 'head') {\n return items.slice(-lowWatermark);\n }\n\n if (from === 'tail') {\n return items.slice(0, lowWatermark);\n }\n\n return items;\n }\n}\n\nexport type TopicHistoryWindowEventMap = CollectionEventMap & {\n reftopicsdeleted: string[];\n};\n\nexport class TopicHistoryWindow extends TraversableRemoteCollection<\n Message,\n TopicHistoryWindowEventMap\n> {\n /**\n * Reexported available window modes enum.\n */\n public readonly WindowState: typeof WindowState = WindowState;\n\n declare protected internalState: typeof TraversableRemoteCollection<Message>['prototype']['internalState'] & {\n traverseLock: boolean,\n };\n\n public constructor(\n private roomId: string,\n private topicId: string,\n private tracker: ChatStateTracker,\n bindEvents: boolean = true,\n ) {\n super('id');\n\n this.internalState.traverseLock = false;\n\n if (bindEvents) {\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n }\n }\n\n public createMirror(): TopicHistoryWindow {\n const copy = new TopicHistoryWindow(this.roomId, this.topicId, this.tracker, false);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n copy.internalState = this.internalState;\n return copy;\n }\n\n public get isTraverseLocked(): boolean {\n return this.internalState.traverseLock;\n }\n\n public async setTraverseLock(lock: boolean): Promise<void> {\n this.internalState.traverseLock = lock;\n\n if (lock && (this.state !== WindowState.LIVE && this.state !== WindowState.LATEST)) {\n await super.resetToLatest();\n }\n }\n\n public async resetToLatest(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.resetToLatest();\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchNext();\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchPrevious();\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.jumpTo(id);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public _updateMessageReference(refTopic: Topic): void {\n const refMessage = this.get(refTopic.refMessage.id);\n\n if (refMessage) {\n // Update referenced topic ID in message\n this.set({...refMessage, topicRef: refTopic.id});\n }\n }\n\n protected async fetchItemsAfter(): Promise<Message[] | null> {\n const afterId = this.getAt(this.length - 1)?.id;\n\n if (! afterId) {\n // If there is no message to refer, fetch latest\n return null;\n }\n\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n after: afterId,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchItemsAround(id: string): Promise<Message[] | null> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n around: id,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchItemsBefore(): Promise<Message[] | null> {\n const beforeId = this.getAt(0)?.id;\n\n if (! beforeId) {\n // If there is no message to refer, fetch latest\n return null;\n }\n\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n before: beforeId,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchLatestItems(): Promise<Message[]> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n private async getTopic(): Promise<Topic | undefined> {\n return (await this.tracker.rooms.getTopics(this.roomId, [this.topicId])).get(this.topicId);\n }\n\n private async getLatestMessageId(): Promise<string | undefined> {\n return (await this.getTopic())?.lastMessage?.id;\n }\n\n protected async isLatestItemLoaded(): Promise<boolean> {\n const lastMessageId = await this.getLatestMessageId();\n return lastMessageId ? this.has(lastMessageId) : true;\n }\n\n private async handleNewMessage(ev: NewMessage): Promise<void> {\n if (\n [WindowState.LATEST, WindowState.LIVE].includes(this.state)\n && ev.message.location.roomId === this.roomId\n && ev.message.location.topicId === this.topicId\n ) {\n const originalState = this.state;\n this.addItems([ev.message], 'tail');\n this.emitChangeWithDiff(true, originalState);\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n if (ev.location.topicId !== this.topicId || ev.location.roomId !== this.roomId) {\n return;\n }\n\n const refTopicIds = this.items\n .filter(msg => msg.topicRef && ev.ids.includes(msg.id))\n .map(msg => msg.topicRef as string);\n\n this.delete(...ev.ids);\n\n if (this.length === 0) {\n await this.resetToLatest();\n }\n\n if (refTopicIds.length > 0) {\n this.eventTarget.emit('reftopicsdeleted', refTopicIds);\n }\n }\n}\n","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {NewTopic, Room, RoomUpdated, Topic, TopicDeleted} from \"../types/src\";\nimport {IndexedCollection,} from \"../IndexedObjectCollection\";\nimport {TopicHistoryWindow} from \"./TopicHistoryWindow\";\n\nexport class RoomMessagesHistory {\n private historyWindows = new IndexedCollection<string, TopicHistoryWindow>();\n private traverseLock: boolean = false;\n\n public constructor(\n private room: Room,\n private tracker: ChatStateTracker,\n ) {\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n\n this.updateTraverseLock(this.room);\n\n if (this.room.defaultTopic) {\n this.createHistoryWindowForTopic(this.room.defaultTopic);\n }\n }\n\n /**\n * Returns a history window object for the given topic ID, allowing you to view message history.\n * @param topicId\n * @param peek If true, do not create a cache for this topic and do not allow it to collect new messages.\n */\n public async getMessagesWindow(topicId: string, peek: boolean = false): Promise<TopicHistoryWindow | undefined> {\n if (!this.historyWindows.has(topicId) && !peek) {\n const topic = (await this.tracker.rooms.getTopics(this.room.id, [topicId])).get(topicId);\n\n if (topic) {\n this.createHistoryWindowForTopic(topic);\n }\n }\n\n return this.historyWindows.get(topicId);\n }\n\n private async handleRoomUpdated(ev: RoomUpdated): Promise<void> {\n if (this.room.id === ev.room.id) {\n this.room = ev.room;\n\n this.updateTraverseLock(ev.room);\n\n if (ev.room.defaultTopic) {\n this.createHistoryWindowForTopic(ev.room.defaultTopic);\n }\n\n for (const [, window] of Array.from(this.historyWindows.items)) {\n await window.setTraverseLock(this.traverseLock);\n }\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n if (this.room.id === ev.roomId) {\n this.createHistoryWindowForTopic(ev.topic);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n if (this.room.id === ev.location.roomId) {\n this.historyWindows.delete(ev.location.topicId);\n }\n }\n\n private createHistoryWindowForTopic(topic: Topic): void {\n if (this.historyWindows.has(topic.id)) {\n return;\n }\n\n const historyWindow = new TopicHistoryWindow(this.room.id, topic.id, this.tracker);\n\n void historyWindow.setTraverseLock(this.traverseLock);\n\n this.historyWindows.set([topic.id, historyWindow]);\n\n // Current behavior of deletion a message with referenced topic is to delete the whole side topic\n // So we need to listen for topic deletions here\n historyWindow.on('reftopicsdeleted', (deletedTopicIds: string[]) => {\n for (const topicId of deletedTopicIds) {\n this.historyWindows.delete(topicId);\n }\n this.tracker.rooms._deleteTopicsFromRoom(this.room.id, ...deletedTopicIds);\n });\n\n // If new topic refers to some message from this room, update other structures\n if (topic.refMessage) {\n const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);\n refHistoryWindow?._updateMessageReference(topic);\n }\n }\n\n private updateTraverseLock(room: Room): void {\n this.traverseLock = room.history.mode === 'Ephemeral';\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n NewMessage,\n FollowedTopic,\n TopicFollowed,\n RoomDeleted,\n RoomLeft,\n TopicDeleted,\n FollowedTopicUpdated,\n RoomJoined,\n NewTopic,\n Session,\n Room,\n Message, ChatLocation,\n} from \"../types/src\";\nimport {\n IndexedCollection,\n ObservableIndexedObjectCollection\n} from \"../IndexedObjectCollection\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\n\nexport class MessagesManager {\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\n private readonly followedTopicsPromises = new PromiseRegistry();\n private readonly deferredSession = new DeferredTask();\n private readonly unreadSummariesCache = new Map<string, { mentionCount: number, isUnread: boolean }>();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));\n this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n }\n\n /**\n * Get history manager for given room ID.\n */\n public async getRoomHistory(roomId: string): Promise<RoomMessagesHistory | undefined> {\n await this.deferredSession.promise;\n return this.roomHistories.get(roomId);\n }\n\n /**\n * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.\n * Then you can get them using getRoomFollowedTopics().\n * @see getRoomFollowedTopics\n */\n public async cacheSpaceFollowedTopics(spaceId: string | null): Promise<void> {\n if (spaceId && ! (await this.tracker.spaces.get()).has(spaceId)) {\n throw new Error(`You are not in space ${spaceId}`);\n }\n\n const rooms = await this.tracker.rooms.get();\n const roomIds = spaceId\n ? rooms.findBy('spaceId', spaceId).items.map(r => r.id)\n : rooms.items.filter(r => !r.spaceId).map(r => r.id);\n\n if (!roomIds.length) {\n return;\n }\n\n const isAlreadyCached = roomIds.every(roomId => this.followedTopics.has(roomId));\n if (isAlreadyCached) {\n return;\n }\n\n const spaceRegistryKey = `space_fetch_${spaceId || 'spaceless'}`;\n\n if (this.followedTopicsPromises.notExist(spaceRegistryKey)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\n if (result.error) throw result.error;\n\n this.setFollowedTopicsArray(roomIds, result.data.followedTopics);\n }, spaceRegistryKey);\n }\n\n await this.followedTopicsPromises.get(spaceRegistryKey);\n }\n\n /**\n * Get followed topics for the given room.\n * @return Undefined if you are not in the room, collection otherwise.\n */\n public async getRoomFollowedTopics(roomId: string): Promise<ObservableIndexedObjectCollection<FollowedTopic> | undefined> {\n if (! (await this.tracker.rooms.get()).has(roomId)) {\n return undefined;\n }\n\n if (! this.followedTopics.has(roomId)) {\n if (this.followedTopicsPromises.notExist(roomId)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {roomId}});\n\n if (result.error) {\n throw result.error;\n }\n\n this.setFollowedTopicsArray([roomId], result.data.followedTopics);\n }, roomId);\n }\n\n await this.followedTopicsPromises.get(roomId);\n }\n\n return this.followedTopics.get(roomId);\n }\n\n /**\n * Batch acknowledge all messages for given room.\n */\n public async ackRoom(roomId: string): Promise<void> {\n const collection = await this.getRoomFollowedTopics(roomId);\n\n if (! collection) {\n return;\n }\n\n for (const followedTopic of collection.items) {\n if (followedTopic.isUnread) {\n await this.tracker.client.send('Ack', {location: followedTopic.location});\n }\n }\n }\n\n /**\n * Calculate missed messages with mentions from any topic in given room.\n * @return Undefined if you are not in room.\n */\n public async summarizeUnreadMessages(location: ChatLocation): Promise<{ mentionCount: number, isUnread: boolean }> {\n const cacheKey = location.topicId\n ? `topic:${location.roomId}:${location.topicId}`\n : location.roomId\n ? `room:${location.roomId}`\n : location.spaceId\n ? `space:${location.spaceId}`\n : 'spaceless';\n\n if (this.unreadSummariesCache.has(cacheKey)) {\n return this.unreadSummariesCache.get(cacheKey)!;\n }\n\n let roomIds: string[] = [];\n let targetTopicId: string | undefined;\n const rooms = await this.tracker.rooms.get();\n\n if (location.topicId) {\n if (!location.roomId) {\n throw new Error(\"roomId is required when querying by topicId\");\n }\n roomIds = [location.roomId];\n targetTopicId = location.topicId;\n } else if (location.roomId) {\n roomIds = [location.roomId];\n } else if (location.spaceId) {\n await this.cacheSpaceFollowedTopics(location.spaceId);\n roomIds = rooms.findBy('spaceId', location.spaceId).items.map(r => r.id);\n } else {\n await this.cacheSpaceFollowedTopics(null);\n roomIds = rooms.items.filter(r => !r.spaceId).map(r => r.id);\n }\n\n let mentionCount = 0;\n let isUnread = false;\n\n for (const roomId of roomIds) {\n const collection = await this.getRoomFollowedTopics(roomId);\n\n if (!collection) {\n continue;\n }\n\n for (const topic of collection.items) {\n if (targetTopicId && topic.location.topicId !== targetTopicId) {\n continue;\n }\n\n if (topic.isUnread) {\n isUnread = true;\n }\n\n mentionCount += (topic.mentionCount ?? 0);\n }\n }\n\n const result = { mentionCount, isUnread };\n this.unreadSummariesCache.set(cacheKey, result);\n\n return result;\n }\n\n /**\n * For internal use. If you want to delete the message, execute a proper command on client object.\n * @internal\n */\n public _deleteByTopicIds(roomId: string, ...topicIds: string[]): void {\n this.followedTopics.get(roomId)?.delete(...topicIds);\n topicIds.forEach(topicId => this.invalidateUnreadSummaries(roomId, topicId));\n }\n\n /**\n * For internal use.\n * @internal\n */\n public async _resolveLastMessage(location: ChatLocation): Promise<Message|null> {\n // Try to get last message from history window (if cached)\n let message: Message = await this.getRoomHistory(location.roomId)\n .then(roomHistory => roomHistory?.getMessagesWindow(location.topicId, true))\n .then(\n historyWindow =>\n historyWindow?.hasLatest && historyWindow.getAt(historyWindow.length - 1)\n );\n\n if (!message) {\n const result = await this.tracker.client.send('GetMessages', {\n location,\n limit: 1,\n });\n message = result.data?.messages[0];\n }\n\n return message || null;\n }\n\n /**\n * Wyczyść cache celowo, tylko dla lokalizacji których dotyczy zmiana.\n */\n private invalidateUnreadSummaries(roomId?: string, topicId?: string): void {\n if (!roomId) {\n this.unreadSummariesCache.clear();\n return;\n }\n\n this.unreadSummariesCache.delete(`room:${roomId}`);\n\n if (topicId) {\n this.unreadSummariesCache.delete(`topic:${roomId}:${topicId}`);\n } else {\n for (const key of this.unreadSummariesCache.keys()) {\n if (key.startsWith(`topic:${roomId}:`)) {\n this.unreadSummariesCache.delete(key);\n }\n }\n }\n\n for (const key of this.unreadSummariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.unreadSummariesCache.delete(key);\n }\n }\n }\n\n private invalidateUnreadSummariesForRooms(roomIds: string[]): void {\n const roomIdsSet = new Set(roomIds);\n roomIds.forEach(roomId => {\n this.unreadSummariesCache.delete(`room:${roomId}`);\n });\n\n for (const key of this.unreadSummariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.unreadSummariesCache.delete(key);\n continue;\n }\n if (key.startsWith('topic:')) {\n const parts = key.split(':');\n if (parts.length >= 2 && roomIdsSet.has(parts[1])) {\n this.unreadSummariesCache.delete(key);\n }\n }\n }\n }\n\n private createHistoryForNewRoom(room: Room): void {\n this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);\n }\n\n private handleNewMessage(ev: NewMessage): void {\n void this.updateLocallyFollowedTopicOnNewMessage(ev);\n }\n\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicFollowed(ev: TopicFollowed): void {\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.roomHistories.delete(ev.id);\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.createHistoryForNewRoom(ev.room)\n this.clearRoomFollowedTopicsStructures(ev.room.id);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.roomHistories.delete(ev.id);\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private async handleNewTopic(ev: NewTopic): Promise<void> {\n if (this.followedTopics.has(ev.roomId)) {\n // Check if the new topic is followed by user\n // only if client asked for followed topics list before for this room\n const result = await this.tracker.client.send(\n 'GetFollowedTopics',\n {location: {roomId: ev.roomId, topicId: ev.topic.id}},\n );\n const followedTopic = result.data.followedTopics[0];\n if (followedTopic) {\n this.followedTopics.get(ev.roomId).set(followedTopic);\n this.invalidateUnreadSummaries(ev.roomId, ev.topic.id);\n }\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n private handleSession(ev: Session): void {\n this.followedTopics.deleteAll();\n this.followedTopicsPromises.forgetAll();\n this.invalidateUnreadSummaries();\n this.roomHistories.deleteAll();\n ev.state.rooms.forEach(room => this.createHistoryForNewRoom(room));\n this.deferredSession.resolve();\n }\n\n private async updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): Promise<void> {\n const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);\n const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);\n\n if (!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral') {\n // Skip if we don't follow this room or targeted topic or the message is ephemeral\n return;\n }\n\n const isMe = ev.message.author.user.id === this.tracker.me?.id;\n\n let update: Partial<FollowedTopic>;\n\n if (isMe) {\n // Reset missed messages count if new message is authored by me\n update = {missed: 0, lastAckMessageId: ev.message.id};\n } else if (ev.message.type === 'Text') {\n // ...check for mentions if it's text message...\n const member = await this.tracker.rooms.getMe(ev.message.location.roomId);\n const roleIds = [...(member.spaceMember?.roles ?? []), ...member.roles];\n const mentionHandlers = [\n ...roleIds.map(id => `<@&${id}>`),\n `<@${ev.message.author.user.id}>`,\n ];\n const mentionExists = mentionHandlers.some(handler => ev.message.content.includes(handler));\n\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n mentionCount: followedTopic.mentionCount + (mentionExists ? 1 : 0),\n };\n } else {\n // ...or just mark as unread.\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n };\n }\n\n roomFollowedTopics.set({...followedTopic, ...update});\n this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);\n }\n\n private setFollowedTopicsArray(roomIds: string[], followedTopics: FollowedTopic[]): void {\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\n\n // Reassign followed topics to limit collection change event emit\n followedTopics.forEach(followedTopic => {\n roomToTopics[followedTopic.location.roomId] ??= [];\n roomToTopics[followedTopic.location.roomId].push(followedTopic);\n });\n\n roomIds.forEach(roomId => {\n if (! this.followedTopics.has(roomId)) {\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\n followedTopic => followedTopic.location.topicId\n )]);\n }\n\n if (roomToTopics[roomId]) {\n this.followedTopics.get(roomId).set(...roomToTopics[roomId]);\n }\n });\n\n this.invalidateUnreadSummariesForRooms(roomIds);\n }\n\n private clearRoomFollowedTopicsStructures(roomId: string): void {\n this.followedTopics.delete(roomId);\n this.followedTopicsPromises.forget(roomId);\n this.invalidateUnreadSummaries(roomId);\n }\n}","import {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n Message,\n MessagesRedacted,\n NewMessage,\n NewTopic,\n Room, RoomDeleted,\n RoomJoined, RoomLeft,\n RoomMember, RoomMemberJoined, RoomMemberLeft, RoomMembers,\n RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,\n SpaceMemberUpdated,\n Topic,\n TopicDeleted, TopicUpdated,\n UserUpdated,\n} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {MessagesManager} from \"./MessagesManager\";\n\nexport class RoomsManager {\n public readonly messages: MessagesManager;\n\n private readonly list = new ObservableIndexedObjectCollection<Room>('id');\n private readonly topics = new IndexedCollection<string, ObservableIndexedObjectCollection<Topic>>();\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomMember>>();\n private readonly deferredSession = new DeferredTask();\n private readonly membersPromises = new PromiseRegistry();\n private readonly topicsPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.messages = new MessagesManager(tracker);\n\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoined(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));\n this.tracker.client.on('RoomMemberJoined', ev => this.handleRoomMemberJoined(ev));\n this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));\n this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n /**\n * Get collection of room members.\n */\n public async getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined> {\n if (this.membersPromises.notExist(roomId)) {\n this.membersPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRoomMembers', {id: roomId});\n if (result.error) {\n throw result.error;\n }\n this.handleRoomMembers(result.data);\n }, roomId);\n }\n\n await this.membersPromises.get(roomId);\n return this.members.get(roomId);\n }\n\n /**\n * Get a room member representing the current user.\n */\n public async getMe(roomId: string): Promise<RoomMember | undefined> {\n const userId = (await this.tracker.getMe()).id;\n\n if (! this.list.has(roomId)) {\n // User is not in passed room.\n return undefined;\n }\n\n const members = await this.getMembers(roomId);\n return members?.items.find(member => (member.user?.id ?? member.spaceMember.user.id) === userId);\n }\n\n /**\n * Get collection of all the rooms you are in.\n */\n public async get(): Promise<ObservableIndexedObjectCollection<Room>> {\n await this.deferredSession.promise;\n return this.list;\n }\n\n /**\n * Get a collection of locally cached Topic objects for given room.\n * You can pass topic ids as second argument, to try to fetch them from the server.\n */\n public async getTopics(roomId: string, tryToFetchTopicIds?: string[]): Promise<ObservableIndexedObjectCollection<Topic> | undefined> {\n await this.deferredSession.promise;\n\n if (tryToFetchTopicIds?.length) {\n // Topic can be fetched if it isn't already cached and fetch is not already in progress\n const canFetch = (topicId: string) => ! this.topics.get(roomId)?.has(topicId) && ! this.topicsPromises.has(roomId + topicId);\n const idsToFetch = tryToFetchTopicIds.filter(canFetch);\n\n if (idsToFetch.length) {\n const promise = this.tracker\n .client\n .send('GetTopics', {roomId, topicIds: idsToFetch})\n .then(result => this.topics.get(result.data.location.roomId)?.set(...result.data.topics));\n\n idsToFetch.forEach(topicId => this.topicsPromises.register(promise, roomId + topicId));\n }\n\n for (const topicId of tryToFetchTopicIds) {\n await this.topicsPromises.get(roomId + topicId);\n }\n }\n\n return this.topics.get(roomId);\n }\n\n /**\n * For internal use. If you want to delete topic, execute a proper command on client object.\n * @internal\n */\n public _deleteTopicsFromRoom(roomId: string, ...topicIds: string[]): void {\n this.topics.get(roomId)?.delete(...topicIds);\n }\n\n private deleteRoom(...roomIds: string[]): void {\n this.list.delete(...roomIds);\n this.members.delete(...roomIds);\n this.membersPromises.forget(...roomIds);\n\n for (const roomId of roomIds) {\n const topicIds: string[] = this.topics.get(roomId)?.items.map(topic => topic.id) ?? [];\n this.messages._deleteByTopicIds(roomId, ...topicIds);\n }\n\n this.topics.delete(...roomIds);\n }\n\n private deleteRoomsBySpaceId(spaceId: string): void {\n this.deleteRoom(\n ...this.list.findBy('spaceId', spaceId).items.map(room => room.id)\n );\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n // Update members of rooms related to this space\n for (const room of this.list.findBy('spaceId', ev.spaceId).items) {\n const roomMembers = this.members.get(room.id);\n\n if (!roomMembers || !roomMembers.has(ev.userId)) {\n // Skip update if member list for this room is not loaded\n // or user is not in room\n continue;\n }\n\n // Update space member in roomMember, but first fill the user object (it's null in event)\n const roomMember = roomMembers.get(ev.userId);\n const spaceMember = ev.member;\n spaceMember.user = roomMember.spaceMember.user;\n roomMembers.set({ ...roomMember, spaceMember });\n }\n }\n\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\n this.list\n .findBy('spaceId', ev.spaceId).items\n .forEach(room => this.members.get(room.id)?.delete(ev.userId));\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (! this.members.has(ev.roomId)) {\n // We do not track member list for this room.\n return;\n }\n\n const members = this.members.get(ev.roomId);\n const member = members.get(ev.userId);\n const newMember = ev.member;\n const user = member.spaceMember?.user ?? member.user;\n\n // Preserving user object, because it's not included in event\n if (newMember.spaceMember) {\n newMember.spaceMember.user = user;\n } else {\n newMember.user = user;\n }\n\n members.set(newMember);\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n this.deleteRoomsBySpaceId(ev.id);\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const collection = this.topics.get(ev.location.roomId);\n collection.delete(ev.location.topicId);\n\n const room = this.list.get(ev.location.roomId);\n if (room.defaultTopic?.id === ev.location.topicId) {\n this.list.set({...room, defaultTopic: null});\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n this.addJoinedRoomTopics(ev.roomId, ev.topic);\n }\n\n private addJoinedRoomTopics(roomId: string, ...topics: Topic[]): void {\n if (this.topics.has(roomId)) {\n this.topics.get(roomId).set(...topics);\n } else {\n this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);\n }\n }\n\n private handleRoomJoined(ev: RoomJoined): void {\n this.addJoinedRooms(ev.room);\n }\n\n private handleRoomUpdated(ev: RoomUpdated): void {\n if (this.list.has(ev.room.id)) {\n this.list.set(ev.room);\n }\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.deleteRoom(ev.id);\n }\n\n private handleTopicUpdated(ev: TopicUpdated): void {\n const room = this.list.get(ev.location.roomId);\n\n if (this.topics.get(ev.location.roomId)?.has(ev.topic.id)) {\n this.topics.get(ev.location.roomId).set(ev.topic);\n }\n\n if (room.defaultTopic.id === ev.topic.id) {\n const newRoom = { ...room };\n newRoom.defaultTopic = ev.topic;\n this.list.set(newRoom);\n }\n }\n\n private addJoinedRooms(...rooms: Room[]): void {\n for (const room of rooms) {\n if (room.defaultTopic) {\n this.addJoinedRoomTopics(room.id, room.defaultTopic);\n }\n\n if (room.type === 'Pm' && room.recipients) {\n // Treat PM recipients as normal room members.\n // We are registering fake promise in `memberPromises`\n // because GetMembers are not supported for PM rooms.\n this.handleRoomMembers({\n id: room.id,\n members: room.recipients.map(user => ({\n user,\n spaceMember: null,\n roles: null,\n customColor: null,\n customNick: null,\n extras: '',\n })),\n });\n this.membersPromises.register(Promise.resolve(), room.id);\n }\n }\n this.list.set(...rooms);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.deleteRoom(ev.id);\n }\n\n private handleRoomMemberJoined(ev: RoomMemberJoined): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).set(ev.member);\n }\n }\n\n private handleRoomMemberLeft(ev: RoomMemberLeft): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).delete(ev.userId);\n }\n }\n\n private handleRoomMembers(ev: RoomMembers): void {\n if (! this.members.has(ev.id)) {\n this.members.set([\n ev.id,\n new ObservableIndexedObjectCollection(\n member => member.user?.id ?? member.spaceMember.user.id,\n ev.members,\n )\n ]);\n }\n }\n\n private handleSession(ev: Session): void {\n this.list.deleteAll();\n this.topics.deleteAll();\n this.topicsPromises.forgetAll();\n this.members.deleteAll();\n this.membersPromises.forgetAll();\n\n this.addJoinedRooms(...ev.state.rooms);\n\n this.deferredSession.resolve();\n }\n\n private handleUserUpdated(ev: UserUpdated): void {\n // Update room members users\n this.members.items.forEach((members) => {\n const member = members.get(ev.user.id);\n\n if (! member) {\n // Skip room; updated user is not here\n return;\n }\n\n const newMember: RoomMember = {...member};\n\n if (member.user) {\n newMember.user = ev.user;\n } else {\n newMember.spaceMember.user = ev.user;\n }\n\n members.set(newMember);\n });\n\n // Update recipients users\n const newRooms: Room[] = [];\n this.list.items.forEach(room => {\n if (room.recipients?.some(user => user.id === ev.user.id)) {\n room.recipients = room.recipients.map(user => user.id === ev.user.id ? ev.user : user);\n newRooms.push({...room});\n }\n });\n this.list.set(...newRooms);\n }\n\n private handleNewMessage(ev: NewMessage): void {\n const topics = this.topics.get(ev.message.location.roomId);\n const topic = topics?.get(ev.message.location.topicId);\n\n if (!topic) {\n return; // No topic found, nothing to update\n }\n\n const newTopic = {\n ...topic,\n messageCount: topic.messageCount + 1,\n lastMessage: ev.message,\n };\n\n topics.set(newTopic);\n const room = this.list.get(ev.message.location.roomId);\n\n if (room.defaultTopic?.id === ev.message.location.topicId) {\n this.list.set({ ...room, defaultTopic: newTopic });\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n // Remove redacted messages from topic and update metadata\n const topics = this.topics.get(ev.location.roomId);\n const topic = topics?.get(ev.location.topicId);\n if (topic) {\n const messageCount = Math.max(topic.messageCount - ev.ids.length, 0);\n const lastMessage: Message = messageCount > 0 ? await this.messages._resolveLastMessage(ev.location) : null;\n topics.set({ ...topic, messageCount, lastMessage } as Topic);\n }\n }\n}","import {Role, RoomMember, SpaceMember, User} from \"../types/src\";\r\n\r\nexport function reorderRolesOnPriorityUpdate(allRoles: Role[], oldRole: Role, updatedRole: Role): Role[] {\r\n // If the priority has changed, adjust the rest of roles\r\n const increased = (updatedRole.priority - oldRole.priority) > 0;\r\n const decreased = ! increased;\r\n const changedRoles: Role[] = [];\r\n\r\n allRoles.forEach(role => {\r\n if (role.id === updatedRole.id) {\r\n // Skip the updated role\r\n return;\r\n }\r\n if (increased && oldRole.priority <= role.priority) {\r\n role.priority--;\r\n changedRoles.push(role);\r\n }\r\n if (decreased && updatedRole.priority <= role.priority) {\r\n role.priority++;\r\n changedRoles.push(role);\r\n }\r\n });\r\n\r\n return changedRoles;\r\n}\r\n\r\nexport function extractUserFromMember(member: RoomMember | SpaceMember): User | null {\r\n return member.user ?? (member as RoomMember).spaceMember?.user;\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\r\nimport {\r\n NewRole,\r\n NewRoom,\r\n Role,\r\n RoleDeleted,\r\n RoleUpdated,\r\n RoomDeleted,\r\n RoomSummary,\r\n RoomSummaryUpdated,\r\n RoomUpdated,\r\n Session,\r\n Space,\r\n SpaceDeleted,\r\n SpaceJoined,\r\n SpaceLeft,\r\n SpaceMember,\r\n SpaceMemberJoined,\r\n SpaceMemberLeft,\r\n SpaceMembers,\r\n SpaceMemberUpdated,\r\n SpaceRooms,\r\n SpaceUpdated,\r\n UserUpdated\r\n} from \"../types/src\";\r\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\r\nimport {reorderRolesOnPriorityUpdate} from \"./functions\";\r\n\r\nexport class SpacesManager {\r\n private readonly list = new ObservableIndexedObjectCollection<Space>('id');\r\n private readonly roles = new IndexedCollection<string, ObservableIndexedObjectCollection<Role>>();\r\n private readonly rooms = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomSummary>>();\r\n private readonly roomIdToSpaceId = new IndexedCollection<string, string>();\r\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<SpaceMember>>();\r\n private readonly deferredSession = new DeferredTask();\r\n private readonly roomsPromises = new PromiseRegistry();\r\n private readonly membersPromises = new PromiseRegistry();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('NewRoom', ev => this.handleNewRoom(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceUpdated', ev => this.handleSpaceUpdated(ev));\r\n this.tracker.client.on('SpaceJoined', ev => this.handleSpaceJoined(ev));\r\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceMemberJoined', ev => this.handleSpaceMemberJoined(ev));\r\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\r\n this.tracker.client.on('SpaceMembers', ev => this.handleSpaceMembers(ev));\r\n this.tracker.client.on('SpaceRooms', ev => this.handleSpaceRooms(ev));\r\n this.tracker.client.on('RoomSummaryUpdated', ev => this.handleRoomSummaryUpdated(ev));\r\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\r\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\r\n this.tracker.client.on('NewRole', ev => this.handleNewRole(ev));\r\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\r\n this.tracker.client.on('RoleUpdated', ev => this.handleRoleUpdated(ev));\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n }\r\n\r\n /**\r\n * Get collection of all the spaces you are in.\r\n */\r\n public async get(): Promise<ObservableIndexedObjectCollection<Space>> {\r\n await this.deferredSession.promise;\r\n return this.list;\r\n }\r\n\r\n /**\r\n * Get collection of space roles.\r\n */\r\n public async getRoles(spaceId: string): Promise<ObservableIndexedObjectCollection<Role> | undefined> {\r\n await this.deferredSession.promise;\r\n return this.roles.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get collection of the all available rooms inside given space.\r\n */\r\n public async getRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {\r\n if (this.roomsPromises.notExist(spaceId)) {\r\n this.roomsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetSpaceRooms', {id: spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleSpaceRooms(result.data);\r\n }, spaceId);\r\n }\r\n\r\n await this.roomsPromises.get(spaceId);\r\n return this.rooms.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get collection of space members.\r\n */\r\n public async getMembers(spaceId: string): Promise<ObservableIndexedObjectCollection<SpaceMember> | undefined> {\r\n if (this.membersPromises.notExist(spaceId)) {\r\n this.membersPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetSpaceMembers', {id: spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleSpaceMembers(result.data);\r\n }, spaceId);\r\n }\r\n\r\n await this.membersPromises.get(spaceId);\r\n return this.members.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get a space member representing the current user.\r\n */\r\n public async getMe(spaceId: string): Promise<SpaceMember | undefined> {\r\n const userId = (await this.tracker.getMe()).id;\r\n\r\n if (! this.list.has(spaceId)) {\r\n // User is not in passed space.\r\n return undefined;\r\n }\r\n\r\n const members = await this.getMembers(spaceId);\r\n return members?.items.find(member => member.user.id === userId);\r\n }\r\n\r\n private handleNewRole(ev: NewRole): void {\r\n const collection = this.roles.get(ev.spaceId);\r\n collection.set(ev.role);\r\n this.list.get(ev.spaceId).roles = collection.items;\r\n }\r\n\r\n private handleNewRoom(ev: NewRoom): void {\r\n this.rooms.get(ev.spaceId)?.set(ev.summary);\r\n this.roomIdToSpaceId.set([ev.summary.id, ev.spaceId]);\r\n }\r\n\r\n private handleRoomUpdated(ev: RoomUpdated): void {\r\n if (ev.room.spaceId && this.rooms.has(ev.room.spaceId)) {\r\n const rooms = this.rooms.get(ev.room.spaceId);\r\n rooms.set({\r\n ...rooms.get(ev.room.id),\r\n name: ev.room.name,\r\n description: ev.room.description,\r\n } as RoomSummary);\r\n }\r\n }\r\n\r\n private async handleRoomDeleted(ev: RoomDeleted): Promise<void> {\r\n const spaceId = this.roomIdToSpaceId.get(ev.id);\r\n this.roomIdToSpaceId.delete(ev.id);\r\n\r\n if (! spaceId) {\r\n return;\r\n }\r\n\r\n const space = this.list.get(spaceId);\r\n let spaceChanged = false;\r\n\r\n this.rooms.get(spaceId)?.delete(ev.id);\r\n\r\n if (space.systemRoom === ev.id) {\r\n space.systemRoom = null;\r\n spaceChanged = true;\r\n }\r\n\r\n if (space.defaultRooms.includes(ev.id)) {\r\n space.defaultRooms = space.defaultRooms.filter(roomId => roomId !== ev.id);\r\n spaceChanged = true;\r\n }\r\n\r\n if (spaceChanged) {\r\n this.list.set(space);\r\n }\r\n }\r\n\r\n private handleRoleDeleted(ev: RoleDeleted): void {\r\n const collection = this.roles.get(ev.spaceId);\r\n collection.delete(ev.id);\r\n this.list.get(ev.spaceId).roles = collection.items;\r\n }\r\n\r\n private handleSpaceUpdated(ev: SpaceUpdated): void {\r\n this.list.set(ev.space);\r\n }\r\n\r\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\r\n const roomIds = this.rooms.get(ev.id)?.items.map(item => item.id) ?? [];\r\n this.roomIdToSpaceId.delete(...roomIds);\r\n\r\n this.roles.delete(ev.id);\r\n this.members.delete(ev.id);\r\n this.membersPromises.forget(ev.id);\r\n this.rooms.delete(ev.id);\r\n this.roomsPromises.forget(ev.id);\r\n this.list.delete(ev.id);\r\n }\r\n\r\n private handleSpaceJoined(ev: SpaceJoined): void {\r\n this.addJoinedSpaces(ev.space);\r\n }\r\n\r\n private addJoinedSpaces(...spaces: Space[]): void {\r\n this.roles.set(...(spaces.map(space => [\r\n space.id,\r\n new ObservableIndexedObjectCollection<Role>('id', space.roles)\r\n ]) as [string, ObservableIndexedObjectCollection<Role>][]));\r\n this.list.set(...spaces);\r\n }\r\n\r\n private handleSpaceMemberJoined(ev: SpaceMemberJoined): void {\r\n if (this.members.has(ev.spaceId)) {\r\n this.members.get(ev.spaceId).set(ev.member);\r\n }\r\n }\r\n\r\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\r\n if (this.members.has(ev.spaceId)) {\r\n this.members.get(ev.spaceId).delete(ev.userId);\r\n }\r\n }\r\n\r\n private handleSpaceMembers(ev: SpaceMembers): void {\r\n if (! this.members.has(ev.id)) {\r\n this.members.set([\r\n ev.id,\r\n new ObservableIndexedObjectCollection(member => member?.user.id, ev.members)\r\n ]);\r\n }\r\n }\r\n\r\n private handleSpaceRooms(ev: SpaceRooms): void {\r\n if (!this.rooms.has(ev.id)) {\r\n this.rooms.set([ev.id, new ObservableIndexedObjectCollection('id', ev.summaries)]);\r\n ev.summaries.forEach(summary => this.roomIdToSpaceId.set([summary.id, ev.id]));\r\n }\r\n }\r\n\r\n private async handleRoomSummaryUpdated(ev: RoomSummaryUpdated): Promise<void> {\r\n const spaceId = this.roomIdToSpaceId.get(ev.summary.id);\r\n const summariesPromise = this.roomsPromises.get(spaceId);\r\n\r\n /**\r\n * Update summary only if the list was already loaded.\r\n * RoomSummaryUpdated event has a partial summary, so we need to update the existing summary by merging it.\r\n */\r\n if (spaceId && summariesPromise) {\r\n await summariesPromise;\r\n\r\n const summaries = this.rooms.get(spaceId);\r\n const oldSummary = summaries.get(ev.summary.id);\r\n let newSummary: RoomSummary;\r\n\r\n if (oldSummary) {\r\n newSummary = {...oldSummary, ...ev.summary};\r\n } else {\r\n newSummary = ev.summary;\r\n }\r\n\r\n summaries.set(newSummary);\r\n }\r\n }\r\n\r\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\r\n if (this.members.has(ev.spaceId)) {\r\n const members = this.members.get(ev.spaceId);\r\n const member = members.get(ev.userId);\r\n members.set({...ev.member, user: member.user});\r\n }\r\n }\r\n\r\n private handleRoleUpdated(ev: RoleUpdated): void {\r\n const roles = this.roles.get(ev.spaceId);\r\n const oldRole = roles.get(ev.role.id);\r\n const newRole = ev.role;\r\n const rolesToUpdate = [newRole];\r\n\r\n if (oldRole.priority !== newRole.priority) {\r\n rolesToUpdate.push(\r\n ...reorderRolesOnPriorityUpdate(roles.items, oldRole, newRole)\r\n );\r\n }\r\n\r\n this.roles.get(ev.spaceId).set(...rolesToUpdate);\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.list.deleteAll();\r\n this.roles.deleteAll();\r\n this.rooms.deleteAll();\r\n this.roomsPromises.forgetAll();\r\n this.members.deleteAll();\r\n this.membersPromises.forgetAll();\r\n this.roomIdToSpaceId.deleteAll();\r\n\r\n this.addJoinedSpaces(...ev.state.spaces);\r\n\r\n this.deferredSession.resolve();\r\n }\r\n\r\n private handleUserUpdated(ev: UserUpdated): void {\r\n this.members.items.forEach((members) => {\r\n const member = members.get(ev.user.id);\r\n\r\n if (! member) {\r\n // Skip space; updated user is not here\r\n return;\r\n }\r\n\r\n members.set({...member, user: ev.user});\r\n });\r\n }\r\n}","export enum Layer {\n Global,\n Space,\n Room,\n Topic,\n}\n\nexport class PermissionDefinition {\n value: number;\n maxLayer: Layer;\n}\n\nexport class Permissions {\n public static readonly list = {\n Root: {value: 1 << 0, maxLayer: Layer.Room},\n CreateSpaces: {value: 1 << 1, maxLayer: Layer.Global},\n ManageSpace: {value: 1 << 2, maxLayer: Layer.Space},\n ManageRoles: {value: 1 << 3, maxLayer: Layer.Space},\n //ManageRoom: {value: 1 << 4, maxLayer: Layer.Room},\n CreateTopics: {value: 1 << 5, maxLayer: Layer.Room},\n ManageTopic: {value: 1 << 6, maxLayer: Layer.Topic},\n ManageMemberProfiles: {value: 1 << 7, maxLayer: Layer.Space},\n ManageMemberRoles: {value: 1 << 8, maxLayer: Layer.Room},\n CreateMessages: {value: 1 << 9, maxLayer: Layer.Topic},\n ManagePermissions: {value: 1 << 10, maxLayer: Layer.Topic},\n CreateRooms: {value: 1 << 11, maxLayer: Layer.Space},\n ManageRoom: {value: 1 << 12, maxLayer: Layer.Room},\n CreateEmoticons: {value: 1 << 13, maxLayer: Layer.Space},\n ManageEmoticons: {value: 1 << 14, maxLayer: Layer.Space},\n ManageBans: {value: 1 << 15, maxLayer: Layer.Room},\n Kick: {value: 1 << 16, maxLayer: Layer.Room},\n ChangeOwnNick: {value: 1 << 17, maxLayer: Layer.Space},\n ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},\n RedactMessages: {value: 1 << 19, maxLayer: Layer.Topic},\n };\n\n public static getNames(): (keyof typeof this.list)[] {\n return Object.keys(this.list) as any;\n }\n\n public static getByName(name: keyof typeof this.list): PermissionDefinition | undefined {\n return this.list[name];\n }\n\n public static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean {\n const def = this.getByName(permissionName);\n\n if (! def) {\n throw new Error(`Invalid permission name: ${permissionName}`);\n }\n\n return layer <= this.getByName(permissionName).maxLayer;\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n ChatLocation,\n PermissionOverwrites, PermissionOverwritesTarget,\n PermissionOverwritesUpdated,\n PermissionOverwritesValue,\n RoleDeleted,\n RoomDeleted,\n RoomLeft, RoomMember, RoomMemberUpdated, Session,\n SpaceDeleted,\n SpaceLeft, SpaceMember,\n SpaceMemberUpdated,\n TopicDeleted,\n} from \"../types/src\";\nimport {ChangeEventMap, EventTarget} from \"../EventTarget\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {Permissions} from \"../Permissions\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\n\nconst getOvId = (\n location: ChatLocation,\n target?: PermissionOverwritesTarget,\n) => [location.spaceId, location.roomId, location.topicId, target?.type, target?.userId, target?.roleId].filter(Boolean).join('/');\n\nconst getOvIdByObject\n = (overwrites: PermissionOverwrites | PermissionOverwritesUpdated): string => getOvId(overwrites.location, overwrites.target);\n\ninterface CheckPermissionsResult {\n /**\n * @deprecated Use `hasAll` instead.\n */\n ok: boolean;\n hasAll: boolean;\n hasAny: boolean;\n missing: string[];\n}\n\ntype PermissionsManagerEventMap = ChangeEventMap<void>;\n\nexport class PermissionsManager extends EventTarget<PermissionsManagerEventMap> {\n private readonly overwrites = new IndexedCollection<string, PermissionOverwrites>();\n private readonly overwritesPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n this.tracker.client.on('PermissionOverwrites', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('PermissionOverwritesUpdated', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n public async getOverwrites(\n location: ChatLocation,\n target: PermissionOverwritesTarget,\n ): Promise<PermissionOverwrites | undefined> {\n this.validateLocation(location);\n\n const id = getOvId(location, target);\n\n if (this.overwritesPromises.notExist(id)) {\n this.overwritesPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send(\n 'GetPermissionOverwrites',\n {location, target},\n );\n if (result.error) {\n throw result.error;\n }\n this.handlePermissionOverwrites(result.data);\n }, id);\n }\n\n await this.overwritesPromises.get(id);\n return this.overwrites.get(id);\n }\n\n public async check(\n permissionNames: (keyof typeof Permissions.list)[],\n location: ChatLocation,\n ): Promise<CheckPermissionsResult> {\n if (! permissionNames.length) {\n throw new Error('Permission names array cannot be empty');\n }\n\n const ownedPermissions = await this.calculatePermissions(location);\n const missing: string[] = [];\n\n permissionNames.forEach(name => {\n if (~ ownedPermissions & Permissions.getByName(name).value) {\n missing.push(name as string);\n }\n });\n\n return {\n ok: missing.length === 0,\n hasAll: missing.length === 0,\n hasAny: missing.length < permissionNames.length,\n missing,\n };\n }\n\n public async calculatePermissions(location: ChatLocation): Promise<number> {\n const room = location.roomId ? (await this.tracker.rooms.get()).get(location.roomId) : null;\n location = {\n spaceId: location.spaceId ?? room?.spaceId,\n roomId: location.roomId,\n topicId: location.topicId,\n };\n\n this.validateLocation(location);\n\n const userId = (await this.tracker.getMe()).id;\n const [spaceMember, roomMember] = await this.fetchMembersOrFail(location);\n const userRoles: string[] = [...(spaceMember?.roles ?? []), ...(roomMember?.roles ?? [])];\n const promises: Promise<PermissionOverwritesValue>[] = [\n // Global user overwrites\n this.getOverwrites({}, { type: 'User', userId }).then(v => v.overwrites),\n ];\n\n if (location.spaceId && (await this.tracker.spaces.get())?.has(location.spaceId)) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId};\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (room) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId, roomId: location.roomId};\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n }\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (location.topicId && (await this.tracker.rooms.getTopics(location.roomId))?.has(location.topicId)) {\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(location, userRoles));\n }\n promises.push(this.getOverwrites(location, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n return this.resolveOverwritesHierarchy(await Promise.all(promises));\n }\n\n private handlePermissionOverwrites(ev: PermissionOverwritesUpdated | PermissionOverwrites): void {\n this.overwrites.set([getOvIdByObject(ev), ev]);\n this.emit('change');\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.id}));\n this.overwritesPromises.forget(...ids);\n }\n\n private async handleRoomDeleted(ev: RoomDeleted | RoomLeft): Promise<void> {\n const room = (await this.tracker.rooms.get()).get(ev.id);\n if (room) {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: room.spaceId, roomId: room.id}));\n this.overwritesPromises.forget(...ids);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId(ev.location));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleRoleDeleted(ev: RoleDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.spaceId}, { type: 'Role', roleId: ev.id }));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in space could potentially have changed\n this.emit('change');\n }\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in room could potentially have changed\n this.emit('change');\n }\n }\n\n /**\n * @return Matched and deleted ids\n */\n private deleteOverwritesByIdPrefix(prefix: string): string[] {\n const ids: string[] = [];\n this.overwrites.items.forEach((overwrites) => {\n const id = getOvIdByObject(overwrites);\n if (id.startsWith(prefix)) {\n ids.push(id);\n this.overwrites.delete(id);\n }\n });\n return ids;\n }\n\n private async collectRoleOverwrites(\n location: ChatLocation,\n userRoles: string[],\n ): Promise<PermissionOverwritesValue> {\n const roleOverwrites = await Promise.all(userRoles.map(\n roleId => this.getOverwrites(location, { type: 'Role', roleId }),\n ));\n\n return this.resolveOverwritesFromRolesByOrder(location.spaceId, roleOverwrites);\n }\n\n private async resolveOverwritesFromRolesByOrder(\n spaceId: string,\n overwrites: PermissionOverwrites[],\n ): Promise<PermissionOverwritesValue> {\n let allows = 0, denies = 0;\n const roles = await this.tracker.spaces.getRoles(spaceId);\n const sortedOverwrites = overwrites.sort(\n (a, b) =>\n roles.get(a.target.roleId).priority - roles.get(b.target.roleId).priority\n );\n\n // Max length of bit word\n const permissionsLength = overwrites.reduce(\n (previousValue: number, currentValue: PermissionOverwrites) =>\n Math.max(\n previousValue,\n currentValue.overwrites.allow?.toString(2).length ?? 0,\n currentValue.overwrites.deny?.toString(2).length ?? 0,\n ),\n 0,\n );\n\n sortedOverwrites.forEach(overwriteEvent => {\n const overwrites = overwriteEvent.overwrites;\n const revDecDenies = overwrites.deny?.toString(2).split('').reverse().join('') ?? '';\n const revDecAllows = overwrites.allow?.toString(2).split('').reverse().join('') ?? '';\n\n for (let i = 0; i < permissionsLength; i++) {\n const deny = parseInt(revDecDenies[i] ?? '0');\n const allow = parseInt(revDecAllows[i] ?? '0');\n\n if (deny) {\n denies |= 1 << i;\n }\n\n if (allow) {\n allows |= 1 << i;\n }\n }\n });\n\n return {allow: allows, deny: denies};\n }\n\n private resolveOverwritesHierarchy(permissionOverwritesValues: PermissionOverwritesValue[]): number {\n let result = 0;\n\n for (const value of permissionOverwritesValues) {\n if (value.allow & Permissions.getByName('Root').value) {\n return this.getRootAccessValue();\n }\n\n result = (result & ~value.deny) | value.allow;\n }\n\n return result;\n }\n\n private getRootAccessValue(): number {\n let result = 0;\n\n for (const name of Permissions.getNames()) {\n result |= Permissions.getByName(name).value;\n }\n\n return result;\n }\n\n private async fetchMembersOrFail(location: ChatLocation): Promise<[SpaceMember | null, RoomMember | null]> {\n const results = await Promise.all([\n location.spaceId ? this.tracker.spaces.getMe(location.spaceId) : null,\n location.roomId ? this.tracker.rooms.getMe(location.roomId) : null,\n ]);\n\n const spaceFail = location.spaceId && ! results[0];\n const roomFail = location.roomId && ! results[1];\n\n if (spaceFail || roomFail) {\n const layer = spaceFail ? `space (${location.spaceId})` : `room (${location.roomId})`;\n throw new Error(`Attempting to calculate permissions for a ${layer} that the user does not belong to`);\n }\n\n return results;\n }\n\n private validateLocation(location: ChatLocation): void {\n if (location.topicId && ! location.roomId) {\n throw new Error('Corrupted arguments hierarchy');\n }\n }\n\n private handleSession(ev: Session): void {\n this.overwrites.deleteAll();\n this.overwritesPromises.forgetAll();\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {\r\n IndexedCollection,\r\n ObservableIndexedObjectCollection\r\n} from \"../IndexedObjectCollection\";\r\nimport {Emoticon, EmoticonDeleted, Emoticons, NewEmoticon, SpaceDeleted} from \"../types/src\";\r\nimport {PromiseRegistry} from \"./AsyncUtils\";\r\n\r\nconst GLOBAL_KEY = 'global';\r\n\r\nexport class EmoticonsManager {\r\n private list: IndexedCollection<string, ObservableIndexedObjectCollection<Emoticon>> = new IndexedCollection();\r\n private emoticonsPromises = new PromiseRegistry();\r\n \r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('Emoticons', ev => this.handleEmoticons(ev));\r\n this.tracker.client.on('NewEmoticon', ev => this.handleNewEmoticon(ev));\r\n this.tracker.client.on('EmoticonDeleted', ev => this.handleEmoticonDeleted(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('Session', () => this.handleSession());\r\n }\r\n\r\n public async get(spaceId?: string): Promise<ObservableIndexedObjectCollection<Emoticon>> {\r\n const key = spaceId ?? GLOBAL_KEY;\r\n\r\n if (this.emoticonsPromises.notExist(key)) {\r\n this.emoticonsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetEmoticons', {spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleEmoticons(result.data);\r\n }, key);\r\n }\r\n\r\n await this.emoticonsPromises.get(key);\r\n return this.list.get(key);\r\n }\r\n\r\n private handleEmoticons(event: Emoticons): void {\r\n const spaceId = event.location.spaceId ?? GLOBAL_KEY;\r\n\r\n if (!this.list.has(spaceId)) {\r\n this.list.set([spaceId, new ObservableIndexedObjectCollection<Emoticon>('id')]);\r\n }\r\n\r\n const collection = this.list.get(spaceId);\r\n collection.set(...event.emoticons);\r\n }\r\n\r\n private handleNewEmoticon(ev: NewEmoticon): void {\r\n const collection = this.list.get(ev.emoticon.spaceId ?? GLOBAL_KEY);\r\n collection?.set(ev.emoticon);\r\n }\r\n\r\n private handleEmoticonDeleted(ev: EmoticonDeleted): void {\r\n const collection = this.list.get(ev.spaceId ?? GLOBAL_KEY);\r\n collection?.delete(ev.emoticonId);\r\n }\r\n\r\n private handleSpaceDeleted(event: SpaceDeleted): void {\r\n this.list.delete(event.id);\r\n }\r\n\r\n private handleSession(): void {\r\n this.list.deleteAll();\r\n this.emoticonsPromises.forgetAll();\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {RoomMember, Session, SpaceMember, User} from \"../types/src\";\nimport {extractUserFromMember} from \"./functions\";\nimport {EventTarget} from \"../EventTarget\";\n\nexport class UsersManager {\n public readonly onlineStatus = new EventTarget<{ change: User }>();\n\n private readonly users: ObservableIndexedObjectCollection<User> = new ObservableIndexedObjectCollection('id');\n\n public constructor(private tracker: ChatStateTracker) {\n // RoomMemberUpdated & SpaceMemberUpdated events are not contains user object\n tracker.client.on('UserUpdated', event => this.handleUsers([event.user]));\n tracker.client.on('RoomMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMembers', event => this.handleMembers(event.members));\n tracker.client.on('RoomMembers', event => this.handleMembers(event.members));\n tracker.client.on('Messages', event => this.handleUsers(event.messages.map(message => message.author.user)));\n tracker.client.on('NewMessage', event => this.handleUsers([event.message.author.user]));\n tracker.client.on('Session', event => this.handleSession(event));\n }\n\n /**\n * Get all available (cached) user objects at once.\n */\n public async getAvailable(): Promise<ObservableIndexedObjectCollection<User>> {\n return this.users;\n }\n\n private handleMembers(members: (RoomMember | SpaceMember)[]): void {\n this.handleUsers(members.map(extractUserFromMember));\n }\n\n private handleSession(session: Session): void {\n this.users.deleteAll();\n this.handleUsers([session.user]);\n }\n\n private handleUsers(users: User[]): void {\n users.forEach(newUser => {\n const oldUser = this.users.get(newUser.id);\n if (oldUser && oldUser.online !== newUser.online) {\n this.onlineStatus.emit('change', newUser);\n }\n });\n\n this.users.set(...users);\n }\n}","import {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n NewRelationship,\n RelationshipDeleted,\n Relationships,\n UserRelationship,\n UserRelationshipType\n} from \"../types/src\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\n\nconst getId = (refUserId: string, type: UserRelationshipType): string => `${refUserId}-${type}`;\nconst getIdFromRelationship = (relationship: UserRelationship): string => getId(relationship.refUser.id, relationship.type);\n\nexport class RelationshipsManager {\n private relationships: ObservableIndexedObjectCollection<UserRelationship> = new ObservableIndexedObjectCollection<UserRelationship>(getIdFromRelationship);\n private promises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Relationships', ev => this.handleRelationships(ev));\n this.tracker.client.on('NewRelationship', ev => this.handleNewRelationship(ev));\n this.tracker.client.on('RelationshipDeleted', ev => this.handleRelationshipDeleted(ev));\n this.tracker.client.on('Session', () => this.handleSession());\n }\n\n public async get(): Promise<ObservableIndexedObjectCollection<UserRelationship>> {\n if (this.promises.notExist('all')) {\n this.promises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRelationships', {});\n if (result.error) {\n throw result.error;\n }\n }, 'all');\n }\n\n await this.promises.get('all');\n return this.relationships;\n }\n\n public async exists(refUserId: string, type: UserRelationshipType): Promise<boolean> {\n await this.get();\n return this.relationships.has(getId(refUserId, type));\n }\n\n private handleRelationships(ev: Relationships): void {\n this.relationships.deleteAll();\n ev.relationships.forEach(relationship => {\n this.relationships.set(relationship);\n });\n }\n\n private handleNewRelationship(ev: NewRelationship): void {\n if (this.promises.has('all')) {\n this.relationships.set(ev.relationship);\n }\n }\n\n private handleRelationshipDeleted(ev: RelationshipDeleted): void {\n if (this.promises.has('all')) {\n this.relationships.delete(getIdFromRelationship(ev.relationship));\n }\n }\n\n private handleSession(): void {\n this.promises.forgetAll();\n this.relationships.deleteAll();\n }\n}","import {WebSocketChatClient} from \"../WebSocketChatClient\";\r\nimport {Session, User} from \"../types/src\";\r\nimport {RoomsManager} from \"./RoomsManager\";\r\nimport {SpacesManager} from \"./SpacesManager\";\r\nimport {PermissionsManager} from \"./PermissionsManager\";\r\nimport {DeferredTask} from \"./AsyncUtils\";\r\nimport {EmoticonsManager} from \"./EmoticonsManager\";\r\nimport {UsersManager} from \"./UsersManager\";\r\nimport {RelationshipsManager} from \"./RelationshipsManager\";\r\n\r\nexport class ChatStateTracker {\r\n public readonly client: WebSocketChatClient;\r\n\r\n /**\r\n * State of your permissions.\r\n */\r\n public readonly permissions: PermissionsManager;\r\n\r\n /**\r\n * State of the rooms you are in.\r\n */\r\n public readonly rooms: RoomsManager;\r\n\r\n /**\r\n * State of the spaces you are in.\r\n */\r\n public readonly spaces: SpacesManager;\r\n\r\n /**\r\n * State of the emoticons (global and space-related).\r\n */\r\n public readonly emoticons: EmoticonsManager;\r\n\r\n /**\r\n * Users related state.\r\n */\r\n public readonly users: UsersManager;\r\n\r\n /**\r\n * State of relationships with other users.\r\n */\r\n public readonly relationships: RelationshipsManager;\r\n\r\n private _me: User = null;\r\n private readonly deferredSession = new DeferredTask();\r\n\r\n public constructor(client: WebSocketChatClient) {\r\n this.client = client;\r\n this.client.on('Session', ev => this.handleSession(ev));\r\n\r\n this.permissions = new PermissionsManager(this);\r\n this.rooms = new RoomsManager(this);\r\n this.spaces = new SpacesManager(this);\r\n this.emoticons = new EmoticonsManager(this);\r\n this.users = new UsersManager(this);\r\n this.relationships = new RelationshipsManager(this);\r\n }\r\n\r\n public get me(): User | null {\r\n return this._me;\r\n }\r\n\r\n public async getMe(): Promise<User> {\r\n await this.deferredSession.promise;\r\n return this._me;\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this._me = ev.user;\r\n this.deferredSession.resolve();\r\n }\r\n}","import {ObservableInterface} from \"./EventTarget\";\nimport {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ChatStateTracker} from \"./state-tracker/ChatStateTracker\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebSocketClientOptions {\n url: string;\n token: string;\n connectingTimeoutMs?: number;\n awaitQueueSendDelayMs?: number;\n stateTracking?: boolean;\n queryParams?: Record<string, string>;\n /**\n * Ping/pong configuration, enabled by default.\n */\n ping?: {\n enabled?: boolean;\n /**\n * Time without activity after which a ping will be sent. Default is 10 seconds.\n */\n noActivityTimeoutMs?: number;\n /**\n * Time to wait for a pong response before considering the connection dead. Default is 2 seconds.\n */\n pongBackTimeoutMs?: number;\n },\n}\n\nenum WebSocketChatClientEvent {\n connect = 'connect',\n disconnect = 'disconnect',\n message = 'message',\n error = 'error',\n}\n\ntype WebSocketEventMap = EventsMap & {\n [WebSocketChatClientEvent.connect]: void;\n [WebSocketChatClientEvent.disconnect]: boolean;\n [WebSocketChatClientEvent.message]: Envelope;\n [WebSocketChatClientEvent.error]: Error;\n};\n\nexport class WebSocketChatClient extends AbstractChatClient<Pick<WebSocketEventMap, keyof WebSocketEventMap>> implements ObservableInterface {\n public readonly Event = WebSocketChatClientEvent;\n public readonly state?: ChatStateTracker;\n\n protected ws: WebSocket|null = null;\n protected sendQueue: Envelope[] = [];\n protected connectingTimeoutId: any;\n protected authenticated: boolean;\n protected authenticatedResolvers: [() => void, (error: Error) => void];\n protected pingMonitorInterval?: NodeJS.Timeout;\n protected inFlightPingTimeout: NodeJS.Timeout;\n protected lastReceivedMessageAt?: number;\n\n public constructor(private readonly options: WebSocketClientOptions) {\n super();\n if (this.options.stateTracking ?? true) {\n this.state = new ChatStateTracker(this);\n }\n\n options.ping ??= {};\n options.ping.enabled ??= true;\n options.ping.noActivityTimeoutMs ??= 15000;\n options.ping.pongBackTimeoutMs ??= 5000;\n }\n\n public async connect(): Promise<void> {\n if (this.isOpenWsState() || this.isConnectingWsState()) {\n return;\n }\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n params.set('token', this.options.token);\n\n this.ws = new WebSocket(`${this.options.url}?${params}`);\n this.ws.onclose = ev => this.onClose(ev);\n this.ws.onmessage = ev => this.onMessage(ev);\n this.connectingTimeoutId = setTimeout(\n () => this.triggerConnectionTimeout(),\n this.options.connectingTimeoutMs ?? 10000\n );\n this.authenticated = false;\n return new Promise((...args) => this.authenticatedResolvers = args);\n }\n\n public disconnect(): void {\n this.sendQueue = [];\n this.ws?.close(1000); // Normal closure\n this.ws = null;\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope<CommandRequest<CommandType>>(commandType, commandData);\n const promise = this.createPromiseFromCommandEnvelope<CommandType>(envelope);\n\n if (this.isConnectingWsState() || !this.authenticated && this.isOpenWsState()) {\n this.sendQueue.push(envelope);\n return promise;\n }\n\n this.sendEnvelope(envelope);\n return promise;\n }\n\n public get isReady(): boolean {\n return this.isOpenWsState() && this.authenticated;\n }\n\n private sendEnvelope(envelope: Envelope): void {\n if (this.isReady) {\n this.ws.send(JSON.stringify(envelope));\n return;\n }\n\n this.handleEnvelopeSendError(\n envelope,\n new Error(`Cannot send - client is not ready (state=${this.ws?.readyState ?? '[no connection]'}; authenticated=${this.authenticated})`)\n );\n }\n\n private onMessage(event: MessageEvent): void {\n this.lastReceivedMessageAt = Date.now();\n const envelope: Envelope = JSON.parse(event.data);\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n\n // Login successfully\n if (!this.authenticated) {\n const isAuthenticated = envelope.type !== 'Bye';\n this.authenticated = isAuthenticated;\n if (isAuthenticated) {\n this.startConnectionMonitor();\n this.authenticatedResolvers[0]();\n this.emit(this.Event.connect);\n this.sendFromQueue();\n } else {\n this.authenticatedResolvers[1](envelope.data);\n }\n }\n }\n\n private onClose(event: CloseEvent): void {\n this.stopConnectionMonitor();\n clearTimeout(this.connectingTimeoutId);\n const reconnect = event.code !== 1000; // Connection was closed because of error\n if (reconnect) {\n void this.connect();\n }\n this.emit(this.Event.disconnect, reconnect);\n }\n\n private sendFromQueue(): void {\n // Send awaiting data to server\n let lastDelay = 0;\n for (const dataIndex in this.sendQueue) {\n const envelope = this.sendQueue[dataIndex];\n setTimeout(() => this.sendEnvelope(envelope), lastDelay);\n lastDelay += this.options.awaitQueueSendDelayMs ?? 500;\n }\n this.sendQueue = [];\n clearTimeout(this.connectingTimeoutId);\n }\n\n private triggerConnectionTimeout(): void {\n this.disconnect();\n this.emit(this.Event.error, new Error('Connection timeout'));\n }\n\n private isConnectingWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.CONNECTING;\n }\n\n private isOpenWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.OPEN;\n }\n\n private startConnectionMonitor(): void {\n if (!this.options.ping!.enabled) {\n return;\n }\n\n this.lastReceivedMessageAt = Date.now();\n\n this.pingMonitorInterval = setInterval(async () => {\n if (!this.isReady || this.inFlightPingTimeout) {\n return;\n }\n\n if ((Date.now() - this.lastReceivedMessageAt) < this.options.ping!.noActivityTimeoutMs) {\n return;\n }\n\n this.inFlightPingTimeout = setTimeout(() => {\n this.inFlightPingTimeout = undefined;\n this.ws.close(3000); // Service Restart (reconnect)\n }, this.options.ping.pongBackTimeoutMs);\n\n this.send('Ping', {}).then(() => {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n });\n }, 1000);\n }\n\n private stopConnectionMonitor(): void {\n if (this.inFlightPingTimeout) {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n }\n if (this.pingMonitorInterval) {\n clearInterval(this.pingMonitorInterval);\n this.pingMonitorInterval = undefined;\n }\n }\n}","import {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ObservableInterface} from \"./EventTarget\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebApiChatClientOptions {\n url: string;\n token: string;\n attemptsToSend?: number;\n attemptDelayMs?: number;\n queryParams?: Record<string, string>;\n}\n\nenum WebApiChatClientEvent {\n message = 'message',\n error = 'error',\n destroy = 'destroy',\n}\n\ntype WebApiEventMap = EventsMap & {\n [WebApiChatClientEvent.message]: Envelope;\n [WebApiChatClientEvent.error]: Error;\n [WebApiChatClientEvent.destroy]: boolean;\n};\n\nexport class WebApiChatClient extends AbstractChatClient<Pick<WebApiEventMap, keyof WebApiEventMap>> implements ObservableInterface {\n public readonly Event = WebApiChatClientEvent;\n\n protected sendStack: {data: any, attempts: number, lastTimeoutId: any}[];\n\n public constructor(private readonly options: WebApiChatClientOptions) {\n super();\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope(commandType, commandData);\n this.sendStack.push({data: envelope, attempts: 0, lastTimeoutId: null});\n this.makeApiCall(this.sendStack.length - 1);\n return this.createPromiseFromCommandEnvelope(envelope);\n }\n\n public destroy(): void {\n // Cancel all awaiting requests\n this.sendStack.forEach(item => {\n if (item.lastTimeoutId) {\n clearTimeout(item.lastTimeoutId);\n }\n this.awaitingResponse.delete(item.data.ref);\n });\n this.sendStack = [];\n this.emit(this.Event.destroy, false);\n }\n\n protected async onMessage(reqId: number, response: Response): Promise<void> {\n this.sendStack.splice(reqId, 1);\n const envelope: Envelope = await response.json();\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n }\n\n protected onError(reqId: number, body: string): void {\n if (this.sendStack[reqId].attempts >= (this.options.attemptsToSend ?? 10)) {\n this.sendStack.splice(reqId, 1);\n this.handleEnvelopeSendError(this.sendStack[reqId].data, new Error(\n `Cannot send ${body}; aborting after reaching the maximum connection errors`\n ));\n return;\n }\n this.sendStack[reqId].lastTimeoutId = setTimeout(\n () => this.makeApiCall(reqId),\n this.options.attemptDelayMs ?? 3000\n );\n }\n\n protected makeApiCall(reqId: number): void {\n this.sendStack[reqId].attempts++;\n const bodyJson = JSON.stringify(this.sendStack[reqId].data);\n const headers: any = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n };\n\n headers.Authorization = `Bearer ${this.options.token}`;\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n const url = `${this.options.url}${params ? '?' + params : ''}`;\n\n fetch(url, {\n headers,\n body: bodyJson,\n method: 'POST',\n })\n .then(response => this.onMessage(reqId, response))\n .catch(() => this.onError(reqId, bodyJson));\n }\n}","export interface RestClientOptions {\n url?: string;\n token: string;\n}\n\nexport interface RestClientResponse<T> {\n ok: boolean;\n status: number;\n data: T;\n}\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport abstract class AbstractRestClient {\n protected abstract defaultUrl: string;\n\n public constructor(\n private readonly options: RestClientOptions,\n ) {}\n\n protected async send<ResponseT = any>(\n method: HttpMethod,\n uri: string,\n data: any = undefined,\n additionalHeaders: Record<string, string> = {},\n ): Promise<RestClientResponse<ResponseT>> {\n let url = this.getUrl(uri);\n let body = undefined;\n\n if (data) {\n if (['GET', 'DELETE'].includes(method)) {\n url += '?' + new URLSearchParams(data).toString()\n } else {\n body = JSON.stringify(data);\n }\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...additionalHeaders,\n ...this.getAuthHeaders(),\n };\n\n const result = await fetch(url, {method, body, headers});\n\n return this.convertFetchResponse(result);\n }\n\n protected getAuthHeaders(): any {\n const headers = {} as any;\n\n if (this.options.token) {\n headers.Authorization = `Bearer ${this.options.token}`;\n }\n\n return headers;\n }\n\n protected getUrl(uri: string): string {\n return this.removeEndingSlash(this.options.url ?? this.defaultUrl) + '/' + this.removeStartingSlash(uri);\n }\n\n protected async convertFetchResponse<T>(result: Response): Promise<RestClientResponse<T>> {\n return {\n ok: result.ok,\n status: result.status,\n data: result.headers.get('content-type')?.includes('json') ? await result.json() : await result.text(),\n };\n }\n\n private removeStartingSlash(text: string): string {\n return text.replace(/^\\/+/, '');\n }\n\n private removeEndingSlash(text: string): string {\n return text.replace(/\\/+$/, '');\n }\n}","import {AbstractRestClient, RestClientResponse} from \"./AbstractRestClient\";\r\n\r\nexport interface File {\r\n id: string;\r\n url: string;\r\n name: string;\r\n mime: string;\r\n size: number;\r\n width?: number;\r\n height?: number;\r\n}\r\n\r\nexport class FilesClient extends AbstractRestClient {\r\n protected defaultUrl: string = 'https://files.devana.pl';\r\n\r\n public async uploadFile(file: globalThis.File | Blob): Promise<RestClientResponse<File>> {\r\n const name = encodeURIComponent((file as globalThis.File).name ?? '');\r\n let headers = {\r\n ...this.getAuthHeaders(),\r\n Accept: 'application/json',\r\n 'Content-Disposition': `attachment; filename=\"${name}\"`,\r\n 'Content-Length': file.size\r\n };\r\n\r\n const response = await fetch(this.getUrl('files'), {\r\n method: 'POST',\r\n body: file,\r\n headers\r\n });\r\n\r\n return this.convertFetchResponse<File>(response);\r\n }\r\n\r\n public async getFileMeta(id: string): Promise<RestClientResponse<File>> {\r\n return this.send('GET', 'files/' + id);\r\n }\r\n\r\n public async getFileMetaBulk(ids: string[]): Promise<RestClientResponse<File[]>> {\r\n const searchParams = new URLSearchParams();\r\n ids.forEach(id => searchParams.append('id[]', id));\r\n return this.send('GET', 'files?' + searchParams);\r\n }\r\n}"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","EventTarget","_classCallCheck","_defineProperty","Map","eventName","handler","addHandler","events","onceEvents","_this$events$get","_this$events$get2","index","indexOf","undefined","splice","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","type","data","ref","sentCounter","toString","envelope","_this2","Promise","_len2","_key2","awaitingResponse","has","isError","error","IndexedCollection","items","apply","_toConsumableArray","_createClass","_items","size","_i","item","id","ids","_i2","_ids","clear","field","valueToFind","limit","result","entries","next","done","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","_this$_items2","deleteAll","_step","_iterator","_createForOfIteratorHelper","s","n","err","e","f","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","emit","setItems","_len5","_key5","deletedItems","keys","on","once","off","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","DeferredTask","promise","resolve","PromiseRegistry","promises","fn","register","_this$promises","t","r","iterator","i","c","Generator","u","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","_invoke","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_setPrototypeOf","toPrimitive","String","Number","_toPrimitive","WindowState","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","internalState","traverseLock","client","ev","handleNewMessage","handleMessagesRedacted","_setTraverseLock","_callee6","lock","_context6","state","LIVE","LATEST","_x2","_resetToLatest2","_callee7","_context7","_fetchNext2","_callee8","_context8","_fetchPrevious2","_callee9","_context9","_jumpTo2","_callee0","_context0","_x3","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee1","_this$getAt","afterId","_context1","getAt","send","location","after","fetchLimit","Error","message","messages","_fetchItemsAround","_callee10","_context10","around","_x4","_fetchItemsBefore","_callee11","_this$getAt2","beforeId","_context11","before","_fetchLatestItems","_callee12","_context12","_getTopic","_callee13","_context13","rooms","getTopics","_getLatestMessageId","_callee14","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context14","getTopic","lastMessage","_isLatestItemLoaded","_callee15","lastMessageId","_context15","getLatestMessageId","_handleNewMessage","_callee16","originalState","_context16","includes","addItems","emitChangeWithDiff","_x5","_handleMessagesRedacted","_callee17","refTopicIds","_context17","filter","msg","resetToLatest","_x6","_ObservableIndexedObj","TraversableRemoteCollection","current","ongoing","retainRatio","lastFetchCount","oldestId","OLDEST","_resetToLatest","_callee","_context","fetchLatestItems","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","_jumpTo","_callee4","_context4","fetchItemsAround","_x","_refreshFetchedState","_callee5","_t","_context5","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","_args","historyWindows","_handleRoomUpdated","_Array$from","_Array$from$_i","window","_slicedToArray","setTraverseLock","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","_updateMessageReference","history","mode","MessagesManager","handleSession","handleRoomJoin","handleFollowedTopicUpdated","handleTopicFollowed","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","_cacheSpaceFollowedTopics","spaceId","roomIds","spaceRegistryKey","spaces","findBy","every","followedTopics","followedTopicsPromises","notExist","registerByFunction","setFollowedTopicsArray","_getRoomFollowedTopics","_ackRoom","collection","followedTopic","getRoomFollowedTopics","isUnread","_summarizeUnreadMessages","cacheKey","targetTopicId","mentionCount","_iterator2","_step2","_iterator3","_step3","_topic$mentionCount","unreadSummariesCache","cacheSpaceFollowedTopics","_this$followedTopics$","topicIds","invalidateUnreadSummaries","_resolveLastMessage2","_result$data","getRoomHistory","roomHistory","getMessagesWindow","_step4","_iterator4","startsWith","_step5","_iterator5","roomIdsSet","Set","_step6","_iterator6","parts","split","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","clearRoomFollowedTopicsStructures","createHistoryForNewRoom","_handleNewTopic","_x7","_this$followedTopics$3","forgetAll","_updateLocallyFollowedTopicOnNewMessage","_this$tracker$me","roomFollowedTopics","update","_member$spaceMember$r","_member$spaceMember","member","roleIds","mentionHandlers","mentionExists","author","user","me","missed","lastAckMessageId","getMe","spaceMember","roles","some","content","_x8","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this7$followedTopics","invalidateUnreadSummariesForRooms","forget","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","_getMe","userId","list","getMembers","find","_member$user$id","_member$user","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$messages","_deleteByTopicIds","deleteRoom","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","newMember","deleteRoomsBySpaceId","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get3","addJoinedRooms","_this$topics$get4","newRoom","_this$list2","_rooms","recipients","customColor","customNick","extras","_member$user$id2","_member$user2","_this$list3","newRooms","_room$recipients","_room$defaultTopic2","newTopic","messageCount","max","_resolveLastMessage","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","_getRooms","roomsPromises","role","_this$rooms$get","summary","roomIdToSpaceId","name","description","_handleRoomDeleted","_this$rooms$get2","space","spaceChanged","systemRoom","defaultRooms","_this$rooms$get$items","_this$rooms$get3","_this$roomIdToSpaceId","addJoinedSpaces","_this$roles","summaries","_handleRoomSummaryUpdated","summariesPromise","oldSummary","newSummary","_this$roles$get","oldRole","newRole","rolesToUpdate","priority","allRoles","updatedRole","increased","decreased","changedRoles","reorderRolesOnPriorityUpdate","Layer","PermissionDefinition","Permissions","permissionName","layer","getByName","maxLayer","Root","Room","CreateSpaces","Global","ManageSpace","Space","ManageRoles","CreateTopics","ManageTopic","Topic","ManageMemberProfiles","ManageMemberRoles","CreateMessages","ManagePermissions","CreateRooms","ManageRoom","CreateEmoticons","ManageEmoticons","ManageBans","Kick","ChangeOwnNick","ChangeOwnColor","RedactMessages","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","_calculatePermissions","_location$spaceId","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","fetchMembersOrFail","getOverwrites","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me2","prefix","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","getRoles","sort","b","reduce","previousValue","currentValue","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","reverse","revDecAllows","_revDecDenies$i","_revDecAllows$i","parseInt","_x9","_x0","permissionOverwritesValues","getRootAccessValue","getNames","_fetchMembersOrFail","results","spaceFail","roomFail","_x1","GLOBAL_KEY","EmoticonsManager","handleEmoticons","handleNewEmoticon","handleEmoticonDeleted","emoticonsPromises","_event$location$space","emoticons","_ev$emoticon$spaceId","emoticon","_ev$spaceId","emoticonId","UsersManager","handleUsers","handleMembers","users","_getAvailable","session","_this$users","newUser","oldUser","online","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_exists","ChatStateTracker","permissions","_me","WebSocketChatClientEvent","WebSocketChatClient","_AbstractChatClient","options","_this$options$stateTr","_options$ping","_options$ping2","_options$ping2$enable","_options$ping3","_options$ping3$noActi","_options$ping4","_options$ping4$pongBa","stateTracking","ping","enabled","noActivityTimeoutMs","pongBackTimeoutMs","_connect","_this$options$queryPa","_this$options$connect","params","isOpenWsState","isConnectingWsState","URLSearchParams","queryParams","token","ws","WebSocket","url","onclose","onClose","onmessage","onMessage","connectingTimeoutId","setTimeout","triggerConnectionTimeout","connectingTimeoutMs","authenticated","authenticatedResolvers","_this$ws","sendQueue","close","_send","commandType","commandData","createEnvelope","createPromiseFromCommandEnvelope","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","handleEnvelopeSendError","readyState","lastReceivedMessageAt","Date","now","parse","handleIncomingEnvelope","Event","isAuthenticated","startConnectionMonitor","connect","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","disconnect","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","sendStack","attempts","lastTimeoutId","makeApiCall","destroy","_onMessage","reqId","response","json","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","fetch","method","onError","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","additionalHeaders","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","status","text","replace","FilesClient","_AbstractRestClient","_uploadFile","file","_name","encodeURIComponent","_getFileMeta","_getFileMetaBulk","searchParams","append"],"ignoreList":[],"sourceRoot":""}
|