{"version":3,"file":"static/js/main-fc75396a.5a06f424.js","mappings":"+KAIaA,EAAa,SAACC,EAAKC,EAAWC,EAAMC,GAA4C,IAgCnFC,EAhCqEC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAgCrB,KAAOG,EAAAA,EAA6BC,SAE1F,OAAOC,EAAAA,EACFC,oBAAoBC,EAAAA,EAAKC,QAASD,EAAAA,EAAKE,eAAeA,cACtDC,MAAK,SAAAF,GAAK,OAnCCG,EAmCU,CAAEC,cAAc,UAADC,OAAYL,IAnC5BJ,EAmCuCL,EAlCrD,IAAIe,SAAQ,SAACC,EAASC,GACzB,IAAMC,EAAM,IAAIC,eAIhB,IAAK,IAAMC,KAFXF,EAAIG,KAAK,OAAQzB,GAECgB,EACdM,EAAII,iBAAiBF,EAAKR,EAAQQ,IAGtCF,EAAIK,OAAS,SAAAC,GAAC,OAAIC,EAAAA,GAASC,iBAAiBF,EAAEG,OAAOC,QAC/CZ,EAAQQ,EAAEG,OAAOE,aAAeC,KAAKC,MAAMP,EAAEG,OAAOE,mBAAgB1B,GACpEc,EAAOO,EAAEG,OAAQ,EACvBT,EAAIc,QAAUf,EACdC,EAAIe,QAAUhB,EACdC,EAAIgB,OAAOC,WAAapC,EAEpBM,IACAA,EAAO4B,QAAU,kBAAMf,EAAIkB,OAAQ,GAGvC,IAAMC,EAAO,IAAIC,SACjBD,EAAKE,OAAO,OAAQzC,EAAMA,EAAK0C,MAE3B3C,GACA4C,OAAOC,KAAK7C,GAAW8C,SAAQ,SAAAvB,GAAG,OAAIiB,EAAKE,OAAOnB,EAAKvB,EAAUuB,GAAK,IAG1EF,EAAI0B,KAAKP,EACb,IA7BW,IAACzB,EAASP,CAmCgE,IACpFwC,OAAM,SAAAC,GAAA,IAAGlB,EAAMkB,EAANlB,OAAQC,EAAYiB,EAAZjB,aAAY,OAAMd,QAAQE,OAAO,CAAEW,OAAAA,EAAQmB,QAASlB,GAAe,GAC7F,C,sECpCO,IAAMmB,EAAe,CACxBC,QALJ,WACI,OAAOC,EAAAA,EAAAA,GAAU,aACrB,E,4PCUMC,EAAkB,SAACC,GAA6C,OAAOA,EAAMC,YAAa,EAC1FC,EAA0B,SAACF,GAA8C,OAAKA,EAAMG,oBAAqB,EAEzGC,EAAe,SAACJ,GAA0C,OAAKA,EAAMK,SAAU,EAC/EC,EAAe,SAACN,GAAqC,OAAKA,EAAMO,UAAW,EAE3EC,EAAgB,SAACR,GAAiD,OAAKA,EAAMS,UAAW,EACxFC,EAAkB,SAACV,GAA8B,OAAKA,EAAMW,UAAW,EAEhEC,EAAY,SAACL,GACtB,IAAMM,EAAgBN,EAAWO,KAAI,SAAAC,GAAC,IAAAC,EAAA,OAAW,QAAXA,EAAK,OAADD,QAAC,IAADA,OAAC,EAADA,EAAGE,YAAI,IAAAD,EAAAA,EAAI,EAAE,IAAEE,OAAOC,QAAO,SAAAC,GAAC,OAAIA,EAAEC,sBAAsB,IACpG,OAAOC,MAAMC,KAAKC,EAAAA,EACbC,QAAQZ,GAAe,SAAAO,GAAC,OAAIA,EAAEC,sBAAsB,IACpDK,WACAZ,KAAI,SAAApB,GAAA,IAAAiC,GAAAC,EAAAA,EAAAA,GAAAlC,EAAA,GAAAmC,GAAAD,EAAAA,EAAAA,GAAAD,EAAA,SAAON,EAAsBQ,EAAtBR,uBAAwBS,EAAOD,EAAPC,QAAO,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACpCD,GAAO,IACVT,uBAAAA,EACAW,WAAYC,EAAAA,EAAaC,wBAAwB,CAAEJ,QAAAA,EAAST,uBAAAA,KAAyB,GAEjG,EAGac,GAA4BC,EAAAA,EAAAA,IACrCrC,EACAG,GAtBmB,SAACF,GAA0C,OAAKA,EAAMqC,WAAY,GAwBrFjC,GArBmB,SAACJ,GAAuC,OAAKA,EAAMsC,WAAW,GAuBjF9B,EACAF,EACAI,GACA,SAAC6B,EACGpC,EACAkC,EACAhC,EACAiC,EACA7B,EACAF,EACAI,GAEA,IAAM6B,EAAgBD,EACjBpB,QAAO,SAAAsB,GAAC,OAAIA,EAAEjE,SAAWkE,EAAAA,EAAcC,UAAYF,EAAEG,iBAAmBjC,EAAW,IACnFjD,OAAO4E,IAAgBO,EAAAA,EAAgBC,KAAO,GAAK3C,GACnDW,KAAI,SAAAgB,GAAO,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUD,GAAO,IAAEE,WAAYC,EAAAA,EAAaC,wBAAwB,CAAEJ,QAAAA,KAAU,IAC3FX,QAAO,SAAA4B,GAAC,OAAKV,EAAYU,EAAEf,WAAW,IAErCgB,EAASpC,EAAUL,GAAYY,QAAO,SAAA4B,GAAC,OAAKV,EAAYU,EAAEf,WAAW,IAE3E,MAAM,GAANtE,QAAAuF,EAAAA,EAAAA,GAAWC,EAA0BV,EAAenC,EAAWI,KAAWwC,EAAAA,EAAAA,GAAKD,GACnF,IAGSG,GAA6Bf,EAAAA,EAAAA,IACtCrC,EACAG,EACAE,EACAE,EACAE,EACAE,GACA,SAAC6B,EACGpC,EACAE,EACAE,EACAE,EACAE,GAEA,IAKM6B,EAJFD,EACKpB,QAAO,SAAA4B,GAAC,OAAIA,EAAEvE,SAAWkE,EAAAA,EAAcC,UAAYI,EAAEH,iBAAmBjC,EAAW,IACnFjD,OAAOyC,GAGXW,KAAI,SAAAgB,GAAO,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUD,GAAO,IAAEE,WAAYC,EAAAA,EAAaC,wBAAwB,CAAEJ,QAAAA,KAAU,IAC3FX,QAAO,SAAA4B,GAAC,OAAIxC,EAAW6C,MAAK,SAAArC,GAAC,IAAAsC,EAAA,OAAU,QAAVA,EAAItC,EAAEE,YAAI,IAAAoC,OAAA,EAANA,EAAQD,MAAK,SAAAhC,GAAC,OAAIa,EAAAA,EAAaC,wBAAwBd,KAAO2B,EAAEf,UAAU,GAAC,GAAC,IAE5GgB,EAASpC,EAAUL,GAEzB,MAAM,GAAN7C,QAAAuF,EAAAA,EAAAA,GAAWC,EAA0BV,EAAenC,EAAWI,KAAWwC,EAAAA,EAAAA,GAAKD,GACnF,IAGG,SAASE,EAA0BI,EAA0BjD,EAAiCI,GACjG,IAAM8C,EAA8BlF,EAAAA,EAASmF,UACzC/C,EAAWU,QAAO,SAAAsC,GAAC,OACfA,EAAEC,gBAAgBd,gBAClBa,EAAEE,kBAAoBC,EAAAA,GAA0BC,SAAS,KAC7D,SAACJ,GAA2B,OAAKA,EAAEC,gBAAgBI,EAAE,IACrD,kBAAM,CAAI,IAGd,OAAOb,EAAAA,EAAAA,GAAIK,GAAWS,MAAK,SAACN,EAAGrC,GAAC,OAC5B4C,EAAAA,EAAAA,IAAe3D,EAAUoD,EAAEK,IAAKzD,EAAUe,EAAE0C,OAC5CE,EAAAA,EAAAA,IAAeT,EAA4BE,EAAEK,IAAKP,EAA4BnC,EAAE0C,OAChFE,EAAAA,EAAAA,IAAeP,EAAEjF,SAAWkE,EAAAA,EAAcC,OAAQvB,EAAE5C,SAAWkE,EAAAA,EAAcC,SAC7Ec,EAAErE,KAAK6E,cAAc7C,EAAEhC,KAAK,GAEpC,C,uECxGa8E,EAAuB,CAChCC,gBALoB,WACpB,OAAOrE,EAAAA,EAAAA,GAAU,eAAgB,CAAEsE,OAAQ,QAC/C,E,47BCEaC,EAAkB,CAC3BC,cAKJ,WACI,OAAOC,EAAAA,EAAAA,GAAa,kBACxB,EANIC,gBAQJ,WACI,OAAO1E,EAAAA,EAAAA,GAAU,sBACrB,EATI2E,gBAWJ,SAAyBC,GACrB,IAAMlI,GAAMmI,EAAAA,EAAAA,GACR,8BACA,CACID,QAAAA,IAGFE,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,G,wBC5BaG,EAAc,CACvBC,oBAMJ,WACI,OAAOlF,EAAAA,EAAAA,GAAU,+BAADpC,OAAgCuH,MAASC,OAAO,eACpE,EAPIC,qBASJ,SAA8B5D,EAAM6D,GAChC,OAAOb,EAAAA,EAAAA,GAAa,gCAAD7G,OAAiCuH,IAAO1D,GAAM2D,OAAO,cAAa,KAAAxH,OAAI0H,GAC7F,EAVIC,cAYJ,SAAuBC,GACnB,OAAOxF,EAAAA,EAAAA,GAAU,0BAADpC,OAA2BuH,IAAOK,GAAMJ,OAAO,eAEnE,EAdIK,YAgBJ,SAAqBC,GACjB,OAAO1F,EAAAA,EAAAA,GAAU,sBAADpC,OAAuB8H,GAC3C,GCxBO,IAAMC,EAAqB,CAC9BC,aAGJ,WACI,OAAO5F,EAAAA,EAAAA,GAAU,0BACZvC,MAAK,SAAAoI,GAAI,OAAIA,EAAKxE,QAAO,SAAAyE,GAAC,OAAIA,EAAEC,QAAQ,GAAC,GAClD,G,0DCLaC,EAAkB,CAC3BC,YAaJ,WACI,OAAOjG,EAAAA,EAAAA,GAAU,gBACrB,EAdIkG,WAgBJ,SAAoBC,GAChB,IACMrB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUF,IAGzB,OAAOnG,EAAAA,EAAAA,GANK,gBAMU8E,EAC1B,EAvBIwB,cAyBJ,SAAuBH,GACnB,IACMrB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUF,GACrBpB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,gBAOU8E,EAC1B,EAjCIyB,cAmCJ,SAAuBC,GACnB,IAAM9J,EAAG,iBAAAkB,OAAoB4I,GACvB1B,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA1CI2B,eA6CJ,SAAwBC,EAAMC,GAC1B,OAAOlK,EAAAA,EAAAA,GACH,uBACA,KACAiK,EACAC,EAER,EAnDIC,oBAqDJ,SAA6BC,GACzB,IAEM/B,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEQ,KAAAA,KAG3B,OAAO7G,EAAAA,EAAAA,GAPK,0BAOU8E,EAC1B,EA7DIgC,SA+DJ,SAAkBC,EAAgBC,GAC9B,IAEMlC,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEU,eAAAA,EAAgBC,iBAAAA,KAG3C,OAAOhH,EAAAA,EAAAA,GAPK,0BAOU8E,EAC1B,EAvEImC,gBAyEJ,WACI,IAAMnC,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,yBAA0B8E,EAC/C,EA9EIoC,qBAgFJ,SAA8BC,GAC1B,IACMrC,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEe,oBAAqBD,IAC5CpC,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,iCAOU8E,EAC1B,EAxFIuC,gBAqGJ,SAAyBxH,GACrB,IACMiF,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAExG,QAAAA,IACvBkF,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,6BAOU8E,EAC1B,EA7GIwC,WAyFJ,SAAoBd,GAChB,IACM1B,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEG,UAAAA,IACvBzB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,yBAOU8E,EAC1B,G,eC1GayC,EAAkB,CAC3BC,aAKJ,WAUI,OAAO/C,EAAAA,EAAAA,GAAa,kBATE,SAACgD,GACnB,IAAMC,EAAMD,EAAUE,MAAK,SAAA1E,GAAC,OAAIA,EAAE2E,OAASC,EAAAA,GAAUC,aAAa,IAC5DC,EAAiBN,EAClBpG,QAAO,SAAA4B,GAAC,OAAIA,EAAE2E,OAASC,EAAAA,GAAUC,aAAa,IAC9C7D,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAErE,KAAK6E,cAAc7C,EAAEhC,KAAK,IAEhD,OAAOoI,EAAG,CAAIA,GAAG9J,QAAAuF,EAAAA,EAAAA,GAAK4E,IAAkBA,CAC5C,GAGJ,EAfIC,UAiBJ,SAAmBC,GACf,OAAOxD,EAAAA,EAAAA,GAAa,eAAD7G,OAAgBqK,GACvC,EAlBIC,UAoBJ,SAAmBC,GACf,OAAO1D,EAAAA,EAAAA,GAAa,qBAAD7G,OAAsBuK,GAC7C,G,eC5BaC,EAAqB,CAC9BC,OASJ,SAAgBC,EAAgBC,EAAMC,GAClC,IAAM9L,GAAMmI,EAAAA,EAAAA,GAAW,2BAA4B,CAAE0D,KAAAA,EAAMC,SAAAA,IACrD1D,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUiC,IAGzB,OAAOtI,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAhBI2D,QAkBJ,SAAiBC,GACb,IACM5D,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEqC,cAAAA,IACvB3D,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,4BAOU8E,EAC1B,EA1BI6D,UA4BJ,SAAmBD,GACf,IACM5D,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEqC,cAAAA,IACvB3D,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,8BAOU8E,EAC1B,EApCI8D,KAsCJ,SAAcC,GACV,IACM/D,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwC,IAGzB,OAAO7I,EAAAA,EAAAA,GANK,oBAMU8E,EAC1B,EA7CIgE,WA+CJ,SAAoBJ,GAChB,IAAMhM,EAAG,qBAAAkB,OAAwB8K,GAC3B5D,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAtDIiE,OAwDJ,SAAgBL,GACZ,IAAMhM,EAAG,4BAAAkB,OAA+B8K,GAClC5D,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA/DIkE,cAiEJ,SAAuBC,EAAmBC,GACtC,OAAOlJ,EAAAA,EAAAA,GAAU,qCAADpC,OACyBqL,GACrC,CACI3E,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE6C,MAAAA,KAEnC,G,qCC/EaC,EAAe,CACxBP,KAIJ,SAAcK,EAAmBG,EAAYC,GACzC,IACMvE,EAAiB,CACnBR,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,KAC3BoB,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,GAAC,CACjBgH,kBAAAA,EACAG,WAAAA,GACGC,KAIX,OAAOrJ,EAAAA,EAAAA,GAXK,aAWU8E,EAC1B,EAhBIwE,YAkBJ,SAAqBL,EAAmBG,GACpC,IAAM1M,EAAG,cAAAkB,OAAiBqL,EAAiB,KAAArL,OAAIwL,GACzCtE,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,G,eC5BayE,EAAiB,CAC1BlB,OAAQ,SAAFzI,GAC+D,IAD1D4J,EAAoB5J,EAApB4J,qBAAsBC,EAAQ7J,EAAR6J,SAAUC,EAAkB9J,EAAlB8J,mBAAoBC,EAAQ/J,EAAR+J,SAAUC,EAAIhK,EAAJgK,KAAMC,EAAIjK,EAAJiK,KAAMC,EAAQlK,EAARkK,SAAUC,EAAMnK,EAANmK,OAAQC,EAASpK,EAAToK,UAAWC,EAAOrK,EAAPqK,QAC9GC,EAAatK,EAAbsK,cAAaC,EAAAvK,EAAEwK,UAAAA,OAAS,IAAAD,EAAG,MAAKA,EAAAE,EAAAzK,EAAE2I,KAAAA,OAAI,IAAA8B,EAAG,EAACA,EAAAC,EAAA1K,EAAE4I,SAAAA,OAAQ,IAAA8B,EAAG,GAAEA,EAEnDxF,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CACjBmD,qBAAAA,EACAC,SAAAA,EACAC,mBAAAA,EACAC,SAAAA,EACAC,KAAAA,EACAC,KAAAA,EACApI,KAAMqI,GAAY3E,IAAO2E,GAAU1E,OAAOyC,EAAAA,GAAU0C,mBACpDC,GAAIT,GAAU5E,IAAO4E,GAAQ3E,OAAOyC,EAAAA,GAAU0C,mBAC9CE,eAAgBT,GAAa7E,IAAO6E,GAAW5E,OAAOyC,EAAAA,GAAU0C,mBAChEG,aAAcT,GAAW9E,IAAO8E,GAAS7E,OAAOyC,EAAAA,GAAU0C,mBAC1DL,cAAAA,EACAE,UAAAA,EACA7B,KAAAA,EACAC,SAAAA,KAGR,OAAOxI,EAAAA,EAAAA,GApBK,sBAoBU8E,EAC1B,EAEA6F,UAAW,WACP,OAAO3K,EAAAA,EAAAA,GAAU,qBACrB,EAEA4K,cAAe,SAACC,GACZ,IAAM/F,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CACjB6I,eAAgB3F,MAASC,UACtByF,GAAM,IACTpJ,KAAMoJ,EAAOf,UAAY3E,IAAO0F,EAAOf,UAAU1E,OAAOyC,EAAAA,GAAU0C,mBAClEC,GAAIK,EAAOd,QAAU5E,IAAO0F,EAAOd,QAAQ3E,OAAOyC,EAAAA,GAAU0C,mBAC5DP,UAAWa,EAAOb,WAAa7E,IAAO0F,EAAOb,WAAW5E,OAAOyC,EAAAA,GAAU0C,mBACzEN,QAASY,EAAOZ,SAAW9E,IAAO0F,EAAOZ,SAAS7E,OAAOyC,EAAAA,GAAU0C,mBACnEL,cAAeW,EAAOX,cACtBE,UAAWS,EAAOT,aAEtBrF,aAAcA,EAAAA,GAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAU,sBAAuB8E,EAC5C,EAEAiG,QAAS,SAAFlJ,GAAuC,IAAlCmJ,EAAOnJ,EAAPmJ,QAASC,EAAUpJ,EAAVoJ,WAAYC,EAAKrJ,EAALqJ,MACvBpG,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE8E,YAAaH,EAASI,SAAUH,EAAYC,MAAAA,KAEvE,OAAOlL,EAAAA,EAAAA,GAAU,uBAAwB8E,EAC7C,EAEAuG,UAAW,SAAFC,GAAuC,IAAlCN,EAAOM,EAAPN,QAASC,EAAUK,EAAVL,WAAYC,EAAKI,EAALJ,MACzBpG,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE8E,YAAaH,EAASI,SAAUH,EAAYC,MAAAA,KAEvE,OAAOlL,EAAAA,EAAAA,GAAU,yBAA0B8E,EAC/C,EAEAyG,wBAAyB,WAAF,OAAQvL,EAAAA,EAAAA,GAAU,qCAAsC,CAAC,GAAG,EAAK,G,2GCvD5F,SAASwL,IACL,OAAOC,mBAAmBtG,MAASC,OAAO,uBAC9C,CAuYO,IAAMsG,EAAmB,CAC5BC,uBAtYJ,WACI,OAAO3L,EAAAA,EAAAA,GAAU,+BACrB,EAqYI4L,wBAnTJ,SAAiCC,EAAgBC,GAC7C,IAAMhH,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEwF,eAAAA,EAAgBC,QAAAA,IACvC/G,aAAcA,EAAAA,GAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAU,sCAAuC8E,EAC5D,EA6SIiH,oBAvSJ,WACI,OAAO/L,EAAAA,EAAAA,GAAU,kBAADpC,OAAmB4N,KAAyB,CAAC,GAAG,EACpE,EAsSIQ,yBA5SJ,WACI,OAAOhM,EAAAA,EAAAA,GAAU,uCAADpC,OAAwC4N,KAC5D,EA2SIS,oBA7RJ,SAA6BC,GACzB,IAAMxP,EAAG,yCAAAkB,OAA4CsO,GAC/CpH,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAC,GACtBtB,aAAcA,EAAAA,GAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAsRIqH,gBAtSJ,WACI,OAAOnM,EAAAA,EAAAA,GAAU,iCAADpC,OAAkC4N,KACtD,EAqSIY,cAnSJ,WACI,OAAOpM,EAAAA,EAAAA,GAAU,4BAADpC,OAA6B4N,KACjD,EAkSIa,oBAtRJ,WACI,OAAOrM,EAAAA,EAAAA,GAAU,iCAADpC,OAAkC4N,KACtD,EAqRIc,wBAnRJ,WACI,OAAOtM,EAAAA,EAAAA,GAAU,sCACrB,EAkRIuM,kBAhRJ,WACI,OAAOvM,EAAAA,EAAAA,GAAU,+BACrB,EA+QIwM,mBA7QJ,WACI,OAAOxM,EAAAA,EAAAA,GAAU,sCAAuC,CAAE+E,aAAcA,EAAAA,GAAa2B,MACzF,EA4QI+F,wBA1QJ,WACI,OAAOzM,EAAAA,EAAAA,GAAU,sCACrB,EAyQI0M,kBAvQJ,WACI,OAAO1M,EAAAA,EAAAA,GAAU,+BACrB,EAsQI2M,kBApQJ,WACI,OAAO3M,EAAAA,EAAAA,GAAU,sCAAuC,CAAE+E,aAAcA,EAAAA,GAAa2B,MACzF,EAmQIkG,gBAjQJ,WACI,OAAO5M,EAAAA,EAAAA,GAAU,6BACrB,EAgQI6M,sBA9PJ,WACI,OAAO7M,EAAAA,EAAAA,GAAU,oCACrB,EA6PI8M,eAvPJ,WACI,IAAMhI,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEyD,SAAU3E,MAASC,YAE9C,OAAOpF,EAAAA,EAAAA,GAAU,4BAA6B8E,EAClD,EAkPIiI,mBAhPJ,WACI,OAAO/M,EAAAA,EAAAA,GAAU,iCAADpC,OAAkC4N,KACtD,EA+OIwB,wBA7PJ,WACI,OAAOhN,EAAAA,EAAAA,GAAU,4BAADpC,OAA6B4N,KACjD,EA4PIyB,uBA9OJ,WACI,OAAOjN,EAAAA,EAAAA,GAAU,sCAADpC,OAAuC4N,KAC3D,EA6OI0B,mBA3OJ,WACI,OAAOlN,EAAAA,EAAAA,GAAU,iCAADpC,OAAkC4N,KACtD,EA0OI2B,qBAxOJ,WACI,OAAOnN,EAAAA,EAAAA,GAAU,mCAADpC,OAAoC4N,KACxD,EAuOI4B,wBArOJ,WACI,OAAOpN,EAAAA,EAAAA,GAAU,wCAADpC,OAAyC4N,KAC7D,EAoOI6B,cAxXJ,SAAuBC,EAAWC,EAAcC,EAAcC,EAAUC,EAAQC,GAC5E,IAAMC,EAAc,CAChBnE,SAAU,CAACoE,EAAAA,GAAkBC,OAAQD,EAAAA,GAAkBE,QACvDC,MAAOT,GAAgBU,EAAAA,GACvBT,aAAAA,EACAG,gBAAiB,CAACA,GAClB,mBAAoBxI,IAAO,CAACsI,IAAWS,QAAQ,QAAQ9I,OAAOyC,EAAAA,EAAU0C,mBACxE,iBAAkBpF,IAAO,CAACuI,IAASS,MAAM,QAAQ/I,OAAOyC,EAAAA,EAAU0C,oBAGhE6D,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,IACrC,OAAO5N,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,wBAAA1Q,OAAuB0P,EAAS,KAAA1P,OAAIwQ,GAEjF,EA2WIG,eAzWJ,SACIjB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAa,GAEA,IAAM1J,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAEzB+H,EAAqBlQ,EAAAA,EAASmQ,mBAAmBF,GAEjDZ,GAAW3L,EAAAA,EAAAA,GAAA,CACbwH,SAAU,CAACoE,EAAAA,GAAkBC,OAAQD,EAAAA,GAAkBE,QACvDC,MAAOT,GAAgBU,EAAAA,GACvBT,aAAAA,EACA,mBAAoBrI,IAAO,CAACsI,IAAWS,QAAQ,QAAQ9I,OAAOyC,EAAAA,EAAU0C,mBACxE,iBAAkBpF,IAAO,CAACuI,IAASS,MAAM,QAAQ/I,OAAOyC,EAAAA,EAAU0C,mBAClEoD,gBAAAA,GACGc,GAGDL,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,IACrC,OAAO5N,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,wBAAA1Q,OAAuB0P,EAAS,YAAA1P,OAAWwQ,GAChFtJ,EAER,EA6UI6J,WA3ZJ,SAAoBC,EAAoBnB,EAAUC,GAC9C,IAAMmB,GAAc5M,EAAAA,EAAAA,GAAA,CAChB6M,YAAa,CACTrN,KAAM0D,IAAO,CAACsI,IAAWS,QAAQ,QAAQ9I,OAAOyC,EAAAA,EAAUkH,mBAC1DvE,GAAIrF,IAAO,CAACuI,IAASS,MAAM,QAAQ/I,OAAOyC,EAAAA,EAAUkH,oBAExDtF,SAAU,CAACoE,EAAAA,GAAkBC,OAAQD,EAAAA,GAAkBE,SACpDa,GAGP,OAAO5O,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,2CAA2C,CAC7FhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwI,IAE7B,EA8YIG,iBA5YJ,SAA0BJ,EAAoBnB,EAAUC,GACpD,IAAMmB,GAAc5M,EAAAA,EAAAA,GAAA,CAChB6M,YAAa,CACTrN,KAAM0D,IAAO,CAACsI,IAAWS,QAAQ,QAAQ9I,OAAOyC,EAAAA,EAAUkH,mBAC1DvE,GAAIrF,IAAO,CAACuI,IAASS,MAAM,QAAQ/I,OAAOyC,EAAAA,EAAUkH,oBAExDtF,SAAU,CAACoE,EAAAA,GAAkBC,OAAQD,EAAAA,GAAkBE,SACpDa,GAGP,OAAO5O,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,kDAAkD,CACpGhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwI,GACrB9J,aAAcA,EAAAA,GAAa2B,MAEnC,EA8XIuI,kCAvDJ,SAA2CzG,EAAUD,EAAM2B,EAAeE,GACtE,IAAM1N,GAAMmI,EAAAA,EAAAA,GACR,+CACA,CACI2D,SAAAA,EACAD,KAAAA,EACA6B,UAAAA,EACAF,cAAAA,IAGR,OAAOlK,EAAAA,EAAAA,GAAUtD,EACrB,EA6CIwS,kCAvOJ,SAA0CtP,GAQtC,IAPA6B,EAAI7B,EAAJ6B,KACA+I,EAAE5K,EAAF4K,GAAE2E,EAAAvP,EACFwP,gBAAAA,OAAe,IAAAD,EAAG,CAACE,EAAAA,GAAgBC,SAAUD,EAAAA,GAAgBE,KAAMF,EAAAA,GAAgBG,OAAML,EAAAM,EAAA7P,EACzF4N,aAAAA,OAAY,IAAAiC,EAAGC,EAAAA,EAASC,IAAGF,EAAAG,EAAAhQ,EAC3B6J,SAAAA,OAAQ,IAAAmG,EAAG/B,EAAAA,GAAkBC,OAAM8B,EAAAC,EAAAjQ,EACnC+N,gBAAAA,OAAe,IAAAkC,EAAG,GAAEA,EAAAC,EAAAlQ,EACpBmQ,IAAAA,OAAG,IAAAD,EAAG,KAAIA,EAEJjB,EAAiB,CACnB,mBAAoB1J,IAAAA,IAAW1D,GAAQ,CAACoG,EAAAA,EAAUmI,eAAe5K,OAAOyC,EAAAA,EAAU0C,mBAClF,iBAAkBpF,IAAAA,IAAWqF,GAAIpF,OAAOyC,EAAAA,EAAU0C,mBAClDyD,MAAOoB,EACP5B,aAAAA,EACA/D,SAAAA,EACAkE,gBAAAA,EACAoC,IAAAA,GAGErT,GAAMmI,EAAAA,EAAAA,GAAW,GAADjH,OACf0Q,4BAAkC,qCACrCO,GAGJ,OAAO7O,EAAAA,EAAAA,GAAUtD,EACrB,EA+MIuT,mCA7MJ,SAA2CpO,GAQvC,IAPAJ,EAAII,EAAJJ,KACA+I,EAAE3I,EAAF2I,GAAE0F,EAAArO,EACFuN,gBAAAA,OAAe,IAAAc,EAAGb,EAAAA,GAAgBC,SAAQY,EAAAC,EAAAtO,EAC1C2L,aAAAA,OAAY,IAAA2C,EAAGT,EAAAA,EAASC,IAAGQ,EAAAC,EAAAvO,EAC3B4H,SAAAA,OAAQ,IAAA2G,EAAGvC,EAAAA,GAAkBC,OAAMsC,EAAAC,EAAAxO,EACnC8L,gBAAAA,OAAe,IAAA0C,EAAG,GAAEA,EAAAC,EAAAzO,EACpB0O,aAAAA,OAAY,IAAAD,EAAG,KAAIA,EAEbzB,EAAiB,CACnB,mBAAoB1J,IAAAA,IAAW1D,GAAQ,CAACoG,EAAAA,EAAUmI,eAAe5K,OAAOyC,EAAAA,EAAU0C,mBAClF,iBAAkBpF,IAAAA,IAAWqF,GAAIpF,OAAOyC,EAAAA,EAAU0C,mBAClDyD,MAAOoB,EACP5B,aAAAA,EACA/D,SAAAA,EACAkE,gBAAAA,EACA4C,aAAAA,GAGE7T,GAAMmI,EAAAA,EAAAA,GAAW,GAADjH,OACf0Q,4BAAkC,uDACrCO,GAGJ,OAAO7O,EAAAA,EAAAA,GAAUtD,EACrB,EAqLI8T,gCAnLJ,SAAwClF,GAWpC,IAVAmF,EAAoBnF,EAApBmF,qBACAhP,EAAI6J,EAAJ7J,KACA+I,EAAEc,EAAFd,GAAEkG,EAAApF,EACFqF,iBAAAA,OAAgB,IAAAD,EAAG,CAACrB,EAAAA,GAAgBC,UAASoB,EAC7ClD,EAAYlC,EAAZkC,aAAYoD,EAAAtF,EACZ7B,SAAAA,OAAQ,IAAAmH,EAAG/C,EAAAA,GAAkBC,OAAM8C,EACnCC,EAA0BvF,EAA1BuF,2BACAC,EAA+BxF,EAA/BwF,gCACAC,EAAyBzF,EAAzByF,0BACAC,EAA8B1F,EAA9B0F,+BAEAC,GAAAnP,EAAAA,EAAAA,GAAuC+O,EAA0B,GAA1DK,EAAcD,EAAA,GAAEE,EAAYF,EAAA,GACnCG,GAAAtP,EAAAA,EAAAA,GAAuCgP,EAA+B,GAA/DO,EAAcD,EAAA,GAAEE,EAAYF,EAAA,GACnCG,GAAAzP,EAAAA,EAAAA,GAAqCiP,EAAyB,GAAvDS,EAAaD,EAAA,GAAEE,EAAWF,EAAA,GACjCG,GAAA5P,EAAAA,EAAAA,GAAqCkP,EAA8B,GAA5DW,EAAaD,EAAA,GAAEE,EAAWF,EAAA,GAE3B7C,EAAiB,CACnB4B,qBAAAA,EACA,mBAAoBtL,IAAAA,IAAW1D,GAAQ,CAACoG,EAAAA,EAAUmI,eAAe5K,OAAOyC,EAAAA,EAAU0C,mBAClF,iBAAkBpF,IAAAA,IAAWqF,GAAIpF,OAAOyC,EAAAA,EAAU0C,mBAClDyD,MAAO2C,EACPnD,aAAAA,EACA/D,SAAAA,EACA,iCAAkCtE,IAAAA,SAAgB+L,EAAgB,SAASW,SAC3E,+BAAgC1M,IAAAA,SAAgBgM,EAAc,SAASU,SAEvE,sCAAuC1M,IAAAA,SAAgBkM,EAAgB,SAASQ,SAChF,oCAAqC1M,IAAAA,SAAgBmM,EAAc,SAASO,SAE5E,gCAAiC1M,IAAAA,SAAgBqM,EAAe,SAASK,SACzE,8BAA+B1M,IAAAA,SAAgBsM,EAAa,SAASI,SAErE,qCAAsC1M,IAAAA,SAAgBwM,EAAe,SAASE,SAC9E,mCAAoC1M,IAAAA,SAAgByM,EAAa,SAASC,UAGxEnV,GAAMmI,EAAAA,EAAAA,GAAW,GAADjH,OACf0Q,4BAAkC,sDACrCO,GAGJ,OAAO7O,EAAAA,EAAAA,GAAUtD,EACrB,EAyIIoV,qBAvIJ,SAA6BC,GAYzB,IAXAtB,EAAoBsB,EAApBtB,qBACAhP,EAAIsQ,EAAJtQ,KACA+I,EAAEuH,EAAFvH,GAAEwH,EAAAD,EACFpB,iBAAAA,OAAgB,IAAAqB,EAAG,CAAC3C,EAAAA,GAAgBC,UAAS0C,EAAAC,EAAAF,EAC7CtI,SAAAA,OAAQ,IAAAwI,EAAGpE,EAAAA,GAAkBC,OAAMmE,EAAAC,EAAAH,EACnCpE,gBAAAA,OAAe,IAAAuE,EAAG,CAACC,EAAAA,EAAeC,kBAAmBD,EAAAA,EAAeE,cAAaH,EAAAI,EAAAP,EACjFQ,eAAAA,OAAc,IAAAD,EAAG,GAAEA,EAAAE,EAAAT,EACnBU,aAAAA,OAAY,IAAAD,EAAG,GAAEA,EAAAE,EAAAX,EACjBY,cAAAA,OAAa,IAAAD,EAAG,CAAChD,EAAAA,EAASC,KAAI+C,EAAAE,EAAAb,EAC9Bc,sBAAAA,OAAqB,IAAAD,EAAG,GAAEA,EAAAE,EAAAf,EAC1BgB,2BAAAA,OAA0B,IAAAD,EAAG,GAAEA,EAE/BE,GAAAlR,EAAAA,EAAAA,GAA6B+Q,EAAqB,GAA3CI,EAASD,EAAA,GAAEE,EAAOF,EAAA,GACzBG,GAAArR,EAAAA,EAAAA,GAA6BiR,EAA0B,GAAhDK,EAASD,EAAA,GAAEE,EAAOF,EAAA,GAEnBG,GAAeC,EAAAA,EAAAA,OAAMN,KAAeM,EAAAA,EAAAA,OAAML,GAG5C,CAAC,EAHsD,CACvD,4BAA6B/N,IAAAA,SAAgB8N,EAAW,SAASpB,SACjE,0BAA2B1M,IAAAA,SAAgB+N,EAAS,SAASrB,UAG3D2B,GAAeD,EAAAA,EAAAA,OAAMH,KAAeG,EAAAA,EAAAA,OAAMF,GAG5C,CAAC,EAHsD,CACvD,iCAAkClO,IAAAA,SAAgBiO,EAAW,SAASvB,SACtE,+BAAgC1M,IAAAA,SAAgBkO,EAAS,SAASxB,UAGhEhD,GAAc5M,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAChBwO,qBAAAA,EACA,mBAAoBtL,IAAAA,IAAW1D,GAAQ,CAACoG,EAAAA,EAAUmI,eAAe5K,OAAOyC,EAAAA,EAAU0C,mBAClF,iBAAkBpF,IAAAA,IAAWqF,GAAIpF,OAAOyC,EAAAA,EAAU0C,mBAClDyD,MAAO2C,EACPgC,cAAAA,EACAlJ,SAAAA,EACAkE,gBAAAA,EACA4E,eAAAA,EACAE,aAAAA,GACGa,GACAE,GAGD9W,GAAMmI,EAAAA,EAAAA,GAAW,GAADjH,OACf0Q,4BAAkC,wCACrCO,GAGJ,OAAO7O,EAAAA,EAAAA,GAAUtD,EACrB,EA0FI+W,mCAxFJ,SACIC,EACAC,GAEoG,IADpG9C,EAA0B9T,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG6W,EAAAA,GAAwBC,oBAAoBhD,2BACzEE,EAAyBhU,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG6W,EAAAA,GAAwBC,oBAAoB9C,0BAExE+C,GAAAhS,EAAAA,EAAAA,GAAuC+O,EAA0B,GAA1DK,EAAc4C,EAAA,GAAE3C,EAAY2C,EAAA,GACnCC,GAAAjS,EAAAA,EAAAA,GAAqCiP,EAAyB,GAAvDS,EAAauC,EAAA,GAAEtC,EAAWsC,EAAA,GAE3BC,EAAY,CACd,iCAAkC7O,IAAAA,SAAgB+L,EAAgB,SAASW,SAC3E,+BAAgC1M,IAAAA,SAAgBgM,EAAc,SAASU,SACvE,gCAAiC1M,IAAAA,SAAgBqM,EAAe,SAASK,SACzE,8BAA+B1M,IAAAA,SAAgBsM,EAAa,SAASI,UAGnEnV,GAAMmI,EAAAA,EAAAA,GAAW,GAADjH,OACf0Q,4BAAkC,cAAA1Q,OAAa8V,EAAiB,KAAA9V,OAAI+V,EAAwB,mCAC/FK,GAGJ,OAAOhU,EAAAA,EAAAA,GAAUtD,EACrB,EAmEIuX,gBAjEJ,WACI,OAAOjU,EAAAA,EAAAA,GAAU,gCAADpC,OAAiC4N,KACrD,EAgEI0I,2BAjDJ,WACI,IAAMxX,GAAMmI,EAAAA,EAAAA,GAAW,GAADjH,OACf0Q,4BAAkC,iCACrC,CACIN,MAAO,CAACqB,EAAAA,GAAgBC,UACxB7F,SAAU,CAACoE,EAAAA,GAAkBsG,QAC7BxG,gBAAiB,CAACwE,EAAAA,EAAeC,mBACjC5E,aAAckC,EAAAA,EAASC,MAI/B,OAAO3P,EAAAA,EAAAA,GAAUtD,EACrB,GCjZa0X,EAA2B,CACpCC,SAGJ,SAAkBC,GACd,IACMxP,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUiO,GACrBvP,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,iCAOU8E,EAC1B,GCTO,IAAMyP,EAAmC,CAC5CC,aAGJ,SAAsBC,GAClB,IAAM3P,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUoO,IAGzB,OAAOzU,EAAAA,EAAAA,GAAU,gBAAiB8E,EACtC,GCfO,IAAM4P,EAAgB,CACzBC,mBAIJ,SAA4BzI,GACxB,OAAOlM,EAAAA,EAAAA,GAAU,gBAADpC,OAAiBsO,GACrC,EALI0I,kBAOJ,WACI,OAAOnQ,EAAAA,EAAAA,GAAa,wBACxB,G,gDCKaoQ,EAA4B,CACrCC,mBAkBJ,SAA4B7L,GACxB,OAAOjJ,EAAAA,EAAAA,GAAU,+BAADpC,OAAgCqL,GACpD,EAnBI8L,wBAqBJ,SACIC,GAGwF,IAFxFC,EAAgClY,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGmY,EAAAA,GAAyBC,YAC5DC,EAAqBrY,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAEfoY,EAAkBC,EAAAA,GAA2BL,GAC7CvY,GAAMmI,EAAAA,EAAAA,GAAW,sCAAoC5C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACpD+S,GAAa,IAChB5K,UAAWiL,EAAgBE,UAC3BH,YAAaA,IAAgBI,EAAAA,EAAUC,sBAE3C,OAAOzV,EAAAA,EAAAA,GAAUtD,EACrB,EAhCIgZ,OAkCJ,SACIzM,EACAG,EACAuM,EACAC,EACA1K,EACA2K,EACAC,EACAC,GAEA,IAAMrZ,EAAG,+BAAAkB,OAAkCqL,GACrCnE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAE+C,WAAAA,EAAYuM,eAAAA,EAAgBC,WAAAA,EAAY1K,MAAAA,EAAO2K,KAAAA,EAAMC,cAAAA,EAAeC,QAAAA,IAC3FhR,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAnDIkR,QAqDJ,SACI/M,EACAG,EACA6M,EACAF,GACA,IAAMrZ,EAAG,uCAAAkB,OAA0CqL,GAC7CnE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE+C,WAAAA,EAAYpF,GAAIiS,EAAcF,QAAAA,IACrDhR,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAjEI/G,OAmEJ,SACIkL,EACAG,EACA6M,EACAF,EACAG,GACA,IAAMxZ,EAAG,sCAAAkB,OAAyCqL,GAC5CnE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE+C,WAAAA,EAAYpF,GAAIiS,EAAcF,QAAAA,EAASG,QAAAA,IAC9DnR,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAhFIiE,OAkFJ,SACIE,EACAG,EACA6M,EACAF,GACA,IAAMrZ,EAAG,sCAAAkB,OAAyCqL,GAC5CnE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE+C,WAAAA,EAAYpF,GAAIiS,EAAcF,QAAAA,IACrDhR,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA9FIqR,OA8GJ,SAAgBlN,EAA2BmN,GACvC,IAAM1Z,EAAG,+BAAAkB,OAAkCqL,GACrCnE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU+P,IAGzB,OAAOpW,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EArHIuR,0BAKJ,SAAmCrB,GAAoI,IAAzFC,EAAgClY,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGmY,EAAAA,GAAyBC,YAChIE,EAAkBC,EAAAA,GAA2BL,GAC7CvY,GAAMmI,EAAAA,EAAAA,GAAW,sCAAoC5C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO+S,GAAa,IAAE5K,UAAWiL,EAAgBE,aAC5G,OAAOvV,EAAAA,EAAAA,GAAUtD,EAAK,CAAEqI,aAAcA,EAAAA,GAAa2B,MACvD,EARI4P,0BA0HJ,SACI9M,EACA/H,EACA+I,EACAf,EACAqC,EACAkC,EACAuI,EACArM,EACAE,GACA,IAAM1N,GAAMmI,EAAAA,EAAAA,GACR,0CACA,CACI2E,qBAAAA,EACA/H,KAAMA,GAAQ0D,IAAO1D,GAAM2D,OAAOyC,EAAAA,GAAU0C,mBAC5CC,GAAIA,GAAMrF,IAAOqF,GAAIpF,OAAOyC,EAAAA,GAAU0C,mBACtCd,SAAAA,EACAqC,QAAAA,EACAkC,MAAAA,EACAuI,eAAAA,EACArM,cAAAA,EACAE,UAAAA,IAGFtF,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAvJI0R,wBAqHJ,WACI,OAAOxW,EAAAA,EAAAA,GAAU,oCACrB,G,eC/IayW,EAA8B,CACvCC,mCAMJ,WACI,OAAO1W,EAAAA,EAAAA,GAAU,4BAA6B,CAAC,GAAG,EACtD,EAPI2W,QASJ,WACI,OAAO3W,EAAAA,EAAAA,GAAU,iCACZvC,MAAK,SAACmZ,GAA4B,OAAKA,EAAM3S,MAAM,SAACN,EAAGrC,GAAC,OAAKqC,EAAEkT,UAAU1S,cAAc7C,EAAEuV,YAAclT,EAAEmT,SAAS3S,cAAc7C,EAAEwV,SAAS,GAAC,GACrJ,EAXIC,OAaJ,SAAgBC,GACZ,IAAMlS,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU2Q,GACrBjS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,mCAAoC8E,EACzD,EApBImS,SAsBJ,SAAkBD,GACd,IAAMlS,EAAiB,CACnBR,OAAQ,SACR8B,KAAMxH,KAAKyH,UAAU2Q,GACrBjS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,4BAA6B8E,EAClD,GCnCO,IAAMoS,EAAe,CACxBC,aAGJ,SAAsBC,GAClB,IAAM1a,GAAMmI,EAAAA,EAAAA,GAAW,yBAA0B,CAAEuS,OAAAA,IAC7CtS,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAUtD,EAAKoI,GAAgB,EAC1C,GCZO,IAAMuS,EAAsB,CAC/BC,yBAIJ,SACIC,EACAzU,EACA0U,EACAC,GACA,IACM3S,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,GAAC,CAAEsV,UAAAA,EAAWzU,eAAAA,EAAgB0U,kBAAAA,GAAsBC,IACxE1S,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,+BAOU8E,EAC1B,EAhBI4S,6BAkBJ,SAAsCH,GAClC,OAAOvX,EAAAA,EAAAA,GAAU,oCAADpC,OAAqC2Z,EAAS,gBAClE,G,gBCpBaI,GAAsB,CAC/BC,cAQJ,SAAuBC,GACnB,OAAO7X,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,yBAAA1Q,OAAwBia,GAAc,IAEnF,EAXIC,qBAaJ,SAA8BD,GAC1B,OAAO7X,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,yBAAA1Q,OAAwBia,EAAU,mBAE/E,EAhBIE,yBAkBJ,SAAkCC,GAAkE,IAAxCC,EAAYlb,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAC9D+H,EAAiB,CACnBsB,KAAMxH,KAAKyH,UAAU2R,GACrB1T,OAAQ,MACRS,aAAckT,EACRlT,EAAAA,GAAamT,KACbnT,EAAAA,GAAaC,MAGvB,OAAOhF,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,yBAAA1Q,OAAwBoa,EAAWnO,MACxE/E,EAER,EA9BIqT,iBA6CJ,SAA0BN,GAAyD,IAA7BnP,EAAqB3L,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC1E,OAAOiD,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,yBAAA1Q,OAAwBia,EAAU,KAAAja,OAAI8K,GAC3E,CACIpE,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAGvC,EApDIoT,8BA+BJ,SAAuCC,GACnC,IAAMvT,EAAiB,CACnBsB,KAAMxH,KAAKyH,UAAUgS,GACrB/T,OAAQ,MACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,0CACrCxJ,EAER,EAzCIwT,iBAqDJ,SAA0B5P,EAAuB6P,GAC7C,OAAOvY,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,yBAAA1Q,OAAwB2a,EAAU,KAAA3a,OAAI8K,GAC3E,CACIpE,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAGvC,G,qHC/DawT,EAAiB,CAC1BC,gBAcJ,WACI,OAAOzY,EAAAA,EAAAA,GAAU,qBACrB,EAfI0Y,eAiBJ,SAAwB1U,GACpB,IAAMc,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,iCAADpC,OAAkCoG,GAAMc,EAC5D,EAvBI6T,kBAyBJ,SAA2B3U,GACvB,IAAMc,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,qBAADpC,OAAsBoG,GAAMc,EAChD,EA/BI8T,eAiCJ,SAAwB5B,GACpB,IAAMlS,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU2Q,GACrBjS,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,oBAAqB8E,EAC1C,EAxCI+T,kBA0CJ,WACI,OAAO7Y,EAAAA,EAAAA,GAAU,eACrB,EA3CI8Y,mBA6CJ,SAA4B9B,GACxB,IAAMlS,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU2Q,GACrBjS,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,eAAgB8E,EACrC,EApDIiU,iBAsDJ,SAA0BxB,EAAmByB,EAAeC,EAAmBC,GAC3E,IAAMC,EAAaD,EACb/T,IAAO+T,GAAgBE,aAAY,QACnCnc,EAEA6H,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE2S,MAAAA,EAAOG,WAAAA,EAAYF,QAAAA,IAC1ClU,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,6BAADpC,OAA8B2Z,GAAazS,EAC/D,EAjEIuU,yBAmEJ,WACI,IAAMvU,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,wCAAyC8E,EAC9D,EAzEIwU,iBAqFJ,WACI,OAAOtZ,EAAAA,EAAAA,GAAU,qBAAsB,CAAC,GAAI,EAChD,EAtFIuZ,mBA0EJ,SAA4BC,GACxB,IAAM1U,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUmT,GACrBzU,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,6BAA8B8E,EACnD,EAjFI2U,qBAgGJ,SAA8B3P,EAAgBC,EAAcN,GACxD,IAAM3E,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEyD,SAAAA,EAAUC,OAAAA,EAAQN,SAAAA,IACzC1E,aAAcA,EAAAA,EAAamT,MAE/B,OAAOlY,EAAAA,EAAAA,GAAU,8BAA+B8E,EACpD,EAtGI4U,YAsFJ,WACI,IAAM5U,EAAiB,CACnBR,OAAQ,OACRS,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,kCAAmC8E,EACxD,E,6FC9G4B,SAAA6U,IAE3B,OAF2BA,GAAAC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAA5B,SAAAC,IAAA,OAAAF,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAG,OAAA,UACWpa,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,wBAAwC,mBAAgB,wBAAA2L,EAAAI,OAAA,GAAAN,EAAA,MAC/EO,MAAA,KAAAvd,UAAA,CAUM,IAAMwd,EAAiB,CAC1BC,cAfqC,WAEb,OAAAb,EAAAW,MAAC,KAADvd,UAAA,EAcxB0d,aAVJ,WACI,OAAOza,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,wBAAwC,gBAChE,EASIoM,iBAPJ,WACI,OAAO1a,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,wBAAwC,oBAChE,E,uGCVaqM,EAAmB,CAC5BC,eA4BJ,SAAwBlU,EAAMC,EAAkBkU,GAC5C,OAAOpe,EAAAA,EAAAA,GACHqe,EAAqBD,GACrB,KACAnU,EACAC,EAER,EAlCIoU,wBAoCJ,SAAiCrU,EAAMgN,EAAmBsH,EAAcrU,GACpE,OAAOlK,EAAAA,EAAAA,GAAW,gCAADmB,OACmB8V,EAAiB,KAAA9V,OAAIod,GACrD,KACAtU,EACAC,EAER,EA1CIsU,iBA4CJ,SAA0BC,GAA4D,IAAhDL,EAAiB9d,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGoe,EAAAA,EAAkBC,QACxE,OAAOpb,EAAAA,EAAAA,GAAU,GAADpC,OAAIkd,EAAqBD,GAAkB,KAAAjd,OAAIsd,GAAc,CACzEnW,aAAcA,EAAAA,GAAa2B,MAEnC,EA/CI2U,qBAiDJ,SAA8BC,EAAkBT,GAC5C,OAAO7a,EAAAA,EAAAA,GAAU,GAADpC,OAhCpB,SAAiCid,GAC7B,GAAGA,IAAsBM,EAAAA,EAAkBI,WACvC,MAAO,yCAEX,MAAM,IAAIC,MAAM,gCACpB,CA2BwBC,CAAwBZ,GAAkB,KAAAjd,OAAI0d,GAAoB,CAClFvW,aAAcA,EAAAA,GAAa2B,MAEnC,EApDIgV,eAsDJ,SAAwBR,EAAYS,GAChC,IAAM7W,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,kBAADpC,OAAmBsd,EAAU,YAAAtd,OAAW+d,GAAc7W,EAC1E,EA5DI8W,iBA8DJ,SAA0BlV,EAAMC,GAE5B,OAAOlK,EAAAA,EAAAA,GADK,yBAGR,KACAiK,EACAC,EAER,EArEIkV,mBAuEJ,WACI,OAAO7b,EAAAA,EAAAA,GAAU,kCAAmC,CAAE+E,aAAcA,EAAAA,GAAa2B,MACrF,EAxEIoV,8BA0EJ,SAAuCC,GACnC,OAAO/b,EAAAA,EAAAA,GAAU,gCAADpC,OAAiCme,EAAS,KAC9D,EA3EIC,eA6EJ,SAAwBC,GACpB,OAAOjc,EAAAA,EAAAA,GAAU,yBAADpC,OAA0Bqe,GAAY,CAAElX,aAAcA,EAAAA,GAAa2B,MACvF,GA5EA,SAASoU,EAAqBD,GAC1B,OAAIA,IAAsBM,EAAAA,EAAkBI,WACjC,4BAEPV,IAAsBM,EAAAA,EAAkBe,WAClC,GAANte,OAAU0Q,4BAAkC,uBAEzC,gBACX,C,uEClBa6N,EAAoB,CAC7BC,sBAOJ,WACI,OAAOpc,EAAAA,EAAAA,GAAU,2BACrB,EARIqc,mBAUJ,SAA4BrR,GACxB,OAAOhL,EAAAA,EAAAA,GAAU,gBAADpC,OAAiBoN,EAAO,eAC5C,EAXIsR,sBAaJ,SAA+BC,GAC3B,OAAOvc,EAAAA,EAAAA,GAAU,2BAA4B,CACzCsE,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUkW,IAE7B,EAjBIC,wBAmBJ,SAAiCC,GAC7B,OAAOzc,EAAAA,EAAAA,GAAU,4BAADpC,OAA6B6e,GAAa,CAAEnY,OAAQ,UACxE,EApBIoY,oBAgCJ,SACI1R,EACA2R,EACAC,EACAhT,GACA,OAAO5J,EAAAA,EAAAA,GAAU,gBAADpC,OAAiBoN,EAAO,eAAe,CACnD1G,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEsW,eAAAA,EAAgBC,MAAAA,EAAOhT,KAAAA,KAEtD,E,4FCjDaiT,EAAqB,CAC9BC,aAOJ,SAAsB7T,GAClB,OAAOjJ,EAAAA,EAAAA,GAAU,0BAADpC,OAA2BqL,EAAiB,cAChE,EARI8T,eAUJ,SAAwB9T,EAAmB9H,GACvC,IAAMzE,EAAG,0BAAAkB,OAA6BqL,GAChCnE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUlF,IAGzB,OAAOnB,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAjBIkY,WAmBJ,SAAoBtW,EAAMC,GACtB,OAAOlK,EAAAA,EAAAA,GACH,oCACA,KACAiK,EACAC,EAER,EAzBIsW,eA2BJ,SAAwBpW,GACpB,IAEM/B,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEQ,KAAAA,KAG3B,OAAO7G,EAAAA,EAAAA,GAPK,uBAOU8E,EAC1B,EAnCIoY,iBAqCJ,SAA0BjU,GACtB,OAAOjJ,EAAAA,EAAAA,GAAU,mCAADpC,OACuBqL,GACnC,CAAE3E,OAAQ,MAAOS,aAAcA,EAAAA,GAAa2B,MAEpD,E,kFChDayW,EAAgB,CACzBzZ,UAOJ,SAAmB0Z,EAAMC,GACrB,OAAOrd,EAAAA,EAAAA,GAAU,wBAADpC,OAAyBwf,EAAI,KAAAxf,OAAIyf,GACrD,EARIzU,KAUJ,SAAcK,EAAmBG,EAAYkU,EAAgBC,EAAeC,GACxE,IACM1Y,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CACjB4C,kBAAAA,EACAG,WAAAA,EACAkU,eAAAA,EACAC,cAAAA,EACAC,kBAAAA,IAEJzY,aAAcA,EAAAA,GAAamT,MAG/B,OAAOlY,EAAAA,EAAAA,GAbE,gCAaa8E,EAC1B,EAxBIgC,SA0BJ,SAAkBmC,EAAmBwU,GACjC,IACM3Y,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CACjB4C,kBAAAA,EACAwU,WAAAA,IAEJ1Y,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAVE,qCAUa8E,EAC1B,EArCI4Y,aAuCJ,SAAsBzU,EAAmBG,EAAYmO,GACjD,IAAM7a,EAAG,mBAAAkB,OAAsBqL,EAAiB,KAAArL,OAAIwL,EAAU,KAAAxL,OAAI2Z,GAC5DzS,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA9CI6Y,aAgDJ,SAAsB1U,EAAmBG,GACrC,IAAM1M,EAAG,mBAAAkB,OAAsBqL,EAAiB,KAAArL,OAAIwL,GACpD,OAAOpJ,EAAAA,EAAAA,GAAUtD,OAAKO,GAAW,EACrC,E,4FCpCa2gB,EAAe,CACxBC,SAkCJ,WACI,OAAO7d,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,mBAC1D,EAnCIwP,QAqCJ,SAAiBpK,GACb,OAAO1T,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,GAC7E,EAtCIqK,wBAwCJ,SAAiCrK,GAC7B,IAAM5O,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,yCACzE5O,EAER,EAhDIkZ,iBAkDJ,SAA0BtK,GACtB,OAAO1T,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,cAC9F,EAnDIuK,4BAuGJ,SAAqCvK,GACjC,IAAM5O,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kDACzE5O,EAER,EA9GIoZ,iBAyDJ,SAA0BxK,EAA2ByK,GACjD,OAAOne,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,aAAA9V,OAAYugB,EAAkB,gBAE/G,EA5DIC,sBA8DJ,SAA+B1K,GAC3B,OAAO1T,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,uBAC9F,EA/DI2K,uBAiEJ,SAAgC3K,EAA2BsH,GACvD,IAAMlW,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,eAAA9V,OAAcod,EAAY,aACnGlW,EAER,EAzEIwZ,aA2EJ,SAAsBC,GAA+E,IAAzDC,EAAMzhB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAAG0hB,EAAK1hB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG2hB,EAAAA,GAAgBC,mBAC5E,OAAO3e,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,2BAAA1Q,OAA0B6gB,EAAK,YAAA7gB,OAAW4gB,EAAM,gBAAA5gB,OAAe2gB,GAE5G,EA9EIK,oBAgFJ,SAA6BL,GAA+E,IAAzDC,EAAMzhB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAAG0hB,EAAK1hB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG2hB,EAAAA,GAAgBC,mBACnF,OAAO3e,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,2CAAA1Q,OAA0C6gB,EAAK,YAAA7gB,OAAW4gB,EAAM,gBAAA5gB,OAAe2gB,GAE5H,EAnFIM,gBAqFJ,SAAyBnL,EAA2BhL,GAChD,IAAM5D,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,eAAA9V,OAAc8K,EAAa,aACpG5D,EAER,EA7FIga,wBA0GJ,WACI,IAAMha,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,gCACrCxJ,EAER,EAlHIia,kBAoHJ,SAA2BC,EAAoBC,EAAuBC,GAClE,OAAOlf,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,yCAAA1Q,OAAwCohB,EAAU,sBAAAphB,OAAqBqhB,EAAY,0BAAArhB,OAAyBshB,GAEzJ,EAvHIC,oBAyHJ,SAA6BzL,GAAsE,IAA3C0L,EAAmCriB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrF6Q,EAAcS,EAAAA,UAAa+Q,GAEjC,OAAOpf,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiBgQ,GAC/G,EA5HIyR,uBA8HJ,SAAgC3L,EAA2BC,GACvD,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,aACvI,EA/HI2L,eAiIJ,SAAwB5L,GACpB,OAAO1T,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,YAC9F,EAlII6L,WAoJJ,SAAoB7L,GAChB,OAAO1T,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,GAAqB,CAC1FpP,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAEnC,EAxJIwa,WAmIJ,SAAoB9L,EAA2B+L,GAC3C,OAAOzf,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,GAAqB,CAC1FpP,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUoZ,GACrB1a,aAAcA,EAAAA,GAAa8B,MAEnC,EAxII6Y,cA0IJ,SAAuBhM,EAA2BiM,GAC9C,OAAO3f,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,YAAY,CAClGpP,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUsZ,GACrB5a,aAAcA,EAAAA,GAAamT,MAEnC,EA/II0H,mBAwJJ,SAA4BlM,EAA2BC,EAAkCwK,GACrF,OAAOne,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,aAAA/V,OAAYugB,EAAkB,qBAExJ,EA3JI0B,oBA6JJ,SACInM,EACAC,EACAwK,EACA2B,GAEA,OAAO9f,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,aAAA/V,OAAYugB,EAAkB,qBAChJ,CACI7Z,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUyZ,GACrB/a,aAAcA,EAAAA,GAAaC,MAGvC,EA1KI+a,eAmCJ,SAAwBrM,EAA2BC,GAC/C,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,kBAE1H,EAtCIqM,6BAoMJ,SACItM,EACAC,EACAwK,GAEA,OAAOne,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,aAAA/V,OAAYugB,EAAkB,qCAChJ,CACIpZ,aAAcA,EAAAA,GAAa2B,MAGvC,EA9MIuZ,0BA0KJ,SACIvM,EACAC,EACAwK,GAEA,OAAOne,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,aAAA/V,OAAYugB,EAAkB,4BAExJ,EAjLI+B,2BAmLJ,SACIxM,EACAyK,EACAgC,GAEA,OAAOngB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,KAAA9V,OAAIugB,EAAkB,4BAC/F,CACI7Z,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU8Z,GACrBpb,aAAcA,EAAAA,GAAaC,MAGvC,EA/LIob,oBAmOJ,SAA6B1M,EAA2B2M,GACpD,OAAOrgB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,cAAc,CACpGpP,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUga,GACrBtb,aAAcA,EAAAA,GAAaC,MAEnC,EAxOIsb,YA6MJ,SAAqB5M,EAA2BC,EAAkC4M,GAC9E,OAAOvgB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,QAClH,CACIrP,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUka,GACrBxb,aAAcA,EAAAA,GAAaC,MAGvC,EArNIwb,cAuNJ,SAAuB9M,EAA2BC,GAC9C,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,GAC1F,CACIrP,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAGvC,EA9NIyb,oBAwOJ,SAA6B/M,EAA2BC,EAAkC+M,GACtF,OAAO1gB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,kBAAA/V,OAAiB8iB,EAAqB,aACxJ,CACI3b,aAAcA,EAAAA,GAAa2B,MAGvC,EA9OIia,qBAgPJ,SACIjN,EACAC,GAEA,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,2BAClH,CACI5O,aAAcA,EAAAA,GAAa2B,MAGvC,EAzPIka,0BA2PJ,SAAmCC,GAC/B,OAAO7gB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oCACrC,CACIhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEwa,QAAAA,KAGnC,E,kUC5RMC,GAAuBC,EAAAA,EAAAA,IAAA,SAAAD,IAAA,IAAAE,EAAA,MAAAC,EAAAA,EAAAA,GAAA,KAAAH,GAAA,KACzBI,mBAAqB,KAAK,KAE1BC,OAAKvH,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAC,IAAA,OAAAF,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACJ6G,EAAKI,MAAO,IAAIC,EAAAA,GACXC,QAAQzZ,EAAAA,GAAU0Z,oBAAqBP,EAAKQ,yBAC5CC,uBAAuBT,EAAKU,6BAC5BC,iBAAiB,CAAEC,IAAK,SAACC,EAAOhiB,GAAO,OAAKgiB,GAASC,EAAAA,EAASC,OAASf,EAAKY,IAAI/hB,EAAQ,IACxFshB,QAELH,EAAKI,KAAKY,GAAG,oBAAoB,SAAA5b,GAC7B4a,EAAKY,IAAI,2BAA4Bxb,GACrC6b,EAAAA,EAAMC,SAASC,EAAAA,IAAoBC,yBAAyBC,EAAAA,GAAUxjB,MAAMuH,IAChF,IAEA4a,EAAKI,KAAKY,GAAG,wBAAwB,SAAA1N,GACjC2N,EAAAA,EAAMC,SAASC,EAAAA,IAAoBG,iBAAiBhO,GACxD,IAEA0M,EAAKI,KAAKY,GAAG,2BAA2B,WACpCC,EAAAA,EAAMC,SAASC,EAAAA,IAAoBI,sBACvC,IAEAvB,EAAKI,KAAKY,GAAG,YAAY,SAAA1N,GACrB2N,EAAAA,EAAMC,UAASM,EAAAA,EAAAA,GAAiBH,EAAAA,GAAUxjB,MAAMyV,IACpD,IAEA0M,EAAKI,KAAKY,GAAG,eAAe,SAAA1N,GACxB2N,EAAAA,EAAMC,SAASO,EAAAA,IAAiBC,wBAAwBL,EAAAA,GAAUxjB,MAAMyV,IAC5E,IAEA0M,EAAKI,KAAKY,GAAG,sBAAsB,SAAA1N,GAC/B2N,EAAAA,EAAMC,SAASS,EAAAA,EAAqBC,qBAAqBtO,GAC7D,IAEA0M,EAAKI,KAAKY,GAAG,oBAAoB,SAAAa,GAC7BZ,EAAAA,EAAMC,UAASY,EAAAA,EAAAA,KAAgCT,EAAAA,GAAUxjB,MAAMgkB,IACnE,IAEA7B,EAAKI,KAAKY,GAAG,kBAAkB,SAAAa,GAC3BZ,EAAAA,EAAMC,UAASa,EAAAA,EAAAA,KAA8BV,EAAAA,GAAUxjB,MAAMgkB,IACjE,IAEA7B,EAAKI,KAAKY,GAAG,yBAAyB,SAAAa,GAClCZ,EAAAA,EAAMC,UAASc,EAAAA,EAAAA,KAAqCX,EAAAA,GAAUxjB,MAAMgkB,IACxE,IAEA7B,EAAKI,KAAKY,GAAG,qBAAqB,SAAAa,GAC9B7B,EAAKY,IAAI,wCACTK,EAAAA,EAAMC,UAASe,EAAAA,EAAAA,KAA2BZ,EAAAA,GAAUxjB,MAAMgkB,IAC9D,IAEA7B,EAAKI,KAAKY,GAAG,sBAAsB,SAAAa,GAC/BZ,EAAAA,EAAMC,SAASgB,EAAAA,IAAsBV,iBAAiBH,EAAAA,GAAUxjB,MAAMgkB,IAC1E,IAEA7B,EAAKI,KAAKY,GAAG,YAAY,SAAAa,GACrB7B,EAAKY,IAAI,2BACTK,EAAAA,EAAMC,SAASiB,EAAAA,EAAgB7lB,KAAK+kB,EAAAA,GAAUxjB,MAAMgkB,IACxD,IAEA7B,EAAKI,KAAKY,GAAG,4BAA4B,SAAAa,GACrC7B,EAAKY,IAAI,8CACTK,EAAAA,EAAMC,SAASkB,EAAAA,EAAmCC,qCAAqChB,EAAAA,GAAUxjB,MAAMgkB,KACvGZ,EAAAA,EAAMC,SAASoB,EAAAA,EAAgCC,iBAAiBlB,EAAAA,GAAUxjB,MAAMgkB,KAChFZ,EAAAA,EAAMC,SAASsB,EAAAA,EAAsBC,4CAA4CpB,EAAAA,GAAUxjB,MAAMgkB,IACrG,IAEA7B,EAAKI,KAAKY,GAAG,oBAAoB,SAAAa,GAC7B7B,EAAKY,IAAI,mCACTK,EAAAA,EAAMC,SAASwB,EAAAA,IAAqBC,yBAAyBtB,EAAAA,GAAUxjB,MAAMgkB,IACjF,IAEA7B,EAAKI,KAAKY,GAAG,eAAe,SAAAa,GACxB7B,EAAKY,IAAI,qCACTK,EAAAA,EAAMC,SAAS0B,EAAAA,EAA+BC,eAAexB,EAAAA,GAAUxjB,MAAMgkB,IACjF,IAEA7B,EAAKI,KAAKY,GAAG,uBAAuB,SAAA5b,GAChC4a,EAAKY,IAAI,kCACTK,EAAAA,EAAMC,SAAS4B,EAAAA,IAAoBC,OAAO1B,EAAAA,GAAUxjB,MAAMuH,IAC9D,IAEA4a,EAAKI,KAAKY,GAAG,2BAA2B,SAAA5b,GACpC4a,EAAKY,IAAI,yCACT,IAAMtN,EAAO+N,EAAAA,GAAUxjB,MAAMuH,GAC7B6b,EAAAA,EAAMC,SAAS8B,EAAAA,EAAmBC,cAAc3P,IAChD2N,EAAAA,EAAMC,SAASgC,EAAAA,EAAiBD,cAAc3P,EAAK6P,2BAA4B7P,EAAK8P,kBACxF,IAEApD,EAAKI,KAAKiD,gBAAe,SAAAC,GAAK,OAAIrC,EAAAA,EAAMC,SAASC,EAAAA,IAAoBoC,gCAAgCD,GAAO,IAE5GtD,EAAKI,KAAKoD,eAAc,WACpBxD,EAAKE,mBAAqB,KAC1Be,EAAAA,EAAMC,SAASC,EAAAA,IAAoBsC,iCACvC,IAEAzD,EAAKI,KAAKsD,SAAQ,SAACpmB,GACf2jB,EAAAA,EAAMC,SAASC,EAAAA,IAAoBwC,mCAEnC,IAAMC,EAAa5D,EAAKE,oBAAsBF,EAAKE,mBAAmB0D,WACtE5D,EAAKY,IAAI,oBAAqBgD,GAEX,MAAfA,EACAC,EAAAA,EAAeC,SACR9D,EAAKE,mBACZ6D,OAAOC,SAASC,QAAO,GACjB3mB,GACN0iB,EAAKkE,OAEb,IAAG,yBAAAjL,EAAAI,OAAA,GAAAN,EAAA,KACN,KAEDmL,OAAKtL,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAqL,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAxoB,UAAA,OAAA8c,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAAkB,GAAXiL,EAAOG,EAAAvoB,OAAA,QAAAC,IAAAsoB,EAAA,GAAAA,EAAA,GAAG,EAEjBvE,EAAKI,KAAKlhB,QAAUulB,EAAAA,EAAmBC,cACvC1E,EAAKI,KAAKlhB,QAAUulB,EAAAA,EAAmBE,cAAa,CAAAH,EAAArL,KAAA,QACe,OAAnE8H,EAAAA,EAAMC,SAASC,EAAAA,IAAoByD,gCAAgCJ,EAAApL,OAAA,wBAAAoL,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,EAK7D6G,EAAKI,KAAK8D,QAAQ,KAAD,EACvBjD,EAAAA,EAAMC,SAASC,EAAAA,IAAoByD,gCAAgCJ,EAAArL,KAAA,iBAAAqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,SAE/DloB,EAAAA,EAAKwoB,oBAECT,EAAiBG,EAAAK,IAAKL,EAAAK,GAAEE,WAAWC,SAAS,OAE9CZ,EAAUvd,EAAAA,GAAUoe,8CACdX,EAAUzd,EAAAA,GAAUqe,uCAAyC,IACnElF,EAAKY,IAAI,8DAADhkB,OAA+D0nB,EAAO,cAE9Ea,YAAW,kBAAMnF,EAAKkE,QAAQE,EAAQ,GAAEvd,EAAAA,GAAUqe,yCAC3Cb,GACPrE,EAAKY,IAAI,gEACTiD,EAAAA,EAAeC,WAEf9D,EAAKY,IAAI,gEACTmD,OAAOC,SAASC,QAAO,KAI/BhD,EAAAA,EAAMC,SAASC,EAAAA,IAAoBwC,mCAAmC,yBAAAa,EAAAnL,OAAA,GAAA8K,EAAA,mBAE7E,KAED9K,MAAIT,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAsM,IAAA,OAAAvM,EAAAA,EAAAA,KAAAG,MAAA,SAAAqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,UAAAkM,EAAAnM,KAAA,EAEK8G,EAAKI,KAAKlhB,QAAUulB,EAAAA,EAAmBC,aAAY,CAAAW,EAAAlM,KAAA,QACpB,OAA/B6G,EAAKE,mBAAqB,KAAKmF,EAAAlM,KAAA,EACzB6G,EAAKI,KAAK/G,OAAO,KAAD,EAAAgM,EAAAlM,KAAA,gBAAAkM,EAAAnM,KAAA,EAAAmM,EAAAR,GAAAQ,EAAA,SAG1BC,EAAAA,EAAOC,UAAU,sDAAsD,yBAAAF,EAAAhM,OAAA,GAAA+L,EAAA,kBAE9E,KAED5E,sBAAwB,iBAAO,CAC3BgF,mBAAmB,WAAD,IAAAC,GAAA7M,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAE,SAAA4M,IAAA,OAAA7M,EAAAA,EAAAA,KAAAG,MAAA,SAAA2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,WACZ7c,EAAAA,EAAKwoB,kBAAkB,CAADa,EAAAxM,KAAA,eAAAwM,EAAAxM,KAAA,EACT/c,EAAAA,EAAuBC,oBAAoBC,EAAAA,EAAKC,QAASD,EAAAA,EAAKE,eAAeA,cAAc,KAAD,SAAAmpB,EAAAvM,OAAA,SAAAuM,EAAAC,MAAA,OAE/E,OAAxB/B,EAAAA,EAAeC,SAAS6B,EAAAvM,OAAA,SACjB,MAAI,wBAAAuM,EAAAtM,OAAA,GAAAqM,EAAA,KALD,OAOjB,WAPiB,OAAAD,EAAAnM,MAAA,KAAAvd,UAAA,EAAC,GAQtB,EAAC,KAEF2kB,0BAA4B,iBAAO,CAC/BmF,6BAA8B,SAACC,GAG3B,GAFA9F,EAAKE,mBAAqB4F,EAAaC,aAElCzpB,EAAAA,EAAKwoB,kBACN,OAAO,KAGX,OAAQgB,EAAaE,oBACjB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAO,IACf,KAAK,EAAG,OAAO,IACf,KAAK,EAAG,OAAO,IACf,QAAS,OAAO,KAExB,EACH,EAAC,KAEFtnB,KAAO,SAACunB,EAAYC,GAChB,OAAKC,EAAAA,EAAkBC,YAAYpG,EAAKI,KAAKlhB,YAG/BjD,IAAViqB,EACOlG,EAAKI,KAAKiG,OAAOJ,GAErBjG,EAAKI,KAAKiG,OAAOJ,EAAYC,GALzBrpB,QAAQE,QAMvB,EAAE,KAEFupB,iBAAgB,eAAAvV,GAAA6H,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAyN,EAAON,EAAYO,EAAM3nB,GAAO,OAAAga,EAAAA,EAAAA,KAAAG,MAAA,SAAAyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,UAC1CgN,EAAAA,EAAkBC,YAAYpG,EAAKI,KAAKlhB,OAAO,CAADunB,EAAAtN,KAAA,eAAAsN,EAAArN,OAAA,SACxCvc,QAAQE,UAAQ,cAAA0pB,EAAAvN,KAAA,EAAAuN,EAAAtN,KAAA,EAIjB6G,EAAKI,KAAKiG,OAAOJ,EAAYO,EAAM3nB,GAAS,KAAD,EAAA4nB,EAAAtN,KAAA,gBAAAsN,EAAAvN,KAAA,EAAAuN,EAAA5B,GAAA4B,EAAA,SAEjDzG,EAAKY,IAAG6F,EAAA5B,IACR5D,EAAAA,EAAMC,SAASwF,EAAAA,IAAaC,gBAAeF,EAAA5B,KAAS,yBAAA4B,EAAApN,OAAA,GAAAkN,EAAA,kBAE3D,gBAAAK,EAAAC,EAAAC,GAAA,OAAA/V,EAAAuI,MAAA,KAAAvd,UAAA,EAXe,GAWf,KAED6kB,IAAM,SAAC/hB,EAASgJ,GAAO,OAAKyd,EAAAA,EAAOyB,MAAM,YAAcloB,EAASgJ,EAAS,EAAD,KAExEue,YAAc,kBAAMpG,EAAKI,KAAKlhB,QAAUulB,EAAAA,EAAmBuC,SAAS,KAG3DC,EAA0B,IAAInH,C,0IC7O9BoH,GAA8B5lB,EAAAA,EAAAA,KACvC,SAACpC,GAAa,OAAKA,EAAMO,UAAU,IACnC,SAACP,GAAa,OAAKA,EAAMioB,iBAAiB,IAC1C,SAAC1nB,GAA0B,IAAE0nB,IAAsCprB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAO,OACtE0D,EAAWO,KAAI,SAAAC,GAAC,OAAAgB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUhB,GAAC,IAAEE,KAAMinB,EAAcnnB,EAAEE,KAAMgnB,IAAkB,GAAI,IAGvF,SAASC,EAAcC,EAAgBF,GACnC,IAAKE,IAAYA,EAAQrrB,OACrB,MAAO,GAGX,IAAMmE,EAAOgnB,EACPE,EACAA,EAAQhnB,QAAO,SAAAC,GAAC,OAAKA,EAAEC,sBAAsB,IAInD,OAFmB4B,EAAAA,EAAAA,GAAOzB,EAAAA,EAAWC,QAAQR,GAAM,SAACmnB,GAAQ,OAAKnmB,EAAAA,EAAaC,wBAAwBkmB,EAAI,IAAEC,UAGvGlnB,QAAO,SAAAmnB,GAAW,OAAIA,GAAeA,EAAYxrB,MAAM,IACvDgE,KAAI,SAAAwnB,GAAW,OAAIA,EAAYvkB,MAAK,SAACN,EAAQrC,GAAM,OAAKA,EAAE0C,GAAKL,EAAEK,EAAE,GAAC,IACpEhD,KAAI,SAAAwnB,GAAW,OAAIA,EAAY,EAAE,GAC1C,CAEO,SAASC,EAAoBtnB,GAEhC,OAAOinB,EADYjnB,EAAKE,QAAO,SAAAC,GAAC,OAA6B,MAAzBA,EAAEonB,mBAA2B,KAChC,EACrC,C,6HC5BMC,EAAU,SAACC,GACb,MAAO,gBAAgBC,KAAKD,EAChC,EAE8B,SAAAE,IAG7B,OAH6BA,GAAAlP,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAA9B,SAAAC,IAAA,IAAAgP,EAAA,OAAAlP,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,GACqDna,EAAAA,EAAAA,GAAU,2BAA2B,KAAD,EAA7C,OAAlC+oB,EAAkC9O,EAAA2M,KAAA3M,EAAAG,OAAA,SACjC2O,EAAW1nB,QAAO,SAAA2nB,GAAQ,OAAIA,EAAS1pB,OAASqpB,EAAQK,EAAS1pB,KAAK,KAAC,wBAAA2a,EAAAI,OAAA,GAAAN,EAAA,MACjFO,MAAA,KAAAvd,UAAA,CAMD,SAAAksB,IAFC,OAEDA,GAAArP,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAJA,SAAAqL,EAAqC+D,GAAkB,OAAArP,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,cAAAqL,EAAArL,KAAA,GACtCna,EAAAA,EAAAA,GAAU,2BAADpC,OAA4BsrB,EAAU,cAAa,KAAD,SAAA1D,EAAApL,OAAA,SAAAoL,EAAAoB,MAAA,wBAAApB,EAAAnL,OAAA,GAAA8K,EAAA,MAC3E7K,MAAA,KAAAvd,UAAA,UAGcosB,EAAqBtB,GAAA,OAAAuB,EAAA9O,MAAC,KAADvd,UAAA,UAAAqsB,IAWnC,OAXmCA,GAAAxP,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAApC,SAAAsM,EAAqC8C,GAAkB,IAAA3gB,EAAAwb,EAAAvb,EAAA6gB,EAAAjb,EAAAkb,EAAAC,EAAAC,EAAAzsB,UAAA,OAAA8c,EAAAA,EAAAA,KAAAG,MAAA,SAAAqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OAGK,OAHe4J,EAA6ByF,EAAAxsB,OAAA,QAAAC,IAAAusB,EAAA,GAAAA,EAAA,GAAG,GACjGhhB,EAAW,IACX6gB,GAF+C9gB,EAAYihB,EAAAxsB,OAAA,QAAAC,IAAAusB,EAAA,GAAAA,EAAA,GAAG,GAE5C,EAClBpb,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAa,CAAE9F,KAAAA,EAAMC,SAAAA,KAAW6d,EAAAlM,KAAA,GAC1Bna,EAAAA,EAAAA,GAAU,2BAADpC,OAA4BsrB,EAAU,aAAAtrB,OAAYwQ,IAAe,KAAD,EAE9D,GAFnCkb,EAAejD,EAAAO,KACf2C,EAAYxF,EAAO/mB,UACzB+mB,EAAM,GAAAnmB,QAAAuF,EAAAA,EAAAA,GAAO4gB,IAAM5gB,EAAAA,EAAAA,GAAKmmB,KACbtsB,SAAWusB,GAAaD,EAAgBtsB,OAASwL,GAAQ,CAAA6d,EAAAlM,KAAA,gBAAAkM,EAAAjM,OAAA,SACzD2J,GAAM,eAAAsC,EAAAjM,OAAA,SAEV+O,EAAsBD,EAAYG,EAAUtF,IAAO,yBAAAsC,EAAAhM,OAAA,GAAA+L,EAAA,KAC7DgD,EAAA9O,MAAA,KAAAvd,UAAA,CAE0B,SAAA0sB,IAU1B,OAV0BA,GAAA7P,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAA3B,SAAA4M,EAA4BgD,GAAiB,IAAAC,EAAA,OAAA9P,EAAAA,EAAAA,KAAAG,MAAA,SAAA2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,cAAAwM,EAAAxM,KAAA,GACnBna,EAAAA,EAAAA,GAAU,yBAADpC,OAA0B8rB,EAAS,cAAa,KAAD,EAAjE,GAAPC,EAAOhD,EAAAC,MACT+B,EAAQgB,EAAQC,eAAgBjB,EAAQgB,EAAQE,cAAa,CAAAlD,EAAAxM,KAAA,eAAAwM,EAAAvM,OAAA,SACtD,CACHwP,YAAa,GACbC,aAAc,GACdC,SAAU,KACb,cAAAnD,EAAAvM,OAAA,SAEEuP,GAAO,wBAAAhD,EAAAtM,OAAA,GAAAqM,EAAA,MACjBpM,MAAA,KAAAvd,UAAA,CAoBM,IAAMgtB,EAAuB,CAChCC,aAjCH,SAE0BlC,GAAA,OAAA2B,EAAAnP,MAAC,KAADvd,UAAA,EAgCvBktB,gBAzDH,WAE6B,OAAAnB,EAAAxO,MAAC,KAADvd,UAAA,EAwD1BmtB,sBArDH,SAEmCtC,GAAA,OAAAqB,EAAA3O,MAAC,KAADvd,UAAA,EAoDhCosB,sBAAAA,EACAgB,cAvBJ,SAAuB9hB,EAAgB6gB,GAA2E,IAAhD3gB,EAAYxL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EACvEqR,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAa,CAAE9F,KAAAA,KACvC,OAAOvI,EAAAA,EAAAA,GAAU,uBAADpC,OAAwByK,GAAMzK,OAAGsrB,EAAU,IAAAtrB,OAAOsrB,GAAe,IAAEtrB,OAAGwQ,GAC1F,EAqBIgc,gBAnBJ,SAAyBC,GACrB,OAAOrqB,EAAAA,EAAAA,GAAUqqB,EAAK,CAAEtlB,aAAcA,EAAAA,GAAa2B,MACvD,EAkBI4jB,qBAfJ,SAA8BtmB,EAAY1E,GACtC,OAAOU,EAAAA,EAAAA,GAAU,sBAADpC,OAAuBoG,EAAE,KAAApG,OAAI0B,GAAQ,CAAEyF,aAAcA,EAAAA,GAAa2B,MACtF,EAcI6jB,0BAZJ,SAAmCC,GAC/B,OAAOxqB,EAAAA,EAAAA,GAAU,2BAADpC,OAA4B4sB,GAChD,E,kFCzDaC,EAAiC,CAC1C7kB,aAMJ,WACI,OAAO5F,EAAAA,EAAAA,GAAU,4BACrB,EAPI0qB,kBASJ,SAA2BC,EAAoB9nB,EAAiB+nB,GAC5D,OAAO5qB,EAAAA,EAAAA,GAAU,4BAA6B,CAC1CsE,OAAQ,QACR8B,KAAMxH,KAAKyH,UAAU,CAAErC,GAAI2mB,EAAY9nB,OAAAA,EAAQ+nB,KAAAA,IAC/C7lB,aAAcA,EAAAA,GAAamT,OAC5B,EACP,EAdI2S,aAgBJ,SAAsBC,GAClB,OAAO9qB,EAAAA,EAAAA,GAAU,4BAA6B,CAC1CsE,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUykB,GACrB/lB,aAAcA,EAAAA,GAAamT,OAC5B,EACP,EArBI6S,eAuBJ,SAAwBJ,GACpB,OAAO3qB,EAAAA,EAAAA,GAAU,6BAADpC,OAA8B+sB,GAAc,CAAErmB,OAAQ,WAAY,EACtF,E,uGClBA,SAASwY,EAAalP,GAClB,IAAMQ,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,GAAe,CAAC,IAErD,OAAO5N,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,wBAAA1Q,OAAuBwQ,GAEpE,CAmEO,IAAM4c,EAAsB,CAC/BlO,aAAAA,EACAmO,eAnEJ,SAAwBC,GACpB,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,GACjF,EAkEIC,eAhEJ,SAAwBD,GACpB,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,YACrG,EA+DIE,eA7CJ,WACI,OAAOtO,EAAa,CAChBuO,MAAO,UACP5hB,SAHyC1M,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAKpD,EAyCIuuB,yBAvCJ,WAAmE,IAAjC7hB,EAAyB1M,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC1D,OAAO+f,EAAa,CAChBuO,MAAOA,EAAAA,GAAME,kBACb9hB,SAAAA,GAER,EAmCI+hB,sBAjCJ,WACI,OAAO1O,EAAa,CAChBuO,MAAO,iBACP5hB,SAHgD1M,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAK3D,EA6BI0uB,gBA3BJ,WACI,OAAO3O,EAAa,CAChBuO,MAAO,WACP5hB,SAH0C1M,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAKrD,EAuBI2uB,gBAjEJ,WACI,OAAO5O,EAAa,CAChB6O,eAFkD5uB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG6uB,EAAAA,EAAeC,KAGpEtrB,UAHmFxD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAInFsuB,MAAOA,EAAAA,GAAME,mBAErB,EA4DIO,iBA1DJ,WAAgF,IAAjCriB,EAAyB1M,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACvE,OAAO+f,EAAa,CAChB6O,eAF6B5uB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAEC6uB,EAAAA,EAAeG,mBAAgB9uB,EAC7DouB,MAAO,eACP5hB,SAAAA,GAER,EAqDIuiB,aAvBJ,WACI,OAAOlP,EAAa,CAChB6O,eAAgBC,EAAAA,EAAeK,MAC/BZ,MAAO,gBAEf,EAmBIa,0BAjBJ,WACI,OAAOpP,EAAa,CAChBuO,MAAO,gBAEf,E,kHC9Eac,EAAmB,CAC5BC,sBAcJ,WACI,OAAOpsB,EAAAA,EAAAA,GAAU,uCACrB,EAfIqsB,gBAwCJ,SAAyBxhB,GACrB,OAAO7K,EAAAA,EAAAA,GAAU,uCAAwC,CACrDsE,OAAQ,OAAQ8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAC/B4I,GAAM,IACTuK,YAAavK,EAAOuK,cAAgBI,EAAAA,EAAUC,uBAG1D,EA9CI6W,eAgBJ,WACI,OAAOtsB,EAAAA,EAAAA,GAAU,yBACrB,EAjBIusB,sBAmBJ,SAA+BhV,GAC3B,OAAOvX,EAAAA,EAAAA,GAAU,0BAADpC,OAA2B2Z,GAC/C,EApBIiV,UA8CJ,SAAmBC,EAA6BrI,EAAwBsI,GACpE,IAAM5nB,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE+d,iBAAAA,EAAkBsI,UAAAA,IACzC3nB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,qCAADpC,OAAsC6uB,GAAuB3nB,EACjF,EArDI8D,KAuDJ,SAAc+jB,EAA8CvI,EAAyB7M,GACjF,IAAMzS,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CACjBsmB,oBAAAA,EACAvI,iBAAAA,EACA7M,UAAAA,IAEJxS,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAU,yBAA0B8E,EAC/C,EAjEI8nB,oBAmEJ,SAA6B/hB,GACzB,IAAM/F,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwE,GACrB9F,aAAcA,EAAAA,GAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAU,gCAAiC8E,EACtD,EAzEI+nB,UA2EJ,SAAmBhiB,GACf,IAAM/F,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,GAAaC,KAC3BoB,KAAMxH,KAAKyH,UAAU,CACjBymB,cAAejiB,EAAOkiB,oBACtBC,iBAAkBniB,EAAOoiB,0BAGjC,OAAOjtB,EAAAA,EAAAA,GAAU,mCAAoC8E,EACzD,EApFI8W,iBAsFJ,SACIlV,EACAC,GACA,OAAOlK,EAAAA,EAAAA,GACH,mCACA,KACAiK,EACAC,EAER,EA9FIumB,0BAgGJ,WACI,IAAMpoB,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAU,kCAAmC8E,EACxD,EApGIqoB,sBAsGJ,SAA+BtmB,GAC3B,IACM/B,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEQ,KAAAA,KAE3B,OAAO7G,EAAAA,EAAAA,GALK,mCAKU8E,EAC1B,EA5GIsoB,wBA8GJ,WACI,OAAOptB,EAAAA,EAAAA,GAAU,+CACrB,E,kFC1GaqtB,EAAsB,CAC/BC,SApBa,SACbC,GASA,IAAM7wB,GAAMmI,EAAAA,EAAAA,GAAW,mBAAoB0oB,GAC3C,OAAOvtB,EAAAA,EAAAA,GAAUtD,EACrB,EASI8wB,cAPkB,WAElB,OAAOxtB,EAAAA,EAAAA,GAAU,yBACrB,E,iFCHO,IAAMytB,EAAiB,CAC1BjmB,aAjBJ,WACI,OAAOxH,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,mCAC1D,EAgBItG,UAdJ,SAAmB0lB,GACf,IAAM9f,EAAcS,EAAAA,UAAa,CAAEqf,UAAAA,IAEnC,OAAO1tB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,6BAAA1Q,OAA4BgQ,GACtF,EAWI1F,UATJ,SAAmBwlB,EAAmBvlB,GAClC,IAAMyF,EAAcS,EAAAA,UAAa,CAAEqf,UAAAA,EAAWvlB,QAAAA,IAE9C,OAAOnI,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,6BAAA1Q,OAA4BgQ,GACtF,E,kLCVa+f,EAAc,CACvBC,UA2BJ,WACI,OAAOnpB,EAAAA,EAAAA,GAAa,mBACxB,EA5BIopB,qBA8BJ,SAA8BnlB,GAC1B,OAAO1I,EAAAA,EAAAA,GAAU,kCAAoCyL,mBAAmB/C,GAAgB,CAAC,GAAG,EAChG,EA/BIolB,eA0DJ,SAAwB7kB,GACpB,OAAOjJ,EAAAA,EAAAA,GAAU,cAADpC,OAAeqL,EAAiB,YACpD,EA3DI2S,iBAgCJ,SAA0BlV,EAAMC,GAC5B,OAAOlK,EAAAA,EAAAA,GACH,kBACA,KACAiK,EACAC,EAER,EAtCIumB,0BAwCJ,WACI,IAAMpoB,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,2BAA4B8E,EACjD,EA7CIipB,mBA+CJ,SAA4BhS,GACxB,IAAMjX,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,6BAADpC,OAA8Bme,GAAajX,EAC/D,EApDIkpB,iBA0DJ,SAA0BhP,GACtB,OAAOhf,EAAAA,EAAAA,GAAU,8BAADpC,OAA+BohB,GACnD,EA3DIiP,uBA6DJ,SAAgCjP,EAAYkP,EAAgBC,GACxD,IAAMC,EAAWF,EAAc,4CAAAtwB,OACmBohB,GAAU,gDAAAphB,OACNohB,GAEtD,OAAOhf,EAAAA,EAAAA,GAAUouB,OAAUnxB,GAAW,EAAOkxB,EACjD,EAlEIE,YA+EJ,SAAqBC,EAAU/lB,EAAMC,EAAUyM,EAAQG,GACnD,IAAMC,EAAkBC,EAAAA,GAA2BL,GAC7CvY,GAAMmI,EAAAA,EAAAA,GAAW,oBAAqB,CACxC0D,KAAAA,EACAC,SAAAA,EACA4B,UAA0B,OAAfiL,QAAe,IAAfA,OAAe,EAAfA,EAAiBE,UAC5BH,YAAaA,IAAgBI,EAAAA,EAAUC,qBAErC3Q,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIqsB,GAAQ,IAAElZ,YAAaA,IAAgBI,EAAAA,EAAUC,uBAG/E,OAAOzV,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA5FIqR,OAmEJ,SAAgBoY,GACZ,IACMzpB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUkoB,GACrBxpB,aAAcA,EAAAA,GAAamT,MAG/B,OAAOlY,EAAAA,EAAAA,GAPK,aAOU8E,EAC1B,EA3EI0pB,WA6FJ,SAAoB9lB,GAChB,IAAMhM,EAAG,qBAAAkB,OAAwB8K,GAE3B5D,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAUtD,EAAKoI,EAE1B,EArGI2pB,YAuGJ,SAAqBH,EAAU/lB,EAAMC,EAAUyM,GAC3C,IAAMI,EAAkBC,EAAAA,GAA2BL,GAC7CvY,GAAMmI,EAAAA,EAAAA,GAAW,oBAAqB,CAAE0D,KAAAA,EAAMC,SAAAA,EAAU4B,UAAWiL,EAAgBE,YACnFzQ,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUioB,GACrBvpB,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAhHIqoB,sBAkHJ,SAA+BtmB,GAC3B,IAEM/B,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEQ,KAAAA,KAG3B,OAAO7G,EAAAA,EAAAA,GAPK,4BAOU8E,EAC1B,EA1HI4pB,mBA4HJ,SAA4BhmB,GACxB,OAAO1I,EAAAA,EAAAA,GAAU,cAADpC,OAAe8K,GACnC,EA7HIK,OA+HJ,SAAgBL,EAAeimB,GAC3B,IAAMjyB,EAAG,qBAAAkB,OAAwB8K,GAC3B5D,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUsoB,GACrB5pB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAvII8pB,0BAyIJ,SAAmCC,GAC/B,IACM/pB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwoB,GACrB9pB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,0BAOU8E,EAC1B,EAjJIgqB,qBAmJJ,SAA8B7lB,EAAmB8lB,GAC7C,IAAMryB,EAAG,iCAAAkB,OAAoCmxB,EAAU,SAAW,UAAS,KAAAnxB,OAAIqL,GACzEnE,EAAiB,CACnBR,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA1JIkqB,aA4JJ,SAAsB/lB,EAAmBgmB,GACrC,IAAMvyB,EAAG,qBAAAkB,OAAwBqL,GAC3BnE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU4oB,GACrBlqB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EApKIoqB,aAsKJ,SAAsBC,GAClB,OAAOnvB,EAAAA,EAAAA,IAAU6E,EAAAA,EAAAA,GAAW,0BAA2B,CAAEuqB,SAAUD,IACvE,EAvKIE,8BAyKJ,SAAuCpmB,EAAmBqmB,GACtD,IAAM5yB,EAAG,0CAAAkB,OAA6CqL,GAChDnE,EAAiB,CACnBR,OAAQ,QACR8B,KAAMxH,KAAKyH,UAAUipB,GACrBvqB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAjLIyqB,oBAmLJ,SAA6BC,EAAUC,EAASC,EAAUC,GACtD,IACM3Y,EAAQ,CACVxR,KAAML,IAAOqqB,GAAUthB,QAAQ,OAAO0hB,UAAU,GAAG,GAAMxW,cACzDqW,QAAAA,EAASC,SAAAA,EACTG,UAAWF,EAAc3uB,KAAI,SAAA2B,GAAC,MAAK,CAC/BuJ,WAAYvJ,EAAEuJ,WACd6P,UAAWpZ,EAAEoZ,UACb+T,OAAQntB,EAAEmtB,OACVnmB,SAAUhH,EAAEgH,SACZomB,OAAQptB,EAAEotB,OACVla,KAAMma,EAAAA,GAAWnxB,MAAM8D,EAAEkT,MAC5B,KAEC/Q,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU2Q,GACrBjS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAnBK,kCAmBU8E,EAC1B,EAvMImrB,yBAyMJ,SAAkCC,GAC9B,IAAMprB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU6pB,GACrBnrB,aAAcA,EAAAA,GAAamT,MAE/B,OAAOlY,EAAAA,EAAAA,GAAU,8BAA+B8E,EACpD,EA/MIqrB,YAiNJ,SAAqBlnB,GACjB,OAAOjJ,EAAAA,EAAAA,GAAU,2BAADpC,OAA4BqL,EAAiB,KAAK,CAAE3E,OAAQ,OAChF,EAlNI8rB,0BAoNJ,SAAmClkB,GAC/B,OAAOlM,EAAAA,EAAAA,GAAU,kCAADpC,OAAmCsO,GACvD,EArNImkB,gBAuNJ,SAAyBnkB,GACrB,OAAOlM,EAAAA,EAAAA,GAAU,iCAADpC,OAAkCsO,GACtD,E,iJCjN2B,SAAAokB,IAI1B,OAJ0BA,GAAA1W,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAA3B,SAAAC,EAA4BmR,GAA4B,IAAA9c,EAAA,OAAAyL,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACiB,OAA/D/L,EAAcC,EAAAA,UAAa,CAAEkiB,YAAaprB,MAASC,WAAW6U,EAAAG,OAAA,UAE7Dpa,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,2BAAAttB,OAA0BwQ,KAAc,wBAAA6L,EAAAI,OAAA,GAAAN,EAAA,MAC5IO,MAAA,KAAAvd,UAAA,CAoDM,IAAMyzB,EAAqB,CAC9BC,cA3FJ,SAAuBvF,GACnB,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,gBACrG,EA0FIwF,yBAxFJ,SAAkCxF,EAA8ByF,GAC5D,OAAO3wB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,gBAAgB,CAC7G5mB,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUsqB,GACrB5rB,aAAcA,EAAAA,GAAaC,MAEnC,EAmFI4rB,gCAjFJ,SAAyC1F,EAA8BxiB,GACnE,IAAM5D,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,oDAAAttB,OAAmD8K,GAAiB5D,EACzK,EA4EI+rB,gBA1EJ,SAAyB3F,EAA8B4F,GACnD,OAAO9wB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,wBAAAttB,OAAuBkzB,GAAc,CAClIxsB,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,MAEnC,EAsEI+rB,eApEJ,SAAwB7F,EAA8B8F,GAClD,OAAOhxB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,cAAAttB,OAAaozB,GAAY,CACtH1sB,OAAQ,MACRS,aAAcA,EAAAA,GAAaC,MAEnC,EAgEIisB,aAhEF,SAEyBrJ,GAAA,OAAA0I,EAAAhW,MAAC,KAADvd,UAAA,EA+DvBm0B,4BAzDJ,SAAqChG,GACjC,OAAOlrB,EAAAA,EAAAA,GAAU,kBAADpC,OAAmBstB,EAAoB,2CAC3D,EAwDIiG,sBAtDJ,SAA+BjG,EAA8BkG,EAAkBC,GAC3E,IAAIjjB,EAAc,GAElB,GAAIgjB,GAAaC,EAAS,CACtB,IAAMzjB,EAAc,CAChB,cAAezI,IAAOisB,GAAWhsB,OAAOyC,EAAAA,GAAU0C,mBAClD,YAAapF,IAAOksB,GAASjsB,OAAOyC,EAAAA,GAAU0C,oBAGlD6D,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,GACnC,CAEA,OAAO5N,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,+BAAAttB,OAA8BwQ,GACnI,EA0CIkjB,4BAxCJ,SACI7gB,EACAjC,GAEA,IAAMJ,EAAW,GAAAxQ,OAAMyQ,EAAAA,UACnB9P,EAAAA,GAASmQ,mBAAmBF,KAGhC,OAAOxO,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,8CAAA1Q,OAA6C6S,EAAoB,gCAAA7S,OAA+BwQ,GAE7I,EA8BImjB,gBA5BJ,SAAyBrG,EAA8BsG,EAA4B3xB,GAC9E,OAAOG,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,gCAChF,CACI5mB,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAClBmrB,iBAAAA,EACA3xB,QAAAA,IAEHkF,aAAcA,EAAAA,GAAaC,MAGxC,EAiBIysB,4BAfJ,WACI,OAAOzxB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,qCAC1D,E,gHCGO,IAAMojB,EAAe,CACxBC,iBAlFJ,WAAwD,IAA9B7nB,EAAc/M,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAI60B,KACrChkB,EAAc,CAChB9D,SAAU3E,IAAO2E,GAAU1E,UAGzBgJ,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,IACrC,OAAO5N,EAAAA,EAAAA,GAAU,wBAADpC,OAAyBwQ,GAC7C,EA4EIyjB,eA1EJ,SAAwB3G,GACpB,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,SAExF,EAuEI4G,UArEJ,SAAmB5G,GACf,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,gBAExF,EAkEI6G,qBAhEJ,SAA8B7G,GAC1B,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,4BAExF,EA6DI8G,WA3DJ,SAAoB9G,EAA8B+G,GAC9C,OAAOjyB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,SAAS,CACtG5mB,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU4rB,GACrBltB,aAAcA,EAAAA,GAAaC,MAEnC,EAsDI6rB,gBApDJ,SAAyB3F,EAA8B4F,GACnD,OAAO9wB,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,iBAAAttB,OAAgBkzB,GAAc,CAC3HxsB,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,MAEnC,EAgDIktB,mBA9CJ,SAA4BhH,GAA4D,IAA9BphB,EAAc/M,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAI60B,KACrEhkB,EAAc,CAChB9D,SAAU3E,IAAO2E,GAAU1E,UAGzBgJ,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,IAErC,OAAO5N,EAAAA,EAAAA,GAAU,oBAADpC,OAAqBstB,EAAoB,uBAAAttB,OAAsBwQ,GACnF,EAuCI6iB,aArCJ,SAAsB/F,GAClB,IAAM9c,EAAcC,EAAAA,UAAa,CAAEkiB,YAAaprB,MAASC,WAEzD,OAAOpF,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,oBAAAttB,OAAmBwQ,GACxH,EAkCI+iB,sBAhCJ,SAA+BjG,EAA8BkG,EAAkBC,GAC3E,IAAIjjB,EAAc,GAElB,GAAIgjB,GAAaC,EAAS,CACtB,IAAMzjB,EAAc,CAChB,cAAezI,IAAOisB,GAAWhsB,OAAOyC,EAAAA,GAAU0C,mBAClD,YAAapF,IAAOksB,GAASjsB,OAAOyC,EAAAA,GAAU0C,oBAGlD6D,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,GACnC,CAEA,OAAO5N,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,wBAAAttB,OAAuBwQ,GAC5H,EAoBI+jB,wBAlBJ,SAAiCjH,EAA8BrgB,GAC3D,OAAO7K,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuBstB,EAAoB,sCAAsC,CACnI5mB,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwE,GACrB9F,aAAcA,EAAAA,GAAa2B,MAEnC,E,kJCrFa0rB,GAA0B9vB,EAAAA,EAAAA,IACnC,CACI,SAACpC,GAAe,OAAKA,EAAMmyB,SAASC,UAAU1V,KAAK,EACnD,SAAC1c,GAAe,OAAKA,EAAMqyB,QAAQC,YAAYC,iBAAiB,EAChE,SAACvyB,GAAe,OAAKA,EAAM8tB,iBAAiB0E,eAAe,EAC3D,SAACxyB,GAAe,OAAKA,EAAMmyB,SAASM,mBAAmBC,YAAY,IAGvE,SAAChW,EAAOvb,EAAQwxB,EAAuBC,GACnC,IAAMP,EAAUlxB,EACV0xB,GAAyBv0B,EAAAA,EAAAA,IAAiBs0B,KAAyBE,EAAAA,EAAAA,IAAgBF,GACnFG,GAAkBC,EAAAA,EAAAA,IAAmBX,GAErCY,EAAcvW,EAAM5b,KAAI,SAAAoyB,GAAC,OAAAnxB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACxBmxB,GAAC,IACJC,MAAOD,EAAEE,YAA6B,MAAfF,EAAEG,UAAoBC,EAAAA,GAAYC,mBAAmB,GAAD71B,OAAIw1B,EAAEE,WAAU,KAAA11B,OAAIw1B,EAAEG,YAAe,GAChHG,MAAON,EAAEO,YAA6B,MAAfP,EAAEQ,UAAoBJ,EAAAA,GAAYC,mBAAmB,GAAD71B,OAAIw1B,EAAEO,WAAU,KAAA/1B,OAAIw1B,EAAEQ,YAAe,GAChHC,WAAYC,EAAAA,EAAwBV,EAAE10B,SAAO,IAGjD,OAAKq0B,EACEI,EAAY9xB,QAAO,SAAA0yB,GAAI,OAItC,SAA6BX,EAAsBH,EAA6Ce,EAA4B3yB,GAAoC,IAAD4yB,EAAAC,EACrJC,EAA2B,OAAN9yB,QAAM,IAANA,OAAM,EAANA,EAAQmE,KAAKnE,OAAO+yB,eACzCC,GAA8B,OAAlBF,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBj2B,OAAQo2B,EAAAA,EAAuBC,iBAAiBr2B,IAChFs2B,EAA2B,CAACV,EAAAA,EAAwBW,MAAOX,EAAAA,EAAwB72B,UAAW62B,EAAAA,EAAwBY,SAE5H,QACKV,EAAiBh3B,QAASg3B,EAAiB1wB,MAAK,SAAAqxB,GAAC,OAAIvB,EAAEtD,OAAO9J,SAAS2O,IAAMvB,EAAErX,UAAUiK,SAAS2O,EAAE,QAChGtzB,KACIgzB,IAAaG,EAAyBxO,SAASoN,EAAE10B,SAAY00B,EAAE10B,SAAWo1B,EAAAA,EAAwBc,QAAUzvB,MAAS0vB,OAAOzB,EAAE0B,eAAgB,cAC7IT,GAAaF,KAAsBY,EAAAA,EAAAA,IAAmB3B,EAAE0B,eAAgBzzB,EAAOmE,UAChFytB,EAAgB5xB,EAAO2zB,SAAS92B,OAAO62B,EAAAA,EAAAA,IAAmB3B,EAAE6B,eAAgB5zB,EAAO2zB,cACnF/B,EAAgB5xB,EAAO6zB,QAAQh3B,OAAO62B,EAAAA,EAAAA,IAAmB3B,EAAE8B,QAAS7zB,EAAO6zB,aAC3EjC,EAAgB5xB,EAAO8zB,QAAQj3B,OAAO62B,EAAAA,EAAAA,IAAmB3B,EAAEgC,YAAa/zB,EAAO8zB,aAC/ElC,EAAgB5xB,EAAOg0B,WAAWn3B,OAAOo3B,EAAAA,EAAAA,IAAuBj0B,EAAOg0B,WAAYjC,EAAEmC,iBAAkBnC,EAAEgC,iBACzGnC,EAAgB5xB,EAAOm0B,gBAAgBt3B,OAAOo3B,EAAAA,EAAAA,IAAuBj0B,EAAOm0B,gBAAiBpC,EAAEqC,sBAAuBrC,EAAEgC,iBACxHnC,EAAgB5xB,EAAOsI,SAASzL,OAAOw3B,EAAAA,EAAAA,IAAetC,EAAEzpB,SAAUtI,EAAOsI,cACzEspB,EAAgB5xB,EAAOyK,QAAQ5N,OAAOw3B,EAAAA,EAAAA,IAAetC,EAAErD,OAAQ1uB,EAAOyK,aACtEmnB,EAAgB5xB,EAAOs0B,SAASz3B,OAAOw3B,EAAAA,EAAAA,IAAkC,QAApBzB,EAACb,EAAEwC,yBAAiB,IAAA3B,OAAA,EAAnBA,EAAqBvrB,cAAerH,EAAOs0B,cACjG1C,EAAgB5xB,EAAOw0B,eAAe33B,OAAOw3B,EAAAA,EAAAA,IAAetC,EAAEyC,eAAgBx0B,EAAOw0B,oBACrF5C,EAAgB5xB,EAAOy0B,SAAS53B,OAAOw3B,EAAAA,EAAAA,IAAwB,QAAVxB,EAACd,EAAE2C,eAAO,IAAA7B,OAAA,EAATA,EAAWxrB,cAAerH,EAAOy0B,cACvF7C,EAAgB5xB,EAAO0O,IAAI7R,OAAOgG,EAAAA,EAAAA,IAAekvB,EAAErjB,IAAK1O,EAAO0O,SAC/DkjB,EAAgB5xB,EAAOkP,aAAarS,OAAOgG,EAAAA,EAAAA,IAAekvB,EAAE7iB,aAAclP,EAAOkP,kBACjF0iB,EAAgB5xB,EAAO20B,WAAW93B,OAAOgG,EAAAA,EAAAA,IAAekvB,EAAE4C,WAAY30B,EAAO20B,gBAC7E/C,EAAgB5xB,EAAO40B,IAAI/3B,OAAOgG,EAAAA,EAAAA,IAAekvB,EAAE6C,IAAK50B,EAAO40B,SAC/DhD,EAAgB5xB,EAAOoI,SAASvL,OAAOg4B,EAAAA,EAAAA,IAAe9C,EAAE10B,OAAQ2C,EAAOoI,cACvEwpB,EAAgB5xB,EAAO80B,QAAQj4B,OAAOk4B,EAAAA,EAAAA,IAAqB/0B,EAAO80B,QAAS/C,EAAE+C,aAC7ElD,EAAgB5xB,EAAOg1B,QAAQn4B,OAAOk4B,EAAAA,EAAAA,IAAqB/0B,EAAOg1B,QAASjD,EAAEiD,UAI9F,CAlC0CC,CAAoBvC,EAAMd,EAAiBJ,EAAuBN,EAAQ,IADxEY,CAExC,G,uECjCG,SAAS1uB,EACZ/H,EACA65B,GAEgD,IADhDC,EAAgBz5B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG05B,eACnBC,EAAyB35B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACnB45B,EAASH,EAAQI,QAAQl6B,GAE/B,OAAc,MAAVi6B,GACO32B,EAAAA,EAAAA,GAAUtD,EAAK,CAAC,EAAGg6B,GACrBj5B,MAAK,SAACsmB,GACCwS,IACAxS,EAASwS,EAAUxS,IAGvB,IACIyS,EAAQK,QAAQn6B,EAAKkC,KAAKyH,UAAU0d,GACxC,CAAE,MAAA+S,GACEC,QAAQnV,IAAI,wBAChB,CAEA,OAAOmC,CACX,IAGDlmB,QAAQC,QAAQc,KAAKC,MAAM83B,GACtC,C,kFCxBaK,EAAwB,CACjC3uB,OAOJ,SAAezI,GAAqI,IAAlIq3B,EAAUr3B,EAAVq3B,WAAYC,EAAet3B,EAAfs3B,gBAAiBptB,EAAQlK,EAARkK,SAAUC,EAAMnK,EAANmK,OAAQotB,EAAav3B,EAAbu3B,cAAeztB,EAAkB9J,EAAlB8J,mBAAoB0tB,EAAYx3B,EAAZw3B,aAAcC,EAAaz3B,EAAby3B,cAAe9uB,EAAI3I,EAAJ2I,KAAMC,EAAQ5I,EAAR4I,SAc7H1D,EAAiB,CACnBR,OAAQ,OACR8B,KAdgBxH,KAAKyH,UAAU,CAC/ByD,SAAAA,EACAC,OAAAA,EACAktB,WAA0B,MAAdA,OAAqBh6B,EAAYg6B,EAC7CC,gBAAAA,EACAC,cAAAA,EACAztB,mBAAAA,EACAnB,KAAAA,EACAC,SAAAA,EACA0B,cAAektB,EACfhtB,UAAWitB,IAKXtyB,aAAcA,EAAAA,GAAamT,MAE/B,OAAOlY,EAAAA,EAAAA,GAlBK,qBAkBU8E,EAC1B,EA1BIwyB,mBA4BJ,SAA4BL,EAAYntB,EAAUC,EAAQmtB,EAAiBC,EAAeztB,EAAoB0tB,EAAcC,GACxH,IAWMvyB,EAAiB,CACnBR,OAAQ,OACR8B,KAZgBxH,KAAKyH,UAAU,CAC/ByD,SAAAA,EACAC,OAAAA,EACAktB,WAA0B,MAAdA,OAAqBh6B,EAAYg6B,EAAWlR,WACxDmR,gBAAAA,EACAC,cAAAA,EACAztB,mBAAAA,EACAQ,cAAektB,EACfhtB,UAAWitB,IAKXtyB,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAjBK,qBAiBU8E,EAC1B,EA9CIyyB,gBAiDJ,SAAyBpsB,EAAa8rB,GAClC,IACMnyB,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE8E,YAAAA,EAAa8rB,WAAAA,IACpClyB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,cAOU8E,EAC1B,EAzDI0yB,iBA2DJ,WACI,OAAOx3B,EAAAA,EAAAA,GAAU,8BACrB,EA5DIy3B,iBA8DJ,SAA0BC,GACtB,OAAO13B,EAAAA,EAAAA,GAAU,8BAA+B,CAACsE,OAAQ,OAAQ8B,KAAMxH,KAAKyH,UAAUqxB,IAC1F,E,sOC3Da7S,EAAiB,CAC1B8S,MAwCJ,SAAeC,EAAOC,EAAUC,GAC5B,IACMhzB,EAAiB,CACnBR,OAAQ,OACR5G,QAAS,CAAE,eAAgB,oBAC3B0I,KAAMxH,KAAKyH,UAAU,CAAEuxB,MAAAA,EAAOC,SAAAA,EAAUC,SAAAA,KAE5C,OAAO93B,EAAAA,EAAAA,GANK,qBAMU8E,GACjBrH,MAAK,SAAAs6B,GAIF,OAHIA,GAAcA,EAAWC,aACzB16B,EAAAA,EAAK2kB,MAAM8V,GAERA,CACX,GACR,EArDIjT,OAAAA,EACAmT,UA+DJ,WACI,GAAI36B,EAAAA,EAAKwoB,kBAAmB,CACxB,IACMhhB,EAAiB,CACnBR,OAAQ,OACRS,aAAcA,EAAAA,EAAaC,OAG/BhF,EAAAA,EAAAA,GANY,sBAMG8E,GAAgB,EACnC,CACJ,EAxEIozB,eAwEH,WAE4B,OAAAC,EAAA7d,MAAC,KAADvd,UAAA,EAzEzBS,aAAAA,EACA46B,cAoGJ,SAAuBR,GACnB,IACM9yB,EAAiB,CACnBR,OAAQ,OACR5G,QAAS,CAAE,eAAgB,oBAC3B0I,KAAMxH,KAAKyH,UAAU,CAAE,MAASuxB,IAChC7yB,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GARK,6BAQU8E,EAC1B,EA7GIuzB,cA+GJ,SAAuBrhB,GACnB,IACMlS,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU2Q,IAGzB,OAAOhX,EAAAA,EAAAA,GANK,6BAMU8E,EAC1B,EAtHIwzB,iBAwHJ,WACI,OAAOt4B,EAAAA,EAAAA,GAAU,8BACrB,EAzHIu4B,WA2HJ,WACI,OAAOv4B,EAAAA,EAAAA,GAAU,eACrB,EA5HIw4B,kBA+KJ,SAA2BC,GACvB,IACM3zB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEoyB,YAAAA,IACvB1zB,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,uCAOU8E,EAC1B,EAvLI4zB,eAyLJ,SAAwB1hB,GACpB,IACMlS,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU2Q,IAGzB,OAAOhX,EAAAA,EAAAA,GANK,8BAMU8E,GACjBrH,MAAK,SAAAs6B,GAIF,OAHIA,GAAcA,EAAWC,aACzB16B,EAAAA,EAAK2kB,MAAM8V,GAERA,CACX,GACR,EAtMIY,kBA4HJ,WACI,OAAO34B,EAAAA,EAAAA,GAAU,uBACrB,EA7HI44B,iBA+HJ,SAA0BtkB,GACtB,IACMxP,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUiO,IAEzB,OAAOtU,EAAAA,EAAAA,GALK,+BAKU8E,EAC1B,EArII+zB,kBAuIJ,SAA2BvkB,EAAMwkB,GAC7B,IAAMp8B,EAAG,gCAAAkB,OAAmCk7B,GACtCh0B,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUiO,IAEzB,OAAOtU,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA7IIi0B,mBAiKJ,SAA4BzkB,EAAM0kB,GAC9B,IAAMt8B,EAAG,iCAAAkB,OAAoCo7B,GACvCl0B,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUiO,IAEzB,OAAOtU,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAvKIm0B,oBA8IJ,SAA6BH,GACzB,IAAMp8B,EAAG,gCAAAkB,OAAmCk7B,EAAQ,WAKpD,OAAO94B,EAAAA,EAAAA,GAAUtD,EAJM,CACnB4H,OAAQ,SAIhB,EApJI40B,qBAsJJ,SAA8BJ,GAC1B,IAAMp8B,EAAG,gCAAAkB,OAAmCk7B,EAAQ,YAKpD,OAAO94B,EAAAA,EAAAA,GAAUtD,EAJM,CACnB4H,OAAQ,SAIhB,EA5JI60B,qCAkMJ,WACI,IAAMr0B,EAAiB,CACnBC,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,gCAAiC8E,EACtD,EAvMIs0B,mCAyMJ,WACI,IAAMt0B,EAAiB,CACnBC,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,8BAA+B8E,EACpD,EA9MIu0B,+BAgNJ,SAAwCzxB,EAAMkwB,GAC1C,IACMhzB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEuB,KAAAA,EAAMkwB,SAAAA,KAGjC,OAAO93B,EAAAA,EAAAA,GANK,+BAMU8E,GACjBrH,MAAK,SAAAs6B,GAIF,OAHIA,GAAcA,EAAWC,aACzB16B,EAAAA,EAAK2kB,MAAM8V,GAERA,CACX,GACR,EA7NIuB,wBA4PJ,SAAiCb,GAC7B,IACM3zB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEoyB,YAAAA,IACvB1zB,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,yCAOU8E,EAC1B,EApQIy0B,6BA8NJ,WACI,IACMz0B,EAAiB,CACnBC,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GALK,kCAKU8E,EAC1B,EApOI00B,4BAsOJ,SAAqC5xB,EAAMkwB,GACvC,IACMhzB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEuB,KAAAA,EAAMkwB,SAAAA,KAGjC,OAAO93B,EAAAA,EAAAA,GANK,kCAMU8E,EAC1B,EA7OI20B,0BA+OJ,WACI,IACM30B,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GANK,kCAMU8E,EAC1B,EAtPI40B,gBA6QJ,SAAyBhzB,GACrB,OAAOjK,EAAAA,EAAAA,GACH,2BACA,KACAiK,EACA,MACA,EAER,EApRIizB,0BAkQJ,WACI,IACM70B,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GANK,yCAMU8E,EAC1B,EAzQI80B,eAqRJ,SAAwBxiB,GACpB,IAAM1a,GAAMmI,EAAAA,EAAAA,GAAW,4BAA6B,CAAEuS,OAAAA,IAChDtS,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAUtD,EAAKoI,GAAgB,EAC1C,EA3RI+0B,gBA6RJ,WACI,IAAM/0B,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,EAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAU,2BAA4B8E,EACjD,EAlSIg1B,aAoSJ,WACI,OAAO95B,EAAAA,EAAAA,GAAU,SACrB,EArSI+5B,kCAgTJ,WACI,IAAMj1B,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAU,sCAAuC8E,EAC5D,EArTIk1B,gCAuTJ,WACI,IAAMl1B,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAU,0CAA2C8E,EAChE,EA5TIm1B,mBAqSJ,SAA4BC,GACxB,IAAMp1B,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAE6zB,eAAAA,IACvBn1B,aAAcA,EAAAA,EAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAU,oCAAqC8E,EAC1D,EA3SIq1B,eA6TJ,SAAwBh7B,GACpB,IACM2F,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUlH,GACrB4F,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,sBAOU8E,EAE1B,EAtUIs1B,8BAwUJ,SAAuCj7B,GACnC,IACM2F,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUlH,GACrB4F,aAAcA,EAAAA,EAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,wCAOU8E,EAE1B,EAjVIu1B,kCAmVJ,SAA2Cl7B,GACvC,IACM2F,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUlH,GACrB4F,aAAcA,EAAAA,EAAamT,MAE/B,OAAOlY,EAAAA,EAAAA,GANK,uDAMU8E,EAC1B,EA1VIw1B,+BA4VJ,WACI,IAAMx1B,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAU,oCAAqC8E,EAC1D,EAjWIy1B,4BAmWJ,WACI,IAAMz1B,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAU,0CAA2C8E,EAChE,EAxWI01B,uBA0WJ,WACI,IAAM11B,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,EAAa2B,MAE/B,OAAO1G,EAAAA,EAAAA,GAAU,2BAA4B8E,EACjD,GA7VA,SAASggB,IACL7C,EAAAA,EAAMC,SAAS,CAAErY,KAAM4wB,EAAAA,EAAYC,SACnCp9B,EAAAA,EAAKq9B,QACLC,aAAaC,WAAWC,EAAAA,EAAuBC,iBAC/CH,aAAaC,WAAWhzB,EAAAA,EAAUmzB,0CAClCJ,aAAaC,WAAWhzB,EAAAA,EAAUozB,qCAClCC,EAAAA,EAAQC,QAAQC,EAAAA,EAAOzD,MAC3B,CAc6B,SAAAQ,IAY5B,OAZ4BA,GAAAve,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAA7B,SAAAC,IAAA,IAAAie,EAAAqD,EAAA,OAAAxhB,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACwB,OAAhB6d,EAAc,GAAE/d,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEG3c,IAAe,KAAD,GAA3BF,EAAI2c,EAAA2M,OACEtpB,EAAK06B,cACbA,EAAc16B,EAAK06B,aACtB/d,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAEDqM,EAAAA,EAAOC,UAAStM,EAAA4L,GAAI,2CACpBf,IAAS,eAAA7K,EAAAG,OAAA,SAEN4d,GAAW,yBAAA/d,EAAAI,OAAA,GAAAN,EAAA,mBACrBO,MAAA,KAAAvd,UAAA,CAED,SAASS,IACL,IACMsH,EAAiB,CACnBR,OAAQ,OACR5G,QAAS,CAAE,eAAgB,oBAC3B0I,KAAMxH,KAAKyH,UAAU/I,EAAAA,EAAKE,iBAG9B,OAAO89B,MAPK,4BAOMx2B,GACbrH,MAAK,SAAAolB,GAAQ,OAAIA,EAAS0Y,GACrB1Y,EAAS3K,OACTra,QAAQE,OAAO8kB,EAAS,GACtC,C,4FCjCO,IAAM2Y,EAAc,CACvBC,QAzEJ,SAAiB5wB,GACb,OAAO7K,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,kBAAkB,CACpEhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwE,IAE7B,EAqEI6wB,kBAnEJ,SAA2B7wB,GACvB,IAAM+C,EAAcS,EAAAA,UAAaxD,GAAU,CAAC,GAC5C,OAAO7K,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,yBAAA1Q,OAAwBgQ,GAErE,EA+DI+tB,eA7DJ,SAAwBjzB,GAAqE,IAA9CmC,EAAuB9N,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChEqR,EAAcC,EAAAA,UAAaxD,GAEjC,OAAO7K,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,mBAAA1Q,OAAkB8K,EAAa,KAAA9K,OAAIwQ,GAEhF,EAwDIwtB,mBAtDJ,SAA4BC,GACxB,OAAO77B,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,kBAAkB,CACpEhK,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUw1B,IAE7B,EAkDIC,WAhDJ,SAAoBpzB,GAChB,OAAO1I,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,mBAAA1Q,OAAkB8K,GACvD,CACIpE,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAGvC,EAyCI6rB,gBAvCJ,SAAyBC,GACrB,IAAMp0B,EAAG,GAAAkB,OAAM0Q,4BAAkC,yCAAA1Q,OAAwCkzB,GAEnFhsB,EAAiB,CACnBR,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA+BImW,iBA7BJ,SAA0B8gB,EAA2Brb,GACjD,IAAM5b,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,mBAAA1Q,OAAkBm+B,EAAiB,eAAAn+B,OAAc8iB,EAAqB,aAC3G5b,EAER,EAqBIk3B,kBAnBJ,SAA2BD,GACvB,IAAMj3B,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,mBAAA1Q,OAAkBm+B,EAAiB,uBACxEj3B,EAER,E,8TCxEam3B,EAAsB,SAACC,GAA0B,OAAK,SAACh8B,GAChE,OAAOg8B,IAAiBC,EAAAA,EAAaC,MAC/Bl8B,EAAMm8B,gBAAgBC,YACtBp8B,EAAMm8B,gBAAgBE,eAChC,CAAE,EAEWC,GAA2Bl6B,EAAAA,EAAAA,KACpC,SAACpC,GAAe,OAAKA,EAAMm8B,gBAAgBI,mBAAmB,IAC9D,SAAAC,GAAgB,OAAIA,CAAgB,IAG3BC,EAAmB,SAACT,GAA0B,OAAK,SAACh8B,GAC7D,OAAO+7B,EAAoBC,EAApBD,CAAkC/7B,GAAO08B,KACpD,CAAE,EAGWC,EAAkB,SAACX,GAA0B,OACtD55B,EAAAA,EAAAA,IAAe,CAAC25B,EAAoBC,GAAeY,EAA0BZ,KAAgB,SAACI,EAAaj7B,GACvG,IAAA07B,EAEIT,EADAM,MAASI,EAAmBD,EAAnBC,oBAAqBC,EAAqBF,EAArBE,sBAAuBC,EAAgBH,EAAhBG,iBAEjDzK,EAAqCpxB,EAArCoxB,kBAAmB0K,EAAkB97B,EAAlB87B,cAErBC,EAA+F,IAApE3K,EAAkB3mB,QAAQzK,OAAOA,QAAO,SAAAg8B,GAAC,OAAIA,EAAEC,QAAQ,IAAEtgC,OAEpFugC,EAAwBJ,GAAgBK,EAAAA,EAAAA,IAAkBL,EAAejB,GAAgB,CAAC,EAC1FuB,GAA4BD,EAAAA,EAAAA,IAAkB/K,EAAmByJ,GAGvE,MAAO,CACHwB,gCAHmCC,EAAAA,EAAAA,SAAQJ,EAAuBE,GAIlET,oBAAAA,EACAI,yBAAAA,EACAH,sBAAAA,EACAC,iBAAAA,EAER,GAAG,EAEMJ,EAA4B,SAACZ,GAA0B,OAAK,SAACh8B,GACtE,OAAO+7B,EAAoBC,EAApBD,CAAkC/7B,GAAOmB,MACpD,CAAE,EAGWu8B,EAAgC,SAAC1B,GAA0B,OAAK,SAACh8B,GAC1E,OAAOg8B,IAAiBC,EAAAA,EAAa0B,iBAC/BC,EAA+B59B,GAC/B+7B,EAAoBC,EAApBD,CAAkC/7B,GAAOmB,MACnD,CAAE,EAEW08B,EAA4C,SAAC7B,GAA0B,OAAK,SAACh8B,GACtF,OAAQ+7B,EAAoBC,EAApBD,CAAkC/7B,GAAO89B,kBACrD,CAAE,EAEWF,GAAiCx7B,EAAAA,EAAAA,IAC1Ck6B,GACA,SAAAE,GAAgB,OAAIA,EAAiBr7B,MAAM,IAGlC48B,GAAgC37B,EAAAA,EAAAA,IACzCk6B,GACA,SAAAE,GAAgB,OAAIA,EAAiBE,KAAK,IAGxCsB,GAAwC57B,EAAAA,EAAAA,IAAe,CAAC27B,EAA+BH,IAAiC,SAAClB,EAAOrK,GAClI,IACIlxB,EACAkxB,EADAlxB,OAAQ88B,EACR5L,EADQ4L,cAAeC,EACvB7L,EADuB6L,eAGnBC,EAAczB,EAAdyB,UAGFC,EAAeF,EAChBp9B,KAAI,SAACq8B,GAAS,OAAKh8B,EAAOg8B,EAAmC,IAC7Dh8B,QAAO,SAAAg8B,GACJ,IAAMh8B,EAASg8B,EACTkB,EAAclB,EAEdmB,EAAYD,EAAYl9B,OAAOI,KAC/Bg9B,EAAUF,EAAYl9B,OAAOmJ,GAEnC,SAAInJ,EAAOwI,OAAS60B,EAAAA,EAAWC,OACvBH,GAAaC,GAAWG,OAAOJ,GAAaI,OAAOH,GAI/D,IAEJ,OAAON,KAAmBG,EAAathC,QAAUqhC,CACrD,IA0DaQ,EAAwB,SAAC3C,GAC9B,OAAIA,IAAiBC,EAAAA,EAAa0B,iBACvBK,EA1DmB,SAAChC,GAA0B,OAAK55B,EAAAA,EAAAA,IAAe25B,EAAoBC,IAAe,SAAAI,GACpH,IAAAwC,EAGIxC,EAFAM,MAASmC,EAAuBD,EAAvBC,wBAAyBC,EAAkBF,EAAlBE,mBAAkBC,EAEpD3C,EADAj7B,OAAUA,EAAM49B,EAAN59B,OAAQ88B,EAAac,EAAbd,cAGhBG,EAH6CW,EAAdb,eAIhCp9B,KAAI,SAACq8B,GAAS,OAAKh8B,EAAOg8B,EAAgC,IAC1Dh8B,QAAO,SAAAg8B,GAAM,IAAD6B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACHt+B,EAASg8B,EACTuC,EAAavC,EACbkB,EAAclB,EACdwC,EAAsBxC,EAEtByC,EAAoC,QAA5BZ,EAAGU,EAAWv+B,OAAO+d,eAAO,IAAA8f,GAAiB,QAAjBC,EAAzBD,EAA2Ba,uBAAe,IAAAZ,OAAjB,EAAzBA,EAA4C19B,KACvDu+B,EAAkC,QAA5BZ,EAAGQ,EAAWv+B,OAAO+d,eAAO,IAAAggB,GAAiB,QAAjBC,EAAzBD,EAA2BW,uBAAe,IAAAV,OAAjB,EAAzBA,EAA4C70B,GACrDy1B,EAA0C,QAA5BX,EAAGM,EAAWv+B,OAAO+d,eAAO,IAAAkgB,GAAkB,QAAlBC,EAAzBD,EAA2BY,wBAAgB,IAAAX,OAAlB,EAAzBA,EAA6C99B,KAC9D0+B,EAAwC,QAA5BX,EAAGI,EAAWv+B,OAAO+d,eAAO,IAAAogB,GAAkB,QAAlBC,EAAzBD,EAA2BU,wBAAgB,IAAAT,OAAlB,EAAzBA,EAA6Cj1B,GAC5Dg0B,EAAYD,EAAYl9B,OAAOI,KAC/Bg9B,EAAUF,EAAYl9B,OAAOmJ,GAC7B41B,EAA6D,QAA5CV,EAAGG,EAAoBx+B,OAAO+yB,sBAAc,IAAAsL,OAAA,EAAzCA,EAA2Cj+B,KAC/D4+B,EAA2D,QAA5CV,EAAGE,EAAoBx+B,OAAO+yB,sBAAc,IAAAuL,OAAA,EAAzCA,EAA2Cn1B,GAEnE,GACInJ,EAAOi8B,WACNj8B,EAAOwI,OAAS60B,EAAAA,EAAW4B,oBACxBj/B,EAAOwI,OAAS60B,EAAAA,EAAW9M,MAC3BvwB,EAAOwI,OAAS60B,EAAAA,EAAW6B,WAC3Bl/B,EAAOwI,OAAS60B,EAAAA,EAAW8B,2BACjC,CACE,GAAIn/B,EAAOwI,OAAS60B,EAAAA,EAAW6B,WAEvBT,GACAE,KACCS,EAAAA,EAAAA,IAAaX,EAASY,iBAAkBD,EAAAA,EAAAA,IAAaT,EAAOU,gBAE7D,OAAO,EAIf,IAAKZ,GAAYE,MAAaF,IAAaE,GAAS,OAAO,EAC3D,GAAIF,GAAYE,GAAUF,EAAWE,EAAQ,OAAO,EACpD,GAAIC,GAAkBE,GAAgBvB,OAAOqB,GAAkBrB,OAAOuB,GAAe,OAAO,EAC5F,GAAIC,GAAqBC,GAAmBD,EAAkB56B,KAAO66B,EAAgB76B,KAAM,OAAO,CACtG,CAEA,SAAInE,EAAOi8B,UAAYj8B,EAAOwI,OAAS60B,EAAAA,EAAWC,OAC1CH,GAAaC,GAAWG,OAAOJ,GAAaI,OAAOH,GAI/D,IAEJ,OAAON,GAAiBY,GAA2BC,KAAwBV,EAAathC,MAC5F,GAAE,CAOa2jC,CAA8BzE,EAC7C,C,kFC7HO,IAAM0E,EAAkC,CAC3CC,+BA/BJ,WACI,OAAO7gC,EAAAA,EAAAA,GAAU,kBACrB,EA8BIU,cA5BJ,WACI,OAAOV,EAAAA,EAAAA,GAAU,kBACrB,EA2BI8gC,YAzBJ,SAAqBj2B,GACjB,IAAM/F,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwE,GACrB9F,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAU,kBAAmB8E,EACxC,EAmBIi8B,gBAjBJ,SAAyBzsB,GACrB,IAAMxP,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUiO,GACrBvP,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAU,kBAAmB8E,EACxC,EAWIk8B,2BATJ,WACI,OAAOhhC,EAAAA,EAAAA,GAAU,qCAAiC/C,GAAW,EACjE,E,8JC1BMgkC,EAAY,SAAA7hB,GAAO,OAAKA,EAAQ9a,QAAU,OAAO48B,aAAc,EAE/DC,EAAe,SAAAC,GAAK,OAAI,IAAIvjC,SAAQ,SAAAC,GAAO,OAAIqoB,WAAWroB,EAASsjC,EAAM,GAAE,EAEpEphC,EAAY,SAACtD,GAAqG,IAAhG0iB,EAAOriB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAG25B,EAAyB35B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAAUoxB,EAAWpxB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,QAAGE,EAAWokC,EAAYtkC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAC9GD,EAA2B45B,OAC3Bz5B,EACW,OAAXkxB,QAAW,IAAXA,EAAAA,EAAejxB,EAAAA,EAA6BC,SAE5CmkC,EAAc,eAAA1hC,GAAAga,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAC,EAAO8I,EAAU9d,GAAY,OAAA8U,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,WAC5C0I,EAAS0Y,GAAG,CAADthB,EAAAE,KAAA,SAAAF,EAAA4L,GACH9gB,EAAYkV,EAAAE,KAAAF,EAAA4L,KACV0b,EAAAA,EAAcv8B,KAAI,EAAAiV,EAAA4L,KAClB0b,EAAAA,EAAc76B,KAAI,yBAAAuT,EAAAG,OAAA,SADU,CAAC,GAAC,OAEiB,OAFjBH,EAAAunB,GAE1BC,EAAAA,GAAUC,wBAAwB7e,GAAS5I,EAAAE,KAAA,EACrC0I,EAASjmB,OAAM,cAAAqd,EAAA0nB,GAAA1nB,EAAA2M,KAAA3M,EAAAG,OAAA,UAD3B9a,KAAI2a,EAAAunB,GACJ5kC,KAAIqd,EAAA0nB,KAAA,eAAA1nB,EAAAG,OAAA,SAE4B,MAApByI,EAASnkB,OAAiBmkB,EAAS3K,YAASjb,GAAS,QAY5E,IARmB,WAChB,IAAMqH,EAAS28B,EAAU7hB,GAEzB,OACIiiB,GA3BS,IA4BG,QAAX/8B,GAA+B,SAAXA,IACD,MAApBue,EAASnkB,MAEjB,CAEIkjC,GAAsB,CAAD3nB,EAAAE,KAAA,SAC4D,OAAjFmM,EAAAA,EAAOyB,MAAM,0BAA2B,CAAErrB,IAAAA,EAAK2kC,aAAcA,EAAe,IAAKpnB,EAAAG,OAAA,SAC1E+mB,EAAa,KAAK1jC,MAAK,kBAAMuC,EAAUtD,EAAK0iB,EAASsX,EAA2BvI,IAAckT,EAAa,KAAC,eAAApnB,EAAAG,OAAA,SAGhHynB,EAAQhf,IAAS,yBAAA5I,EAAAI,OAAA,GAAAN,EAAA,KAC3B,gBA5BmB6N,EAAAC,GAAA,OAAAjoB,EAAA0a,MAAA,KAAAvd,UAAA,KA8BpB,OAAOK,EAAAA,EACFC,oBAAoBC,EAAAA,EAAKC,QAASD,EAAAA,EAAKE,eAAeA,cACtDC,MAAK,SAAAu6B,GAAW,OAAIsD,MAAM5+B,EAAKolC,EAAmB1iB,EAAS4Y,EAAal7B,GAA0B,IAClGW,MAAK,SAAAolB,GAAQ,OAAIye,EAAeze,EAAUzD,EAAQra,aAAa,GACxE,EAEM88B,EAAU,SAAAhf,GAAQ,OACpBA,EACKhc,OACApJ,MAAK,SAAAoJ,GAAI,OAAIhJ,QAAQE,OAAO,CACzBW,OAAQmkB,EAASnkB,OACjBmB,QAAUgH,GAAQgc,EAASkf,YAC7B,GAAC,EAELD,EAAqB,WAAwC,IAAvC1iB,EAAOriB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGi7B,EAAWj7B,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAAEE,EAAMJ,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EACnDqH,EAAS28B,EAAU7hB,GAEzB,OAAAnd,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACOmd,GAAO,IACV9a,OAAAA,EACAnH,OAAAA,EACAO,QAAS0hB,EAAQ1hB,UAAOuE,EAAAA,EAAAA,GAAA,CACpB,cAAiB+1B,GAAW,UAAAp6B,OAAco6B,GAC1C,OAAU,mBACV,eAAgB,oBACD,QAAX1zB,GAAqB,CACrB,gBAAiB,WACjB,OAAU,cAI1B,C,kFC3Ea09B,EAA0B,CACnCC,oBAKJ,WACI,OAAOjiC,EAAAA,EAAAA,GAAU,yBACrB,EANIkiC,qBAQJ,SAA8BC,GAC1B,IAAMr9B,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU87B,GACrBp9B,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,yBAA0B8E,EAC/C,EAfIs9B,iBAiBJ,SAA0BC,GACtB,IAAMv9B,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUg8B,GACrBt9B,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,8CAA+C8E,EACpE,E,6FCRaw9B,EAA6B,CACtCC,qBAqCJ,SAA8B1zB,EAAyDvG,GACnF,IAAMk6B,EAAe,CACjBC,QAASn6B,GAGb,OAAOtI,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,gCAAgC,CAClFhK,OAAQ,OACR8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAI4M,GAAmB2zB,KAErD,EA7CIE,0BAuDJ,SAAmC7zB,GAC/B,OAAO7O,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,sCAAsC,CACxFhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwI,IAE7B,EA3DI8zB,6BA8CJ,SAAsCC,GAClC,OAAO5iC,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,2CAA2C,CAChFhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEu8B,QAAAA,KAE/B,EAnDIC,+BA2BJ,SAAwCC,GACpC,OAAO9iC,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,gCAAgC,CAClFhK,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUy8B,IAE7B,EA/BIC,wBA2DJ,SAAiCl0B,EAAyDvG,GACtF,IAAMk6B,EAAe,CACjBC,QAASn6B,GAGb,OAAOtI,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,uCAAuC,CACzFhK,OAAQ,OACRS,aAAcA,EAAAA,GAAa2B,KAC3BN,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAI4M,GAAmB2zB,KAErD,EApEIQ,mBA4FJ,WACI,OAAOhjC,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,sCAC1D,EA7FI20B,uBAqEJ,SAAgCv6B,GAAwD,IAAjCw6B,EAAyBnmC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACzE+H,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,iCAAA1Q,OAAgC8K,EAAa,8BAAA9K,OAA6BslC,GAC/Gp+B,EAER,EA7EIq+B,4BA+EJ,SAAqCz6B,GAAiD,IAA1BooB,EAAkB/zB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACvE+H,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,iCAAA1Q,OAAgC8K,EAAa,wCAAA9K,OAAuCkzB,GACzHhsB,EAER,EAvFIs+B,8BAWJ,SACIv0B,GAGA,OAAO7O,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,2CAA2C,CAC7FhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwI,IAE7B,EAlBIw0B,uBAGJ,SAAgC36B,GAC5B,OAAO1I,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,iCAAA1Q,OAAgC8K,GAAiB,CACnGpE,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAEnC,E,uECvCas+B,EAAsB,CAC/B5jC,KAGJ,SAAcuJ,EAA2BpJ,GACrC,IAAMiF,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUxG,IAGzB,OAAOG,EAAAA,EAAAA,GAAU,8BAADpC,OAA+BqL,GAAqBnE,EACxE,E,6FCAay+B,GAA8CjhC,EAAAA,EAAAA,IACvD,CALqB,SAACrB,GAAW,OAAKA,EAAEoxB,SAASmR,WAAW5mB,KAAM,EAC3C,SAAC3b,GAAW,OAAKA,EAAE+sB,iBAAiB0E,iBAAmB,EAAG,EACnE,SAACzxB,GAAW,OAAKA,EAAEsxB,QAAQkR,SAAU,IAInD,SAACD,EAAY9Q,EAAiBrxB,GAC1B,IAAKmiC,IAAeA,EAAWxmC,OAAQ,MAAO,GAC9C,IAAMu1B,EAAUlxB,EAAOoxB,kBACjBQ,GAAkBC,EAAAA,EAAAA,IAAmBX,GAE3C,OAAOiR,EACFxiC,KAAI,SAAA2B,GAAC,OAAAV,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCU,GAAC,IACJlC,WAAYkC,EAAElC,WAAWY,QACrB,SAAAJ,GAAC,OA+BrB,SAA0ByiC,EAAuBC,GAA0D,IAA7BC,EAAqB7mC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAClG,OAAK6mC,EAAY5mC,QACV4mC,EAAYtgC,MAAK,SAAAqxB,GACpB,IAAMkP,EAAOlP,EAAEmP,cACf,OACkD,IAA9CJ,EAAcI,cAAcC,QAAQF,IACe,IAAnDF,EAAS5nB,UAAU+nB,cAAcC,QAAQF,IACO,IAAhDF,EAAS7T,OAAOgU,cAAcC,QAAQF,EAE9C,GACJ,CAxCwBG,CAAiBrhC,EAAErD,KAAM2B,EAAGyxB,MAC1BH,GAO1B,SAA6BtxB,EAAsBgyB,EAA6C5xB,GAA+B,IAAD4iC,EAAAC,EAC1H,QACKjR,EAAgB5xB,EAAO2zB,SAAS92B,OAAO62B,EAAAA,EAAAA,IAAmB9zB,EAAEg0B,eAAgB5zB,EAAO2zB,cACnF/B,EAAgB5xB,EAAO6zB,QAAQh3B,OAAO62B,EAAAA,EAAAA,IAAmB9zB,EAAEi0B,QAAS7zB,EAAO6zB,aAC3EjC,EAAgB5xB,EAAO8zB,QAAQj3B,OAAO62B,EAAAA,EAAAA,IAAmB9zB,EAAEm0B,YAAa/zB,EAAO8zB,aAC/ElC,EAAgB5xB,EAAOg0B,WAAWn3B,OAAOo3B,EAAAA,EAAAA,IAAuBj0B,EAAOg0B,WAAYp0B,EAAEs0B,iBAAkBt0B,EAAEm0B,iBACzGnC,EAAgB5xB,EAAOm0B,gBAAgBt3B,OAAOo3B,EAAAA,EAAAA,IAAuBj0B,EAAOm0B,gBAAiBv0B,EAAEw0B,sBAAuBx0B,EAAEm0B,iBACxHnC,EAAgB5xB,EAAOy0B,SAAS53B,OAAOw3B,EAAAA,EAAAA,IAAwB,QAAVuO,EAAChjC,EAAE80B,eAAO,IAAAkO,OAAA,EAATA,EAAWv7B,cAAerH,EAAOy0B,cACvF7C,EAAgB5xB,EAAOsI,SAASzL,OAAOw3B,EAAAA,EAAAA,IAAez0B,EAAE0I,SAAUtI,EAAOsI,cACzEspB,EAAgB5xB,EAAOyK,QAAQ5N,OAAOw3B,EAAAA,EAAAA,IAAez0B,EAAE8uB,OAAQ1uB,EAAOyK,aACtEmnB,EAAgB5xB,EAAO8iC,SAASjmC,OAAOw3B,EAAAA,EAAAA,IAAez0B,EAAEmjC,cAAe/iC,EAAO8iC,cAC9ElR,EAAgB5xB,EAAOw0B,eAAe33B,OAAOw3B,EAAAA,EAAAA,IAAez0B,EAAE40B,eAAgBx0B,EAAOw0B,oBACrF5C,EAAgB5xB,EAAOs0B,SAASz3B,OAAOw3B,EAAAA,EAAAA,IAAkC,QAApBwO,EAACjjC,EAAE20B,yBAAiB,IAAAsO,OAAA,EAAnBA,EAAqBx7B,cAAerH,EAAOs0B,cACjG1C,EAAgB5xB,EAAO0O,IAAI7R,OAAOgG,EAAAA,EAAAA,IAAejD,EAAE8O,IAAK1O,EAAO0O,SAC/DkjB,EAAgB5xB,EAAOkP,aAAarS,OAAOgG,EAAAA,EAAAA,IAAejD,EAAEsP,aAAclP,EAAOkP,kBACjF0iB,EAAgB5xB,EAAO20B,WAAW93B,OAAOgG,EAAAA,EAAAA,IAAejD,EAAE+0B,WAAY30B,EAAO20B,gBAC7E/C,EAAgB5xB,EAAO40B,IAAI/3B,OAAOk4B,EAAAA,EAAAA,IAAqB/0B,EAAO40B,IAAKh1B,EAAEg1B,SACrEhD,EAAgB5xB,EAAO80B,QAAQj4B,OAAOk4B,EAAAA,EAAAA,IAAqB/0B,EAAO80B,QAASl1B,EAAEk1B,aAC7ElD,EAAgB5xB,EAAOg1B,QAAQn4B,OAAOk4B,EAAAA,EAAAA,IAAqB/0B,EAAOg1B,QAASp1B,EAAEo1B,SAEtF,CA3BqCC,CAAoBr1B,EAAGgyB,EAAiBV,GAAS,KACrE,IAEJlxB,QAAO,SAAAsB,GAAC,OAAIA,EAAElC,WAAWzD,MAAM,GACxC,G,wBC/BG,SAASqnC,EAAWC,GACvB,OAAO/kC,OACFC,KAAK8kC,GACLtjC,KAAI,SAAA9C,GAAG,OAAIomC,EAAMpmC,GAAOA,EAAM,EAAE,IAChCqmC,KAAK,IACd,C,yNCQMC,EAAsB,SAACtkC,GAAe,OAAKA,EAAMmyB,SAASoS,gBAAiB,EAC3EC,EAA6B,SAACxkC,GAAe,OAAKA,EAAMmyB,SAASsS,uBAAwB,EACzFC,EAA0B,SAAC1kC,GAAe,OAAKA,EAAMmyB,SAASwS,oBAAqB,EAI5EC,EAAgB,SAACC,EAAoCC,EAAqBC,EAAmBtkC,EAAwCE,GAA0B,OACxKkkC,EACK1jC,QAAO,SAAA4B,GAAC,IAAAiiC,EAAA,OACJ5nC,EAAAA,EAAK6nC,SAAS9Z,EAAAA,GAAM+Z,qBAAuBvkC,EACtCoC,EAAEH,iBACM,OAAVnC,QAAU,IAAVA,GAAgF,QAAtEukC,EAAVvkC,EAAYgH,MAAK,SAAChE,GAA2B,OAAKA,EAAEC,gBAAgBI,KAAOf,EAAEe,EAAE,WAAC,IAAAkhC,OAAtE,EAAVA,EAAkFrhC,mBAAoBC,EAAAA,GAA0BC,UAC9HihC,EAAS1hC,MAAK,SAAA+hC,GAAE,OAAIA,EAAG9tB,YAActU,EAAEe,EAAE,KAC3CihC,EAAM3hC,MAAK,SAAAgiC,GAAE,OAAIA,EAAG/tB,YAActU,EAAEe,EAAE,KACtCf,EAAEsiC,kBACiB,MAAnBtiC,EAAEuiC,aAAqB,GAC7B,EAEGC,GAAkBnjC,EAAAA,EAAAA,IAC3B,CAACkiC,EAAqBE,EAA4BE,EAhBjB,SAAC1kC,GAAe,OAAKA,EAAMmyB,SAASqT,yBAA0B,EAC7E,SAACxlC,GAAe,OAAKA,EAAMoO,QAAQzN,UAAW,IAgBhE,SAACkkC,EAASC,EAAUC,EAAOtkC,EAAYE,GAAU,OAC7CrC,EAAAA,EAAAA,IAAiBumC,EAAQnS,aAAcoS,EAASpS,aAAcqS,EAAMrS,cAC9DkS,EAAcC,EAAQnoB,MAAOooB,EAASpoB,MAAOqoB,EAAMroB,MAAOjc,EAAWic,MAAO/b,GACzEoD,MAAK,SAACN,EAAGrC,GAAC,OACP4C,EAAAA,EAAAA,IAAeP,EAAEb,gBAAkBa,EAAEjF,SAAWkE,EAAAA,EAAcC,OAAQvB,EAAEwB,gBAAkBxB,EAAE5C,SAAWkE,EAAAA,EAAcC,SACrHc,EAAErE,KAAK6E,cAAc7C,EAAEhC,KAAK,IAElC,EAAE,IAGHqmC,GAAyBrjC,EAAAA,EAAAA,IAClC,CAACkiC,EAAqBE,EAA4BE,IAClD,SAACH,EAAkBE,EAAyBE,GAAoB,OAC5DrmC,EAAAA,EAAAA,IAAiBimC,EAAiB7R,aAAc+R,EAAwB/R,aAAciS,EAAqBjS,aAAa,G,wGC1CnHgT,EAAe,CACxBC,SAqBJ,WACI,OAAO7lC,EAAAA,EAAAA,GAAU,aACrB,EAtBI8lC,QAwBJ,SAAiB1uB,GACb,OAAOpX,EAAAA,EAAAA,GAAU,cAADpC,OAAewZ,GACnC,EAzBI2uB,wBA2BJ,WACI,OAAO/lC,EAAAA,EAAAA,GAAU,qCACrB,EA5BIgmC,uBA8BJ,WACI,OAAOhmC,EAAAA,EAAAA,GAAU,sCACrB,EA/BIimC,WAiCJ,SAAoB7uB,GAChB,IAAM1a,EAAG,cAAAkB,OAAiBwZ,EAAM,WAKhC,OAAOpX,EAAAA,EAAAA,GAAUtD,EAJM,CACnB4H,OAAQ,QAIhB,EAvCI4hC,YAyCJ,SAAqB9uB,EAAQ+uB,GACzB,IAAMzpC,EAAG,cAAAkB,OAAiBwZ,EAAM,YAC1BtS,EAAiB,CACnBR,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,KAC3BoB,KAAMxH,KAAKyH,UAAU,CAAE8/B,YAAAA,KAG3B,OAAOnmC,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAjDIshC,aAmDJ,SAAsBhvB,GAClB,IAAM1a,EAAG,cAAAkB,OAAiBwZ,EAAM,gBAKhC,OAAOpX,EAAAA,EAAAA,GAAUtD,EAJM,CACnB4H,OAAQ,QAIhB,EAzDI8zB,cA2DJ,SAAuBhhB,GACnB,IAAM1a,EAAG,cAAAkB,OAAiBwZ,EAAM,mBAC1BtS,EAAiB,CACnBR,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAlEIuhC,SAoEJ,SAAkBC,GAA6B,IAArBh/B,EAAUvK,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAC1B+H,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIqkC,GAAM,IAAEh/B,WAAAA,MAGtC,OAAOtH,EAAAA,EAAAA,GAAU,aAAc8E,EACnC,EA1EIyhC,YA4EJ,SAAqBvxB,GACjB,IAAMwxB,GAAY3hC,EAAAA,EAAAA,GAAW,oBAAqBmQ,GAE5ClQ,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAUwmC,EAAW1hC,EAChC,EAnFI2hC,sBAqFJ,SAA+BrvB,EAAQ2X,GACnC,IAAMryB,EAAG,cAAAkB,OAAiBwZ,EAAM,eAC1BtS,EAAiB,CACnBR,OAAQ,OACR8B,KAAM2oB,EACNhqB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA7FI4hC,oBA+FJ,SAA6BtvB,GACzB,OAAOpX,EAAAA,EAAAA,GAAU,sBAADpC,OAAuBwZ,GAC3C,EAhGIuvB,mBAsGJ,SAA4B3iC,EAAI4iC,GAC5B,IACM9hC,EAAiB,CACnBR,OAAQ,QACR8B,KAAMxH,KAAKyH,UAAU,CAAErC,GAAAA,EAAI4iC,iBAAAA,IAC3B7hC,aAAcA,EAAAA,GAAamT,MAG/B,OAAOlY,EAAAA,EAAAA,GAPE,6CAOa8E,EAC1B,EA9GI+hC,iBAgHJ,SAA0B7iC,EAAI4iC,EAAkBT,GAC5C,IACMrhC,EAAiB,CACnBR,OAAQ,QACR8B,KAAMxH,KAAKyH,UAAU,CAAErC,GAAAA,EAAI4iC,iBAAAA,EAAkBT,YAAAA,IAC7CphC,aAAcA,EAAAA,GAAamT,MAG/B,OAAOlY,EAAAA,EAAAA,GAPE,2CAOa8E,EAE1B,EAzHIgiC,WAgIJ,SAAoB1vB,GAChB,OAAOpX,EAAAA,EAAAA,GAAU,cAADpC,OAAewZ,GAAU,CAAG9S,OAAQ,UACxD,EAjIIyiC,kBA0HJ,SAA2BC,GACvB,IAAMtqC,EAAG,sCAAAkB,OAAyCopC,GAClD,OAAOhnC,EAAAA,EAAAA,GAAUtD,EAAK,CAAG4H,OAAQ,UACrC,EA5HI2iC,gBA6IJ,SAAyB7vB,GACrB,OAAOpX,EAAAA,EAAAA,GAAU,cAADpC,OAAewZ,EAAM,sBAAsB,CAAE9S,OAAQ,QACzE,EA9II4iC,0BA6FJ,WACI,OAAOlnC,EAAAA,EAAAA,GAAU,sDACrB,EA9FImnC,mBAgIJ,SAA4BnjC,EAAI4iC,GAC5B,IACM9hC,EAAiB,CACnBR,OAAQ,QACR8B,KAAMxH,KAAKyH,UAAU,CAAErC,GAAAA,EAAI4iC,iBAAAA,IAC3B7hC,aAAcA,EAAAA,GAAamT,MAG/B,OAAOlY,EAAAA,EAAAA,GAPE,6CAOa8E,EAC1B,E,kdC7IagY,GAAexa,EAAAA,EAAAA,IACxB,CAPmB,SAAApC,GAAK,OAAIA,EAAMsD,SAAU,EAC5B,SAAAtD,GAAK,OAAIA,EAAM+kC,KAAM,EAEhB,SAAA/kC,GAAK,OAAIA,EAAMknC,wBAAyB,EADvC,SAAAlnC,GAAK,OAAIA,EAAMmnC,cAAe,EAElC,SAAAnnC,GAAK,OAAIA,EAAMonC,cAActoB,UAAW,IAI1D,SAACxb,EAAWyhC,EAAO5jC,EAAQohC,EAASzjB,GAChCxb,EAAU/D,SAAQ,SAAAwD,GACdA,EAAEskC,eAAiBtC,EAAMt9B,MAAK,SAAA6/B,GAAC,OAAIA,EAAExjC,KAAOf,EAAEwkC,gBAAgB,IAC9DxkC,EAAEykC,QAAUzC,EAAM5jC,QAAO,SAAAmmC,GAAC,OAAIA,EAAEjwB,YAActU,EAAEe,EAAE,IAAEhH,OACpDiG,EAAE0kC,UAAYC,EAAAA,EAAaC,SAAS5kC,EAAE6kC,MACtC7kC,EAAE8kC,iBASd,SAA8B/lC,EAASijC,GACnC,IAAM+C,EAAiB/C,EAAM3hC,MAAK,SAAAkkC,GAAC,OAC/BA,EAAEjwB,YAAcvV,EAAQgC,IACxBwjC,EAAE9oC,SAAWupC,EAAAA,EAAaplC,OAAO+hB,UAAU,IAG/C,OAAKojB,EACDhmC,EAAQkmC,kBAAmBC,EAAAA,EAAAA,IAAenmC,EAAQkmC,gBAAwBE,EAAAA,EAAiBC,MACxFrmC,EAAQsmC,aAFa,IAGhC,CAlBiCC,CAAqBtlC,EAAGgiC,GAC7ChiC,EAAEulC,iBAmBd,SAA6BxmC,EAASijC,GAClC,IAAM+C,EAAiB/C,EAAM3hC,MAAK,SAAAkkC,GAAC,OAC/BA,EAAEjwB,YAAcvV,EAAQgC,IACxBwjC,EAAE9oC,SAAWupC,EAAAA,EAAaplC,OAAO+hB,UAAU,IAG/C,OAAIojB,EACChmC,EAAQkmC,kBAAmBC,EAAAA,EAAAA,IAAenmC,EAAQkmC,gBAAwBlmC,EAAQkmC,eAClFlmC,EAAQymC,uBAA+BzmC,EAAQymC,uBAC7C,KAHoB,IAI/B,CA7BiCC,CAAoBzlC,EAAGgiC,EAChD,IAEA,IAAM0D,EA6Bd,SAAqBnlC,EAAWnC,GAAS,IAADunC,EAAAC,EAChCC,EAAkBtlC,EAEhBiG,EAAW,CACbpI,EAAOwB,QAAUD,EAAAA,EAAcC,OAC/BxB,EAAO0nC,SAAWnmC,EAAAA,EAAcmmC,QAChC1nC,EAAO2nC,aAAepmC,EAAAA,EAAcomC,aACtC3nC,QAAO,SAAA3C,GAAM,OAAIA,CAAM,IAEnB2sB,EAAQ,CACVhqB,EAAO4nC,eAAiBrB,EAAAA,EAAasB,cACrC7nC,EAAO8nC,cAAgBvB,EAAAA,EAAawB,aACpC/nC,EAAOgoC,QAAUzB,EAAAA,EAAa0B,OAC9BjoC,EAAOkoC,QAAU3B,EAAAA,EAAa4B,OAC9BnoC,EAAOooC,OAAS7B,EAAAA,EAAa8B,OAC/BroC,QAAO,SAAA3C,GAAM,OAAIA,CAAM,IAErB+K,EAASzM,SACT8rC,EAAkBA,EAAgBznC,QAAO,SAAAW,GAAO,OAAIyH,EAASnG,MAAK,SAAA5E,GAAM,OAAIA,IAAWsD,EAAQtD,MAAM,GAAC,KAGtG2sB,EAAMruB,SACN8rC,EAAkBA,EAAgBznC,QAAO,SAAAW,GAAO,OAAIqpB,EAAM/nB,MAAK,SAAAwkC,GAAI,OAAIA,IAAS9lC,EAAQ8lC,IAAI,GAAC,KAGjF,QAAhBc,EAAIvnC,EAAOsoC,aAAK,IAAAf,GAAZA,EAAc5rC,SACd8rC,EAAkBA,EAAgBznC,QAAO,SAAAW,GAAO,OAAIX,EAAOsoC,MAAMrmC,MAAK,SAAA8T,GAAM,OAAIpV,EAAQ4nC,cAAgBxyB,CAAM,GAAC,KAGpF,QAA/ByxB,EAAIxnC,EAAOwoC,4BAAoB,IAAAhB,GAA3BA,EAA6B7rC,SAC7B8rC,EAAkBA,EAAgBznC,QAAO,SAAAW,GAAO,OAAIX,EAAOwoC,qBAAqBvmC,MAAK,SAAA8T,GAAM,OACvFpV,EAAQ6nC,qBAAqBvmC,MAAK,SAAAwmC,GAAmB,OAAIA,EAAoB9lC,KAAOoT,CAAM,GAAC,GAC9F,KAGL,GAAI/V,EAAO2d,WAAY,CACnB,IAAMA,EAAa3d,EAAO2d,WAAW8kB,cAErCgF,EAAkBA,EAAgBznC,QAAO,SAAA4B,GAAC,IAAA8mC,EAAAC,EAAAC,EAAA,OACtChnC,EAAE3D,KAAKwkC,cAAc9d,SAAShH,KACrB,QADgC+qB,EACzC9mC,EAAEinC,eAAO,IAAAH,OAAA,EAATA,EAAWzqC,KAAKwkC,cAAc9d,SAAShH,KACvC/b,EAAE0kC,UAAU7D,cAAc9d,SAAShH,KACxB,QADmCgrB,EAC9C/mC,EAAEknC,iBAAS,IAAAH,OAAA,EAAXA,EAAalG,cAAc9d,SAAShH,MAClB,QAD6BirB,EAC/ChnC,EAAE8kC,wBAAgB,IAAAkC,OAAA,EAAlBA,EAAoBnG,cAAc9d,SAAShH,KAC1C/b,EAAEulC,kBAAoBrjC,IAAOlC,EAAEulC,kBAAkBpjC,OAAO,YACpD0+B,cACA9d,SAAShH,IACdorB,EAAAA,EAAgBC,gBAAgBpnC,EAAEvE,QAAQsa,MAAM8qB,cAAc9d,SAAShH,IAEnE/b,EAAEskC,gBACF+C,EAAernC,EAAEskC,eAAe1wB,UAAW5T,EAAEskC,eAAezwB,UACvDgtB,cAAc9d,SAAShH,IAEhC7Z,IAAOlC,EAAEsnC,gBACJnlC,OAAO,YACP0+B,cACA9d,SAAShH,IACd/b,EAAE4mC,qBACGvmC,MAAK,SAAAknC,GAAE,OAAIF,EAAeE,EAAG3zB,UAAW2zB,EAAG1zB,UAAUgtB,cAAc9d,SAAShH,EAAW,GAAC,GAErG,CAEI3d,EAAO0+B,iBACJ1+B,EAAO0+B,gBAAgBt+B,MACvBJ,EAAO0+B,gBAAgBv1B,IACvBnJ,EAAO8yB,mBAAmBj2B,MAAQusC,EAAAA,EAAsBC,OAAOxsC,MAClE4qC,EAAkB6B,EAAuBtpC,EAAO0+B,gBAAgBt+B,KAAMJ,EAAO0+B,gBAAgBv1B,GAAIs+B,IAGrG,GAAIznC,EAAO8yB,oBACJ9yB,EAAO8yB,mBAAmBj2B,MAAQusC,EAAAA,EAAsBG,YAAY1sC,KACpEmD,EAAO8yB,mBAAmBj2B,MAAQusC,EAAAA,EAAsBC,OAAOxsC,IAAK,CAEvE,IAAM2sC,GAAaC,EAAAA,EAAAA,GAAmBzpC,GACtCynC,EAAkB6B,EAAuBE,EAAW/gC,SAAU+gC,EAAW9gC,OAAQ++B,EAErF,CAEA,OAAOA,CAEX,CA7G+BiC,CAAYvnC,GAASvB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOZ,GAAM,IAAE2d,WAAAA,KAC3D,OAwHR,SAAcxb,EAAWi/B,GACrB,GAAIA,EAAQuI,SAAWC,EAAAA,EAAevsC,OAClC,MAA6B,QAAtB+jC,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAEjF,OAAS4C,EAAE5C,MAAM,IAC5C8E,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAE5C,OAASiF,EAAEjF,MAAM,IAC/C,GAAI+jC,EAAQuI,SAAWC,EAAAA,EAAeC,UACzC,MAA6B,QAAtBzI,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAErE,KAAK6E,cAAc7C,EAAEhC,KAAK,IACrDkE,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAEhC,KAAK6E,cAAcR,EAAErE,KAAK,IACxD,GAAImjC,EAAQuI,SAAWC,EAAAA,EAAevD,QACzC,MAA6B,QAAtBjF,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAE+jC,QAAUpmC,EAAEomC,OAAO,IAC9ClkC,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAEomC,QAAU/jC,EAAE+jC,OAAO,IACjD,GAAIjF,EAAQuI,SAAWC,EAAAA,EAAenD,KACzC,MAA6B,QAAtBrF,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAEmkC,KAAK3jC,cAAc7C,EAAEwmC,KAAK,IACrDtkC,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAEwmC,KAAK3jC,cAAcR,EAAEmkC,KAAK,IACxD,GAAIrF,EAAQuI,SAAWC,EAAAA,EAAef,QACzC,MAA6B,QAAtBzH,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAEumC,QAAQ5qC,KAAK6E,cAAc7C,EAAE4oC,QAAQ5qC,KAAK,IACrEkE,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAE4oC,QAAQ5qC,KAAK6E,cAAcR,EAAEumC,QAAQ5qC,KAAK,IACxE,GAAImjC,EAAQuI,SAAWC,EAAAA,EAAe1D,eACzC,MAA6B,QAAtB9E,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAK6pC,EAAsBxnC,GAAGQ,cAAcgnC,EAAsB7pC,GAAG,IACzFkC,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAK6pC,EAAsB7pC,GAAG6C,cAAcgnC,EAAsBxnC,GAAG,IAC5F,GAAI8+B,EAAQuI,SAAWC,EAAAA,EAAeV,eACzC,MAA6B,QAAtB9H,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAK,IAAIswB,KAAKjuB,EAAE4mC,gBAAkB,IAAI3Y,KAAKtwB,EAAEipC,eAAe,IAChF/mC,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAK,IAAIswB,KAAKtwB,EAAEipC,gBAAkB,IAAI3Y,KAAKjuB,EAAE4mC,eAAe,IACnF,GAAI9H,EAAQuI,SAAWC,EAAAA,EAAed,UACzC,MAA6B,QAAtB1H,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAMqC,EAAEwmC,WAAa,IAAIhmC,cAAc7C,EAAE6oC,WAAa,GAAG,IAC7E3mC,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAMA,EAAE6oC,WAAa,IAAIhmC,cAAcR,EAAEwmC,WAAa,GAAG,IAChF,GAAI1H,EAAQuI,SAAWC,EAAAA,EAAenoC,eACzC,MAA6B,QAAtB2/B,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKs9B,OAAOj7B,EAAEmkC,OAASF,EAAAA,EAAawB,cAAgBxK,OAAOt9B,EAAEwmC,OAASF,EAAAA,EAAawB,aAAa,IACjHnlC,MAAK,SAACN,EAAGrC,GAAC,OAAKs9B,OAAOj7B,EAAEb,gBAAkB87B,OAAOt9B,EAAEwB,eAAe,IACrEU,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAKs9B,OAAOt9B,EAAEwmC,OAASF,EAAAA,EAAawB,cAAgBxK,OAAOj7B,EAAEmkC,OAASF,EAAAA,EAAawB,aAAa,IACjHnlC,MAAK,SAACN,EAAGrC,GAAC,OAAKs9B,OAAOt9B,EAAEwB,gBAAkB87B,OAAOj7B,EAAEb,eAAe,IACxE,GAAI2/B,EAAQuI,SAAWC,EAAAA,EAAe3C,aACzC,MAA6B,QAAtB7F,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAMqC,EAAEokC,kBAAoB,IAAI5jC,cAAc7C,EAAEymC,kBAAoB,GAAG,IAC3FvkC,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAMA,EAAEymC,kBAAoB,IAAI5jC,cAAcR,EAAEokC,kBAAoB,GAAG,IAC9F,GAAItF,EAAQuI,SAAWC,EAAAA,EAAeG,gBACzC,MAA6B,QAAtB3I,EAAQltB,UACT/R,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAK+pC,EAAAA,EAAAA,IAAqB1nC,EAAE6kC,iBAAkBlnC,EAAEknC,iBAAiB,IACrFhlC,EAAUS,MAAK,SAACN,EAAGrC,GAAC,OAAK+pC,EAAAA,EAAAA,IAAqB/pC,EAAEknC,iBAAkB7kC,EAAE6kC,iBAAiB,GAEnG,CAxKevkC,CAAK0kC,EAAgBlG,EAChC,IA6GJ,SAASkI,EAAuBlpC,EAAM+I,EAAIhH,GACtC,OAAOA,EAAUnC,QAAO,SAAAW,GACpB,OAAOmD,IAAOnD,EAAQuoC,gBACjBe,QAAQ7pC,IAET0D,IAAOnD,EAAQuoC,gBACVgB,SAAS/gC,EACtB,GACJ,CAoDA,SAAS2gC,EAAsBnpC,GAC3B,IAAQulC,EAAmBvlC,EAAnBulC,eACR,GAAIA,EAAgB,CAChB,GAAIA,EAAejoC,KACf,OAAOioC,EAAejoC,KAE1B,GAAIioC,EAAe1wB,WAAa0wB,EAAezwB,SAC3C,OAAOwzB,EAAe/C,EAAe1wB,UAAW0wB,EAAezwB,SAEvE,CACA,MAAO,EACX,CAEA,SAASwzB,EAAezzB,EAAWC,GAC/B,MAAO,CAACD,EAAWC,GAAUytB,KAAK,KAAKiH,MAC3C,C,sEChNMC,EAAiB,SAAAvrC,GAAK,OAAIA,EAAM+kC,KAAM,EAO/ByG,GAAmBppC,EAAAA,EAAAA,IAC5B,CAACmpC,IACD,SAAC/D,GAAO,OAAKA,EAAQrmC,QAAO,SAAAsqC,GAAC,OAAIA,EAAEjtC,SAAWupC,EAAAA,GAAaplC,OAAO+hB,UAAU,GAAC,IAGpEgnB,GAAatpC,EAAAA,EAAAA,IACtB,CAACmpC,EAZsB,SAAAvrC,GAAK,OAAIA,EAAM2rC,YAAa,EAChC,SAAA3rC,GAAK,OAAIA,EAAMsD,SAAU,EAEvB,SAAAtD,GAAK,OAAIA,EAAM4rC,uBAAwB,EADtC,SAAA5rC,GAAK,OAAIA,EAAM6rC,aAAc,EAEjC,SAAA7rC,GAAK,OAAIA,EAAM8rC,aAAahtB,UAAW,IASzD,SAAC0oB,EAASmE,EAAcroC,EAAWnC,EAAQohC,EAASzjB,GAChD,IAAMitB,EAAkBvE,EAAQ1mC,KAAI,SAAAwmC,GAChC,IAAMxlC,EAAUwB,EAAUmE,MAAK,SAAA1E,GAAC,OAAIA,EAAEe,KAAOwjC,EAAEjwB,SAAS,IACxD,OAAAtV,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACOulC,GAAC,IACJ0E,SAAU,WAAF,SAAAtuC,OAAW4pC,EAAE3wB,UAAS,KAAAjZ,OAAI4pC,EAAE1wB,SAAQ,EAE5Cq1B,YAAanqC,EAAQ1C,KACrB8sC,cAAepqC,EAAQtD,OACvB2tC,kBAAmBjC,EAAAA,GAAgBC,gBAAgBroC,EAAQtD,QAAQsa,MACnEszB,WAAYtqC,EAAQtD,SAAW0rC,EAAAA,GAAgBvnC,OAAO+hB,YAAc5iB,EAAQtD,SAAW0rC,EAAAA,GAAgBpB,YAAYpkB,WACnHiP,WAAYoU,EAAAA,GAAaoC,gBAAgB7C,EAAE9oC,QAAQsa,MACnDuxB,eAAgBplC,IAAAA,IACPqiC,EAAE+E,mBACNC,QACApnC,OAAO,eACZqnC,cAAejF,EAAEkF,iBAAmBvnC,IAAAA,IAC3BqiC,EAAEkF,kBACNF,QACApnC,OAAO,eAAiByC,EAAAA,GAAU8kC,kBAE/C,IAoBMC,EAAuB7B,EAlBAc,EAAa7qC,KAAI,SAAA6rC,GAAC,OAAA5qC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACxC4qC,GAAC,IACJC,eAAe,EACfP,kBAAmBM,EAAEE,iBACrBxC,eAAgBplC,IAAAA,IACP0nC,EAAEE,kBACNP,QACApnC,OAAO,eACZqnC,cAAe,GACftC,UAAW0C,EAAEG,eACbd,SAAU,WAAF,SAAAtuC,OAAWivC,EAAEh2B,UAAS,KAAAjZ,OAAIivC,EAAE/1B,SAAQ,EAC5Cq1B,YAAaU,EAAE7qC,QAAQ1C,KACvBiY,UAAWs1B,EAAE7qC,QAAQgC,GACrBooC,cAAeS,EAAE7qC,QAAQtD,OACzB2tC,kBAAmBjC,EAAAA,GAAgBC,gBAAgBwC,EAAE7qC,QAAQtD,QAAQsa,MACrE6a,WAAYoZ,EAAAA,GAAoB5C,gBAAgBwC,EAAEnuC,QAAQsa,OAAK,KAGN/W,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOZ,GAAM,IAAE2d,WAAAA,KACtEkuB,EAA0BN,EAAqBvrC,QAAO,SAAAwrC,GAAC,OAAIA,EAAEnuC,SAAWyuC,EAAAA,EAAkBC,OAAO,IACjGC,EAAsBT,EAAqBvrC,QAAO,SAAAwrC,GAAC,OAAIA,EAAEnuC,SAAWyuC,EAAAA,EAAkBG,OAAO,IAC7FC,EAAgBxC,EAAYkB,GAAehqC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOZ,GAAM,IAAE2d,WAAAA,KAChE,MAAM,GAANphB,QAAAuF,EAAAA,EAAAA,GACOc,EAAKipC,EAAyBzK,KAAQt/B,EAAAA,EAAAA,GACtCc,EAAK,GAADrG,QAAAuF,EAAAA,EAAAA,GAAKkqC,IAAmBlqC,EAAAA,EAAAA,GAAKoqC,IAAgB9K,IAE5D,IAGJ,SAASsI,EAAYrD,EAASrmC,GAAS,IAADunC,EAAA4E,EAC9BC,EAAkB/F,EAEhBj+B,EAAW,CACbpI,EAAOwB,QAAU6qC,EAAAA,EAAWv5B,OAC5B9S,EAAO0nC,SAAW2E,EAAAA,EAAWJ,QAC7BjsC,EAAOssC,SAAWD,EAAAA,EAAWE,QAC7BvsC,EAAOwsC,YAAcH,EAAAA,EAAWI,WAChCzsC,EAAO0sC,iBAAmB,oBAC5B1sC,QAAO,SAAA3C,GAAM,OAAIA,CAAM,IAEnBsvC,EAAkB,CACpB3sC,EAAO0sC,iBAAmBZ,EAAAA,EAAkBC,QAC5C/rC,EAAO0nC,SAAWoE,EAAAA,EAAkBG,SAGlCW,EAAa,CACf5sC,EAAO4nC,eAAiB5d,EAAAA,GAAM6d,cAC9B7nC,EAAO6sC,iBAAmB7iB,EAAAA,GAAM8iB,gBAChC9sC,EAAO+sC,oBAAsB/iB,EAAAA,GAAM+Z,mBACnC/jC,EAAOgtC,oBAAsBhjB,EAAAA,GAAMijB,mBACnCjtC,EAAOktC,WAAaljB,EAAAA,GAAMmjB,UAC1BntC,EAAOotC,aAAepjB,EAAAA,GAAMqjB,oBAC5BrtC,EAAOstC,cAAgBtjB,EAAAA,GAAMujB,aAC7BvtC,EAAOwtC,cAAgBxjB,EAAAA,GAAMyjB,aAC7BztC,EAAO0tC,qBAAuB1jB,EAAAA,GAAM2jB,oBACpC3tC,EAAOkoC,QAAUle,EAAAA,GAAMme,OACvBnoC,EAAOu0B,mBAAqBvK,EAAAA,GAAME,kBAClClqB,EAAOooC,OAASpe,EAAAA,GAAMqe,OACxBroC,QAAO,SAAA3C,GAAM,OAAIA,CAAM,IAwBzB,GAtBI+K,EAASzM,SACTywC,EAAkBA,EAAgBpsC,QAAO,SAAAilC,GAAM,OAAKA,EAAOwG,cAAgBkB,EAAkBvkC,GACxFnG,MAAK,SAAA5E,GAAM,OAAIA,IAAW4nC,EAAO5nC,MAAM,GAAC,KAI7CuvC,EAAWjxC,SACXywC,EAAkBA,EAAgBpsC,QAAO,SAAAilC,GACrC,OAAO2H,EAAW3qC,MAAK,SAAAwkC,GACnB,OAAOxB,EAAOjb,MAAM/nB,MAAK,SAAA2rC,GAAU,OAAIA,IAAenH,CAAI,GAC9D,GACJ,KAGY,QAAhBc,EAAIvnC,EAAOsoC,aAAK,IAAAf,GAAZA,EAAc5rC,SACdywC,EAAkBA,EAAgBpsC,QAAO,SAAAilC,GAAM,OAAIjlC,EAAOsoC,MAAMrmC,MAAK,SAAA8T,GAAM,OAAIkvB,EAAOsD,cAAgBxyB,CAAM,GAAC,KAG7F,QAApBo2B,EAAInsC,EAAOmC,iBAAS,IAAAgqC,GAAhBA,EAAkBxwC,SAClBywC,EAAkBA,EAAgBpsC,QAAO,SAAAilC,GAAM,OAAIjlC,EAAOmC,UAAUF,MAAK,SAAAiU,GAAS,OAAI+uB,EAAO/uB,YAAcA,CAAS,GAAC,KAGrHlW,EAAO2d,WAAY,CACnB,IAAMA,EAAa3d,EAAO2d,WAAW8kB,cAErC2J,EAAkBA,EAAgBpsC,QAAO,SAAAsqC,GAAC,IAAAuD,EAAA,OACtCvD,EAAEO,WAAWpI,cAAc9d,SAAShH,IACpC2sB,EAAE/T,MAAMkM,cAAc9d,SAAShH,IAC/B2sB,EAAEQ,YAAYrI,cAAc9d,SAAShH,IACpC2sB,EAAEwD,OAASxD,EAAEwD,MAAMrL,cAAc9d,SAAShH,IAC3C2sB,EAAE9X,WAAWiQ,cAAc9d,SAAShH,IACpC2sB,EAAEpB,eAAezG,cAAc9d,SAAShH,IACvC2sB,EAAEtgB,OAASsgB,EAAEtgB,MAAMruB,QAAU2uC,EAAEtgB,MAAM/nB,MAAK,SAAAupC,GAAC,OAAIA,EAAE/I,cAAc9d,SAAShH,EAAW,KACpF2sB,EAAEc,cAAc3I,cAAc9d,SAAShH,KAC5B,QADuCkwB,EAClDvD,EAAExB,iBAAS,IAAA+E,OAAA,EAAXA,EAAapL,cAAc9d,SAAShH,KACpC2sB,EAAEU,kBAAkBvI,cAAc9d,SAAShH,IAC3CowB,EAAAA,EAAcC,iBAAiB1D,EAAEY,kBAAmB1kC,EAAAA,GAAUynC,aAAatpB,SAAShH,EAAW,GAEvG,CASA,GAPI3d,EAAO0+B,iBACJ1+B,EAAO0+B,gBAAgBt+B,MACvBJ,EAAO0+B,gBAAgBv1B,IACvBnJ,EAAO8yB,mBAAmBj2B,MAAQusC,EAAAA,GAAsBC,OAAOxsC,MAClEuvC,EAAkB8B,EAAqBluC,EAAO0+B,gBAAgBt+B,KAAMJ,EAAO0+B,gBAAgBv1B,GAAIijC,IAG/FpsC,EAAO8yB,oBACJ9yB,EAAO8yB,mBAAmBj2B,MAAQusC,EAAAA,GAAsBG,YAAY1sC,KACpEmD,EAAO8yB,mBAAmBj2B,MAAQusC,EAAAA,GAAsBC,OAAOxsC,IAAK,CACvE,IAAM2sC,GAAaC,EAAAA,EAAAA,IAAmBzpC,GACtCosC,EAAkB8B,EAAqB1E,EAAW/gC,SAAU+gC,EAAW9gC,OAAQ0jC,EAEnF,CAEA,OAAOA,CACX,CAEA,SAAS8B,EAAqB9tC,EAAM+I,EAAIhH,GACpC,OAAOA,EAAUnC,QAAO,SAAAilC,GACpB,OAAOnhC,IAAOmhC,EAAOiG,mBAChBjB,QAAQ7pC,IAET0D,IAAOmhC,EAAOiG,mBACThB,SAAS/gC,EACtB,GACJ,CAEA,SAASvG,EAAKyjC,EAASjF,GACnB,GAAIA,EAAQuI,SAAWwE,EAAAA,GAAc9wC,OACjC,MAA6B,QAAtB+jC,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAEjF,OAAS4C,EAAE5C,MAAM,IAC1CgpC,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAE5C,OAASiF,EAAEjF,MAAM,IAC7C,GAAI+jC,EAAQuI,SAAWwE,EAAAA,GAActD,SACxC,MAA6B,QAAtBzJ,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAEuoC,WAAW/nC,cAAc7C,EAAE4qC,WAAW,IAC/DxE,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAE4qC,WAAW/nC,cAAcR,EAAEuoC,WAAW,IAClE,GAAIzJ,EAAQuI,SAAWwE,EAAAA,GAAc5X,MACxC,MAA6B,QAAtB6K,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAEi0B,MAAMzzB,cAAc7C,EAAEs2B,MAAM,IACrD8P,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAEs2B,MAAMzzB,cAAcR,EAAEi0B,MAAM,IACxD,GAAI6K,EAAQuI,SAAWwE,EAAAA,GAAcL,MACxC,MAA6B,QAAtB1M,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAMqC,EAAEwrC,OAAS,IAAIhrC,cAAc7C,EAAE6tC,OAAS,GAAG,IACnEzH,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAMA,EAAE6tC,OAAS,IAAIhrC,cAAcR,EAAEwrC,OAAS,GAAG,IACtE,GAAI1M,EAAQuI,SAAWC,EAAAA,GAAeV,eACzC,MAA6B,QAAtB9H,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAK,IAAIswB,KAAKjuB,EAAE4oC,mBAAqB,IAAI3a,KAAKtwB,EAAEirC,kBAAkB,IACpF7E,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAK,IAAIswB,KAAKtwB,EAAEirC,mBAAqB,IAAI3a,KAAKjuB,EAAE4oC,kBAAkB,IACvF,GAAI9J,EAAQuI,SAAWC,EAAAA,GAAejpC,QACzC,MAA6B,QAAtBygC,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAEwoC,YAAYhoC,cAAc7C,EAAE6qC,YAAY,IACjEzE,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAE6qC,YAAYhoC,cAAcR,EAAEwoC,YAAY,IACpE,GAAI1J,EAAQuI,SAAWwE,EAAAA,GAAcrF,UACxC,MAA6B,QAAtB1H,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,IAAAmuC,EAAA,OAAgB,QAAhBA,EAAK9rC,EAAEwmC,iBAAS,IAAAsF,OAAA,EAAXA,EAAatrC,cAAc7C,EAAE6oC,UAAU,IAC9DzC,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,IAAAouC,EAAA,OAAgB,QAAhBA,EAAKpuC,EAAE6oC,iBAAS,IAAAuF,OAAA,EAAXA,EAAavrC,cAAcR,EAAEwmC,UAAU,IACjE,GAAI1H,EAAQuI,SAAWwE,EAAAA,GAAcpD,cACxC,MAA6B,QAAtB3J,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAEyoC,cAAgB9qC,EAAE8qC,aAAa,IACxD1E,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAE8qC,cAAgBzoC,EAAEyoC,aAAa,IAC3D,GAAI3J,EAAQuI,SAAWwE,EAAAA,GAAc/C,cAAe,CACvD,MAA6B,QAAtBhK,EAAQltB,UACTmyB,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKquC,EAAQhsC,EAAE+oC,kBAAoBiD,EAAQruC,EAAEorC,iBAAiB,IAChFhF,EAAQzjC,MAAK,SAACN,EAAGrC,GAAC,OAAKquC,EAAQruC,EAAEorC,kBAAoBiD,EAAQhsC,EAAE+oC,iBAAiB,IAEtF,SAASiD,EAAQC,GACb,OAAOA,EAAKzqC,IAAAA,IAAWyqC,GAAI5P,SAAW,IAAIpO,KAAK,EACnD,CACJ,CACJ,EClN+BtvB,EAAAA,EAAAA,IAC3B,CAJa,SAAApC,GAAK,OAAIA,EAAM08B,KAAM,EACV,SAAA18B,GAAK,OAAIA,EAAM2vC,UAAW,IAIlD,SAACjT,EAAOiT,GAAU,OAAKA,EACjBjT,EAAM34B,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAErE,KAAK6E,cAAc7C,EAAEhC,KAAK,IACjDs9B,EAAM34B,MAAK,SAACN,EAAGrC,GAAC,OAAKA,EAAEhC,KAAK6E,cAAcR,EAAErE,KAAK,GAAC,IAP5D,ICKawwC,GAAyBxtC,EAAAA,EAAAA,IAClC,CALa,SAAApC,GAAK,OAAIA,EAAM6vC,kBAAkBC,KAAM,EAC7B,SAAA9vC,GAAK,OAAIA,EAAM8tB,iBAAiB0E,iBAAmB,EAAG,EAC1D,SAAAxyB,GAAK,OAAGA,EAAM+vC,sBAAuB,IAIxD,SAACD,EAAOtd,EAAiBwd,GACrB,OAAKF,GAAUA,EAAMhzC,OAIdgzC,EAAMhvC,KAAI,SAAAM,GAAC,OAAAW,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAEPX,GAAC,IACJmuB,QAAS2f,EAAAA,GAAcC,iBAAiB/tC,EAAE6uC,YAC1CC,aAAchB,EAAAA,GAAciB,SAAS/uC,EAAEgvC,kBAAgB,IAPpDN,CASf,I,WCPSO,GAAajuC,EAAAA,EAAAA,IACtB,CAHoB,SAACpC,GAAuB,OAAKA,CAAM,IAIvD,SAAAg7B,GACI,IAAKA,EAAQsV,UAAYtV,EAAQuV,QAC7B,OAAOvV,EAGX,IAAMuV,EAAUvV,EAAQ9xB,WAClB8xB,EAAQuV,QAAQpvC,QAAO,SAAAsC,GAAC,OAAoB,MAAhBA,EAAEyF,YAAsBzF,EAAEyF,aAAe8xB,EAAQ9xB,UAAU,KAACjG,EAAAA,EAAAA,GACpF+3B,EAAQuV,SAIlB,OAFAA,EAAQxsC,MAAK,SAACN,EAAGrC,GAAC,OAAKovC,EAAAA,EAAAA,IAAa/sC,EAAEgtC,YAAarvC,EAAEqvC,YAAY,KAEjE1uC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACOi5B,GAAO,IACVuV,QAASG,EAAeH,IAEhC,IAGJ,SAASG,EAAeH,GACpB,IAAMI,EAAcvzC,EAAAA,EAAKwzC,UACzB,OAAID,EAEGJ,EAEFzvC,KAAI,SAAA2C,GACD,OAAA1B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACO0B,GAAC,IACJotC,cAAeptC,EAAEyF,YAAczF,EAAEqtC,aAAertC,EAAEqtC,YAAYhtC,KAAO6sC,EAAYt5B,UACjF05B,oBAAqBttC,EAAEyF,cAAgBzF,EAAEqtC,aAAertC,EAAEqtC,YAAYhtC,KAAO6sC,EAAYt5B,YAEjG,IAVoB,EAW5B,C,yBCnCa25B,GAA2B5uC,EAAAA,EAAAA,IACpC,CAJiB,SAACpC,GAAa,OAAKA,EAAMO,UAAW,EACxB,SAACP,GAAa,OAAKA,EAAMixC,gBAAiB,IAIvE,SAACthB,EAAWuhB,GAAqB,OAAKvhB,EAAUxuB,QAAO,SAAAsB,GAAC,OAAIyuC,EAAsBzuC,EAAEqB,GAAG,GAAC,G,wGCD/EqtC,GAAyB/uC,EAAAA,EAAAA,IAClC,CAPwB,SAACpC,GAAe,OAAKA,EAAMmyB,SAASoS,gBAAiB,EAC9C,SAACvkC,GAAe,OAAKA,EAAMmyB,SAASsS,uBAAwB,EAC/D,SAACzkC,GAAe,OAAKA,EAAMmyB,SAASwS,oBAAqB,EACpD,SAAC3kC,GAAe,OAAKA,EAAMmyB,SAASqT,yBAA0B,EAC7E,SAACxlC,GAAe,OAAKA,EAAMoO,QAAQzN,UAAW,IAIhE,SAACkkC,EAASC,EAAUC,EAAOtkC,EAAYE,GACnC,IAAIrC,EAAAA,EAAAA,IAAiBumC,EAAQnS,aAAcoS,EAASpS,aAAcqS,EAAMrS,aAAcjyB,EAAWiyB,cAAe,CAC5G,IAAM0e,GAAmBxM,EAAAA,EAAAA,IAAcC,EAAQnoB,MAAOooB,EAASpoB,MAAOqoB,EAAMroB,MAAOjc,EAAWic,MAAO/b,GACrG,OAAO0wC,EAAAA,EAAAA,IAAgCD,EAAkB3wC,EAAWic,MACxE,CAEA,MAAO,EACX,G,6NCRM40B,GAA+BC,GAAA53B,EAAAA,EAAAA,KAAAC,KAI/B43B,GAAqBC,GAAA93B,EAAAA,EAAAA,KAAAC,KAIrB83B,GAAeC,GAAAh4B,EAAAA,EAAAA,KAAAC,KAKfg4B,GAAwBC,GAAAl4B,EAAAA,EAAAA,KAAAC,KA4BxBk4B,GAAgCC,GAAAp4B,EAAAA,EAAAA,KAAAC,KAShCo4B,GAA+BC,GAAAt4B,EAAAA,EAAAA,KAAAC,KAa/Bs4B,GAAgCC,GAAAx4B,EAAAA,EAAAA,KAAAC,KAUzBw4B,GAzEjB,SAAUd,IAA+B,OAAA33B,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACrC,OADqCF,EAAAE,KAAA,GAC/Bo4B,EAAAA,EAAAA,IAAKtqB,EAAAA,GAAwB/C,OAAO,KAAD,mBAAAjL,EAAAI,OAAA,GAAAm4B,EAAA,CAG7C,SAAUd,IAAqB,OAAA73B,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAC3B,OAD2BqL,EAAArL,KAAA,GACrBs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBuwB,8BAA8B,KAAD,mBAAAltB,EAAAnL,OAAA,GAAAo3B,EAAA,CAG/D,SAAUG,IAAe,OAAA/3B,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACrB,OADqBkM,EAAAlM,KAAA,GACfo4B,EAAAA,EAAAA,IAAKtqB,EAAAA,GAAwB5N,MAAM,KAAD,EACxC,OADwCgM,EAAAlM,KAAA,GAClCs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBwwB,qBAAoB,wBAAAtsB,EAAAhM,OAAA,GAAAs3B,EAAA,CAGtD,SAAUG,IAAwB,IAAAc,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAn5B,EAAAA,EAAAA,KAAAG,MAAC,SAAD2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OACyB,OADzBwM,EAAAxM,KAAA,GAC+B84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAMgzC,aAAaN,sBAAsB,IAAE,KAAD,EAC7F,OADhCA,EAA8CjsB,EAAAC,KAAAD,EAAAxM,KAAA,GACR84B,EAAAA,EAAAA,KACxC,SAAC/yC,GAAe,OACZA,EAAMgzC,aAAaC,iBACd9xC,QAAO,SAAA+xC,GAAC,IAAAC,EAAA,OAA2C,QAA3CA,EAAIT,EAAuBQ,EAAE1qC,sBAAc,IAAA2qC,OAAA,EAAvCA,EAAyCC,yBAAyB,GAAC,IAC1F,KAAD,EAS+C,OAb1CT,EAA6BlsB,EAAAC,KAM/BksB,EAAgC,KAEhCD,EAAc71C,SACd81C,EAAgCD,EAAcA,EAAc71C,OAAS,GAAG0L,eAC3Eie,EAAAzM,KAAA,EAAAyM,EAAAxM,KAAA,GAGqD8N,EAAAA,GAAwBvoB,KAAK,yBAA0BozC,GAA+B,KAAD,GAMvI,OANMC,EAAmCpsB,EAAAC,KACnCgsB,EAAyBr0C,EAAAA,EAASmF,UAAUqvC,GAAqB,SAAAK,GAAC,OAAIA,EAAE1qC,aAAa,IAAE,iBAAO,CAChGmB,KAAM0pC,EAAAA,EAAiBC,iBACvBC,cAAc,EACdH,2BAA2B,EAC9B,IAAE3sB,EAAAxM,KAAA,IACGs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBuxB,oBAAoBX,EAAqBH,IAAwB,QAAAjsB,EAAAxM,KAAA,iBAE/F,OAF+FwM,EAAAzM,KAAA,GAAAyM,EAAAd,GAAAc,EAAA,SAAAA,EAAAxM,KAAA,IAEzFs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBwxB,8BAA8B,KAAD,GAC3D,OAD2DhtB,EAAAxM,KAAA,IACrDs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAehB,EAAAd,KAAO,KAAD,oBAAAc,EAAAtM,OAAA,GAAAw3B,EAAA,eAIpD,SAAUG,IAAgC,IAAA4B,EAAA,OAAA/5B,EAAAA,EAAAA,KAAAG,MAAC,SAADyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,OAEN,OAFMsN,EAAAvN,KAAA,EAAAuN,EAAAtN,KAAA,EAEA8N,EAAAA,GAAwBvoB,KAAK,4BAA4B,KAAD,EAC1F,OADMk0C,EAAmBnsB,EAAAb,KAAAa,EAAAtN,KAAA,GACnBs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoB0xB,4BAA4BD,IAAa,OAAAnsB,EAAAtN,KAAA,gBAEvE,OAFuEsN,EAAAvN,KAAA,EAAAuN,EAAA5B,GAAA4B,EAAA,SAAAA,EAAAtN,KAAA,IAEjEs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoB2xB,sCAAsC,KAAD,oBAAArsB,EAAApN,OAAA,GAAA03B,EAAA,cAI3E,SAAUG,EAAgC6B,GAA6C,IAAArrC,EAAA,OAAAmR,EAAAA,EAAAA,KAAAG,MAAA,SAAAg6B,GAAA,cAAAA,EAAA95B,KAAA85B,EAAA75B,MAAA,OAI/E,OAHIzR,EAAkBqrC,EAAOlrC,QAAzBH,cAAasrC,EAAA95B,KAAA,EAAA85B,EAAA75B,KAAA,EAGX8N,EAAAA,GAAwBvoB,KAAK,sBAAuBgJ,GAAe,KAAD,EACxE,OADwEsrC,EAAA75B,KAAA,GAClEs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoB8xB,2BAA2BvrC,IAAgB,KAAD,EACxE,OADwEsrC,EAAA75B,KAAA,EAClE63B,IAAmC,KAAD,EAAAgC,EAAA75B,KAAA,iBAExC,OAFwC65B,EAAA95B,KAAA,GAAA85B,EAAAnuB,GAAAmuB,EAAA,SAAAA,EAAA75B,KAAA,IAElCs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoB+xB,2BAA2BxrC,IAAgB,KAAD,GACxE,OADwEsrC,EAAA75B,KAAA,IAClEs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAeqsB,EAAAnuB,KAAO,KAAD,oBAAAmuB,EAAA35B,OAAA,GAAA43B,EAAA,eAIpD,SAAUG,IAAgC,OAAAv4B,EAAAA,EAAAA,KAAAG,MAAC,SAADm6B,GAAA,cAAAA,EAAAj6B,KAAAi6B,EAAAh6B,MAAA,OAElC,OAFkCg6B,EAAAj6B,KAAA,EAAAi6B,EAAAh6B,KAAA,EAE5B8N,EAAAA,GAAwBvoB,KAAK,2BAA2B,KAAD,EAC7D,OAD6Dy0C,EAAAh6B,KAAA,GACvDs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBiyB,+BAA+B,KAAD,EAAAD,EAAAh6B,KAAA,gBAE5D,OAF4Dg6B,EAAAj6B,KAAA,EAAAi6B,EAAAtuB,GAAAsuB,EAAA,SAAAA,EAAAh6B,KAAA,IAEtDs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBkyB,+BAA+B,KAAD,GAC5D,OAD4DF,EAAAh6B,KAAA,IACtDs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAewsB,EAAAtuB,KAAO,KAAD,oBAAAsuB,EAAA95B,OAAA,GAAA83B,EAAA,cAI7C,SAAUG,IAAkB,OAAAz4B,EAAAA,EAAAA,KAAAG,MAAC,SAADs6B,GAAA,cAAAA,EAAAp6B,KAAAo6B,EAAAn6B,MAAA,OAC/B,OAD+Bm6B,EAAAn6B,KAAA,GACzBo4B,EAAAA,EAAAA,IAAKtqB,EAAAA,GAAwB9G,OAAO,KAAD,EACzC,OADyCmzB,EAAAn6B,KAAA,GACnCo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQryB,EAAAA,IAAoBuwB,4BAA6BlB,GAAiC,KAAD,EACzG,OADyG8C,EAAAn6B,KAAA,GACnGo6B,EAAAA,EAAAA,IAAUE,EAAAA,GAAeC,cAAehD,GAAuB,KAAD,EACpE,OADoE4C,EAAAn6B,KAAA,GAC9Do6B,EAAAA,EAAAA,IAAUE,EAAAA,GAAe/Z,OAAQkX,GAAiB,KAAD,MACnDt0C,EAAAA,EAAKwoB,kBAAkB,CAADwuB,EAAAn6B,KAAA,SACtB,OADsBm6B,EAAAn6B,KAAA,IAChBs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBuwB,8BAA8B,KAAD,GAE/D,OAF+D4B,EAAAn6B,KAAA,IAEzDw6B,EAAAA,EAAAA,IAAWxyB,EAAAA,IAAoByyB,oBAAqB9C,GAA0B,KAAD,GACnF,OADmFwC,EAAAn6B,KAAA,IAC7Ew6B,EAAAA,EAAAA,IAAWxyB,EAAAA,IAAoB0yB,4BAA6B7C,GAAkC,KAAD,GACnG,OADmGsC,EAAAn6B,KAAA,IAC7Fw6B,EAAAA,EAAAA,IAAWxyB,EAAAA,IAAoB2yB,2BAA4B5C,GAAiC,KAAD,GACjG,OADiGoC,EAAAn6B,KAAA,IAC3Fw6B,EAAAA,EAAAA,IAAWxyB,EAAAA,IAAoB4yB,4BAA6B3C,GAAiC,yBAAAkC,EAAAj6B,OAAA,GAAAg4B,EAAA,C,gCCtF7F2C,GAA8BvD,GAAA53B,EAAAA,EAAAA,KAAAC,KAU9Bm7B,GAAWtD,GAAA93B,EAAAA,EAAAA,KAAAC,KAIJo7B,GAdjB,SAAUF,EAA+BjB,GAAM,IAAAz/B,EAAA,OAAAuF,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGvC,OAHuCF,EAAAC,KAAA,EAE/B5F,EAASy/B,EAAOlrC,QAAhByL,KAAI2F,EAAAE,KAAA,GACNo4B,EAAAA,EAAAA,IAAKn+B,EAAAA,GAAyBC,SAAUC,GAAM,KAAD,EACnD,OADmD2F,EAAAE,KAAA,GAC7Cs4B,EAAAA,EAAAA,KAAI0C,EAAAA,EAAAA,QAAmC,OAAAl7B,EAAAE,KAAA,gBAE7C,OAF6CF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAEvCs4B,EAAAA,EAAAA,KAAI2C,EAAAA,EAAAA,OAAmC,yBAAAn7B,EAAAI,OAAA,GAAAm4B,EAAA,cAIrD,SAAUyC,IAAW,OAAAp7B,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACjB,OADiBqL,EAAArL,KAAA,GACXs4B,EAAAA,EAAAA,KAAI4C,EAAAA,EAAAA,QAAkB,wBAAA7vB,EAAAnL,OAAA,GAAAo3B,EAAA,CAGzB,SAAUyD,IAAsB,OAAAr7B,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACnC,OADmCkM,EAAAlM,KAAA,GAC7Bw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQc,EAAAA,KAAmCN,GAAgC,KAAD,EAC3F,OAD2F3uB,EAAAlM,KAAA,GACrFw6B,EAAAA,EAAAA,IAAWF,EAAAA,GAAe/Z,OAAQua,GAAY,wBAAA5uB,EAAAhM,OAAA,GAAAs3B,EAAA,C,qDCtB9C4D,GAAwB9D,GAAA53B,EAAAA,EAAAA,KAAAC,KAejB07B,GAfjB,SAAUD,EAAyBxB,GAA4E,IAAA0B,EAAA9R,EAAA+R,EAAAC,EAAAC,EAAA9pC,EAAA+pC,EAAA,OAAAh8B,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAI3E,OAJ2EF,EAAAC,KAAA,EAAAu7B,EAE9D1B,EAAOlrC,QAAxC86B,EAAQ8R,EAAR9R,SAAU+R,EAAkBD,EAAlBC,mBAAkBz7B,EAAAE,KAAA,GAEF27B,EAAAA,EAAAA,IAAI,CAClCJ,IAAsBnD,EAAAA,EAAAA,IAAK79B,EAAAA,GAAcC,mBAAoBgvB,EAASz3B,aACtEqmC,EAAAA,EAAAA,IAAK79B,EAAAA,GAAcE,qBACpB,KAAD,EAEF,OAFE+gC,EAAA17B,EAAA2M,KAAAgvB,GAAA9zC,EAAAA,EAAAA,GAAA6zC,EAAA,GAHK7pC,EAAO8pC,EAAA,GAAEC,EAAQD,EAAA,GAAA37B,EAAAE,KAAA,IAKlBs4B,EAAAA,EAAAA,IAAIsD,EAAAA,EAAuBC,2BAA2BlqC,EAAS+pC,IAAW,KAAD,GAAA57B,EAAAE,KAAA,iBAE/E,OAF+EF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAEzEs4B,EAAAA,EAAAA,IAAIsD,EAAAA,EAAuBE,2BAA0Bh8B,EAAA4L,KAAK,KAAD,oBAAA5L,EAAAI,OAAA,GAAAm4B,EAAA,eAIhE,SAAUgD,IAAoB,OAAA37B,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACjC,OADiCqL,EAAArL,KAAA,GAC3Bw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQuB,EAAAA,EAAuBG,4BAA6BX,GAA0B,KAAD,mBAAA/vB,EAAAnL,OAAA,GAAAo3B,EAAA,C,sSC4BhG0E,IAAS1E,IAAA53B,EAAAA,EAAAA,KAAAC,KA0BTs8B,IAAyBzE,IAAA93B,EAAAA,EAAAA,KAAAC,KA6EzBu8B,IAA6BxE,IAAAh4B,EAAAA,EAAAA,KAAAC,KAmB7Bw8B,IAAsBvE,IAAAl4B,EAAAA,EAAAA,KAAAC,KAqBtBy8B,IAAgBtE,IAAAp4B,EAAAA,EAAAA,KAAAC,KAwFhB08B,IAAUrE,IAAAt4B,EAAAA,EAAAA,KAAAC,KAWV28B,IAAqBpE,IAAAx4B,EAAAA,EAAAA,KAAAC,KA2HrB48B,IAAqBC,IAAA98B,EAAAA,EAAAA,KAAAC,KA6BrBm7B,IAAW2B,IAAA/8B,EAAAA,EAAAA,KAAAC,KAIX+8B,IAAgBC,IAAAj9B,EAAAA,EAAAA,KAAAC,KAKTi9B,IAnZjB,SAAUZ,KAAS,IAAAa,EAAAC,EAAAxkB,EAAArkB,EAAAoI,EAAA,OAAAqD,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACW,OADXF,EAAAE,KAAA,GACiB84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,CAAK,IAAE,KAAD,EAElE,OAFkE82C,EAAA/8B,EAAA2M,KAA1DqwB,EAAaD,EAAbC,cACAxkB,EAAsBwkB,EAAtBxkB,kBAAiBxY,EAAAE,KAAA,GACnBs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBC,kBAAkBC,GAAAA,EAAaC,UAAU,KAAD,EAG1B,OAH0Bp9B,EAAAC,KAAA,EAE7D9L,EAAc8sB,GAAAA,EAAQlW,SAAS3c,OAAM4R,EAAAE,KAAA,IACIo4B,EAAAA,EAAAA,IAAK19B,EAAAA,GAA0B2B,yBAAyB,KAAD,GACtG,OADMA,EAAgCyD,EAAA2M,KAAA3M,EAAAE,KAAA,IAChCs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBC,kBAAkBC,GAAAA,EAAaE,QAAS9gC,IAA0B,KAAD,GAEhG,OAFgGyD,EAAAE,KAAA,IAE1Fs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBK,wBAAuB,IAAQ,KAAD,MAExDj6C,EAAAA,EAAKk6C,YAAYC,GAAAA,EAAoBC,2BAA2B,CAADz9B,EAAAE,KAAA,SAChE,OADgEF,EAAAE,KAAA,IAC1Ds4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBS,iBAAiBlN,EAAAA,GAAsBG,cAAc,KAAD,OAEnFx8B,EAAY,CAAD6L,EAAAE,KAAA,SACX,OADWF,EAAAE,KAAA,GACLi8B,GAA0BhoC,GAAY,WAE3CqkB,EAAkB,CAADxY,EAAAE,KAAA,SAClB,OADkBF,EAAAE,KAAA,IACZs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBU,aAAY,IAAM,QAAA39B,EAAAE,KAAA,iBAGrD,OAHqDF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAG/Cs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa59B,EAAA4L,KAAK,KAAD,GACxC,OADwC5L,EAAAE,KAAA,IAClCs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBC,kBAAkBC,GAAAA,EAAavV,UAAU,KAAD,oBAAA5nB,EAAAI,OAAA,GAAAm4B,GAAA,eAI/E,SAAU4D,GAA0BhoC,GAAmB,IAAA0pC,EAAAb,EAAAc,EAAAt2C,EAAA+I,EAAAwtC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAArjC,EAAAsjC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA9+B,EAAAA,EAAAA,KAAAG,MAAA,SAAA2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OACzB,OADyBwM,EAAAxM,KAAA,GACnB84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,CAAK,IAAE,KAAD,EA4BlE,OA5BkE43C,EAAAnxB,EAAAC,KAA1DqwB,EAAaa,EAAbb,cACJc,EAA8B,GAC9Bt2C,OAAgCxE,EAChCuN,OAA8BvN,EAC9B+6C,EAA8B,GAC9BC,EAA8B,GAC9BC,EAA2B,GAC3BC,EAA2B,GAC3BC,OAA8Bn7C,EAC9Bo7C,OAA8Bp7C,EAC9Bq7C,EAAsC,KACtCrjC,OAA+ChY,EAE7Cs7C,EAAoD,EACtDK,EAAAA,GAAAA,KAAY,SAACC,GAA2B,OAAKd,EAAoBc,CAAiB,KAClF/uC,EAAAA,GAAAA,KAAS,SAAAgvC,GAAU,OAAIr3C,EAAOq3C,CAAU,KACxC/uC,EAAAA,GAAAA,KAAO,SAAA+uC,GAAU,OAAItuC,EAAKsuC,CAAU,KACpCrvC,EAAAA,GAAAA,KAAS,SAAAsvC,GAAc,OAAIf,EAAgBe,EAAe/3C,KAAI,SAAAC,GAAC,OAAI29B,OAAO39B,EAAE,GAAC,KAC7E6K,EAAAA,GAAAA,KAAQ,SAAAktC,GAAa,OAAId,EAAiBc,EAAch4C,KAAI,SAAA6rC,GAAC,OAAIoM,GAAAA,GAAOpM,EAAyB,GAAC,KAClGqM,EAAAA,GAAAA,KAAmB,SAACC,GAAc,OAAKlB,EAAkBkB,EAAen4C,KAAI,SAAAiC,GAAC,OAAIyM,GAAAA,EAASzM,EAA2B,GAAC,KACtH+K,EAAAA,GAAAA,KAAM,SAAAorC,GAAW,OAAIjB,EAAeiB,EAAYp4C,KAAI,SAAA2zB,GAAC,OAAI0kB,GAAAA,EAAS1kB,EAA2B,GAAC,KAC9F2kB,EAAAA,GAAAA,KAAS,SAAAC,GAAG,OAAInB,EAAUmB,CAAG,KAC7BC,EAAAA,GAAAA,KAAO,SAAAC,GAAG,OAAIpB,EAAUoB,CAAG,KAC3BC,EAAAA,GAAAA,KAAc,SAAAC,GAAkB,OAAIrB,EAAsBsB,QAAQD,EAAmB,KACrFE,EAAAA,GAAAA,KAAQ,SAAAC,GAAW,OAAI7kC,EAAS6kC,CAAuC,KAE3EC,GAAAA,EAAsBC,YAAY5rC,EAAamqC,GAAa5xB,EAAAxM,KAAA,IAEtD27B,EAAAA,EAAAA,IAAImB,EAAc51C,OAAO44C,aAAaj5C,KAAI,SAACC,GAAe,OAAKwxC,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBgD,uBAAuBtb,OAAO39B,EAAEiK,QAAQ,GAAO,KAAG,KAAD,GAC/I,OAD+Iyb,EAAAxM,KAAA,IACzI27B,EAAAA,EAAAA,IAAIiC,EAAkB/2C,KAAI,SAAC+yB,GAAY,OAAK0e,EAAAA,EAAAA,IAAI0H,EAAAA,IAAwBC,cAAcrmB,GAAM,KAAG,KAAD,OAEhGkkB,EAAgBj7C,OAAO,CAAD2pB,EAAAxM,KAAA,SACtB,OADsBwM,EAAAxM,KAAA,IAChBs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBmD,6BAA4B,IAAQ,KAAD,GAClE,OADkE1zB,EAAAxM,KAAA,IAC5D27B,EAAAA,EAAAA,IAAImC,EAAgBj3C,KAAI,SAAAiC,GAAC,OAAIwvC,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBoD,qBAAqBr3C,GAAG,GAAM,KAAG,KAAD,GAGhG,OAHgG0jB,EAAAxM,KAAA,IAG1F27B,EAAAA,EAAAA,IAAIkC,EAAch3C,KAAI,SAAAC,GAAC,OAAIwxC,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBgD,uBAAuBj5C,GAAG,GAAM,KAAG,KAAD,GAC5F,OAD4F0lB,EAAAxM,KAAA,IACtF27B,EAAAA,EAAAA,IAAIoC,EAAel3C,KAAI,SAAA6rC,GAAC,OAAI4F,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBqD,mBAAmB1N,GAAG,GAAM,KAAG,KAAD,GACzF,OADyFlmB,EAAAxM,KAAA,IACnF27B,EAAAA,EAAAA,IAAIqC,EAAan3C,KAAI,SAAA2zB,GAAC,OAAI8d,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBsD,iBAAiB7lB,GAAG,GAAM,KAAG,KAAD,QAEhFyjB,IAAYC,IAAcD,GAAWC,GAAaD,GAAWC,GAAWzZ,OAAOwZ,IAAYxZ,OAAOyZ,IAAS,CAAA1xB,EAAAxM,KAAA,SAC5G,OAD4GwM,EAAAxM,KAAA,IACtGs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBuD,iBAAiB,CAAElB,IAAY,QAATf,EAAEJ,SAAO,IAAAI,EAAAA,EAAI,GAAIiB,IAAY,QAAThB,EAAEJ,SAAO,IAAAI,EAAAA,EAAI,MAAO,KAAD,GAEhG,OAFgG9xB,EAAAxM,KAAA,IAE1Fs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBwD,0BAA0BpC,IAAqB,QAuBvC,OArBjCI,EAAmC,CACrCiC,WAAY,WAAF,OAAQr9C,EAAAA,EAAKk6C,YAAYC,GAAAA,EAAoBC,0BAA0B,EACjFkD,cAAe,WAAF,QAAUn5C,KAAU+I,CAAE,EACnCqwC,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,IAAAC,EAAAC,EAAAC,EAAA,OAAAnhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAEH,OAFG2gC,GAC6BG,EAAAA,EAAAA,IAAmBx5C,EAAM+I,GAAjDuwC,EAAMD,EAANC,OAAQC,EAAWF,EAAXE,YAAWx1B,EAAArL,KAAA,GACrBs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBS,iBAAiBoD,IAAS,KAAD,KAEpDA,EAAO78C,MAAQusC,EAAAA,GAAsBC,OAAOxsC,IAAG,CAAAsnB,EAAArL,KAAA,QAC/C,OAD+CqL,EAAArL,KAAA,GACzCs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBgE,uBAAuBF,IAAc,KAAD,mBAAAx1B,EAAAnL,OAAA,GAL3EwgC,EAAO,KAULlC,EAAqC,CACvCgC,WAAY,WAAF,OAAQr9C,EAAAA,EAAKk6C,YAAYC,GAAAA,EAAoB0D,mBAAmB,EAC1EP,cAAe,WAAF,QAAU3lC,CAAM,EAC7B4lC,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACH,OADGkM,EAAAlM,KAAA,GACGs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBkE,iBAAiBnmC,IAAU,KAAD,mBAAAoR,EAAAhM,OAAA,GAD7DwgC,EAAO,KAGVl0B,EAAAxM,KAAA,IAE4C,IAAIkhC,GAAAA,GAC5CC,WAAW5C,GACX4C,WAAW3C,GACX4C,mBAAmB,KAAD,GAHa,GAAA50B,EAAAC,KAKT,CAADD,EAAAxM,KAAA,SACtB,OADsBwM,EAAAxM,KAAA,IAChBs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBK,wBAAuB,IAAO,KAAD,oBAAA5wB,EAAAtM,OAAA,GAAAo3B,GAAA,CAIpE,SAAU4E,KAA6B,IAAA5jB,EAAAxd,EAAAumC,EAAA90C,EAAA,OAAAmT,EAAAA,EAAAA,KAAAG,MAAC,SAADyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,OAEqB,OAFrBsN,EAAAvN,KAAA,EAAAuN,EAAAtN,KAAA,GAE2B84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM+2C,cAAcxkB,iBAAiB,IAAE,KAAD,EACnF,OADnCA,EAA2ChL,EAAAb,KAAAa,EAAAtN,KAAA,GACF84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM+2C,cAAchiC,MAAM,IAAE,KAAD,EAAhE,GAAhCA,EAAgCwS,EAAAb,MAClC6L,EAAkB,CAADhL,EAAAtN,KAAA,SACgC,OADhCsN,EAAAtN,KAAA,GACsCm8B,GAAuB7jB,GAAmB,KAAD,GACrD,OADrC+oB,EAAwC/zB,EAAAb,KAAAa,EAAAtN,KAAA,IACGo4B,EAAAA,EAAAA,IAC7C19B,EAAAA,GAA0BwB,0BAC1BmlC,EAAcvmC,GAChB,KAAD,GAED,OALMvO,EAAkC+gB,EAAAb,MAIxC60B,EAAAA,EAAAA,QAAO/0C,EAAK9J,KAAM8J,EAAKpH,MAAMmoB,EAAAtN,KAAA,IACvBs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBwE,4BAA2B,QAAAj0B,EAAAtN,KAAA,iBAG9D,OAH8DsN,EAAAvN,KAAA,GAAAuN,EAAA5B,GAAA4B,EAAA,SAAAA,EAAAtN,KAAA,IAGxDs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAeF,EAAA5B,KAAK,KAAD,GAC1C,OAD0C4B,EAAAtN,KAAA,IACpCs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqByE,4BAA2B,yBAAAl0B,EAAApN,OAAA,GAAAs3B,GAAA,eAIlE,SAAU2E,GAAuBsF,GAAqC,IAAA17C,EAAAsJ,EAAAqyC,EAAA,OAAAhiC,EAAAA,EAAAA,KAAAG,MAAA,SAAAg6B,GAAA,cAAAA,EAAA95B,KAAA85B,EAAA75B,MAAA,OAChC,OADgC65B,EAAA75B,KAAA,GAC1B84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM+2C,aAAa,IAAE,KAAD,EACjD,OADjC/2C,EAAyB8zC,EAAAptB,KAAAotB,EAAA75B,KAAA,GACc84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM8tB,iBAAiB0E,eAAe,IAAE,KAAD,EAC9D,OAD5ClpB,EAA8BwqC,EAAAptB,KAC9Bi1B,GAAY/Q,EAAAA,EAAAA,IAAmB8Q,GAAY5H,EAAA55B,OAAA,SAE1C,CACH5Q,qBAAAA,EACA/H,KAAMo6C,EAAU/xC,SAAW3E,IAAO02C,EAAU/xC,UAAU1E,OAAOyC,EAAAA,GAAU0C,wBAAqBtN,EAC5FuN,GAAIqxC,EAAU9xC,OAAS5E,IAAO02C,EAAU9xC,QAAQ3E,OAAOyC,EAAAA,GAAU0C,wBAAqBtN,EACtFwM,SAAUqyC,GAAwBF,EAAY3B,cAC9CtwC,SAAUoyC,GAAoBH,EAAYI,YAAY,IAAM,GAC5DlwC,QAASgwC,GAAwBF,EAAY9vC,SAC7CkC,MAAO8tC,GAAwBF,EAAY5tC,OAC3CzF,KAAMrI,EAAM+7C,kBACZzzC,SAAUtI,EAAMsI,SAChB8wC,SAAU4C,EAAAA,GAAaC,SAASP,EAAY/lC,KAAK0jC,KAAO3a,OAAOgd,EAAY/lC,KAAK0jC,UAAOt8C,EACvFu8C,OAAQ0C,EAAAA,GAAaC,SAASP,EAAY/lC,KAAK4jC,KAAO7a,OAAOgd,EAAY/lC,KAAK4jC,UAAOx8C,EACrFy8C,cAAekC,EAAYlC,gBAC9B,wBAAA1F,EAAA35B,OAAA,GAAAw3B,GAAA,CAGL,SAAU0E,GAAiBxC,GAA2D,IAAAqI,EAAAl8C,EAAAsJ,EAAA6yC,EAAAh7C,EAAAi7C,EAAAz5B,EAAA05B,EAAAx4B,EAAAy4B,EAAAjE,EAAAjqB,EAAAlgB,EAAA,OAAAyL,EAAAA,EAAAA,KAAAG,MAAA,SAAAm6B,GAAA,cAAAA,EAAAj6B,KAAAi6B,EAAAh6B,MAAA,OAChD,OADgDg6B,EAAAh6B,KAAA,GAC1C84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM+2C,aAAa,IAAE,KAAD,EACjD,OADjC/2C,EAAyBi0C,EAAAvtB,KAAAutB,EAAAh6B,KAAA,GACc84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM8tB,iBAAiB0E,eAAe,IAAE,KAAD,EAA5E,GAA9BlpB,EAA8B2qC,EAAAvtB,MAEhC1mB,EAAMq3C,uBAAuB,CAADpD,EAAAh6B,KAAA,eAAAg6B,EAAA/5B,OAAA,iBAEhC,OAFgC+5B,EAAAh6B,KAAA,IAE1Bs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBuF,uBAAsB,IAAO,KAAD,GAMN,GAJ/CJ,EAAkBtI,EAAOlrC,QAAQ6zC,SAAW3I,EAAOlrC,QAAQ8zC,mBAE3Dt7C,EAASg7C,EACTn8C,EAAMmB,OACiB,QADX+6C,EACZl8C,EAAMuyB,yBAAiB,IAAA2pB,EAAAA,EAAIl8C,EAAMi9B,eAEnCkf,EAAgB,CAADlI,EAAAh6B,KAAA,SACf,OADeg6B,EAAAh6B,KAAA,IACTs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqB0F,gBAAgB,KAAD,GAM1C,OAN0CzI,EAAAj6B,KAAA,GAAAi6B,EAAAtuB,GAIyD0sB,EAAAA,GAAI4B,EAAA3S,GACvG3sB,EAAAA,GAA0BE,wBAAuBo/B,EAAAh6B,KAAA,GAC3Cm8B,GAAuBj1C,GAAO,QAFyD,OAEzD8yC,EAAAxS,GAAAwS,EAAAvtB,KAAAutB,EAAA0I,GACpC38C,EAAM+U,OAAMk/B,EAAA2I,GACZT,EAAelI,EAAAh6B,KAAA,IAJ8E,EAAAg6B,EAAAtuB,IAAAsuB,EAAA3S,GAAA2S,EAAAxS,GAAAwS,EAAA0I,GAAA1I,EAAA2I,IAKhG,QAoBuG,GAzBlGj6B,EAAwFsxB,EAAAvtB,KAMtF21B,EAA0C15B,EAA1C05B,kBAAmBx4B,EAAuBlB,EAAvBkB,OAAWy4B,GAAOO,EAAAA,EAAAA,GAAKl6B,EAAQm6B,IACpDzE,EAAoD,EACtDK,EAAAA,GAAAA,OACAnvC,EAAAA,GAAAA,OACAK,EAAAA,GAAAA,OACAgC,EAAAA,GAAAA,OACAotC,EAAAA,GAAAA,OACAnvC,EAAAA,GAAAA,OACAiE,EAAAA,GAAAA,OACAsrC,EAAAA,GAAAA,OACAE,EAAAA,GAAAA,OACAE,EAAAA,GAAAA,OAGAp8C,EAAAA,EAAKk6C,YAAYC,GAAAA,EAAoB0D,qBACrC5C,EAAY0E,MAAKpD,EAAAA,GAAAA,OAGfvrB,EAAWkP,GAAkBt9B,EAAMmB,OAAQmI,IAC3C4E,EAAc2rC,GAAAA,EAAsBmD,WAASj7C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIqsB,GAAQ,IAAErZ,OAAQ/U,EAAM+U,SAAUsjC,OAChD,QAA5B+D,EAAKphB,GAAAA,EAAQlW,SAAS3c,cAAM,IAAAi0C,OAAA,EAAvBA,EAAyBnhB,QAAQ,IAAK,KAAG,CAAAgZ,EAAAh6B,KAAA,SACzD,OADyDg6B,EAAAh6B,KAAA,IACnDo4B,EAAAA,EAAAA,IAAKrX,GAAAA,EAAQC,QAASD,GAAAA,EAAQlW,SAASm4B,SAAW,IAAM/uC,GAAa,KAAD,OAE1E2lC,EAAOlrC,QAAQ6zC,QAAQ,CAADvI,EAAAh6B,KAAA,SACtB,OADsBg6B,EAAAh6B,KAAA,IAChBs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBkG,mBAAmBl9C,EAAMmB,SAAS,KAAD,GAEpE,OAFoE8yC,EAAAh6B,KAAA,IAE9Ds4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBmG,kBAC3B,CAAEd,kBAAAA,EAAmBx4B,OAAAA,GACrBs4B,EAAkBG,OAAUv/C,IAC7B,KAAD,GAAAk3C,EAAAh6B,KAAA,iBAEF,OAFEg6B,EAAAj6B,KAAA,GAAAi6B,EAAAmJ,GAAAnJ,EAAA,UAAAA,EAAAh6B,KAAA,IAEIs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa1D,EAAAmJ,KAAK,KAAD,GAExC,OAFwCnJ,EAAAj6B,KAAA,GAAAi6B,EAAAh6B,KAAA,IAElCs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBuF,uBAAsB,IAAQ,KAAD,UAAAtI,EAAAoJ,OAAA,6BAAApJ,EAAA95B,OAAA,GAAA03B,GAAA,sBAIpE,SAASgK,GAAoBC,GACzB,IAAMwB,EAAqBxB,EAAW36C,QAAO,SAAAsI,GAAQ,OAAIA,EAAS2zB,QAAQ,IAC1E,OAAqC,IAA9BkgB,EAAmBxgD,QAAiBwgD,EAAmBxgD,OAAc,CAACygD,OAAOD,EAAmB,GAAGtyC,QAAnC,EAC3E,CAEA,SAASsyB,GAAkBn8B,EAAkCmI,GACzD,OAAAvH,EAAAA,EAAAA,GAAA,CACIuH,qBAAAA,EACAC,SAAUpI,EAAO44C,aAAa54C,QAAO,SAAAJ,GAAC,OAAIA,EAAEq8B,QAAQ,IAAEt8B,KAAI,SAAAC,GAAC,OAAIA,EAAEiK,KAAK,IACtEY,QAASzK,EAAOyK,QAAQzK,QAAO,SAAAwrC,GAAC,OAAIA,EAAEvP,QAAQ,IAAEt8B,KAAI,SAAA6rC,GAAC,OAAIA,EAAE3hC,KAAK,IAChE8C,MAAO3M,EAAO2M,MAAM3M,QAAO,SAAAszB,GAAC,OAAIA,EAAE2I,QAAQ,IAAEt8B,KAAI,SAAA2zB,GAAC,OAAIA,EAAEzpB,KAAK,IAC5DvB,SAAUtI,EAAO26C,WAAW36C,QAAO,SAAAsI,GAAQ,OAAIA,EAAS2zB,QAAQ,IAAEt8B,KAAI,SAAAiC,GAAC,OAAIA,EAAEiI,KAAK,IAClFouC,SAAUj4C,EAAOwU,KAAK0jC,IACtBC,OAAQn4C,EAAOwU,KAAK4jC,IACpBC,cAAer4C,EAAOq4C,gBACnB5O,EAAAA,EAAAA,IAAmBzpC,GAE9B,CAEA,SAASy6C,GAAgC18B,GACrC,OAAIA,EAAQ9b,MAAK,SAAAo6C,GAAC,OAAIA,EAAEpgB,QAAQ,KAAKle,EAAQ9b,MAAK,SAAAo6C,GAAC,OAAKA,EAAEpgB,QAAQ,IACvDle,EAAQ/d,QAAO,SAAAq8C,GAAC,OAAIA,EAAEpgB,QAAQ,IAAEt8B,KAAI,SAAA08C,GAAC,OAAIA,EAAExyC,KAAK,IAEpD,EACX,CAEA,SAAUsrC,KAAU,IAAAmH,EAAAjrB,EAAA,OAAA7Y,EAAAA,EAAAA,KAAAG,MAAC,SAADs6B,GAAA,cAAAA,EAAAp6B,KAAAo6B,EAAAn6B,MAAA,OACY,OADZm6B,EAAAn6B,KAAA,GACkB84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM8tB,gBAAgB,IAAE,KAAD,EACrF,OADqF2vB,EAAArJ,EAAA1tB,KAA7E8L,EAAeirB,EAAfjrB,gBAAe4hB,EAAAn6B,KAAA,GACjBs4B,EAAAA,EAAAA,IAAI0H,EAAAA,IAAwB3qC,SAAS,KAAD,EAC1C,OAD0C8kC,EAAAn6B,KAAA,GACpCs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqB0G,oBAAoBlrB,IAAkB,KAAD,mBAAA4hB,EAAAj6B,OAAA,GAAA43B,GAAA,CAQxE,SAAUwE,GAAsB1C,GAAkC,IAAA8J,EAAAC,EAAAC,EAAAC,EAAA99C,EAAA+9C,EAAAC,EAAAj1C,EAAAG,EAAAyY,EAAAs8B,EAAAC,EAAAxoC,EAAAyoC,EAAAC,EAAAC,EAAAC,EAAA1N,EAAAlsB,EAAA/B,EAAA47B,EAAAC,EAAA3oC,EAAA4oC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA/nC,EAAAgoC,EAAAC,EAAAC,EAAA,OAAArlC,EAAAA,EAAAA,KAAAG,MAAA,SAAAmlC,GAAA,cAAAA,EAAAjlC,KAAAilC,EAAAhlC,MAAA,OAC5B,OAD4BglC,EAAAhlC,KAAA,GACtB84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM+2C,aAAa,IAAE,KAAD,EACzC,OADzC/2C,EAAyBi/C,EAAAv4B,KAAAu4B,EAAAhlC,KAAA,GACsB84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,OACpEA,EAAEg9C,aAAamB,SAASz3C,MAAK,SAAAklC,GAAC,OAC1BA,EAAEwS,QAAUC,GAAAA,EAAiBC,iBAC7B1S,EAAEwS,QAAUC,GAAAA,EAAiBE,gBAAgB,GAAC,IACpD,KAAD,EAcuE,GAlBlEvB,EAAsCkB,EAAAv4B,KAAAs3B,EAiBxCnK,EAAOlrC,QAAQyL,KAVfrL,EAAiBi1C,EAAjBj1C,kBACAG,EAAU80C,EAAV90C,WACAyY,EAAKq8B,EAALr8B,MACAs8B,EAAID,EAAJC,KACAC,EAAKF,EAALE,MACAxoC,EAAUsoC,EAAVtoC,WACAyoC,EAAYH,EAAZG,aACAC,EAAuBJ,EAAvBI,wBACAC,EAAmBL,EAAnBK,oBACAC,EAAYN,EAAZM,cAEE1N,EAAU5wC,EAAMvD,UAAUgL,MAAK,SAAAyrB,GAAC,OAAIA,EAAEqsB,SAASz7C,KAAOoF,CAAU,QAIlEs2C,EAAAA,EAAAA,IAAyB,OAAZzB,QAAY,IAAZA,OAAY,EAAZA,EAAc/9C,UAC3BV,EAAAA,GAAAA,MAAKU,EAAMy/C,8BAA8Br8C,MAAK,SAAApF,GAAG,OAAIgC,EAAMy/C,8BAA8BzhD,EAAI,IAAC,CAAAihD,EAAAhlC,KAAA,gBAAAglC,EAAA/kC,OAAA,kBAIlG,OAJkG+kC,EAAAhlC,KAAA,IAI5Fs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqB0I,6BAA4B,EAAMx2C,IAAa,KAAD,OAEzE60C,EAAa,CAADkB,EAAAhlC,KAAA,SACZ,OADYglC,EAAAhlC,KAAA,IACNs4B,EAAAA,EAAAA,IAAI3uB,EAAAA,IAAoB+7B,WAAWP,GAAAA,EAAiBC,kBAAkB,KAAD,GAC3E,OAD2EJ,EAAAhlC,KAAA,IACrEs4B,EAAAA,EAAAA,IAAI3uB,EAAAA,IAAoB+7B,WAAWP,GAAAA,EAAiBE,mBAAmB,KAAD,GAUmD,GAP7H56B,EAAyB,OAAZq5B,QAAY,IAAZA,GAAoB,QAARJ,EAAZI,EAAcl6B,cAAM,IAAA85B,OAAR,EAAZA,EAAsBj5B,WACnC/B,EAAuB,OAAZo7B,QAAY,IAAZA,GAAoB,QAARH,EAAZG,EAAcl6B,cAAM,IAAA+5B,OAAR,EAAZA,EAAsBj7B,SACjC47B,EAA0B,MAAf75B,GAAkC,MAAZ/B,EAAmBi9B,GAAcj9B,QAAY5lB,EAC9EyhD,EAAuC,MAAf95B,EACxB7O,EAAgC,QAAzBgoC,EAAW,OAARU,QAAQ,IAARA,OAAQ,EAARA,EAAUJ,oBAAY,IAAAN,EAAAA,EAAIM,EACpCM,EAAoE,OAAf,QAA1BX,EAAAlN,EAAQiP,0BAAkB,IAAA/B,OAAA,EAA1BA,EAA4BgC,WACtDn+B,GAASjM,IAAe2oC,EACxB18B,GAASA,IAAUivB,EAAQiP,mBAAmBl+B,OAAWjM,GAAcA,IAAek7B,EAAQiP,mBAAmBnqC,WAAWupC,EAAAjlC,KAAA,IAG3HykC,EAAyB,CAADQ,EAAAhlC,KAAA,SAee,OAdjCykC,EAAa,CACfx1C,WAAAA,EACAuM,eAAgB2oC,EAChB1oC,WAAAA,EACA1K,MAAO2W,EACPs8B,KAAAA,EACAC,MAAAA,EACAvoC,KAAM2oC,EACN1oC,cAAe,GACfC,QAAAA,EACAkqC,0BAA2BvB,EAC3Bh2B,oBAAqBooB,EAAQviB,KAAKjgB,QAAQoa,qBAC7Cy2B,EAAAhlC,KAAA,IAE4Co4B,EAAAA,EAAAA,IACzC19B,EAAAA,GAA0BsB,OAC1BlN,EACA,CAAC21C,IACH,KAAD,GAED,OAFCC,EAAAM,EAAAv4B,KAAAk4B,GAAAh9C,EAAAA,EAAAA,GAAA+8C,EAAA,GAJMh8B,EAAQi8B,EAAA,GAAAK,EAAAhlC,KAAA,IAMTs4B,EAAAA,EAAAA,IAAI3uB,EAAAA,IAAoBo8B,WAAW,CACrChgD,MAAOk3C,GAAAA,EAAaC,QACpBgI,MAAOC,GAAAA,EAAiBE,iBACxBjiD,MAAOslB,EAAStlB,MAChB6L,WAAYyZ,EAASzZ,WACrB+2C,YAAY,EACZC,oBAAoB,EACpBC,YAAa,IAAIzuB,QACjB,KAAD,GAAAutB,EAAAhlC,KAAA,qBACI22B,EAAQiP,qBAAsBjP,EAAQiP,mBAAmBC,UAAS,CAAAb,EAAAhlC,KAAA,SASlC,OARjCnD,EAAoC,CAAC,CACvC5N,WAAAA,EACAk3C,MAAOxP,EAAQiP,mBAAmBC,UAAUh8C,GAC5Cm6C,KAAAA,EACAC,MAAAA,EACAroC,QAAAA,EACA2S,oBAAqBooB,EAAQviB,KAAKjgB,QAAQoa,sBAC5Cy2B,EAAAhlC,KAAA,IAC2Co4B,EAAAA,EAAAA,IAAKgO,EAAAA,GAAeC,oBAAqBxpC,GAAO,KAAD,GAE5F,OAF4FgoC,EAAAG,EAAAv4B,KAAAq4B,GAAAn9C,EAAAA,EAAAA,GAAAk9C,EAAA,GAArFn8B,EAAQo8B,EAAA,GAAAE,EAAAhlC,KAAA,IAETs4B,EAAAA,EAAAA,IAAI3uB,EAAAA,IAAoBo8B,WAAW,CACrChgD,MAAOk3C,GAAAA,EAAaC,QACpBgI,MAAOC,GAAAA,EAAiBC,gBACxBhiD,MAAOslB,EAAStlB,MAChB6L,WAAYyZ,EAASzZ,WACrB+2C,YAAY,EACZC,oBAAoB,EACpBC,YAAa,IAAIzuB,QACjB,KAAD,GAAAutB,EAAAhlC,KAAA,iBAGP,OAHOglC,EAAAjlC,KAAA,GAAAilC,EAAAt5B,GAAAs5B,EAAA,UAAAA,EAAAhlC,KAAA,IAGDs4B,EAAAA,EAAAA,IAAI3uB,EAAAA,IAAoBo8B,WAAW,CACrChgD,MAAOk3C,GAAAA,EAAavV,QACpBwd,MAAOC,GAAAA,EAAiBE,iBACxBjiD,MAAO,GACP4iD,YAAY,EACZ/2C,WAAAA,EACAi3C,YAAa,IAAIzuB,KACjB7N,OAAQ,CACJa,WAAYu6B,EAAAt5B,GAAEnnB,OACd2gD,MAAOC,GAAAA,EAAiBE,iBACxBjiD,MAAO,GACP6L,WAAAA,EACAyZ,SAAU,OAEd,KAAD,GAEH,OAFGs8B,EAAAjlC,KAAA,GAAAilC,EAAAhlC,KAAA,IAEGs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqB0I,6BAA4B,EAAOx2C,IAAa,KAAD,UAAA+1C,EAAA5B,OAAA,6BAAA4B,EAAA9kC,OAAA,GAAA83B,GAAA,sBAItF,SAAS2N,GAAcW,GACnB,IAAMC,EAAkCD,EAAWp+B,EAAAA,GAAUs+B,SAASF,GAAY,KAClF,OAAgB,OAATC,QAAS,IAATA,GAAAA,EAAW1jD,OAAS0jD,EAAU,GAAK,IAC9C,CAEA,SAAUhK,GAAsB3C,GAA2E,IAAA7zC,EAAA0gD,EAAAjkD,EAAA,OAAAkd,EAAAA,EAAAA,KAAAG,MAAA,SAAA6mC,GAAA,cAAAA,EAAA3mC,KAAA2mC,EAAA1mC,MAAA,OACrE,OADqE0mC,EAAA1mC,KAAA,GAC/D84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM+2C,aAAa,IAAE,KAAD,EAAzD,GAAzB/2C,EAAyB2gD,EAAAj6B,KAEzBmtB,EAAO+M,aAAeC,GAAAA,EAAWC,WAAajN,EAAO+M,aAAeC,GAAAA,EAAWE,QAAQ,CAADJ,EAAA1mC,KAAA,SAiBrF,GAhBGymC,GAAS3+C,EAAAA,EAAAA,GAAA,GAAQ/B,EAAMghD,sBACvBvkD,EAAYuD,EAAMvD,UACnB0E,QAAO,SAAA+xB,GAAC,OAAIA,EAAE7E,KAAK7lB,gBAAkBqrC,EAAO9qC,iBAAiB,IAC7DjI,KAAI,SAAAoyB,GAAC,OAAAnxB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCmxB,GAAC,IACJ7E,MAAItsB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOmxB,EAAE7E,MAAI,IAAE7vB,OAAQq1C,EAAO+M,WAAYK,qBAAqB,IACnEpB,mBAAoB3sB,EAAE2sB,oBAAkB99C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjCmxB,EAAE2sB,oBAAkB,IACvBrhD,OAAQ0iD,GAAAA,EAAiBC,eACzBpkD,GAAS,KAGXwC,SAAQ,SAAA2zB,GACVwtB,EAAUxtB,EAAEqsB,SAASz7C,YACd48C,EAAUxtB,EAAEqsB,SAASz7C,GAEpC,KAEIrH,EAAUK,OAAO,CAAD6jD,EAAA1mC,KAAA,SAChB,OADgB0mC,EAAA1mC,KAAA,IACVs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBoK,0BAA0BV,IAAY,KAAD,GACpE,OADoEC,EAAA1mC,KAAA,IAC9Ds4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBqK,kBAAkB5kD,IAAY,KAAD,oBAAAkkD,EAAAxmC,OAAA,GAAAg4B,GAAA,CAKxE,SAAU4C,KAAW,OAAAp7B,EAAAA,EAAAA,KAAAG,MAAC,SAADwnC,GAAA,cAAAA,EAAAtnC,KAAAsnC,EAAArnC,MAAA,OACjB,OADiBqnC,EAAArnC,KAAA,GACXs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBuK,aAAa,KAAD,mBAAAD,EAAAnnC,OAAA,GAAAs8B,GAAA,CAG/C,SAAUE,KAAgB,OAAAh9B,EAAAA,EAAAA,KAAAG,MAAC,SAAD0nC,GAAA,cAAAA,EAAAxnC,KAAAwnC,EAAAvnC,MAAA,OACtB,OADsBunC,EAAAvnC,KAAA,GAChBs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqByK,eAAe,KAAD,EAC7C,OAD6CD,EAAAvnC,KAAA,GACvCs4B,EAAAA,EAAAA,IAAIyE,EAAAA,IAAqBU,eAAe,KAAD,mBAAA8J,EAAArnC,OAAA,GAAAu8B,GAAA,CAG1C,SAAUG,KAAkB,OAAAl9B,EAAAA,EAAAA,KAAAG,MAAC,SAAD4nC,GAAA,cAAAA,EAAA1nC,KAAA0nC,EAAAznC,MAAA,OAC/B,OAD+BynC,EAAAznC,KAAA,GACzBo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ0C,EAAAA,IAAqB2K,MAAO1L,IAAW,KAAD,EAC9D,OAD8DyL,EAAAznC,KAAA,GACxDo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ0C,EAAAA,IAAqBU,aAAcrB,IAAkB,KAAD,EAC5E,OAD4EqL,EAAAznC,KAAA,GACtEo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ0C,EAAAA,IAAqB4K,aAAcjL,IAAkB,KAAD,EAC5E,OAD4E+K,EAAAznC,KAAA,GACtEo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ0C,EAAAA,IAAqB1nC,OAAQgnC,IAAY,KAAD,EAChE,OADgEoL,EAAAznC,KAAA,IAC1Do6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ0C,EAAAA,IAAqB6K,kBAAmBtL,IAAuB,KAAD,GACtF,OADsFmL,EAAAznC,KAAA,IAChFo6B,EAAAA,EAAAA,IAAUyN,EAAAA,GAAgBC,6BAA8BvL,IAAuB,KAAD,GACpF,OADoFkL,EAAAznC,KAAA,IAC9Eo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ0C,EAAAA,IAAqBgL,0BAA2B7L,IAA+B,KAAD,GACtG,OADsGuL,EAAAznC,KAAA,IAChGo6B,EAAAA,EAAAA,IAAUE,EAAAA,GAAe/Z,OAAQua,IAAa,KAAD,oBAAA2M,EAAAvnC,OAAA,GAAAy8B,GAAA,C,sBCta7CqL,IAA0B1Q,IAAA53B,EAAAA,EAAAA,KAAAC,KAmCnBsoC,IAnCjB,SAAUD,GAA2BpO,GAAqE,IAAAsO,EAAA/Z,EAAAJ,EAAAO,EAAA,OAAA5uB,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAQtG,OARsGkoC,EACrCtO,EAAOlrC,QAAQy/B,aAAxEA,EAAY+Z,EAAZ/Z,aAAcJ,EAAcma,EAAdna,eAAgBO,EAAsB4Z,EAAtB5Z,uBAEtCnrC,EAAAA,EAAKic,mBACD+uB,EACAJ,EACAO,GACFxuB,EAAAE,KAAA,GACIs4B,EAAAA,EAAAA,IAAIgC,EAAAA,IAAe6N,yBAAyB,KAAD,mBAAAroC,EAAAI,OAAA,GAAAm4B,GAAA,CA2B9C,SAAU4P,KAAkB,OAAAvoC,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAE/B,OAF+BqL,EAAArL,KAAA,GAEzBo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ9wB,EAAAA,IAAqBC,0BAA2Bw+B,IAA4B,KAAD,mBAAA38B,EAAAnL,OAAA,GAAAo3B,GAAA,C,yDClE7F8Q,IAA6B9Q,IAAA53B,EAAAA,EAAAA,KAAAC,KAoB7Bm7B,IAAWtD,IAAA93B,EAAAA,EAAAA,KAAAC,KAIJ0oC,IAxBjB,SAAUD,KAA6B,IAAA1Y,EAAA4Y,EAAA,OAAA5oC,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAC9B7c,EAAAA,EAAKwoB,mBAAsBxoB,EAAAA,EAAK6nC,SAAQ7qB,MAAbhd,EAAAA,GAAI6F,EAAAA,GAAAA,GAAakoB,EAAAA,GAAMq3B,kCAAgC,CAAAzoC,EAAAE,KAAA,eAAAF,EAAAG,OAAA,iBAM/E,OAN+EH,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAMzEo4B,EAAAA,EAAAA,IAAK97B,EAAAA,GAA4BC,oCAAoC,KAAD,EAGM,IAJ9EmzB,EAA2C5vB,EAAA2M,MAG5B3iB,MAAK,SAACN,EAAGrC,GAAC,OAC3BqC,EAAEkT,UAAU1S,cAAc7C,EAAEuV,YAAclT,EAAEmT,SAAS3S,cAAc7C,EAAEwV,SAAS,KAE9E+yB,EAAqB7sC,OAAO,CAADid,EAAAE,KAAA,SAC3B,OAD2BF,EAAAE,KAAA,IACrBs4B,EAAAA,EAAAA,IAAIkQ,EAAAA,IAA2BC,0BAA0B/Y,IAAuB,KAAD,GAAA5vB,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAGzFqM,GAAAA,EAAOC,UAAStM,EAAA4L,GAAI,oDAAmE,QAAjB48B,EAAGnlD,EAAAA,EAAKwzC,iBAAS,IAAA2R,OAAA,EAAdA,EAAgBz+C,KAAI,yBAAAiW,EAAAI,OAAA,GAAAm4B,GAAA,eAIrG,SAAUyC,KAAW,OAAAp7B,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACjB,OADiBqL,EAAArL,KAAA,GACXs4B,EAAAA,EAAAA,IAAIkQ,EAAAA,IAA2BnzC,SAAQ,wBAAAgW,EAAAnL,OAAA,GAAAo3B,GAAA,CAG1C,SAAU+Q,KAAwB,OAAA3oC,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACrC,OADqCkM,EAAAlM,KAAA,GAC/Bo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQmO,EAAAA,IAA2BE,8BAA+BN,IAA+B,KAAD,EAChH,OADgHl8B,EAAAlM,KAAA,GAC1Go6B,EAAAA,EAAAA,IAAUE,EAAAA,GAAe/Z,OAAQua,IAAY,wBAAA5uB,EAAAhM,OAAA,GAAAs3B,GAAA,C,iFCK7CmR,IAAgBrR,IAAA53B,EAAAA,EAAAA,KAAAC,KAQhBipC,IAAiBpR,IAAA93B,EAAAA,EAAAA,KAAAC,KAcVkpC,IA5BjB,SAASC,GAAuB5hD,GAC5B,IAAM6hD,EApBV,SAA+BC,GAAyD,IAADC,EAC7EF,EAA2C,QAArCE,EAAGD,EAAax7C,MAAK,SAAAhF,GAAC,OAAIA,EAAE26B,QAAQ,WAAC,IAAA8lB,OAAA,EAAlCA,EAAoCl4C,MAC7Cm4C,GAAyDC,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GAC1DC,GAAAA,EAAmBC,MAAQ,CACxB/hD,KAAM0D,MAASs+C,SAAS,EAAG,SAASzjB,SACpCx1B,GAAIrF,MAAS66B,WAEhBujB,GAAAA,EAAmBG,QAAU,CAC1BjiD,KAAM0D,MAASs+C,SAAS,EAAG,SAASzjB,SACpCx1B,GAAIrF,MAAS66B,WAEhBujB,GAAAA,EAAmB79C,KAAO,CACvBjE,KAAM0D,MAASs+C,SAAS,EAAG,QAAQzjB,SACnCx1B,GAAIrF,MAAS66B,WAGrB,OAAOkjB,EAASG,EAAaH,GAAUG,EAAaE,GAAAA,EAAmBC,MAC3E,CAGmBG,CAAsBtiD,EAAO6hD,QACtCz5C,EAAWpI,EAAO3C,OAAO2C,QAAO,SAAAJ,GAAC,OAAIA,EAAEq8B,QAAQ,IAAEt8B,KAAI,SAAAC,GAAC,OAAI29B,OAAO39B,EAAEiK,MAAM,IAC/E,MAAO,CAAEpB,SAAUo5C,EAAOzhD,KAAMsI,OAAQm5C,EAAO14C,GAAIf,SAAAA,EACvD,CAEA,SAAUq5C,KAAgB,IAAA9L,EAAA31C,EAAAuiD,EAAA,OAAA/pC,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACY,OADZF,EAAAE,KAAA,GACkB84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,OAAKA,EAAE4iD,cAAcC,cAAc,IAAE,KAAD,EAC/F,OAD+F9M,EAAA/8B,EAAA2M,KAAvFvlB,EAAM21C,EAAN31C,OAAQuiD,EAAa5M,EAAb4M,cAAa3pC,EAAAE,KAAA,GACvBs4B,EAAAA,EAAAA,IAAIsR,GAAAA,EAAsBC,oBAAoB5M,GAAAA,EAAaC,UAAU,KAAD,MACrE1Z,EAAAA,GAAAA,SAAQt8B,EAAQuiD,GAAe,CAAD3pC,EAAAE,KAAA,SAC/B,OAD+BF,EAAAE,KAAA,IACzBs4B,EAAAA,EAAAA,IAAIsR,GAAAA,EAAsBE,kBAAkB,KAAD,oBAAAhqC,EAAAI,OAAA,GAAAm4B,GAAA,CAIzD,SAAUuQ,GAAkBhP,GAAiB,IAAAnhB,EAAAklB,EAAAz2C,EAAA6iD,EAAAp6C,EAAAC,EAAAN,EAAAq6C,EAAA,OAAAjqC,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACtB,GAAZyY,EAAgBmhB,EAAOlrC,QAAvB+pB,eACH8sB,EAAAA,EAAAA,IAAa9sB,GAAc,CAADpN,EAAArL,KAAA,SAEH,OAFGqL,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAEG84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,OAAKA,EAAE4iD,cAAcC,cAAc,IAAE,KAAD,EAEvC,OAFuChM,EAAAtyB,EAAAoB,KAAxEvlB,EAAMy2C,EAANz2C,OAAM6iD,EACyBjB,GAAuB5hD,GAAtDyI,EAAQo6C,EAARp6C,SAAUC,EAAMm6C,EAANn6C,OAAQN,EAAQy6C,EAARz6C,SAAQ+b,EAAArL,KAAA,IACao4B,EAAAA,EAAAA,IAAK/5B,GAAAA,EAAeiB,qBAAsB3P,EAAUC,EAAQN,GAAU,KAAD,GACpH,OADMq6C,EAAgCt+B,EAAAoB,KAAApB,EAAArL,KAAA,IAChCs4B,EAAAA,EAAAA,IAAIsR,GAAAA,EAAsBC,oBAAoB5M,GAAAA,EAAaE,QAASwM,IAAiB,KAAD,GAAAt+B,EAAArL,KAAA,iBAE1F,OAF0FqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,IAEpFs4B,EAAAA,EAAAA,IAAIsR,GAAAA,EAAsBC,oBAAoB5M,GAAAA,EAAavV,UAAU,KAAD,oBAAArc,EAAAnL,OAAA,GAAAo3B,GAAA,eAK/E,SAAUuR,KAAmB,OAAAnpC,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OAChC,OADgCkM,EAAAlM,KAAA,GAC1Bw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQuP,GAAAA,EAAsBC,qBAAsBjB,IAAmB,KAAD,EACvF,OADuF18B,EAAAlM,KAAA,GACjFo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQuP,GAAAA,EAAsBhZ,aAAc+X,IAAkB,KAAD,mBAAAz8B,EAAAhM,OAAA,GAAAs3B,GAAA,C,iIClDvEwS,IAAsB1S,IAAA53B,EAAAA,EAAAA,KAAAC,KAetBsqC,IAAsBzS,IAAA93B,EAAAA,EAAAA,KAAAC,KAWfuqC,IA1BjB,SAAUF,KAAsB,IAAAvxB,EAAA0xB,EAAA,OAAAzqC,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACO,OADPF,EAAAE,KAAA,GACa84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,OAAKA,EAAEsjD,QAAQ3xB,YAAY,IAAE,KAAD,EAAxD,GAA1BA,EAA0B3Y,EAAA2M,OAC5BpoB,EAAAA,EAAAA,IAAiBo0B,MAAiB8sB,EAAAA,EAAAA,IAAa9sB,GAAa,CAAA3Y,EAAAE,KAAA,eAAAF,EAAAG,OAAA,iBAI5D,OAJ4DH,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAItDs4B,EAAAA,EAAAA,IAAI+R,GAAAA,EAAeC,qBAAqB,KAAD,EACV,OADUxqC,EAAAE,KAAA,IACJo4B,EAAAA,EAAAA,IAAKh4B,GAAAA,EAAeC,eAAe,KAAD,GAC3E,OADM8pC,EAA0BrqC,EAAA2M,KAAA3M,EAAAE,KAAA,IAC1Bs4B,EAAAA,EAAAA,IAAI+R,GAAAA,EAAeE,mBAAmBtN,GAAAA,EAAaE,QAASgN,IAAkB,QAAArqC,EAAAE,KAAA,iBAEpF,OAFoFF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAE9Es4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAe1N,EAAA4L,KAAK,KAAD,GAC1C,OAD0C5L,EAAAE,KAAA,IACpCs4B,EAAAA,EAAAA,IAAI+R,GAAAA,EAAeE,mBAAmBtN,GAAAA,EAAavV,UAAU,KAAD,oBAAA5nB,EAAAI,OAAA,GAAAm4B,GAAA,eAI1E,SAAU4R,KAAsB,OAAAvqC,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAExB,OAFwBqL,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAElBo4B,EAAAA,EAAAA,IAAKn+B,EAAAA,GAAyBC,SAAU,CAAC,CAAC9L,KAAMo8C,GAAAA,EAAsBC,cAAenmC,MAAOqc,EAAAA,GAAuB+pB,iBAAiB,KAAD,EACzIvnD,EAAAA,EAAKwnD,4BAA4BH,GAAAA,EAAsBC,cAAe9pB,EAAAA,GAAuB+pB,eAAcr/B,EAAArL,KAAA,gBAE3G,OAF2GqL,EAAAtL,KAAA,EAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,IAErGs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAenC,EAAAK,KAAK,KAAD,GAE1C,OAF0CL,EAAAtL,KAAA,GAAAsL,EAAArL,KAAA,IAEpCs4B,EAAAA,EAAAA,IAAI+R,GAAAA,EAAeO,sBAAqB,eAAAv/B,EAAA+3B,OAAA,6BAAA/3B,EAAAnL,OAAA,GAAAo3B,GAAA,oBAI/C,SAAU4S,KAAY,OAAAxqC,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACzB,OADyBkM,EAAAlM,KAAA,GACnBo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQgQ,GAAAA,EAAehqC,eAAgB2pC,IAAwB,KAAD,EAC9E,OAD8E99B,EAAAlM,KAAA,GACxEo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQgQ,GAAAA,EAAeQ,mBAAoBZ,IAAwB,KAAD,mBAAA/9B,EAAAhM,OAAA,GAAAs3B,GAAA,C,6IC5B5EsT,IAA8BxT,IAAA53B,EAAAA,EAAAA,KAAAC,KAa9BorC,IAA6BvT,IAAA93B,EAAAA,EAAAA,KAAAC,KAwC7Bm7B,IAAWpD,IAAAh4B,EAAAA,EAAAA,KAAAC,KAIJqrC,IAzDjB,SAAUF,GAA+BlR,GAA0D,IAAAhP,EAAAqgB,EAAAC,EAAAx/C,EAAA,OAAAgU,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAElE,OADrB4qB,EAAYgP,EAAOlrC,QAAnBk8B,QAAO9qB,EAAAE,KAAA,GACoB84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,IAAAqkD,EAAA,OAAgC,QAA3BA,EAAArkD,EAAEqN,QAAQi3C,UAAUzU,eAAO,IAAAwU,OAAA,EAA3BA,EAA6Bz7C,QAAS9G,GAAAA,EAAgBC,IAAI,IAAE,KAAD,EAQtH,OARMoiD,EAAoBnrC,EAAA2M,KAGpBy+B,EAAkBD,EAClBrgB,EAAQ1jC,QAAO,SAAAmkD,GAAC,OAAIA,EAAE9mD,SAAWkE,GAAAA,EAAcC,MAAM,IACrDkiC,EAEAl/B,EAAOtH,EAAAA,EAASmF,UAAU2hD,GAAiB,SAAAG,GAAC,OAAIA,EAAExhD,EAAE,IAAE,kBAAM,CAAI,IAACiW,EAAAE,KAAA,GACjEs4B,EAAAA,EAAAA,IAAIjvB,GAAAA,EAAsBiiC,cAAc5/C,IAAO,KAAD,mBAAAoU,EAAAI,OAAA,GAAAm4B,GAAA,CAGxD,SAAU0S,GAA8BnR,GAA2C,IAAA2R,EAAAN,EAAApgB,EAAA2gB,EAAAjjD,EAAAkjD,EAAAC,EAAA,OAAAhsC,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAC5C,OAD4CqL,EAAArL,KAAA,GACtC84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM4lD,eAAeJ,iBAAiB,IAAE,KAAD,EAC/E,OADvBA,EAA0BlgC,EAAAoB,KAAApB,EAAArL,KAAA,GACG84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,IAAA8kD,EAAA,OAAgC,QAA3BA,EAAA9kD,EAAEqN,QAAQi3C,UAAUzU,eAAO,IAAAiV,OAAA,EAA3BA,EAA6Bl8C,QAAS9G,GAAAA,EAAgBC,IAAI,IAAE,KAAD,EAA5F,GAApBoiD,EAAoB5/B,EAAAoB,KAErB8+B,EAAkB,CAADlgC,EAAArL,KAAA,eAAAqL,EAAApL,OAAA,UACX,GAAK,OAGuC,OAD/C4qB,EAAa+O,EAAOlrC,QAApBm8B,SAAQxf,EAAArL,KAAA,IAC6C84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAU,OAAKA,EAAE6kD,eAAeH,eAAe,IAAE,KAAD,GACpE,OAD3CA,EAA8CngC,EAAAoB,KAAApB,EAAArL,KAAA,IACG84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAMmyB,SAASoS,iBAAiB7nB,KAAK,IAAE,KAAD,GACjF,OADlCla,EAAwC8iB,EAAAoB,KAAApB,EAAArL,KAAA,IACA84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAMmyB,SAASsS,wBAAwB/nB,KAAK,IAAE,KAAD,GACjF,OADhCgpC,EAA+BpgC,EAAAoB,KAAApB,EAAArL,KAAA,IACO84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAMmyB,SAASwS,qBAAqBjoB,KAAK,IAAE,KAAD,GAClH,OADMipC,EAA6BrgC,EAAAoB,KAAApB,EAAArL,KAAA,IAC7B27B,EAAAA,EAAAA,IAAI9Q,EAAShkC,KAAI,SAAAiC,GACnB,IAAMkmC,EAAezmC,EAAciF,MAAK,SAAA69C,GAAC,OAAIA,EAAExhD,KAAOf,EAAEsU,SAAS,IACjE,IAAK4xB,EAAc,OAAO,KAE1B,IAAM6c,EAA2BZ,GAAejc,EAAazqC,SAAWkE,GAAAA,EAAcC,OAEtF,OAAKI,EAAEgjD,SAAYN,EAAgB1iD,EAAEsU,YAAeyuC,OAKhD/iD,EAAEgjD,SACFN,EAAgB1iD,EAAEsU,YAClB4xB,IACCA,EAAarmC,gBACbqmC,EAAa3D,eACb2D,EAAa5D,kBACZ6f,GAAejc,EAAazqC,SAAWkE,GAAAA,EAAcC,QACtD+iD,EAAqBtiD,MAAK,SAAA6C,GAAO,OAAIA,EAAQoR,YAActU,EAAEsU,SAAS,KACtEsuC,EAAkBviD,MAAK,SAAAhG,GAAI,OAAIA,EAAKia,YAActU,EAAEsU,SAAS,KAK3D,MAjBIk7B,EAAAA,EAAAA,IAAIjvB,GAAAA,EAAsB0iC,aAAajjD,EAAEsU,WAkBxD,KAAG,yBAAAiO,EAAAnL,OAAA,GAAAo3B,GAAA,CAGP,SAAUwD,KAAW,OAAAp7B,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACjB,OADiBkM,EAAAlM,KAAA,GACXs4B,EAAAA,EAAAA,IAAIjvB,GAAAA,EAAsBhU,SAAQ,wBAAA6W,EAAAhM,OAAA,GAAAs3B,GAAA,CAGrC,SAAUwT,KAAmB,OAAAtrC,EAAAA,EAAAA,KAAAG,MAAC,SAAD2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OAChC,OADgCwM,EAAAxM,KAAA,GAC1Bo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQhxB,GAAAA,EAAsB2iC,wBAAyBlB,IAAgC,KAAD,EACtG,OADsGt+B,EAAAxM,KAAA,GAChGo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ5wB,GAAAA,EAA+BC,gBAAiBqhC,IAA+B,KAAD,EACtG,OADsGv+B,EAAAxM,KAAA,GAChGo6B,EAAAA,EAAAA,IAAUE,EAAAA,GAAe/Z,OAAQua,IAAa,KAAD,mBAAAtuB,EAAAtM,OAAA,GAAAw3B,GAAA,C,oDCgChD,IAAMuU,GAhGb,WACI,OAAOpmD,EAAAA,GAAAA,GAAU,+BACrB,EA8FaomD,GA5Fb,SAA+BC,EAA4BC,GACvD,IAAMxhD,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEggD,kBAAAA,EAAmBC,WAAAA,IAC1CvhD,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,GAAAA,GAAU,+BAAgC8E,EACrD,EAqFashD,GA/Eb,SAA6Bv7C,GACzB,IAAM/F,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwE,GACrB9F,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,GAAAA,GAAU,6BAA8B8E,EACnD,EAwEashD,GAnFb,WACI,OAAOpmD,EAAAA,GAAAA,GAAU,6BACrB,EAiFaomD,GAjEb,SAAyBv7C,GACrB,IAAM/F,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwE,GACrB9F,aAAcA,EAAAA,GAAamT,MAE/B,OAAOlY,EAAAA,GAAAA,GAAU,oBAAqB8E,EAC1C,EA0DashD,GAxDb,SAAkBv7C,GACd,IAAM/F,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUwE,GACrB9F,aAAcA,EAAAA,GAAamT,MAE/B,OAAOlY,EAAAA,GAAAA,GAAU,qBAADpC,OAAsBiN,EAAO7G,GAAE,SAASc,EAC5D,EAiDashD,GA/Cb,SAA2BpiD,EAAY4iC,GACnC,IAAM9hC,EAAiB,CACnBR,OAAQ,QACR8B,KAAMxH,KAAKyH,UAAU,CAAErC,GAAAA,EAAI4iC,iBAAAA,IAC3B7hC,aAAcA,EAAAA,GAAamT,MAE/B,OAAOlY,EAAAA,GAAAA,GAAU,iDAAkD8E,EACvE,EAwCashD,GAtCb,SAA4BpiD,EAAY4iC,EAAwBT,GAC5D,IAAMrhC,EAAiB,CACnBR,OAAQ,QACR8B,KAAMxH,KAAKyH,UAAU,CAAErC,GAAAA,EAAI4iC,iBAAAA,EAAkBT,YAAAA,IAC7CphC,aAAcA,EAAAA,GAAamT,MAE/B,OAAOlY,EAAAA,GAAAA,GAAU,kDAAmD8E,EACxE,EA+BashD,GA7Bb,SAAoBpiD,GAChB,IAAMc,EAAiB,CACnBR,OAAQ,QACRS,aAAcA,EAAAA,GAAamT,MAE/B,OAAOlY,EAAAA,GAAAA,GAAU,qBAADpC,OAAsBoG,EAAE,WAAWc,EACvD,EAuBashD,GArBb,SAAqBpiD,EAAYmiC,GAC7B,IAAMrhC,EAAiB,CACnBR,OAAQ,QACR8B,KAAM,IAAM+/B,EAAc,IAC1BphC,aAAcA,EAAAA,GAAamT,MAE/B,OAAOlY,EAAAA,GAAAA,GAAU,qBAADpC,OAAsBoG,EAAE,YAAYc,EACxD,EAcashD,GARb,WACI,IAAMthD,EAAiB,CACnBR,OAAQ,MACRS,aAAcA,EAAAA,GAAa2B,MAE/B,OAAO1G,EAAAA,GAAAA,GAAU,2BAA4B8E,EACjD,EAEashD,GAZb,WACI,OAAOpmD,EAAAA,GAAAA,GAAU,6BACrB,E,8BCtFUumD,IAAuB9U,IAAA53B,EAAAA,EAAAA,KAAAC,KAWvB0sC,IAAwB7U,IAAA93B,EAAAA,EAAAA,KAAAC,KAcxBm7B,IAAWpD,IAAAh4B,EAAAA,EAAAA,KAAAC,KAIJ2sC,IA7BjB,SAAUF,KAAuB,IAAA1jC,EAAA,OAAAhJ,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGrB,OAHqBF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAGfo4B,EAAAA,EAAAA,IAAK6T,IAAuC,KAAD,EACrD,OAFMvjC,EAAoF5I,EAAA2M,KAAA3M,EAAAE,KAAA,GAEpFs4B,EAAAA,EAAAA,IAAIiU,GAAAA,EAAyBC,0BAA0B9jC,EAASwjC,kBAAmBxjC,EAAS+jC,kBAAkB,KAAD,EAAA3sC,EAAAE,KAAA,gBAEnH,OAFmHF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAE7Gs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAe1N,EAAA4L,KAAK,KAAD,GAC1C,OAD0C5L,EAAAE,KAAA,IACpCs4B,EAAAA,EAAAA,IAAIiU,GAAAA,EAAyBG,6BAA6B,KAAD,oBAAA5sC,EAAAI,OAAA,GAAAm4B,GAAA,cAIvE,SAAUgU,GAAyBzS,GAAuE,IAAA0B,EAAAqR,EAAAT,EAAA,OAAAxsC,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAGlG,OAHkGs7B,EAC7D1B,EAAOlrC,QAAxCi+C,EAASrR,EAATqR,UAAWT,EAAiB5Q,EAAjB4Q,kBAAiB7gC,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAE1Bo4B,EAAAA,EAAAA,IAAK6T,GAA0CC,EAAmBS,GAAW,KAAD,EAClF,OADkFthC,EAAArL,KAAA,GAC5Es4B,EAAAA,EAAAA,IAAIiU,GAAAA,EAAyBK,8BAA8B,KAAD,EAChE,OADgEvhC,EAAArL,KAAA,GAC1Ds4B,EAAAA,EAAAA,IAAIiU,GAAAA,EAAyBM,mBAAkB,IAAQ,KAAD,EAC5D,OAD4DxhC,EAAArL,KAAA,IACtDs4B,EAAAA,EAAAA,IAAIwU,GAAAA,EAAwB5P,WAAW,KAAD,GAC5C,OAD4C7xB,EAAArL,KAAA,IACtCs4B,EAAAA,EAAAA,IAAIiU,GAAAA,EAAyBQ,6BAA6B,KAAD,GAAA1hC,EAAArL,KAAA,iBAE/D,OAF+DqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,IAEzDs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAenC,EAAAK,KAAK,KAAD,GAC1C,OAD0CL,EAAArL,KAAA,IACpCs4B,EAAAA,EAAAA,IAAIiU,GAAAA,EAAyBS,8BAA8B,KAAD,oBAAA3hC,EAAAnL,OAAA,GAAAo3B,GAAA,eAIxE,SAAUwD,KAAW,OAAAp7B,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACjB,OADiBkM,EAAAlM,KAAA,GACXs4B,EAAAA,EAAAA,IAAIiU,GAAAA,EAAyBl3C,SAAQ,wBAAA6W,EAAAhM,OAAA,GAAAs3B,GAAA,CAGxC,SAAU8U,KAAuB,OAAA5sC,EAAAA,EAAAA,KAAAG,MAAC,SAAD2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OACpC,OADoCwM,EAAAxM,KAAA,GAC9Bo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQkS,GAAAA,EAAyBQ,2BAA4BX,IAAyB,KAAD,EACrG,OADqG5/B,EAAAxM,KAAA,GAC/Fo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQkS,GAAAA,EAAyBU,4BAA6BZ,IAA0B,KAAD,EACvG,OADuG7/B,EAAAxM,KAAA,GACjGo6B,EAAAA,EAAAA,IAAUE,EAAAA,GAAe/Z,OAAQua,IAAa,KAAD,mBAAAtuB,EAAAtM,OAAA,GAAAw3B,GAAA,C,qHCV7CwV,IAAY5V,IAAA53B,EAAAA,EAAAA,KAAAC,KAYZwtC,IAAgB3V,IAAA93B,EAAAA,EAAAA,KAAAC,KA8BhBytC,IAAsB1V,IAAAh4B,EAAAA,EAAAA,KAAAC,KAmPtB0tC,IAA0BzV,IAAAl4B,EAAAA,EAAAA,KAAAC,KAQ1B2tC,IAAsBxV,IAAAp4B,EAAAA,EAAAA,KAAAC,KAQtB4tC,IAAgCvV,IAAAt4B,EAAAA,EAAAA,KAAAC,KAqBzB6tC,IApUXC,IAAgBC,EAAAA,GAAAA,GAAoBC,GAAAA,EAAeC,WAEzD,SAAUV,KAAY,IAAA7jB,EAAA,OAAA3pB,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEkB,OAFlBF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAEwBo4B,EAAAA,EAAAA,IAAKyV,EAAAA,GAAiBzkB,eAAe,KAAD,EAC1E,OADMC,EAAuBvpB,EAAA2M,KAAA3M,EAAAE,KAAA,GACvBs4B,EAAAA,EAAAA,IAAI9vB,GAAAA,EAAqBslC,cAAc7Q,GAAAA,EAAaE,QAAS9T,IAAa,KAAD,EAC/E,OAD+EvpB,EAAAE,KAAA,EACzEmtC,GAAiB9jB,GAAY,KAAD,EAClC,OADkCvpB,EAAAE,KAAA,GAC5BotC,KAAyB,KAAD,GAAAttC,EAAAE,KAAA,iBAE9B,OAF8BF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAExBs4B,EAAAA,EAAAA,IAAI9vB,GAAAA,EAAqBslC,cAAc7Q,GAAAA,EAAavV,UAAU,KAAD,GACnE,OADmE5nB,EAAAE,KAAA,IAC7Ds4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa59B,EAAA4L,KAAK,KAAD,oBAAA5L,EAAAI,OAAA,GAAAm4B,GAAA,eAIhD,SAAU8U,GAAiB9jB,GAAuB,IAAAniC,EAAA87B,EAAA+qB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA3uC,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACI,OADJqL,EAAArL,KAAA,GACU84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,OAAKA,EAAEsxB,QAAQkR,UAAUpiC,MAAM,IAAE,KAAD,EA0B3G,OA1BMA,EAAyCmkB,EAAAoB,KACzCuW,GAAgBsrB,EAAAA,GAAAA,WAAUpnD,GAE1B6mD,EAAiB,SAACQ,GAA4D,OAAKhnD,EAAAA,GACpFinD,SAASD,GAAY,SAAAzlD,GAAC,OAAIA,EAAEioC,SAAS,IACrC7pC,QAAO,SAAA4B,GAAC,QAAMA,EAAEioC,aAAejoC,EAAEyF,aAAa,IAC9CzE,MAAK,SAACN,EAAGrC,GAAC,OAAKm8C,OAAO95C,EAAEunC,WAAW/mC,cAAcs5C,OAAOn8C,EAAE4pC,WAAW,IACrElqC,KAAI,SAAAwkD,GAAC,MAAK,CAAEt6C,MAAOs6C,EAAE98C,cAAe7B,KAAM2+C,EAAEta,UAAW5N,UAAU,EAAOkT,SAAS,EAAMoY,UAAU,EAAO,GAAG,EAE1GT,EAAe3kB,EAAWxiC,KAAI,SAAA2B,GAAC,OAAIA,EAAElC,WAAWO,KAAI,SAAAC,GAAC,OAAIA,EAAEmjC,aAAa,GAAC,IAAEhjC,OAC3EgnD,EAAsB1mD,EAAAA,GACvBinD,SAASR,GAAc,SAAA7oD,GAAI,OAAIA,CAAI,IACnC+B,QAAO,SAAA/B,GAAI,QAAMA,CAAI,IACrB2E,MAAK,SAACN,EAAGrC,GAAC,OAAKm8C,OAAO95C,GAAGQ,cAAcs5C,OAAOn8C,GAAG,IACjDN,KAAI,SAAAwkD,GAAC,MAAK,CAAEt6C,MAAOs6C,EAAG3+C,KAAM2+C,EAAGloB,UAAU,EAAOkT,SAAS,EAAMoY,UAAU,EAAO,IAE/EP,EAAc7kB,EAAWxiC,KAAI,SAAA2B,GAAC,OAAIA,EAAElC,WAAWO,KAAI,SAAAC,GAAC,IAAAijC,EAAA2kB,EAAA,MAAK,CAAE3d,UAA8B,QAArBhH,EAAEjjC,EAAE20B,yBAAiB,IAAAsO,OAAA,EAAnBA,EAAqBgH,UAAWxiC,cAAkC,QAArBmgD,EAAE5nD,EAAE20B,yBAAiB,IAAAizB,OAAA,EAAnBA,EAAqBngD,cAAe,GAAE,IAAEtH,OAC7JknD,EAAqBJ,EAAeG,GAEpCE,EAAkB/kB,EAAWxiC,KAAI,SAAA2B,GAAC,OAAIA,EAAElC,WAAWO,KAAI,SAAAC,GAAC,IAAAgjC,EAAA6kB,EAAA,MAAK,CAAE5d,UAAoB,QAAXjH,EAAEhjC,EAAE80B,eAAO,IAAAkO,OAAA,EAATA,EAAWiH,UAAWxiC,cAAwB,QAAXogD,EAAE7nD,EAAE80B,eAAO,IAAA+yB,OAAA,EAATA,EAAWpgD,cAAe,GAAE,IAAEtH,OAC7IonD,EAAqBN,EAAeK,GAE1CprB,EAAcgH,UAAQliC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQk7B,EAAcgH,UAAQ,IAAE9iC,OAAQ+mD,IAC9DjrB,EAAcxH,UAAQ1zB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQk7B,EAAcxH,UAAQ,IAAEt0B,OAAQinD,IAC9DnrB,EAAcpH,SAAO9zB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQk7B,EAAcpH,SAAO,IAAE10B,OAAQmnD,IAAoBhjC,EAAArL,KAAA,IAE1Es4B,EAAAA,EAAAA,IAAImV,GAAc/F,KAAK1kB,IAAgB,KAAD,oBAAA3X,EAAAnL,OAAA,GAAAo3B,GAAA,CAGhD,SAAU8V,KAAsB,IAAAwB,EAAA1nD,EAAA+M,EAAA46C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA/zB,EAAAg0B,EAAAC,EAAAC,EAAAn0B,EAAAo0B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAArS,EAAAsS,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA,OAAAnyC,EAAAA,EAAAA,KAAAG,MAAC,SAADiyC,IAAA,cAAAA,GAAA/xC,KAAA+xC,GAAA9xC,MAAA,OAE0B,OADhD4uC,EAA4B7tB,GAAAA,EAAQlW,SAAS3c,OAAM4jD,GAAA9xC,KAAA,GACG84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,OAAKA,EAAEsxB,QAAQkR,SAAS,IAAE,KAAD,EAI9D,OAJpCpiC,EAA6C4qD,GAAArlC,KAE7CxY,EAAc26C,GAAqBA,EAAkBvd,OAAMygB,GAAA9xC,KAAA,GAEjB84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,IAAAirD,EAAAC,EAAA,OAAkC,QAAlCD,EAAKjrD,EAAEoxB,SAAS+5B,WAAWC,eAAO,IAAAH,GAA4B,QAA5BC,EAA7BD,EAAgCI,GAAAA,EAAevE,kBAAU,IAAAoE,OAA5B,EAA7BA,EAA2D55B,OAAO,IAAE,KAAD,EAEtB,GAF/Gy2B,EAAiCiD,GAAArlC,KACjCqiC,EAAwB3rD,GAAAA,EAAKk6C,YAAYC,GAAAA,EAAoB8U,yBAC7DrD,EAAsBD,GAAyBD,GAAiB,IAAIrhD,MAAK,SAAAtG,GAAM,OAAIA,EAAOmrD,OAAO,SAAIvvD,EAE5F,OAAXmR,QAAW,IAAXA,IAAAA,EAAapR,OAAM,CAAAivD,GAAA9xC,KAAA,SAwMf,OAvMEgvC,EAA+B9nD,EAAOA,OAAOs0B,SAASt0B,OAA+BL,KAAI,SAAAq8B,GAAC,OAAIA,EAAEnyB,KAAK,IAACk+C,GAEtDqD,EAAAA,GAAAA,IAAe,iBAAkB,gBAAepD,GAAAvnD,EAAAA,EAAAA,GAAAsnD,EAAA,GAA/FE,EAAgBD,EAAA,GAAEE,EAAyBF,EAAA,GAAAG,GACIiD,EAAAA,GAAAA,IAAe,sBAAuB,qBAAoBhD,GAAA3nD,EAAAA,EAAAA,GAAA0nD,EAAA,GAAzGE,EAAgBD,EAAA,GAAEE,EAAyBF,EAAA,GAE9CG,EAA8B,GAC9B/zB,EAA2B,GAC3Bg0B,EAA2B,GAC3BC,EAAyB,GACzBC,EAAsB,GACtBn0B,EAA8B,GAC9Bo0B,OAA6B/sD,EAC7BgtD,OAAsChtD,EACtCitD,OAAoCjtD,EACpCktD,EAA4B,KAC5BC,EAA0B,KAC1BC,EAA2B,KAC3BC,EAAyB,KACzBC,EAA2B,KAC3BC,EAAyB,KACzBC,EAA0B,GAC1BC,OAAgCztD,EAChC0tD,OAAiC1tD,EACjC2tD,OAAiC3tD,EAE/Bs7C,EAAiD,EACnDK,EAAAA,GAAAA,KAAY,SAAArwB,GAAM,OAAIqhC,EAAoBrhC,CAAM,KAChDzc,EAAAA,GAAAA,KAAQ,SAAAyc,GAAM,OAAIuhC,EAAevhC,CAAM,KACvC2wB,EAAAA,GAAAA,KAAmB,SAAA3wB,GAAM,OAAIshC,EAAiBthC,CAAM,KACpDmkC,EAAAA,GAAAA,KAAgB,SAAAnkC,GAAM,OAAIwhC,EAAYxhC,CAAM,KAC5C5a,EAAAA,GAAAA,KAAgB,SAAA4a,GAAM,OAAIsN,EAAiBtN,CAAM,KACjDoK,EAAAA,GAAAA,KAAmB,SAAApK,GAAM,OAAIqN,EAAoBrN,CAAM,GAAE4gC,IACzDp5C,EAAAA,GAAAA,KAAI,SAAA7E,GAAK,OAAI8+C,EAAQ9+C,CAAK,KAC1BqF,EAAAA,GAAAA,KAAa,SAAArF,GAAK,OAAI++C,EAAiB/+C,CAAK,KAC5CyhD,EAAAA,GAAAA,KAAY,SAAAzhD,GAAK,OAAIg/C,EAAeh/C,CAAK,KACzCirB,EAAAA,GAAAA,KAAQ,SAAAjrB,GAAK,OAAI0/C,EAAY1/C,CAAK,KAClCmrB,EAAAA,GAAAA,KAAQ,SAAAnrB,GAAK,OAAIy/C,EAAYz/C,CAAK,KAACtN,QAAAuF,EAAAA,GAAAA,GAChCmmD,IAAgBnmD,EAAAA,GAAAA,GAChBumD,GAAgB,EACnB5/C,EAAAA,GAAAA,KAAS,SAAAoB,GAAK,OAAIi/C,EAAej/C,CAAK,GAAE,iBACxCnB,EAAAA,GAAAA,KAAO,SAAAmB,GAAK,OAAIk/C,EAAal/C,CAAK,GAAE,eACpCpB,EAAAA,GAAAA,KAAS,SAAAoB,GAAK,OAAIm/C,EAAcn/C,CAAK,GAAE,gBACvCnB,EAAAA,GAAAA,KAAO,SAAAmB,GAAK,OAAIo/C,EAAYp/C,CAAK,GAAE,cACnCpB,EAAAA,GAAAA,KAAS,SAAAoB,GAAK,OAAIq/C,EAAcr/C,CAAK,GAAE,gBACvCnB,EAAAA,GAAAA,KAAO,SAAAmB,GAAK,OAAIs/C,EAAYt/C,CAAK,GAAE,cACnC4qB,EAAAA,GAAAA,KAAS,SAAAvN,GAAM,OAAIkiC,EAAgBliC,CAAM,KACzC0N,EAAAA,GAAAA,KAAI,SAAA/qB,GAAK,OAAIw/C,EAAWx/C,CAAK,MAEjC6uC,GAAAA,EAAsBC,YAAY5rC,EAAamqC,GAEzCsS,EAAyBtB,IACzBuB,EAAyBnB,IAEzBoB,EAA2B,CAC7BpQ,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAAUgP,EAAkB5sD,MAAM,EAC/C69C,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACH,OADGkM,EAAAlM,KAAA,GACG27B,EAAAA,EAAAA,IAAI8T,EAAkB5oD,KAAI,SAAAkK,GAAK,OAAIunC,EAAAA,EAAAA,IAAI0H,EAAAA,IAAwBC,cAAclvC,GAAO,KAAG,KAAD,mBAAAmb,EAAAhM,OAAA,GADhGwgC,EAAO,KAILmQ,EAAyB,CAC3BpQ,cAAe,WAAF,QAAU/kB,EAAe74B,MAAM,EAC5C69C,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAA2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OACH,OADGwM,EAAAxM,KAAA,GACG27B,EAAAA,EAAAA,IAAIjgB,EAAe70B,KAAI,SAAA6I,GAAI,OAAI4oC,EAAAA,EAAAA,IAAImV,GAAcgF,mBAAmB/iD,EAAM,kBAAkB,KAAG,KAAD,mBAAA8c,EAAAtM,OAAA,GADxGwgC,EAAO,KAILoQ,EAAoB,CACtBrQ,cAAe,WAAF,QAAUiP,EAAe7sD,MAAM,EAC5C69C,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,OACH,OADGsN,EAAAtN,KAAA,GACG27B,EAAAA,EAAAA,IAAI+T,EAAe7oD,KAAI,SAAA2I,GAAQ,OAAI8oC,EAAAA,EAAAA,IAAImV,GAAcgF,mBAAmBjjD,EAAU,YAAY,KAAG,KAAD,mBAAA8d,EAAApN,OAAA,GAD1GwgC,EAAO,KAKLqQ,EAA0C,CAC5CtQ,cAAe,WAAF,QAAUhlB,EAAkB54B,MAAM,EAC/C69C,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAg6B,GAAA,cAAAA,EAAA95B,KAAA85B,EAAA75B,MAAA,OACH,OADG65B,EAAA75B,KAAA,GACG27B,EAAAA,EAAAA,IAAIlgB,EAAkB50B,KAAI,SAAA6rD,GAAO,OAAIpa,EAAAA,EAAAA,IAAImV,GAAcgF,mBAAmBC,EAAS,YAAY,KAAG,KAAD,mBAAA7Y,EAAA35B,OAAA,GAD3GwgC,EAAO,KAILsQ,EAAgB,CAClBtQ,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAm6B,GAAA,cAAAA,EAAAj6B,KAAAi6B,EAAAh6B,MAAA,OACH,OADGg6B,EAAAh6B,KAAA,GACG27B,EAAAA,EAAAA,IAAIgU,EAAa9oD,KAAI,SAAA+uB,GAAM,OAAI0iB,EAAAA,EAAAA,IAAImV,GAAcgF,mBAAmB78B,EAAQ,WAAW,KAAG,KAAD,mBAAAokB,EAAA95B,OAAA,GADnGwgC,EAAO,KAILuQ,EAAmB,CACrBxQ,cAAe,WAAF,QAAUmP,EAAU/sD,MAAM,EACvC69C,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAs6B,GAAA,cAAAA,EAAAp6B,KAAAo6B,EAAAn6B,MAAA,OACH,OADGm6B,EAAAn6B,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAckF,uBAAuB,aAAa,KAAD,EAC3D,OAD2DxY,EAAAn6B,KAAA,GACrD27B,EAAAA,EAAAA,IAAIiU,EAAU/oD,KAAI,SAAA1B,GAAI,OAAImzC,EAAAA,EAAAA,IAAImV,GAAcgF,mBAAmBttD,EAAM,YAAY,KAAG,KAAD,mBAAAg1C,EAAAj6B,OAAA,GAF7FwgC,EAAO,KAKLwQ,EAAa,CACf1Q,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAMy2C,EAAM,EAClCnP,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAmlC,GAAA,cAAAA,EAAAjlC,KAAAilC,EAAAhlC,MAAA,OACH,OADGglC,EAAAhlC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAckF,uBAAuB,QAAQ,KAAD,EACtD,OADsD3N,EAAAhlC,KAAA,GAChDs4B,EAAAA,EAAAA,IAAImV,GAAcmF,kBAAkB/C,EAAQ,QAAQ,KAAD,mBAAA7K,EAAA9kC,OAAA,GAF7DwgC,EAAO,KAKLyQ,EAAsB,CACxB3Q,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAM02C,EAAe,EAC3CpP,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAA6mC,GAAA,cAAAA,EAAA3mC,KAAA2mC,EAAA1mC,MAAA,OACH,OADG0mC,EAAA1mC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAckF,uBAAuB,iBAAiB,KAAD,EAC/D,OAD+DjM,EAAA1mC,KAAA,GACzDs4B,EAAAA,EAAAA,IAAImV,GAAcmF,kBAAkB9C,EAAiB,iBAAiB,KAAD,mBAAApJ,EAAAxmC,OAAA,GAF/EwgC,EAAO,KAKL0Q,EAAqB,CACvB5Q,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAM22C,EAAa,EACzCrP,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAwnC,GAAA,cAAAA,EAAAtnC,KAAAsnC,EAAArnC,MAAA,OACH,OADGqnC,EAAArnC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAckF,uBAAuB,eAAe,KAAD,EAC7D,OAD6DtL,EAAArnC,KAAA,GACvDs4B,EAAAA,EAAAA,IAAImV,GAAcmF,kBAAkB7C,EAAe,eAAe,KAAD,mBAAA1I,EAAAnnC,OAAA,GAF3EwgC,EAAO,KAKL2Q,EAAiB,CACnB7Q,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAMq3C,EAAU,EACtC/P,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAA0nC,GAAA,cAAAA,EAAAxnC,KAAAwnC,EAAAvnC,MAAA,OACH,OADGunC,EAAAvnC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAckF,uBAAuB,YAAY,KAAD,EAC1D,OAD0DpL,EAAAvnC,KAAA,GACpDs4B,EAAAA,EAAAA,IAAImV,GAAcmF,kBAAkBnC,EAAY,YAAY,KAAD,mBAAAlJ,EAAArnC,OAAA,GAFrEwgC,EAAO,KAKL4Q,EAAiB,CACnB9Q,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAMo3C,EAAU,EACtC9P,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAA4nC,GAAA,cAAAA,EAAA1nC,KAAA0nC,EAAAznC,MAAA,OACH,OADGynC,EAAAznC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAckF,uBAAuB,YAAY,KAAD,EAC1D,OAD0DlL,EAAAznC,KAAA,GACpDs4B,EAAAA,EAAAA,IAAImV,GAAcmF,kBAAkBpC,EAAY,YAAY,KAAD,mBAAA/I,EAAAvnC,OAAA,GAFrEwgC,EAAO,KAKL6Q,EAAoB,CACtB/Q,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAAgC,OAAtBiQ,QAAsB,IAAtBA,IAAAA,EAAwBmC,UAAiC,OAAtBnC,QAAsB,IAAtBA,IAAAA,EAAwBoC,MAAK,EACvFpS,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAkzC,GAAA,cAAAA,EAAAhzC,KAAAgzC,EAAA/yC,MAAA,OACH,OADG+yC,EAAA/yC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAcuF,kCAAkC,aAActC,IAAwB,wBAAAqC,EAAA7yC,OAAA,GADpGwgC,EAAO,KAIL8Q,EAAyB,CAC3BhR,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAAgC,OAAtBkQ,QAAsB,IAAtBA,IAAAA,EAAwBkC,UAAiC,OAAtBlC,QAAsB,IAAtBA,IAAAA,EAAwBmC,MAAK,EACvFpS,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAozC,GAAA,cAAAA,EAAAlzC,KAAAkzC,EAAAjzC,MAAA,OACH,OADGizC,EAAAjzC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAcuF,kCAAkC,kBAAmBrC,IAAyB,KAAD,mBAAAsC,EAAA/yC,OAAA,GADzGwgC,EAAO,KAIL+Q,GAAwB,CAC1BjR,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAAU6P,EAAcztD,MAAM,EAC3C69C,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAAqzC,GAAA,cAAAA,EAAAnzC,KAAAmzC,EAAAlzC,MAAA,OACH,OADGkzC,EAAAlzC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAckF,uBAAuB,YAAY,KAAD,EAC1D,OAD0DO,EAAAlzC,KAAA,GACpD27B,EAAAA,EAAAA,IAAI2U,EAAczpD,KAAI,SAAA1B,GAAI,OAAImzC,EAAAA,EAAAA,IAAImV,GAAcgF,mBAAmBttD,EAAM,WAAW,KAAG,KAAD,mBAAA+tD,EAAAhzC,OAAA,GAFhGwgC,EAAO,KAKLgR,GAAkB,CACpBlR,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAM42C,MAAkB52C,EAAAA,GAAAA,OAAM62C,EAAW,EAC/DvP,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,IAAAW,EAAA,OAAA3hC,EAAAA,EAAAA,KAAAG,MAAA,SAAAszC,GAAA,cAAAA,EAAApzC,KAAAozC,EAAAnzC,MAAA,OACH,OADGmzC,EAAAnzC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAc2F,kBAAkB,aAAa,KAAD,EAEtD,OADM/R,GAAegS,EAAAA,GAAAA,IAAqBl5B,GAAAA,EAAuBm5B,SAAUtD,EAAcC,GAAWkD,EAAAnzC,KAAA,GAC9Fs4B,EAAAA,EAAAA,IAAImV,GAAc8F,uBAAuBlS,EAAc,aAAa,KAAD,EACzE,OADyE8R,EAAAnzC,KAAA,GACnEs4B,EAAAA,EAAAA,IACFmV,GAAc+F,4BAA4B,CAAElsD,KAAM0oD,EAAc3/C,GAAI4/C,GAAc,aACpF,KAAD,mBAAAkD,EAAAjzC,OAAA,GANLwgC,EAAO,KASLiR,GAAiB,CACnBnR,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAM82C,MAAiB92C,EAAAA,GAAAA,OAAM+2C,EAAU,EAC7DzP,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,IAAAW,EAAA,OAAA3hC,EAAAA,EAAAA,KAAAG,MAAA,SAAA4zC,GAAA,cAAAA,EAAA1zC,KAAA0zC,EAAAzzC,MAAA,OACH,OADGyzC,EAAAzzC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAc2F,kBAAkB,YAAY,KAAD,EAErD,OADM/R,GAAegS,EAAAA,GAAAA,IAAqBl5B,GAAAA,EAAuBm5B,SAAUpD,EAAaC,GAAUsD,EAAAzzC,KAAA,GAC5Fs4B,EAAAA,EAAAA,IAAImV,GAAc8F,uBAAuBlS,EAAc,YAAY,KAAD,EACxE,OADwEoS,EAAAzzC,KAAA,GAClEs4B,EAAAA,EAAAA,IACFmV,GAAc+F,4BAA4B,CAAElsD,KAAM4oD,EAAa7/C,GAAI8/C,GAAa,YAClF,KAAD,mBAAAsD,EAAAvzC,OAAA,GANLwgC,EAAO,KASLkR,GAAiB,CACnBpR,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAMg3C,MAAiBh3C,EAAAA,GAAAA,OAAMi3C,EAAU,EAC7D3P,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,IAAAW,EAAA,OAAA3hC,EAAAA,EAAAA,KAAAG,MAAA,SAAA6zC,GAAA,cAAAA,EAAA3zC,KAAA2zC,EAAA1zC,MAAA,OACH,OADG0zC,EAAA1zC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAc2F,kBAAkB,YAAY,KAAD,EAErD,OADM/R,GAAegS,EAAAA,GAAAA,IAAqBl5B,GAAAA,EAAuBm5B,SAAUlD,EAAaC,GAAUqD,EAAA1zC,KAAA,GAC5Fs4B,EAAAA,EAAAA,IAAImV,GAAc8F,uBAAuBlS,EAAc,YAAY,KAAD,EACxE,OADwEqS,EAAA1zC,KAAA,GAClEs4B,EAAAA,EAAAA,IACFmV,GAAc+F,4BAA4B,CAAElsD,KAAM8oD,EAAa//C,GAAIggD,GAAa,YAClF,KAAD,mBAAAqD,EAAAxzC,OAAA,GANLwgC,EAAO,KASLmR,GAAkB,CACpBrR,WAAY,WAAF,OAAQsO,CAAqB,EACvCrO,cAAe,WAAF,QAASrnC,EAAAA,GAAAA,OAAMm3C,EAAS,EACrC7P,SAAOhhC,EAAAA,EAAAA,KAAAC,MAAE,SAAT+gC,IAAO,OAAAhhC,EAAAA,EAAAA,KAAAG,MAAA,SAAA8zC,GAAA,cAAAA,EAAA5zC,KAAA4zC,EAAA3zC,MAAA,OACH,OADG2zC,EAAA3zC,KAAA,GACGs4B,EAAAA,EAAAA,IAAImV,GAAckF,uBAAuB,QAAQ,KAAD,EACtD,OADsDgB,EAAA3zC,KAAA,GAChDs4B,EAAAA,EAAAA,IAAImV,GAAcmF,kBAAkBrC,EAAW,QAAQ,KAAD,mBAAAoD,EAAAzzC,OAAA,GAFhEwgC,EAAO,KAIVoR,GAAA9xC,KAAA,IAGS,IAAIkhC,GAAAA,GACLC,WAAWyP,GACXzP,WAAW0P,GACX1P,WAAW2P,GACX3P,WAAW4P,GACX5P,WAAW6P,GACX7P,WAAW8P,GACX9P,WAAW+P,GACX/P,WAAWgQ,GACXhQ,WAAWiQ,GACXjQ,WAAWkQ,GACXlQ,WAAWmQ,GACXnQ,WAAWoQ,GACXpQ,WAAWqQ,GACXrQ,WAAWsQ,IACXtQ,WAAWuQ,IACXvQ,WAAWwQ,IACXxQ,WAAWyQ,IACXzQ,WAAW0Q,IACXzQ,mBAAkB,QApBS,GAAA0Q,GAAArlC,KAsBT,CAADqlC,GAAA9xC,KAAA,SACtB,OADsB8xC,GAAA9xC,KAAA,IAChBs4B,EAAAA,EAAAA,IAAIsb,EAAAA,IAAiBC,uBAAsB,IAAO,KAAD,UAAA/B,GAAA7xC,OAAA,kBAAA6xC,GAAA9xC,KAAA,qBAKpD+uC,EAAoB,CAAD+C,GAAA9xC,KAAA,SAC1B,OAD0B8xC,GAAA9xC,KAAA,IACpBs4B,EAAAA,EAAAA,IAAImV,GAAcqG,uBAAuB/E,IAAqB,QAExE,OAFwE+C,GAAA9xC,KAAA,IAElEs4B,EAAAA,EAAAA,IAAImV,GAAc7c,eAAe,KAAD,oBAAAkhB,GAAA5xC,OAAA,GAAAs3B,GAAA,CAG1C,SAAU6V,GAA2BzT,GAAiB,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAAk0C,GAAA,cAAAA,EAAAh0C,KAAAg0C,EAAA/zC,MAAA,OAClD,OADkD+zC,EAAA/zC,KAAA,GAC5Cs4B,EAAAA,EAAAA,IAAI9vB,GAAAA,EAAqBwrC,sBAAsB,CACjDllD,kBAAmB8qC,EAAO9qC,kBAC1BmlD,cAAera,EAAOqa,cACtBC,OAAQta,EAAOsa,UACf,KAAD,mBAAAH,EAAA7zC,OAAA,GAAAw3B,GAAA,CAGP,SAAU4V,GAAuB1T,GAAiB,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAAs0C,GAAA,cAAAA,EAAAp0C,KAAAo0C,EAAAn0C,MAAA,OAC9C,OAD8Cm0C,EAAAn0C,KAAA,GACxCs4B,EAAAA,EAAAA,IAAI9vB,GAAAA,EAAqB4rC,kBAAkB,CAC7CtlD,kBAAmB8qC,EAAO9qC,kBAC1BmlD,cAAera,EAAOqa,cACtBtN,WAAY/M,EAAO+M,cACnB,KAAD,mBAAAwN,EAAAj0C,OAAA,GAAA03B,GAAA,CAGP,SAAU2V,GACN3T,GAAoF,IAAAvQ,EAAAgrB,EAAAC,EAAA,OAAA50C,EAAAA,EAAAA,KAAAG,MAAA,SAAA00C,GAAA,cAAAA,EAAAx0C,KAAAw0C,EAAAv0C,MAAA,OACpD,OADoDu0C,EAAAv0C,KAAA,GAC9C84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,OAAKA,EAAEoxB,SAASmR,WAAW5mB,KAAK,IAAE,KAAD,EAC7C,OADvC4mB,EAAuBkrB,EAAA9nC,KAAA8nC,EAAAv0C,KAAA,GACsB84B,EAAAA,EAAAA,KAAO,SAAChyC,GAAW,OAAKA,EAAEoxB,SAASmR,WAAW5Q,YAAY,IAAE,KAAD,EAClE,GADtC47B,EAAoCE,EAAA9nC,QACX,OAAV4c,QAAU,IAAVA,OAAU,EAAVA,EAAYxmC,QAAS,MACtBwB,EAAAA,EAAAA,IAAiBgwD,GAAuB,CAAAE,EAAAv0C,KAAA,SAYxD,OAXMs0C,EAAajrB,EAAWxiC,KAAI,SAAA2B,GAAC,MAAI,CACnCgsD,YAAahsD,EAAEqB,GACf4qD,UAAW7a,EAAOlrC,QAAQgmD,uBAC1BC,sBAAuB/a,EAAOlrC,QAAQkmD,4BACtCC,qBAAsBjb,EAAOlrC,QAAQomD,4BACrCC,qBAAsBnb,EAAOlrC,QAAQsmD,4BACrCC,mBAAoBrb,EAAOlrC,QAAQwmD,oBACnCC,mBAAoBvb,EAAOlrC,QAAQ0mD,oBACnCC,oBAAqBzb,EAAOlrC,QAAQ4mD,2BACvC,IAAEf,EAAAv0C,KAAA,IAEGs4B,EAAAA,EAAAA,IAAI9vB,GAAAA,EAAqBC,qBAAqB6rC,IAAa,KAAD,oBAAAC,EAAAr0C,OAAA,GAAA43B,GAAA,CAIjE,SAAU0V,KAAkB,OAAA9tC,EAAAA,EAAAA,KAAAG,MAAC,SAAD01C,GAAA,cAAAA,EAAAx1C,KAAAw1C,EAAAv1C,MAAA,OAC/B,OAD+Bu1C,EAAAv1C,KAAA,GACzBw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQ7xB,GAAAA,EAAqB00B,SAAUgQ,IAAc,KAAD,EACrE,OADqEqI,EAAAv1C,KAAA,GAC/Do6B,EAAAA,EAAAA,IAAUyN,EAAAA,GAAgB2N,wBAAyBnI,IAA4B,KAAD,EACpF,OADoFkI,EAAAv1C,KAAA,GAC9Eo6B,EAAAA,EAAAA,IAAUyN,EAAAA,GAAgBC,6BAA8BwF,IAAwB,KAAD,EACrF,OADqFiI,EAAAv1C,KAAA,GAC/Eo6B,EAAAA,EAAAA,IAAUqb,GAAAA,EAA8BC,4BAA6BnI,IAAkC,KAAD,mBAAAgI,EAAAr1C,OAAA,GAAA83B,GAAA,C,8ICrUtG2d,IAA0Bre,IAAA53B,EAAAA,EAAAA,KAAAC,KAoC1Bi2C,IAAgBpe,IAAA93B,EAAAA,EAAAA,KAAAC,KAwIhBk2C,IAAgCne,IAAAh4B,EAAAA,EAAAA,KAAAC,KAsChCm2C,IAAqBle,IAAAl4B,EAAAA,EAAAA,KAAAC,KAmGrBo2C,IAAyBje,IAAAp4B,EAAAA,EAAAA,KAAAC,KAgFzBq2C,IAA4Bhe,IAAAt4B,EAAAA,EAAAA,KAAAC,KAkBrBs2C,IAzZXC,IAAqBC,EAAAA,EAAAA,KAAyBn0B,GAAAA,EAAaC,OAEjE,SAAU0zB,GAA2B/b,GAA8E,IAAA/7B,EAAA2d,EAAA46B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAhb,EAAAC,EAAAgb,EAAA,OAAA/2C,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE1E,GAF0EF,EAAAC,KAAA,GAErE65B,EAAOlrC,QAArCgoD,0BAKsB,CAAD52C,EAAAE,KAAA,SAIQ,OAJRF,EAAAE,KAAA,GAIco4B,EAAAA,EAAAA,IAAK8d,GAAmBK,aAAa,KAAD,EAC3C,OAD1BA,EAAwBz2C,EAAA2M,KAAA3M,EAAAE,KAAA,GACQo4B,EAAAA,EAAAA,IAAK8d,GAAmBM,YAAY,KAAD,EAEzE,OAFMA,EAAuB12C,EAAA2M,KAAA3M,EAAAE,KAAA,IAEvBs4B,EAAAA,EAAAA,IAAIie,GAAa,KAAD,GACtB,OADsBz2C,EAAAE,KAAA,IAChBs4B,EAAAA,EAAAA,IAAIke,GAAY,KAAD,GAEyB,OAFzB12C,EAAAE,KAAA,IAE+B27B,EAAAA,EAAAA,IAAI,EACpDvD,EAAAA,EAAAA,IAAKvnB,GAAAA,EAAoBgB,eACzBumB,EAAAA,EAAAA,IAAK7gB,GAAAA,EAAaC,mBAClB4gB,EAAAA,EAAAA,IAAKvnB,GAAAA,EAAoBU,gBAAiBE,GAAAA,EAAeklC,cACzDve,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBC,iBAC1B,KAAD,GAAA+9B,EAAA17B,EAAA2M,KAAAgvB,GAAA9zC,EAAAA,EAAAA,GAAA6zC,EAAA,GALD6a,EAAQ5a,EAAA,GAAE6a,EAAS7a,EAAA,GAAEjgB,EAAQigB,EAAA,GAAE59B,EAAU49B,EAAA,GAO1C2a,GAAQQ,EAAAA,GAAAA,IAAaP,EAAUC,GAAW,QAGR,OAHQx2C,EAAAE,KAAA,IAGFo4B,EAAAA,EAAAA,IAAKvQ,EAAAA,GAAwBC,qBAAqB,KAAD,GAE7F,OAFM2uB,EAA6B32C,EAAA2M,KAAA3M,EAAAE,KAAA,IAE7Bs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BoB,sBAAsBJ,EAAa54C,EAAY2d,EAAU46B,IAAQ,KAAD,GACxG,OADwGt2C,EAAAE,KAAA,IAClGs4B,EAAAA,EAAAA,IAAIwe,GAAAA,EAAwBhJ,cAAc7Q,GAAAA,EAAaE,QAASsZ,IAAc,KAAD,GAAA32C,EAAAE,KAAA,iBAEnF,OAFmFF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAE7Es4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa59B,EAAA4L,KAAK,KAAD,oBAAA5L,EAAAI,OAAA,GAAAm4B,GAAA,eAIhD,SAAUud,KAAgB,IAAAmB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAtb,EAAA,OAAAx9B,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACkD,OADlDqL,EAAArL,KAAA,GACwD84B,EAAAA,EAAAA,KAC1E,SAAC/yC,GAAe,OAAKA,EAAM0yD,uBAAuB1B,8BAA8B,IAClF,KAAD,EAC8D,OAHzDA,EAA+D1rC,EAAAoB,KAAApB,EAAArL,KAAA,GAGA84B,EAAAA,EAAAA,KACjE,SAAC/yC,GAAe,OAAKA,EAAM0yD,uBAAuBC,0BAA0B,IAC9E,KAAD,EAE4B,OAJvB1B,EAAsD3rC,EAAAoB,KAAApB,EAAArL,KAAA,GAIzB84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAMm8B,gBAAgBy2B,kBAAkB1B,WAAW,IAAE,KAAD,EA4B/G,OA5BEA,EAAoB5rC,EAAAoB,KAEpByqC,EAAsB/zD,EAAAA,EAAK6nC,SAAS9Z,EAAAA,GAAME,mBAC1C+lC,EAAoBh0D,EAAAA,EAAKk6C,YAAYC,GAAAA,EAAoBsb,2BACzDxB,EAAsBj0D,EAAAA,EAAKk6C,YAAYC,GAAAA,EAAoBub,mBAC3DxB,EAAiCl0D,EAAAA,EAAKk6C,YAAYC,GAAAA,EAAoBwb,iBAAgBztC,EAAAtL,KAAA,GAGlFu3C,EAAuBN,EAA0B+B,oBAAoBhoD,MACrEwmD,EAAkCP,EAA0BgC,+BAA+BjoD,MAK7FqmD,GAAuBE,EAAqBz0D,SAC5C20D,EAA6B,CACzB9nD,KAAMupD,GAAAA,EAAeF,oBACrBhoD,MAAOtM,KAAKyH,UAAUorD,KAI1BD,GAAkCE,EAAgC10D,SAClE40D,EAA2B,CACvB/nD,KAAMupD,GAAAA,EAAeD,+BACrBjoD,MAAOtM,KAAKyH,UAAUqrD,KAE7BlsC,EAAArL,KAAA,IAEK27B,EAAAA,EAAAA,IAAI,CACN6b,IAA8Bpf,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0B45C,GACjFC,IAA4Brf,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0B65C,KAChF,KAAD,OAEEN,EAAkB,CAAD9rC,EAAArL,KAAA,SA+CjB,OA9CM03C,EAAqBX,EAA+BmC,cAAcnoD,MAAMooD,YACxExB,EAAuBZ,EAA+BqC,0BAA0BroD,MAAMooD,YACtFvB,EAAkBb,EAA+BsC,uBAAuBtoD,MAAMuoD,YAE9EzB,EAA2Bb,EAA0Ba,yBAAyB9mD,MAAMvD,MACtF,SAAAhE,GAAC,OAAIA,EAAEunB,uBAAyBkmC,EAAY1oD,aAAa,IAEvDupD,EAAqBd,EAA0BuC,+BAA+BxoD,MAC9EgnD,EAAqBf,EAA0BwC,gCAAgCzoD,MAE/EinD,EAAajB,EAA+BlI,cAAc4K,SAAS1oD,MAAMlK,KAC3E,SAAApB,GAA6B,MAAQ,CACjC8I,cADY9I,EAAb8I,cAEC4qD,YAFyB1zD,EAAX0zD,YAGjB,IAEClB,EAAiB,CACnBvoD,KAAMupD,GAAAA,EAAeS,QACrB3oD,MAAOtM,KAAKyH,UAAU,CAAEitD,YAAazB,KAGnCQ,EAAuB,CACzBxoD,KAAMupD,GAAAA,EAAeU,6BACrB5oD,MAAOtM,KAAKyH,UAAU,CAAEitD,YAAaxB,KAGnCQ,EAAqB,CACvBzoD,KAAMupD,GAAAA,EAAeW,iBACrB7oD,MAAOtM,KAAKyH,UAAU,CAAEotD,YAAa1B,KAGnCQ,EAAkC,CACpC1oD,KAAMupD,GAAAA,EAAepB,yBACrB9mD,MAAOtM,KAAKyH,UAAU2rD,IAGpBQ,EAA2B,CAC7B3oD,KAAMupD,GAAAA,EAAeM,+BACrBxoD,MAAOtM,KAAKyH,UAAU4rD,IAGpBQ,EAA2B,CAC7B5oD,KAAMupD,GAAAA,EAAeO,gCACrBzoD,MAAOtM,KAAKyH,UAAU6rD,IACzB1sC,EAAArL,KAAA,IAEK27B,EAAAA,EAAAA,IAAI,EACNvD,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0Bq6C,IACnD7f,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0Bs6C,IACnD9f,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0Bu6C,IAC3B,OAAxBN,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BsB,eAAgBU,GAAAA,GAAYC,OAASjC,EAAyBtpD,eAClF6pC,EAAAA,EAAAA,IACE56B,EAAAA,GAAoBQ,iBACpBi7C,GAAAA,EAAepB,yBACfA,EAAyBtpD,gBAEH,OAAxBspD,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BsB,eAC5B/gB,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0Bw6C,GACvDN,EAAmBj1D,SACnBu1C,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0By6C,GACnDN,EAAmBl1D,SACnBu1C,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0B06C,GACnDN,EAAWn1D,SAAUu1C,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBS,8BAA+B+5C,KAC9E,KAAD,GAAA3sC,EAAArL,KAAA,qBACKk3C,EAAoB,CAAD7rC,EAAArL,KAAA,SAmB1B,OAlBM63C,EAA2Bb,EAA0Ba,yBAAyB9mD,MAAMvD,MACtF,SAAAhE,GAAC,OAAIA,EAAEunB,uBAAyBkmC,EAAY1oD,aAAa,IAGvD6pD,EAAkC,CACpC1oD,KAAMupD,GAAAA,EAAepB,yBACrB9mD,MAAOtM,KAAKyH,UAAU2rD,IAGpB3a,GAAkC,OAAxB2a,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BsB,eAAgBU,GAAAA,GAAYC,OAASjC,EAAyBtpD,eAClG6pC,EAAAA,EAAAA,IACE56B,EAAAA,GAAoBQ,iBACpBi7C,GAAAA,EAAepB,yBACfA,EAAyBtpD,gBAEH,OAAxBspD,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BsB,eAC5B/gB,EAAAA,EAAAA,IAAK56B,EAAAA,GAAoBI,yBAA0Bw6C,GAAgC/sC,EAAArL,KAAA,GAEjFk9B,EAAQ,KAAD,GAGjB,OAHiB7xB,EAAArL,KAAA,IAGXs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BsE,eAAe,KAAD,GACtD,OADsD1uC,EAAArL,KAAA,IAChDs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BuE,uBAAsB,IAAO,KAAD,GAAA3uC,EAAArL,KAAA,iBAEpE,OAFoEqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,UAAAA,EAAArL,KAAA,IAE9Ds4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAenC,EAAAK,KAAK,KAAD,GAC1C,OAD0CL,EAAArL,KAAA,IACpCs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BwE,eAAe,KAAD,oBAAA5uC,EAAAnL,OAAA,GAAAo3B,GAAA,gBAI9D,SAAUue,KAAgC,IAAAqE,EAAAC,EAAAC,EAAAld,EAAA,OAAAx9B,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OAGpC,GAFmB7c,EAAAA,EAAKk3D,eACtB/c,GAAAA,EAAoBsb,2BAGN,CAAD1sC,EAAAlM,KAAA,eAAAkM,EAAAjM,OAAA,iBAKb,OALaiM,EAAAlM,KAAA,GAKP84B,EAAAA,EAAAA,KACF,SAAC/yC,GAAe,OACZA,EAAM0yD,uBAAuByB,+BAA+B,IAClE,KAAD,EAeD,OAnBEA,EAAiEhuC,EAAAO,KAAAP,EAAAnM,KAAA,EAO7Do6C,EACFD,EAAgCI,cAAcvpD,MAC5CqpD,EAAW,CACb1qD,KAAMupD,GAAAA,EAAesB,sBACrBxpD,MAAOtM,KAAKyH,UAAUiuD,IAGpBjd,GAAU9E,EAAAA,EAAAA,IACZ56B,EAAAA,GAAoBI,yBACpBw8C,GACHluC,EAAAlM,KAAA,GAEKk9B,EAAQ,KAAD,GAEb,OAFahxB,EAAAlM,KAAA,IAEPs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BsE,eAAe,KAAD,GACtD,OADsD7tC,EAAAlM,KAAA,IAChDs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BuE,uBAAsB,IAAO,KAAD,GAAA9tC,EAAAlM,KAAA,iBAEpE,OAFoEkM,EAAAnM,KAAA,GAAAmM,EAAAR,GAAAQ,EAAA,SAAAA,EAAAlM,KAAA,IAE9Ds4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAetB,EAAAR,KAAK,KAAD,GAC1C,OAD0CQ,EAAAlM,KAAA,IACpCs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BwE,eAAe,KAAD,oBAAA/tC,EAAAhM,OAAA,GAAAs3B,GAAA,eAI9D,SAAUse,KAAqB,IAAAM,EAAAoE,EAAAvD,EAAAwD,EAAAC,EAAAC,EAAAC,EAAAC,EAAA3d,EAAA4d,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAz7C,EAAAA,EAAAA,KAAAG,MAAC,SAAD2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OACU,OADVwM,EAAAxM,KAAA,GACgB84B,EAAAA,EAAAA,KACvC,SAAC/yC,GAAe,OAAKA,EAAM0yD,uBAAuBrC,KAAK,IACzD,KAAD,EACmD,OAH9CA,EAA4B5pC,EAAAC,KAAAD,EAAAxM,KAAA,GAGwB84B,EAAAA,EAAAA,KACtD,SAAC/yC,GAAe,OAAKA,EAAM0yD,uBAAuB+B,oBAAoB,IACxE,KAAD,EAC4B,OAHvBA,EAA2ChuC,EAAAC,KAAAD,EAAAxM,KAAA,GAGd84B,EAAAA,EAAAA,KAC/B,SAAC/yC,GAAe,OAAKA,EAAMm8B,gBAAgBy2B,kBAAkB1B,WAAW,IAC1E,KAAD,EAIuE,GANlEA,EAAoBzqC,EAAAC,KAIpBguC,GAAsBW,EAAAA,GAAAA,IAAmChF,EAAOa,GAChEyD,EAAev3D,EAAAA,EAAKk6C,YAAYC,GAAAA,EAAoBwb,iBACpD6B,EAAiBx3D,EAAAA,EAAKk3D,eAAcl6C,MAAnBhd,EAAAA,GAAI6F,EAAAA,GAAAA,GAAmBqyD,GAAAA,IAEzCZ,GAAwBC,GAAiBC,EAAc,CAAAnuC,EAAAxM,KAAA,gBAAAwM,EAAAvM,OAAA,qBAAAuM,EAAAzM,KAAA,IAKpD06C,EAAoB,CAADjuC,EAAAxM,KAAA,SAyBnB,OAxBM46C,EACFJ,EAAqBc,mBAAmBvqD,MAAMvD,MAC1C,SAAChE,GAAC,OAAKA,EAAEunB,uBAAyBkmC,EAAY1oD,aAAa,IAG7DssD,EAAsB,CACxBnrD,KAAMupD,GAAAA,EAAeqC,mBACrBvqD,MAAOtM,KAAKyH,UAAU0uD,IAGpB1d,GACiB,OAAnB0d,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBzB,eAAgBU,GAAAA,GAAYC,OACjDc,EAAoBrsD,eACd6pC,EAAAA,EAAAA,IACI56B,EAAAA,GAAoBQ,iBACpBi7C,GAAAA,EAAeqC,mBACfV,EAAoBrsD,gBAEL,OAAnBqsD,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBzB,eACrB/gB,EAAAA,EAAAA,IACI56B,EAAAA,GAAoBI,yBACpBi9C,GACHruC,EAAAxM,KAAA,GAELk9B,EAAQ,KAAD,OAGbwd,EAAa,CAADluC,EAAAxM,KAAA,SASZ,OARM86C,EACFN,EAAqBe,yBAAyBxqD,MAE5CgqD,EAAqB,CACvBrrD,KAAMupD,GAAAA,EAAesC,yBACrBxqD,MAAOtM,KAAKyH,UAAU4uD,IACzBtuC,EAAAxM,KAAA,IAEKo4B,EAAAA,EAAAA,IACF56B,EAAAA,GAAoBI,yBACpBm9C,GACF,KAAD,OAGDJ,EAAe,CAADnuC,EAAAxM,KAAA,SAgBd,OAfMg7C,EACFR,EAAqBgB,yBAAyBzqD,MAC5CkqD,EACFT,EAAqBiB,0BAA0B1qD,MAE7CmqD,EAAqB,CACvBxrD,KAAMupD,GAAAA,EAAeuC,yBACrBzqD,MAAOtM,KAAKyH,UAAU8uD,IAGpBG,EAAqB,CACvBzrD,KAAMupD,GAAAA,EAAewC,0BACrB1qD,MAAOtM,KAAKyH,UAAU+uD,IACzBzuC,EAAAxM,KAAA,IAEK27B,EAAAA,EAAAA,IAAI,EACNvD,EAAAA,EAAAA,IACI56B,EAAAA,GAAoBI,yBACpBs9C,IAEJ9iB,EAAAA,EAAAA,IACI56B,EAAAA,GAAoBI,yBACpBu9C,KAEL,KAAD,GAGN,OAHM3uC,EAAAxM,KAAA,IAGAs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BsE,eAAe,KAAD,GACtD,OADsDvtC,EAAAxM,KAAA,IAChDs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BuE,uBAAsB,IAAO,KAAD,GAAAxtC,EAAAxM,KAAA,iBAEpE,OAFoEwM,EAAAzM,KAAA,GAAAyM,EAAAd,GAAAc,EAAA,UAAAA,EAAAxM,KAAA,IAE9Ds4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAehB,EAAAd,KAAK,KAAD,GAC1C,OAD0Cc,EAAAxM,KAAA,IACpCs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BwE,eAAe,KAAD,oBAAAztC,EAAAtM,OAAA,GAAAw3B,GAAA,gBAI9D,SAAUqe,KAAyB,IAAA2F,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAnH,EAAAE,EAAAN,EAAAE,EAAAM,EAAA,OAAA51C,EAAAA,EAAAA,KAAAG,MAAC,SAADyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,OACc,OADdsN,EAAAtN,KAAA,GACoB84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OACtEA,EAAM0yD,uBAAuBiD,kBAAkB,IACjD,KAAD,EACyC,OAHpCA,EAAoCpuC,EAAAb,KAAAa,EAAAtN,KAAA,GAGM84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OACnEA,EAAM0yD,uBAAuBkD,eAAe,IAC9C,KAAD,EAGG,OALEA,EAAiCruC,EAAAb,KAAAa,EAAAvN,KAAA,EAAAuN,EAAAtN,KAAA,GAK7Bo4B,EAAAA,EAAAA,IAAKvQ,EAAAA,GAAwBE,qBAAsB4zB,GAAiB,KAAD,EAC9B,OAD8BruC,EAAAtN,KAAA,IACxBo4B,EAAAA,EAAAA,IAAKvQ,EAAAA,GAAwBC,qBAAqB,KAAD,GAClG,OADM8zB,EAAkCtuC,EAAAb,KAAAa,EAAAtN,KAAA,IAClCs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8B6G,4BAA4BV,IAAmB,KAAD,GACtF,OADsFtuC,EAAAtN,KAAA,IAChFs4B,EAAAA,EAAAA,IAAIwe,GAAAA,EAAwBhJ,cAAc7Q,GAAAA,EAAaE,QAASye,IAAmB,KAAD,GAUmE,GARrJC,GACgB,OAAlBH,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBa,2BAA4BX,EAAiBW,wBAC/DT,GACgB,OAAlBJ,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBc,uCAAwCZ,EAAiBY,oCAC3ET,GAAgD,OAAlBL,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBe,oCAAqCb,EAAiBa,iCACxGT,GAAgD,OAAlBN,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBgB,oCAAqCd,EAAiBc,iCACxGT,GAA2D,OAAlBP,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBiB,sCAAuCf,EAAiBe,mCACrHT,GAA2D,OAAlBR,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBkB,sCAAuChB,EAAiBgB,mCACrHT,GAA0D,OAAlBT,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBmB,qCAAsCjB,EAAiBiB,oCAIrHhB,GACAC,GACAG,GACAC,GACAH,GACAC,GACAG,GAAqC,CAAA7uC,EAAAtN,KAAA,SA8BrC,OA5BMo8C,EAAmBP,EACnBD,EAAiBW,0BAA4BO,GAAAA,EAAkBC,aAC/Dj6D,EAEAu5D,EAAwBP,EACxBF,EAAiBY,sCAAwCM,GAAAA,EAAkBC,aAC3Ej6D,EAEAoyD,EAAsB6G,EACtBH,EAAiBa,mCAAqCK,GAAAA,EAAkBC,aACxEj6D,EAEAsyD,EAAsB4G,EACtBJ,EAAiBc,mCAAqCI,GAAAA,EAAkBC,aACxEj6D,EAEAgyD,EAA8BmH,EAC9BL,EAAiBe,qCAAuCG,GAAAA,EAAkBC,aAC1Ej6D,EAEAkyD,EAA8BkH,EAC9BN,EAAiBgB,qCAAuCE,GAAAA,EAAkBC,aAC1Ej6D,EAEAwyD,EAA6B6G,EAC7BP,EAAiBiB,oCAAsCC,GAAAA,EAAkBC,aACzEj6D,EAASwqB,EAAAtN,KAAA,IAETs4B,EAAAA,EAAAA,IACFmd,GAAAA,EAA8BC,4BAC1B0G,EACAC,EACAvH,EACAE,EACAE,EACAE,EACAE,IAEN,KAAD,GAAAhoC,EAAAtN,KAAA,iBAGL,OAHKsN,EAAAvN,KAAA,GAAAuN,EAAA5B,GAAA4B,EAAA,SAAAA,EAAAtN,KAAA,IAGCs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAeF,EAAA5B,KAAK,KAAD,GAC1C,OAD0C4B,EAAAtN,KAAA,IACpCs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BuH,+BAA+B,KAAD,oBAAA1vC,EAAApN,OAAA,GAAA03B,GAAA,eAI9E,SAAUoe,KAA4B,IAAA2F,EAAAsB,EAAA,OAAAv9C,EAAAA,EAAAA,KAAAG,MAAC,SAADg6B,GAAA,cAAAA,EAAA95B,KAAA85B,EAAA75B,MAAA,OACQ,OADR65B,EAAA75B,KAAA,GACc84B,EAAAA,EAAAA,KAC5C,SAAC/yC,GAAe,OAAKA,EAAM0yD,uBAAuBkD,eAAe,IACnE,KAAD,EAMG,OAREA,EAAiC9hB,EAAAptB,KAGjCwwC,EAAe,CACjBC,uBAAwBvB,EAAgBuB,uBACxCC,iBAAkBxB,EAAgBwB,kBACrCtjB,EAAA95B,KAAA,EAAA85B,EAAA75B,KAAA,GAESo4B,EAAAA,EAAAA,IAAKvQ,EAAAA,GAAwBI,iBAAkBg1B,GAAc,KAAD,EAClE,OADkEpjB,EAAA75B,KAAA,GAC5Ds4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8B2H,sCAAsC,KAAD,EAC7E,OAD6EvjB,EAAA75B,KAAA,IACvEs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8BuE,yBAAyB,KAAD,GAAAngB,EAAA75B,KAAA,iBAEhE,OAFgE65B,EAAA95B,KAAA,GAAA85B,EAAAnuB,GAAAmuB,EAAA,SAAAA,EAAA75B,KAAA,IAE1Ds4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAeqsB,EAAAnuB,KAAK,KAAD,GAC1C,OAD0CmuB,EAAA75B,KAAA,IACpCs4B,EAAAA,EAAAA,IAAImd,GAAAA,EAA8B4H,sCAAsC,KAAD,oBAAAxjB,EAAA35B,OAAA,GAAA43B,GAAA,eAI9E,SAAUme,KAA2B,OAAAv2C,EAAAA,EAAAA,KAAAG,MAAC,SAADm6B,GAAA,cAAAA,EAAAj6B,KAAAi6B,EAAAh6B,MAAA,OACxC,OADwCg6B,EAAAh6B,KAAA,GAClCo6B,EAAAA,EAAAA,IAAUqb,GAAAA,EAA8BuE,sBAAuBrE,IAA4B,KAAD,EAChG,OADgG3b,EAAAh6B,KAAA,GAC1Fo6B,EAAAA,EAAAA,IAAUqb,GAAAA,EAA8B6H,YAAa1H,IAAkB,KAAD,EAC5E,OAD4E5b,EAAAh6B,KAAA,GACtEo6B,EAAAA,EAAAA,IAAUqb,GAAAA,EAA8B8H,4BAA6B1H,IAAkC,KAAD,EAC5G,OAD4G7b,EAAAh6B,KAAA,GACtGo6B,EAAAA,EAAAA,IAAUqb,GAAAA,EAA8B+H,iBAAkB1H,IAAuB,KAAD,EACtF,OADsF9b,EAAAh6B,KAAA,IAChFo6B,EAAAA,EAAAA,IAAUqb,GAAAA,EAA8BgI,mCAAoCzH,IAA8B,KAAD,GAC/G,OAD+Ghc,EAAAh6B,KAAA,IACzGo6B,EAAAA,EAAAA,IAAUqb,GAAAA,EAA8BiI,4BAA6B3H,IAA2B,KAAD,oBAAA/b,EAAA95B,OAAA,GAAA83B,GAAA,C,8CCpb/F2lB,IAAmBrmB,IAAA53B,EAAAA,EAAAA,KAAAC,KAUnBi+C,IAAsBpmB,IAAA93B,EAAAA,EAAAA,KAAAC,KAwDtBm7B,IAAWpD,IAAAh4B,EAAAA,EAAAA,KAAAC,KAIJk+C,IAtEjB,SAAUF,KAAmB,IAAAG,EAAA,OAAAp+C,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGjB,OAHiBF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAGXo4B,EAAAA,EAAAA,IAAK6T,IAAqC,KAAD,EACnD,OAFM6R,EAA6Eh+C,EAAA2M,KAAA3M,EAAAE,KAAA,GAE7Es4B,EAAAA,EAAAA,IAAIylB,GAAAA,EAAwBC,sBAAsBF,IAAS,KAAD,EAAAh+C,EAAAE,KAAA,gBAEhE,OAFgEF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAE1Ds4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa59B,EAAA4L,KAAK,KAAD,oBAAA5L,EAAAI,OAAA,GAAAm4B,GAAA,cAIhD,SAAUulB,GAAuBhkB,GAAkE,IAAAkkB,EAAAG,EAAA,OAAAv+C,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OA8C3F,OA7CI89C,EAAWlkB,EAAOlrC,QAAlBovD,OACFG,EAA2E,CAC7E,CACIzuD,SAAU+F,GAAAA,EAASC,IACnB9F,KAAMwuD,GAAAA,EAAiBC,gBACvBziD,KAAMoiD,EAAOI,GAAAA,EAAiBC,iBAAiB5oD,GAAAA,EAASC,MAE5D,CACIhG,SAAU+F,GAAAA,EAAS6oD,IACnB1uD,KAAMwuD,GAAAA,EAAiBC,gBACvBziD,KAAMoiD,EAAOI,GAAAA,EAAiBC,iBAAiB5oD,GAAAA,EAAS6oD,MAE5D,CACI5uD,SAAU+F,GAAAA,EAASC,IACnB9F,KAAMwuD,GAAAA,EAAiBG,uBACvB3iD,KAAMoiD,EAAOI,GAAAA,EAAiBG,wBAAwB9oD,GAAAA,EAASC,MAEnE,CACIhG,SAAU+F,GAAAA,EAAS6oD,IACnB1uD,KAAMwuD,GAAAA,EAAiBG,uBACvB3iD,KAAMoiD,EAAOI,GAAAA,EAAiBG,wBAAwB9oD,GAAAA,EAAS6oD,MAGnE,CACI5uD,SAAU+F,GAAAA,EAASC,IACnB9F,KAAMwuD,GAAAA,EAAiBI,eACvB5iD,KAAMoiD,EAAOI,GAAAA,EAAiBI,gBAAgB/oD,GAAAA,EAASC,MAE3D,CACIhG,SAAU+F,GAAAA,EAAS6oD,IACnB1uD,KAAMwuD,GAAAA,EAAiBI,eACvB5iD,KAAMoiD,EAAOI,GAAAA,EAAiBI,gBAAgB/oD,GAAAA,EAAS6oD,MAE3D,CACI5uD,SAAU+F,GAAAA,EAASC,IACnB9F,KAAMwuD,GAAAA,EAAiBK,sBACvB7iD,KAAMoiD,EAAOI,GAAAA,EAAiBK,uBAAuBhpD,GAAAA,EAASC,MAElE,CACIhG,SAAU+F,GAAAA,EAAS6oD,IACnB1uD,KAAMwuD,GAAAA,EAAiBK,sBACvB7iD,KAAMoiD,EAAOI,GAAAA,EAAiBK,uBAAuBhpD,GAAAA,EAAS6oD,OAErE/yC,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAESo4B,EAAAA,EAAAA,IAAK6T,GAAwC,CAAEgS,cAAAA,IAAiB,KAAD,EACrE,OADqE5yC,EAAArL,KAAA,GAC/Ds4B,EAAAA,EAAAA,IAAIylB,GAAAA,EAAwBS,4BAA4B,KAAD,EAC7D,OAD6DnzC,EAAArL,KAAA,GACvDs4B,EAAAA,EAAAA,IAAIylB,GAAAA,EAAwBC,sBAAsBC,IAAgB,KAAD,EACvE,OADuE5yC,EAAArL,KAAA,IACjEs4B,EAAAA,EAAAA,IAAIylB,GAAAA,EAAwBlR,mBAAkB,IAAQ,KAAD,GAAAxhC,EAAArL,KAAA,iBAE3D,OAF2DqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,IAErDs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAenC,EAAAK,KAAK,KAAD,GAC1C,OAD0CL,EAAArL,KAAA,IACpCs4B,EAAAA,EAAAA,IAAIylB,GAAAA,EAAwBU,4BAA4B,KAAD,oBAAApzC,EAAAnL,OAAA,GAAAo3B,GAAA,eAIrE,SAAUwD,KAAW,OAAAp7B,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACjB,OADiBkM,EAAAlM,KAAA,GACXs4B,EAAAA,EAAAA,IAAIylB,GAAAA,EAAwB1oD,SAAQ,wBAAA6W,EAAAhM,OAAA,GAAAs3B,GAAA,CAGvC,SAAUqmB,KAAqB,OAAAn+C,EAAAA,EAAAA,KAAAG,MAAC,SAAD2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OAClC,OADkCwM,EAAAxM,KAAA,GAC5Bo6B,EAAAA,EAAAA,IAAU2jB,GAAAA,EAAwBW,sBAAuBf,IAAqB,KAAD,EACnF,OADmFnxC,EAAAxM,KAAA,GAC7Eo6B,EAAAA,EAAAA,IAAU2jB,GAAAA,EAAwBY,yBAA0Bf,IAAwB,KAAD,EACzF,OADyFpxC,EAAAxM,KAAA,GACnFo6B,EAAAA,EAAAA,IAAUE,EAAAA,GAAe/Z,OAAQua,IAAY,wBAAAtuB,EAAAtM,OAAA,GAAAw3B,GAAA,C,kCCtE7CknB,IAAuBtnB,IAAA53B,EAAAA,EAAAA,KAAAC,KAUvBk/C,IAAarnB,IAAA93B,EAAAA,EAAAA,KAAAC,KAkBbm/C,IAAoBpnB,IAAAh4B,EAAAA,EAAAA,KAAAC,KAiBpBo/C,IAAsBnnB,IAAAl4B,EAAAA,EAAAA,KAAAC,KAatBq/C,IAAuBlnB,IAAAp4B,EAAAA,EAAAA,KAAAC,KAavBs/C,IAA4BjnB,IAAAt4B,EAAAA,EAAAA,KAAAC,KAY5Bu/C,IAAehnB,IAAAx4B,EAAAA,EAAAA,KAAAC,KAafw/C,IAAgB3iB,IAAA98B,EAAAA,EAAAA,KAAAC,KAahBy/C,IAAuB3iB,IAAA/8B,EAAAA,EAAAA,KAAAC,KAWhB0/C,IAxHjB,SAAUT,KAAuB,IAAA9zB,EAAA,OAAAprB,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEgD,OAFhDF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAEsDo4B,EAAAA,EAAAA,IAAK6T,IAAoC,KAAD,EACvH,OADMnhB,EAAgEhrB,EAAA2M,KAAA3M,EAAAE,KAAA,GAChEs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBC,mBAAmBz0B,EAAMA,MAAOA,EAAMma,WAAW,KAAD,EAAAnlC,EAAAE,KAAA,gBAElF,OAFkFF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAE5Es4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBE,sBAAsB,KAAD,GACvD,OADuD1/C,EAAAE,KAAA,IACjDs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAe1N,EAAA4L,KAAK,KAAD,oBAAA5L,EAAAI,OAAA,GAAAm4B,GAAA,cAIlD,SAAUwmB,GAAcjlB,GAAsE,IAAA0B,EAAAnhC,EAAA8C,EAAA6tB,EAAA3nC,EAAAs8D,EAAA,OAAA//C,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAE1F,OAF0Fs7B,EACjE1B,EAAOlrC,QAAxByL,EAAImhC,EAAJnhC,KAAM8C,EAAMq+B,EAANr+B,OAAMoO,EAAArL,KAAA,GACds4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBI,mBAAmBziB,GAAAA,EAAaC,UAAU,KAAD,EAEvE,OAFuE7xB,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAEjEo4B,EAAAA,EAAAA,IAAK6T,IAA2BnkD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOqS,GAAI,IAAEtQ,GAAIoT,KAAU,KAAD,EACnC,OADmCoO,EAAArL,KAAA,GAC7B84B,EAAAA,EAAAA,KAAO,SAAC/yC,GAAe,OAAKA,EAAM45D,iBAAiB70B,KAAK,IAAE,KAAD,EAC9C,GADxCA,EAAoBzf,EAAAoB,OACpBtpB,EAAO2nC,EAAMt9B,MAAK,SAAA6/B,GAAC,OAAIA,EAAExjC,KAAOoT,CAAM,KACnC,CAADoO,EAAArL,KAAA,SAEJ,OADMy/C,GAAoB33D,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQ3E,GAASgX,GAAI,IAAEtQ,GAAIoT,IAAMoO,EAAArL,KAAA,IACrDs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBM,UAAUH,IAAU,KAAD,GAEzD,OAFyDp0C,EAAArL,KAAA,IAEnDs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBI,mBAAmBziB,GAAAA,EAAaE,UAAU,KAAD,GAAA9xB,EAAArL,KAAA,iBAE3E,OAF2EqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,IAErEs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBI,mBAAmBziB,GAAAA,EAAavV,UAAU,KAAD,GAC3E,OAD2Erc,EAAArL,KAAA,IACrEs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAenC,EAAAK,KAAK,KAAD,oBAAAL,EAAAnL,OAAA,GAAAo3B,GAAA,eAIlD,SAAUwnB,GAAqBllB,GAAsG,IAAAimB,EAAA1lD,EAAA0yB,EAAAJ,EAAAqzB,EAAA,OAAApgD,EAAAA,EAAAA,KAAAG,MAAA,SAAAqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OAEjI,OAFiI6/C,EAC/EjmB,EAAOlrC,QAAjDyL,EAAI0lD,EAAJ1lD,KAAM0yB,EAAagzB,EAAbhzB,cAAeJ,EAAgBozB,EAAhBpzB,iBAAgBvgB,EAAAlM,KAAA,GACvCs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBS,0BAA0B9iB,GAAAA,EAAaC,UAAU,KAAD,EAErC,OAFqChxB,EAAAnM,KAAA,EAAAmM,EAAAlM,KAAA,GAE/Bo4B,EAAAA,EAAAA,IAAK6T,IAAkCnkD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC/EqS,GAAI,IACPtQ,GAAIgjC,QAAiB/pC,EACrB2pC,iBAAAA,KACD,KAAD,EACF,OALMqzB,EAAgC5zC,EAAAO,KAAAP,EAAAlM,KAAA,GAKhCs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBU,iBAAiBF,IAAc,KAAD,EAChE,OADgE5zC,EAAAlM,KAAA,IAC1Ds4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBS,0BAA0B9iB,GAAAA,EAAaE,UAAU,KAAD,GAAAjxB,EAAAlM,KAAA,iBAElF,OAFkFkM,EAAAnM,KAAA,GAAAmM,EAAAR,GAAAQ,EAAA,SAAAA,EAAAlM,KAAA,IAE5Es4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBS,0BAA0B9iB,GAAAA,EAAavV,UAAU,KAAD,GAClF,OADkFxb,EAAAlM,KAAA,GAC5Ei/C,GAA4B/yC,EAAAR,IAAI,KAAD,oBAAAQ,EAAAhM,OAAA,GAAAs3B,GAAA,eAI7C,SAAUunB,GAAuBnlB,GAAqE,IAAAqmB,EAAApzB,EAAAJ,EAAAyzB,EAAA,OAAAxgD,EAAAA,EAAAA,KAAAG,MAAA,SAAA2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OAElG,OAFkGigD,EACtDrmB,EAAOlrC,QAA3Cm+B,EAAaozB,EAAbpzB,cAAeJ,EAAgBwzB,EAAhBxzB,iBAAgBjgB,EAAAxM,KAAA,GACjCs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBa,6BAA6BljB,GAAAA,EAAaC,QAASrQ,IAAgB,KAAD,EAEvD,OAFuDrgB,EAAAzM,KAAA,EAAAyM,EAAAxM,KAAA,GAEjDo4B,EAAAA,EAAAA,IAAK6T,GAAsCpf,EAAeJ,GAAkB,KAAD,EAC1H,OADMyzB,EAAgC1zC,EAAAC,KAAAD,EAAAxM,KAAA,GAChCs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBa,6BAA6BljB,GAAAA,EAAaE,QAAStQ,IAAgB,KAAD,EACpG,OADoGrgB,EAAAxM,KAAA,IAC9Fs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBc,mBAAmBF,IAAc,KAAD,GAAA1zC,EAAAxM,KAAA,iBAElE,OAFkEwM,EAAAzM,KAAA,GAAAyM,EAAAd,GAAAc,EAAA,SAAAA,EAAAxM,KAAA,IAE5Ds4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBa,6BAA6BljB,GAAAA,EAAavV,QAASmF,IAAgB,KAAD,GACpG,OADoGrgB,EAAAxM,KAAA,GAC9Fi/C,GAA4BzyC,EAAAd,IAAI,KAAD,oBAAAc,EAAAtM,OAAA,GAAAw3B,GAAA,eAI7C,SAAUsnB,GAAwBplB,GAA0F,IAAAymB,EAAAxzB,EAAAJ,EAAAT,EAAAk0B,EAAA,OAAAxgD,EAAAA,EAAAA,KAAAG,MAAA,SAAAyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,OAExH,OAFwHqgD,EAC/DzmB,EAAOlrC,QAAxDm+B,EAAawzB,EAAbxzB,cAAeJ,EAAgB4zB,EAAhB5zB,iBAAkBT,EAAWq0B,EAAXr0B,YAAW1e,EAAAtN,KAAA,GAC9Cs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBa,6BAA6BljB,GAAAA,EAAaC,QAASrQ,IAAgB,KAAD,EAEvD,OAFuDvf,EAAAvN,KAAA,EAAAuN,EAAAtN,KAAA,GAEjDo4B,EAAAA,EAAAA,IAAK6T,GAAuCpf,EAAeJ,EAAkBT,GAAa,KAAD,EACxI,OADMk0B,EAAgC5yC,EAAAb,KAAAa,EAAAtN,KAAA,GAChCs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBa,6BAA6BljB,GAAAA,EAAaE,QAAStQ,IAAgB,KAAD,EACpG,OADoGvf,EAAAtN,KAAA,IAC9Fs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBgB,oBAAoBJ,IAAc,KAAD,GAAA5yC,EAAAtN,KAAA,iBAEnE,OAFmEsN,EAAAvN,KAAA,GAAAuN,EAAA5B,GAAA4B,EAAA,SAAAA,EAAAtN,KAAA,IAE7Ds4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBa,6BAA6BljB,GAAAA,EAAavV,QAASmF,IAAgB,KAAD,GACpG,OADoGvf,EAAAtN,KAAA,GAC9Fi/C,GAA4B3xC,EAAA5B,IAAI,KAAD,oBAAA4B,EAAApN,OAAA,GAAA03B,GAAA,eAI7C,SAAUqnB,GAA6B96D,GAAsB,OAAFub,EAAAA,EAAAA,KAAAG,MAAA,SAAAg6B,GAAE,cAAFA,EAAA95B,KAAA85B,EAAA75B,MAAE,KAAF,KACrC,OAAb,OAAD7b,QAAC,IAADA,OAAC,EAADA,EAAGI,QAAc,CAAAs1C,EAAA75B,KAAA,QACjB,OADiB65B,EAAA75B,KAAA,GACXs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBu4C,iCAC1B,oEACA,2BACA,IACD,KAAD,EAAA1mB,EAAA75B,KAAA,eAEF,OAFE65B,EAAA75B,KAAA,GAEIs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAgBrpB,IAAG,wBAAA01C,EAAA35B,OAAA,GAAA43B,GAAA,CAIlD,SAAUonB,GAAgBtlB,GAAsC,IAAA38B,EAAAyL,EAAA,OAAAhJ,EAAAA,EAAAA,KAAAG,MAAA,SAAAm6B,GAAA,cAAAA,EAAAj6B,KAAAi6B,EAAAh6B,MAAA,OAE5D,OADQ/C,EAAW28B,EAAOlrC,QAAlBuO,OAAM+8B,EAAAh6B,KAAA,GACRs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBkB,sBAAsBvjB,GAAAA,EAAaC,QAASjgC,IAAS,KAAD,EAE7B,OAF6B+8B,EAAAj6B,KAAA,EAAAi6B,EAAAh6B,KAAA,GAEvBo4B,EAAAA,EAAAA,IAAK6T,GAA+BhvC,GAAQ,KAAD,EACtG,OADMyL,EAA4CsxB,EAAAvtB,KAAAutB,EAAAh6B,KAAA,GAC5Cs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBmB,eAAexjD,EAAQyL,EAASnkB,SAAS,KAAD,EAC1E,OAD0Ey1C,EAAAh6B,KAAA,IACpEs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBkB,sBAAsBvjB,GAAAA,EAAaE,QAASlgC,IAAS,KAAD,GAAA+8B,EAAAh6B,KAAA,iBAEtF,OAFsFg6B,EAAAj6B,KAAA,GAAAi6B,EAAAtuB,GAAAsuB,EAAA,SAAAA,EAAAh6B,KAAA,IAEhFs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBkB,sBAAsBvjB,GAAAA,EAAavV,QAASzqB,IAAS,KAAD,GACtF,OADsF+8B,EAAAh6B,KAAA,IAChFs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAewsB,EAAAtuB,KAAK,KAAD,oBAAAsuB,EAAA95B,OAAA,GAAA83B,GAAA,eAIlD,SAAUmnB,GAAiBvlB,GAA2D,IAAA8mB,EAAAzjD,EAAA+uB,EAAA,OAAAtsB,EAAAA,EAAAA,KAAAG,MAAA,SAAAs6B,GAAA,cAAAA,EAAAp6B,KAAAo6B,EAAAn6B,MAAA,OAElF,OAFkF0gD,EAClD9mB,EAAOlrC,QAA/BuO,EAAMyjD,EAANzjD,OAAQ+uB,EAAW00B,EAAX10B,YAAWmO,EAAAn6B,KAAA,GACrBs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBkB,sBAAsBvjB,GAAAA,EAAaC,QAASjgC,IAAS,KAAD,EAElF,OAFkFk9B,EAAAp6B,KAAA,EAAAo6B,EAAAn6B,KAAA,GAE5Eo4B,EAAAA,EAAAA,IAAK6T,GAAgChvC,EAAQ+uB,GAAa,KAAD,EAC/D,OAD+DmO,EAAAn6B,KAAA,GACzDs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBqB,eAAe1jD,EAAQ+uB,IAAc,KAAD,EACtE,OADsEmO,EAAAn6B,KAAA,IAChEs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBkB,sBAAsBvjB,GAAAA,EAAaE,QAASlgC,IAAS,KAAD,GAAAk9B,EAAAn6B,KAAA,iBAEtF,OAFsFm6B,EAAAp6B,KAAA,GAAAo6B,EAAAzuB,GAAAyuB,EAAA,SAAAA,EAAAn6B,KAAA,IAEhFs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBkB,sBAAsBvjB,GAAAA,EAAavV,QAASzqB,IAAS,KAAD,GACtF,OADsFk9B,EAAAn6B,KAAA,IAChFs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAe2sB,EAAAzuB,KAAK,KAAD,oBAAAyuB,EAAAj6B,OAAA,GAAAg4B,GAAA,eAIlD,SAAUknB,KAAuB,IAAA7yD,EAAA,OAAAmT,EAAAA,EAAAA,KAAAG,MAAC,SAADmlC,GAAA,cAAAA,EAAAjlC,KAAAilC,EAAAhlC,MAAA,OAEkB,OAFlBglC,EAAAjlC,KAAA,EAAAilC,EAAAhlC,KAAA,GAEwBo4B,EAAAA,EAAAA,IAAK6T,IAAgC,KAAD,EAA/E1/C,EAAkCy4C,EAAAv4B,MACxC60B,EAAAA,EAAAA,QAAO/0C,EAAK9J,KAAM8J,EAAKpH,MAAM6/C,EAAAhlC,KAAA,gBAE7B,OAF6BglC,EAAAjlC,KAAA,EAAAilC,EAAAt5B,GAAAs5B,EAAA,SAAAA,EAAAhlC,KAAA,IAEvBs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAew3B,EAAAt5B,KAAK,KAAD,GAE1C,OAF0Cs5B,EAAAjlC,KAAA,GAAAilC,EAAAhlC,KAAA,IAEpCs4B,EAAAA,EAAAA,IAAIgnB,GAAAA,EAAwBsB,uBAAsB,eAAA5b,EAAA5B,OAAA,6BAAA4B,EAAA9kC,OAAA,GAAAs8B,GAAA,oBAIzD,SAAU6iB,KAAqB,OAAA3/C,EAAAA,EAAAA,KAAAG,MAAC,SAAD6mC,GAAA,cAAAA,EAAA3mC,KAAA2mC,EAAA1mC,MAAA,OAClC,OADkC0mC,EAAA1mC,KAAA,GAC5Bo6B,EAAAA,EAAAA,IAAUklB,GAAAA,EAAwBuB,mBAAoBjC,IAAyB,KAAD,EACpF,OADoFlY,EAAA1mC,KAAA,GAC9Eo6B,EAAAA,EAAAA,IAAUklB,GAAAA,EAAwBpzB,SAAU2yB,IAAe,KAAD,EAChE,OADgEnY,EAAA1mC,KAAA,GAC1Do6B,EAAAA,EAAAA,IAAUklB,GAAAA,EAAwBwB,gBAAiBhC,IAAsB,KAAD,EAC9E,OAD8EpY,EAAA1mC,KAAA,GACxEo6B,EAAAA,EAAAA,IAAUklB,GAAAA,EAAwByB,kBAAmBhC,IAAwB,KAAD,EAClF,OADkFrY,EAAA1mC,KAAA,IAC5Eo6B,EAAAA,EAAAA,IAAUklB,GAAAA,EAAwB0B,mBAAoBhC,IAAyB,KAAD,GACpF,OADoFtY,EAAA1mC,KAAA,IAC9Eo6B,EAAAA,EAAAA,IAAUklB,GAAAA,EAAwBxzB,WAAYozB,IAAiB,KAAD,GACpE,OADoExY,EAAA1mC,KAAA,IAC9Do6B,EAAAA,EAAAA,IAAUklB,GAAAA,EAAwB2B,mBAAoB7B,IAAyB,KAAD,GACpF,OADoF1Y,EAAA1mC,KAAA,IAC9Eo6B,EAAAA,EAAAA,IAAUklB,GAAAA,EAAwBvzB,YAAaozB,IAAkB,KAAD,oBAAAzY,EAAAxmC,OAAA,GAAAu8B,GAAA,C,sECjIhEykB,IAAY5pB,IAAA53B,EAAAA,EAAAA,KAAAC,KAiBZwhD,IAAU3pB,IAAA93B,EAAAA,EAAAA,KAAAC,KAiBVyhD,IAAY1pB,IAAAh4B,EAAAA,EAAAA,KAAAC,KAgBZ0hD,IAAkBzpB,IAAAl4B,EAAAA,EAAAA,KAAAC,KAalB2hD,IAAsBxpB,IAAAp4B,EAAAA,EAAAA,KAAAC,KAStB4hD,IAA+BvpB,IAAAt4B,EAAAA,EAAAA,KAAAC,KAUxB6hD,IAlFjB,SAAUN,GAAatnB,GAAqE,IAAAz2C,EAAA,OAAAuc,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACxF,OADwFF,EAAAE,KAAA,GAClFs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBC,kBAAkB9nB,EAAOlrC,QAAQm+B,cAAeoQ,GAAAA,EAAaC,UAAU,KAAD,EAGjF,OAHiFp9B,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAG3Eo4B,EAAAA,EAAAA,IACrB3M,GAAAA,EAAae,mBACboN,EAAOlrC,QAAQm+B,cACf+M,EAAOlrC,QAAQ+9B,kBACjB,KAAD,EAED,OANMtpC,EAAU2c,EAAA2M,KAAA3M,EAAAE,KAAA,GAMVs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBE,oBAAoB/nB,EAAOlrC,QAAQm+B,cAAe1pC,IAAO,KAAD,EAC1F,OAD0F2c,EAAAE,KAAA,IACpFs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBC,kBAAkB9nB,EAAOlrC,QAAQm+B,cAAeoQ,GAAAA,EAAaE,UAAU,KAAD,GAAAr9B,EAAAE,KAAA,iBAExG,OAFwGF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,GAElGqhD,GAAmBznB,EAAOlrC,QAAQm+B,cAAa/sB,EAAA4L,IAAK,KAAD,oBAAA5L,EAAAI,OAAA,GAAAm4B,GAAA,eAIjE,SAAU8oB,GAAWvnB,GAA0F,IAAAgoB,EAAA,OAAAliD,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAC3G,OAD2GqL,EAAArL,KAAA,GACrGs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBC,kBAAkB9nB,EAAOlrC,QAAQm+B,cAAeoQ,GAAAA,EAAaC,UAAU,KAAD,EAGpD,OAHoD7xB,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAG9Co4B,EAAAA,EAAAA,IAClD3M,GAAAA,EAAaiB,iBACbkN,EAAOlrC,QAAQm+B,cACf+M,EAAOlrC,QAAQ+9B,iBACfmN,EAAOlrC,QAAQs9B,aACjB,KAAD,EACD,OANM41B,EAAuCv2C,EAAAoB,KAAApB,EAAArL,KAAA,GAMvCs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBI,mBAAmBD,IAAqB,KAAD,EACzE,OADyEv2C,EAAArL,KAAA,IACnEs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBC,kBAAkB9nB,EAAOlrC,QAAQm+B,cAAeoQ,GAAAA,EAAaE,UAAU,KAAD,GAAA9xB,EAAArL,KAAA,iBAExG,OAFwGqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,GAElGqhD,GAAmBznB,EAAOlrC,QAAQm+B,cAAaxhB,EAAAK,IAAK,KAAD,oBAAAL,EAAAnL,OAAA,GAAAo3B,GAAA,eAIjE,SAAU8pB,GAAaxnB,GAAqE,IAAAkoB,EAAA,OAAApiD,EAAAA,EAAAA,KAAAG,MAAA,SAAAqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACxF,OADwFkM,EAAAlM,KAAA,GAClFs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBC,kBAAkB9nB,EAAOlrC,QAAQm+B,cAAeoQ,GAAAA,EAAaC,UAAU,KAAD,EAGlD,OAHkDhxB,EAAAnM,KAAA,EAAAmM,EAAAlM,KAAA,GAG5Co4B,EAAAA,EAAAA,IACpD3M,GAAAA,EAAauB,mBACb4M,EAAOlrC,QAAQm+B,cACf+M,EAAOlrC,QAAQ+9B,kBACjB,KAAD,EACD,OALMq1B,EAAyC51C,EAAAO,KAAAP,EAAAlM,KAAA,GAKzCs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBM,qBAAqBD,IAAuB,KAAD,EAC7E,OAD6E51C,EAAAlM,KAAA,IACvEs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBC,kBAAkB9nB,EAAOlrC,QAAQm+B,cAAeoQ,GAAAA,EAAaE,UAAU,KAAD,GAAAjxB,EAAAlM,KAAA,iBAExG,OAFwGkM,EAAAnM,KAAA,GAAAmM,EAAAR,GAAAQ,EAAA,SAAAA,EAAAlM,KAAA,GAElGqhD,GAAmBznB,EAAOlrC,QAAQm+B,cAAa3gB,EAAAR,IAAK,KAAD,oBAAAQ,EAAAhM,OAAA,GAAAs3B,GAAA,eAIjE,SAAU6pB,GAAmBx0B,EAAuB1oC,GAAqB,OAAAub,EAAAA,EAAAA,KAAAG,MAAA,SAAA2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OACrE,OADqEwM,EAAAxM,KAAA,GAC/Ds4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBC,kBAAkB70B,EAAeoQ,GAAAA,EAAavV,UAAU,KAAD,KACxE,MAAbvjC,EAAEI,OAAc,CAAAioB,EAAAxM,KAAA,QAChB,OADgBwM,EAAAxM,KAAA,GACVs4B,EAAAA,EAAAA,IAAItwB,EAAAA,IAAoBu4C,iCAC1B,+GACA,IACA,IACF,KAAD,EAAA/zC,EAAAxM,KAAA,eAED,OAFCwM,EAAAxM,KAAA,GAEKs4B,EAAAA,EAAAA,IAAI/qB,GAAAA,EAAaC,gBAAgBrpB,IAAI,KAAD,mBAAAqoB,EAAAtM,OAAA,GAAAw3B,GAAA,CAIlD,SAAU4pB,GAAuB1nB,GAA6C,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAAyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,OAEtE,OAFsEsN,EAAAvN,KAAA,EAAAuN,EAAAtN,KAAA,GAEhEo4B,EAAAA,EAAAA,IAAK3M,GAAAA,EAAamB,kBAAmBgN,EAAOlrC,QAAQm+B,eAAe,KAAD,EACxE,OADwEvf,EAAAtN,KAAA,GAClEs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBO,mBAAmBpoB,EAAOlrC,QAAQm+B,gBAAgB,KAAD,EAAAvf,EAAAtN,KAAA,gBAEnF,OAFmFsN,EAAAvN,KAAA,EAAAuN,EAAA5B,GAAA4B,EAAA,SAAAA,EAAAtN,KAAA,IAE7Es4B,EAAAA,EAAAA,IAAI/qB,GAAAA,EAAaC,gBAAeF,EAAA5B,KAAK,KAAD,oBAAA4B,EAAApN,OAAA,GAAA03B,GAAA,cAIlD,SAAU2pB,KAA+B,IAAAj9C,EAAA,OAAA5E,EAAAA,EAAAA,KAAAG,MAAC,SAADg6B,GAAA,cAAAA,EAAA95B,KAAA85B,EAAA75B,MAAA,OAEX,OAFW65B,EAAA95B,KAAA,EAAA85B,EAAA75B,KAAA,GAELo4B,EAAAA,EAAAA,IAAK3M,GAAAA,EAAasB,2BAA2B,KAAD,EACxE,OADMzoB,EAAau1B,EAAAptB,KAAAotB,EAAA75B,KAAA,GACbs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBQ,2BAA2B39C,EAAO24B,GAAAA,EAAaE,UAAU,KAAD,EAAAtD,EAAA75B,KAAA,gBAE1F,OAF0F65B,EAAA95B,KAAA,EAAA85B,EAAAnuB,GAAAmuB,EAAA,SAAAA,EAAA75B,KAAA,IAEpFs4B,EAAAA,EAAAA,IAAImpB,GAAAA,EAAwBQ,2BAA2B,EAAGhlB,GAAAA,EAAavV,UAAU,KAAD,GACtFvb,GAAAA,EAAOC,UAASytB,EAAAnuB,GAAI,4CAA2C,yBAAAmuB,EAAA35B,OAAA,GAAA43B,GAAA,cAIhE,SAAU0pB,KAAqB,OAAA9hD,EAAAA,EAAAA,KAAAG,MAAC,SAADm6B,GAAA,cAAAA,EAAAj6B,KAAAi6B,EAAAh6B,MAAA,OAClC,OADkCg6B,EAAAh6B,KAAA,GAC5Bo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQonB,GAAAA,EAAwB5lD,SAAUqlD,IAAc,KAAD,EACvE,OADuElnB,EAAAh6B,KAAA,GACjEo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQonB,GAAAA,EAAwBS,OAAQf,IAAY,KAAD,EACnE,OADmEnnB,EAAAh6B,KAAA,GAC7Do6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQonB,GAAAA,EAAwBU,SAAUf,IAAc,KAAD,EACvE,OADuEpnB,EAAAh6B,KAAA,GACjEo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQonB,GAAAA,EAAwB70B,mBAAoB00B,IAAwB,KAAD,EAC3F,OAD2FtnB,EAAAh6B,KAAA,IACrFo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQonB,GAAAA,EAAwBW,4BAA6Bb,IAAgC,yBAAAvnB,EAAA95B,OAAA,GAAA83B,GAAA,C,yGC3FvGqqB,IAAW/qB,IAAA53B,EAAAA,EAAAA,KAAAC,KAWJ2iD,IAXjB,SAAUD,GAAYzoB,GAA+C,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE7D,OAF6DF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAEvDo4B,EAAAA,EAAAA,IAAK1tB,GAAAA,EAAesV,eAAgB4Z,EAAOlrC,QAAQwuC,SAAS,KAAD,EACjE,OADiEp9B,EAAAE,KAAA,GAC3Ds4B,EAAAA,EAAAA,IAAIiqB,GAAAA,EAAcC,iBAAiB,KAAD,EACxC,OADwC1iD,EAAAE,KAAA,GAClCo4B,EAAAA,EAAAA,IAAKrX,GAAAA,EAAQC,QAASC,GAAAA,EAAOwhC,eAAe,KAAD,EAAA3iD,EAAAE,KAAA,gBAEjD,OAFiDF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAE3Cs4B,EAAAA,EAAAA,IAAItwB,GAAAA,EAAoB06C,4BAA4B,mCAAmC,KAAD,GAC5F,OAD4F5iD,EAAAE,KAAA,IACtFs4B,EAAAA,EAAAA,IAAIiqB,GAAAA,EAAcI,eAAe,KAAD,oBAAA7iD,EAAAI,OAAA,GAAAm4B,GAAA,cAIvC,SAAUiqB,KAAW,OAAA5iD,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACxB,OADwBqL,EAAArL,KAAA,GAClBo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQkoB,GAAAA,EAAcvmD,QAASqmD,IAAa,KAAD,mBAAAh3C,EAAAnL,OAAA,GAAAo3B,GAAA,C,0DCXrD4V,IAAY5V,IAAA53B,EAAAA,EAAAA,KAAAC,KAUZijD,IAAQprB,IAAA93B,EAAAA,EAAAA,KAAAC,KAIDkjD,IAdjB,SAAU3V,GAAatT,GAAoD,IAAAt2B,EAAA,OAAA5D,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEtC,OAFsCF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAEhCo4B,EAAAA,EAAAA,IAAKp1B,GAAAA,EAAcQ,aAAco2B,EAAOlrC,QAAQI,kBAAmB8qC,EAAOlrC,QAAQO,YAAY,KAAD,EAChI,OADMqU,EAAoBxD,EAAA2M,KAAA3M,EAAAE,KAAA,GACpBs4B,EAAAA,EAAAA,IAAIwqB,GAAAA,EAAkBhV,cAAclU,EAAOlrC,QAAQO,WAAYguC,GAAAA,EAAaE,QAAS75B,IAAa,KAAD,EAAAxD,EAAAE,KAAA,gBAEvG,OAFuGF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAEjGs4B,EAAAA,EAAAA,IAAI/qB,GAAAA,EAAaC,gBAAe1N,EAAA4L,KAAK,KAAD,GAC1C,OAD0C5L,EAAAE,KAAA,IACpCs4B,EAAAA,EAAAA,IAAIwqB,GAAAA,EAAkBhV,cAAclU,EAAOlrC,QAAQO,WAAYguC,GAAAA,EAAavV,UAAU,KAAD,oBAAA5nB,EAAAI,OAAA,GAAAm4B,GAAA,cAInG,SAAUuqB,GAAShpB,GAAgE,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAC/E,OAD+EqL,EAAArL,KAAA,GACzEs4B,EAAAA,EAAAA,IAAIwqB,GAAAA,EAAkBC,aAAanpB,EAAO3qC,WAAY2qC,EAAOopB,YAAY,KAAD,mBAAA33C,EAAAnL,OAAA,GAAAo3B,GAAA,CAG3E,SAAUurB,KAAe,OAAAnjD,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OAC5B,OAD4BkM,EAAAlM,KAAA,GACtBw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQyoB,GAAAA,EAAkB5lB,SAAUgQ,IAAc,KAAD,EAClE,OADkEhhC,EAAAlM,KAAA,GAC5Do6B,EAAAA,EAAAA,IAAUyN,GAAAA,EAAgBob,sBAAuBL,IAAU,KAAD,mBAAA12C,EAAAhM,OAAA,GAAAs3B,GAAA,C,0DCjB1D0V,IAAY5V,IAAA53B,EAAAA,EAAAA,KAAAC,KAULujD,IAVjB,SAAUhW,KAAY,IAAAiW,EAAA,OAAAzjD,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEwB,OAFxBF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAE8Bo4B,EAAAA,EAAAA,IAAKp2B,GAAAA,EAAkBC,uBAAuB,KAAD,EACzF,OADMkhD,EAA6BrjD,EAAA2M,KAAA3M,EAAAE,KAAA,GAC7Bs4B,EAAAA,EAAAA,IAAI8qB,GAAAA,EAAyBtV,cAAc7Q,GAAAA,EAAaE,QAASgmB,IAAW,KAAD,EAAArjD,EAAAE,KAAA,gBAEjF,OAFiFF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAE3Es4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa59B,EAAA4L,KAAK,KAAD,GACxC,OADwC5L,EAAAE,KAAA,IAClCs4B,EAAAA,EAAAA,IAAI8qB,GAAAA,EAAyBtV,cAAc7Q,GAAAA,EAAavV,UAAU,KAAD,oBAAA5nB,EAAAI,OAAA,GAAAm4B,GAAA,cAIxE,SAAU6qB,KAAsB,OAAAxjD,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACnC,OADmCqL,EAAArL,KAAA,GAC7Bo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ+oB,GAAAA,EAAyBlmB,SAAUgQ,IAAc,KAAD,mBAAA7hC,EAAAnL,OAAA,GAAAo3B,GAAA,C,8CCXlE+rB,IAA2B/rB,IAAA53B,EAAAA,EAAAA,KAAAC,KAWpB2jD,IAXjB,SAAUD,GAA4BzpB,GAAyD,IAAA2pB,EAAA,OAAA7jD,EAAAA,EAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE7C,OAF6CF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAEvCo4B,EAAAA,EAAAA,IAAKp2B,GAAAA,EAAkBE,mBAAoB03B,EAAOlrC,QAAQmC,SAAS,KAAD,EAClH,OADM0yD,EAAiCzjD,EAAA2M,KAAA3M,EAAAE,KAAA,GACjCs4B,EAAAA,EAAAA,IAAIkrB,GAAAA,EAAuB1V,cAAclU,EAAOlrC,QAAQmC,QAASosC,GAAAA,EAAaE,QAASomB,IAAa,KAAD,EAAAzjD,EAAAE,KAAA,gBAGzG,OAHyGF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAGnGs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa59B,EAAA4L,KAAK,KAAD,GACxC,OADwC5L,EAAAE,KAAA,IAClCs4B,EAAAA,EAAAA,IAAIkrB,GAAAA,EAAuB1V,cAAclU,EAAOlrC,QAAQmC,QAASosC,GAAAA,EAAavV,UAAU,KAAD,oBAAA5nB,EAAAI,OAAA,GAAAm4B,GAAA,cAI9F,SAAUirB,KAAoB,OAAA5jD,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACjC,OADiCqL,EAAArL,KAAA,GAC3Bo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQmpB,GAAAA,EAAuBtmB,SAAUmmB,IAA6B,KAAD,mBAAAh4C,EAAAnL,OAAA,GAAAo3B,GAAA,C,8CCZ/E4V,IAAY5V,IAAA53B,EAAAA,EAAAA,KAAAC,KAUL8jD,IAVjB,SAAUvW,KAAY,IAAA9B,EAAA,OAAA1rC,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE+B,OAF/BF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAEqCo4B,EAAAA,EAAAA,IAAK9nB,GAAAA,EAA+B7kB,cAAc,KAAD,EACpG,OADM2/C,EAAoCtrC,EAAA2M,KAAA3M,EAAAE,KAAA,GACpCs4B,EAAAA,EAAAA,IAAIorB,GAAAA,EAA+B5V,cAAc7Q,GAAAA,EAAaE,QAASiO,IAAY,KAAD,EAAAtrC,EAAAE,KAAA,gBAExF,OAFwFF,EAAAC,KAAA,EAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAElFs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa59B,EAAA4L,KAAK,KAAD,GACxC,OADwC5L,EAAAE,KAAA,IAClCs4B,EAAAA,EAAAA,IAAIorB,GAAAA,EAA+B5V,cAAc7Q,GAAAA,EAAavV,UAAU,KAAD,oBAAA5nB,EAAAI,OAAA,GAAAm4B,GAAA,cAI9E,SAAUorB,KAA4B,OAAA/jD,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OACzC,OADyCqL,EAAArL,KAAA,GACnCo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQqpB,GAAAA,EAA+BxmB,SAAUgQ,IAAc,KAAD,mBAAA7hC,EAAAnL,OAAA,GAAAo3B,GAAA,C,oGCIrEqsB,GApBK,WACd,OAAO99D,EAAAA,GAAAA,GAAU,cACrB,EAkBa89D,GAhBK,SAAC95D,EAAwBuT,EAAmBwmD,GAC1D,IAAMj5D,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAErC,GAAAA,EAAIuT,UAAAA,EAAWwmD,KAAAA,KAE1C,OAAO/9D,EAAAA,GAAAA,GAAU,cAAe8E,EACpC,EAUag5D,GARO,SAAC95D,GACjB,IAAMc,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAErC,GAAAA,KAE3B,OAAOhE,EAAAA,GAAAA,GAAU,cAAe8E,EACpC,E,kBCVUk5D,IAAiBvsB,IAAA53B,EAAAA,EAAAA,KAAAC,KAWjBmkD,IAAkBtsB,IAAA93B,EAAAA,EAAAA,KAAAC,KAYlBokD,IAAgBrsB,IAAAh4B,EAAAA,EAAAA,KAAAC,KAahBqkD,IAAgBpsB,IAAAl4B,EAAAA,EAAAA,KAAAC,KAYhBskD,IAAqBnsB,IAAAp4B,EAAAA,EAAAA,KAAAC,KAkBdukD,IAlEjB,SAAUL,KAAiB,IAAAM,EAAA,OAAAzkD,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACvB,OADuBF,EAAAE,KAAA,GACjBs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBC,sBAAsBpnB,GAAAA,EAAaC,UAAU,KAAD,EAEvC,OAFuCp9B,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAEjCo4B,EAAAA,EAAAA,IAAKurB,IAA+B,KAAD,EACvE,OADMQ,EAAqBrkD,EAAA2M,KAAA3M,EAAAE,KAAA,GACrBs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBE,YAAYH,IAAS,KAAD,EACjD,OADiDrkD,EAAAE,KAAA,IAC3Cs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBC,sBAAsBpnB,GAAAA,EAAaE,UAAU,KAAD,GAAAr9B,EAAAE,KAAA,iBAEzE,OAFyEF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAEnEs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa59B,EAAA4L,KAAK,KAAD,oBAAA5L,EAAAI,OAAA,GAAAm4B,GAAA,eAIhD,SAAUyrB,GAAmBlqB,GAAsD,IAAAx2C,EAAA,OAAAsc,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAC/E,OAD+EqL,EAAArL,KAAA,GACzEs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBG,yBAAyBtnB,GAAAA,EAAaC,UAAU,KAAD,EAG7C,OAH6C7xB,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAGvCo4B,EAAAA,EAAAA,IAAKurB,QAA+B7gE,EAAW82C,EAAOlrC,QAAQ0O,UAAWw8B,EAAOlrC,QAAQk1D,MAAM,KAAD,EAC9H,OADMxgE,EAAkBioB,EAAAoB,KAAApB,EAAArL,KAAA,GAClBs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBI,oBAAoBphE,IAAQ,KAAD,EACxD,OADwDioB,EAAArL,KAAA,IAClDs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBG,yBAAyBtnB,GAAAA,EAAaE,UAAU,KAAD,GAAA9xB,EAAArL,KAAA,iBAE5E,OAF4EqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,IAEtEs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAenC,EAAAK,KAAK,KAAD,oBAAAL,EAAAnL,OAAA,GAAAo3B,GAAA,eAIlD,SAAUysB,GAAiBnqB,GAAoD,IAAAx2C,EAAA,OAAAsc,EAAAA,EAAAA,KAAAG,MAAA,SAAAqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OAC3E,OAD2EkM,EAAAlM,KAAA,GACrEs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBK,4BAA4BxnB,GAAAA,EAAaC,UAAU,KAAD,EAGhD,OAHgDhxB,EAAAnM,KAAA,EAAAmM,EAAAlM,KAAA,GAG1Co4B,EAAAA,EAAAA,IAAKurB,GAA+B/pB,EAAOlrC,QAAQg2D,QAAS9qB,EAAOlrC,QAAQ0O,UAAWw8B,EAAOlrC,QAAQk1D,MAAM,KAAD,EAC3I,OADMxgE,EAAkB8oB,EAAAO,KAAAP,EAAAlM,KAAA,GAClBs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBO,aAAavhE,IAAQ,KAAD,EACjD,OADiD8oB,EAAAlM,KAAA,IAC3Cs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBK,4BAA4BxnB,GAAAA,EAAaE,UAAU,KAAD,GAAAjxB,EAAAlM,KAAA,iBAE/E,OAF+EkM,EAAAnM,KAAA,GAAAmM,EAAAR,GAAAQ,EAAA,SAAAA,EAAAlM,KAAA,IAEzEs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBK,4BAA4BxnB,GAAAA,EAAavV,UAAU,KAAD,GAC/E,OAD+Exb,EAAAlM,KAAA,IACzEs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAetB,EAAAR,KAAK,KAAD,oBAAAQ,EAAAhM,OAAA,GAAAs3B,GAAA,eAIlD,SAAUwsB,GAAiBpqB,GAAoD,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAA2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OAEvE,OAFuEwM,EAAAzM,KAAA,EAAAyM,EAAAxM,KAAA,GAEjEs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBQ,4BAA4BhrB,EAAOlrC,QAAQg2D,QAASznB,GAAAA,EAAaC,UAAU,KAAD,EACvG,OADuG1wB,EAAAxM,KAAA,GACjGo4B,EAAAA,EAAAA,IAAKurB,GAAiC/pB,EAAOlrC,QAAQg2D,SAAS,KAAD,EACnE,OADmEl4C,EAAAxM,KAAA,GAC7Ds4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBS,aAAajrB,EAAOlrC,QAAQg2D,UAAU,KAAD,EAClE,OADkEl4C,EAAAxM,KAAA,GAC5Ds4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBQ,4BAA4BhrB,EAAOlrC,QAAQg2D,QAASznB,GAAAA,EAAaE,UAAU,KAAD,EAAA3wB,EAAAxM,KAAA,iBAEvG,OAFuGwM,EAAAzM,KAAA,GAAAyM,EAAAd,GAAAc,EAAA,SAAAA,EAAAxM,KAAA,IAEjGs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAehB,EAAAd,KAAK,KAAD,GAC1C,OAD0Cc,EAAAxM,KAAA,IACpCs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBQ,4BAA4BhrB,EAAOlrC,QAAQg2D,QAASznB,GAAAA,EAAavV,UAAU,KAAD,oBAAAlb,EAAAtM,OAAA,GAAAw3B,GAAA,eAI/G,SAAUusB,KAAqB,IAAAa,EAAAz7D,EAAA,OAAAqW,EAAAA,EAAAA,KAAAG,MAAC,SAADyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,OAC3B,OAD2BsN,EAAAtN,KAAA,GACrBs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBW,wBAAwB9nB,GAAAA,EAAaC,UAAU,KAAD,EAEvC,OAFuC5vB,EAAAvN,KAAA,EAAAuN,EAAAtN,KAAA,GAEjCo4B,EAAAA,EAAAA,IAAK4sB,EAAAA,GAAiBriD,cAAc,KAAD,EAOzE,OAPMmiD,EAAuBx3C,EAAAb,KACvBpjB,EAAuBy7D,EACxB59D,QAAO,SAAA4B,GAAC,OACLA,EAAE6kC,OAASF,EAAAA,GAAasB,eACxBjmC,EAAE6kC,OAASF,EAAAA,GAAa4B,MAAM,IACjCvlC,MAAK,SAACN,EAAGrC,GAAC,OAAKqC,EAAErE,KAAK6E,cAAc7C,EAAEhC,KAAK,IAACmoB,EAAAtN,KAAA,GAE3Cs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBa,eAAe57D,IAAY,KAAD,EACvD,OADuDikB,EAAAtN,KAAA,IACjDs4B,EAAAA,EAAAA,IAAI8rB,GAAAA,EAAmBW,wBAAwB9nB,GAAAA,EAAaE,UAAU,KAAD,GAAA7vB,EAAAtN,KAAA,iBAG3E,OAH2EsN,EAAAvN,KAAA,GAAAuN,EAAA5B,GAAA4B,EAAA,SAAAA,EAAAtN,KAAA,IAGrEs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAeF,EAAA5B,KAAK,KAAD,oBAAA4B,EAAApN,OAAA,GAAA03B,GAAA,eAI3C,SAAUssB,KAAiB,OAAAxkD,EAAAA,EAAAA,KAAAG,MAAC,SAADg6B,GAAA,cAAAA,EAAA95B,KAAA85B,EAAA75B,MAAA,OAC9B,OAD8B65B,EAAA75B,KAAA,GACxBo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ+pB,GAAAA,EAAmBc,eAAgBrB,IAAmB,KAAD,EAC7E,OAD6EhqB,EAAA75B,KAAA,GACvEo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ+pB,GAAAA,EAAmBe,kBAAmBlB,IAAuB,KAAD,EACpF,OADoFpqB,EAAA75B,KAAA,GAC9Eo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ+pB,GAAAA,EAAmBgB,UAAWtB,IAAoB,KAAD,EACzE,OADyEjqB,EAAA75B,KAAA,GACnEo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ+pB,GAAAA,EAAmBiB,QAAStB,IAAkB,KAAD,EACrE,OADqElqB,EAAA75B,KAAA,IAC/Do6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQ+pB,GAAAA,EAAmBkB,QAAStB,IAAkB,KAAD,oBAAAnqB,EAAA35B,OAAA,GAAA43B,GAAA,C,sECzE/DytB,IAAmBjuB,IAAA53B,EAAAA,EAAAA,KAAAC,KAYnB6lD,IAAwBhuB,IAAA93B,EAAAA,EAAAA,KAAAC,KAWxBm7B,IAAWpD,IAAAh4B,EAAAA,EAAAA,KAAAC,KAIJ8lD,IA3BjB,SAAUF,KAAmB,OAAA7lD,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAErB,OAFqBF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,GAEfo4B,EAAAA,EAAAA,IAAK1tB,EAAAA,GAAe0V,6BAA6B,KAAD,EAEtD,OADAj9B,EAAAA,EAAKi9B,6BAA4B,GAAMtgB,EAAAE,KAAA,GACjCs4B,EAAAA,EAAAA,IAAIotB,GAAAA,EAAoCC,MAAK,IAAO,KAAD,EACzD,OADyD7lD,EAAAE,KAAA,GACnDs4B,EAAAA,EAAAA,IAAIotB,GAAAA,EAAoCE,kBAAkB,KAAD,EAAA9lD,EAAAE,KAAA,iBAE/D,OAF+DF,EAAAC,KAAA,GAAAD,EAAA4L,GAAA5L,EAAA,SAAAA,EAAAE,KAAA,IAEzDs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAe1N,EAAA4L,KAAK,KAAD,GAC1C,OAD0C5L,EAAAE,KAAA,IACpCs4B,EAAAA,EAAAA,IAAIotB,GAAAA,EAAoCG,kBAAkB,KAAD,oBAAA/lD,EAAAI,OAAA,GAAAm4B,GAAA,eAIvE,SAAUmtB,KAAwB,IAAAj5D,EAAA,OAAAmT,EAAAA,EAAAA,KAAAG,MAAC,SAADwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAEgB,OAFhBqL,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAEsBo4B,EAAAA,EAAAA,IAAK1tB,EAAAA,GAAeyV,gCAAgC,KAAD,EAEnG,OAFK5zB,EAAkC8e,EAAAoB,MACvC60B,EAAAA,EAAAA,QAAO/0C,EAAK9J,KAAM8J,EAAKpH,MAAMkmB,EAAArL,KAAA,GACvBs4B,EAAAA,EAAAA,IAAIotB,GAAAA,EAAoCI,uBAAuB,KAAD,EAAAz6C,EAAArL,KAAA,gBAEpE,OAFoEqL,EAAAtL,KAAA,EAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,IAE9Ds4B,EAAAA,EAAAA,IAAIotB,GAAAA,EAAoCK,uBAAuB,KAAD,GACpE,OADoE16C,EAAArL,KAAA,IAC9Ds4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAenC,EAAAK,KAAK,KAAD,oBAAAL,EAAAnL,OAAA,GAAAo3B,GAAA,cAIlD,SAAUwD,KAAW,OAAAp7B,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OACjB,OADiBkM,EAAAlM,KAAA,GACXs4B,EAAAA,EAAAA,IAAIotB,GAAAA,EAAoCrwD,SAAS,KAAD,mBAAA6W,EAAAhM,OAAA,GAAAs3B,GAAA,CAGnD,SAAUiuB,KAAiC,OAAA/lD,EAAAA,EAAAA,KAAAG,MAAC,SAAD2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OAC9C,OAD8CwM,EAAAxM,KAAA,GACxCw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQqrB,GAAAA,EAAoCM,gBAAiBT,IAAqB,KAAD,EAClG,OADkG/4C,EAAAxM,KAAA,GAC5Fw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQqrB,GAAAA,EAAoCO,qBAAsBT,IAA0B,KAAD,EAC5G,OAD4Gh5C,EAAAxM,KAAA,GACtGo6B,EAAAA,EAAAA,IAAUE,EAAAA,GAAe/Z,OAAQua,IAAa,KAAD,mBAAAtuB,EAAAtM,OAAA,GAAAw3B,GAAA,C,0GC+C7CwuB,IAAoB5uB,IAAA53B,EAAAA,EAAAA,KAAAC,KAcpBwmD,IAAwB3uB,IAAA93B,EAAAA,EAAAA,KAAAC,KA2BxBymD,IAA+B1uB,IAAAh4B,EAAAA,EAAAA,KAAAC,KAU/B0mD,IAAqBzuB,IAAAl4B,EAAAA,EAAAA,KAAAC,KAwBrB2mD,IAAexuB,IAAAp4B,EAAAA,EAAAA,KAAAC,KAaf4mD,IAAqBvuB,IAAAt4B,EAAAA,EAAAA,KAAAC,KASrB6mD,IAActuB,IAAAx4B,EAAAA,EAAAA,KAAAC,KAYd8mD,IAAoBjqB,IAAA98B,EAAAA,EAAAA,KAAAC,KAYpB+mD,IAAqBjqB,IAAA/8B,EAAAA,EAAAA,KAAAC,KAYrBgnD,IAAsBhqB,IAAAj9B,EAAAA,EAAAA,KAAAC,KAYfinD,IAjNXC,GAAwB,CAACC,GAAAA,EAAgBC,WAAYD,GAAAA,EAAgBE,aAErEC,GAAqB,SAACC,GAAwB,MAAsB,CACtEroD,MAAOqoD,EAAYC,kBAAoBL,GAAAA,EAAgBC,WAAa,eAAiB,eACrFK,YAAaF,EAAYroD,MACzBnP,KAAM23D,GAAAA,EAAmBC,QACzBC,KAAMpzD,+CACNqzD,mBAAoBN,EAAYM,mBAChCL,gBAAiBD,EAAYC,gBAChC,EAEKM,GAAiB,SAACC,GAAgB,MAAsB,CAC1D7oD,MAAO,UACPuoD,YAAaM,EAAQ7oD,MACrBnP,KAAM23D,GAAAA,EAAmBM,QACzBJ,KAAMG,EAAQH,KACdK,SAAUF,EAAQE,SAClBJ,mBAAoBE,EAAQF,mBAC5BK,aAAcH,EAAQG,aACtBC,YAAaJ,EAAQI,YACxB,EAEKC,GAAoB,SAACC,GAAsB,MAAsB,CACnEnpD,MAAO,aACPuoD,YAAaY,EAAWnpD,MACxBnP,KAAM23D,GAAAA,EAAmBY,WACzBV,KAAMS,EAAWT,KACjBK,SAAUI,EAAWJ,SACrBJ,mBAAoBQ,EAAWR,mBAClC,EAED,SAASU,GAAkBC,EAAoBC,EAA2BV,GACtE,IAAMW,GAAeC,EAAAA,GAAAA,UAAQC,EAAAA,GAAAA,SAAQJ,EAASA,UAAU,SAAAx8D,GAAC,IAAA68D,EAAA,OACvC,QADuCA,EACrD78D,EAAE08D,oBAAY,IAAAG,OAAA,EAAdA,EAAgB3hE,IAAIogE,GAAmB,KAIvCwB,EAAsB5B,GAAsBhgE,KAAI,SAAA6hE,GAAQ,OACxDl7D,EAAAA,GAAAA,MAAK66D,GAAc,SAAAzuC,GAAI,OAAIA,EAAKutC,kBAAoBuB,CAAQ,GAAC,IAGjEC,EAA8CF,EAAmBG,GAAAjhE,EAAAA,EAAAA,GAAAghE,EAAA,GAA1DE,EAAgBD,EAAA,GAAEE,EAAiBF,EAAA,GAc1C,OAZIR,EAAYvlE,OAAS,GAAKgmE,GAAoBC,IAC9CL,EAAsB,EAAA3gE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACf+gE,GAAgB,IACnBzB,YAAY,GAAD3jE,OAAqB,OAAhBolE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBzB,YAAW,MAAA3jE,OAAsB,OAAjBqlE,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB1B,aAGrED,gBAAiBL,GAAAA,EAAgBC,WACjCloD,MAAO,qCAKRypD,EAAAA,GAAAA,SAAQ,CACXZ,EACMD,GAAeC,QACf5kE,GAASW,QAAAuF,EAAAA,GAAAA,GACZo/D,EAAYvhE,IAAIkhE,MAAkB/+D,EAAAA,GAAAA,GAClCy/D,IAEX,CAEA,SAAUvC,KAAoB,IAAAkC,EAAAV,EAAAS,EAAA3sB,EAAAC,EAAA,OAAA/7B,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKS,OALTF,EAAAE,KAAA,GAKe27B,EAAAA,EAAAA,IAAI,EACzCvD,EAAAA,EAAAA,IAAKh4B,GAAAA,EAAeG,mBACpB63B,EAAAA,EAAAA,IAAKh4B,GAAAA,EAAeE,eACpB83B,EAAAA,EAAAA,IAAKh4B,GAAAA,EAAeC,iBACrB,KAAD,EAJ6B,OAI7Bm7B,EAAA17B,EAAA2M,KAAAgvB,GAAA9zC,EAAAA,EAAAA,GAAA6zC,EAAA,GAJD4sB,EAAW3sB,EAAA,GAAEisB,EAAOjsB,EAAA,GAAE0sB,EAAQ1sB,EAAA,GAAA37B,EAAAG,OAAA,SAMxBioD,GAAkBC,EAAUC,EAAaV,IAAQ,wBAAA5nD,EAAAI,OAAA,GAAAm4B,GAAA,CAG5D,SAAU8tB,GAAyBvsB,GAAiE,IAAAmvB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA1pD,EAAAA,EAAAA,KAAAG,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAArL,MAAA,OAO9E,OAP8EqL,EAAAtL,KAAA,EAAAsL,EAAArL,KAAA,GAOxE27B,EAAAA,EAAAA,IAAI,EACpBvD,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYE,kBAAmB,CAAC,IACrC6W,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYE,kBAAmB,CAAE3S,WAAY,CAACy6C,GAAAA,GAAaC,YAChElxB,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYE,kBAAmB,CAAE3S,WAAY,CAACy6C,GAAAA,GAAaE,cAChEnxB,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYE,kBAAmB,CAAE3S,WAAY,CAACy6C,GAAAA,GAAaG,cACjE,KAAD,EAEF,OAFET,EAAA19C,EAAAoB,KAAAu8C,GAAArhE,EAAAA,EAAAA,GAAAohE,EAAA,GATEE,EAAYD,EAAA,GACZE,EAAgBF,EAAA,GAChBG,EAAkBH,EAAA,GAClBI,EAAiBJ,EAAA,GAAA39C,EAAArL,KAAA,IAQfs4B,EAAAA,EAAAA,IACFmxB,GAAAA,EAAYC,6BAA2BvgB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EACpCwgB,GAAAA,EAAgBC,IAAMX,GACtBU,GAAAA,EAAgBL,QAAUJ,GAC1BS,GAAAA,EAAgBJ,UAAYJ,GAC5BQ,GAAAA,EAAgBH,SAAWJ,KAElC,KAAD,GAAA/9C,EAAArL,KAAA,iBAED,OAFCqL,EAAAtL,KAAA,GAAAsL,EAAAK,GAAAL,EAAA,SAAAA,EAAArL,KAAA,IAEKs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAaryB,EAAAK,KAAK,KAAD,oBAAAL,EAAAnL,OAAA,GAAAo3B,GAAA,eAIhD,SAAU8uB,KAA+B,IAAAyD,EAAA,OAAAnqD,EAAAA,EAAAA,KAAAG,MAAC,SAADqM,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAlM,MAAA,OAEA,OAFAkM,EAAAnM,KAAA,EAAAmM,EAAAlM,KAAA,EAEMkmD,KAAuB,KAAD,EAE7D,OAFM2D,EAAwB39C,EAAAO,KAAAP,EAAAlM,KAAA,GAExBs4B,EAAAA,EAAAA,IAAImxB,GAAAA,EAAYK,6BAA6BD,IAAS,KAAD,EAAA39C,EAAAlM,KAAA,gBAE3D,OAF2DkM,EAAAnM,KAAA,EAAAmM,EAAAR,GAAAQ,EAAA,SAAAA,EAAAlM,KAAA,IAErDs4B,EAAAA,EAAAA,IAAImxB,GAAAA,EAAYK,6BAA6B,KAAK,KAAD,oBAAA59C,EAAAhM,OAAA,GAAAs3B,GAAA,cAI/D,SAAU6uB,GAAsBzsB,GAAuD,IAAA/qB,EAAAk7C,EAAA,OAAArqD,EAAAA,EAAAA,KAAAG,MAAA,SAAA2M,GAAA,cAAAA,EAAAzM,KAAAyM,EAAAxM,MAAA,OACrD,OADqDwM,EAAAxM,KAAA,GAC/C84B,EAAAA,EAAAA,KAChC,SAAChyC,GAAW,IAAAkjE,EAAA,QAA+D,QAAzDA,EAACljE,EAAEijE,KAAKA,KAAKnwB,EAAOlrC,QAAQu7D,KAAKC,IAAItwB,EAAOlrC,QAAQN,aAAK,IAAA47D,IAAxDA,EAA0DnnE,OAAM,IACrF,KAAD,EAF0B,IAAA2pB,EAAAC,KAIV,CAADD,EAAAxM,KAAA,eAAAwM,EAAAvM,OAAA,iBAOS,OAHnB4O,EAAWs7C,GAAAA,GAAkBvwB,EAAOlrC,QAAQu7D,KAAIz9C,EAAAzM,KAAA,EAAAyM,EAAAxM,KAAA,GAGvBo4B,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYC,QAAS,CACjDhd,MAAO5W,EAAAA,GAAU08D,WACjB/lD,OAAQu1B,EAAOlrC,QAAQN,KAAOV,EAAAA,GAAU08D,WAAa18D,EAAAA,GAAU08D,WAC/Dx7C,WAAYC,EAAW,CAACA,QAAY/rB,IACrC,KAAD,EAEF,OANMinE,EAAYv9C,EAAAC,KAAAD,EAAAxM,KAAA,IAMZs4B,EAAAA,EAAAA,IAAImxB,GAAAA,EAAYY,kBAAkBN,EAAMnwB,EAAOlrC,QAAQN,KAAMwrC,EAAOlrC,QAAQu7D,MAAM,KAAD,GAAAz9C,EAAAxM,KAAA,iBAEvF,OAFuFwM,EAAAzM,KAAA,GAAAyM,EAAAd,GAAAc,EAAA,SAAAA,EAAAxM,KAAA,IAEjFs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAalxB,EAAAd,KAAK,KAAD,oBAAAc,EAAAtM,OAAA,GAAAw3B,GAAA,eAIhD,SAAU4uB,GAAgB1sB,GAAiD,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAAyN,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,OAEnE,OAFmEsN,EAAAvN,KAAA,EAAAuN,EAAAtN,KAAA,GAE7Do4B,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYM,WAAYiY,EAAOlrC,QAAQH,eAAe,KAAD,EAEhE,OAFgE+e,EAAAtN,KAAA,GAE1Ds4B,EAAAA,EAAAA,IAAImxB,GAAAA,EAAYa,iBAAiB,KAAD,EAEtC,OAFsCh9C,EAAAtN,KAAA,GAEhCs4B,EAAAA,EAAAA,IAAImxB,GAAAA,EAAYc,iBAAiB3wB,EAAOlrC,QAAQN,KAAMwrC,EAAOlrC,QAAQu7D,MAAM,KAAD,EAChF,OADgF38C,EAAAtN,KAAA,GAC1Es4B,EAAAA,EAAAA,IAAImxB,GAAAA,EAAYe,8BAA8B,KAAD,EAAAl9C,EAAAtN,KAAA,iBAEnD,OAFmDsN,EAAAvN,KAAA,GAAAuN,EAAA5B,GAAA4B,EAAA,SAAAA,EAAAtN,KAAA,IAE7Cs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAapwB,EAAA5B,KAAK,KAAD,oBAAA4B,EAAApN,OAAA,GAAA03B,GAAA,eAIhD,SAAU2uB,GAAsB3sB,GAAuD,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAAg6B,GAAA,cAAAA,EAAA95B,KAAA85B,EAAA75B,MAAA,OAE/E,OAF+E65B,EAAA95B,KAAA,EAAA85B,EAAA75B,KAAA,GAEzEo4B,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYM,WAAYiY,EAAOlrC,QAAQH,eAAe,KAAD,EAChE,OADgEsrC,EAAA75B,KAAA,GAC1Do4B,EAAAA,EAAAA,IAAKrX,GAAAA,EAAQ+hB,KAAM7hB,EAAAA,GAAOwpC,WAAW,KAAD,EAAA5wB,EAAA75B,KAAA,gBAE1C,OAF0C65B,EAAA95B,KAAA,EAAA85B,EAAAnuB,GAAAmuB,EAAA,SAAAA,EAAA75B,KAAA,IAEpCs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAamwB,cAAa7D,EAAAnuB,KAAK,KAAD,oBAAAmuB,EAAA35B,OAAA,GAAA43B,GAAA,cAIhD,SAAU0uB,GAAe5sB,GAAuD,IAAA0B,EAAA1Z,EAAAnuB,EAAAs2D,EAAA,OAAArqD,EAAAA,EAAAA,KAAAG,MAAA,SAAAm6B,GAAA,cAAAA,EAAAj6B,KAAAi6B,EAAAh6B,MAAA,OAI3C,OAJ2Cg6B,EAAAj6B,KAAA,EAAAu7B,EAE7B1B,EAAOlrC,QAA1CkzB,EAAiB0Z,EAAjB1Z,kBAAmBnuB,EAAW6nC,EAAX7nC,YAAWumC,EAAAh6B,KAAA,GAEHo4B,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYG,eAAgBI,EAAmBnuB,GAAa,KAAD,EAEnG,OAFMs2D,EAAoB/vB,EAAAvtB,KAAAutB,EAAAh6B,KAAA,GAEpBs4B,EAAAA,EAAAA,IAAImxB,GAAAA,EAAYiB,yBAAyBX,IAAO,KAAD,EAAA/vB,EAAAh6B,KAAA,gBAErD,OAFqDg6B,EAAAj6B,KAAA,EAAAi6B,EAAAtuB,GAAAsuB,EAAA,SAAAA,EAAAh6B,KAAA,IAE/Co4B,EAAAA,EAAAA,IAAKrX,GAAAA,EAAQC,QAASC,EAAAA,GAAOwpC,WAAW,KAAD,oBAAAzwB,EAAA95B,OAAA,GAAA83B,GAAA,cAIrD,SAAUyuB,GAAqB7sB,GAAsD,OAAAl6B,EAAAA,EAAAA,KAAAG,MAAA,SAAAs6B,GAAA,cAAAA,EAAAp6B,KAAAo6B,EAAAn6B,MAAA,OAE7E,OAF6Em6B,EAAAp6B,KAAA,EAAAo6B,EAAAn6B,KAAA,GAEvEo4B,EAAAA,EAAAA,IAAK/W,GAAAA,EAAY3K,gBAAiBkjB,EAAOlrC,QAAQioB,YAAY,KAAD,EAE9DijB,EAAOlrC,QAAQ64D,MACf38C,OAAO5mB,KAAK41C,EAAOlrC,QAAQ64D,KAAM,SACpCptB,EAAAn6B,KAAA,gBAED,OAFCm6B,EAAAp6B,KAAA,EAAAo6B,EAAAzuB,GAAAyuB,EAAA,SAAAA,EAAAn6B,KAAA,IAEKs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAapD,MAAKgwB,EAAAzuB,KAAK,KAAD,oBAAAyuB,EAAAj6B,OAAA,GAAAg4B,GAAA,cAIxC,SAAUwuB,GAAsB9sB,GAAuD,IAAAimB,EAAAj+B,EAAArb,EAAAokD,EAAAp+D,EAAA,OAAAmT,EAAAA,EAAAA,KAAAG,MAAA,SAAAmlC,GAAA,cAAAA,EAAAjlC,KAAAilC,EAAAhlC,MAAA,OAIpD,OAJoD6/C,EACpBjmB,EAAOlrC,QAA9DkzB,EAAiBi+B,EAAjBj+B,kBAAmBrb,EAAqBs5C,EAArBt5C,sBAAuBokD,EAAQ9K,EAAR8K,SAAQ3lB,EAAAjlC,KAAA,EAAAilC,EAAAhlC,KAAA,GAGrBo4B,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYvgB,iBAAkB8gB,EAAmBrb,GAAsB,OAAzGha,EAAoBy4C,EAAAv4B,KAExB60B,IAAO/0C,EAAK9J,KAAMkoE,GAAU3lB,EAAAhlC,KAAA,gBAE5B,OAF4BglC,EAAAjlC,KAAA,EAAAilC,EAAAt5B,GAAAs5B,EAAA,SAAAA,EAAAhlC,KAAA,IAEtBs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAew3B,EAAAt5B,KAAK,KAAD,oBAAAs5B,EAAA9kC,OAAA,GAAAs8B,GAAA,cAIlD,SAAUmqB,GAAuB/sB,GAAwD,IAAAgxB,EAAAr+D,EAAA,OAAAmT,EAAAA,EAAAA,KAAAG,MAAA,SAAA6mC,GAAA,cAAAA,EAAA3mC,KAAA2mC,EAAA1mC,MAAA,OAItD,OAHvB4qD,EAAahxB,EAAOlrC,QAApBk8D,SAAQlkB,EAAA3mC,KAAA,EAAA2mC,EAAA1mC,KAAA,GAGqBo4B,EAAAA,EAAAA,IAAK/W,GAAAA,EAAYQ,kBAAmB+oC,EAASr8D,eAAe,KAAD,EAAxFhC,EAAoBm6C,EAAAj6B,KAExB60B,IAAO/0C,EAAK9J,KAAK,gBAADgB,OAAkBuH,IAAO4/D,EAASC,cAAc5/D,OAAOyC,EAAAA,GAAUo9D,YAAW,oBAAmBpkB,EAAA1mC,KAAA,gBAE/G,OAF+G0mC,EAAA3mC,KAAA,EAAA2mC,EAAAh7B,GAAAg7B,EAAA,SAAAA,EAAA1mC,KAAA,IAEzGs4B,EAAAA,EAAAA,IAAI/qB,EAAAA,IAAaC,gBAAek5B,EAAAh7B,KAAK,KAAD,oBAAAg7B,EAAAxmC,OAAA,GAAAu8B,GAAA,cAI3C,SAAUmqB,KAAS,OAAAlnD,EAAAA,EAAAA,KAAAG,MAAC,SAADwnC,GAAA,cAAAA,EAAAtnC,KAAAsnC,EAAArnC,MAAA,OACtB,OADsBqnC,EAAArnC,KAAA,GAChBo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQovB,GAAAA,EAAYsB,6BAA8B3E,IAAiC,KAAD,EAClG,OADkG/e,EAAArnC,KAAA,GAC5Fw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQovB,GAAAA,EAAYc,kBAAmBlE,IAAuB,KAAD,EAC9E,OAD8Ehf,EAAArnC,KAAA,GACxEw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQovB,GAAAA,EAAYe,4BAA6BrE,IAA0B,KAAD,EAC3F,OAD2F9e,EAAArnC,KAAA,GACrFw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQovB,GAAAA,EAAY9nC,YAAa2kC,IAAiB,KAAD,EAClE,OADkEjf,EAAArnC,KAAA,IAC5Do6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQovB,GAAAA,EAAYuB,kBAAmBxE,IAAgB,KAAD,GACtE,OADsEnf,EAAArnC,KAAA,IAChEo6B,EAAAA,EAAAA,KAAUC,EAAAA,EAAAA,SAAQovB,GAAAA,EAAY/yC,iBAAkB+vC,IAAsB,KAAD,GAC3E,OAD2Epf,EAAArnC,KAAA,IACrEw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQovB,GAAAA,EAAYwB,kBAAmB1E,IAAuB,KAAD,GAC9E,OAD8Elf,EAAArnC,KAAA,IACxEw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQovB,GAAAA,EAAY3oD,kBAAmB4lD,IAAuB,KAAD,GAC9E,OAD8Erf,EAAArnC,KAAA,IACxEw6B,EAAAA,EAAAA,KAAWH,EAAAA,EAAAA,SAAQovB,GAAAA,EAAY5nC,mBAAoB8kC,IAAwB,KAAD,oBAAAtf,EAAAnnC,OAAA,GAAAy8B,GAAA,C,gFC1KnEuuB,IAAV,SAAUA,KAAS,OAAAxrD,EAAAA,EAAAA,KAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACtB,OADsBF,EAAAE,KAAA,GAChBmrD,EAAAA,EAAAA,IAAKhzB,GAAoB,KAAD,EAC9B,OAD8Br4B,EAAAE,KAAA,GACxBmrD,EAAAA,EAAAA,IAAKC,EAAAA,GAAc,KAAD,EACxB,OADwBtrD,EAAAE,KAAA,GAClBmrD,EAAAA,EAAAA,IAAKpwB,GAAwB,KAAD,EAClC,OADkCj7B,EAAAE,KAAA,GAC5BmrD,EAAAA,EAAAA,IAAKE,EAAAA,GAAgB,KAAD,EAC1B,OAD0BvrD,EAAAE,KAAA,IACpBmrD,EAAAA,EAAAA,IAAK9vB,GAAsB,KAAD,GAChC,OADgCv7B,EAAAE,KAAA,IAC1BmrD,EAAAA,EAAAA,IAAKG,GAAAA,GAAc,KAAD,GACxB,OADwBxrD,EAAAE,KAAA,IAClBmrD,EAAAA,EAAAA,IAAKI,EAAAA,GAAsB,KAAD,GAChC,OADgCzrD,EAAAE,KAAA,IAC1BmrD,EAAAA,EAAAA,IAAKvuB,IAAoB,KAAD,GAC9B,OAD8B98B,EAAAE,KAAA,IACxBmrD,EAAAA,EAAAA,IAAKljB,IAAoB,KAAD,GAG9B,OAH8BnoC,EAAAE,KAAA,IAGxBmrD,EAAAA,EAAAA,IAAKK,GAAAA,GAAuB,KAAD,GACjC,OADiC1rD,EAAAE,KAAA,IAC3BmrD,EAAAA,EAAAA,IAAKM,GAAAA,GAAyB,KAAD,GAEnC,OAFmC3rD,EAAAE,KAAA,IAE7BmrD,EAAAA,EAAAA,IAAKO,GAAAA,GAAmB,KAAD,GAC7B,OAD6B5rD,EAAAE,KAAA,IACvBmrD,EAAAA,EAAAA,IAAK9iB,IAA0B,KAAD,GACpC,OADoCvoC,EAAAE,KAAA,IAC9BmrD,EAAAA,EAAAA,IAAKQ,GAAAA,GAAkB,KAAD,GAC5B,OAD4B7rD,EAAAE,KAAA,IACtBmrD,EAAAA,EAAAA,IAAKS,GAAAA,GAAmB,KAAD,GAC7B,OAD6B9rD,EAAAE,KAAA,IACvBmrD,EAAAA,EAAAA,IAAKtiB,IAAqB,KAAD,GAC/B,OAD+B/oC,EAAAE,KAAA,IACzBmrD,EAAAA,EAAAA,IAAKU,GAAAA,GAA4B,KAAD,GACtC,OADsC/rD,EAAAE,KAAA,IAChCmrD,EAAAA,EAAAA,IAAKW,GAAAA,GAAkB,KAAD,GAC5B,OAD4BhsD,EAAAE,KAAA,IACtBmrD,EAAAA,EAAAA,IAAKY,GAAAA,GAAgB,KAAD,GAC1B,OAD0BjsD,EAAAE,KAAA,IACpBmrD,EAAAA,EAAAA,IAAKa,GAAAA,GAAmB,KAAD,GAC7B,OAD6BlsD,EAAAE,KAAA,IACvBmrD,EAAAA,EAAAA,IAAKc,GAAAA,IAAmB,KAAD,GAC7B,OAD6BnsD,EAAAE,KAAA,IACvBmrD,EAAAA,EAAAA,IAAKe,GAAAA,GAAqB,KAAD,GAC/B,OAD+BpsD,EAAAE,KAAA,IACzBmrD,EAAAA,EAAAA,IAAKgB,GAAAA,GAAsB,KAAD,GAChC,OADgCrsD,EAAAE,KAAA,IAC1BmrD,EAAAA,EAAAA,IAAKiB,GAAAA,GAAqB,KAAD,GAC/B,OAD+BtsD,EAAAE,KAAA,IACzBmrD,EAAAA,EAAAA,IAAKkB,GAAAA,GAA2B,KAAD,GACrC,OADqCvsD,EAAAE,KAAA,IAC/BmrD,EAAAA,EAAAA,IAAKmB,GAAAA,GAA8B,KAAD,GACxC,OADwCxsD,EAAAE,KAAA,IAClCmrD,EAAAA,EAAAA,IAAKoB,GAAAA,GAAiB,KAAD,GAC3B,OAD2BzsD,EAAAE,KAAA,IACrBmrD,EAAAA,EAAAA,IAAKjhB,IAAc,KAAD,GACxB,OADwBpqC,EAAAE,KAAA,IAClBmrD,EAAAA,EAAAA,IAAKngB,IAAqB,KAAD,GAC/B,OAD+BlrC,EAAAE,KAAA,IACzBmrD,EAAAA,EAAAA,IAAKqB,GAAAA,GAAuB,KAAD,GACjC,OADiC1sD,EAAAE,KAAA,IAC3BmrD,EAAAA,EAAAA,IAAKsB,GAAAA,GAA8B,KAAD,GACxC,OADwC3sD,EAAAE,KAAA,IAClCmrD,EAAAA,EAAAA,IAAK7e,IAAyB,KAAD,GACnC,OADmCxsC,EAAAE,KAAA,IAC7BmrD,EAAAA,EAAAA,IAAK3d,IAAoB,KAAD,GAC9B,OAD8B1tC,EAAAE,KAAA,IACxBmrD,EAAAA,EAAAA,IAAKtN,IAAuB,KAAD,GACjC,OADiC/9C,EAAAE,KAAA,IAC3BmrD,EAAAA,EAAAA,IAAK9L,IAAuB,KAAD,GACjC,OADiCv/C,EAAAE,KAAA,IAC3BmrD,EAAAA,EAAAA,IAAKuB,GAAAA,GAA0B,KAAD,GACpC,OADoC5sD,EAAAE,KAAA,IAC9BmrD,EAAAA,EAAAA,IAAK3J,IAAuB,KAAD,GACjC,OADiC1hD,EAAAE,KAAA,IAC3BmrD,EAAAA,EAAAA,IAAKwB,GAAAA,GAAmB,KAAD,GAC7B,OAD6B7sD,EAAAE,KAAA,IACvBmrD,EAAAA,EAAAA,IAAKyB,GAAAA,GAAyB,KAAD,GACnC,OADmC9sD,EAAAE,KAAA,IAC7BmrD,EAAAA,EAAAA,IAAK0B,GAAAA,GAAoB,KAAD,GAC9B,OAD8B/sD,EAAAE,KAAA,IACxBmrD,EAAAA,EAAAA,IAAK7I,IAAa,KAAD,GACvB,OADuBxiD,EAAAE,KAAA,IACjBmrD,EAAAA,EAAAA,IAAKtI,IAAiB,KAAD,GAC3B,OAD2B/iD,EAAAE,KAAA,IACrBmrD,EAAAA,EAAAA,IAAKlV,IAA6B,KAAD,GACvC,OADuCn2C,EAAAE,KAAA,IACjCmrD,EAAAA,EAAAA,IAAKjI,IAAwB,KAAD,GAClC,OADkCpjD,EAAAE,KAAA,IAC5BmrD,EAAAA,EAAAA,IAAK2B,GAAAA,GAAmB,KAAD,GAC7B,OAD6BhtD,EAAAE,KAAA,IACvBmrD,EAAAA,EAAAA,IAAK7H,IAAsB,KAAD,GAChC,OADgCxjD,EAAAE,KAAA,IAC1BmrD,EAAAA,EAAAA,IAAK1H,IAA8B,KAAD,GACxC,OADwC3jD,EAAAE,KAAA,IAClCmrD,EAAAA,EAAAA,IAAK4B,GAAAA,GAAqB,KAAD,GAC/B,OAD+BjtD,EAAAE,KAAA,IACzBmrD,EAAAA,EAAAA,IAAK6B,GAAAA,GAAyB,KAAD,GACnC,OADmCltD,EAAAE,KAAA,KAC7BmrD,EAAAA,EAAAA,IAAK8B,GAAAA,GAAwB,KAAD,IAClC,OADkCntD,EAAAE,KAAA,KAC5BmrD,EAAAA,EAAAA,IAAK+B,GAAAA,GAAqB,KAAD,IAC/B,OAD+BptD,EAAAE,KAAA,KACzBmrD,EAAAA,EAAAA,IAAKgC,GAAAA,GAAoB,KAAD,IAC9B,OAD8BrtD,EAAAE,KAAA,KACxBmrD,EAAAA,EAAAA,IAAKiC,GAAAA,GAA8B,KAAD,IACxC,OADwCttD,EAAAE,KAAA,KAClCmrD,EAAAA,EAAAA,IAAKkC,GAAAA,GAA2B,KAAD,IACrC,OADqCvtD,EAAAE,KAAA,KAC/BmrD,EAAAA,EAAAA,IAAKjH,IAAmB,KAAD,IAC7B,OAD6BpkD,EAAAE,KAAA,KACvBmrD,EAAAA,EAAAA,IAAKmC,GAAAA,GAAkB,KAAD,IAC5B,OAD4BxtD,EAAAE,KAAA,KACtBmrD,EAAAA,EAAAA,IAAKoC,GAAAA,GAAc,KAAD,IACxB,OADwBztD,EAAAE,KAAA,KAClBmrD,EAAAA,EAAAA,IAAK1F,IAAmC,KAAD,IAC7C,OAD6C3lD,EAAAE,KAAA,KACvCmrD,EAAAA,EAAAA,IAAKqC,GAAAA,GAAe,KAAD,IACzB,OADyB1tD,EAAAE,KAAA,KACnBmrD,EAAAA,EAAAA,IAAKsC,GAAAA,GAAa,KAAD,IACvB,OADuB3tD,EAAAE,KAAA,KACjBmrD,EAAAA,EAAAA,IAAKvE,IAAW,KAAD,IACrB,OADqB9mD,EAAAE,KAAA,KACfmrD,EAAAA,EAAAA,IAAKuC,GAAAA,GAAe,KAAD,IACzB,OADyB5tD,EAAAE,KAAA,KACnBmrD,EAAAA,EAAAA,IAAKwC,GAAAA,GAAY,KAAD,IACtB,OADsB7tD,EAAAE,KAAA,KAChBmrD,EAAAA,EAAAA,IAAKyC,GAAAA,GAAqB,KAAD,IAC/B,OAD+B9tD,EAAAE,KAAA,KACzBmrD,EAAAA,EAAAA,IAAK0C,GAAAA,IAAY,KAAD,qBAAA/tD,EAAAI,OAAA,GAAAm4B,GAAA,CCpI1B,IAAMy1B,GAAmBljD,OAAOmjD,sCAAwCC,EAAAA,GAClEC,IAAiBC,EAAAA,EAAAA,MAEjBpmD,IAAQqmD,EAAAA,EAAAA,KACVC,EAAAA,EAAAA,KACA,CAAC,EACDN,IACIO,EAAAA,EAAAA,IACIJ,GACAK,EAAAA,KAKZL,GAAeM,IAAIrD,G,2JCZNsD,EAAqB,CAC9BC,oBAkGJ,SAA6B/5D,EAAgBvG,GACzC,IAAMk6B,EAAe,CACjBC,QAASn6B,GAGb,OAAOtI,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,0BAA0B,CAC5EhK,OAAQ,OAAQ8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAI4M,GAAmB2zB,KAErE,EAzGIqmC,sBAyJJ,SAA+Bh6D,EAAgBvG,GAC3C,IAAMk6B,EAAe,CACjBC,QAASn6B,GAGb,OAAOtI,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,iCAAiC,CACtEhK,OAAQ,OAAQ8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAI4M,GAAmB2zB,GAAY,IAAEsmC,oBAAoB,MAGvG,EAlKIC,2BAoKJ,WACI,OAAO/oE,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,uCAC1D,EArKI06D,eAwIJ,SAAwBt1D,EAAmBC,GACvC,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,GAElG,EA3IIs1D,sBA6IJ,SAA+Bv1D,EAAmBC,GAA6D,IAAnCyL,EAAOriB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAEmsE,aAAa,GAC3FxsE,GAAMmI,EAAAA,EAAAA,GAAW,GAADjH,OACf0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,YAClHyL,GAGJ,OAAOpf,EAAAA,EAAAA,GAAUtD,EACrB,EAnJIysE,sBAwHJ,SAA+Bj+C,GAC3B,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,8CAAA1Q,OAA6CstB,EAAoB,+BAE9G,EA3HIk+C,8BA6HJ,SAAuCxmC,GACnC,OAAO5iC,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,uDAAuD,CAC5FhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEu8B,QAAAA,KAE/B,EAlIIymC,aAmKJ,SAAsB31D,EAAmBC,GACrC,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,cAE1H,EAtKI21D,aA8KJ,SAAsB51D,EAAmBC,GACrC,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,cAE1H,EAjLI41D,yBAmLJ,SAAkC71D,EAAmBC,GACjD,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,6BAE1H,EAtLI61D,gBAsKJ,SAAyB91D,EAAmBC,GACxC,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,cAE1H,EAzKI81D,aAyCJ,SAAsBnsE,EAAM0E,GACxB,OAAOhC,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,sBAAsB,CAC3DhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CACjBqjE,UAAWpsE,EAAKwzC,UAAUlZ,MAC1B/gB,UAAWvZ,EAAKwzC,UAAUj6B,UAC1BC,SAAUxZ,EAAKwzC,UAAUh6B,SACzB2hB,YAAan7B,EAAKwzC,UAAU64B,YAC5BC,iBAAkB5nE,EAAQ1C,KAC1BuqE,6BAA8B7nE,EAAQiG,aAAe,MACrD6hE,gBAAiB9nE,EAAQ+nE,MAAQ,WACjCC,eAAgBhoE,EAAQioE,QACxBC,eAAgBloE,EAAQmoE,YAE7B,EAEP,EAzDIC,aA+LJ,SAAsB12D,EAAmBC,GACrC,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,qBAClH1W,EACA,CAAEotE,eAAgB,SAAAxnD,GAAQ,OAAwB,MAApBA,EAASnkB,OAAiB,KAAOmkB,EAAS3K,MAAM,GAEtF,EApMIoyD,2BAsMJ,SAAoC52D,EAAmBC,GACnD,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,oCAClH1W,EACA,CAAEotE,eAAgB,SAAAxnD,GAAQ,OAAwB,MAApBA,EAASnkB,OAAiB,KAAOmkB,EAAS3K,MAAM,GAEtF,EA3MIqyD,kBAqNJ,SAA2B72D,EAAmBC,GAC1C,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,0BAClH1W,EACA,CAAEotE,eAAgB,SAAAxnD,GAAQ,OAAwB,MAApBA,EAASnkB,OAAiB,KAAOmkB,EAAS3K,MAAM,GAEtF,EA1NIsyD,uBAoOJ,SAAgC92D,EAAmBC,EAA0BjL,GACzE,IAAM5D,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,eAAA/V,OAAc8K,EAAa,aAAa5D,EAElK,EA3OI2lE,wBA6OJ,SACI/2D,EACAC,GAEA,IAAM7O,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,2BAClH7O,EAER,EAxPI4lE,gBA0PJ,SAAyBh3D,EAAmBC,GACxC,IAAM7O,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,qBAAqB7O,EAE/I,EAjQI6lE,0BA+QJ,SAAmC97D,EAAgB+7D,EAAkBC,GACjE,IAAMroC,EAAe,CACjBsoC,mBAAoBF,EACpBG,wBAAyBF,GAEvB/lE,EAAiB,CACnBsB,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAI4M,GAAmB2zB,IAC7Cl+B,OAAQ,OACRS,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,iCAAiCxJ,EAC3F,EA1RIkmE,YA4RJ,WACI,OAAOhrE,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,sBAC1D,EA7RIyjB,qBAiQJ,SAA8Bre,EAAmBC,GAC7C,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,wBACpHlW,MAAK,SAAAwtE,GAAG,OAAW,MAAPA,EAAc,GAAKA,CAAG,GACxC,EApQIC,+BAsQJ,SAAwCx3D,EAAmBC,EAA0BuX,GACjF,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,wBAAA/V,OAAuBstB,GAEjJ,EAzQIigD,QA6RJ,SAAiBz3D,EAAmBC,GAChC,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,SAE1H,EAhSIy3D,WAkSJ,SAAoB13D,EAAmBC,EAA0B03D,GAC7D,IAAMvmE,EAAiB,CACnBsB,KAAMxH,KAAKyH,UAAU,CAAEglE,KAAAA,IACvB/mE,OAAQ,OAGZ,OAAOtE,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,SAAS7O,EAEnI,EA1SIwmE,eA4SJ,SAAwB53D,EAAmBC,EAA0B43D,GACjE,IAAMzmE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEklE,kBAAAA,IACvBxmE,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,sBAClH7O,EAER,EArTI0mE,WAuTJ,SAAoB93D,EAAmBC,GAAmD,IAAzB83D,EAAc1uE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACrE+H,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,iBAAA/V,OAAgB6tE,GAClI3mE,EAER,EA/TI4mE,6BA4FJ,SAAsC78D,GAClC,OAAO7O,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,4CAA4C,CAC9FhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwI,IAE7B,EAhGI88D,uBAiFJ,SAAgCC,EAA0BC,GACtD,OAAO7rE,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,qCAAqC,CACvFhK,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CACjBulE,yBAAAA,EACAC,iBAAAA,KAGZ,EAxFIC,kBAuKJ,SAA2Bp4D,EAAmBC,GAC1C,IAAM7O,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,wBAAwB7O,EAC/J,EA5KI8rB,gCA8LJ,SAAyCld,EAAmBC,GACxD,IAAM7O,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,uCAAuC7O,EAC9K,EAnMIm+B,uBA6MJ,SAAgCvvB,EAAmBC,GAC/C,IAAM7O,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,6BAA6B7O,EACpK,EAlNIinE,aA4TJ,SAAsBr4D,EAAmBC,EAA0Bq4D,GAC/D,OAAOhsE,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,SAAA/V,OAAQouE,GAAiB,CACxJ1nE,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,MAEnC,EAhUIinE,sBAyVJ,SAA+Bv4D,EAAmBC,EAA0Byd,EAAWC,GACnF,IAAIjjB,EAAc,GAElB,GAAIgjB,GAAaC,EAAS,CACtB,IAAMzjB,EAAc,CAChB,cAAezI,IAAOisB,GAAWhsB,OAAOyC,EAAAA,GAAUkH,mBAClD,YAAa5J,IAAOksB,GAASjsB,OAAOyC,EAAAA,GAAUkH,oBAGlDX,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,GACnC,CAEA,OAAO5N,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,mCAAA/V,OAAkCwQ,GAE5J,EAvWI89D,mBAyWJ,SAA4Bx4D,EAAmBC,GAC3C,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,2BAE1H,EA5WIw4D,0BAgUJ,SAAmCz4D,EAAmBC,EAA0Byd,EAAWC,GACvF,IAAIjjB,EAAc,GAElB,GAAIgjB,GAAaC,EAAS,CACtB,IAAMzjB,EAAc,CAChB,cAAezI,IAAOisB,GAAWhsB,SACjC,YAAaD,IAAOksB,GAASjsB,UAGjCgJ,EAAW,IAAAxQ,OAAOyQ,EAAAA,UAAaT,GACnC,CAEA,OAAO5N,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,wBAAA/V,OAAuBwQ,GAEjJ,EA9UIg+D,uBAgVJ,SAAgC14D,EAAmBC,GAC/C,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,wBAE1H,EAnVI04D,0BA4WJ,SAAmC34D,EAAmBC,EAA0B+M,EAAuBoQ,GACnG,IAIIw7C,EAJExnE,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAK/B,OAAQoqB,GACJ,KAAKy7C,EAAAA,EAA6BC,qBAClC,KAAKD,EAAAA,EAA6BE,oBAC9BH,EAAe,YACf,MAEJ,KAAKC,EAAAA,EAA6BG,kBAC9BJ,EAAe,aACf,MAEJ,KAAKC,EAAAA,EAA6BI,gCAC9BL,EAAe,4BACf,MAEJ,KAAKC,EAAAA,EAA6BK,uBAC9BN,EAAe,kBAMvB,OAAOtsE,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,gBAAA/V,OAAe0uE,EAAY,KAAA1uE,OAAI8iB,EAAqB,aACtK5b,EAER,EA3YIqiC,mBA6YJ,SAA4BuiC,GACxB,IAAMhtE,EAAG,GAAAkB,OAAM0Q,4BAAkC,mCAE3CxJ,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEqjE,UAAAA,IACvB3kE,aAAcA,EAAAA,GAAamT,MAG/B,OAAOlY,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAtZI+hC,iBAwZJ,SAA0B6iC,EAAWvjC,GACjC,IAAMzpC,EAAG,GAAAkB,OAAM0Q,4BAAkC,iCAE3CxJ,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEqjE,UAAAA,EAAWvjC,YAAAA,IAClCphC,aAAcA,EAAAA,GAAamT,MAG/B,OAAOlY,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAjaIuhC,SAmaJ,SAAkB/oC,GACd,IAAMZ,EAAG,GAAAkB,OAAM0Q,4BAAkC,kCAE3CxJ,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,WAASpE,EAAAA,EAAAA,GAAC,CAAC,EAAI3E,KAG9B,OAAO0C,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA3aI+nE,0BA6aJ,SACIn5D,EACAC,EACA6d,EACA3xB,GAEA,IAAMiF,EAAiB,CACnBsB,KAAMxH,KAAKyH,UAAU,CAAEmrB,iBAAAA,EAAkB3xB,QAAAA,IACzCyE,OAAQ,MACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,sBAClH7O,EAER,EA5bIgoE,kBA8bJ,WACI,IAAMpwE,EAAG,GAAAkB,OAAM0Q,4BAAkC,2CAE3CxJ,EAAiB,CACnBR,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAtcIioE,iBAwcJ,SAA0Br5D,EAAmBC,GACzC,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,kBAE1H,EA3cIiH,eA6cJ,SAAwBlU,EAAMC,GAC1B,OAAOlK,EAAAA,EAAAA,GAAW,GAADmB,OACV0Q,4BAAkC,uBACrC,KACA5H,EACAC,EAER,EAndIsU,iBAqdJ,SAA0BvS,GACtB,IAAM5D,EAAiB,CACnBC,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,wBAAA1Q,OAAuB8K,GAAiB5D,EAClG,EA1dIkoE,YA4dJ,WACI,IAAMloE,EAAiB,CACnBC,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,mCAAmCxJ,EAC7F,EAjeImoE,qBAyBJ,SAA8B1vE,GAC1B,OAAOyC,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,6CACrC,CACIhK,OAAQ,OACRS,aAAcA,EAAAA,GAAaC,KAC3BoB,KAAMxH,KAAKyH,UAAU,CACjB9I,MAAAA,MAGR,EAER,EApCI2vE,6BAsCJ,SAAsCx5D,EAAmBC,EAA0BpW,GAC/E,OAAOyC,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,sBAClH,CACIrP,OAAQ,MACRS,aAAcA,EAAAA,GAAaC,KAC3BoB,KAAMxH,KAAKyH,UAAU,CACjB9I,MAAAA,KAIhB,EAhDI4vE,oBAieJ,SAA6BjiD,GACzB,OAAOlrB,EAAAA,EAAAA,GAAU,GAADpC,OACT0Q,4BAAkC,gCAAA1Q,OAA+BstB,GAE5E,EApeIkiD,yBAseJ,SACI15D,EACAC,GAEA,OAAO3T,EAAAA,EAAAA,GAAU,GAADpC,OAAI0Q,4BAAkC,oBAAA1Q,OAAmB8V,EAAiB,kBAAA9V,OAAiB+V,EAAwB,qBACvI,E,6HC/hBM05D,GAA6BtsD,EAAAA,EAAAA,IAM/B,SAAAssD,IAA2C,IAADrsD,EAAA,KAA9BssD,EAAuBvwE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAEkkB,EAAAA,EAAAA,GAAA,KAAAosD,GAAA,KAL/BE,kBAAkD,IAAIC,IAA+B,KACrFC,aAA2B,GAAG,KAEvCC,uBAAiB,OAQjBxoD,MAAQ,WACJgW,EAAAA,EAAQyyC,QAAO,SAAAC,GACX,GAC8B,MAA1B5sD,EAAK0sD,mBACL1sD,EAAK0sD,kBAAkBvwB,WAAaywB,EAAazwB,SACnD,CACG,IAAMmwB,EAActsD,EAAKysD,aAAa9lE,MAAK,SAAA6/B,GAAC,OACxCA,EAAElkC,MAAK,SAAAuqE,GAAI,IAAAC,EAAAC,EAAA,OACPC,EAAAA,EAAAA,IAAgC,QAAtBF,EAAA9sD,EAAK0sD,yBAAiB,IAAAI,GAAtBA,EAAwB3wB,SAAiC,QAAzB4wB,EAAG/sD,EAAK0sD,yBAAiB,IAAAK,OAAA,EAAtBA,EAAwB5wB,SAAW,GAAI,CAChF0wB,KAAAA,EACAI,OAAO,GACT,GACL,IAEN,GAAIX,EACwCA,EAAYhqE,MAAK,SAAAuqE,GAAI,OACxDG,EAAAA,EAAAA,IAAUJ,EAAazwB,SAAU,CAAE0wB,KAAAA,EAAMI,OAAO,GAAO,KAIxDX,EAAY7tE,SAAQ,SAAAotC,GAAC,OAAI7rB,EAAK9hB,MAAM2tC,EAAE,SAG1C7rB,EAAK9hB,MAAM8hB,EAAK0sD,kBAAkBvwB,SAE1C,CACAn8B,EAAK0sD,kBAAoBE,CAC7B,GACJ,EAAE,KAEFzwE,OAAS,SAAC+wE,GACN,IAAMhwE,EAAuB,OAATgwE,QAAS,IAATA,EAAAA,EAAahzC,EAAAA,EAAQlW,SAASm4B,SAKlD,OAJKn8B,EAAKusD,kBAAkBY,IAAIjwE,IAC5B8iB,EAAKusD,kBAAkBa,IAAIlwE,EAAK,IAAImwE,iBAGhCrtD,EAAKusD,kBAAkBlJ,IAAInmE,GAAyBf,MAChE,EAAC,KAED+B,MAAQ,SAAChB,GACL,IAAMowE,EAAattD,EAAKusD,kBAAkBlJ,IAAInmE,GAC1CowE,IACAA,EAAWpvE,QACX8hB,EAAKusD,kBAAkBgB,OAAOrwE,GAEtC,EAAC,KAEDsR,MAAQ,SAACtR,GACL8iB,EAAKusD,kBAAkBgB,OAAOrwE,EAClC,EAAC,KAED0jB,IAAM,SAAC/hB,EAAiBgJ,GAAa,OAAWyd,EAAAA,EAAOyB,MAAM,yBAA2BloB,EAASgJ,EAAQ,EAxDrG2lE,KAAKd,kBAAoBxyC,EAAAA,EAAQlW,SACjCwpD,KAAKf,aAAeH,EACpBkB,KAAKtpD,OACT,IAgEShoB,EAA+B,IAAImwE,EAR5B,CAChB,CAACjyC,EAAAA,GAAOqzC,gBAAiBrzC,EAAAA,GAAOszC,sBAChC,CAACtzC,EAAAA,GAAOuzC,kBAAmBvzC,EAAAA,GAAOuzC,mBAClC,CAACvzC,EAAAA,GAAOwzC,iBAAkBxzC,EAAAA,GAAOwzC,kBACjC,CAACxzC,EAAAA,GAAOwB,OACR,CAACxB,EAAAA,GAAOwB,Q,uECxECiyC,EAAoB,CAC7BC,WAMJ,WACI,OAAO9uE,EAAAA,EAAAA,GAAU,wBAAoB/C,GAAW,EACpD,EAPI8xE,WAaJ,SAAoBC,EAAgC5iB,GAChD,IAAMtnD,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU+lD,IAEzB,OAAOpsD,EAAAA,EAAAA,GAAU,oBAADpC,OAAqBoxE,GAAkBlqE,GAAgB,EAC3E,EAlBImqE,kBAQJ,SAA2BD,GACvB,OAAOhvE,EAAAA,EAAAA,GAAU,oBAADpC,OAAqBoxE,EAAc,YACvD,EATIE,YAmBJ,SAAqB3mE,EAAsB2C,GACvC,IAAMqiB,EAAgB,CAAEjpB,OAAQ,OAAQ8B,KAAMxH,KAAKyH,UAAU,CAAEkC,KAAAA,EAAM2C,MAAAA,KACrE,OAAOlL,EAAAA,EAAAA,GAAU,mBAAoButB,EACzC,E,kFC5Ba4hD,EAAmB,CAC5BtxD,SAKJ,SAAkBgS,GACd,IAAM/qB,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwpB,IAGzB,OAAO7vB,EAAAA,EAAAA,GAAU,aAAc8E,EACnC,EAXIsqE,0BAaJ,SAAmCC,GAC/B,IAAMvqE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAEgpE,YAAAA,KAG3B,OAAOrvE,EAAAA,EAAAA,GAAU,qCAAsC8E,EAC3D,EAnBIwqE,8BAqBJ,SAAuC3zD,EAAYwoB,GAC/C,OAAOnkC,EAAAA,EAAAA,GAAU,sCAADpC,OAAuC+d,EAAU,cAAA/d,OAAaumC,GAAY,CACtFp/B,aAAcA,EAAAA,GAAa2B,MAEnC,E,kFC3BashD,EAAmB,CAC5BzkB,cAkBJ,WACI,OAAOvjC,EAAAA,EAAAA,GAAU,kBACrB,EAnBIqpE,aAqBJ,SAAsBkG,GAClB,OAAOvvE,EAAAA,EAAAA,GAAU,mBAADpC,OAAoB2xE,GACxC,EAtBIC,gBAwBJ,SAAyB7gB,GACrB,IAAIjyD,EAAG,mBAAAkB,OAAsB+wD,GAEvB7pD,EAAiB,CACnBR,OAAQ,SACRS,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAhCI2qE,gBAkCJ,SAAyBz2D,GACrB,IAEMlU,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU2S,IAGzB,OAAOhZ,EAAAA,EAAAA,GAPA,kBAOe8E,EAC1B,EA1CI4qE,mBA4CJ,SAA4B12D,EAAO6W,GAAgC,IAArB8/C,EAAU5yE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACpD,OAAOiD,EAAAA,EAAAA,GACH,kBACA,CAAEsE,OAAQ,OAAQ8B,KAAMxH,KAAKyH,UAAU,CAAE2S,MAAAA,EAAO6W,UAAAA,EAAW8/C,WAAAA,KAEnE,EAhDIC,gBAkDJ,SAAyBjhB,EAAa31C,GAClC,IAAItc,EAAG,mBAAAkB,OAAsB+wD,GAEvB7pD,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU2S,GACrBjU,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA3DI+qE,cA6DJ,SAAuBlhB,EAAa9+B,GAChC,IAAInzB,EAAG,mBAAAkB,OAAsB+wD,EAAW,cAElC7pD,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUwpB,GACrB9qB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAE1B,EAvEIgrE,qBAyEJ,SAA8BnhB,EAAalP,GACvC,IAAI/iD,EAAG,mBAAAkB,OAAsB+wD,EAAW,QAElC7pD,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUo5C,GACrB16C,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAlFIirE,iBAoFJ,SAA0BnsC,GACtB,IACM9+B,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUu9B,GACrB7+B,aAAcA,EAAAA,GAAa2B,MAG/B,OAAO1G,EAAAA,EAAAA,GAPK,yBAOU8E,EAC1B,EA5FI4lE,gBA8FJ,SAAyB/b,GACrB,OAAO3uD,EAAAA,EAAAA,GAAU,0BAADpC,OACc+wD,GAC1B,CAAE5pD,aAAcA,EAAAA,GAAa2B,MAErC,EAlGIspE,sBAoGJ,SAA+B17D,GAC3B,IACMxP,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAUiO,GACrBvP,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,yBAOU8E,EAC1B,EA5GImrE,eAGJ,WACI,OAAOjwE,EAAAA,EAAAA,GAAU,iCACrB,E,kFCjBakwE,EAAsB,CAC/BpvC,YAGJ,SAAqBuW,GACjB,IAAMvyC,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUgxC,GACrBtyC,aAAcA,EAAAA,GAAaC,MAI/B,OAAOhF,EAAAA,EAAAA,GAAU,6BAA8B8E,EACnD,E,gFCfO,SAASD,EAAWsrE,EAASn8D,GAChC,IAAMo8D,EAAQ7wE,OACTC,KAAKwU,GACL3S,QAAO,SAAAnD,GAAG,OAAKqV,IAAMS,EAAU9V,OAAY8V,EAAU9V,MAAUsD,MAAM6uE,QAAQr8D,EAAU9V,KAAS8V,EAAU9V,GAAKlB,OAAQ,IACvHgE,KAAI,SAAA9C,GAAG,OAAIsD,MAAM6uE,QAAQr8D,EAAU9V,IAW5C,SAAkBA,EAAKqqB,GACnB,OAAOA,EAAOvnB,KAAI,SAAAkK,GAAK,OAAIolE,EAAUpyE,EAAKgN,EAAM,GACpD,CAboDqlE,CAASryE,EAAK8V,EAAU9V,IAAQoyE,EAAUpyE,EAAK8V,EAAU9V,GAAK,IACzGkD,OACAmjC,KAAK,KAEV,OAAI6rC,EACM,GAANxyE,OAAUuyE,EAAO,KAAAvyE,OAAIwyE,GAGlBD,CACX,CAMA,SAASG,EAAUpyE,EAAKgN,GACpB,MAAM,GAANtN,OAAUM,EAAG,KAAAN,OAAI6N,mBAAmBP,GACxC,C,kFCpBaq1C,EAAiB,CAC1BiwB,eAeJ,SAAwBvnE,GACpB,OAAOjJ,EAAAA,EAAAA,GAAU,gBAADpC,OAAiBqL,EAAiB,WACtD,EAhBIwnE,cAkBJ,SAAuBxnE,EAAmBiN,GACtC,IAAMxZ,EAAG,gBAAAkB,OAAmBqL,EAAiB,WACvCnE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU6P,GACrBnR,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA1BI4rE,WA4BJ,SAAoBznE,EAAmB9H,GACnC,IAAMzE,EAAG,gBAAAkB,OAAmBqL,GACtBnE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUlF,IAGzB,OAAOnB,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAnCI07C,oBAqCJ,SAA6BmwB,GACzB,IAAM7rE,EAAiB,CACnBR,OAAQ,QACR8B,KAAMxH,KAAKyH,UAAUsqE,IAGzB,OAAO3wE,EAAAA,EAAAA,GAAU,eAAgB8E,EACrC,EA3CI8rE,kBA6CJ,SAA2B3nE,EAAmBG,EAAYjI,EAAM0vE,GAC5D,IAAMn0E,EAAG,yBAAAkB,OAA4BqL,GAC/BnE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE+C,WAAAA,EAAYjI,KAAAA,EAAM0vE,aAAAA,IACzC9rE,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,GAAgB,EAC1C,EArDIgsE,0BAuDJ,SAAmC7nE,EAAmBG,EAAYjI,EAAM0vE,GACpE,IAAMn0E,EAAG,mCAAAkB,OAAsCqL,GACzCnE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE+C,WAAAA,EAAYjI,KAAAA,EAAM0vE,aAAAA,IACzC9rE,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,GAAgB,EAC1C,EA/DIisE,gBAwFJ,SAAyB9nE,EAAmBG,EAAY4nE,GACpD,IAAMt0E,EAAG,gCAAAkB,OAAmCqL,GACtCnE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE+C,WAAAA,EAAY4nE,YAAAA,IACnCjsE,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAhGImsE,MA4EJ,SAAehoE,EAAmBkoC,GAC9B,IAAMz0C,EAAG,gBAAAkB,OAAmBqL,GACtBnE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU8qC,GACrBpsC,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EApFIosE,OAiGJ,SAAgBC,GACZ,IACMrsE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU8qE,GACrBpsE,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPE,sBAOa8E,EAC1B,EAzGI/G,OA2GJ,SAAgBqzE,GACZ,IACMtsE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU+qE,GACrBrsE,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAPK,sBAOU8E,EAC1B,EAnHIusE,oBAqHJ,WACI,OAAOrxE,EAAAA,EAAAA,GAAU,sBAAuB,CAAC,GAAG,EAChD,EAtHIsxE,eA4DJ,SAAwBroE,EAAmBG,EAAY5F,EAAW+tE,GAC9D,IAAM70E,EAAG,4BAAAkB,OAA+BqL,GAClCnE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAE+C,WAAAA,EAAY5F,UAAAA,EAAW+tE,YAAAA,IAC9CxsE,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EApEI0sE,mBAuHJ,WACI,OAAOxxE,EAAAA,EAAAA,GAAU,mCAAoC,CAAC,GAAG,EAC7D,E,4FCrIayxE,EAAkB,CAC3BC,YAGJ,SAAqBC,EAAmBppD,GACpC,IACMzjB,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEsrE,UAAAA,EAAWppD,OAAAA,IAClCxjB,aAAcA,EAAAA,GAAaC,MAG/B,KACIhF,EAAAA,EAAAA,GARK,gBAQU8E,EACnB,CAAE,MAAOxG,GACLgoB,EAAAA,EAAOC,UAAUjoB,EAAG,6BACxB,CACJ,E,+ICcaszE,GAA0BtvE,EAAAA,EAAAA,IAAe,CAZ1B,SAACpC,GAAa,OAAKA,EAAM2xE,cAAe,EAE9C,SAAC3xE,GAAa,OAAKA,EAAM4xE,UAAU,EADhC,SAAC5xE,GAAa,OAAKA,EAAM6xE,SAAU,EASpC,SAAC7xE,GAAa,OAAKA,EAAMoO,QAAQ0jE,SAAU,EAPnC,SAAC9xE,GAAa,OAAKA,EAAM+xE,gBAAiB,EAKlD,SAAC/xE,GAAa,OAAKA,EAAMoO,QAAQ4jE,YAAa,EAJlD,SAAChyE,GAAa,OAAKA,EAAMoO,QAAQ9I,IAAK,EAC/B,SAACtF,GAAa,OAAKA,EAAMoO,QAAQ6jE,eAAgB,EACzD,SAACjyE,GAAa,OAAKA,EAAMoO,QAAQmhB,OAAQ,EACvC,SAACvvB,GAAa,OAAKA,EAAMoO,QAAQ8jE,SAAU,EAE5C,SAAClyE,GAAa,OAAKA,EAAMoO,QAAQohB,QAAS,IAc5C,SACVmiD,EACAC,EACAC,EACAC,EACAK,EACAH,EACA1sE,EACA2sE,EACA1iD,EACA2iD,EACA1iD,GACJ,OAAQmiD,IAAmBE,IACnBD,IAAeQ,EAAAA,EAAa7xE,YAC5B4xE,GACAH,IAAiBrqE,EAAAA,GAAU0qE,sBAC1B/sE,IACAiqB,IACA2iD,GACAD,IAAoBhtE,IAAOK,GAAMqvB,OAAOs9C,EAAiB,QAC1D/iC,EAAAA,GAAcojC,uBAAuB/iD,KAAa5nB,EAAAA,GAAU4qE,wBAC5DrjC,EAAAA,GAAcojC,uBAAuBJ,KAAevqE,EAAAA,GAAU6qE,2BAC7DhjD,GAAYsiD,EAAUh1E,QAAU0yB,IAAasiD,EAAU,GAAGhuE,GAEnE,G,wGChESm7D,EAAmB,CAC5BriD,aAwBJ,WACI,OAAO9c,EAAAA,EAAAA,GAAU,iBACrB,EAzBI2yE,iBA2BJ,WACI,OAAO3yE,EAAAA,EAAAA,GAAU,gCACrB,EA5BI4yE,gBA8BJ,SAAyBlqE,GACrB,OAAO1I,EAAAA,EAAAA,GAAU,iCAADpC,OAAkC8K,GACtD,EA/BImqE,uBAiCJ,WACI,OAAO7yE,EAAAA,EAAAA,GAAU,gCACrB,EAlCI8yE,WAoCJ,SAAoBpqE,EAAe6O,GAC/B,IAAM7a,GAAMmI,EAAAA,EAAAA,GAAW,wBAAyB,CAAE6D,cAAAA,EAAe6O,UAAAA,IACjE,OAAOvX,EAAAA,EAAAA,GAAUtD,EACrB,EAtCIq2E,kBAwCJ,WACI,OAAO/yE,EAAAA,EAAAA,GAAU,yBACrB,EAzCIgzE,kBA0FJ,SAA2Bz7D,GACvB,OAAOvX,EAAAA,EAAAA,GAAU,kBAADpC,OAAmB2Z,EAAS,YAChD,EA3FI07D,sBA0CJ,WAAmE,IAApCv8C,EAAyB35B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACpD,OAAO0H,EAAAA,EAAAA,GAAa,mCAA+BxH,OAAWA,EAAWy5B,EAC7E,EA3CIw8C,mBA6CJ,SAA4B37D,GACxB,IAAM7a,EAAG,kBAAAkB,OAAqB2Z,EAAS,YACjCzS,EAAiB,CACnBR,OAAQ,OACR8B,KAAM,GACNrB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EArDIquE,kBAuDJ,SAA2B57D,EAAW67D,GAClC,IAAM12E,EAAG,kBAAAkB,OAAqB2Z,EAAS,WACjCzS,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU+sE,GACrBruE,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA/DIuuE,oBAiEJ,SAA6B97D,EAAW7Y,EAAQiwB,GAC5C,IAAMjyB,EAAG,kBAAAkB,OAAqB2Z,EAAS,WACjCzS,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAU,CAAE3H,OAAAA,EAAQiwB,OAAAA,IAC/B5pB,aAAcA,EAAAA,GAAaC,MAG/B,OAAOhF,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAzEI8D,KA2EJ,SAAc0qE,GACV,IACMxuE,EAAiB,CACnBR,OAAQ,OACR8B,KAAMxH,KAAKyH,UAAUitE,IAGzB,OAAOtzE,EAAAA,EAAAA,GANK,iBAMU8E,EAC1B,EAlFIyuE,oBAwFJ,SAA6BC,EAAU90E,GACnC,IAAMhC,EAAG,cAAAkB,OAAiB41E,EAAQ,SAC5B1uE,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU3H,IAEzB,OAAOsB,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EA9FI2uE,qBAgGJ,SAA8Bl8D,EAAW7Y,GACrC,IAAMhC,EAAG,kBAAAkB,OAAqB2Z,EAAS,SACjCzS,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU3H,IAEzB,OAAOsB,EAAAA,EAAAA,GAAUtD,EAAKoI,EAC1B,EAtGI4uE,oBAyGJ,SAA6BzqE,GACzB,OAAOjJ,EAAAA,EAAAA,GAAU,2BAADpC,OAA4BqL,GAChD,EA1GI0qE,2BA4GJ,SAAoCp8D,GAChC,IACMzS,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEkR,UAAAA,IACvBxS,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GANK,2CAMU8E,EAC1B,EAnHI8uE,uBAqHJ,SAAgCr8D,GAC5B,IACMzS,EAAiB,CACnBR,OAAQ,MACR8B,KAAMxH,KAAKyH,UAAU,CAAEkR,UAAAA,IACvBxS,aAAcA,EAAAA,GAAaC,MAE/B,OAAOhF,EAAAA,EAAAA,GANK,yCAMU8E,EAC1B,EA5HIxE,aA8HJ,WACI,OAAON,EAAAA,EAAAA,GAAU,4BACrB,EA/HI6zE,eAiIJ,SAAwBt8D,GACpB,IAAMzS,EAAiB,CACnBR,OAAQ,QACR8B,KAAMmR,GAEV,OAAOvX,EAAAA,EAAAA,GAAU,4BAA6B8E,EAClD,EAtIIgvE,oBAwIJ,SAA6Bv8D,GAIzB,OAAOvX,EAAAA,EAAAA,GAAU,6BAADpC,OAA8B2Z,GAHvB,CACnBjT,OAAQ,UAGhB,EA5IIyvE,gBAkJJ,SAAyBnwC,EAAan6B,EAAU4hB,EAAO2oD,EAAWC,EAASC,EAAwBC,EAAUjqE,EAAeE,GACxH,IAAM1N,GAAMmI,EAAAA,EAAAA,GAAW,wBAAyB,CAC5C++B,YAAAA,EACAn6B,SAAAA,EACA4hB,MAAAA,EACA2oD,UAAAA,EACAC,QAAAA,EACAC,uBAAAA,EACAC,SAAAA,EACAjqE,cAAAA,EACAE,UAAAA,IAEJ,OAAOpK,EAAAA,EAAAA,GAAUtD,EAAK,CAAEqI,aAAcA,EAAAA,GAAa2B,MACvD,EA9JI0tE,gCA6IJ,SAAyCnrE,GACrC,OAAOjJ,EAAAA,EAAAA,GAAU,iCAADpC,OAAkCqL,GACtD,E","sources":["services/file.upload.js","services/build.service.ts","selectors/seller-companies.selector.ts","services/manage-storage.service.ts","services/currency.service.ts","services/days.service.js","services/bwic.process.service.js","services/contacts.service.js","services/location.service.ts","services/parsed.bwics.service.js","services/color.service.js","services/trading.service.js","services/dashboard.service.js","services/onBoarding.tooltip.service.js","services/feedback.service.ts","services/rating.service.js","services/bid-as-dealer-request.service.ts","services/sales-representative-service.ts","services/photo.service.ts","services/clearing-bank.service.ts","services/im-user-config.service.ts","services/billing.service.ts","services/release.service.ts","services/documents.service.js","services/settlement.service.ts","services/bid-on-behalf.service.js","services/pxTalk.service.js","services/deals.service.ts","services/push-notification.service.js","selectors/latest-bids.selector.ts","services/help-resources.service.ts","services/trade-allocation-template.service.ts","services/amr-companies.service.ts","services/inventory.service.ts","services/manage-emails.service.ts","services/address.service.ts","services/bwic.service.js","services/clo-managers.service.ts","services/banks.service.ts","selectors/dealer-inventory.selector.ts","services/cache.ts","services/tradeReportingService.js","services/account.service.js","services/news.service.ts","selectors/amr-pipeline.selector.ts","services/settlement-agent-agreement.service.ts","services/fetch.safe.js","services/email-preferences.service.ts","services/amr-arranger-pipeline.service.ts","services/blast-message.service.ts","selectors/portfolio.selector.ts","styles/classnames.js","selectors/dealers.selector.ts","services/users.service.js","selectors/companyList.selector.js","selectors/members.selector.js","selectors/deals.selector.js","selectors/parsed.bwics.selector.js","selectors/history.actions.selector.ts","selectors/trading.positions.selector.ts","selectors/new-bwic-dealers.selector.ts","sagas/notifications.saga.ts","sagas/onBoardinTooltip.saga.js","sagas/security-details.saga.ts","sagas/seller-buyside.saga.ts","sagas/subscriptions.saga.ts","sagas/sales-representative.saga.ts","sagas/subscription-biling-history.saga.ts","sagas/release.saga.ts","sagas/new-bwic-dealers.saga.ts","services/seller-admin.service.ts","sagas/seller-admin-dealers.saga.ts","sagas/portfolio-list.saga.ts","sagas/manage-email-preferences.saga.ts","sagas/seller-admin-limit.saga.ts","sagas/seller-admin-users.saga.ts","sagas/user-request-admin.saga.ts","sagas/signup.saga.ts","sagas/price-talks.saga.ts","sagas/settlement-account.saga.ts","sagas/trade-allocation.saga.ts","sagas/trade-allocation-template.saga.ts","services/manage-tokens.service.ts","sagas/manage-tokens.saga.ts","sagas/portfolio-agreement-disclaimer.saga.ts","sagas/news.saga.ts","sagas/main.saga.js","store.js","services/amr-pipeline.service.js","services/request-cancelation-controller.ts","services/page-config.service.ts","services/bwicDeals.service.js","services/portfolio.service.js","services/contact-sales.service.ts","services/url.builder.js","services/bidding.service.js","services/action-tracking.service.ts","selectors/bwic-changed-flag.selector.ts","services/companies.service.js"],"sourcesContent":["import { user, refreshTokenController } from '../user';\r\nimport { requestCancelationController } from './request-cancelation-controller';\r\nimport { apiUtils } from '../utils';\r\n\r\nexport const fileUpload = (url, dataItems, blob, onProgress, disableCancelation = false) => {\r\n const upload = (headers, signal) => {\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open('POST', url);\r\n\r\n for (const key in headers) {\r\n xhr.setRequestHeader(key, headers[key]);\r\n }\r\n\r\n xhr.onload = e => apiUtils.isRequestSuccess(e.target.status)\r\n ? resolve(e.target.responseText ? JSON.parse(e.target.responseText) : undefined)\r\n : reject(e.target);\r\n xhr.onerror = reject;\r\n xhr.onabort = reject;\r\n xhr.upload.onprogress = onProgress;\r\n\r\n if (signal) {\r\n signal.onabort = () => xhr.abort();\r\n }\r\n\r\n const form = new FormData();\r\n form.append('file', blob, blob.name);\r\n\r\n if (dataItems) {\r\n Object.keys(dataItems).forEach(key => form.append(key, dataItems[key]));\r\n }\r\n\r\n xhr.send(form);\r\n });\r\n }\r\n const requestCancelationSignal = disableCancelation ? null : requestCancelationController.signal();\r\n\r\n return refreshTokenController\r\n .ensureTokenUpToDate(user.token(), user.refreshToken().refreshToken)\r\n .then(token => upload({ authorization: `Bearer ${token}` }, requestCancelationSignal))\r\n .catch(({ status, responseText}) => Promise.reject({ status, message: responseText }));\r\n}\r\n\r\n\r\n","import { fetchSafe } from './fetch.safe';\r\n\r\nfunction version() {\r\n return fetchSafe('/api/build')\r\n}\r\n\r\nexport const buildService = {\r\n version\r\n};\r\n","import { createSelector } from 'reselect';\r\nimport { SettlementAgreementStatus } from '../types/bid-as-dealer/SettlementAgreementStatus';\r\nimport { SettlementAgentAgreement } from '../types/bid-as-dealer/SettlementAgentAgreement';\r\nimport { BwicPosition } from '../types/bwic/BwicPosition';\r\nimport { CompanySlim } from '../types/company/CompanySlim';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { CompanyHiddenState } from '../types/state/DealerListPanelState';\r\nimport { FavoriteCompanyState } from '../types/state/FavoriteBrokerDealersState';\r\nimport { arrayUtils } from '../utils/array.utils';\r\nimport { apiUtils } from '../utils/api.utils';\r\nimport { biddingUtils } from '../utils/bidding.utils';\r\nimport { compareBoolean } from '../utils/compare.utils';\r\n\r\nconst getParticipants = (state: { participants: CompanySlim[] }) => { return state.participants };\r\nconst getOffPlatformCompanies = (state: { offPlatformCompanies: CompanySlim[] }) => state.offPlatformCompanies;\r\nconst getHiddenState = (state: { hiddenState: CompanyHiddenState }) => state.hiddenState;\r\nconst getFavorites = (state: { favorites: FavoriteCompanyState }) => state.favorites;\r\nconst getPositions = (state: { securities: BwicPosition[] }) => state.securities;\r\nconst getProcessType = (state: { processType: BwicProcessType }) => state.processType\r\nconst getAgreements = (state: { agreements: SettlementAgentAgreement[] }) => state.agreements;\r\nconst getAllToAllFlag = (state: { isAllToAll?: boolean}) => state.isAllToAll;\r\n\r\nexport const getBuyers = (securities: BwicPosition[]) => {\r\n const allBuyersBids = securities.map(s => s?.bids ?? []).flat().filter(b => b.buyerPseudoOrderNumber);\r\n return Array.from(arrayUtils\r\n .groupBy(allBuyersBids, b => b.buyerPseudoOrderNumber)\r\n .entries())\r\n .map(([, [{ buyerPseudoOrderNumber, company }]]) => ({\r\n ...company,\r\n buyerPseudoOrderNumber,\r\n identifier: biddingUtils.getBidCompanyIdentifier({ company, buyerPseudoOrderNumber })\r\n }));\r\n}\r\n\r\n\r\nexport const getSellerBiddingCompanies = createSelector(\r\n getParticipants,\r\n getOffPlatformCompanies,\r\n getHiddenState,\r\n getFavorites,\r\n getProcessType,\r\n getAgreements,\r\n getPositions,\r\n getAllToAllFlag,\r\n (participans: CompanySlim[],\r\n offPlatformCompanies: CompanySlim[],\r\n hiddenState: CompanyHiddenState,\r\n favorites: FavoriteCompanyState,\r\n processType,\r\n agreements: SettlementAgentAgreement[],\r\n securities: BwicPosition[],\r\n isAllToAll?: boolean\r\n ) => {\r\n const brokerDealers = participans\r\n .filter(p => p.status === CompanyStatus.active && (!p.isClearingBank || !isAllToAll))\r\n .concat(processType === BwicProcessType.Live ? [] : offPlatformCompanies)\r\n .map(company => ({ ...company, identifier: biddingUtils.getBidCompanyIdentifier({ company }) }))\r\n .filter(c => !hiddenState[c.identifier]);\r\n\r\n const buyers = getBuyers(securities).filter(c => !hiddenState[c.identifier]);\r\n\r\n return [...sortBrokerDealerCompanies(brokerDealers, favorites, agreements), ...buyers];\r\n }\r\n);\r\n\r\nexport const getSellerFinishedCompanies = createSelector(\r\n getParticipants,\r\n getOffPlatformCompanies,\r\n getFavorites,\r\n getPositions,\r\n getAgreements,\r\n getAllToAllFlag,\r\n (participans: CompanySlim[],\r\n offPlatformCompanies: CompanySlim[],\r\n favorites: FavoriteCompanyState,\r\n securities: BwicPosition[],\r\n agreements: SettlementAgentAgreement[],\r\n isAllToAll?: boolean\r\n ) => {\r\n const companies =\r\n participans\r\n .filter(c => c.status === CompanyStatus.active && (!c.isClearingBank || !isAllToAll))\r\n .concat(offPlatformCompanies)\r\n\r\n const brokerDealers = companies\r\n .map(company => ({ ...company, identifier: biddingUtils.getBidCompanyIdentifier({ company }) }))\r\n .filter(c => securities.some(s => s.bids?.some(b => biddingUtils.getBidCompanyIdentifier(b) === c.identifier)))\r\n \r\n const buyers = getBuyers(securities);\r\n\r\n return [...sortBrokerDealerCompanies(brokerDealers, favorites, agreements), ...buyers];\r\n }\r\n);\r\n\r\nexport function sortBrokerDealerCompanies(companies: CompanySlim[], favorites: FavoriteCompanyState, agreements: SettlementAgentAgreement[]) {\r\n const confirmedAgreementsByDealer = apiUtils.normalize(\r\n agreements.filter(a =>\r\n a.settlementAgent.isClearingBank &&\r\n a.agreementStatus === SettlementAgreementStatus.confirmed),\r\n (a: SettlementAgentAgreement) => a.settlementAgent.id,\r\n () => true\r\n );\r\n\r\n return [...companies].sort((a, b) =>\r\n compareBoolean(favorites[a.id], favorites[b.id]) ||\r\n compareBoolean(confirmedAgreementsByDealer[a.id], confirmedAgreementsByDealer[b.id]) ||\r\n compareBoolean(a.status === CompanyStatus.active, b.status === CompanyStatus.active) ||\r\n a.name.localeCompare(b.name)\r\n );\r\n}\r\n","import { fetchSafe } from '../services/fetch.safe';\r\n\r\nconst clearRedisCache = () => {\r\n return fetchSafe('/clear-cache', { method: 'POST' })\r\n}\r\n\r\nexport const manageStorageService = {\r\n clearRedisCache\r\n}\r\n","import { getFromCache } from './cache';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { urlBuilder } from './url.builder';\r\nimport { CurrencyRate } from '../types/currency/CurrencyRate';\r\n\r\nexport const currencyService = {\r\n getCurrencies,\r\n getCurrencyRate,\r\n setCurrencyRate\r\n};\r\n\r\nfunction getCurrencies() {\r\n return getFromCache('/api/currencies')\r\n}\r\n\r\nfunction getCurrencyRate():Promise {\r\n return fetchSafe('/api/currencies/get')\r\n}\r\n\r\nfunction setCurrencyRate(usdRate: number): Promise {\r\n const url = urlBuilder(\r\n '/api/currencies/set-usdrate',\r\n {\r\n usdRate\r\n }\r\n );\r\n const requestOptions = {\r\n method: 'PUT',\r\n responseType: responseType.none\r\n };\r\n return fetchSafe(url, requestOptions)\r\n}\r\n","import moment from 'moment';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { getFromCache } from './cache';\r\n\r\nexport const daysService = {\r\n getNextBusinessDate,\r\n getNextBusinessDates,\r\n isBusinessDay,\r\n getHolidays\r\n};\r\n\r\nfunction getNextBusinessDate() {\r\n return fetchSafe(`/api/days/next-business-day/${moment().format('YYYY-MM-DD')}`);\r\n}\r\n\r\nfunction getNextBusinessDates(from, daysCount) {\r\n return getFromCache(`/api/days/next-business-days/${moment(from).format('YYYY-MM-DD')}/${daysCount}`);\r\n}\r\n\r\nfunction isBusinessDay(date) {\r\n return fetchSafe(`/api/days/business-day/${moment(date).format('MM-DD-YYYY')}`);\r\n\r\n}\r\n\r\nfunction getHolidays(year) {\r\n return fetchSafe(`/api/days/holidays/${year}`);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\n\r\nexport const bwicProcessService = {\r\n getTemplates\r\n}\r\n\r\nfunction getTemplates() {\r\n return fetchSafe('/api/process-templates')\r\n .then(list => list.filter(x => x.readonly)) // Hide user created templates\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\nimport { responseType } from '../constants';\r\n\r\nexport const contactsService = {\r\n getContacts,\r\n addContact,\r\n updateContact,\r\n deleteContact,\r\n uploadContacts,\r\n parseContactsStirng,\r\n bulkSave,\r\n getXlsxTemplate,\r\n inviteBuysideClients,\r\n inviteAllToJoin,\r\n sendInvite\r\n}\r\n\r\nfunction getContacts() {\r\n return fetchSafe('/api/contacts');\r\n}\r\n\r\nfunction addContact(contact) {\r\n const url = '/api/contacts';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(contact)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction updateContact(contact) {\r\n const url = '/api/contacts';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(contact),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deleteContact(contactId) {\r\n const url = `/api/contacts/${contactId}`;\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\n\r\nfunction uploadContacts(file, progressCallback) {\r\n return fileUpload(\r\n '/api/contacts/upload',\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction parseContactsStirng(text) {\r\n const url = '/api/contacts/clipboard';\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ text })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction bulkSave(contactsToSave, contactsToDelete) {\r\n const url = '/api/contacts/bulk-save';\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ contactsToSave, contactsToDelete })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getXlsxTemplate() {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe('/api/contacts/template', requestOptions);\r\n}\r\n\r\nfunction inviteBuysideClients(emailList) {\r\n const url = '/api/invitation/invite-buyside';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ buysideClientEmails: emailList }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction sendInvite(contactId) {\r\n const url = '/api/invitation/invite';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ contactId }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction inviteAllToJoin(message) {\r\n const url = '/api/invitation/invite-all';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ message }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n","import { Country } from '../types/location/Country';\r\nimport { State } from '../types/location/State';\r\nimport { City } from '../types/location/City';\r\nimport { getFromCache } from './cache';\r\nimport { constants } from '../constants';\r\n\r\n\r\nexport const locationService = {\r\n getCountries,\r\n getStates,\r\n getCities\r\n}\r\n\r\nfunction getCountries(): Promise {\r\n const applyOrdering = (countries: Country[]) => {\r\n const usa = countries.find(c => c.code === constants.USCountryCode);\r\n const otherCountries = countries\r\n .filter(c => c.code !== constants.USCountryCode)\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n return usa ? [usa, ...otherCountries] : otherCountries;\r\n }\r\n\r\n return getFromCache('/api/countries', applyOrdering);\r\n}\r\n\r\nfunction getStates(countryCode: string): Promise {\r\n return getFromCache(`/api/states/${countryCode}`);\r\n}\r\n\r\nfunction getCities(stateId: number): Promise {\r\n return getFromCache(`/api/cities/state/${stateId}`);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { urlBuilder } from './url.builder';\r\n\r\nexport const parsedBwicsService = {\r\n search,\r\n publish,\r\n unpublish,\r\n save,\r\n deleteBwic,\r\n cancel,\r\n changeAmrFlag\r\n};\r\n\r\nfunction search(searchCriteria, page, pageSize) {\r\n const url = urlBuilder('/api/parsed-bwics/search', { page, pageSize });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(searchCriteria)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction publish(referenceName) {\r\n const url = '/api/parsed-bwics/publish';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceName }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction unpublish(referenceName) {\r\n const url = '/api/parsed-bwics/unpublish';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceName }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction save(payload) {\r\n const url = '/api/parsed-bwics';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deleteBwic(referenceName) {\r\n const url = `/api/parsed-bwics/${referenceName}`;\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction cancel(referenceName) {\r\n const url = `/api/parsed-bwics/cancel/${referenceName}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction changeAmrFlag(bwicReferenceName, isAMR) {\r\n return fetchSafe(\r\n `/api/parsed-bwics/change-amr-flag/${bwicReferenceName}`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify({ isAMR })\r\n });\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\n\r\nexport const colorService = {\r\n save,\r\n deleteColor\r\n}\r\n\r\nfunction save(bwicReferenceName, positionId, color) {\r\n const url = '/api/color';\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n body: JSON.stringify({\r\n bwicReferenceName,\r\n positionId,\r\n ...color\r\n })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deleteColor(bwicReferenceName, positionId) {\r\n const url = `/api/color/${bwicReferenceName}/${positionId}`;\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType, constants } from '../constants';\r\nimport moment from 'moment';\r\n\r\nexport const tradingService = {\r\n search: ({ isinCusipsAndTickers, statuses, settlementStatuses, currency, side, type, dateFrom, dateTo, settlFrom, settlTo,\r\n orderByColumn, sortOrder = 'ASC', page = 1, pageSize = 50 }) => {\r\n const url = '/api/trading/search';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n isinCusipsAndTickers,\r\n statuses,\r\n settlementStatuses,\r\n currency,\r\n side,\r\n type,\r\n from: dateFrom && moment(dateFrom).format(constants.dateTimeFormatUtc),\r\n to: dateTo && moment(dateTo).format(constants.dateTimeFormatUtc),\r\n settlementFrom: settlFrom && moment(settlFrom).format(constants.dateTimeFormatUtc),\r\n settlementTo: settlTo && moment(settlTo).format(constants.dateTimeFormatUtc),\r\n orderByColumn,\r\n sortOrder,\r\n page,\r\n pageSize\r\n })\r\n };\r\n return fetchSafe(url, requestOptions);\r\n },\r\n\r\n doesExist: () => {\r\n return fetchSafe('/api/trading/exist');\r\n },\r\n\r\n blotterExport: (params) => {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n clientDateTime: moment().format(),\r\n ...params,\r\n from: params.dateFrom && moment(params.dateFrom).format(constants.dateTimeFormatUtc),\r\n to: params.dateTo && moment(params.dateTo).format(constants.dateTimeFormatUtc),\r\n settlFrom: params.settlFrom && moment(params.settlFrom).format(constants.dateTimeFormatUtc),\r\n settlTo: params.settlTo && moment(params.settlTo).format(constants.dateTimeFormatUtc),\r\n orderByColumn: params.orderByColumn,\r\n sortOrder: params.sortOrder\r\n }),\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/trading/export', requestOptions)\r\n },\r\n\r\n setVcon: ({ tradeId, isBuyTrade, value }) => {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceId: tradeId, buyTrade: isBuyTrade, value }),\r\n };\r\n return fetchSafe('api/trading/set-vcon', requestOptions)\r\n },\r\n\r\n setBooked: ({ tradeId, isBuyTrade, value }) => {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceId: tradeId, buyTrade: isBuyTrade, value }),\r\n };\r\n return fetchSafe('api/trading/set-booked', requestOptions)\r\n },\r\n\r\n getAwaitingActionTrades: () => fetchSafe('/api/trading/trades-pending-action', {}, true),\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport moment from 'moment';\r\nimport { apiUtils } from \"../utils/api.utils\";\r\nimport { pipelineRequestCriteria, responseType } from '../constants';\r\nimport qs from 'query-string';\r\nimport { TransactionType, AllTopIssuersTransactionTypes } from '../types/amr-pipeline/enums/TransactionType'\r\nimport { TransactionStatus } from '../types/amr-pipeline/enums/TransactionStatus'\r\nimport { Currency } from '../types/enums/Currency'\r\nimport { urlBuilder } from '.';\r\nimport { constants } from '../constants/constants';\r\nimport { CollateralType } from '../types/amr-pipeline/enums/CollateralType';\r\nimport { isNil } from 'lodash';\r\n\r\nfunction getCurrentTimeStamp() {\r\n return encodeURIComponent(moment().format('YYYY-MM-DDThh:mm:ss'));\r\n}\r\n\r\nfunction fetchDailyTradingStats() {\r\n return fetchSafe('/api/dashboard/trading-stats');\r\n}\r\n\r\nfunction fetchDeals(additionalCriteria, yearFrom, yearTo) {\r\n const filterCriteria = {\r\n pricingDate: {\r\n from: moment([yearFrom]).startOf(\"year\").format(constants.dateFormatISO8601),\r\n to: moment([yearTo]).endOf(\"year\").format(constants.dateFormatISO8601)\r\n },\r\n statuses: [TransactionStatus.Closed, TransactionStatus.Priced],\r\n ...additionalCriteria\r\n }\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/statistics-deals`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n });\r\n}\r\n\r\nfunction fetchExportDeals(additionalCriteria, yearFrom, yearTo) {\r\n const filterCriteria = {\r\n pricingDate: {\r\n from: moment([yearFrom]).startOf(\"year\").format(constants.dateFormatISO8601),\r\n to: moment([yearTo]).endOf(\"year\").format(constants.dateFormatISO8601)\r\n },\r\n statuses: [TransactionStatus.Closed, TransactionStatus.Priced],\r\n ...additionalCriteria\r\n }\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/statistics-deals/export`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n responseType: responseType.file,\r\n });\r\n}\r\n\r\nfunction fetchTopChart(chartType, selectedType, currencyCode, yearFrom, yearTo, collateralTypes) {\r\n const queryParams = {\r\n statuses: [TransactionStatus.Closed, TransactionStatus.Priced],\r\n types: selectedType || AllTopIssuersTransactionTypes,\r\n currencyCode,\r\n collateralTypes: [collateralTypes],\r\n \"pricingDate.From\": moment([yearFrom]).startOf(\"year\").format(constants.dateTimeFormatUtc),\r\n \"pricingDate.To\": moment([yearTo]).endOf(\"year\").format(constants.dateTimeFormatUtc),\r\n };\r\n\r\n const queryString = `?${qs.stringify(queryParams)}`;\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/${chartType}/${queryString}`\r\n );\r\n}\r\n\r\nfunction exportTopChart(\r\n chartType,\r\n selectedType,\r\n currencyCode,\r\n yearFrom,\r\n yearTo,\r\n collateralTypes,\r\n sortingParams,\r\n) {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n const querySortingParams = apiUtils.parseSortingParams(sortingParams);\r\n\r\n const queryParams = {\r\n statuses: [TransactionStatus.Closed, TransactionStatus.Priced],\r\n types: selectedType || AllTopIssuersTransactionTypes,\r\n currencyCode,\r\n \"pricingDate.From\": moment([yearFrom]).startOf(\"year\").format(constants.dateTimeFormatUtc),\r\n \"pricingDate.To\": moment([yearTo]).endOf(\"year\").format(constants.dateTimeFormatUtc),\r\n collateralTypes,\r\n ...querySortingParams,\r\n };\r\n\r\n const queryString = `?${qs.stringify(queryParams)}`;\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/${chartType}/export/${queryString}`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction fetchExportTradingStats(currencyFilter, ratings) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ currencyFilter, ratings }),\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/dashboard/export-trading-stats', requestOptions);\r\n}\r\n\r\nfunction fetchPortfolioSecurities() {\r\n return fetchSafe(`/api/dashboard/portfolio-securities/${getCurrentTimeStamp()}`);\r\n}\r\n\r\nfunction fetchScheduledBwics() {\r\n return fetchSafe(`/api/dashboard/${getCurrentTimeStamp()}`, {}, true)\r\n}\r\n\r\nfunction fetchColorRates() {\r\n return fetchSafe(`/api/dashboard/price-in-color/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchDntRates() {\r\n return fetchSafe(`/api/dashboard/dnt-rates/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction exportBwicStatistic(securityId) {\r\n const url = `/api/securities/export-bwic-statistic/${securityId}`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({}),\r\n responseType: responseType.file\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction fetchSameDayPeriods() {\r\n return fetchSafe(`/api/dashboard/same-day-bwics/${getCurrentTimeStamp()}`);\r\n}\r\n\r\nfunction fetchDealersStatsExists() {\r\n return fetchSafe('/api/dashboard/dealers-stats-exists');\r\n}\r\n\r\nfunction fetchDealersStats() {\r\n return fetchSafe('/api/dashboard/dealers-stats');\r\n}\r\n\r\nfunction exportDealersStats() {\r\n return fetchSafe(`/api/dashboard/dealers-stats-export`, { responseType: responseType.file });\r\n}\r\n\r\nfunction fetchSellersStatsExists() {\r\n return fetchSafe('/api/dashboard/sellers-stats-exists');\r\n}\r\n\r\nfunction fetchClientsStats() {\r\n return fetchSafe('/api/dashboard/sellers-stats');\r\n}\r\n\r\nfunction exportSellerStats() {\r\n return fetchSafe(`/api/dashboard/sellers-stats-export`, { responseType: responseType.file });\r\n}\r\n\r\nfunction fetchPriceLevel() {\r\n return fetchSafe('/api/dashboard/price-level')\r\n}\r\n\r\nfunction fetchDtcSellingBuying() {\r\n return fetchSafe('/api/dashboard/dtc-selling-buying')\r\n}\r\n\r\nfunction fetchDtcInvestmentGrade() {\r\n return fetchSafe(`/api/dashboard/dtc-ig-hy/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchMedianAAA() {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ dateFrom: moment().format() }),\r\n };\r\n return fetchSafe('/api/dashboard/median-aaa', requestOptions)\r\n}\r\n\r\nfunction fetchAAAPriceLevel() {\r\n return fetchSafe(`/api/dashboard/priceLevel-aaa/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchMostTradedTickers() {\r\n return fetchSafe(`/api/dashboard/most-traded-tickers/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchBiggestMovers() {\r\n return fetchSafe(`/api/dashboard/biggest-movers/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchPxTalkDeviation() {\r\n return fetchSafe(`/api/dashboard/pxtalk-deviation/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchBwicPercentOfTrace() {\r\n return fetchSafe(`/api/dashboard/bwic-percent-of-trace/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchIssueTransactionVolumesCount({\r\n from,\r\n to,\r\n transactionType = [TransactionType.newIssue, TransactionType.refi, TransactionType.reset],\r\n currencyCode = Currency.USD,\r\n statuses = TransactionStatus.Closed,\r\n collateralTypes = [],\r\n esg = null,\r\n}) {\r\n const filterCriteria = {\r\n 'pricingDate.From': moment.utc(from || [constants.minChartYear]).format(constants.dateTimeFormatUtc),\r\n 'pricingDate.To': moment.utc(to).format(constants.dateTimeFormatUtc),\r\n types: transactionType,\r\n currencyCode,\r\n statuses,\r\n collateralTypes,\r\n esg,\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/volumes-count`,\r\n filterCriteria\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchVolumeCountByTransactionTypes({\r\n from,\r\n to,\r\n transactionType = TransactionType.newIssue,\r\n currencyCode = Currency.USD,\r\n statuses = TransactionStatus.Closed,\r\n collateralTypes = [],\r\n euCompliance = null,\r\n}) {\r\n const filterCriteria = {\r\n 'pricingDate.From': moment.utc(from || [constants.minChartYear]).format(constants.dateTimeFormatUtc),\r\n 'pricingDate.To': moment.utc(to).format(constants.dateTimeFormatUtc),\r\n types: transactionType,\r\n currencyCode,\r\n statuses,\r\n collateralTypes,\r\n euCompliance,\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/volumes-count-transaction-types`,\r\n filterCriteria\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchVolumesCountShortLongDated({\r\n managerReferenceName,\r\n from,\r\n to,\r\n transactionTypes = [TransactionType.newIssue],\r\n currencyCode,\r\n statuses = TransactionStatus.Closed,\r\n nonCallPeriodEndYearsShort,\r\n reinvestmentPeriodEndYearsShort,\r\n nonCallPeriodEndYearsLong,\r\n reinvestmentPeriodEndYearsLong,\r\n}) {\r\n const [ncEndShortFrom, ncEndShortTo] = nonCallPeriodEndYearsShort;\r\n const [riEndShortFrom, reEndShortTo] = reinvestmentPeriodEndYearsShort;\r\n const [ncEndLongFrom, ncEndLongTo] = nonCallPeriodEndYearsLong;\r\n const [riEndLongFrom, riEndLongTo] = reinvestmentPeriodEndYearsLong;\r\n\r\n const filterCriteria = {\r\n managerReferenceName,\r\n 'pricingDate.From': moment.utc(from || [constants.minChartYear]).format(constants.dateTimeFormatUtc),\r\n 'pricingDate.To': moment.utc(to).format(constants.dateTimeFormatUtc),\r\n types: transactionTypes,\r\n currencyCode,\r\n statuses,\r\n 'nonCallPeriodEndDaysShort.From': moment.duration(ncEndShortFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDaysShort.To': moment.duration(ncEndShortTo, 'years').asDays(),\r\n\r\n 'reinvestmentPeriodEndDaysShort.From': moment.duration(riEndShortFrom, 'years').asDays(),\r\n 'reinvestmentPeriodEndDaysShort.To': moment.duration(reEndShortTo, 'years').asDays(),\r\n\r\n 'nonCallPeriodEndDaysLong.From': moment.duration(ncEndLongFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDaysLong.To': moment.duration(ncEndLongTo, 'years').asDays(),\r\n\r\n 'reinvestmentPeriodEndDaysLong.From': moment.duration(riEndLongFrom, 'years').asDays(),\r\n 'reinvestmentPeriodEndDaysLong.To': moment.duration(riEndLongTo, 'years').asDays(),\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/volumes-count-short-long-dated`,\r\n filterCriteria\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchIssuanceSpreads({\r\n managerReferenceName,\r\n from,\r\n to,\r\n transactionTypes = [TransactionType.newIssue],\r\n statuses = TransactionStatus.Closed,\r\n collateralTypes = [CollateralType.broadlySyndicated, CollateralType.middleMarket],\r\n floaterIndexes = [],\r\n classRatings = [],\r\n currencyCodes = [Currency.USD],\r\n nonCallPeriodEndYears = [],\r\n reinvestmentPeriodEndYears = [],\r\n}) {\r\n const [ncEndFrom, ncEndTo] = nonCallPeriodEndYears;\r\n const [riEndFrom, riEndTo] = reinvestmentPeriodEndYears;\r\n\r\n const ncEndPeriod = !isNil(ncEndFrom) && !isNil(ncEndTo) ? {\r\n 'nonCallPeriodEndDays.From': moment.duration(ncEndFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDays.To': moment.duration(ncEndTo, 'years').asDays(),\r\n } : {};\r\n\r\n const riEndPeriod = !isNil(riEndFrom) && !isNil(riEndTo) ? {\r\n 'reinvestmentPeriodEndDays.From': moment.duration(riEndFrom, 'years').asDays(),\r\n 'reinvestmentPeriodEndDays.To': moment.duration(riEndTo, 'years').asDays(),\r\n } : {};\r\n\r\n const filterCriteria = {\r\n managerReferenceName,\r\n 'pricingDate.From': moment.utc(from || [constants.minChartYear]).format(constants.dateTimeFormatUtc),\r\n 'pricingDate.To': moment.utc(to).format(constants.dateTimeFormatUtc),\r\n types: transactionTypes,\r\n currencyCodes,\r\n statuses,\r\n collateralTypes,\r\n floaterIndexes,\r\n classRatings,\r\n ...ncEndPeriod,\r\n ...riEndPeriod,\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/issuance-spreads`,\r\n filterCriteria\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchIssuenseSpreadsComparableData(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n nonCallPeriodEndYearsShort = pipelineRequestCriteria.shortLongDatedDeals.nonCallPeriodEndYearsShort,\r\n nonCallPeriodEndYearsLong = pipelineRequestCriteria.shortLongDatedDeals.nonCallPeriodEndYearsLong) {\r\n\r\n const [ncEndShortFrom, ncEndShortTo] = nonCallPeriodEndYearsShort;\r\n const [ncEndLongFrom, ncEndLongTo] = nonCallPeriodEndYearsLong;\r\n\r\n const queryArgs = {\r\n 'nonCallPeriodEndDaysShort.From': moment.duration(ncEndShortFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDaysShort.To': moment.duration(ncEndShortTo, 'years').asDays(),\r\n 'nonCallPeriodEndDaysLong.From': moment.duration(ncEndLongFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDaysLong.To': moment.duration(ncEndLongTo, 'years').asDays(),\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/${dealReferenceName}/${transactionReferenceName}/volumes-count-short-long-dated`,\r\n queryArgs\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchKIndicator() {\r\n return fetchSafe(`/api/dashboard/market-stress/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchPortfolioInventorySecurities(pageSize, page, orderByColumn, sortOrder) {\r\n const url = urlBuilder(\r\n '/api/dealers-inventory/included-to-portfolio',\r\n {\r\n pageSize,\r\n page,\r\n sortOrder,\r\n orderByColumn\r\n }\r\n )\r\n return fetchSafe(url)\r\n}\r\n\r\nfunction fetchNewIssueWeeklySpreads() {\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/waswarfds`,\r\n {\r\n types: [TransactionType.newIssue],\r\n statuses: [TransactionStatus.Active],\r\n collateralTypes: [CollateralType.broadlySyndicated],\r\n currencyCode: Currency.USD\r\n }\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nexport const dashboardService = {\r\n fetchDailyTradingStats,\r\n fetchExportTradingStats,\r\n fetchScheduledBwics,\r\n fetchPortfolioSecurities,\r\n exportBwicStatistic,\r\n fetchColorRates,\r\n fetchDntRates,\r\n fetchSameDayPeriods,\r\n fetchDealersStatsExists,\r\n fetchDealersStats,\r\n exportDealersStats,\r\n fetchSellersStatsExists,\r\n fetchClientsStats,\r\n exportSellerStats,\r\n fetchPriceLevel,\r\n fetchDtcSellingBuying,\r\n fetchMedianAAA,\r\n fetchAAAPriceLevel,\r\n fetchDtcInvestmentGrade,\r\n fetchMostTradedTickers,\r\n fetchBiggestMovers,\r\n fetchPxTalkDeviation,\r\n fetchBwicPercentOfTrace,\r\n fetchTopChart,\r\n exportTopChart,\r\n fetchDeals,\r\n fetchExportDeals,\r\n fetchPortfolioInventorySecurities,\r\n fetchIssueTransactionVolumesCount,\r\n fetchVolumeCountByTransactionTypes,\r\n fetchVolumesCountShortLongDated,\r\n fetchIssuanceSpreads,\r\n fetchIssuenseSpreadsComparableData,\r\n fetchKIndicator,\r\n fetchNewIssueWeeklySpreads\r\n};\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\nexport const onBoardingTooltipService = {\r\n setCount\r\n}\r\n\r\nfunction setCount(data) {\r\n const url = '/api/account/set-tooltip-count';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { UserFeedback } from '../types/models/UserFeedback';\r\n\r\ninterface FeedbackService {\r\n sendFeedback(feedbackData: UserFeedback): Promise;\r\n}\r\n\r\nexport const feedbackService: FeedbackService = {\r\n sendFeedback,\r\n};\r\n\r\nfunction sendFeedback(feedbackData: UserFeedback): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(feedbackData),\r\n };\r\n\r\n return fetchSafe('/api/feedback', requestOptions);\r\n}\r\n","import { getFromCache } from './cache';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nexport const ratingService = {\r\n getSecurityRatings,\r\n getRatingMappings\r\n}\r\n\r\nfunction getSecurityRatings(securityId) {\r\n return fetchSafe(`/api/ratings/${securityId}`);\r\n}\r\n\r\nfunction getRatingMappings() {\r\n return getFromCache('/api/ratings/mappings');\r\n}\r\n","import moment from \"moment\";\r\nimport { responseType, constants } from \"../constants\";\r\nimport { fetchSafe } from \"./fetch.safe\";\r\nimport { urlBuilder } from \"./url.builder\";\r\nimport { BwicStatus } from \"../types/enums/BwicStatus\";\r\nimport { OrderByDirection } from \"../types/OrderByDirection\";\r\nimport { BidRequest } from \"../types/bid-as-dealer/BidRequest\";\r\nimport { PaginationResult } from \"../types/PaginationResult\";\r\nimport { SellerBuysideSearchResult } from \"../types/bid-as-dealer/SellerBuysideSearchResult\";\r\nimport { SellerBuySideFilterOptions } from '../types/bid-as-dealer/SellerBuysideFilterOptions';\r\nimport { BwicType } from \"../types/enums/BwicType\";\r\nimport { Rating } from \"../types/enums/Rating\";\r\nimport { OpenBiddingStatus } from \"../types/enums/OpenBiddingStatus\";\r\nimport { TApiCallResponse } from '../types/api-operation/ApiOperationResult';\r\nimport { BwicMonitorSortByOptions, bwicMonitorSortByApiValues } from \"../types/state/AllBwicsState\";\r\nimport { SellerBuysideSearchResultSummary } from \"../types/bid-as-dealer/SellerBuysideSearchResultSummary\";\r\nimport { appConfig } from \"../app-config\";\r\n\r\n\r\nexport const bidAsDealerRequestService = {\r\n getBwicBidRequests,\r\n findBidRequestsAsSeller,\r\n create,\r\n approve,\r\n reject,\r\n cancel,\r\n submit,\r\n exportBidRequestsAsSeller,\r\n exportBidRequestsAsDealer,\r\n bidAsDealerRequestExist,\r\n};\r\n\r\nfunction exportBidRequestsAsSeller(filterOptions: SellerBuySideFilterOptions, sortBy: BwicMonitorSortByOptions = BwicMonitorSortByOptions.NewestFirst): Promise {\r\n const sortByApiParams = bwicMonitorSortByApiValues[sortBy];\r\n const url = urlBuilder('/api/bid-as-dealer-requests/export', { ...filterOptions, sortOrder: sortByApiParams.direction });\r\n return fetchSafe(url, { responseType: responseType.file });\r\n}\r\n\r\nfunction getBwicBidRequests(bwicReferenceName: string): Promise {\r\n return fetchSafe(`/api/bid-as-dealer-requests/${bwicReferenceName}`);\r\n}\r\n\r\nfunction findBidRequestsAsSeller(\r\n filterOptions: SellerBuySideFilterOptions,\r\n sortBy: BwicMonitorSortByOptions = BwicMonitorSortByOptions.NewestFirst,\r\n loadSummary?: boolean\r\n): Promise & SellerBuysideSearchResultSummary> {\r\n const sortByApiParams = bwicMonitorSortByApiValues[sortBy];\r\n const url = urlBuilder('/api/bid-as-dealer-requests/search', {\r\n ...filterOptions,\r\n sortOrder: sortByApiParams.direction,\r\n loadSummary: loadSummary && !appConfig.isSummaryRowHidden\r\n });\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction create(\r\n bwicReferenceName: string,\r\n positionId: number,\r\n brokerDealerId: number,\r\n commission: number,\r\n value: number,\r\n size: number,\r\n salesCoverage: string[],\r\n bidLock: Date | undefined,\r\n) {\r\n const url = `/api/bid-as-dealer-requests/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ positionId, brokerDealerId, commission, value, size, salesCoverage, bidLock }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction approve(\r\n bwicReferenceName: string,\r\n positionId: number,\r\n bidRequestId: number,\r\n bidLock: Date | undefined): Promise {\r\n const url = `/api/bid-as-dealer-requests/confirm/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ positionId, id: bidRequestId, bidLock }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction reject(\r\n bwicReferenceName: string,\r\n positionId: number,\r\n bidRequestId: number,\r\n bidLock: Date | undefined,\r\n comment: string): Promise {\r\n const url = `/api/bid-as-dealer-requests/reject/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ positionId, id: bidRequestId, bidLock, comment }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction cancel(\r\n bwicReferenceName: string,\r\n positionId: number,\r\n bidRequestId: number,\r\n bidLock: Date | undefined): Promise {\r\n const url = `/api/bid-as-dealer-requests/cancel/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ positionId, id: bidRequestId, bidLock }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\ninterface BidRequestSubmitModel {\r\n positionId: number\r\n brokerDealerId: number\r\n commission: number\r\n value: number\r\n axed: boolean\r\n final: boolean\r\n size: number\r\n salesCoverage: string[]\r\n bidLock: Date | undefined\r\n acceptBiddingOverThemself: boolean\r\n stagedBiddingStatus?: OpenBiddingStatus | null\r\n}\r\n\r\nfunction submit(bwicReferenceName: string, bidRequests: BidRequestSubmitModel[]): Promise {\r\n const url = `/api/bid-as-dealer-requests/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(bidRequests)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction bidAsDealerRequestExist(): Promise {\r\n return fetchSafe('/api/bid-as-dealer-requests/exist')\r\n}\r\n\r\nfunction exportBidRequestsAsDealer(\r\n isinCusipsAndTickers: string[],\r\n from: Date | undefined,\r\n to: Date | undefined,\r\n statuses: BwicStatus[],\r\n ratings: Rating[],\r\n types: BwicType[],\r\n latestBidsOnly: boolean,\r\n orderByColumn: string | undefined,\r\n sortOrder: OrderByDirection | undefined) {\r\n const url = urlBuilder(\r\n '/api/bid-as-dealer-requests/bids/Export',\r\n {\r\n isinCusipsAndTickers,\r\n from: from && moment(from).format(constants.dateTimeFormatUtc),\r\n to: to && moment(to).format(constants.dateTimeFormatUtc),\r\n statuses,\r\n ratings,\r\n types,\r\n latestBidsOnly,\r\n orderByColumn,\r\n sortOrder\r\n }\r\n );\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n","import { AssignSalesRepresentatives } from '../types/sales-representative/AssignSalesRepresentatives';\r\nimport { SalesRepresentative } from '../types/sales-representative/SalesRepresentative';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\nexport const salesRepresentativesService = {\r\n getCurrentUserSalesRepresentatives,\r\n getList,\r\n assign,\r\n unassign\r\n}\r\n\r\nfunction getCurrentUserSalesRepresentatives(): Promise {\r\n return fetchSafe('/api/sales-representative', {}, true);\r\n}\r\n\r\nfunction getList(): Promise {\r\n return fetchSafe('/api/sales-representative/all')\r\n .then((sales: SalesRepresentative[]) => sales.sort( (a, b) => a.firstName.localeCompare(b.firstName) || a.lastName.localeCompare(b.lastName)));\r\n}\r\n\r\nfunction assign(model: AssignSalesRepresentatives): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/sales-representative/assign', requestOptions);\r\n}\r\n\r\nfunction unassign(model: AssignSalesRepresentatives): Promise {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/sales-representative', requestOptions);\r\n}\r\n","import { urlBuilder } from './url.builder';\r\nimport { responseType } from '../constants';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nexport const photoService = {\r\n getThumbnail\r\n}\r\n\r\nfunction getThumbnail(userId: number): Promise {\r\n const url = urlBuilder('/api/profile/thumbnail', { userId });\r\n const requestOptions = {\r\n method: 'GET',\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions, true);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { SettlementAgentCommissionByRating } from '../types/bid-as-dealer/SettlementAgentCommissionByRating';\r\n\r\nexport const clearingBankService = {\r\n saveClearingBankSettings,\r\n getSettlementAgentCommission\r\n}\r\n\r\nfunction saveClearingBankSettings(\r\n companyId: number,\r\n isClearingBank: boolean,\r\n dailyTradingLimit?: number,\r\n commissions?: SettlementAgentCommissionByRating) {\r\n const url = '/api/companies/clearing-bank';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ companyId, isClearingBank, dailyTradingLimit, ...commissions }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getSettlementAgentCommission(companyId: number): Promise {\r\n return fetchSafe(`/api/agreements/settlement-agent/${companyId}/commissions`);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { UserConfigType } from '../types/user-config/UserConfigType';\r\nimport { ImUserConfig } from '../types/user-config/UserConfig';\r\nimport { responseType } from '../constants';\r\nimport { UserFilterAlertStatus } from '../types/user-config/UserConfigFilter';\r\n\r\nexport const imUserConfigService = {\r\n getUserConfig,\r\n getDefaultUserConfig,\r\n createOrUpdateUserConfig,\r\n deleteUserConfig,\r\n updateFilterEmailAlertsConfig,\r\n deleteUserFilter\r\n};\r\n\r\nfunction getUserConfig(configType?: UserConfigType) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${configType || ''}`\r\n );\r\n}\r\n\r\nfunction getDefaultUserConfig(configType: UserConfigType) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${configType}/config/default`\r\n );\r\n}\r\n\r\nfunction createOrUpdateUserConfig(userConfig: ImUserConfig, withResponse = false): Promise {\r\n const requestOptions = {\r\n body: JSON.stringify(userConfig),\r\n method: 'PUT',\r\n responseType: withResponse\r\n ? responseType.json\r\n : responseType.none,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${userConfig.type}`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction updateFilterEmailAlertsConfig(filterAlertStatuses: UserFilterAlertStatus[]): Promise {\r\n const requestOptions = {\r\n body: JSON.stringify(filterAlertStatuses),\r\n method: 'PUT',\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/im-filters/alerts`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction deleteUserConfig(configType: UserConfigType, referenceName: string = '') {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${configType}/${referenceName}`,\r\n {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n }\r\n );\r\n}\r\n\r\nfunction deleteUserFilter(referenceName: string, filterType: UserConfigType.apFilter | UserConfigType.imFilter) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${filterType}/${referenceName}`,\r\n {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n }\r\n );\r\n}\r\n","import { fetchSafe } from \"./fetch.safe\";\r\nimport { PaymentCard } from '../types/billing/PaymentCard';\r\nimport { responseType } from '../constants/response.type';\r\nimport { SavePaymentCard } from \"../types/billing/SavePaymentCard\";\r\nimport { BillingContact } from \"../types/billing/BillingContact\";\r\nimport { SaveBillingContact } from \"../types/billing/SaveBillingContact\";\r\nimport { Subscription } from \"../types/billing/Subscription\";\r\nimport { BillingHistory } from '../types/billing/BillingHistory';\r\nimport moment from \"moment\";\r\n\r\nexport const billingService = {\r\n getPaymentCards,\r\n setPrimaryCard,\r\n deletePaymentCard,\r\n addPaymentCard,\r\n getBillingContact,\r\n saveBillingContact,\r\n saveSubscription, // admins only\r\n requestImProSubscription,\r\n getSubscriptions,\r\n changeSubscription,\r\n searchBillingHistory,\r\n notifySales\r\n};\r\n\r\nfunction getPaymentCards(): Promise {\r\n return fetchSafe('/api/billing/cards');\r\n}\r\n\r\nfunction setPrimaryCard(id: number): Promise {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/billing/set-primary-card/${id}`, requestOptions);\r\n}\r\n\r\nfunction deletePaymentCard(id: number): Promise {\r\n const requestOptions = {\r\n method: 'delete',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/billing/card/${id}`, requestOptions);\r\n}\r\n\r\nfunction addPaymentCard(model: SavePaymentCard & { cardId: string }): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/billing/card`, requestOptions);\r\n}\r\n\r\nfunction getBillingContact(): Promise {\r\n return fetchSafe(`/api/billing`);\r\n}\r\n\r\nfunction saveBillingContact(model: SaveBillingContact): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/billing`, requestOptions);\r\n}\r\n\r\nfunction saveSubscription(companyId: number, title: string, isTrial?: boolean, expirationDate?: Date) {\r\n const expiration = expirationDate \r\n ? moment(expirationDate).toISOString(true)\r\n : undefined;\r\n\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ title, expiration, isTrial }),\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(`/api/manage-subscriptions/${companyId}`, requestOptions);\r\n}\r\n\r\nfunction requestImProSubscription() {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/Profile/request-pro-subscription`, requestOptions);\r\n}\r\n\r\nfunction changeSubscription(subscriptionTitle: string) {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(subscriptionTitle),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/subscriptions/request`, requestOptions);\r\n}\r\n\r\nfunction getSubscriptions(): Promise {\r\n return fetchSafe(`/api/subscriptions`, {}, true);\r\n}\r\n\r\nfunction notifySales(): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/subscriptions/notify-sales`, requestOptions);\r\n}\r\n\r\nfunction searchBillingHistory(dateFrom: Date, dateTo: Date, statuses: number[]): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify({ dateFrom, dateTo, statuses }),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe('/api/billing/searchPayments', requestOptions);\r\n}","import { Conference } from '../types/marketing/Conference';\r\nimport { Releases } from '../types/marketing/Release';\r\nimport { Webinar } from '../types/marketing/Webinar';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nasync function fetchReleases(): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_MARKETING_ENDPOINT}/api/releases`);\r\n}\r\n\r\nfunction fetchWebinar(): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_MARKETING_ENDPOINT}/api/webinar`);\r\n}\r\n\r\nfunction fetchConferences(): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_MARKETING_ENDPOINT}/api/conferences`);\r\n}\r\n\r\nexport const releaseService = {\r\n fetchReleases,\r\n fetchWebinar,\r\n fetchConferences,\r\n};\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\nimport { responseType } from '../constants';\r\nimport { DocumentStoreType } from '../types/document/Document';\r\n\r\nexport const documentsService = {\r\n uploadDocument,\r\n uploadAndAssignDocument,\r\n downloadDocument,\r\n downloadAllDocuments,\r\n deleteDocument,\r\n uploadSecurities,\r\n downloadSecurities,\r\n getSecurityDocumentsExistFlag,\r\n downloadStatic\r\n}\r\n\r\nfunction getDocumentUrlByType(documentStoreType) {\r\n if (documentStoreType === DocumentStoreType.Settlement) {\r\n return '/api/settlement-documents'\r\n }\r\n if (documentStoreType === DocumentStoreType.Disclosure) {\r\n return `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/documents`\r\n }\r\n return '/api/documents'\r\n}\r\n\r\nfunction getDownloadAllUrlByType(documentStoreType) {\r\n if(documentStoreType === DocumentStoreType.Settlement) {\r\n return '/api/settlement-documents/download-all'\r\n }\r\n throw new Error('Download all is not supported');\r\n}\r\n\r\nfunction uploadDocument(file, progressCallback, documentStoreType) {\r\n return fileUpload(\r\n getDocumentUrlByType(documentStoreType),\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction uploadAndAssignDocument(file, dealReferenceName, documentType, progressCallback) {\r\n return fileUpload(\r\n `/api/documents/deal-document/${dealReferenceName}/${documentType}`,\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction downloadDocument(documentId, documentStoreType = DocumentStoreType.Default) {\r\n return fetchSafe(`${getDocumentUrlByType(documentStoreType)}/${documentId}`, {\r\n responseType: responseType.file\r\n });\r\n}\r\n\r\nfunction downloadAllDocuments(documentGroupKey, documentStoreType) {\r\n return fetchSafe(`${getDownloadAllUrlByType(documentStoreType)}/${documentGroupKey}`, {\r\n responseType: responseType.file\r\n })\r\n}\r\n\r\nfunction deleteDocument(documentId, dealTicker) {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/documents/${documentId}?ticker=${dealTicker}`, requestOptions);\r\n}\r\n\r\nfunction uploadSecurities(file, progressCallback) {\r\n const url = '/api/manage-securities';\r\n return fileUpload(\r\n url,\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction downloadSecurities() {\r\n return fetchSafe('/api/manage-securities/template', { responseType: responseType.file });\r\n}\r\n\r\nfunction getSecurityDocumentsExistFlag(isinCusip) {\r\n return fetchSafe(`/api/securities/hasDocuments/${isinCusip} `);\r\n}\r\n\r\nfunction downloadStatic(filename) {\r\n return fetchSafe(`/api/documents/static/${filename}`, { responseType: responseType.file });\r\n}\r\n","import { SettlementAccount } from '../types/settlement/SettlementAccount';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { SaveSettlementAccount } from '../types/settlement/SaveSettlementAccount';\r\nimport { SaveTradeAllocationItem, TradeAllocationItem } from '../types/trade-allocation/TradeAllocationItem';\r\nimport { TradeSettlementStatus } from '../types/settlement/TradeSettlementStatus';\r\nimport { TradeSide } from '../types/trades/TradeSide';\r\n\r\nexport const settlementService = {\r\n getSettlementAccounts,\r\n getTradeAllocation,\r\n saveSettlementAccount,\r\n deleteSettlementAccount,\r\n saveTradeAllocation\r\n}\r\n\r\nfunction getSettlementAccounts(): Promise {\r\n return fetchSafe('/api/settlement-accounts');\r\n}\r\n\r\nfunction getTradeAllocation(tradeId: string): Promise {\r\n return fetchSafe(`/api/trading/${tradeId}/allocation`);\r\n}\r\n\r\nfunction saveSettlementAccount(settlementAccount: SaveSettlementAccount): Promise {\r\n return fetchSafe('/api/settlement-accounts', {\r\n method: 'POST',\r\n body: JSON.stringify(settlementAccount),\r\n })\r\n}\r\n\r\nfunction deleteSettlementAccount(accountId: number): Promise {\r\n return fetchSafe(`/api/settlement-accounts/${accountId}`, { method: 'DELETE' })\r\n}\r\n\r\ntype TSaveAllocationResult = {\r\n referenceName: string;\r\n isBuyerAllocationManual: boolean;\r\n isSellerAllocationManual: boolean;\r\n allocationLock: Date;\r\n buyerSettlementStatus: TradeSettlementStatus;\r\n sellerSettlementStatus: TradeSettlementStatus;\r\n items: TradeAllocationItem[];\r\n};\r\n\r\nfunction saveTradeAllocation(\r\n tradeId: string,\r\n allocationLock: Date,\r\n items: SaveTradeAllocationItem[],\r\n side: TradeSide): Promise {\r\n return fetchSafe(`/api/trading/${tradeId}/allocation`, {\r\n method: 'POST',\r\n body: JSON.stringify({ allocationLock, items, side })\r\n });\r\n}\r\n","import { responseType } from '../constants';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\n\r\nexport const bidOnBehalfService = {\r\n getCompanies,\r\n submitBidsBulk,\r\n uploadFile,\r\n parseClipboard,\r\n downloadTemplate\r\n}\r\n\r\nfunction getCompanies(bwicReferenceName) {\r\n return fetchSafe(`/api/bidding/on-behalf/${bwicReferenceName}/companies`);\r\n}\r\n\r\nfunction submitBidsBulk(bwicReferenceName, bids) {\r\n const url = `/api/bidding/on-behalf/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(bids)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction uploadFile(file, progressCallback) {\r\n return fileUpload(\r\n '/api/bidding/on-behalf/parse/file',\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction parseClipboard(text) {\r\n const url = '/api/parse/clipboard';\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ text })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction downloadTemplate(bwicReferenceName) {\r\n return fetchSafe(\r\n `/api/bidding/on-behalf/template/${bwicReferenceName}`,\r\n { method: 'GET', responseType: responseType.file }\r\n );\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\nexport const pxTalkService = {\r\n normalize,\r\n save,\r\n bulkSave,\r\n deletePxTalk,\r\n fetchPxTalks\r\n};\r\n\r\nfunction normalize(talk, levelType) {\r\n return fetchSafe(`/api/bwics/normalize/${talk}/${levelType}`);\r\n}\r\n\r\nfunction save(bwicReferenceName, positionId, savePriceTalks, priceTalkLock, deletedPriceTalks) {\r\n const url = `/api/price-talk/save-position`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n bwicReferenceName,\r\n positionId,\r\n savePriceTalks,\r\n priceTalkLock,\r\n deletedPriceTalks\r\n }),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction bulkSave(bwicReferenceName, priceTalks) {\r\n const url = `/api/price-talk/save-broker-dealer`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n bwicReferenceName,\r\n priceTalks\r\n }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deletePxTalk(bwicReferenceName, positionId, companyId) {\r\n const url = `/api/price-talk/${bwicReferenceName}/${positionId}/${companyId}`;\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction fetchPxTalks(bwicReferenceName, positionId) {\r\n const url = `/api/price-talk/${bwicReferenceName}/${positionId}`;\r\n return fetchSafe(url, undefined, true);\r\n}\r\n","import qs from 'query-string';\r\nimport { pipelineFilters, responseType } from '../constants';\r\nimport { TransactionType } from '../types/amr-pipeline/enums/TransactionType';\r\nimport { ExclusionReason } from '../types/amr-pipeline/models/ExcludedDealer';\r\nimport { SettlementInstructions } from '../types/amr-pipeline/models/SettlementInstructions';\r\nimport { Tranche } from '../types/amr-pipeline/models/Tranche';\r\nimport { AmrInfoSaveForm } from '../types/deals/AmrInfoSaveForm';\r\nimport { DealSave } from '../types/deals/DealSave';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { DealDocumentsWithPattern } from '../types/amr-pipeline/models/DealDocumentsWithPattern';\r\n\r\ninterface ExcludedDealersData {\r\n editData: {\r\n trancheReferenceName: string;\r\n brokerDealerReferenceName: string;\r\n reasons?: ExclusionReason[];\r\n }[];\r\n}\r\n\r\ninterface GetDealTransactionsOptions {\r\n transactionTypes?: TransactionType[];\r\n}\r\n\r\nexport const dealsService = {\r\n getDeals,\r\n getDeal,\r\n getDealRegularDocuments,\r\n getDealDocuments,\r\n getCleansingNoticeDocuments,\r\n\r\n getClassAuctions,\r\n getLatestDealAuctions,\r\n getDealDocumentsByType,\r\n getDealsList,\r\n getDealsClassesList,\r\n getDealDocument,\r\n getDealDocumentTemplate,\r\n getDealsNamesList,\r\n getDealTransactions,\r\n getPreviousTransaction,\r\n getDealDetails,\r\n deleteDeal,\r\n updateDeal,\r\n updateClasses,\r\n getExcludedDealers,\r\n saveExcludedDealers,\r\n getAmrDocument,\r\n exportSettlementInstructions,\r\n getSettlementInstructions,\r\n saveSettlementInstructions,\r\n updateDealDocuments,\r\n saveAmrInfo,\r\n deleteAmrInfo,\r\n downloadAmrDocument,\r\n downloadAmrDocuments,\r\n validateRegularExpression,\r\n};\r\n\r\nfunction getDeals() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals`);\r\n}\r\n\r\nfunction getDeal(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}`);\r\n}\r\n\r\nfunction getDealRegularDocuments(dealReferenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents/regular-documents/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealDocuments(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents`);\r\n}\r\n\r\nfunction getAmrDocument(dealReferenceName: string, transactionReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/amr/documents`,\r\n );\r\n}\r\n\r\nfunction getClassAuctions(dealReferenceName: string, classReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/classes/${classReferenceName}/amr-classes`,\r\n );\r\n}\r\n\r\nfunction getLatestDealAuctions(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/latest-amr-classes`);\r\n}\r\n\r\nfunction getDealDocumentsByType(dealReferenceName: string, documentType: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents/${documentType}/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealsList(searchString: string, offset = 0, count = pipelineFilters.searchItemsPerLoad) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Deals/?count=${count}&offset=${offset}&searchTerm=${searchString}`,\r\n );\r\n}\r\n\r\nfunction getDealsClassesList(searchString: string, offset = 0, count = pipelineFilters.searchItemsPerLoad) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Deals/?forClasses=true&count=${count}&offset=${offset}&searchTerm=${searchString}`,\r\n );\r\n}\r\n\r\nfunction getDealDocument(dealReferenceName: string, referenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents/${referenceName}/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getCleansingNoticeDocuments(dealReferenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents/cleansing-notice-documents/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealDocumentTemplate() {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/documents/template`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealsNamesList(searchTerm: string, orderByField?: string, ascending?: boolean) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/get/list/?searchTerm=${searchTerm}&orderBy[0].field=${orderByField}&orderBy[0].ascending=${ascending}`,\r\n );\r\n}\r\n\r\nfunction getDealTransactions(dealReferenceName: string, options: GetDealTransactionsOptions = {}) {\r\n const queryParams = qs.stringify(options);\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions?${queryParams}`);\r\n}\r\n\r\nfunction getPreviousTransaction(dealReferenceName: string, transactionReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/previous`);\r\n}\r\n\r\nfunction getDealDetails(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/classes`);\r\n}\r\n\r\nfunction updateDeal(dealReferenceName: string, formData: DealSave) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}`, {\r\n method: 'PUT',\r\n body: JSON.stringify(formData),\r\n responseType: responseType.text,\r\n });\r\n}\r\n\r\nfunction updateClasses(dealReferenceName: string, classes: Tranche[]) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/classes`, {\r\n method: 'PUT',\r\n body: JSON.stringify(classes),\r\n responseType: responseType.json,\r\n });\r\n}\r\n\r\nfunction deleteDeal(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}`, {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction getExcludedDealers(dealReferenceName: string, transactionReferenceName: string, classReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/classes/${classReferenceName}/excluded-dealers`,\r\n );\r\n}\r\n\r\nfunction saveExcludedDealers(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n classReferenceName: string,\r\n excludedDealersData: ExcludedDealersData,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/classes/${classReferenceName}/excluded-dealers`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify(excludedDealersData),\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction getSettlementInstructions(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n classReferenceName: string,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/classes/${classReferenceName}/settlement-instructions`,\r\n );\r\n}\r\n\r\nfunction saveSettlementInstructions(\r\n dealReferenceName: string,\r\n classReferenceName: string,\r\n settlementInstructions: SettlementInstructions,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/${classReferenceName}/settlement-instructions`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify(settlementInstructions),\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction exportSettlementInstructions(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n classReferenceName: string,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/classes/${classReferenceName}/settlement-instructions/download`,\r\n {\r\n responseType: responseType.file,\r\n },\r\n );\r\n}\r\n\r\nfunction saveAmrInfo(dealReferenceName: string, transactionReferenceName: string, amrInfo: AmrInfoSaveForm) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/amr`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify(amrInfo),\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction deleteAmrInfo(dealReferenceName: string, transactionReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}`,\r\n {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction updateDealDocuments(dealReferenceName: string, documents: DealDocumentsWithPattern) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents`, {\r\n method: 'PUT',\r\n body: JSON.stringify(documents),\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction downloadAmrDocument(dealReferenceName: string, transactionReferenceName: string, documentReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/amr/document/${documentReferenceName}/download`,\r\n {\r\n responseType: responseType.file,\r\n },\r\n );\r\n}\r\n\r\nfunction downloadAmrDocuments(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/amr/documents/download`,\r\n {\r\n responseType: responseType.file,\r\n },\r\n );\r\n}\r\n\r\nfunction validateRegularExpression(pattern: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/pattern/validate`,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify({ pattern }),\r\n }\r\n );\r\n}\r\n","import { HubConnectionBuilder, HubConnectionState, LogLevel } from '@microsoft/signalr';\r\nimport { store } from '../store';\r\nimport { constants } from '../constants';\r\nimport {\r\n dashboardPushUpdateTradingStats,\r\n dashboardPushUpdatePriceLevel,\r\n dashboardPushUpdateMostTradedTickers,\r\n dashboardPushBiggestMovers,\r\n subscriptionsActions,\r\n apiOperationActions,\r\n notificationActions,\r\n companiesActions\r\n} from '../actions';\r\nimport { dataPushReceived } from '../actions/push.bwic.actions';\r\nimport { settlementAgentAgeementPushActions } from '../actions/settlement-agent-agreement-push.actions';\r\nimport { jsonUtils } from \"../utils\";\r\nimport { accountService } from \"./account.service\";\r\nimport { user, refreshTokenController } from '../user';\r\nimport { logger } from '../logging/logger';\r\nimport { pushInvitationActions } from '../actions';\r\nimport { pushUserActions } from '../actions/push.user.actions.js';\r\nimport { inventoryActions } from '../actions/inventory.actions';\r\nimport { bdInventoryActions } from '../actions/bd-inventory.actions';\r\nimport { brokerDealerContactListActions } from '../actions/broker-dealer-contact-list.actions';\r\nimport { settlementAgentAgreementActions } from '../actions/settlement-agent-agreements.actions';\r\nimport { newBwicDealersActions } from '../actions/new-bwic-dealers.actions';\r\nimport { portfolioListActions } from '../actions/portfolio-list.actions';\r\nimport { notificationUtils } from '../utils/notifications.utils';\r\nimport { errorActions } from '../actions';\r\n\r\nclass PushNotificationService {\r\n lastReconnectError = null;\r\n\r\n build = async () => {\r\n this.conn = new HubConnectionBuilder()\r\n .withUrl(constants.notificationService, this.getAccessTokenFactory())\r\n .withAutomaticReconnect(this.getReconnectTimeoutPolicy())\r\n .configureLogging({ log: (level, message) => level >= LogLevel.Debug && this.log(message) })\r\n .build();\r\n\r\n this.conn.on('PushNotification', body => {\r\n this.log('Push: Toast Notification', body)\r\n store.dispatch(notificationActions.notificationPushReceived(jsonUtils.parse(body)));\r\n });\r\n\r\n this.conn.on('PushNotificationRead', data => {\r\n store.dispatch(notificationActions.notificationRead(data))\r\n });\r\n\r\n this.conn.on('PushNotificationReadAll', () => {\r\n store.dispatch(notificationActions.notificationReadAll())\r\n });\r\n\r\n this.conn.on('PushBwic', data => {\r\n store.dispatch(dataPushReceived(jsonUtils.parse(data)));\r\n });\r\n\r\n this.conn.on('PushCompany', data => {\r\n store.dispatch(companiesActions.companyPushDataReceived(jsonUtils.parse(data)));\r\n });\r\n\r\n this.conn.on('PushPortfolioAlert', data => {\r\n store.dispatch(portfolioListActions.updateSendAlertState(data));\r\n });\r\n\r\n this.conn.on('PushTradingStats', response => {\r\n store.dispatch(dashboardPushUpdateTradingStats(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushPriceLevel', response => {\r\n store.dispatch(dashboardPushUpdatePriceLevel(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushMostTradedTickers', response => {\r\n store.dispatch(dashboardPushUpdateMostTradedTickers(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushBiggestMovers', response => {\r\n this.log('PushBiggestMovers push data received');\r\n store.dispatch(dashboardPushBiggestMovers(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushInvitationSent', response => {\r\n store.dispatch(pushInvitationActions.dataPushReceived(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushUser', response => {\r\n this.log('User push data received');\r\n store.dispatch(pushUserActions.user(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushBidAsDealerAgreement', response => {\r\n this.log('Bid as dealer agreement push data received');\r\n store.dispatch(settlementAgentAgeementPushActions.settlementAgentAgreementPushReceived(jsonUtils.parse(response)));\r\n store.dispatch(settlementAgentAgreementActions.pushDataReceived(jsonUtils.parse(response)));\r\n store.dispatch(newBwicDealersActions.sellerBidAsDealerAgreementsPushDataReceived(jsonUtils.parse(response)));\r\n });\r\n\r\n this.conn.on('PushSubscription', response => {\r\n this.log('Subscription push data received');\r\n store.dispatch(subscriptionsActions.subscriptionPushReceived(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushContact', response => {\r\n this.log('Dealers company contacts received');\r\n store.dispatch(brokerDealerContactListActions.pushUpdateList(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushOperationResult', body => {\r\n this.log('Push operation result received');\r\n store.dispatch(apiOperationActions.result(jsonUtils.parse(body)));\r\n });\r\n\r\n this.conn.on('PushInventorySecurities', body => {\r\n this.log('Inventory security push data received');\r\n const data = jsonUtils.parse(body);\r\n store.dispatch(bdInventoryActions.pushInventory(data));\r\n store.dispatch(inventoryActions.pushInventory(data.updatedInventorySecurities, data.lockModifiedDate));\r\n });\r\n\r\n this.conn.onreconnecting(error => store.dispatch(notificationActions.notificationServiceReconnecting(error)));\r\n\r\n this.conn.onreconnected(() => {\r\n this.lastReconnectError = null;\r\n store.dispatch(notificationActions.notificationServiceReconnected())\r\n });\r\n\r\n this.conn.onclose((e) => {\r\n store.dispatch(notificationActions.notificationServiceDisconnected());\r\n\r\n const statusCode = this.lastReconnectError && this.lastReconnectError.statusCode;\r\n this.log('Connection closed', statusCode);\r\n\r\n if (statusCode === 401) {\r\n accountService.logout();\r\n } else if (this.lastReconnectError) {\r\n window.location.reload(true);\r\n } else if(e) {\r\n this.start();\r\n }\r\n });\r\n };\r\n\r\n start = async (attempt = 1) => {\r\n if (\r\n this.conn.state !== HubConnectionState.Disconnected &&\r\n this.conn.state !== HubConnectionState.Disconnecting) {\r\n store.dispatch(notificationActions.notificationServiceConnected());\r\n return;\r\n }\r\n\r\n try {\r\n await this.conn.start();\r\n store.dispatch(notificationActions.notificationServiceConnected());\r\n } catch (e) {\r\n if (user.isAuthenticated()) {\r\n\r\n const isUnauthorized = e && e.toString().includes('401');\r\n\r\n if (attempt < constants.pushNotificationsServiceRestartAttemptsLimit) {\r\n const timeout = constants.pushNotificationsServiceRestartTimeout / 1000;\r\n this.log(`Failed to start Push Notification Service. Next attempt in ${timeout} seconds.`);\r\n\r\n setTimeout(() => this.start(++attempt), constants.pushNotificationsServiceRestartTimeout)\r\n } else if (isUnauthorized) {\r\n this.log('Push Notification Service could not be started. Logging out.');\r\n accountService.logout();\r\n } else {\r\n this.log('Push Notification Service could not be started. Reload page.');\r\n window.location.reload(true);\r\n }\r\n }\r\n\r\n store.dispatch(notificationActions.notificationServiceDisconnected());\r\n }\r\n };\r\n\r\n stop = async () => {\r\n try {\r\n if (this.conn.state !== HubConnectionState.Disconnected) {\r\n this.lastReconnectError = null;\r\n await this.conn.stop();\r\n }\r\n } catch (e) {\r\n logger.exception('SignalR: Failed to Stop Push Notification Service.');\r\n }\r\n }\r\n\r\n getAccessTokenFactory = () => ({\r\n accessTokenFactory: async () => {\r\n if (user.isAuthenticated()) {\r\n return await refreshTokenController.ensureTokenUpToDate(user.token(), user.refreshToken().refreshToken);\r\n } else {\r\n accountService.logout();\r\n return null;\r\n }\r\n }\r\n })\r\n\r\n getReconnectTimeoutPolicy = () => ({\r\n nextRetryDelayInMilliseconds: (retryContext) => {\r\n this.lastReconnectError = retryContext.retryReason;\r\n\r\n if (!user.isAuthenticated()) {\r\n return null;\r\n }\r\n\r\n switch (retryContext.previousRetryCount) {\r\n case 0: return 0;\r\n case 1: return 2000;\r\n case 2: return 10000;\r\n case 3: return 30000;\r\n default: return null;\r\n }\r\n }\r\n })\r\n\r\n send = (methodName, param) => {\r\n if (!notificationUtils.isConnected(this.conn.state)) {\r\n return Promise.reject();\r\n }\r\n if (param === undefined) {\r\n return this.conn.invoke(methodName)\r\n }\r\n return this.conn.invoke(methodName, param)\r\n };\r\n\r\n sendNotification = async (methodName, subj, message) => {\r\n if (!notificationUtils.isConnected(this.conn.state)) {\r\n return Promise.reject();\r\n }\r\n\r\n try {\r\n await this.conn.invoke(methodName, subj, message);\r\n } catch (error) {\r\n this.log(error);\r\n store.dispatch(errorActions.unexpectedError(error));\r\n }\r\n }\r\n\r\n log = (message, payload) => logger.trace('SignalR: ' + message, payload);\r\n\r\n isConnected = () => this.conn.state === HubConnectionState.Connected\r\n}\r\n\r\nexport const pushNotificationService = new PushNotificationService();\r\n","import { createSelector } from 'reselect';\r\nimport { Bid } from '../types/bidding/Bid';\r\nimport { BwicPosition } from '../types/bwic/BwicPosition';\r\nimport { arrayUtils } from '../utils/array.utils';\r\nimport { biddingUtils } from '../utils/bidding.utils';\r\n\r\ntype TState = { securities: BwicPosition[], includeDirectBids?: boolean };\r\n\r\nexport const getSecuritiesWithLatestBids = createSelector(\r\n (state: TState) => state.securities,\r\n (state: TState) => state.includeDirectBids,\r\n (securities: BwicPosition[], includeDirectBids: boolean | undefined = true) =>\r\n securities.map(s => ({ ...s, bids: getLatestBids(s.bids, includeDirectBids) }))\r\n);\r\n\r\nfunction getLatestBids(allBids: Bid[], includeDirectBids: boolean): Bid[] {\r\n if (!allBids || !allBids.length) {\r\n return [];\r\n }\r\n\r\n const bids = includeDirectBids\r\n ? allBids\r\n : allBids.filter(b => !b.buyerPseudoOrderNumber);\r\n\r\n const bidsByCompany = [...arrayUtils.groupBy(bids, (bid: Bid) => biddingUtils.getBidCompanyIdentifier(bid)).values()];\r\n\r\n return bidsByCompany\r\n .filter(companyBids => companyBids && companyBids.length)\r\n .map(companyBids => companyBids.sort((a: Bid, b: Bid) => b.id - a.id))\r\n .map(companyBids => companyBids[0]);\r\n}\r\n\r\nexport function getLatestStage1Bids(bids: Bid[]) {\r\n const stage1Bids = bids.filter(b => b.stagedBiddingStatus == null);\r\n return getLatestBids(stage1Bids, true);\r\n}\r\n","import qs from 'query-string';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { HelpResourceCategory, HelpResourceSection } from '../types/help-resources/HelpResourceCategory';\r\nimport { ArticleAttachmentList, HelpResourceArticle, HelpResourceSectionArticlesList } from '../types/help-resources/HelpResourceArticle';\r\nimport { HelpResourceSearch } from '../types/help-resources/HelpResourceSearch';\r\nimport { responseType } from '../constants';\r\n\r\nconst isDraft = (entityName: string) => {\r\n return /^\\s?\\[Draft\\]/.test(entityName)\r\n}\r\n\r\nasync function fetchCategories(): Promise {\r\n const categories: HelpResourceCategory[] = await fetchSafe('/api/Zendesk/categories');\r\n return categories.filter(category => category.name && !isDraft(category.name))\r\n}\r\n\r\nasync function fetchCategorySections(categoryId: number): Promise {\r\n return await fetchSafe(`/api/Zendesk/categories/${categoryId}/sections`);\r\n}\r\n\r\n// Getting all pages at once due restricted limits of maximum 100 articles\r\nasync function fetchCategoryArticles(categoryId: number, page: number = 1, result: HelpResourceArticle[] = []): Promise {\r\n const pageSize = 100; // maximum ammount\r\n const nextPage = page + 1;\r\n const queryString = `?${qs.stringify({ page, pageSize })}`;\r\n const iterationResult = await fetchSafe(`/api/Zendesk/categories/${categoryId}/articles${queryString}`);\r\n const prevCount = result.length;\r\n result = [...result, ...iterationResult];\r\n if (result.length === prevCount || iterationResult.length < pageSize) {\r\n return result;\r\n }\r\n return fetchCategoryArticles(categoryId, nextPage, result);\r\n}\r\n\r\nasync function fetchSection(sectionId: number): Promise {\r\n const section = await fetchSafe(`/api/Zendesk/sections/${sectionId}/articles`);\r\n if (isDraft(section.sectionName) || isDraft(section.categoryName)) {\r\n return {\r\n sectionName: '',\r\n categoryName: '',\r\n articles: []\r\n };\r\n }\r\n return section;\r\n}\r\n\r\nfunction fetchBySearch(search: string, categoryId: number | null, page: number = 1): Promise {\r\n const queryString = `?${qs.stringify({ page })}`;\r\n return fetchSafe(`/api/Zendesk/search/${search}${categoryId ? `/${categoryId}` : ''}${queryString}`);\r\n}\r\n\r\nfunction getArticleImage(src: string): Promise<{ name: string, blob: File }> {\r\n return fetchSafe(src, { responseType: responseType.file });\r\n}\r\n\r\n\r\nfunction getArticleAttachment(id: number, name: string) {\r\n return fetchSafe(`/api/Zendesk/image/${id}/${name}`, { responseType: responseType.file })\r\n}\r\n\r\nfunction getArticleAttachmentsList(articleId: number): Promise {\r\n return fetchSafe(`/api/Zendesk/attechment/${articleId}`)\r\n}\r\n\r\nexport const helpResourcesService = {\r\n fetchSection,\r\n fetchCategories,\r\n fetchCategorySections,\r\n fetchCategoryArticles,\r\n fetchBySearch,\r\n getArticleImage,\r\n getArticleAttachment,\r\n getArticleAttachmentsList\r\n}\r\n","import { TradeAllocationTemplate } from \"../types/trade-allocation/template/TradeAllocationTemplate\";\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { SaveTradeAllocationTemplate } from \"../types/trade-allocation/template/SaveTradeAllocationTemplate\";\r\n\r\nexport const tradeAllocationTemplateService = {\r\n getTemplates,\r\n setTemplateActive,\r\n saveTemplate,\r\n deleteTemplate\r\n};\r\n\r\nfunction getTemplates(): Promise {\r\n return fetchSafe('/api/allocation-templates');\r\n}\r\n\r\nfunction setTemplateActive(templateId: number, active: boolean, lock: Date): Promise {\r\n return fetchSafe('/api/allocation-templates', {\r\n method: 'PATCH',\r\n body: JSON.stringify({ id: templateId, active, lock }),\r\n responseType: responseType.json\r\n }, true);\r\n}\r\n\r\nfunction saveTemplate(template: SaveTradeAllocationTemplate): Promise {\r\n return fetchSafe('/api/allocation-templates', {\r\n method: 'POST',\r\n body: JSON.stringify(template),\r\n responseType: responseType.json\r\n }, true);\r\n}\r\n\r\nfunction deleteTemplate(templateId: number): Promise {\r\n return fetchSafe(`/api/allocation-templates/${templateId}`, { method: 'DELETE' }, true);\r\n}\r\n","import qs from 'query-string';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { roles } from '../constants';\r\nimport { HavingDealType } from '../types/amr-pipeline/enums/HavingDealType';\r\nimport { CompanyStatus } from '../types/amr-pipeline/enums/CompanyStatus';\r\n\r\ninterface CompaniesQueryParams {\r\n searchString?: string;\r\n havingDealType?: HavingDealType;\r\n favorites?: boolean;\r\n roles?: string | string[];\r\n statuses?: CompanyStatus[];\r\n}\r\n\r\ntype CMHavingDealTypes = HavingDealType.CloManagers | HavingDealType.CmHavingAllPublishedDeals | HavingDealType.None;\r\n\r\nfunction getCompanies(queryParams?: CompaniesQueryParams) {\r\n const queryString = `?${qs.stringify(queryParams || {})}`;\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${queryString}`\r\n );\r\n}\r\n\r\nfunction getCompanyInfo(companyReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}`);\r\n}\r\n\r\nfunction getMembersList(companyReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/members`);\r\n}\r\n\r\nfunction getManagersList(havingDealType: CMHavingDealTypes = HavingDealType.None, favorites = false) {\r\n return getCompanies({\r\n havingDealType,\r\n favorites,\r\n roles: roles.CollateralManager,\r\n });\r\n}\r\n\r\nfunction getArrangersList(havingDeals = false, statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n havingDealType: havingDeals ? HavingDealType.BdHavingDeals : undefined,\r\n roles: 'BrokerDealer',\r\n statuses,\r\n });\r\n}\r\n\r\nfunction getTrusteeList(statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n roles: 'Trustee',\r\n statuses,\r\n });\r\n}\r\n\r\nfunction getCollateralManagerList(statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n roles: roles.CollateralManager,\r\n statuses,\r\n });\r\n}\r\n\r\nfunction getMajorityEquityList(statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n roles: 'MajorityEquity',\r\n statuses,\r\n });\r\n} \r\n\r\nfunction getAmrAgentList(statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n roles: 'AmrAgent',\r\n statuses,\r\n });\r\n} \r\n\r\nfunction getBanksList() {\r\n return getCompanies({\r\n havingDealType: HavingDealType.Banks,\r\n roles: 'BrokerDealer',\r\n });\r\n}\r\n\r\nfunction getAvailableBrokerDealers() {\r\n return getCompanies({\r\n roles: 'BrokerDealer',\r\n });\r\n}\r\n\r\nexport const amrCompaniesService = {\r\n getCompanies,\r\n getCompanyInfo,\r\n getMembersList,\r\n getTrusteeList,\r\n getCollateralManagerList,\r\n getMajorityEquityList,\r\n getAmrAgentList,\r\n getManagersList,\r\n getArrangersList,\r\n getBanksList,\r\n getAvailableBrokerDealers\r\n};\r\n","import { fetchSafe } from \"./fetch.safe\";\r\nimport { responseType } from '../constants';\r\nimport { SaveInventoryPosition } from '../types/inventory/SaveInventoryPosition';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { ParsedInventoryPosition } from '../types/inventory/ParsedInventoryPosition';\r\nimport { fileUpload } from \"./file.upload\";\r\nimport { InventorySearchResult } from \"../types/inventory/InventorySearchResult\";\r\nimport { appConfig } from \"../app-config\";\r\n\r\nexport const inventoryService = {\r\n getInventoryExistFlag,\r\n getAllInventory,\r\n getBdInventory,\r\n getAdminEditInventory,\r\n setTraded,\r\n save,\r\n exportInventoryList,\r\n sendEmail,\r\n uploadSecurities,\r\n getSecuritiesXlsxTemplate,\r\n parseSecuritiesStirng,\r\n getActiveSecurityIdList,\r\n};\r\n\r\nfunction getInventoryExistFlag(): Promise {\r\n return fetchSafe('/api/dealers-inventory/has-inventory');\r\n}\r\n\r\nfunction getBdInventory(): Promise<{ inventorySecurities: InventoryPosition[], lockModifiedDate: Date | null }> {\r\n return fetchSafe('/api/dealers-inventory');\r\n}\r\n\r\nfunction getAdminEditInventory(companyId: number): Promise<{ inventorySecurities: InventoryPosition[], lockModifiedDate: Date | null }> {\r\n return fetchSafe(`/api/dealers-inventory/${companyId}`);\r\n}\r\n\r\nexport interface InventorySearchParams {\r\n identifiers: string[];\r\n statuses: number[];\r\n ratings: string[];\r\n dealers: number[] | null;\r\n orderByColumn?: number;\r\n sortOrder?: number;\r\n page?: number;\r\n pageSize?: number;\r\n from?: Date;\r\n to?: Date;\r\n currentItems?: boolean;\r\n loadSummary?: boolean;\r\n}\r\n\r\nfunction getAllInventory(params: InventorySearchParams): Promise {\r\n return fetchSafe('/api/dealers-inventory/asset-manager', {\r\n method: 'POST', body: JSON.stringify({\r\n ...params, \r\n loadSummary: params.loadSummary && !appConfig.isSummaryRowHidden\r\n })\r\n });\r\n}\r\n\r\nfunction setTraded(inventoryPositionId: number, lockModifiedDate: Date, tradeDate: Date): Promise {\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ lockModifiedDate, tradeDate }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/dealers-inventory/set-traded/${inventoryPositionId}`, requestOptions);\r\n}\r\n\r\nfunction save(inventorySecurities: SaveInventoryPosition[], lockModifiedDate?: Date, companyId?: number): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify({\r\n inventorySecurities,\r\n lockModifiedDate,\r\n companyId\r\n }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe(`/api/dealers-inventory`, requestOptions);\r\n}\r\n\r\nfunction exportInventoryList(params: InventorySearchParams): Promise<{ blob: Blob, name: string }> {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/dealers-inventory/export', requestOptions)\r\n}\r\n\r\nfunction sendEmail(params: { selectedDealerEmail: boolean, selectedBloombergEmail: boolean }): Promise {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none,\r\n body: JSON.stringify({\r\n toDealerEmail: params.selectedDealerEmail,\r\n toBloombergEmail: params.selectedBloombergEmail\r\n }),\r\n };\r\n return fetchSafe('/api/dealers-inventory/send-list', requestOptions)\r\n}\r\n\r\nfunction uploadSecurities(\r\n file: File,\r\n progressCallback: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null): Promise {\r\n return fileUpload(\r\n '/api/dealers-inventory/ParseFile',\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction getSecuritiesXlsxTemplate(): Promise<{ name: string, blob: Blob }> {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/dealers-inventory/template', requestOptions);\r\n}\r\n\r\nfunction parseSecuritiesStirng(text: string): Promise {\r\n const url = '/api/dealers-inventory/clipboard';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ text })\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getActiveSecurityIdList(): Promise {\r\n return fetchSafe('/api/dealers-inventory/active-securities-ids');\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { urlBuilder } from './url.builder';\r\nimport {\r\n ManageEmailDetails,\r\n ManageEmailDetailsEventStatus,\r\n ManageEmailTypeOption\r\n} from '../types/management/ManageEmailDetails';\r\n\r\nconst getEmail = (\r\n requestParams: {\r\n from: string | null | undefined;\r\n to: string | null | undefined;\r\n page: number,\r\n pageSize: number,\r\n emailTypes: number[],\r\n emailEventTypes?: ManageEmailDetailsEventStatus[]\r\n }\r\n): Promise<{ result: ManageEmailDetails[]; totalRecordNumber: number; }> => {\r\n const url = urlBuilder('/api/email-trace', requestParams)\r\n return fetchSafe(url)\r\n}\r\n\r\nconst getEmailTypes = (\r\n): Promise => {\r\n return fetchSafe('/api/email-trace/types')\r\n}\r\n\r\nexport const manageEmailsService = {\r\n getEmail,\r\n getEmailTypes\r\n}\r\n","import qs from 'query-string';\r\nimport { City } from '../types/location/City';\r\nimport { Country } from '../types/location/Country';\r\nimport { State } from '../types/location/State';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nfunction getCountries(): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/address/all-countries`);\r\n}\r\n\r\nfunction getStates(countryId: number): Promise {\r\n const queryParams = qs.stringify({ countryId });\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/address/states?${queryParams}`);\r\n}\r\n\r\nfunction getCities(countryId: number, stateId?: number): Promise {\r\n const queryParams = qs.stringify({ countryId, stateId });\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/address/cities?${queryParams}`);\r\n}\r\n\r\nexport const addressService = {\r\n getCountries,\r\n getStates,\r\n getCities,\r\n};\r\n","import moment from 'moment';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\nimport { responseType } from '../constants';\r\nimport { getFromCache } from './cache';\r\nimport { urlBuilder } from './url.builder';\r\nimport { moneyUtils } from '../utils';\r\nimport { bwicMonitorSortByApiValues } from '../types/state/AllBwicsState';\r\nimport { appConfig } from '../app-config';\r\n\r\nexport const bwicService = {\r\n getAssets,\r\n getOpenBiddingStatus,\r\n getBwicHistory,\r\n uploadSecurities,\r\n getSecuritiesXlsxTemplate,\r\n getSecurityDocsZip,\r\n searchSecurities,\r\n searchSecuritiesGlobal,\r\n searchBwics,\r\n submit,\r\n exportBwic,\r\n exportBwics,\r\n parseSecuritiesStirng,\r\n getByReferenceName,\r\n cancel,\r\n markHistoryMessagesAsRead,\r\n setColorDistribution,\r\n completeBwic,\r\n myBwicsExist,\r\n saveAutoFeedbackConfiguration,\r\n validateTradeLimits,\r\n isBwicWithSecuritesExist,\r\n finishStage,\r\n getSecurityBwicStatistics,\r\n getClassDetails\r\n}\r\n\r\nfunction getAssets() {\r\n return getFromCache('/api/asset-types');\r\n}\r\n\r\nfunction getOpenBiddingStatus(referenceName) {\r\n return fetchSafe('/api/bwics/open-bidding-status/' + encodeURIComponent(referenceName), {}, true);\r\n}\r\n\r\nfunction uploadSecurities(file, progressCallback) {\r\n return fileUpload(\r\n '/api/securities',\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction getSecuritiesXlsxTemplate() {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe('/api/securities/template', requestOptions);\r\n}\r\n\r\nfunction getSecurityDocsZip(isinCusip) {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(`/api/securities/documents/${isinCusip}`, requestOptions);\r\n}\r\n\r\nfunction getBwicHistory(bwicReferenceName) {\r\n return fetchSafe(`/api/bwics/${bwicReferenceName}/history`);\r\n}\r\n\r\nfunction searchSecurities(searchTerm) {\r\n return fetchSafe(`/api/securities?searchTerm=${searchTerm}`);\r\n}\r\n\r\nfunction searchSecuritiesGlobal(searchTerm, searchByTicker, abortSignal) {\r\n const endpoint = searchByTicker\r\n ? `/api/securities/search-ticker?searchTerm=${searchTerm}`\r\n : `/api/securities/search-isin-cusip?searchTerm=${searchTerm}`;\r\n\r\n return fetchSafe(endpoint, undefined, false, abortSignal);\r\n}\r\n\r\nfunction submit(bwic) {\r\n const url = '/api/bwics';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(bwic),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction searchBwics(criteria, page, pageSize, sortBy, loadSummary) {\r\n const sortByApiParams = bwicMonitorSortByApiValues[sortBy];\r\n const url = urlBuilder('/api/bwics/search', {\r\n page,\r\n pageSize,\r\n sortOrder: sortByApiParams?.direction,\r\n loadSummary: loadSummary && !appConfig.isSummaryRowHidden\r\n });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ ...criteria, loadSummary: loadSummary && !appConfig.isSummaryRowHidden })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction exportBwic(referenceName) {\r\n const url = `/api/bwics/export/${referenceName}`;\r\n\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction exportBwics(criteria, page, pageSize, sortBy) {\r\n const sortByApiParams = bwicMonitorSortByApiValues[sortBy];\r\n const url = urlBuilder('/api/bwics/export', { page, pageSize, sortOrder: sortByApiParams.direction });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(criteria),\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction parseSecuritiesStirng(text) {\r\n const url = '/api/securities/clipboard';\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ text })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getByReferenceName(referenceName) {\r\n return fetchSafe(`/api/bwics/${referenceName}`);\r\n}\r\n\r\nfunction cancel(referenceName, reason) {\r\n const url = `/api/bwics/cancel/${referenceName}`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(reason),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction markHistoryMessagesAsRead(bwicActions) {\r\n const url = '/api/bwics/history/read';\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(bwicActions),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction setColorDistribution(bwicReferenceName, enabled) {\r\n const url = `/api/bwics/color-distribution/${enabled ? 'enable' : 'disable'}/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction completeBwic(bwicReferenceName, colorDistributionModel) {\r\n const url = `/api/bwics/finish/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(colorDistributionModel),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction myBwicsExist(isBdBuy) {\r\n return fetchSafe(urlBuilder('/api/bwics/myBwicsExist', { buyBwics: isBdBuy }));\r\n}\r\n\r\nfunction saveAutoFeedbackConfiguration(bwicReferenceName, configuration) {\r\n const url = `/api/bwics/auto-feedback-configuration/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify(configuration),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction validateTradeLimits(bwicDate, bidsDue, timeZone, bwicPositions) {\r\n const url = '/api/bwics/validate-sell-limits';\r\n const model = {\r\n date: moment(bwicDate).startOf('day').utcOffset(0, true).toISOString(),\r\n bidsDue, timeZone,\r\n positions: bwicPositions.map(p => ({\r\n securityId: p.securityId,\r\n isinCusip: p.isinCusip,\r\n ticker: p.ticker,\r\n currency: p.currency,\r\n rating: p.rating,\r\n size: moneyUtils.parse(p.size)\r\n }))\r\n }\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction isBwicWithSecuritesExist(securityIds) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(securityIds),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(\"/api/bwics/exist/securities\", requestOptions);\r\n}\r\n\r\nfunction finishStage(bwicReferenceName) {\r\n return fetchSafe(`/api/bwics/change-stage/${bwicReferenceName} `, { method: 'PUT' });\r\n}\r\n\r\nfunction getSecurityBwicStatistics(securityId) {\r\n return fetchSafe(`/api/securities/bwic-statistic/${securityId}`);\r\n}\r\n\r\nfunction getClassDetails(securityId) {\r\n return fetchSafe(`/api/securities/class-details/${securityId}`)\r\n}","import moment from 'moment';\r\nimport qs from 'query-string';\r\nimport { constants, responseType } from '../constants';\r\nimport { CloManagerAccessType } from '../types/amr-pipeline/enums/CloManagerAccessType';\r\nimport { CloManagerDetailed } from '../types/clo-managers/CloManagerDetailed';\r\nimport { CloManagerSave } from '../types/clo-managers/CloManagerSave';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { apiUtils } from '../utils';\r\n\r\nfunction getCloManager(companyReferenceName: string): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager`);\r\n}\r\n\r\nfunction createOrUpdateCloManager(companyReferenceName: string, cloManager: CloManagerSave): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager`, {\r\n method: 'PUT',\r\n body: JSON.stringify(cloManager),\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction downloadManagerPresentationFile(companyReferenceName: string, referenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/manager-presentation-file/download/${referenceName}`, requestOptions);\r\n}\r\n\r\nfunction logUserActivity(companyReferenceName: string, accessType: CloManagerAccessType) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/access/${accessType}`, {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction switchFavorite(companyReferenceName: string, favorite: boolean) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/favorite/${favorite}`, {\r\n method: 'PUT',\r\n responseType: responseType.none,\r\n });\r\n};\r\n\r\nasync function getAnalytics(companyReferenceName: string) {\r\n const queryString = qs.stringify({ currentTime: moment().format() });\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/analytics?${queryString}`);\r\n}\r\n\r\nfunction getInvitedAndActiveManagers(companyReferenceName: string) {\r\n return fetchSafe(`/api/companies/${companyReferenceName}/invited-and-active-collateral-managers`);\r\n}\r\n\r\nfunction getProfileViewHistory(companyReferenceName: string, startDate?: Date, endDate?: Date) {\r\n let queryString = '';\r\n\r\n if (startDate && endDate) {\r\n const queryParams = {\r\n 'period.From': moment(startDate).format(constants.dateTimeFormatUtc),\r\n 'period.To': moment(endDate).format(constants.dateTimeFormatUtc),\r\n };\r\n\r\n queryString = `?${qs.stringify(queryParams)}`;\r\n }\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/profile-views/${queryString}`);\r\n}\r\n\r\nfunction getLatestTransactionsInDeal(\r\n managerReferenceName: string,\r\n sortingParams: { field: string; ascending: boolean }[]\r\n) {\r\n const queryString = `${qs.stringify(\r\n apiUtils.parseSortingParams(sortingParams)\r\n )}`;\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/collateral-manager/${managerReferenceName}/latest-transaction-in-deal?${queryString}`\r\n );\r\n}\r\n\r\nfunction scheduleMeeting(companyReferenceName: string, recipientsEmails: string[], message: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/request-meeting`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify({\r\n recipientsEmails,\r\n message\r\n }),\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction getCloSystemInfrastructures() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/CloSystemInfrastructure`);\r\n}\r\n\r\nexport const cloManagersService = {\r\n getCloManager,\r\n createOrUpdateCloManager,\r\n downloadManagerPresentationFile,\r\n logUserActivity,\r\n switchFavorite,\r\n getAnalytics,\r\n getInvitedAndActiveManagers,\r\n getProfileViewHistory,\r\n getLatestTransactionsInDeal,\r\n scheduleMeeting,\r\n getCloSystemInfrastructures\r\n};\r\n","import moment from 'moment';\r\nimport qs from 'query-string';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { BankSave } from '../types/banks/BankSave';\r\nimport { constants, responseType } from '../constants';\r\nimport { BankAccessType } from '../types/amr-pipeline/enums/BankAccessType';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { CollateralType } from '../types/amr-pipeline/enums/CollateralType';\r\n\r\nexport interface ExportManagersTransQueryParams {\r\n year?: number,\r\n currencyCodes?: Currency[],\r\n collateralTypes?: CollateralType[],\r\n orderBy?: {\r\n field: string,\r\n ascending: boolean\r\n }\r\n}\r\n\r\nfunction getBwicBanksList(dateFrom: Date = new Date()) {\r\n const queryParams = {\r\n dateFrom: moment(dateFrom).format(),\r\n };\r\n\r\n const queryString = `?${qs.stringify(queryParams)}`;\r\n return fetchSafe(`/api/Companies/banks/${queryString}`);\r\n}\r\n\r\nfunction getBankDetails(companyReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Companies/${companyReferenceName}/bank`\r\n );\r\n}\r\n\r\nfunction getEvents(companyReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Companies/${companyReferenceName}/bank/events`\r\n );\r\n}\r\n\r\nfunction getSyndicateContacts(companyReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Companies/${companyReferenceName}/bank/syndicate-contacts`\r\n );\r\n}\r\n\r\nfunction updateBank(companyReferenceName: string, bank: BankSave): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/bank`, {\r\n method: 'PUT',\r\n body: JSON.stringify(bank),\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction logUserActivity(companyReferenceName: string, accessType: BankAccessType) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/bank/access/${accessType}`, {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction getBwicsPriceTalks(companyReferenceName: string, dateFrom: Date = new Date()) {\r\n const queryParams = {\r\n dateFrom: moment(dateFrom).format(),\r\n };\r\n\r\n const queryString = `?${qs.stringify(queryParams)}`;\r\n\r\n return fetchSafe(`/api/bwics/banks/${companyReferenceName}/bwics-price-talks/${queryString}`)\r\n}\r\n\r\nfunction getAnalytics(companyReferenceName: string) {\r\n const queryString = qs.stringify({ currentTime: moment().format() });\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/bank/analytics?${queryString}`);\r\n}\r\n\r\nfunction getProfileViewHistory(companyReferenceName: string, startDate?: Date, endDate?: Date) {\r\n let queryString = '';\r\n\r\n if (startDate && endDate) {\r\n const queryParams = {\r\n 'period.From': moment(startDate).format(constants.dateTimeFormatUtc),\r\n 'period.To': moment(endDate).format(constants.dateTimeFormatUtc),\r\n };\r\n\r\n queryString = `?${qs.stringify(queryParams)}`;\r\n }\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/bank/profile-views/${queryString}`);\r\n}\r\n\r\nfunction exportBankManagersTrans(companyReferenceName: string, params?: ExportManagersTransQueryParams) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Companies/${companyReferenceName}/bank/managers-transactions/export`, {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.file\r\n });\r\n}\r\n\r\nexport const banksService = {\r\n getBwicBanksList,\r\n getBankDetails,\r\n getEvents,\r\n getSyndicateContacts,\r\n updateBank,\r\n logUserActivity,\r\n getBwicsPriceTalks,\r\n getAnalytics,\r\n getProfileViewHistory,\r\n exportBankManagersTrans,\r\n};\r\n","import moment from 'moment';\r\nimport { createSelector } from 'reselect';\r\nimport { dateRangeFilterOptions } from '../constants/date-range.filter';\r\nimport { CommonFilter } from '../types/filters/FilterState';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { InventoryPositionStatus } from '../types/inventory/InventoryPositionStatus';\r\nimport { InventoryListFilterState } from '../types/state/BdInventoryState';\r\nimport { formatUtils, isRequestFailed, isRequestSuccess } from '../utils';\r\nimport {\r\n compareNumbers, compareStrings, compareBoolean, compareByDateRange, compareByDateYearRange, getSelectedFilters, compareBooleanStrict\r\n} from '../utils/filtering/filter.compare.utils';\r\n\r\nexport const dealerInventorySelector = createSelector(\r\n [\r\n (state: AppState) => state.entities.inventory.items,\r\n (state: AppState) => state.filters.bdInventory.lastAppliedFilter,\r\n (state: AppState) => state.searchSecurities.searchTermItems,\r\n (state: AppState) => state.entities.collateralManagers.requestState,\r\n\r\n ],\r\n (items, filter, searchIsinTickerItems, managersRequestState) => {\r\n const filters = filter as unknown as (InventoryListFilterState | undefined);\r\n const isDynamicFiltersLoaded = isRequestSuccess(managersRequestState) || isRequestFailed(managersRequestState);\r\n const selectedFilters = getSelectedFilters(filters as unknown as CommonFilter);\r\n\r\n const inventories = items.map(i => ({\r\n ...i,\r\n ncEnd: i.ncEndMonth && i.ncEndYear != null ? formatUtils.formatMonthAndYear(`${i.ncEndMonth}/${i.ncEndYear}`) : '',\r\n riEnd: i.riEndMonth && i.riEndYear != null ? formatUtils.formatMonthAndYear(`${i.riEndMonth}/${i.riEndYear}`) : '',\r\n statusName: InventoryPositionStatus[i.status]\r\n }))\r\n\r\n if (!isDynamicFiltersLoaded) return inventories\r\n return inventories.filter(item => applyFilterCriteria(item, selectedFilters, searchIsinTickerItems, filters))\r\n }\r\n);\r\n\r\nfunction applyFilterCriteria(i: InventoryPosition, selectedFilters: { [key: string]: boolean }, searchIsinTicker: string[], filter?: InventoryListFilterState) {\r\n const selectedDateOption = filter?.date.filter.selectedOption;\r\n const isCurrent = selectedDateOption?.key === dateRangeFilterOptions.CurrentInventory.key;\r\n const currentInventoryStatuses = [InventoryPositionStatus.added, InventoryPositionStatus.undefined, InventoryPositionStatus.updated];\r\n\r\n return (\r\n (searchIsinTicker.length ? searchIsinTicker.some(t => i.ticker.includes(t) || i.isinCusip.includes(t)) : true) && (\r\n !filter || (\r\n (isCurrent ? (currentInventoryStatuses.includes(i.status) || (i.status === InventoryPositionStatus.traded && moment().isSame(i.lastUpdateDate, 'day'))) : true) &&\r\n (!isCurrent && selectedDateOption ? (compareByDateRange(i.lastUpdateDate, filter.date)) : true) &&\r\n (selectedFilters[filter.maturity.key] ? compareByDateRange(i.statedMaturity, filter.maturity) : true) &&\r\n (selectedFilters[filter.vintage.key] ? compareByDateRange(i.vintage, filter.vintage) : true) &&\r\n (selectedFilters[filter.closing.key] ? compareByDateRange(i.closingDate, filter.closing) : true) &&\r\n (selectedFilters[filter.nonCallEnd.key] ? compareByDateYearRange(filter.nonCallEnd, i.nonCallPeriodEnd, i.closingDate) : true) &&\r\n (selectedFilters[filter.reinvestmentEnd.key] ? compareByDateYearRange(filter.reinvestmentEnd, i.reinvestmentPeriodEnd, i.closingDate) : true) &&\r\n (selectedFilters[filter.currency.key] ? compareStrings(i.currency, filter.currency) : true) &&\r\n (selectedFilters[filter.ratings.key] ? compareStrings(i.rating, filter.ratings) : true) &&\r\n (selectedFilters[filter.managers.key] ? compareStrings(i.collateralManager?.referenceName, filter.managers) : true) &&\r\n (selectedFilters[filter.collateralType.key] ? compareStrings(i.collateralType, filter.collateralType) : true) &&\r\n (selectedFilters[filter.trustees.key] ? compareStrings(i.trustee?.referenceName, filter.trustees) : true) &&\r\n (selectedFilters[filter.esg.key] ? compareBoolean(i.esg, filter.esg) : true) &&\r\n (selectedFilters[filter.euCompliance.key] ? compareBoolean(i.euCompliance, filter.euCompliance) : true) &&\r\n (selectedFilters[filter.staticDeal.key] ? compareBoolean(i.staticDeal, filter.staticDeal) : true) &&\r\n (selectedFilters[filter.amr.key] ? compareBoolean(i.amr, filter.amr) : true) &&\r\n (selectedFilters[filter.statuses.key] ? compareNumbers(i.status, filter.statuses) : true) &&\r\n (selectedFilters[filter.outOfNC.key] ? compareBooleanStrict(filter.outOfNC, i.outOfNC) : true) &&\r\n (selectedFilters[filter.outOfRI.key] ? compareBooleanStrict(filter.outOfRI, i.outOfRI) : true)\r\n )\r\n )\r\n );\r\n}\r\n","import { fetchSafe } from \"./fetch.safe\";\r\n\r\nexport function getFromCache(\r\n url: string,\r\n onFetched?: (fetchResult: T) => T,\r\n storage: Storage = sessionStorage,\r\n disableRequestCancelation = false): Promise {\r\n const cached = storage.getItem(url);\r\n\r\n if (cached == null) {\r\n return fetchSafe(url, {}, disableRequestCancelation)\r\n .then((result: T) => {\r\n if (onFetched) {\r\n result = onFetched(result);\r\n }\r\n\r\n try {\r\n storage.setItem(url, JSON.stringify(result));\r\n } catch {\r\n console.log('Storage is overloaded');\r\n }\r\n\r\n return result;\r\n });\r\n }\r\n\r\n return Promise.resolve(JSON.parse(cached) as T);\r\n}\r\n","import { fetchSafe } from \"./fetch.safe\";\r\nimport { responseType } from \"../constants\";\r\n\r\nexport const tradeReportingService = {\r\n search,\r\n exportSearchResult,\r\n setReportedFalg,\r\n getResolveTrades,\r\n setResolveTrades,\r\n};\r\n\r\nfunction search({ isReported, excludeOnBehalf, dateFrom, dateTo, tradeStatuses, settlementStatuses, sortingField, sortDirection, page, pageSize }) {\r\n const url = '/api/trades/search';\r\n const requestBody = JSON.stringify({\r\n dateFrom,\r\n dateTo,\r\n isReported: isReported == null ? undefined : isReported,\r\n excludeOnBehalf,\r\n tradeStatuses,\r\n settlementStatuses,\r\n page,\r\n pageSize,\r\n orderByColumn: sortingField,\r\n sortOrder: sortDirection,\r\n });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: requestBody,\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction exportSearchResult(isReported, dateFrom, dateTo, excludeOnBehalf, tradeStatuses, settlementStatuses, sortingField, sortDirection) {\r\n const url = '/api/trades/export';\r\n const requestBody = JSON.stringify({\r\n dateFrom,\r\n dateTo,\r\n isReported: isReported == null ? undefined : isReported.toString(),\r\n excludeOnBehalf,\r\n tradeStatuses,\r\n settlementStatuses,\r\n orderByColumn: sortingField,\r\n sortOrder: sortDirection,\r\n });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: requestBody,\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\n\r\nfunction setReportedFalg(referenceId, isReported) {\r\n const url = '/api/trades';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceId, isReported }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getResolveTrades() {\r\n return fetchSafe('/api/trading/trades/resolve')\r\n}\r\n\r\nfunction setResolveTrades(references) {\r\n return fetchSafe('/api/trading/trades/resolve', {method: 'POST', body: JSON.stringify(references)})\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\nimport { user } from '../user/user';\r\nimport { constants } from '../constants/constants';\r\nimport { store } from '../store';\r\nimport { logger } from '../logging/logger';\r\nimport { urlBuilder } from './url.builder';\r\nimport { responseType } from '../constants/response.type';\r\nimport { onBoardingTooltipConst } from '../constants/onBoardingTooltip';\r\nimport { accountActions as actionTypes } from '../constants/actionTypes/account.actions';\r\nimport { routes } from '../constants/routes';\r\nimport { history } from '../history';\r\n\r\nexport const accountService = {\r\n login,\r\n logout,\r\n apiLogout,\r\n getAccessToken,\r\n refreshToken,\r\n resetPassword,\r\n setUpPassword,\r\n getAssetManagers,\r\n getProfile,\r\n changePhoneNumber,\r\n changePassword,\r\n getProfileCompany,\r\n addCompanyTrader,\r\n editCompanyTrader,\r\n editCompanyContact,\r\n enableCompanyTrader,\r\n disableCompanyTrader,\r\n requestIdentityVerificationCodeEmail,\r\n requestIdentityVerificationCodeSms,\r\n submitIdentityVerificationCode,\r\n saveIdentityPhoneNumber,\r\n requestPhoneVerificationCode,\r\n submitPhoneVerificationCode,\r\n deactivateSmsConfirmation,\r\n uploadUserImage,\r\n deleteIdentityPhoneNumber,\r\n fetchUserImage,\r\n deleteUserImage,\r\n buildVersion,\r\n downloadDirectBiddingAgreementPdf,\r\n setDirectBiddingAgreementSigned,\r\n saveBloombergEmail,\r\n saveSignupForm,\r\n saveArrangersClientSignupForm,\r\n saveBwicAnnouncementNotifications,\r\n downloadPortfolioAgreementFile,\r\n setPortfolioAgreementSigned,\r\n downloadCusipTermsFile\r\n};\r\n\r\nfunction login(email, password, deviceId) {\r\n const url = '/api/account/login';\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ email, password, deviceId })\r\n };\r\n return fetchSafe(url, requestOptions)\r\n .then(userResult => {\r\n if (userResult && userResult.accessToken) {\r\n user.store(userResult);\r\n }\r\n return userResult;\r\n });\r\n}\r\n\r\nfunction logout() {\r\n store.dispatch({ type: actionTypes.LOGOUT });\r\n user.clear();\r\n localStorage.removeItem(onBoardingTooltipConst.localStorageKey);\r\n localStorage.removeItem(constants.requestDirectBiddingPopupLocalStorageKey);\r\n localStorage.removeItem(constants.requestAllToAllPopupLocalStorageKey);\r\n history.replace(routes.login);\r\n}\r\n\r\nfunction apiLogout() {\r\n if (user.isAuthenticated()) {\r\n const url = '/api/account/logout';\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none\r\n };\r\n\r\n fetchSafe(url, requestOptions, true);\r\n }\r\n}\r\n\r\nasync function getAccessToken() {\r\n let accessToken = '';\r\n try {\r\n const user = await refreshToken();\r\n if (user && user.accessToken) {\r\n accessToken = user.accessToken;\r\n }\r\n } catch (e) {\r\n logger.exception(e, 'Failed to get access token. Logging out');\r\n logout();\r\n }\r\n return accessToken;\r\n}\r\n\r\nfunction refreshToken() {\r\n const url = '/api/account/refreshToken';\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(user.refreshToken())\r\n };\r\n\r\n return fetch(url, requestOptions)\r\n .then(response => response.ok\r\n ? response.json()\r\n : Promise.reject(response));\r\n}\r\n\r\nfunction resetPassword(email) {\r\n const url = '/api/account/resetPassword';\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ 'email': email }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction setUpPassword(model) {\r\n const url = '/api/account/setUpPassword';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(model)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getAssetManagers() {\r\n return fetchSafe('/api/account/asset-managers');\r\n}\r\n\r\nfunction getProfile() {\r\n return fetchSafe('/api/profile');\r\n}\r\n\r\nfunction getProfileCompany() {\r\n return fetchSafe('/api/company-account');\r\n}\r\n\r\nfunction addCompanyTrader(data) {\r\n const url = '/api/company-account/traders';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction editCompanyTrader(data, traderId) {\r\n const url = `/api/company-account/traders/${traderId}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction enableCompanyTrader(traderId) {\r\n const url = `/api/company-account/traders/${traderId}/enable`;\r\n const requestOptions = {\r\n method: 'PATCH',\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction disableCompanyTrader(traderId) {\r\n const url = `/api/company-account/traders/${traderId}/disable`;\r\n const requestOptions = {\r\n method: 'PATCH',\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction editCompanyContact(data, departmentValue) {\r\n const url = `/api/company-account/contacts/${departmentValue}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction changePhoneNumber(phoneNumber) {\r\n const url = '/api/account/changePublicPhoneNumber';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ phoneNumber }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction changePassword(model) {\r\n const url = '/api/account/changePassword';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(model)\r\n };\r\n\r\n return fetchSafe(url, requestOptions)\r\n .then(userResult => {\r\n if (userResult && userResult.accessToken) {\r\n user.store(userResult)\r\n }\r\n return userResult;\r\n });\r\n}\r\n\r\nfunction requestIdentityVerificationCodeEmail() {\r\n const requestOptions = {\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/account/two-factor/email', requestOptions);\r\n}\r\n\r\nfunction requestIdentityVerificationCodeSms() {\r\n const requestOptions = {\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/account/two-factor/sms', requestOptions);\r\n}\r\n\r\nfunction submitIdentityVerificationCode(code, deviceId) {\r\n const url = '/api/account/TwoFactorSignIn';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ code, deviceId })\r\n };\r\n\r\n return fetchSafe(url, requestOptions)\r\n .then(userResult => {\r\n if (userResult && userResult.accessToken) {\r\n user.store(userResult);\r\n }\r\n return userResult;\r\n });\r\n}\r\n\r\nfunction requestPhoneVerificationCode() {\r\n const url = '/api/account/phone-verification';\r\n const requestOptions = {\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction submitPhoneVerificationCode(code, deviceId) {\r\n const url = '/api/account/phone-verification';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ code, deviceId })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deactivateSmsConfirmation() {\r\n const url = '/api/account/phone-verification';\r\n const requestOptions = {\r\n method: 'PUT',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction saveIdentityPhoneNumber(phoneNumber) {\r\n const url = '/api/account/ChangeIdentityPhoneNumber';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ phoneNumber }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deleteIdentityPhoneNumber() {\r\n const url = '/api/account/DeleteIdentityPhoneNumber';\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction uploadUserImage(file) {\r\n return fileUpload(\r\n '/api/profile/uploadPhoto',\r\n null,\r\n file,\r\n null,\r\n true\r\n );\r\n}\r\n\r\nfunction fetchUserImage(userId) {\r\n const url = urlBuilder('/api/profile/profilePhoto', { userId });\r\n const requestOptions = {\r\n method: 'GET',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe(url, requestOptions, true);\r\n}\r\n\r\nfunction deleteUserImage() {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/profile/deletePhoto', requestOptions)\r\n}\r\n\r\nfunction buildVersion() {\r\n return fetchSafe('/build')\r\n}\r\n\r\nfunction saveBloombergEmail(bloombergEmail) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ bloombergEmail }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/profile/changeBloombergEmail', requestOptions);\r\n}\r\n\r\nfunction downloadDirectBiddingAgreementPdf() {\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/account/directBiddingAgreement', requestOptions)\r\n}\r\n\r\nfunction setDirectBiddingAgreementSigned() {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/account/signDirectBiddingAgreement', requestOptions)\r\n}\r\n\r\nfunction saveSignupForm(form) {\r\n const url = '/api/account/signup';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(form),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction saveArrangersClientSignupForm(form) {\r\n const url = '/api/account/sign-up/arrangers-client';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(form),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction saveBwicAnnouncementNotifications(form) {\r\n const url = '/api/company-account/bwic-announcement-notifications';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(form),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction downloadPortfolioAgreementFile() {\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/account/portfolio-disclaimer', requestOptions)\r\n}\r\n\r\nfunction setPortfolioAgreementSigned() {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/account/agree-portfolio-disclaimer', requestOptions)\r\n}\r\n\r\nfunction downloadCusipTermsFile() {\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/account/cusip-terms', requestOptions)\r\n}\r\n\r\n","import qs from \"query-string\";\r\nimport { responseType } from \"../constants\";\r\nimport { fetchSafe } from \"./fetch.safe\";\r\nimport { News } from \"../types/news/News\";\r\nimport { NewsQueryParams } from '../types/news/NewsQueryParams';\r\nimport { NewsAccessType } from \"../types/amr-pipeline/enums/NewsAccessType\";\r\n\r\ninterface NewsListQueryParams extends NewsQueryParams {\r\n count?: number;\r\n offset?: number;\r\n}\r\n\r\nfunction getNews(params: NewsListQueryParams): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news`, {\r\n method: \"POST\",\r\n body: JSON.stringify(params),\r\n });\r\n}\r\n\r\nfunction getNewsTotalCount(params?: NewsListQueryParams): Promise {\r\n const queryParams = qs.stringify(params || {});\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/count?${queryParams}`\r\n );\r\n}\r\n\r\nfunction getNewsDetails(referenceName: string, params: NewsQueryParams = {}): Promise {\r\n const queryString = qs.stringify(params);\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/${referenceName}?${queryString}`\r\n );\r\n}\r\n\r\nfunction createOrUpdateNews(newsData: News) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news`, {\r\n method: \"PUT\",\r\n body: JSON.stringify(newsData),\r\n });\r\n}\r\n\r\nfunction deleteNews(referenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/${referenceName}`,\r\n {\r\n method: \"DELETE\",\r\n responseType: responseType.none,\r\n }\r\n );\r\n}\r\n\r\nfunction logUserActivity(accessType: NewsAccessType) {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/log-user-activity/${accessType}`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction downloadDocument(newsReferenceName: string, documentReferenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/${newsReferenceName}/documents/${documentReferenceName}/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction downloadDocuments(newsReferenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/${newsReferenceName}/documents/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nexport const newsService = {\r\n getNews,\r\n getNewsTotalCount,\r\n getNewsDetails,\r\n createOrUpdateNews,\r\n deleteNews,\r\n logUserActivity,\r\n downloadDocument,\r\n downloadDocuments,\r\n};\r\n","import { createSelector } from 'reselect';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { FilterGroup, FilterDateGroup, FilterDateTimeGroup, FilterRangeGroup, FilterType } from '../types/filters/FilterGroup';\r\nimport { PipelineType } from '../types/amr-pipeline/enums/PipelineType';\r\nimport { isEqual } from 'lodash';\r\nimport { getFilterCriteria } from '../utils/amr-pipeline.utils';\r\nimport { ArrangerPipelineFilters, DealsPipelineFilters } from '../types/state/PipelineFilterState';\r\nimport { validateYear } from '../utils/amr-pipeline-filter.utils';\r\n\r\n\r\nexport const amrPipelineSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return pipelineType === PipelineType.Deals\r\n ? state.issuanceMonitor.amrPipeline\r\n : state.issuanceMonitor.amrPipelineIOIs;\r\n};\r\n\r\nexport const arrangerPipelineSelector = createSelector(\r\n (state: AppState) => state.issuanceMonitor.amrArrangerPipeline,\r\n arrangerPipeline => arrangerPipeline,\r\n);\r\n\r\nexport const amrDealsSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return amrPipelineSelector(pipelineType)(state).deals;\r\n};\r\n\r\n\r\nexport const summarySelector = (pipelineType: PipelineType) =>\r\n createSelector([amrPipelineSelector(pipelineType), amrPipelineFilterSelector(pipelineType)], (amrPipeline, filter) => {\r\n const {\r\n deals: { isSummaryRequesting, transactionsStatistic, classesStatistic },\r\n } = amrPipeline;\r\n const { lastAppliedFilter, initialFilter } = filter\r\n // show summary for classes only when one rating selected\r\n const shouldShowClassesSummary = lastAppliedFilter.ratings.filter.filter(f => f.selected).length === 1;\r\n\r\n const initialFilterCriteria = initialFilter ? getFilterCriteria(initialFilter, pipelineType) : {};\r\n const lastAppliedFilterCriteria = getFilterCriteria(lastAppliedFilter, pipelineType);\r\n const shouldShowTransactionsSummary = !isEqual(initialFilterCriteria, lastAppliedFilterCriteria);\r\n\r\n return {\r\n shouldShowTransactionsSummary,\r\n isSummaryRequesting,\r\n shouldShowClassesSummary,\r\n transactionsStatistic,\r\n classesStatistic,\r\n };\r\n });\r\n\r\nexport const amrPipelineFilterSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return amrPipelineSelector(pipelineType)(state).filter;\r\n};\r\n\r\n// Use for common component on all im tabs\r\nexport const issuanceMonitorFilterSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return pipelineType === PipelineType.ArrangerPipeline\r\n ? arrangerPipelineFilterSelector(state)\r\n : amrPipelineSelector(pipelineType)(state).filter;\r\n};\r\n\r\nexport const issuanceMonitorSearchTransactionsSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return amrPipelineSelector(pipelineType)(state).searchTransactions;\r\n};\r\n\r\nexport const arrangerPipelineFilterSelector = createSelector(\r\n arrangerPipelineSelector,\r\n arrangerPipeline => arrangerPipeline.filter,\r\n);\r\n\r\nexport const arrangerPipelineDealsSelector = createSelector(\r\n arrangerPipelineSelector,\r\n arrangerPipeline => arrangerPipeline.deals,\r\n);\r\n\r\nconst arrangerPipelineApplyDisabledSelector = createSelector([arrangerPipelineDealsSelector, arrangerPipelineFilterSelector], (deals, filters) => {\r\n const {\r\n filter, filterApplied, visibleFilters\r\n } = filters;\r\n\r\n const { isLoading } = deals;\r\n\r\n\r\n const filterErrors = visibleFilters\r\n .map((f: string) => filter[f as keyof ArrangerPipelineFilters])\r\n .filter(f => {\r\n const filter = f as FilterGroup;\r\n const filterRange = f as FilterRangeGroup;\r\n\r\n const fromRange = filterRange.filter.from;\r\n const toRange = filterRange.filter.to;\r\n\r\n if (filter.type === FilterType.Range) {\r\n if (fromRange && toRange && Number(fromRange) > Number(toRange)) return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return filterApplied || !!filterErrors.length || isLoading;\r\n})\r\n\r\nconst amrDealsApplyDisabledSelector = (pipelineType: PipelineType) => createSelector(amrPipelineSelector(pipelineType), amrPipeline => {\r\n const {\r\n deals: { isTransactionsSearching, isClassesSearching },\r\n filter: { filter, filterApplied, visibleFilters },\r\n } = amrPipeline;\r\n\r\n const filterErrors = visibleFilters\r\n .map((f: string) => filter[f as keyof DealsPipelineFilters])\r\n .filter(f => {\r\n const filter = f as FilterGroup;\r\n const filterDate = f as FilterDateGroup;\r\n const filterRange = f as FilterRangeGroup;\r\n const filterDateTimeRange = f as FilterDateTimeGroup;\r\n\r\n const fromDate = filterDate.filter.options?.customDateRange?.from;\r\n const toDate = filterDate.filter.options?.customDateRange?.to;\r\n const fromYearsRange = filterDate.filter.options?.customYearsRange?.from;\r\n const toYearsRange = filterDate.filter.options?.customYearsRange?.to;\r\n const fromRange = filterRange.filter.from;\r\n const toRange = filterRange.filter.to;\r\n const fromDateTimeRange = filterDateTimeRange.filter.selectedOption?.from;\r\n const toDateTimeRange = filterDateTimeRange.filter.selectedOption?.to;\r\n\r\n if (\r\n filter.selected &&\r\n (filter.type === FilterType.DateWithYearsRange ||\r\n filter.type === FilterType.Date ||\r\n filter.type === FilterType.YearsDate ||\r\n filter.type === FilterType.DateWithYearsAndTimeRange)\r\n ) {\r\n if (filter.type === FilterType.YearsDate) {\r\n if (\r\n fromDate &&\r\n toDate &&\r\n (validateYear(fromDate.getFullYear()) || validateYear(toDate.getFullYear()))\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n if ((fromDate || toDate) && (!fromDate || !toDate)) return true;\r\n if (fromDate && toDate && fromDate > toDate) return true;\r\n if (fromYearsRange && toYearsRange && Number(fromYearsRange) > Number(toYearsRange)) return true;\r\n if (fromDateTimeRange && toDateTimeRange && fromDateTimeRange.date > toDateTimeRange.date) return true;\r\n }\r\n\r\n if (filter.selected && filter.type === FilterType.Range) {\r\n if (fromRange && toRange && Number(fromRange) > Number(toRange)) return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return filterApplied || isTransactionsSearching || isClassesSearching || !!filterErrors.length;\r\n})\r\n\r\nexport const applyDisabledSelector = (pipelineType: PipelineType) => {\r\n if (pipelineType === PipelineType.ArrangerPipeline) {\r\n return arrangerPipelineApplyDisabledSelector\r\n }\r\n\r\n return amrDealsApplyDisabledSelector(pipelineType)\r\n};\r\n","import { fetchSafe } from \"./fetch.safe\";\r\nimport { responseType } from '../constants';\r\nimport { UpdateSettlementAgentAgreementStatus } from '../types/bid-as-dealer/UpdateSettlementAgentAgreementStatus';\r\nimport { SettlementAgentClientAgreement } from '../types/bid-as-dealer/SettlementAgentClientAgreement';\r\nimport { SettlementAgentAgreement } from \"../types/bid-as-dealer/SettlementAgentAgreement\";\r\nimport { CreateSettlementAgreementRequest } from '../types/bid-as-dealer/CreateBidAsDealerAgreementRequest';\r\n\r\nfunction getAgreementForSettlementAgent():Promise {\r\n return fetchSafe('/api/agreements');\r\n}\r\n\r\nfunction getAgreements(): Promise {\r\n return fetchSafe('/api/agreements');\r\n}\r\n\r\nfunction sendRequest(params?: CreateSettlementAgreementRequest):Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/agreements', requestOptions);\r\n}\r\n\r\nfunction updateAgreement(data: UpdateSettlementAgentAgreementStatus):Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/agreements', requestOptions);\r\n}\r\n\r\nfunction fetchPendingAgreementCount():Promise {\r\n return fetchSafe('/api/agreements/pending-count', undefined, true)\r\n}\r\n\r\nexport const settlementAgentAgreementService = {\r\n getAgreementForSettlementAgent,\r\n getAgreements,\r\n sendRequest,\r\n updateAgreement,\r\n fetchPendingAgreementCount\r\n};\r\n","import { responseType as responseTypes } from '../constants/response.type';\r\nimport { logger } from '../logging/logger';\r\nimport { user } from \"../user/user\";\r\nimport { refreshTokenController } from \"../user/refresh-token-controller\";\r\nimport { fileUtils } from '../utils';\r\nimport { requestCancelationController } from './request-cancelation-controller';\r\n\r\nconst maxRetryAttempts = 5;\r\n\r\nconst getMethod = options => (options.method || 'GET').toUpperCase();\r\n\r\nconst awaitTimeout = delay => new Promise(resolve => setTimeout(resolve, delay));\r\n\r\nexport const fetchSafe = (url, options = {}, disableRequestCancelation = false, abortSignal = undefined, retryAttempt = 1) => {\r\n const requestCancelationSignal = disableRequestCancelation\r\n ? undefined\r\n : abortSignal ?? requestCancelationController.signal();\r\n\r\n const handleResponse = async (response, responseType) => {\r\n if (response.ok) {\r\n switch (responseType) {\r\n case (responseTypes.none): return {};\r\n case (responseTypes.file): return {\r\n name: fileUtils.getFileNameFromResponse(response),\r\n blob: await response.blob()\r\n };\r\n default: return response.status !== 204 ? response.json() : undefined;\r\n }\r\n }\r\n\r\n const shouldRetry = () => {\r\n const method = getMethod(options);\r\n\r\n return (\r\n retryAttempt <= maxRetryAttempts &&\r\n (method === 'GET' || method === 'POST') &&\r\n response.status === 504\r\n );\r\n }\r\n\r\n if (shouldRetry(response)) {\r\n logger.trace(\"504 error retry attempt\", { url, retryAttempt: retryAttempt + 1 });\r\n return awaitTimeout(300).then(() => fetchSafe(url, options, disableRequestCancelation, abortSignal,++retryAttempt));\r\n }\r\n\r\n return failure(response);\r\n }\r\n\r\n return refreshTokenController\r\n .ensureTokenUpToDate(user.token(), user.refreshToken().refreshToken)\r\n .then(accessToken => fetch(url, setOptionsDefaults(options, accessToken, requestCancelationSignal)))\r\n .then(response => handleResponse(response, options.responseType));\r\n}\r\n\r\nconst failure = response =>\r\n response\r\n .text()\r\n .then(text => Promise.reject({\r\n status: response.status,\r\n message: (text || response.statusText)\r\n }))\r\n\r\nconst setOptionsDefaults = (options = {}, accessToken, signal) => {\r\n const method = getMethod(options);\r\n\r\n return {\r\n ...options,\r\n method,\r\n signal,\r\n headers: options.headers || {\r\n 'authorization': accessToken && `Bearer ${accessToken}`,\r\n 'accept': 'application/json',\r\n 'content-type': 'application/json',\r\n ...(method === 'GET') && {\r\n 'cache-control': 'no-cache',\r\n 'pragma': 'no-cache'\r\n }\r\n }\r\n };\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { BwicByRatingPreferences, EmailPreferences } from '../types/email-preferences/EmailPreferences';\r\nimport { responseType } from '../constants';\r\n\r\nexport const emailPreferencesService = {\r\n getEmailPreferences,\r\n saveEmailPreferences,\r\n saveBwicByRating\r\n}\r\n\r\nfunction getEmailPreferences(): Promise {\r\n return fetchSafe('/api/email-preferences');\r\n}\r\n\r\nfunction saveEmailPreferences(preferences: EmailPreferences): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(preferences),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/email-preferences', requestOptions);\r\n}\r\n\r\nfunction saveBwicByRating(bwicByRatingPreferences: BwicByRatingPreferences): Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(bwicByRatingPreferences),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/email-preferences/bwic-by-rating-alert', requestOptions);\r\n}","import { responseType } from '../constants';\r\nimport { CollateralType } from '../types/amr-pipeline/enums/CollateralType';\r\nimport { Equity } from '../types/amr-pipeline/enums/Equity';\r\nimport { ArrangerPipeline, Category } from '../types/amr-pipeline/models/ArrangerPipeline';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\ninterface ArrangerPipelineFilterCriteria {\r\n collateralManagers: Array;\r\n arrangerReferenceNames: Array;\r\n collateralTypes?: CollateralType[];\r\n euCompliance?: boolean;\r\n anchor?: boolean;\r\n riEnd: { from?: number; to?: number };\r\n ncEnd: { from?: number; to?: number };\r\n equity?: Equity[];\r\n count: number;\r\n offset: number;\r\n deals: Array,\r\n category: Category;\r\n};\r\n\r\ntype ArrangerPipelineSearchCriteria = Array<{ field: string } | { field: string, ascending: boolean }>\r\n\r\n\r\nexport const amrArrangerPipelineService = {\r\n getArrangerPipelines,\r\n getArrangerPipelinesCount,\r\n getArrangerPipelinesByTicker,\r\n createOrUpdateArrangerPipeline,\r\n exportArrangerPipelines,\r\n getDealsLegalNames,\r\n downloadDisclosureFile,\r\n downloadManagerPresentation,\r\n getArrangerPipelinesStatistic,\r\n deleteArrangerPipeline,\r\n};\r\n\r\nfunction deleteArrangerPipeline(referenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/${referenceName}`, {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n });\r\n};\r\n\r\nfunction getArrangerPipelinesStatistic(\r\n filterCriteria: Partial,\r\n) {\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/statistics`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n });\r\n}\r\n\r\n\r\nfunction createOrUpdateArrangerPipeline(arrangerPipelines: Partial[]) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines`, {\r\n method: 'PUT',\r\n body: JSON.stringify(arrangerPipelines),\r\n });\r\n}\r\n\r\nfunction getArrangerPipelines(filterCriteria: Partial, searchCriteria: ArrangerPipelineSearchCriteria) {\r\n const searchParams = {\r\n orderBy: searchCriteria,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...filterCriteria, ...searchParams }),\r\n });\r\n}\r\n\r\nfunction getArrangerPipelinesByTicker(tickers: string[]) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/by-tickers`, {\r\n method: 'POST',\r\n body: JSON.stringify({ tickers }),\r\n });\r\n}\r\n\r\nfunction getArrangerPipelinesCount(filterCriteria: Partial) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/count`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n });\r\n}\r\n\r\nfunction exportArrangerPipelines(filterCriteria: Partial, searchCriteria: ArrangerPipelineSearchCriteria) {\r\n const searchParams = {\r\n orderBy: searchCriteria,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/export`, {\r\n method: 'POST',\r\n responseType: responseType.file,\r\n body: JSON.stringify({ ...filterCriteria, ...searchParams }),\r\n });\r\n}\r\n\r\nfunction downloadDisclosureFile(referenceName: string, bankReferenceName: string = '') {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/${referenceName}/disclosure-file/download/${bankReferenceName}`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction downloadManagerPresentation(referenceName: string, accessType: string = '') {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/${referenceName}/manager-presentation-file/download/${accessType}`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealsLegalNames() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/deals`);\r\n}\r\n","import { BlastMessage } from \"../types/blast-message/BlastMessage\";\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nexport const blastMessageService = {\r\n send\r\n}\r\n\r\nfunction send(bwicReferenceName: string, message: BlastMessage): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(message)\r\n };\r\n\r\n return fetchSafe(`/api/bidding/blast-message/${bwicReferenceName}`, requestOptions);\r\n}\r\n","import { createSelector } from 'reselect';\r\nimport { CommonFilter } from '../types/filters/FilterState';\r\nimport { PortfolioSecurity } from '../types/portfolio/PortfolioSecurity';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { PortfolioFilterState } from '../types/state/PortfolioState';\r\nimport {\r\n compareStrings, compareBoolean, compareByDateRange, compareByDateYearRange, getSelectedFilters, compareBooleanStrict\r\n} from '../utils/filtering/filter.compare.utils';\r\nimport { Portfolio } from '../types/portfolio/Portfolio';\r\n\r\nconst getPortfolioList = (s: AppState) => s.entities.portfolios.items;\r\nconst getSearchTermItems = (s: AppState) => s.searchSecurities.searchTermItems || [];\r\nconst getFilter = (s: AppState) => s.filters.portfolio;\r\n\r\nexport const getPortfolios: (s: AppState) => Portfolio[] = createSelector(\r\n [getPortfolioList, getSearchTermItems, getFilter],\r\n (portfolios, searchTermItems, filter) => {\r\n if (!portfolios || !portfolios.length) return [];\r\n const filters = filter.lastAppliedFilter as unknown as (PortfolioFilterState | undefined);\r\n const selectedFilters = getSelectedFilters(filters as unknown as CommonFilter)\r\n\r\n return portfolios\r\n .map(p => ({\r\n ...p,\r\n securities: p.securities.filter(\r\n s =>\r\n applySearchTerms(p.name, s, searchTermItems) &&\r\n (!filters || applyFilterCriteria(s, selectedFilters, filters))\r\n )\r\n }))\r\n .filter(p => p.securities.length);\r\n }\r\n);\r\n\r\nfunction applyFilterCriteria(s: PortfolioSecurity, selectedFilters: { [key: string]: boolean }, filter: PortfolioFilterState) {\r\n return (\r\n (selectedFilters[filter.maturity.key] ? compareByDateRange(s.statedMaturity, filter.maturity) : true) &&\r\n (selectedFilters[filter.vintage.key] ? compareByDateRange(s.vintage, filter.vintage) : true) &&\r\n (selectedFilters[filter.closing.key] ? compareByDateRange(s.closingDate, filter.closing) : true) &&\r\n (selectedFilters[filter.nonCallEnd.key] ? compareByDateYearRange(filter.nonCallEnd, s.nonCallPeriodEnd, s.closingDate) : true) &&\r\n (selectedFilters[filter.reinvestmentEnd.key] ? compareByDateYearRange(filter.reinvestmentEnd, s.reinvestmentPeriodEnd, s.closingDate) : true) &&\r\n (selectedFilters[filter.trustees.key] ? compareStrings(s.trustee?.referenceName, filter.trustees) : true) &&\r\n (selectedFilters[filter.currency.key] ? compareStrings(s.currency, filter.currency) : true) &&\r\n (selectedFilters[filter.ratings.key] ? compareStrings(s.rating, filter.ratings) : true) &&\r\n (selectedFilters[filter.dealName.key] ? compareStrings(s.dealLegalName, filter.dealName) : true) &&\r\n (selectedFilters[filter.collateralType.key] ? compareStrings(s.collateralType, filter.collateralType) : true) &&\r\n (selectedFilters[filter.managers.key] ? compareStrings(s.collateralManager?.referenceName, filter.managers) : true) &&\r\n (selectedFilters[filter.esg.key] ? compareBoolean(s.esg, filter.esg) : true) &&\r\n (selectedFilters[filter.euCompliance.key] ? compareBoolean(s.euCompliance, filter.euCompliance) : true) &&\r\n (selectedFilters[filter.staticDeal.key] ? compareBoolean(s.staticDeal, filter.staticDeal) : true) &&\r\n (selectedFilters[filter.amr.key] ? compareBooleanStrict(filter.amr, s.amr) : true) &&\r\n (selectedFilters[filter.outOfNC.key] ? compareBooleanStrict(filter.outOfNC, s.outOfNC) : true) &&\r\n (selectedFilters[filter.outOfRI.key] ? compareBooleanStrict(filter.outOfRI, s.outOfRI) : true)\r\n )\r\n}\r\n\r\nfunction applySearchTerms(portfolioName: string, security: PortfolioSecurity, searchTerms: string[] = []) {\r\n if (!searchTerms.length) return true\r\n return searchTerms.some(t => {\r\n const term = t.toLowerCase();\r\n return (\r\n portfolioName.toLowerCase().indexOf(term) === 0 ||\r\n security.isinCusip.toLowerCase().indexOf(term) === 0 ||\r\n security.ticker.toLowerCase().indexOf(term) === 0\r\n );\r\n });\r\n}\r\n","export function classnames(names) {\r\n return Object\r\n .keys(names)\r\n .map(key => names[key] ? key : '')\r\n .join(' ')\r\n}","import { createSelector } from 'reselect';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { isRequestSuccess } from '../utils';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\nimport { Contact } from '../types/company/Contact';\r\nimport { UserSlim } from '../types/account/UserSlim';\r\nimport { compareBoolean } from '../utils/compare.utils';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\nimport { user } from '../user';\r\nimport { roles } from '../constants';\r\nimport { SettlementAgreementStatus } from '../types/bid-as-dealer/SettlementAgreementStatus';\r\nimport { SettlementAgentAgreement } from '../types/bid-as-dealer/SettlementAgentAgreement';\r\n\r\nconst getBrokerDealerList = (state: AppState) => state.entities.brokerDealerList;\r\nconst getBrokerDealerContactList = (state: AppState) => state.entities.brokerDealerContactList;\r\nconst getBrokerDealerUserList = (state: AppState) => state.entities.brokerDealerUserList;\r\nconst getSettlementAgentAgreements = (state: AppState) => state.entities.settlementAgentAgreements;\r\nconst getIsAllToAll = (state: AppState) => state.process.isAllToAll;\r\n\r\nexport const filterDealers = (dealers: BrokerDealerCompanySlim[], contacts: Contact[], users: UserSlim[], agreements: SettlementAgentAgreement[], isAllToAll: boolean | null) =>\r\n dealers\r\n .filter(c =>\r\n (user.hasRoles(roles.BrokerDealerTrader) || isAllToAll)\r\n ? c.isClearingBank &&\r\n agreements?.find((a: SettlementAgentAgreement) => a.settlementAgent.id === c.id)?.agreementStatus === SettlementAgreementStatus.confirmed\r\n : contacts.some(cc => cc.companyId === c.id) ||\r\n users.some(cu => cu.companyId === c.id) ||\r\n c.distributionList ||\r\n c.headOfTrading != null\r\n );\r\n\r\nexport const dealersSelector = createSelector(\r\n [getBrokerDealerList, getBrokerDealerContactList, getBrokerDealerUserList, getSettlementAgentAgreements, getIsAllToAll],\r\n (dealers, contacts, users, agreements, isAllToAll) =>\r\n isRequestSuccess(dealers.requestState, contacts.requestState, users.requestState)\r\n ? filterDealers(dealers.items, contacts.items, users.items, agreements.items, isAllToAll)\r\n .sort((a, b) =>\r\n compareBoolean(a.isClearingBank && a.status === CompanyStatus.active, b.isClearingBank && b.status === CompanyStatus.active) ||\r\n a.name.localeCompare(b.name)\r\n )\r\n : []\r\n);\r\n\r\nexport const isRequestedInitialData = createSelector(\r\n [getBrokerDealerList, getBrokerDealerContactList, getBrokerDealerUserList],\r\n (brokerDealerList, brokerDealerContactList, brokerDealerUserList) =>\r\n isRequestSuccess(brokerDealerList.requestState, brokerDealerContactList.requestState, brokerDealerUserList.requestState)\r\n);\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { urlBuilder } from \"./url.builder\";\r\n\r\nexport const usersService = {\r\n getUsers,\r\n getUser,\r\n getUserCreationRequests,\r\n getActiveBrokerDealers,\r\n enableUser,\r\n disableUser,\r\n resendInvite,\r\n resetPassword,\r\n saveUser,\r\n exportUsers,\r\n updateTfaEnabledState,\r\n getUserLoginHistory,\r\n approveUserRequest,\r\n blockUserRequest,\r\n deleteUser,\r\n deleteUserRequest,\r\n setTempPassword,\r\n gePendingUserRequestCount,\r\n unblockUserRequest\r\n};\r\n\r\nfunction getUsers() {\r\n return fetchSafe('/api/users');\r\n}\r\n// Endpoint for Administrators only\r\nfunction getUser(userId) {\r\n return fetchSafe(`/api/users/${userId}`);\r\n}\r\n\r\nfunction getUserCreationRequests() {\r\n return fetchSafe('/api/manage/user-creation-requests');\r\n}\r\n\r\nfunction getActiveBrokerDealers() {\r\n return fetchSafe('/api/companies/broker-dealers/users');\r\n}\r\n\r\nfunction enableUser(userId) {\r\n const url = `/api/users/${userId}/enable`;\r\n const requestOptions = {\r\n method: 'POST'\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction disableUser(userId, blockReason) {\r\n const url = `/api/users/${userId}/disable`;\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n body: JSON.stringify({ blockReason })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction resendInvite(userId) {\r\n const url = `/api/users/${userId}/send-invite`;\r\n const requestOptions = {\r\n method: 'POST'\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction resetPassword(userId) {\r\n const url = `/api/users/${userId}/reset-password`;\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction saveUser(member, sendInvite = false) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ ...member, sendInvite })\r\n };\r\n\r\n return fetchSafe('/api/users', requestOptions);\r\n}\r\n\r\nfunction exportUsers(filterOptions) {\r\n const exportUrl = urlBuilder('/api/users/export', filterOptions);\r\n\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(exportUrl, requestOptions);\r\n}\r\n\r\nfunction updateTfaEnabledState(userId, enabled) {\r\n const url = `/api/users/${userId}/tfa-enable`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: enabled,\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getUserLoginHistory(userId) {\r\n return fetchSafe(`/api/users/history/${userId}`)\r\n}\r\n\r\nfunction gePendingUserRequestCount() {\r\n return fetchSafe('/api/manage/user-creation-requests/unapproved-count')\r\n}\r\n\r\nfunction approveUserRequest(id, concurrencyStamp) {\r\n const url = `/api/manage/user-creation-requests/approve`;\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify({ id, concurrencyStamp }),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction blockUserRequest(id, concurrencyStamp, blockReason) {\r\n const url = `/api/manage/user-creation-requests/block`;\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify({ id, concurrencyStamp, blockReason }),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction deleteUserRequest(userRequestId) {\r\n const url = `/api/manage/user-creation-requests/${userRequestId}`;\r\n return fetchSafe(url, { method: 'delete' });\r\n}\r\n\r\nfunction deleteUser(userId) {\r\n return fetchSafe(`/api/users/${userId}`, { method: 'delete' });\r\n}\r\n\r\nfunction unblockUserRequest(id, concurrencyStamp) {\r\n const url = `/api/manage/user-creation-requests/unblock`;\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify({ id, concurrencyStamp }),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction setTempPassword(userId) {\r\n return fetchSafe(`/api/users/${userId}/set-temp-password`, { method: 'POST' })\r\n}\r\n","import { createSelector } from 'reselect';\r\nimport moment from 'moment';\r\nimport { companyColumns } from '../constants/company.columns';\r\nimport { companyStatuses } from '../constants/company.statuses';\r\nimport { companyRoles } from '../constants/company-roles';\r\nimport { bwicDateFilterOptions } from '../constants/bwicDateFilterOptions';\r\nimport { userStatuses } from '../constants/user.statuses';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\nimport { getSearchDateRange } from '../utils/search-date-range';\r\nimport { isTrialExpired } from '../utils/subscription.utils';\r\nimport { SubscriptionType } from '../types/billing/SubscriptionType';\r\nimport { compareDatesNullable } from '../utils/compare.utils';\r\n\r\nconst getCompanyList = state => state.companies;\r\nconst getUserList = state => state.users;\r\nconst getOrderByOptions = state => state.companyOrderBy;\r\nconst getFilterOptions = state => state.lastAppliedCompanyFilter;\r\nconst getLiveSearch = state => state.companyFilter.searchTerm;\r\n\r\nexport const getCompanies = createSelector(\r\n [getCompanyList, getUserList, getFilterOptions, getOrderByOptions, getLiveSearch],\r\n (companies, users, filter, orderBy, searchTerm) => {\r\n companies.forEach(c => {\r\n c.primaryContact = users.find(u => u.id === c.primaryContactId);\r\n c.members = users.filter(u => u.companyId === c.id).length;\r\n c.rolesText = companyRoles.getTitle(c.role);\r\n c.subscriptionText = getSubscriptionTitle(c, users);\r\n c.subscriptionDate = getSubscriptionDate(c, users);\r\n });\r\n\r\n const filteredResult = applyFilter(companies, { ...filter, searchTerm });\r\n return sort(filteredResult, orderBy);\r\n }\r\n);\r\n\r\nfunction getSubscriptionTitle(company, users) {\r\n const hasActiveUsers = users.some(u =>\r\n u.companyId === company.id &&\r\n u.status === userStatuses.active.statusCode\r\n );\r\n\r\n if (!hasActiveUsers) return null;\r\n if (company.trialPeriodEnd && !isTrialExpired(company.trialPeriodEnd)) return SubscriptionType.trial;\r\n return company.subscription;\r\n}\r\n\r\nfunction getSubscriptionDate(company, users) {\r\n const hasActiveUsers = users.some(u =>\r\n u.companyId === company.id &&\r\n u.status === userStatuses.active.statusCode\r\n );\r\n\r\n if(!hasActiveUsers) return null;\r\n if(!!company.trialPeriodEnd && !isTrialExpired(company.trialPeriodEnd)) return company.trialPeriodEnd;\r\n if(!!company.subscriptionExpiration) return company.subscriptionExpiration;\r\n return null;\r\n}\r\n\r\n\r\nfunction applyFilter(companies, filter) {\r\n let filterCompanies = companies;\r\n\r\n const statuses = [\r\n filter.active && CompanyStatus.active,\r\n filter.blocked && CompanyStatus.blocked,\r\n filter.offPlatform && CompanyStatus.offPlatform\r\n ].filter(status => status);\r\n\r\n const roles = [\r\n filter.administrator && companyRoles.Administrator,\r\n filter.brokerDealer && companyRoles.BrokerDealer,\r\n filter.seller && companyRoles.Seller,\r\n filter.viewer && companyRoles.Viewer,\r\n filter.media && companyRoles.Media\r\n ].filter(status => status);\r\n\r\n if (statuses.length) {\r\n filterCompanies = filterCompanies.filter(company => statuses.some(status => status === company.status));\r\n }\r\n\r\n if (roles.length) {\r\n filterCompanies = filterCompanies.filter(company => roles.some(role => role === company.role));\r\n }\r\n\r\n if (filter.regBy?.length) {\r\n filterCompanies = filterCompanies.filter(company => filter.regBy.some(userId => company.createdById === userId));\r\n }\r\n\r\n if (filter.salesRepresentatives?.length) {\r\n filterCompanies = filterCompanies.filter(company => filter.salesRepresentatives.some(userId =>\r\n company.salesRepresentatives.some(salesRepresentative => salesRepresentative.id === userId)\r\n ));\r\n }\r\n\r\n if (filter.searchTerm) {\r\n const searchTerm = filter.searchTerm.toLowerCase();\r\n\r\n filterCompanies = filterCompanies.filter(c =>\r\n c.name.toLowerCase().includes(searchTerm) ||\r\n c.country?.name.toLowerCase().includes(searchTerm) ||\r\n c.rolesText.toLowerCase().includes(searchTerm) ||\r\n c.createdBy?.toLowerCase().includes(searchTerm) ||\r\n c.subscriptionText?.toLowerCase().includes(searchTerm) ||\r\n (c.subscriptionDate && moment(c.subscriptionDate).format('MM/DD/YY')\r\n .toLowerCase()\r\n .includes(searchTerm)) ||\r\n companyStatuses.getByStatusCode(c.status).title.toLowerCase().includes(searchTerm) ||\r\n (\r\n c.primaryContact &&\r\n concatFullName(c.primaryContact.firstName, c.primaryContact.lastName)\r\n .toLowerCase().includes(searchTerm)\r\n ) ||\r\n moment(c.dateRegistered)\r\n .format('MM/DD/YY')\r\n .toLowerCase()\r\n .includes(searchTerm) ||\r\n c.salesRepresentatives\r\n .some(sr => concatFullName(sr.firstName, sr.lastName).toLowerCase().includes(searchTerm))\r\n );\r\n }\r\n\r\n if (filter.customDateRange\r\n && filter.customDateRange.from\r\n && filter.customDateRange.to\r\n && filter.selectedDateOption.key === bwicDateFilterOptions.custom.key) {\r\n filterCompanies = filterCompaniesByRange(filter.customDateRange.from, filter.customDateRange.to, filterCompanies);\r\n }\r\n\r\n if (filter.selectedDateOption\r\n && filter.selectedDateOption.key !== bwicDateFilterOptions.unspecified.key\r\n && filter.selectedDateOption.key !== bwicDateFilterOptions.custom.key) {\r\n\r\n const dateFilter = getSearchDateRange(filter);\r\n filterCompanies = filterCompaniesByRange(dateFilter.dateFrom, dateFilter.dateTo, filterCompanies);\r\n\r\n }\r\n\r\n return filterCompanies;\r\n\r\n}\r\n\r\nfunction filterCompaniesByRange(from, to, companies) {\r\n return companies.filter(company => {\r\n return moment(company.dateRegistered)\r\n .isAfter(from)\r\n &&\r\n moment(company.dateRegistered)\r\n .isBefore(to)\r\n });\r\n}\r\n\r\nfunction sort(companies, orderBy) {\r\n if (orderBy.column === companyColumns.status) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.status - b.status)\r\n : companies.sort((a, b) => b.status - a.status);\r\n } else if (orderBy.column === companyColumns.legalName) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.name.localeCompare(b.name))\r\n : companies.sort((a, b) => b.name.localeCompare(a.name));\r\n } else if (orderBy.column === companyColumns.members) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.members - b.members)\r\n : companies.sort((a, b) => b.members - a.members);\r\n } else if (orderBy.column === companyColumns.role) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.role.localeCompare(b.role))\r\n : companies.sort((a, b) => b.role.localeCompare(a.role));\r\n } else if (orderBy.column === companyColumns.country) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.country.name.localeCompare(b.country.name))\r\n : companies.sort((a, b) => b.country.name.localeCompare(a.country.name));\r\n } else if (orderBy.column === companyColumns.primaryContact) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => getPrimaryContactName(a).localeCompare(getPrimaryContactName(b)))\r\n : companies.sort((a, b) => getPrimaryContactName(b).localeCompare(getPrimaryContactName(a)));\r\n } else if (orderBy.column === companyColumns.dateRegistered) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => new Date(a.dateRegistered) - new Date(b.dateRegistered))\r\n : companies.sort((a, b) => new Date(b.dateRegistered) - new Date(a.dateRegistered));\r\n } else if (orderBy.column === companyColumns.createdBy) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => (a.createdBy || '').localeCompare(b.createdBy || ''))\r\n : companies.sort((a, b) => (b.createdBy || '').localeCompare(a.createdBy || ''));\r\n } else if (orderBy.column === companyColumns.isClearingBank) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => Number(a.role === companyRoles.BrokerDealer) - Number(b.role === companyRoles.BrokerDealer))\r\n .sort((a, b) => Number(a.isClearingBank) - Number(b.isClearingBank))\r\n : companies.sort((a, b) => Number(b.role === companyRoles.BrokerDealer) - Number(a.role === companyRoles.BrokerDealer))\r\n .sort((a, b) => Number(b.isClearingBank) - Number(a.isClearingBank))\r\n } else if (orderBy.column === companyColumns.subscription) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => (a.subscriptionText || '').localeCompare(b.subscriptionText || ''))\r\n : companies.sort((a, b) => (b.subscriptionText || '').localeCompare(a.subscriptionText || ''));\r\n } else if (orderBy.column === companyColumns.subscriptionEnd) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => compareDatesNullable(a.subscriptionDate, b.subscriptionDate))\r\n : companies.sort((a, b) => compareDatesNullable(b.subscriptionDate, a.subscriptionDate));\r\n }\r\n}\r\n\r\nfunction getPrimaryContactName(company) {\r\n const { primaryContact } = company;\r\n if (primaryContact) {\r\n if (primaryContact.name) {\r\n return primaryContact.name;\r\n }\r\n if (primaryContact.firstName || primaryContact.lastName) {\r\n return concatFullName(primaryContact.firstName, primaryContact.lastName);\r\n }\r\n }\r\n return '';\r\n}\r\n\r\nfunction concatFullName(firstName, lastName) {\r\n return [firstName, lastName].join(' ').trim();\r\n}","import moment from 'moment';\r\nimport { createSelector } from 'reselect';\r\nimport { companyColumns, userStatuses, memberColumns, companyStatuses, constants, userRequestStatuses, bwicDateFilterOptions, roles } from '../constants';\r\nimport dateTimeUtils from \"../utils/dateTime.utils\";\r\nimport { UserRequestStatus } from '../types/management/UserRequestStatus';\r\nimport { UserStatus } from '../types/account/UserStatus';\r\nimport { getSearchDateRange } from '../utils';\r\n\r\nconst getMemsberList = state => state.users;\r\nconst getUserRequestList = state => state.userRequests;\r\nconst getCompanyList = state => state.companies;\r\nconst getOrderByOptions = state => state.memberOrderBy;\r\nconst getFilterOptions = state => state.lastAppliedMemberFilter;\r\nconst getLiveSearch = state => state.memberFilter.searchTerm;\r\n\r\nexport const getActiveMembers = createSelector(\r\n [getMemsberList],\r\n (members) => members.filter(m => m.status === userStatuses.active.statusCode)\r\n);\r\n\r\nexport const getMembers = createSelector(\r\n [getMemsberList, getUserRequestList, getCompanyList, getFilterOptions, getOrderByOptions, getLiveSearch],\r\n (members, userRequests, companies, filter, orderBy, searchTerm) => {\r\n const extendedMembers = members.map(u => {\r\n const company = companies.find(c => c.id === u.companyId);\r\n return {\r\n ...u,\r\n fullName: () => `${u.firstName} ${u.lastName}`,\r\n\r\n companyName: company.name,\r\n companyStatus: company.status,\r\n companyStatusName: companyStatuses.getByStatusCode(company.status).title,\r\n canUnblock: company.status === companyStatuses.active.statusCode || company.status === companyStatuses.offPlatform.statusCode,\r\n statusName: userStatuses.getByStatusCode(u.status).title,\r\n dateRegistered: moment\r\n .utc(u.dateRegisteredUtc)\r\n .local()\r\n .format('MMM DD YYYY'),\r\n dateLastLogin: u.dateLastLoginUtc ? moment\r\n .utc(u.dateLastLoginUtc)\r\n .local()\r\n .format('MMM DD YYYY') : constants.emptyPlaceholder\r\n };\r\n });\r\n\r\n const extendedUserRequests = userRequests.map(r => ({\r\n ...r,\r\n isUserRequest: true,\r\n dateRegisteredUtc: r.registrationDate,\r\n dateRegistered: moment\r\n .utc(r.registrationDate)\r\n .local()\r\n .format('MMM DD YYYY'),\r\n dateLastLogin: '',\r\n createdBy: r.registrationBy,\r\n fullName: () => `${r.firstName} ${r.lastName}`,\r\n companyName: r.company.name,\r\n companyId: r.company.id,\r\n companyStatus: r.company.status,\r\n companyStatusName: companyStatuses.getByStatusCode(r.company.status).title,\r\n statusName: userRequestStatuses.getByStatusCode(r.status).title\r\n }));\r\n\r\n const filteredUserRequests = applyFilter(extendedUserRequests, { ...filter, searchTerm });\r\n const unprocessedUserRequests = filteredUserRequests.filter(r => r.status === UserRequestStatus.Pending);\r\n const blockedUserRequests = filteredUserRequests.filter(r => r.status === UserRequestStatus.Blocked);\r\n const filteredUsers = applyFilter(extendedMembers, { ...filter, searchTerm });\r\n return [\r\n ...sort(unprocessedUserRequests, orderBy), // pending user requests always on top\r\n ...sort([...blockedUserRequests, ...filteredUsers], orderBy)\r\n ];\r\n }\r\n);\r\n\r\nfunction applyFilter(members, filter) {\r\n let filteringResult = members;\r\n\r\n const statuses = [\r\n filter.active && UserStatus.Active,\r\n filter.blocked && UserStatus.Blocked,\r\n filter.invited && UserStatus.Invited,\r\n filter.notInvited && UserStatus.NotInvited,\r\n filter.pendingApproval && 'pending-approval'\r\n ].filter(status => status);\r\n\r\n const requestStatuses = [\r\n filter.pendingApproval && UserRequestStatus.Pending,\r\n filter.blocked && UserRequestStatus.Blocked\r\n ]\r\n\r\n const rolesArray = [\r\n filter.administrator && roles.Administrator,\r\n filter.arrangersClient && roles.ArrangersClient,\r\n filter.brokerDealerTrader && roles.BrokerDealerTrader,\r\n filter.brokerDealerViewer && roles.BrokerDealerViewer,\r\n filter.dataEntry && roles.DataEntry,\r\n filter.sellerAdmin && roles.SellerAdministrator,\r\n filter.sellerTrader && roles.SellerTrader,\r\n filter.sellerViewer && roles.SellerViewer,\r\n filter.subscriptionManager && roles.SubscriptionManager,\r\n filter.viewer && roles.Viewer,\r\n filter.collateralManager && roles.CollateralManager,\r\n filter.media && roles.Media\r\n ].filter(status => status);\r\n\r\n if (statuses.length) {\r\n filteringResult = filteringResult.filter(member => (member.isUserRequest ? requestStatuses : statuses)\r\n .some(status => status === member.status)\r\n );\r\n }\r\n\r\n if (rolesArray.length) {\r\n filteringResult = filteringResult.filter(member => {\r\n return rolesArray.some(role => {\r\n return member.roles.some(memberRole => memberRole === role);\r\n });\r\n });\r\n }\r\n\r\n if (filter.regBy?.length) {\r\n filteringResult = filteringResult.filter(member => filter.regBy.some(userId => member.createdById === userId));\r\n }\r\n\r\n if (filter.companies?.length) {\r\n filteringResult = filteringResult.filter(member => filter.companies.some(companyId => member.companyId === companyId));\r\n }\r\n\r\n if (filter.searchTerm) {\r\n const searchTerm = filter.searchTerm.toLowerCase();\r\n\r\n filteringResult = filteringResult.filter(m =>\r\n m.fullName().toLowerCase().includes(searchTerm) ||\r\n m.email.toLowerCase().includes(searchTerm) ||\r\n m.companyName.toLowerCase().includes(searchTerm) ||\r\n (m.phone && m.phone.toLowerCase().includes(searchTerm)) ||\r\n m.statusName.toLowerCase().includes(searchTerm) ||\r\n m.dateRegistered.toLowerCase().includes(searchTerm) ||\r\n (m.roles && m.roles.length && m.roles.some(r => r.toLowerCase().includes(searchTerm))) ||\r\n m.dateLastLogin.toLowerCase().includes(searchTerm) ||\r\n m.createdBy?.toLowerCase().includes(searchTerm) ||\r\n m.companyStatusName.toLowerCase().includes(searchTerm) ||\r\n dateTimeUtils.utcToLocalString(m.dateRegisteredUtc, constants.dateFormat4).includes(searchTerm)\r\n );\r\n }\r\n\r\n if (filter.customDateRange\r\n && filter.customDateRange.from\r\n && filter.customDateRange.to\r\n && filter.selectedDateOption.key === bwicDateFilterOptions.custom.key) {\r\n filteringResult = filterMembersByRange(filter.customDateRange.from, filter.customDateRange.to, filteringResult);\r\n }\r\n\r\n if (filter.selectedDateOption\r\n && filter.selectedDateOption.key !== bwicDateFilterOptions.unspecified.key\r\n && filter.selectedDateOption.key !== bwicDateFilterOptions.custom.key) {\r\n const dateFilter = getSearchDateRange(filter);\r\n filteringResult = filterMembersByRange(dateFilter.dateFrom, dateFilter.dateTo, filteringResult);\r\n\r\n }\r\n\r\n return filteringResult;\r\n}\r\n\r\nfunction filterMembersByRange(from, to, companies) {\r\n return companies.filter(member => {\r\n return moment(member.dateRegisteredUtc)\r\n .isAfter(from)\r\n &&\r\n moment(member.dateRegisteredUtc)\r\n .isBefore(to)\r\n });\r\n}\r\n\r\nfunction sort(members, orderBy) {\r\n if (orderBy.column === memberColumns.status) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.status - b.status)\r\n : members.sort((a, b) => b.status - a.status);\r\n } else if (orderBy.column === memberColumns.fullName) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.fullName().localeCompare(b.fullName()))\r\n : members.sort((a, b) => b.fullName().localeCompare(a.fullName()));\r\n } else if (orderBy.column === memberColumns.email) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.email.localeCompare(b.email))\r\n : members.sort((a, b) => b.email.localeCompare(a.email));\r\n } else if (orderBy.column === memberColumns.phone) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => (a.phone || '').localeCompare(b.phone || ''))\r\n : members.sort((a, b) => (b.phone || '').localeCompare(a.phone || ''));\r\n } else if (orderBy.column === companyColumns.dateRegistered) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => new Date(a.dateRegisteredUtc) - new Date(b.dateRegisteredUtc))\r\n : members.sort((a, b) => new Date(b.dateRegisteredUtc) - new Date(a.dateRegisteredUtc));\r\n } else if (orderBy.column === companyColumns.company) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.companyName.localeCompare(b.companyName))\r\n : members.sort((a, b) => b.companyName.localeCompare(a.companyName));\r\n } else if (orderBy.column === memberColumns.createdBy) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.createdBy?.localeCompare(b.createdBy))\r\n : members.sort((a, b) => b.createdBy?.localeCompare(a.createdBy));\r\n } else if (orderBy.column === memberColumns.companyStatus) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.companyStatus - b.companyStatus)\r\n : members.sort((a, b) => b.companyStatus - a.companyStatus);\r\n } else if (orderBy.column === memberColumns.dateLastLogin) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => getDate(a.dateLastLoginUtc) - getDate(b.dateLastLoginUtc))\r\n : members.sort((a, b) => getDate(b.dateLastLoginUtc) - getDate(a.dateLastLoginUtc));\r\n\r\n function getDate(dt) {\r\n return dt ? moment.utc(dt).toDate() : new Date(0);\r\n }\r\n }\r\n}\r\n","import { createSelector } from 'reselect';\r\n\r\nconst getDeals = state => state.deals;\r\nconst getOrderByDirection = state => state.orderByAsc;\r\n\r\nexport const getOrderedDeals = createSelector(\r\n [getDeals, getOrderByDirection],\r\n (deals, orderByAsc) => orderByAsc\r\n ? deals.sort((a, b) => a.name.localeCompare(b.name))\r\n : deals.sort((a, b) => b.name.localeCompare(a.name))\r\n);\r\n","import { createSelector } from 'reselect';\r\nimport { dateTimeUtils } from '../utils';\r\n\r\nconst getBWICs = state => state.manageParsedBwics.bwics;\r\nconst getSearchTermItems = state => state.searchSecurities.searchTermItems || [];\r\nconst getRefreshFlag = state=> state.refreshLastUpdatedDate;\r\n\r\nexport const getFilteredParsedBWICs = createSelector(\r\n [getBWICs, getSearchTermItems, getRefreshFlag],\r\n (bwics, searchTermItems, refreshFlag) => {\r\n if (!bwics || !bwics.length) {\r\n return bwics;\r\n }\r\n\r\n return bwics.map(b => (\r\n {\r\n ...b,\r\n bidsDue: dateTimeUtils.utcToLocalString(b.bidsDueUtc),\r\n lastUpdateAt: dateTimeUtils.duration(b.lastUpdateAtUtc)\r\n }));\r\n }\r\n);\r\n","import { createSelector } from 'reselect';\r\nimport { user } from '../user';\r\nimport { BwicHistoryAction } from '../types/bwic-history/BwicHistoryAction';\r\nimport { BwicHistoryState } from '../types/state/BwicHistoryState';\r\nimport { compareDates } from '../utils/compare.utils';\r\n\r\nexport interface BwicHistoryActionSelector extends BwicHistoryAction {\r\n isMyMessage: boolean;\r\n isResponseMessage: boolean;\r\n}\r\n\r\nconst getHistoryState = (state: BwicHistoryState) => state;\r\n\r\nexport const getHistory = createSelector(\r\n [getHistoryState],\r\n history => {\r\n if (!history.visible || !history.actions) {\r\n return history;\r\n }\r\n\r\n const actions = history.positionId\r\n ? history.actions.filter(a => a.positionId == null || a.positionId === history.positionId)\r\n : [...history.actions];\r\n\r\n actions.sort((a, b) => compareDates(a.sentDateUtc, b.sentDateUtc));\r\n\r\n return {\r\n ...history,\r\n actions: addActionProps(actions)\r\n };\r\n }\r\n);\r\n\r\nfunction addActionProps(actions: BwicHistoryAction[]): BwicHistoryActionSelector[] {\r\n const currentUser = user.current();\r\n if(!currentUser) return [];\r\n\r\n return actions\r\n // submittdBy field is empty for direct bid buyer actions \r\n .map(a => {\r\n return {\r\n ...a,\r\n isMyMessage: !!a.positionId && a.submittedBy && a.submittedBy.id === currentUser.companyId,\r\n isResponseMessage: !!a.positionId && (!a.submittedBy || a.submittedBy.id !== currentUser.companyId)\r\n }\r\n });\r\n}\r\n","import { createSelector } from 'reselect';\r\nimport { BwicPosition } from '../types/bwic/BwicPosition';\r\n\r\ntype TState = {\r\n securities: BwicPosition[],\r\n tradingPositions: { [positionId: number]: {} }\r\n};\r\n\r\nconst getPositions = (state: TState) => state.securities;\r\nconst getTradingPositionsState = (state: TState) => state.tradingPositions;\r\n\r\nexport const tradingPositionsSelector = createSelector(\r\n [getPositions, getTradingPositionsState],\r\n (positions, tradingPositionsState) => positions.filter(p => tradingPositionsState[p.id])\r\n);\r\n\r\n","import { createSelector } from 'reselect';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { filterDealers } from './dealers.selector';\r\nimport { isRequestSuccess } from '../utils';\r\nimport { sortDealersByConfirmedAgreement } from '../utils/direct-bidding.utils';\r\n\r\nconst getBrokerDealerList = (state: AppState) => state.entities.brokerDealerList;\r\nconst getBrokerDealerContactList = (state: AppState) => state.entities.brokerDealerContactList;\r\nconst getBrokerDealerUserList = (state: AppState) => state.entities.brokerDealerUserList;\r\nconst getSettlementAgentAgreements = (state: AppState) => state.entities.settlementAgentAgreements;\r\nconst getIsAllToAll = (state: AppState) => state.process.isAllToAll;\r\n\r\nexport const newBwicDealersSelector = createSelector(\r\n [getBrokerDealerList, getBrokerDealerContactList, getBrokerDealerUserList, getSettlementAgentAgreements, getIsAllToAll],\r\n (dealers, contacts, users, agreements, isAllToAll) => {\r\n if (isRequestSuccess(dealers.requestState, contacts.requestState, users.requestState, agreements.requestState)) {\r\n const visibleCompanies = filterDealers(dealers.items, contacts.items, users.items, agreements.items, isAllToAll);\r\n return sortDealersByConfirmedAgreement(visibleCompanies, agreements.items);\r\n }\r\n\r\n return [];\r\n });\r\n","import { pushNotificationService } from '../services';\r\nimport { call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { errorActions, notificationActions } from '../actions';\r\nimport { accountActions } from '../constants';\r\nimport { user } from '../user';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { Notification } from '../types/notifications/Notification';\r\nimport { NotificationType } from '../types/notifications/NotificationType';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { apiUtils } from '../utils/api.utils';\r\nimport { NotificationAttributes } from '../types/notifications/NotificationAttributes';\r\n\r\nfunction* watchNotificationServiceConnect() {\r\n yield call(pushNotificationService.start);\r\n}\r\n\r\nfunction* watchAuthLoginSuccess() {\r\n yield put(notificationActions.notificationServiceConnect());\r\n}\r\n\r\nfunction* watchAuthLogout() {\r\n yield call(pushNotificationService.stop);\r\n yield put(notificationActions.notificationReset())\r\n}\r\n\r\nfunction* watchNotificationGetList() {\r\n const notificationAttributes: NotificationAttributes = yield select((state: AppState) => state.notification.notificationAttributes);\r\n const notifications: Notification[] = yield select(\r\n (state: AppState) =>\r\n state.notification.notificationList\r\n .filter(n => notificationAttributes[n.referenceName]?.displayInNotificationList)\r\n );\r\n\r\n let lastNotificationReferenceName = null;\r\n\r\n if (notifications.length) {\r\n lastNotificationReferenceName = notifications[notifications.length - 1].referenceName\r\n }\r\n\r\n try {\r\n const newNotificationList: Notification[] = yield pushNotificationService.send('GetNotificationsBefore', lastNotificationReferenceName);\r\n const notificationAttributes = apiUtils.normalize(newNotificationList, n => n.referenceName, () => ({\r\n type: NotificationType.PushNotification,\r\n toastVisible: false,\r\n displayInNotificationList: true\r\n }));\r\n yield put(notificationActions.appendNotifications(newNotificationList, notificationAttributes))\r\n } catch (err) {\r\n yield put(notificationActions.notificationGetListFailure());\r\n yield put(errorActions.unexpectedError(err));\r\n }\r\n}\r\n\r\nfunction* watchNotificationsGetCountUnread() {\r\n try {\r\n const countUnread: number = yield pushNotificationService.send('CountUnreadNotifications');\r\n yield put(notificationActions.notificationsSetCountUnread(countUnread))\r\n } catch (err) {\r\n yield put(notificationActions.notificationsGetCountUnreadFailure());\r\n }\r\n}\r\n\r\nfunction* watchNotificationSetReadRequest(action: ActionType<{ referenceName: string }>) {\r\n const { referenceName } = action.payload;\r\n\r\n try {\r\n yield pushNotificationService.send('SetNotificationRead', referenceName);\r\n yield put(notificationActions.notificationSetReadSuccess(referenceName));\r\n yield watchNotificationsGetCountUnread();\r\n } catch (err) {\r\n yield put(notificationActions.notificationSetReadFailure(referenceName));\r\n yield put(errorActions.unexpectedError(err));\r\n }\r\n}\r\n\r\nfunction* watchNotificationsReadAllRequest() {\r\n try {\r\n yield pushNotificationService.send('SetAllNotificationsRead');\r\n yield put(notificationActions.notificationsReadAllSuccess());\r\n } catch (err) {\r\n yield put(notificationActions.notificationsReadAllFailure());\r\n yield put(errorActions.unexpectedError(err));\r\n }\r\n}\r\n\r\nexport function* watchNotifications() {\r\n yield call(pushNotificationService.build);\r\n yield takeEvery(getType(notificationActions.notificationServiceConnect), watchNotificationServiceConnect);\r\n yield takeEvery(accountActions.LOGIN_SUCCESS, watchAuthLoginSuccess);\r\n yield takeEvery(accountActions.LOGOUT, watchAuthLogout);\r\n if (user.isAuthenticated()) {\r\n yield put(notificationActions.notificationServiceConnect());\r\n }\r\n yield takeLatest(notificationActions.notificationGetList, watchNotificationGetList);\r\n yield takeLatest(notificationActions.notificationsGetCountUnread, watchNotificationsGetCountUnread);\r\n yield takeLatest(notificationActions.notificationSetReadRequest, watchNotificationSetReadRequest);\r\n yield takeLatest(notificationActions.notificationsReadAllRequest, watchNotificationsReadAllRequest)\r\n}\r\n","import { takeLatest, call, put } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport {\r\n onBoardingTooltipSetCountRequest,\r\n onBoardingTooltipSetCountSuccess,\r\n onBoardingTooltipSetCountFailure,\r\n onBoardingReset\r\n} from '../actions';\r\nimport { accountActions } from '../constants';\r\nimport { onBoardingTooltipService } from '../services';\r\n\r\nfunction* watchOnBoardingTooltipSetCount(action) {\r\n try {\r\n const { data } = action.payload;\r\n yield call(onBoardingTooltipService.setCount, data);\r\n yield put(onBoardingTooltipSetCountSuccess())\r\n } catch (e) {\r\n yield put(onBoardingTooltipSetCountFailure())\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(onBoardingReset())\r\n}\r\n\r\nexport function* watchOnBoardingTooltip() {\r\n yield takeLatest(getType(onBoardingTooltipSetCountRequest), watchOnBoardingTooltipSetCount);\r\n yield takeLatest(accountActions.LOGOUT, watchLogout)\r\n}\r\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { securityDetailsActions } from '../actions/security.details.actions';\r\nimport { ratingService } from '../services';\r\n\r\nfunction* watchSecurityDetailsInit(action: ActionType): Generator {\r\n try {\r\n const { security, fetchAgencyRatings } = action.payload;\r\n\r\n const [ratings, mappings] = yield all([\r\n fetchAgencyRatings && call(ratingService.getSecurityRatings, security.securityId),\r\n call(ratingService.getRatingMappings),\r\n ]);\r\n\r\n yield put(securityDetailsActions.securityDetailsInitSuccess(ratings, mappings));\r\n } catch (e) {\r\n yield put(securityDetailsActions.securityDetailsInitFailure(e));\r\n }\r\n}\r\n\r\nexport function* watchSecurityDetails() {\r\n yield takeLatest(getType(securityDetailsActions.securityDetailsInitRequest), watchSecurityDetailsInit);\r\n}\r\n","import { all, call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { saveAs } from 'file-saver';\r\nimport moment from 'moment';\r\nimport { apiOperationActions, errorActions, searchSecuritiesActions, sellerBuysideActions } from '../actions';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { SellerBuysideFilterState, SellerBuysideState } from '../types/state/SellerBuysideState';\r\nimport { getDateRangeOption, getSearchDateRange, isRequesting, jsonUtils, numericUtils } from '../utils';\r\nimport { PaginationResult } from '../types/PaginationResult';\r\nimport { SellerBuysideSearchResult } from '../types/bid-as-dealer/SellerBuysideSearchResult';\r\nimport { bidAsDealerRequestService, biddingService } from '../services';\r\nimport { FilterOption } from '../types/filters/FilterOption';\r\nimport { SubmitBidRequestPayloadType } from '../actions';\r\nimport { accountActions, bwicDateFilterOptions, constants, pushDataActions } from '../constants';\r\nimport { BwicStatus } from '../types/enums/BwicStatus';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { queryStringSerializer } from '../utils/filtering';\r\nimport { Rating } from '../types/enums/Rating';\r\nimport {\r\n dateFrom,\r\n dateTo,\r\n identifiers,\r\n multipleCurrencies,\r\n ratings,\r\n statuses,\r\n types,\r\n sizeFrom,\r\n sizeTo,\r\n submittedBids,\r\n sorting,\r\n} from '../utils/filtering/serializers/serializer.definitions';\r\nimport { BidRequestStatus } from '../types/bid-as-dealer/BidRequestStatus';\r\nimport { SellerBuySideFilterOptions } from '../types/bid-as-dealer/SellerBuysideFilterOptions';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { QueryStringArgumentSerializer } from '../utils/filtering/serializers/QueryStringArgumentSerializer';\r\nimport { BwicType } from '../types/enums/BwicType';\r\nimport { ApiOperation } from '../types/api-operation/ApiOperation';\r\nimport { ApiOperationType } from '../types/api-operation/ApiOperationType';\r\nimport { keys } from 'lodash';\r\nimport { TApiCallResponse } from '../types/api-operation/ApiOperationResult';\r\nimport { BidConflict } from '../types/bidding/BidConflict';\r\nimport { SubmitBidAttributesModel } from '../types/bidding/SubmitBidAttributesModel';\r\nimport { BwicMonitorSortByOptions } from '../types/state/AllBwicsState';\r\nimport { user } from '../user';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { DeserializeCommandHandler, IDeserializeCommand } from '../utils/filtering/serializers/DeserializeCommand';\r\nimport { SellerBuysideSearchResultSummary } from '../types/bid-as-dealer/SellerBuysideSearchResultSummary';\r\nimport { history } from '../history';\r\n\r\nfunction* watchInit() {\r\n const { sellerBuyside } = yield select((state: AppState) => state);\r\n const { lastAppliedFilter } = sellerBuyside;\r\n yield put(sellerBuysideActions.initRequestStatus(RequestState.request));\r\n try {\r\n const queryString = history.location.search;\r\n const bidAsDealerRequestExist: boolean = yield call(bidAsDealerRequestService.bidAsDealerRequestExist);\r\n yield put(sellerBuysideActions.initRequestStatus(RequestState.success, bidAsDealerRequestExist));\r\n\r\n yield put(sellerBuysideActions.advancedFiltersBlocked(false));\r\n\r\n if (!user.hasFeatures(SubscriptionFeature.BwicMonitorAvancedFilters)) {\r\n yield put(sellerBuysideActions.dateFilterChange(bwicDateFilterOptions.unspecified));\r\n }\r\n if (queryString) {\r\n yield setFilterFromSearchString(queryString)\r\n }\r\n if (!lastAppliedFilter) {\r\n yield put(sellerBuysideActions.filterApply(true))\r\n }\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(sellerBuysideActions.initRequestStatus(RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* setFilterFromSearchString(queryString: string) {\r\n const { sellerBuyside } = yield select((state: AppState) => state);\r\n let identifierOptions: string[] = [];\r\n let from: Date | undefined | null = undefined;\r\n let to: Date | undefined | null = undefined;\r\n let statusOptions: BwicStatus[] = [];\r\n let currencyOptions: Currency[] = [];\r\n let ratingsOptions: Rating[] = [];\r\n let typesOptions: BwicType[] = [];\r\n let sizeMin: string | undefined = undefined;\r\n let sizeMax: string | undefined = undefined;\r\n let submittedBidsOption: boolean | null = null;\r\n let sortBy: BwicMonitorSortByOptions | undefined = undefined;\r\n\r\n const serializers: QueryStringArgumentSerializer[] = [\r\n identifiers((parsedIdentifiers: string[]) => identifierOptions = parsedIdentifiers),\r\n dateFrom(parsedDate => from = parsedDate),\r\n dateTo(parsedDate => to = parsedDate),\r\n statuses(parsedStatuses => statusOptions = parsedStatuses.map(s => Number(s))),\r\n ratings(parsedRatings => ratingsOptions = parsedRatings.map(r => Rating[r as keyof typeof Rating])),\r\n multipleCurrencies((parsedCurrency) => currencyOptions = parsedCurrency.map(c => Currency[c as keyof typeof Currency])),\r\n types(parsedTypes => typesOptions = parsedTypes.map(t => BwicType[t as keyof typeof BwicType])),\r\n sizeFrom(min => sizeMin = min),\r\n sizeTo(max => sizeMax = max),\r\n submittedBids(submittedBidsValue => submittedBidsOption = Boolean(submittedBidsValue)),\r\n sorting(sortByValue => sortBy = sortByValue as BwicMonitorSortByOptions),\r\n ];\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n\r\n yield all(sellerBuyside.filter.bwicStatuses.map((s: FilterOption) => put(sellerBuysideActions.bwicStatusFilterChange(Number(s.value), false))));\r\n yield all(identifierOptions.map((item: string) => put(searchSecuritiesActions.addSearchItem(item))));\r\n\r\n if (currencyOptions.length) {\r\n yield put(sellerBuysideActions.storeCurrencySelectedStatus(false));\r\n yield all(currencyOptions.map(c => put(sellerBuysideActions.currencyFilterChange(c, true))));\r\n }\r\n\r\n yield all(statusOptions.map(s => put(sellerBuysideActions.bwicStatusFilterChange(s, true))));\r\n yield all(ratingsOptions.map(r => put(sellerBuysideActions.ratingFilterChange(r, true))));\r\n yield all(typesOptions.map(t => put(sellerBuysideActions.typeFilterChange(t, true))));\r\n\r\n if ((sizeMin && !sizeMax) || (!sizeMin && sizeMax) || (sizeMin && sizeMax && Number(sizeMin) <= Number(sizeMax))) {\r\n yield put(sellerBuysideActions.sizeFilterChange({ min: sizeMin ?? '', max: sizeMax ?? '' }));\r\n }\r\n yield put(sellerBuysideActions.submittedBidsFilterChange(submittedBidsOption))\r\n\r\n const dateCommand: IDeserializeCommand = {\r\n canExecute: () => user.hasFeatures(SubscriptionFeature.BwicMonitorAvancedFilters),\r\n shouldExecute: () => !!from || !!to,\r\n execute: function* () {\r\n const { option, customRange } = getDateRangeOption(from, to);\r\n yield put(sellerBuysideActions.dateFilterChange(option));\r\n\r\n if (option.key === bwicDateFilterOptions.custom.key) {\r\n yield put(sellerBuysideActions.customDateFilterChange(customRange));\r\n }\r\n\r\n }\r\n };\r\n const sortByCommand: IDeserializeCommand = {\r\n canExecute: () => user.hasFeatures(SubscriptionFeature.BwicMonitorSorting),\r\n shouldExecute: () => !!sortBy,\r\n execute: function* () {\r\n yield put(sellerBuysideActions.sortFieldChanged(sortBy!));\r\n }\r\n }\r\n\r\n const isAllCommandsExecuted: boolean = yield new DeserializeCommandHandler()\r\n .addCommand(dateCommand)\r\n .addCommand(sortByCommand)\r\n .processGenerator();\r\n\r\n if (!isAllCommandsExecuted) {\r\n yield put(sellerBuysideActions.advancedFiltersBlocked(true));\r\n }\r\n}\r\n\r\nfunction* watchExportBidRequestsRequest() {\r\n try {\r\n const lastAppliedFilter: SellerBuysideFilterState = yield select((state: AppState) => state.sellerBuyside.lastAppliedFilter);\r\n const sortBy: BwicMonitorSortByOptions = yield select((state: AppState) => state.sellerBuyside.sortBy);\r\n if (lastAppliedFilter) {\r\n const filterOption: SellerBuySideFilterOptions = yield getSearchFilterOptions(lastAppliedFilter);\r\n const file: { name: string, blob: Blob } = yield call(\r\n bidAsDealerRequestService.exportBidRequestsAsSeller,\r\n filterOption, sortBy\r\n );\r\n saveAs(file.blob, file.name);\r\n yield put(sellerBuysideActions.exportBidRequestsSuccess())\r\n }\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(sellerBuysideActions.exportBidRequestsFailure())\r\n }\r\n}\r\n\r\nfunction* getSearchFilterOptions(stateFilter: SellerBuysideFilterState): Generator {\r\n const state: SellerBuysideState = yield select((state: AppState) => state.sellerBuyside);\r\n const isinCusipsAndTickers: string[] = yield select((state: AppState) => state.searchSecurities.searchTermItems);\r\n const dateRange = getSearchDateRange(stateFilter);\r\n\r\n return {\r\n isinCusipsAndTickers,\r\n from: dateRange.dateFrom ? moment(dateRange.dateFrom).format(constants.dateTimeFormatUtc) : undefined,\r\n to: dateRange.dateTo ? moment(dateRange.dateTo).format(constants.dateTimeFormatUtc) : undefined,\r\n statuses: getFilterSelectedValues(stateFilter.bwicStatuses),\r\n currency: getSelectedCurrency(stateFilter.currencies)[0] || '',\r\n ratings: getFilterSelectedValues(stateFilter.ratings),\r\n types: getFilterSelectedValues(stateFilter.types),\r\n page: state.currentPageNumber,\r\n pageSize: state.pageSize,\r\n sizeFrom: numericUtils.isNumber(stateFilter.size.min) ? Number(stateFilter.size.min) : undefined,\r\n sizeTo: numericUtils.isNumber(stateFilter.size.max) ? Number(stateFilter.size.max) : undefined,\r\n submittedBids: stateFilter.submittedBids\r\n };\r\n}\r\n\r\nfunction* watchFilterApply(action: ActionType) {\r\n const state: SellerBuysideState = yield select((state: AppState) => state.sellerBuyside);\r\n const isinCusipsAndTickers: string[] = yield select((state: AppState) => state.searchSecurities.searchTermItems);\r\n\r\n if (state.advancedFiltersBlocked) return;\r\n\r\n yield put(sellerBuysideActions.dataItemsLoadingState(true));\r\n\r\n const isFilterChanged = action.payload.isApply || action.payload.isSearchTermChange;\r\n\r\n const filter = isFilterChanged\r\n ? state.filter\r\n : state.lastAppliedFilter ?? state.initialFilter;\r\n\r\n if (isFilterChanged) {\r\n yield put(sellerBuysideActions.resetSummary());\r\n }\r\n\r\n try {\r\n const response: PaginationResult & SellerBuysideSearchResultSummary = yield call(\r\n bidAsDealerRequestService.findBidRequestsAsSeller,\r\n yield getSearchFilterOptions(filter),\r\n state.sortBy,\r\n isFilterChanged\r\n );\r\n const { totalRecordNumber, result, ...summary } = response;\r\n const serializers: QueryStringArgumentSerializer[] = [\r\n identifiers(),\r\n statuses(),\r\n dateFrom(),\r\n ratings(),\r\n multipleCurrencies(),\r\n dateTo(),\r\n types(),\r\n sizeFrom(),\r\n sizeTo(),\r\n submittedBids()\r\n ];\r\n\r\n if (user.hasFeatures(SubscriptionFeature.BwicMonitorSorting)) {\r\n serializers.push(sorting());\r\n }\r\n\r\n const criteria = getFilterCriteria(state.filter, isinCusipsAndTickers);\r\n const queryString = queryStringSerializer.serialize({ ...criteria, sortBy: state.sortBy }, serializers);\r\n if (queryString !== history.location.search?.replace('?', '')) {\r\n yield call(history.replace, history.location.pathname + '?' + queryString);\r\n }\r\n if (action.payload.isApply) {\r\n yield put(sellerBuysideActions.storeAppliedFilter(state.filter));\r\n }\r\n yield put(sellerBuysideActions.storeSearchResult(\r\n { totalRecordNumber, result },\r\n isFilterChanged ? summary : undefined\r\n ));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n } finally {\r\n yield put(sellerBuysideActions.dataItemsLoadingState(false));\r\n }\r\n}\r\n\r\nfunction getSelectedCurrency(currencies: FilterOption[]) {\r\n const selectedCurrencies = currencies.filter(currency => currency.selected);\r\n return selectedCurrencies.length === 2 || !selectedCurrencies.length ? [] : [String(selectedCurrencies[0].value)]\r\n}\r\n\r\nfunction getFilterCriteria(filter: SellerBuysideFilterState, isinCusipsAndTickers: string[]) {\r\n return {\r\n isinCusipsAndTickers,\r\n statuses: filter.bwicStatuses.filter(s => s.selected).map(s => s.value),\r\n ratings: filter.ratings.filter(r => r.selected).map(r => r.value),\r\n types: filter.types.filter(t => t.selected).map(t => t.value),\r\n currency: filter.currencies.filter(currency => currency.selected).map(c => c.value),\r\n sizeFrom: filter.size.min,\r\n sizeTo: filter.size.max,\r\n submittedBids: filter.submittedBids,\r\n ...getSearchDateRange(filter)\r\n };\r\n}\r\n\r\nfunction getFilterSelectedValues(options: FilterOption[]): TValue[] {\r\n if (options.some(o => o.selected) && options.some(o => !o.selected)) {\r\n return options.filter(o => o.selected).map(o => o.value as unknown as TValue);\r\n }\r\n return [];\r\n}\r\n\r\nfunction* watchReset() {\r\n const { searchTermItems } = yield select((state: AppState) => state.searchSecurities);\r\n yield put(searchSecuritiesActions.reset());\r\n yield put(sellerBuysideActions.saveSearchTermItems(searchTermItems));\r\n}\r\n\r\ntype SubmitBidRequestActionType = {\r\n type: string;\r\n payload: { data: SubmitBidRequestPayloadType };\r\n};\r\n\r\nfunction* watchSubmitBidRequest(action: SubmitBidRequestActionType) {\r\n const state: SellerBuysideState = yield select((state: AppState) => state.sellerBuyside);\r\n const apiOperation: ApiOperation | undefined = yield select((s: AppState) =>\r\n s.apiOperation.requests.find(r =>\r\n r.event === ApiOperationType.SubmitAxedFinal ||\r\n r.event === ApiOperationType.SubmitBidRequest)\r\n );\r\n\r\n const {\r\n bwicReferenceName,\r\n positionId,\r\n level,\r\n axed,\r\n final,\r\n commission,\r\n modifiedDate,\r\n agreementBrokerDealerId,\r\n agreementCommission,\r\n positionSize\r\n } = action.payload.data;\r\n const current = state.dataItems.find(i => i.position.id === positionId);\r\n\r\n if (\r\n !current ||\r\n isRequesting(apiOperation?.state) ||\r\n keys(state.requestStateSubmitBidRequest).some(key => state.requestStateSubmitBidRequest[+key])) {\r\n return;\r\n }\r\n\r\n yield put(sellerBuysideActions.updateRequestStateSubmitBid(true, positionId));\r\n\r\n if (apiOperation) {\r\n yield put(apiOperationActions.resetEvent(ApiOperationType.SubmitAxedFinal));\r\n yield put(apiOperationActions.resetEvent(ApiOperationType.SubmitBidRequest));\r\n }\r\n\r\n const statusCode = apiOperation?.result?.statusCode;\r\n const response = apiOperation?.result?.response;\r\n const conflict = statusCode === 409 && response != null ? parseConflict(response) : undefined;\r\n const isBiddingOverThemself = statusCode === 300;\r\n const bidLock = conflict?.modifiedDate ?? modifiedDate;\r\n const isBidOrCommissionChanged = current.bidAsDealerRequest?.directBid == null\r\n ? (level || commission !== agreementCommission)\r\n : (level && level !== current.bidAsDealerRequest.level) || (commission && commission !== current.bidAsDealerRequest.commission);\r\n\r\n try {\r\n if (isBidOrCommissionChanged) {\r\n const bidRequest = {\r\n positionId,\r\n brokerDealerId: agreementBrokerDealerId,\r\n commission,\r\n value: level,\r\n axed,\r\n final,\r\n size: positionSize,\r\n salesCoverage: [],\r\n bidLock,\r\n acceptBiddingOverThemself: isBiddingOverThemself,\r\n stagedBiddingStatus: current.bwic.process.stagedBiddingStatus\r\n }\r\n\r\n const [response]: TApiCallResponse[] = yield call(\r\n bidAsDealerRequestService.submit,\r\n bwicReferenceName,\r\n [bidRequest]\r\n );\r\n\r\n yield put(apiOperationActions.waitResult({\r\n state: RequestState.request,\r\n event: ApiOperationType.SubmitBidRequest,\r\n token: response.token,\r\n positionId: response.positionId,\r\n autoRemove: false,\r\n errorToastDisabled: true,\r\n createdDate: new Date()\r\n }));\r\n } else if (current.bidAsDealerRequest && current.bidAsDealerRequest.directBid) {\r\n const model: SubmitBidAttributesModel[] = [{\r\n positionId,\r\n bidId: current.bidAsDealerRequest.directBid.id,\r\n axed,\r\n final,\r\n bidLock,\r\n stagedBiddingStatus: current.bwic.process.stagedBiddingStatus,\r\n }];\r\n const [response]: TApiCallResponse[] = yield call(biddingService.updateBidAttributes, model);\r\n\r\n yield put(apiOperationActions.waitResult({\r\n state: RequestState.request,\r\n event: ApiOperationType.SubmitAxedFinal,\r\n token: response.token,\r\n positionId: response.positionId,\r\n autoRemove: false,\r\n errorToastDisabled: true,\r\n createdDate: new Date()\r\n }));\r\n }\r\n } catch (e) {\r\n yield put(apiOperationActions.waitResult({\r\n state: RequestState.failure,\r\n event: ApiOperationType.SubmitBidRequest,\r\n token: '',\r\n autoRemove: false,\r\n positionId,\r\n createdDate: new Date(),\r\n result: {\r\n statusCode: e.status,\r\n event: ApiOperationType.SubmitBidRequest,\r\n token: '',\r\n positionId,\r\n response: ''\r\n }\r\n }));\r\n } finally {\r\n yield put(sellerBuysideActions.updateRequestStateSubmitBid(false, positionId));\r\n }\r\n}\r\n\r\nfunction parseConflict(jsonText: string) {\r\n const conflicts: BidConflict[] | null = jsonText ? jsonUtils.tryParse(jsonText) : null;\r\n return conflicts?.length ? conflicts[0] : null;\r\n}\r\n\r\nfunction* watchBwicStatusChange(action: { type: string, bwicReferenceName: string, bwicStatus: BwicStatus }) {\r\n const state: SellerBuysideState = yield select((state: AppState) => state.sellerBuyside);\r\n\r\n if (!(action.bwicStatus === BwicStatus.scheduled || action.bwicStatus === BwicStatus.bidding)) {\r\n const editState = { ...state.editBidRequestState };\r\n const dataItems = state.dataItems\r\n .filter(i => i.bwic.referenceName === action.bwicReferenceName)\r\n .map(i => ({\r\n ...i,\r\n bwic: { ...i.bwic, status: action.bwicStatus, isColorDistribution: false },\r\n bidAsDealerRequest: i.bidAsDealerRequest ? {\r\n ...i.bidAsDealerRequest,\r\n status: BidRequestStatus.expired\r\n } : undefined\r\n }));\r\n\r\n dataItems.forEach(i => {\r\n if (editState[i.position.id]) {\r\n delete editState[i.position.id];\r\n }\r\n });\r\n\r\n if (dataItems.length) {\r\n yield put(sellerBuysideActions.updateEditBidRequestState(editState));\r\n yield put(sellerBuysideActions.updateBidRequests(dataItems));\r\n }\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(sellerBuysideActions.hardReset());\r\n}\r\n\r\nfunction* watchSortChanged() {\r\n yield put(sellerBuysideActions.pagingReset());\r\n yield put(sellerBuysideActions.filterApply());\r\n}\r\n\r\nexport function* watchSellerBuyside() {\r\n yield takeEvery(getType(sellerBuysideActions.init), watchInit);\r\n yield takeEvery(getType(sellerBuysideActions.filterApply), watchFilterApply);\r\n yield takeEvery(getType(sellerBuysideActions.sortChanged), watchSortChanged);\r\n yield takeEvery(getType(sellerBuysideActions.reset), watchReset);\r\n yield takeEvery(getType(sellerBuysideActions.submitBidRequest), watchSubmitBidRequest);\r\n yield takeEvery(pushDataActions.PUSH_DATA_BWIC_STATUS_CHANGE, watchBwicStatusChange);\r\n yield takeEvery(getType(sellerBuysideActions.exportBidRequestsRequest), watchExportBidRequestsRequest);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import { takeEvery, put } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { subscriptionsActions, accountActions } from \"../actions\";\r\nimport { SubscriptionPush } from \"../types/billing/SubscriptionPush\";\r\nimport { user } from \"../user\";\r\n\r\n/*\r\nfunction* watchInit() {\r\n const subscriptions: SubscriptionsState = yield select((state: AppState) => state.subscriptions);\r\n if (subscriptions.billingContact) return;\r\n\r\n yield put(subscriptionsActions.loadingFlag(true));\r\n\r\n try {\r\n let paymentCards: PaymentCard[];\r\n let billingContact: BillingContact;\r\n let countries: Country[];\r\n let states: State[];\r\n\r\n [paymentCards, billingContact, countries, states] = yield all([\r\n call(billingService.getPaymentCards),\r\n call(billingService.getBillingContact),\r\n call(locationService.getCountries),\r\n call(locationService.getStates, constants.USCountryCode)\r\n ]);\r\n\r\n yield put(subscriptionsActions.storePaymentCards(paymentCards));\r\n yield put(subscriptionsActions.storeBillingContact(billingContact));\r\n yield put(subscriptionsActions.storeCountries(countries));\r\n yield put(subscriptionsActions.storeStates(states));\r\n yield put(billingHistoryActions.fetchBillingHistory(RequestState.request))\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n } finally {\r\n yield put(subscriptionsActions.loadingFlag(false));\r\n }\r\n} */\r\n\r\nfunction* wathSubscriptionChangePush(action: { type: string, payload: { subscription: SubscriptionPush } }) {\r\n const { subscription, trialPeriodEnd, subscriptionExpiration } = action.payload.subscription;\r\n\r\n user.changeSubscription(\r\n subscription,\r\n trialPeriodEnd,\r\n subscriptionExpiration\r\n );\r\n yield put(accountActions.refreshAuthentication());\r\n}\r\n\r\n/*\r\ntype TUpgradeAction = { type: string, payload: { targetSubscriptionType: SubscriptionType } }\r\nfunction* watchUpgradeSubscription(action: TUpgradeAction) {\r\n const subscriptions: SubscriptionsState = yield select((state: AppState) => state.subscriptions);\r\n const { billingContact, paymentCards } = subscriptions;\r\n\r\n if (!billingContact) return;\r\n\r\n if (!billingContact.billingContactCreated || !paymentCards.length) {\r\n yield put(subscriptionsActions.showUpgradeSubscriptionWizard(action.payload.targetSubscriptionType));\r\n } else {\r\n const primaryCard = paymentCards.find(c => c.isPrimary);\r\n if (primaryCard) {\r\n yield put(upgradeSubscriptionActions.init(action.payload.targetSubscriptionType, billingContact, primaryCard));\r\n yield put(push(routes.upgradeSubscription));\r\n }\r\n }\r\n}*/\r\n\r\n/*\r\nfunction* watchLogout() {\r\n yield put(subscriptionsActions.reset());\r\n}*/\r\n\r\nexport function* watchSubscriptions() {\r\n //yield takeEvery(getType(subscriptionsActions.init), watchInit);\r\n yield takeEvery(getType(subscriptionsActions.subscriptionPushReceived), wathSubscriptionChangePush);\r\n //yield takeEvery(accountActionTypes.LOGOUT, watchLogout);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { salesRepresentativeActions } from \"../actions\";\r\nimport { accountActions, roles } from \"../constants\";\r\nimport { logger } from \"../logging/logger\";\r\nimport { salesRepresentativesService } from \"../services\";\r\nimport { SalesRepresentative } from \"../types/sales-representative/SalesRepresentative\";\r\nimport { user } from \"../user\";\r\n\r\nfunction* watchLoadSalesRepresentatives() {\r\n if (!user.isAuthenticated() || !user.hasRoles(...roles.salesRepresentativesSupported())) {\r\n return;\r\n }\r\n\r\n try {\r\n const salesRepresentatives: SalesRepresentative[] =\r\n yield call(salesRepresentativesService.getCurrentUserSalesRepresentatives);\r\n\r\n salesRepresentatives.sort((a, b) =>\r\n a.firstName.localeCompare(b.firstName) || a.lastName.localeCompare(b.lastName));\r\n\r\n if (salesRepresentatives.length) {\r\n yield put(salesRepresentativeActions.storeSalesRepresentatives(salesRepresentatives));\r\n }\r\n } catch (e) {\r\n logger.exception(e, 'Failed loading sales representatives for userId ' + user.current()?.id);\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(salesRepresentativeActions.reset())\r\n}\r\n\r\nexport function* watchSalesRepresentative() {\r\n yield takeEvery(getType(salesRepresentativeActions.loadUserSalesRepresentatives), watchLoadSalesRepresentatives);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout)\r\n}\r\n","import { call, put, select, takeEvery, takeLatest } from \"redux-saga/effects\";\r\nimport moment from 'moment';\r\nimport { isEqual } from 'lodash';\r\nimport { getType } from 'typesafe-actions';\r\nimport { billingHistoryActions } from '../actions/subscription-biling-history.actions';\r\nimport { billingService } from '../services/billing.service';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { SubscriptionBillingHistoryFilterState } from '../types/state/SubscriptionsState';\r\nimport { BillingHistory } from '../types/billing/BillingHistory';\r\nimport { SubscriptionPeriod } from '../types/filters/SubscriptionPeriod';\r\nimport { FilterOption } from '../types/filters/FilterOption';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { AnyAction } from 'redux';\r\nimport { isRequesting } from '../utils';\r\n\r\nfunction getFilterPeriodValues(filterPeriod: FilterOption[]): { from: Date, to: Date } {\r\n const period = filterPeriod.find(p => p.selected)?.value;\r\n const periodValues: { [key: string]: { from: Date, to: Date } } = {\r\n [SubscriptionPeriod.month]: {\r\n from: moment().subtract(1, 'month').toDate(),\r\n to: moment().toDate()\r\n },\r\n [SubscriptionPeriod.quarter]: {\r\n from: moment().subtract(4, 'month').toDate(),\r\n to: moment().toDate()\r\n },\r\n [SubscriptionPeriod.year]: {\r\n from: moment().subtract(1, 'year').toDate(),\r\n to: moment().toDate()\r\n },\r\n };\r\n return period ? periodValues[period] : periodValues[SubscriptionPeriod.month];\r\n}\r\n\r\nfunction getSearchRequestParams(filter: SubscriptionBillingHistoryFilterState): { dateFrom: Date, dateTo: Date, statuses: number[] } {\r\n const period = getFilterPeriodValues(filter.period);\r\n const statuses = filter.status.filter(s => s.selected).map(s => Number(s.value));\r\n return { dateFrom: period.from, dateTo: period.to, statuses }\r\n}\r\n\r\nfunction* watchApplyFilter() {\r\n const { filter, appliedFilter } = yield select((s: AppState) => s.subscriptions.billingHistory);\r\n yield put(billingHistoryActions.fetchBillingHistory(RequestState.request));\r\n if (!isEqual(filter, appliedFilter)) {\r\n yield put(billingHistoryActions.setApplyFilter());\r\n }\r\n}\r\n\r\nfunction* watchFetchHistory(action: AnyAction) {\r\n const {requestState} = action.payload;\r\n if (isRequesting(requestState)) {\r\n try {\r\n const { filter } = yield select((s: AppState) => s.subscriptions.billingHistory);\r\n const { dateFrom, dateTo, statuses } = getSearchRequestParams(filter);\r\n const billingHistory: BillingHistory[] = yield call(billingService.searchBillingHistory, dateFrom, dateTo, statuses);\r\n yield put(billingHistoryActions.fetchBillingHistory(RequestState.success, billingHistory));\r\n } catch (e) {\r\n yield put(billingHistoryActions.fetchBillingHistory(RequestState.failure));\r\n }\r\n }\r\n}\r\n\r\nexport function* watchBillingHistory() {\r\n yield takeLatest(getType(billingHistoryActions.fetchBillingHistory), watchFetchHistory);\r\n yield takeEvery(getType(billingHistoryActions.applyFilter), watchApplyFilter);\r\n}\r\n","import { takeEvery, call, put, select } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { releaseActions } from '../actions/release.actions';\r\nimport { releaseService } from '../services/release.service';\r\nimport { errorActions } from '../actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { Releases } from '../types/marketing/Release';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { isRequesting, isRequestSuccess } from '../utils';\r\nimport { onBoardingTooltipService } from '../services';\r\nimport { user } from '../user';\r\nimport { onBoardingTooltipConst } from '../constants';\r\nimport { OnBoardingTooltipType } from '../types/onboarding-tooltips/OnBoardingTooltipType';\r\n\r\nfunction* watchGetReleaseRequest() {\r\n const requestState: RequestState = yield select((s: AppState) => s.release.requestState);\r\n if (isRequestSuccess(requestState) || isRequesting(requestState)) {\r\n return\r\n }\r\n try {\r\n yield put(releaseActions.getReleaseRequest());\r\n const responseReleases: Releases = yield call(releaseService.fetchReleases);\r\n yield put(releaseActions.getReleaseResponse(RequestState.success, responseReleases))\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(releaseActions.getReleaseResponse(RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* watchMarkAsReadRequest() {\r\n try {\r\n yield call(onBoardingTooltipService.setCount, [{page: OnBoardingTooltipType.whatsNewPopup, count: onBoardingTooltipConst.maxCountLimit}]);\r\n user.setOnBoardingTooltipCounter(OnBoardingTooltipType.whatsNewPopup, onBoardingTooltipConst.maxCountLimit)\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(releaseActions.markAsReadResponse())\r\n }\r\n}\r\n\r\nexport function* watchRelease() {\r\n yield takeEvery(getType(releaseActions.fetchReleases), watchGetReleaseRequest);\r\n yield takeEvery(getType(releaseActions.markAsReadRequest), watchMarkAsReadRequest);\r\n}\r\n","import { ActionType } from '../types/ActionType';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\nimport { put, takeEvery, all, select } from 'redux-saga/effects';\r\nimport { newBwicDealersActions } from '../actions/new-bwic-dealers.actions';\r\nimport { accountActions } from '../constants';\r\nimport { getType } from 'typesafe-actions';\r\nimport { apiUtils } from '../utils/api.utils';\r\nimport { brokerDealerContactListActions } from '../actions/broker-dealer-contact-list.actions';\r\nimport { Contact } from '../types/company/Contact';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { UserSlim } from '../types/account/UserSlim';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\n\r\nfunction* watchSelectAllDealersByDefault(action: ActionType<{ dealers: BrokerDealerCompanySlim[] }>) {\r\n const { dealers } = action.payload;\r\n const liveBidding: boolean = yield select((s: AppState) => s.process.templates.current?.type === BwicProcessType.Live);\r\n\r\n // Leave off-platform companies unchecked if live bidding\r\n const dealersToSelect = liveBidding\r\n ? dealers.filter(d => d.status === CompanyStatus.active)\r\n : dealers;\r\n\r\n const list = apiUtils.normalize(dealersToSelect, d => d.id, () => true);\r\n yield put(newBwicDealersActions.selectDealers(list));\r\n}\r\n\r\nfunction* watchPushUpdateDealerContacts(action: ActionType<{ contacts: Contact[] }>) {\r\n const selectedByDefault: boolean = yield select((state: AppState) => state.newBwicDealers.selectedByDefault);\r\n const liveBidding: boolean = yield select((s: AppState) => s.process.templates.current?.type === BwicProcessType.Live);\r\n\r\n if (!selectedByDefault) {\r\n return false;\r\n }\r\n const { contacts } = action.payload;\r\n const selectedDealers: {[dealerId: number]: boolean} = yield select((s:AppState) => s.newBwicDealers.selectedDealers);\r\n const brokerDealers: BrokerDealerCompanySlim[] = yield select((state: AppState) => state.entities.brokerDealerList.items);\r\n const brokerDealerContacts: Contact[] = yield select((state: AppState) => state.entities.brokerDealerContactList.items);\r\n const brokerDealerUsers: UserSlim[] = yield select((state: AppState) => state.entities.brokerDealerUserList.items);\r\n yield all(contacts.map(c => {\r\n const brokerDealer = brokerDealers.find(d => d.id === c.companyId);\r\n if (!brokerDealer) return null;\r\n\r\n const isLiveBiddingOffPlatform = liveBidding && brokerDealer.status !== CompanyStatus.active;\r\n\r\n if (!c.deleted && !selectedDealers[c.companyId] && !isLiveBiddingOffPlatform) {\r\n return put(newBwicDealersActions.selectDealer(c.companyId))\r\n }\r\n \r\n if (\r\n c.deleted &&\r\n selectedDealers[c.companyId] &&\r\n brokerDealer &&\r\n !brokerDealer.isClearingBank &&\r\n !brokerDealer.headOfTrading &&\r\n !brokerDealer.distributionList &&\r\n !(liveBidding && brokerDealer.status !== CompanyStatus.active) &&\r\n !brokerDealerContacts.some(contact => contact.companyId === c.companyId) &&\r\n !brokerDealerUsers.some(user => user.companyId === c.companyId)\r\n ) {\r\n return put(newBwicDealersActions.selectDealer(c.companyId))\r\n }\r\n\r\n return null;\r\n }))\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(newBwicDealersActions.reset())\r\n}\r\n\r\nexport function* watchNewBwicDealers() {\r\n yield takeEvery(getType(newBwicDealersActions.selectDealersByDefault), watchSelectAllDealersByDefault);\r\n yield takeEvery(getType(brokerDealerContactListActions.pushUpdateList), watchPushUpdateDealerContacts);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\nimport { responseType } from '../constants';\r\nimport { SellerAdminEditFormModel } from '../types/seller-admin/SellerAdminEditFormModel';\r\nimport { UserCreationRequest } from '../types/management/UserCreationRequest';\r\nimport { CompanyUser } from '../types/management/CompanyUser';\r\nimport { TradingLimitType } from '../types/seller-admin/TradingLimitType';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { UserStatus } from '../types/account/UserStatus';\r\n\r\nfunction getExcludedDealers(): Promise<{ excludeNewCompany: boolean, excludedDealers: BrokerDealerCompanySlim[] }> {\r\n return fetchSafe('/api/manage/excluded-dealers')\r\n}\r\n\r\nfunction updateExcludedDealers(excludeNewCompany: boolean, companyIds: number[]): Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ excludeNewCompany, companyIds }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/manage/excluded-dealers', requestOptions)\r\n}\r\n\r\nfunction getTradingLimits(): Promise<{currency: Currency; size: number | null; type: TradingLimitType}[]> {\r\n return fetchSafe('/api/manage/trading-limits')\r\n}\r\n\r\nfunction updateTradingLimits(params: { tradingLimits: { currency: string; type: number; size: number | null }[] }): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/manage/trading-limits', requestOptions)\r\n}\r\n\r\ninterface RequestCreationEditUserParams extends SellerAdminEditFormModel {\r\n id?: number;\r\n concurrencyStamp?: Date;\r\n}\r\n\r\nfunction saveUserRequest(params: RequestCreationEditUserParams): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe('/api/manage/users', requestOptions)\r\n}\r\n\r\nfunction saveUser(params: RequestCreationEditUserParams): Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(params),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(`/api/manage/users/${params.id}/edit`, requestOptions)\r\n}\r\n\r\nfunction enableRequestUser(id: number, concurrencyStamp: Date): Promise {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n body: JSON.stringify({ id, concurrencyStamp }),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe('/api/manage/users/user-creation-request/enable', requestOptions)\r\n}\r\n\r\nfunction disableRequestUser(id: number, concurrencyStamp: Date, blockReason: string): Promise {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n body: JSON.stringify({ id, concurrencyStamp, blockReason }),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe('/api/manage/users/user-creation-request/disable', requestOptions)\r\n}\r\n\r\nfunction enableUser(id: number): Promise<{ id: number, status: UserStatus }> {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(`/api/manage/users/${id}/enable`, requestOptions)\r\n}\r\n\r\nfunction disableUser(id: number, blockReason: string): Promise<{ id: number }> {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n body: '\"' + blockReason + '\"',\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(`/api/manage/users/${id}/disable`, requestOptions)\r\n}\r\n\r\nfunction getCompanyUsers(): Promise<{ users: CompanyUser[], requests: UserCreationRequest[] }> {\r\n return fetchSafe('/api/company-account/users');\r\n}\r\n\r\nfunction exportUsers(): Promise<{ name: string, blob: Blob }> {\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/manage/users/export', requestOptions);\r\n}\r\n\r\nexport const sellerAdminService = {\r\n getExcludedDealers,\r\n updateExcludedDealers,\r\n updateTradingLimits,\r\n getTradingLimits,\r\n saveUserRequest,\r\n saveUser,\r\n enableRequestUser,\r\n disableRequestUser,\r\n enableUser,\r\n disableUser,\r\n exportUsers,\r\n getCompanyUsers,\r\n};\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { sellerAdminDealerActions } from '../actions/seller-admin-dealers.actions';\r\nimport { errorActions } from '../actions';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { accountActions } from '../constants';\r\nimport { sellerAdminService } from '../services/seller-admin.service';\r\nimport { brokerDealerListActions } from '../actions/broker-dealer-list.actions';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\n\r\nfunction* watchGetExcludedDealers() {\r\n try {\r\n const response: { excludeNewCompany: boolean, excludedDealers: BrokerDealerCompanySlim[] } =\r\n yield call(sellerAdminService.getExcludedDealers);\r\n yield put(sellerAdminDealerActions.getExcludedDealersSuccess(response.excludeNewCompany, response.excludedDealers));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(sellerAdminDealerActions.getExcludedDealersFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveExcludedDealers(action: ActionType<{ excludeNewCompany: boolean, dealerIds: number[] }>) {\r\n const { dealerIds, excludeNewCompany } = action.payload;\r\n try {\r\n yield call(sellerAdminService.updateExcludedDealers, excludeNewCompany, dealerIds);\r\n yield put(sellerAdminDealerActions.saveExcludedDealersSuccess());\r\n yield put(sellerAdminDealerActions.setEditModeStatus(false));\r\n yield put(brokerDealerListActions.request());\r\n yield put(sellerAdminDealerActions.getExcludedDealersRequest());\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(sellerAdminDealerActions.saveExcludedDealersFailure());\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(sellerAdminDealerActions.reset())\r\n}\r\n\r\nexport function* watchSellerAdminDealers() {\r\n yield takeEvery(getType(sellerAdminDealerActions.getExcludedDealersRequest), watchGetExcludedDealers);\r\n yield takeEvery(getType(sellerAdminDealerActions.saveExcludedDealersRequest), watchSaveExcludedDealers);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import { cloneDeep, isNil } from 'lodash';\r\nimport { AnyAction } from 'redux';\r\nimport { all, call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { errorActions, portfolioActions, searchSecuritiesActions } from '../actions';\r\nimport { createFilterActions } from '../actions/filter.actions';\r\nimport { portfolioListActions } from '../actions/portfolio-list.actions';\r\nimport { pushDataActions } from '../constants';\r\nimport { dateRangeFilterOptions } from '../constants/date-range.filter';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { portfolioService } from '../services';\r\nimport { BwicFilterType, FilterState, TFilter } from '../types/filters/FilterState';\r\nimport { PageConfigType } from '../types/page-config/PageConfigType';\r\nimport { Portfolio } from '../types/portfolio/Portfolio';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { UserConfigFilter } from '../types/user-config/UserConfigFilter';\r\nimport { arrayUtils, isRequestSuccess } from '../utils';\r\nimport { queryStringSerializer } from '../utils/filtering';\r\nimport { getDateOptionByRange } from '../utils/filtering/filter.utils';\r\nimport { QueryStringArgumentSerializer } from '../utils/filtering/serializers/QueryStringArgumentSerializer';\r\nimport {\r\n collateralManagers, collateralTypes, dealsLegalNames, esg, euCompliance, identifiers, mixedDateRange,\r\n multipleCurrencies, ratings, staticDeals, dateFrom, dateTo, trustees, amr, outOfNC, outOfRI\r\n} from '../utils/filtering/serializers/serializer.definitions';\r\nimport { DeserializeCommandHandler } from '../utils/filtering/serializers/DeserializeCommand';\r\nimport { user } from '../user/user';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { manageEmailPreferencesActions } from '../actions/manage-email-preferences.actions';\r\nimport { history } from '../history';\r\n\r\nconst filterActions = createFilterActions(BwicFilterType.Portfolio);\r\n\r\nfunction* watchRequest() {\r\n try {\r\n const portfolios: Portfolio[] = yield call(portfolioService.getPortfolios);\r\n yield put(portfolioListActions.requestResult(RequestState.success, portfolios));\r\n yield setDefaultFilter(portfolios);\r\n yield setDefaultFilterSelect();\r\n } catch (e) {\r\n yield put(portfolioListActions.requestResult(RequestState.failure));\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* setDefaultFilter(portfolios: Portfolio[]) {\r\n const filter: TFilter = yield select((s: AppState) => s.filters.portfolio.filter);\r\n const initialFilter = cloneDeep(filter);\r\n\r\n const getFilterItems = (collection: { legalName?: string, referenceName?: string }[]) => arrayUtils\r\n .distinct(collection, c => c.legalName)\r\n .filter(c => !!c.legalName && !!c.referenceName)\r\n .sort((a, b) => String(a.legalName).localeCompare(String(b.legalName)))\r\n .map(d => ({ value: d.referenceName, text: d.legalName, selected: false, visible: true, disabled: false }));\r\n\r\n const allDealNames = portfolios.map(p => p.securities.map(s => s.dealLegalName)).flat();\r\n const dealNameFilterItems = arrayUtils\r\n .distinct(allDealNames, name => name)\r\n .filter(name => !!name)\r\n .sort((a, b) => String(a).localeCompare(String(b)))\r\n .map(d => ({ value: d, text: d, selected: false, visible: true, disabled: false }));\r\n\r\n const allManagers = portfolios.map(p => p.securities.map(s => ({ legalName: s.collateralManager?.legalName, referenceName: s.collateralManager?.referenceName }))).flat();\r\n const managerFilterItems = getFilterItems(allManagers);\r\n\r\n const allTrusteeNames = portfolios.map(p => p.securities.map(s => ({ legalName: s.trustee?.legalName, referenceName: s.trustee?.referenceName }))).flat();\r\n const trusteeFilterItems = getFilterItems(allTrusteeNames);\r\n\r\n initialFilter.dealName = { ...initialFilter.dealName, filter: dealNameFilterItems };\r\n initialFilter.managers = { ...initialFilter.managers, filter: managerFilterItems };\r\n initialFilter.trustee = { ...initialFilter.trustee, filter: trusteeFilterItems }\r\n\r\n yield put(filterActions.init(initialFilter));\r\n}\r\n\r\nfunction* setDefaultFilterSelect() {\r\n const filterQueryString: string = history.location.search;\r\n const filter: FilterState = yield select((s: AppState) => s.filters.portfolio);\r\n\r\n const queryString = filterQueryString && filterQueryString.trim();\r\n\r\n const filtersConfig: UserConfigFilter[] = yield select((s: AppState) => s.entities.pageConfig.configs?.[PageConfigType.Portfolio]?.filters);\r\n const canUseAdvancedFilters = user.hasFeatures(SubscriptionFeature.PortfolioAvancedFilters);\r\n const defaultConfigFilter = canUseAdvancedFilters ? (filtersConfig || []).find(filter => filter.default) : undefined;\r\n\r\n if (queryString?.length) {\r\n const acceptableCollateralMembers = (filter.filter.managers.filter as { value: string }[]).map(f => f.value);\r\n\r\n const [ncEndSerializers, getNcEndDeserializeResult] = mixedDateRange('nonCallEndFrom', 'nonCallEndTo');\r\n const [riEndSerializers, getRiEndDeserializeResult] = mixedDateRange('reinvestmentEndFrom', 'reinvestmentEndTo');\r\n\r\n let searchInputValues: string[] = []\r\n let collateralType: string[] = []\r\n let currencyValues: string[] = [];\r\n let ratingValues: string[] = [];\r\n let dealNames: string[] = [];\r\n let collateralManager: string[] = [];\r\n let isEsg: boolean | undefined = undefined;\r\n let isEuCompliance: boolean | undefined = undefined;\r\n let isStaticDeal: boolean | undefined = undefined;\r\n let maturityFrom: Date | null = null;\r\n let maturityTo: Date | null = null;\r\n let vintageFrom: Date | null = null;\r\n let vintageTo: Date | null = null;\r\n let closingFrom: Date | null = null;\r\n let closingTo: Date | null = null;\r\n let trusteeValues: string[] = [];\r\n let amrValue: boolean | undefined = undefined;\r\n let isOutofRI: boolean | undefined = undefined;\r\n let isOutOfNC: boolean | undefined = undefined;\r\n\r\n const serializers: QueryStringArgumentSerializer[] = [\r\n identifiers(values => searchInputValues = values),\r\n ratings(values => ratingValues = values),\r\n multipleCurrencies(values => currencyValues = values),\r\n dealsLegalNames(values => dealNames = values),\r\n collateralTypes(values => collateralType = values),\r\n collateralManagers(values => collateralManager = values, acceptableCollateralMembers),\r\n esg(value => isEsg = value),\r\n euCompliance(value => isEuCompliance = value),\r\n staticDeals(value => isStaticDeal = value),\r\n outOfNC(value => isOutOfNC = value),\r\n outOfRI(value => isOutofRI = value),\r\n ...ncEndSerializers,\r\n ...riEndSerializers,\r\n dateFrom(value => maturityFrom = value, 'maturityFrom'),\r\n dateTo(value => maturityTo = value, 'maturityTo'),\r\n dateFrom(value => vintageFrom = value, 'vintageFrom'),\r\n dateTo(value => vintageTo = value, 'vintageTo'),\r\n dateFrom(value => closingFrom = value, 'closingFrom'),\r\n dateTo(value => closingTo = value, 'closingTo'),\r\n trustees(values => trusteeValues = values),\r\n amr(value => amrValue = value),\r\n ];\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n // Set nonCallEnd and reinvestmentEnd values\r\n const ncEndDeserializeResult = getNcEndDeserializeResult();\r\n const riEndDeserializeResult = getRiEndDeserializeResult();\r\n\r\n const searchInputValuesCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!searchInputValues.length,\r\n execute: function* () {\r\n yield all(searchInputValues.map(value => put(searchSecuritiesActions.addSearchItem(value))));\r\n }\r\n };\r\n const collateralTypesCommand = {\r\n shouldExecute: () => !!collateralType.length,\r\n execute: function* () {\r\n yield all(collateralType.map(type => put(filterActions.filterSelectChange(type, 'collateralType'))));\r\n }\r\n };\r\n const currenciesCommand = {\r\n shouldExecute: () => !!currencyValues.length,\r\n execute: function* () {\r\n yield all(currencyValues.map(currency => put(filterActions.filterSelectChange(currency, 'currency'))));\r\n }\r\n }\r\n\r\n const collateralManagersReferenceNamesCommand = {\r\n shouldExecute: () => !!collateralManager.length,\r\n execute: function* () {\r\n yield all(collateralManager.map(manager => put(filterActions.filterSelectChange(manager, 'managers'))));\r\n }\r\n };\r\n const ratingCommand = {\r\n execute: function* () {\r\n yield all(ratingValues.map(rating => put(filterActions.filterSelectChange(rating, 'ratings'))));\r\n }\r\n };\r\n const dealNamesCommand = {\r\n shouldExecute: () => !!dealNames.length,\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('dealName'));\r\n yield all(dealNames.map(name => put(filterActions.filterSelectChange(name, 'dealName'))));\r\n }\r\n };\r\n const esgCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isEsg),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('esg'));\r\n yield put(filterActions.filterRadioChange(isEsg!, 'esg'));\r\n }\r\n };\r\n const euCompilanceCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isEuCompliance),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('euCompliance'));\r\n yield put(filterActions.filterRadioChange(isEuCompliance!, 'euCompliance'));\r\n }\r\n };\r\n const staticDealsCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isStaticDeal),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('staticDeal'));\r\n yield put(filterActions.filterRadioChange(isStaticDeal!, 'staticDeal'));\r\n }\r\n };\r\n const outOfNCCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isOutOfNC),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('outOfNC'));\r\n yield put(filterActions.filterRadioChange(isOutOfNC!, 'outOfNC'));\r\n }\r\n };\r\n const outofRICommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isOutofRI),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('outOfRI'));\r\n yield put(filterActions.filterRadioChange(isOutofRI!, 'outOfRI'));\r\n }\r\n };\r\n const nonCallEndCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!ncEndDeserializeResult?.dates || !!ncEndDeserializeResult?.years,\r\n execute: function* () {\r\n yield put(filterActions.filterDateQueryStringDeserialized('nonCallEnd', ncEndDeserializeResult))\r\n }\r\n };\r\n const reinvestmentEndCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!riEndDeserializeResult?.dates || !!riEndDeserializeResult?.years,\r\n execute: function* () {\r\n yield put(filterActions.filterDateQueryStringDeserialized('reinvestmentEnd', riEndDeserializeResult));\r\n }\r\n };\r\n const trusteesValuesCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!trusteeValues.length,\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('trustee'));\r\n yield all(trusteeValues.map(name => put(filterActions.filterSelectChange(name, 'trustee'))));\r\n }\r\n };\r\n const maturityCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(maturityFrom) || !isNil(maturityTo),\r\n execute: function* () {\r\n yield put(filterActions.makeFilterVisible('maturity'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, maturityFrom, maturityTo);\r\n yield put(filterActions.filterDateSelectOption(filterOption, 'maturity'));\r\n yield put(\r\n filterActions.filterDateSelectCustomRange({ from: maturityFrom, to: maturityTo }, 'maturity'),\r\n );\r\n }\r\n };\r\n const vintageCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(vintageFrom) || !isNil(vintageTo),\r\n execute: function* () {\r\n yield put(filterActions.makeFilterVisible('vintage'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, vintageFrom, vintageTo);\r\n yield put(filterActions.filterDateSelectOption(filterOption, 'vintage'));\r\n yield put(\r\n filterActions.filterDateSelectCustomRange({ from: vintageFrom, to: vintageTo }, 'vintage'),\r\n );\r\n }\r\n };\r\n const closingCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(closingFrom) || !isNil(closingTo),\r\n execute: function* () {\r\n yield put(filterActions.makeFilterVisible('closing'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, closingFrom, closingTo);\r\n yield put(filterActions.filterDateSelectOption(filterOption, 'closing'));\r\n yield put(\r\n filterActions.filterDateSelectCustomRange({ from: closingFrom, to: closingTo }, 'closing'),\r\n );\r\n }\r\n };\r\n const amrValueCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(amrValue),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('amr'));\r\n yield put(filterActions.filterRadioChange(amrValue!, 'amr'));\r\n }\r\n };\r\n\r\n const isAllCommandsExecuted: boolean =\r\n yield new DeserializeCommandHandler()\r\n .addCommand(searchInputValuesCommand)\r\n .addCommand(collateralTypesCommand)\r\n .addCommand(currenciesCommand)\r\n .addCommand(collateralManagersReferenceNamesCommand)\r\n .addCommand(ratingCommand)\r\n .addCommand(dealNamesCommand)\r\n .addCommand(esgCommand)\r\n .addCommand(euCompilanceCommand)\r\n .addCommand(staticDealsCommand)\r\n .addCommand(outOfNCCommand)\r\n .addCommand(outofRICommand)\r\n .addCommand(nonCallEndCommand)\r\n .addCommand(reinvestmentEndCommand)\r\n .addCommand(trusteesValuesCommand)\r\n .addCommand(maturityCommand)\r\n .addCommand(vintageCommand)\r\n .addCommand(closingCommand)\r\n .addCommand(amrValueCommand)\r\n .processGenerator()\r\n\r\n if (!isAllCommandsExecuted) {\r\n yield put(portfolioActions.advancedFilterBlocked(true));\r\n return;\r\n }\r\n\r\n\r\n } else if (defaultConfigFilter) {\r\n yield put(filterActions.selectFilterFromConfig(defaultConfigFilter))\r\n }\r\n yield put(filterActions.applyFilter());\r\n}\r\n\r\nfunction* watchColorDistributionSend(action: AnyAction) {\r\n yield put(portfolioListActions.colorDistributionSend({\r\n bwicReferenceName: action.bwicReferenceName,\r\n historyAction: action.historyAction,\r\n colors: action.colors\r\n }));\r\n}\r\n\r\nfunction* watchBwicStatusChanged(action: AnyAction) {\r\n yield put(portfolioListActions.bwicStatusChanged({\r\n bwicReferenceName: action.bwicReferenceName,\r\n historyAction: action.historyAction,\r\n bwicStatus: action.bwicStatus\r\n }));\r\n}\r\n\r\nfunction* watchPortfolioGlobalAlertsChange(\r\n action: ActionType) {\r\n const portfolios: Portfolio[] = yield select((s: AppState) => s.entities.portfolios.items);\r\n const portfoliosRequestState: RequestState = yield select((s: AppState) => s.entities.portfolios.requestState);\r\n const hasPortfolio = portfolios?.length > 0;\r\n if (hasPortfolio && isRequestSuccess(portfoliosRequestState)) {\r\n const alertState = portfolios.map(p =>({\r\n portfolioId: p.id,\r\n bwicAlert: action.payload.bwicGlobalAlertEnabled,\r\n dealersInventoryAlert: action.payload.inventoryGlobalAlertEnabled,\r\n cleansingNoticeAlert: action.payload.cleansingNoticeAlertEnabled,\r\n issuanceMonitorAlert: action.payload.issuanceMonitorAlertEnabled,\r\n outOfRiPeriodAlert: action.payload.outOfRiAlertEnabled,\r\n outOfNcPeriodAlert: action.payload.outOfNcAlertEnabled,\r\n rollerDeadlineAlert: action.payload.rollerDeadlineAlertEnabled\r\n }));\r\n\r\n yield put(portfolioListActions.updateSendAlertState(alertState));\r\n }\r\n}\r\n\r\nexport function* watchPortfolioList() {\r\n yield takeLatest(getType(portfolioListActions.request), watchRequest);\r\n yield takeEvery(pushDataActions.PUSH_DATA_PUBLIC_COLORS, watchColorDistributionSend);\r\n yield takeEvery(pushDataActions.PUSH_DATA_BWIC_STATUS_CHANGE, watchBwicStatusChanged);\r\n yield takeEvery(manageEmailPreferencesActions.portfolioGlobalAlertsChange, watchPortfolioGlobalAlertsChange);\r\n}\r\n","import { all, call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport { Action } from 'redux';\r\nimport { ActionType } from 'typesafe-actions';\r\nimport { manageEmailPreferencesActions } from '../actions/manage-email-preferences.actions';\r\nimport { emailPreferencesService } from '../services';\r\nimport { errorActions } from '../actions';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { AlertOption, EmailPreferences } from '../types/email-preferences/EmailPreferences';\r\nimport { imUserConfigService } from '../services';\r\nimport { ImUserConfig } from '../types/user-config/UserConfig';\r\nimport { UserConfigType } from '../types/user-config/UserConfigType';\r\nimport { IssuanceMonitorEmailPreferences } from '../types/email-preferences/IssuanceMonitorEmailPreferences';\r\nimport { createAmrPipelineActions } from '../actions';\r\nimport { PipelineType } from '../types/amr-pipeline/enums/PipelineType';\r\nimport { CloManagersEmailPreferences } from '../types/email-preferences/CloManagersEmailPreferences';\r\nimport { Company } from '../types/amr-pipeline/models/Company';\r\nimport { amrCompaniesService } from '../services/amr-companies.service';\r\nimport { roles } from '../constants';\r\nimport { user } from '../user';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { AlertEnabledState } from '../types/enums/AlertEnabledState';\r\nimport { banksService } from '../services/banks.service';\r\nimport { BanksEmailPreferences } from '../types/email-preferences/BanksEmailPreferences';\r\nimport { combineBanks, hasBankAnalyticsAlertsChangeAccess } from '../utils/amr-pipeline.utils';\r\nimport { Bank, BwicBank } from '../types/banks/Bank';\r\nimport { bankImApRequiredFeatures } from '../constants/banks/bankImApRequiredFeatures';\r\nimport { emailPreferencesActions } from '../actions/email-preferences.actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { HavingDealType } from '../types/amr-pipeline/enums/HavingDealType';\r\nimport { ArrangerPipelineEmailPreferences } from '../types/email-preferences/ArrangerPipelineEmailPreferences';\r\n\r\nconst amrPipelineActions = createAmrPipelineActions(PipelineType.Deals);\r\n\r\nfunction* watchGetInitialDataRequest(action: ActionType) {\r\n try {\r\n const { withIssuanceMonitorAccess } = action.payload;\r\n let userConfig: ImUserConfig[] | undefined;\r\n let managers: Company[] | undefined;\r\n let banks: Bank[] | undefined;\r\n\r\n if (withIssuanceMonitorAccess) {\r\n let amrBanks: Company[];\r\n let bwicBanks: BwicBank[];\r\n\r\n const loadFilters: Action = yield call(amrPipelineActions.loadFilters);\r\n const initFilter: Action = yield call(amrPipelineActions.initFilter);\r\n\r\n yield put(loadFilters);\r\n yield put(initFilter);\r\n\r\n [amrBanks, bwicBanks, managers, userConfig] = yield all([\r\n call(amrCompaniesService.getBanksList),\r\n call(banksService.getBwicBanksList),\r\n call(amrCompaniesService.getManagersList, HavingDealType.CloManagers),\r\n call(imUserConfigService.getUserConfig),\r\n ]);\r\n\r\n banks = combineBanks(amrBanks, bwicBanks);\r\n }\r\n\r\n const initialData: EmailPreferences = yield call(emailPreferencesService.getEmailPreferences);\r\n\r\n yield put(manageEmailPreferencesActions.getInitialDataSuccess(initialData, userConfig, managers, banks));\r\n yield put(emailPreferencesActions.requestResult(RequestState.success, initialData));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchSaveRequest() {\r\n const editIssuanceMonitorPreferences: IssuanceMonitorEmailPreferences = yield select(\r\n (state: AppState) => state.manageEmailPreferences.editIssuanceMonitorPreferences,\r\n );\r\n const editCloManagerPreferences: CloManagersEmailPreferences = yield select(\r\n (state: AppState) => state.manageEmailPreferences.editCloManagersPreferences,\r\n );\r\n\r\n const userCompany: Company = yield select((state: AppState) => state.issuanceMonitor.amrPipelineCommon.userCompany);\r\n\r\n const isCollateralManager = user.hasRoles(roles.CollateralManager);\r\n const hasImSubscription = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n const hasBwicSubscription = user.hasFeatures(SubscriptionFeature.BwicMonitorAlerts);\r\n const hasDealerInventorySubscription = user.hasFeatures(SubscriptionFeature.InventoryAlerts);\r\n\r\n try {\r\n const cloManagerBwicAlerts = editCloManagerPreferences.cloManagerBwicAlert.value;\r\n const cloManagerDealerInventoryAlerts = editCloManagerPreferences.cloManagerDealerInventoryAlert.value;\r\n\r\n let cloManagerBwicAlertsConfig;\r\n let cloManagerDiAlertsConfig;\r\n\r\n if (hasBwicSubscription && cloManagerBwicAlerts.length) {\r\n cloManagerBwicAlertsConfig = {\r\n type: UserConfigType.cloManagerBwicAlert,\r\n value: JSON.stringify(cloManagerBwicAlerts),\r\n };\r\n }\r\n\r\n if (hasDealerInventorySubscription && cloManagerDealerInventoryAlerts.length) {\r\n cloManagerDiAlertsConfig = {\r\n type: UserConfigType.cloManagerDealerInventoryAlert,\r\n value: JSON.stringify(cloManagerDealerInventoryAlerts),\r\n };\r\n }\r\n\r\n yield all([\r\n cloManagerBwicAlertsConfig && call(imUserConfigService.createOrUpdateUserConfig, cloManagerBwicAlertsConfig),\r\n cloManagerDiAlertsConfig && call(imUserConfigService.createOrUpdateUserConfig, cloManagerDiAlertsConfig)\r\n ]);\r\n\r\n if (hasImSubscription) {\r\n const singleUpdateOption = editIssuanceMonitorPreferences.imAlertConfig.value.alertOption;\r\n const newTransactionOption = editIssuanceMonitorPreferences.newTransactionAlertConfig.value.alertOption;\r\n const statisticOption = editIssuanceMonitorPreferences.weeklyStatsAlertConfig.value.emailOption;\r\n\r\n const cloManagerAnalyticsAlert = editCloManagerPreferences.cloManagerAnalyticsAlert.value.find(\r\n a => a.companyReferenceName === userCompany.referenceName,\r\n );\r\n const cloManagerImAlerts = editCloManagerPreferences.cloManagerIssuanceMonitorAlert.value;\r\n const cloManagerApAlerts = editCloManagerPreferences.cloManagerArrangerPipelineAlert.value;\r\n\r\n const filterData = editIssuanceMonitorPreferences.filtersConfig.ImFilter.value.map(\r\n ({ referenceName, alertOption }) => ({\r\n referenceName,\r\n alertOption,\r\n }),\r\n );\r\n const imAlertsConfig = {\r\n type: UserConfigType.imAlert,\r\n value: JSON.stringify({ alertOption: singleUpdateOption }),\r\n } as ImUserConfig;\r\n\r\n const newTransactionConfig = {\r\n type: UserConfigType.newPublishedTransactionAlert,\r\n value: JSON.stringify({ alertOption: newTransactionOption }),\r\n } as ImUserConfig;\r\n\r\n const imStatisticsConfig = {\r\n type: UserConfigType.weeklyStatsEmail,\r\n value: JSON.stringify({ emailOption: statisticOption }),\r\n } as ImUserConfig;\r\n\r\n const cloManagerAnalyticsAlertsConfig = {\r\n type: UserConfigType.cloManagerAnalyticsAlert,\r\n value: JSON.stringify(cloManagerAnalyticsAlert),\r\n };\r\n\r\n const cloManagerImAlertsConfig = {\r\n type: UserConfigType.cloManagerIssuanceMonitorAlert,\r\n value: JSON.stringify(cloManagerImAlerts),\r\n };\r\n\r\n const cloManagerApAlertsConfig = {\r\n type: UserConfigType.cloManagerArrangerPipelineAlert,\r\n value: JSON.stringify(cloManagerApAlerts),\r\n };\r\n\r\n yield all([\r\n call(imUserConfigService.createOrUpdateUserConfig, imAlertsConfig),\r\n call(imUserConfigService.createOrUpdateUserConfig, newTransactionConfig),\r\n call(imUserConfigService.createOrUpdateUserConfig, imStatisticsConfig),\r\n cloManagerAnalyticsAlert?.alertOption === AlertOption.Never && cloManagerAnalyticsAlert.referenceName\r\n ? call(\r\n imUserConfigService.deleteUserConfig,\r\n UserConfigType.cloManagerAnalyticsAlert,\r\n cloManagerAnalyticsAlert.referenceName,\r\n )\r\n : cloManagerAnalyticsAlert?.alertOption &&\r\n call(imUserConfigService.createOrUpdateUserConfig, cloManagerAnalyticsAlertsConfig),\r\n cloManagerImAlerts.length &&\r\n call(imUserConfigService.createOrUpdateUserConfig, cloManagerImAlertsConfig),\r\n cloManagerApAlerts.length &&\r\n call(imUserConfigService.createOrUpdateUserConfig, cloManagerApAlertsConfig),\r\n filterData.length && call(imUserConfigService.updateFilterEmailAlertsConfig, filterData),\r\n ]);\r\n } else if (isCollateralManager) {\r\n const cloManagerAnalyticsAlert = editCloManagerPreferences.cloManagerAnalyticsAlert.value.find(\r\n a => a.companyReferenceName === userCompany.referenceName,\r\n );\r\n\r\n const cloManagerAnalyticsAlertsConfig = {\r\n type: UserConfigType.cloManagerAnalyticsAlert,\r\n value: JSON.stringify(cloManagerAnalyticsAlert),\r\n };\r\n\r\n const request = cloManagerAnalyticsAlert?.alertOption === AlertOption.Never && cloManagerAnalyticsAlert.referenceName\r\n ? call(\r\n imUserConfigService.deleteUserConfig,\r\n UserConfigType.cloManagerAnalyticsAlert,\r\n cloManagerAnalyticsAlert.referenceName,\r\n )\r\n : cloManagerAnalyticsAlert?.alertOption &&\r\n call(imUserConfigService.createOrUpdateUserConfig, cloManagerAnalyticsAlertsConfig);\r\n\r\n yield request;\r\n }\r\n\r\n yield put(manageEmailPreferencesActions.saveSuccess());\r\n yield put(manageEmailPreferencesActions.getInitialDataRequest(true));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveArrangerPipelineRequest() {\r\n const withImAccess = user.hasAllFeatures(\r\n SubscriptionFeature.IssuanceMonitorFullAccess\r\n );\r\n\r\n if (!withImAccess) {\r\n return;\r\n }\r\n\r\n const editArrangerPipelinePreferences: ArrangerPipelineEmailPreferences =\r\n yield select(\r\n (state: AppState) =>\r\n state.manageEmailPreferences.editArrangerPipelinePreferences\r\n );\r\n\r\n try {\r\n const apAlertOption =\r\n editArrangerPipelinePreferences.apAlertConfig.value;\r\n const apConfig = {\r\n type: UserConfigType.arrangerPipelineAlert,\r\n value: JSON.stringify(apAlertOption),\r\n };\r\n\r\n const request = call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n apConfig\r\n );\r\n\r\n yield request;\r\n\r\n yield put(manageEmailPreferencesActions.saveSuccess());\r\n yield put(manageEmailPreferencesActions.getInitialDataRequest(true));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveBanksRequest() {\r\n const banks: Company[] | undefined = yield select(\r\n (state: AppState) => state.manageEmailPreferences.banks\r\n );\r\n const editBanksPreferences: BanksEmailPreferences = yield select(\r\n (state: AppState) => state.manageEmailPreferences.editBanksPreferences\r\n );\r\n const userCompany: Company = yield select(\r\n (state: AppState) => state.issuanceMonitor.amrPipelineCommon.userCompany\r\n );\r\n\r\n const withAnalyticsAccess = hasBankAnalyticsAlertsChangeAccess(banks, userCompany );\r\n const withDiAccess = user.hasFeatures(SubscriptionFeature.InventoryAlerts);\r\n const withImApAccess = user.hasAllFeatures(...bankImApRequiredFeatures);\r\n\r\n if (!withAnalyticsAccess && !withDiAccess && !withImApAccess) {\r\n return;\r\n }\r\n\r\n try {\r\n if (withAnalyticsAccess) {\r\n const bankAnalyticsAlerts =\r\n editBanksPreferences.bankAnalyticsAlert.value.find(\r\n (a) => a.companyReferenceName === userCompany.referenceName\r\n );\r\n\r\n const bankAnalyticsConfig = {\r\n type: UserConfigType.bankAnalyticsAlert,\r\n value: JSON.stringify(bankAnalyticsAlerts),\r\n };\r\n\r\n const request =\r\n bankAnalyticsAlerts?.alertOption === AlertOption.Never &&\r\n bankAnalyticsAlerts.referenceName\r\n ? call(\r\n imUserConfigService.deleteUserConfig,\r\n UserConfigType.bankAnalyticsAlert,\r\n bankAnalyticsAlerts.referenceName\r\n )\r\n : bankAnalyticsAlerts?.alertOption &&\r\n call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n bankAnalyticsConfig\r\n );\r\n\r\n yield request;\r\n }\r\n\r\n if (withDiAccess) {\r\n const bankDiAlerts =\r\n editBanksPreferences.bankDealerInventoryAlert.value;\r\n\r\n const bankDiAlertsConfig = {\r\n type: UserConfigType.bankDealerInventoryAlert,\r\n value: JSON.stringify(bankDiAlerts),\r\n };\r\n\r\n yield call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n bankDiAlertsConfig\r\n );\r\n }\r\n\r\n if (withImApAccess) {\r\n const bankImAlerts =\r\n editBanksPreferences.bankIssuanceMonitorAlert.value;\r\n const bankApAlerts =\r\n editBanksPreferences.bankArrangerPipelineAlert.value;\r\n\r\n const bankImAlertsConfig = {\r\n type: UserConfigType.bankIssuanceMonitorAlert,\r\n value: JSON.stringify(bankImAlerts),\r\n };\r\n\r\n const bankApAlertsConfig = {\r\n type: UserConfigType.bankArrangerPipelineAlert,\r\n value: JSON.stringify(bankApAlerts),\r\n };\r\n\r\n yield all([\r\n call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n bankImAlertsConfig\r\n ),\r\n call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n bankApAlertsConfig\r\n ),\r\n ]);\r\n }\r\n\r\n yield put(manageEmailPreferencesActions.saveSuccess());\r\n yield put(manageEmailPreferencesActions.getInitialDataRequest(true));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveEmailPreferences() {\r\n const initialPreferences: EmailPreferences = yield select((state: AppState) =>\r\n state.manageEmailPreferences.initialPreferences\r\n );\r\n const editPreferences: EmailPreferences = yield select((state: AppState) =>\r\n state.manageEmailPreferences.editPreferences\r\n );\r\n\r\n try {\r\n yield call(emailPreferencesService.saveEmailPreferences, editPreferences);\r\n const emailPreferences: EmailPreferences = yield call(emailPreferencesService.getEmailPreferences);\r\n yield put(manageEmailPreferencesActions.saveEmailPreferencesSuccess(emailPreferences));\r\n yield put(emailPreferencesActions.requestResult(RequestState.success, emailPreferences));\r\n\r\n const isPortfolioBwicAlertChanged =\r\n initialPreferences?.portfolioBwicAlertState !== emailPreferences.portfolioBwicAlertState;\r\n const isPortfolioInventoryAlertChanged =\r\n initialPreferences?.portfolioDealersInventoryAlertState !== emailPreferences.portfolioDealersInventoryAlertState;\r\n const isOutOfRiPeriodAlertChanged = initialPreferences?.portfolioOutOfRiPeriodAlertState !== emailPreferences.portfolioOutOfRiPeriodAlertState;\r\n const isOutOfNcPeriodAlertChanged = initialPreferences?.portfolioOutOfNcPeriodAlertState !== emailPreferences.portfolioOutOfNcPeriodAlertState;\r\n const isPortfolioCleansingNoticeAlertChanged = initialPreferences?.portfolioCleansingNoticeAlertState !== emailPreferences.portfolioCleansingNoticeAlertState;\r\n const isPortfolioIssuanceMonitorAlertChanged = initialPreferences?.portfolioIssuanceMonitorAlertState !== emailPreferences.portfolioIssuanceMonitorAlertState;\r\n const isPortfolioRollerDeadlineAlertChanged = initialPreferences?.portfolioRollerDeadlineAlertState !== emailPreferences.portfolioRollerDeadlineAlertState;\r\n\r\n\r\n if (\r\n isPortfolioBwicAlertChanged ||\r\n isPortfolioInventoryAlertChanged ||\r\n isPortfolioCleansingNoticeAlertChanged ||\r\n isPortfolioIssuanceMonitorAlertChanged ||\r\n isOutOfRiPeriodAlertChanged ||\r\n isOutOfNcPeriodAlertChanged ||\r\n isPortfolioRollerDeadlineAlertChanged\r\n ) {\r\n const bwicAlertEnabled = isPortfolioBwicAlertChanged\r\n ? emailPreferences.portfolioBwicAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const inventoryAlertEnabled = isPortfolioInventoryAlertChanged\r\n ? emailPreferences.portfolioDealersInventoryAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const outOfRiAlertEnabled = isOutOfRiPeriodAlertChanged\r\n ? emailPreferences.portfolioOutOfRiPeriodAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const outOfNcAlertEnabled = isOutOfNcPeriodAlertChanged\r\n ? emailPreferences.portfolioOutOfNcPeriodAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const cleansingNoticeAlertEnabled = isPortfolioCleansingNoticeAlertChanged\r\n ? emailPreferences.portfolioCleansingNoticeAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n \r\n const issuanceMonitorAlertEnabled = isPortfolioIssuanceMonitorAlertChanged\r\n ? emailPreferences.portfolioIssuanceMonitorAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const rollerDeadlineAlertEnabled = isPortfolioRollerDeadlineAlertChanged\r\n ? emailPreferences.portfolioRollerDeadlineAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n yield put(\r\n manageEmailPreferencesActions.portfolioGlobalAlertsChange(\r\n bwicAlertEnabled,\r\n inventoryAlertEnabled,\r\n cleansingNoticeAlertEnabled,\r\n issuanceMonitorAlertEnabled,\r\n outOfRiAlertEnabled,\r\n outOfNcAlertEnabled,\r\n rollerDeadlineAlertEnabled,\r\n ),\r\n );\r\n }\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveEmailPreferencesFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveBwicByRatingRequest() {\r\n const editPreferences: EmailPreferences = yield select(\r\n (state: AppState) => state.manageEmailPreferences.editPreferences,\r\n );\r\n const bwicByRating = {\r\n bwicByRatingAlertState: editPreferences.bwicByRatingAlertState,\r\n ratingPreference: editPreferences.ratingPreference,\r\n };\r\n try {\r\n yield call(emailPreferencesService.saveBwicByRating, bwicByRating);\r\n yield put(manageEmailPreferencesActions.saveBwicByRatingPreferencesSuccess());\r\n yield put(manageEmailPreferencesActions.getInitialDataRequest());\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveBwicByRatingPreferencesFailure());\r\n }\r\n}\r\n\r\nexport function* watchManageEmailPreferences() {\r\n yield takeEvery(manageEmailPreferencesActions.getInitialDataRequest, watchGetInitialDataRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveRequest, watchSaveRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveArrangerPipelineRequest, watchSaveArrangerPipelineRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveBanksRequest, watchSaveBanksRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveBwicByRatingPreferencesRequest, watchSaveBwicByRatingRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveEmailPreferencesRequest, watchSaveEmailPreferences);\r\n}\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { sellerAdminLimitActions } from '../actions/seller-admin-limit.actions';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { sellerAdminService } from '../services/seller-admin.service';\r\nimport { errorActions } from '../actions';\r\nimport { SellerAdminTradingLimitValuesState } from '../types/seller-admin/SellerAdminTradingLimitValuesState';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { TradingLimitType } from '../types/seller-admin/TradingLimitType';\r\nimport { accountActions } from '../constants';\r\n\r\nfunction* watchGetTradeLimits() {\r\n try {\r\n const limits: { currency: Currency; size: number | null; type: TradingLimitType }[] =\r\n yield call(sellerAdminService.getTradingLimits);\r\n yield put(sellerAdminLimitActions.getTradeLimitsSuccess(limits));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchUpdateTradeLimits(action: ActionType<{ limits: SellerAdminTradingLimitValuesState }>) {\r\n const { limits } = action.payload;\r\n const tradingLimits: { currency: string, type: number, size: number | null }[] = [\r\n {\r\n currency: Currency.USD,\r\n type: TradingLimitType.SellMaxBondSize,\r\n size: limits[TradingLimitType.SellMaxBondSize][Currency.USD]\r\n },\r\n {\r\n currency: Currency.EUR,\r\n type: TradingLimitType.SellMaxBondSize,\r\n size: limits[TradingLimitType.SellMaxBondSize][Currency.EUR]\r\n },\r\n {\r\n currency: Currency.USD,\r\n type: TradingLimitType.SellMaxDailyTradesSize,\r\n size: limits[TradingLimitType.SellMaxDailyTradesSize][Currency.USD]\r\n },\r\n {\r\n currency: Currency.EUR,\r\n type: TradingLimitType.SellMaxDailyTradesSize,\r\n size: limits[TradingLimitType.SellMaxDailyTradesSize][Currency.EUR]\r\n },\r\n\r\n {\r\n currency: Currency.USD,\r\n type: TradingLimitType.BuyMaxBondSize,\r\n size: limits[TradingLimitType.BuyMaxBondSize][Currency.USD]\r\n },\r\n {\r\n currency: Currency.EUR,\r\n type: TradingLimitType.BuyMaxBondSize,\r\n size: limits[TradingLimitType.BuyMaxBondSize][Currency.EUR]\r\n },\r\n {\r\n currency: Currency.USD,\r\n type: TradingLimitType.BuyMaxDailyTradesSize,\r\n size: limits[TradingLimitType.BuyMaxDailyTradesSize][Currency.USD]\r\n },\r\n {\r\n currency: Currency.EUR,\r\n type: TradingLimitType.BuyMaxDailyTradesSize,\r\n size: limits[TradingLimitType.BuyMaxDailyTradesSize][Currency.EUR]\r\n },\r\n ];\r\n try {\r\n yield call(sellerAdminService.updateTradingLimits, { tradingLimits });\r\n yield put(sellerAdminLimitActions.updateTradeLimitsSuccess());\r\n yield put(sellerAdminLimitActions.getTradeLimitsSuccess(tradingLimits));\r\n yield put(sellerAdminLimitActions.setEditModeStatus(false));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(sellerAdminLimitActions.updateTradeLimitsFailure());\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(sellerAdminLimitActions.reset())\r\n}\r\n\r\nexport function* watchSellerAdminLimit() {\r\n yield takeEvery(sellerAdminLimitActions.getTradeLimitsRequest, watchGetTradeLimits);\r\n yield takeEvery(sellerAdminLimitActions.updateTradeLimitsRequest, watchUpdateTradeLimits);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout)\r\n}\r\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport { saveAs } from 'file-saver';\r\nimport { sellerAdminUsersActions } from '../actions/seller-admin-users.actions';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { SellerAdminEditFormModel } from '../types/seller-admin/SellerAdminEditFormModel';\r\nimport { sellerAdminService } from '../services/seller-admin.service';\r\nimport { errorActions, notificationActions } from '../actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { CompanyUser } from '../types/management/CompanyUser';\r\nimport { UserStatus } from '../types/account/UserStatus';\r\nimport { UserCreationRequest } from '../types/management/UserCreationRequest';\r\n\r\nfunction* watchGetUserListRequest() {\r\n try {\r\n const users: { users: CompanyUser[], requests: UserCreationRequest[] } = yield call(sellerAdminService.getCompanyUsers);\r\n yield put(sellerAdminUsersActions.getUserListSuccess(users.users, users.requests));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.getUserListFailure());\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchSaveUser(action: ActionType<{ data: SellerAdminEditFormModel, userId: number }>) {\r\n const { data, userId } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserUpdateState(RequestState.request));\r\n try {\r\n yield call(sellerAdminService.saveUser, { ...data, id: userId });\r\n const users: CompanyUser[] = yield select((state: AppState) => state.sellerAdminUsers.users);\r\n const user = users.find(u => u.id === userId);\r\n if (user) {\r\n const newUser: CompanyUser = { ...user, ...data, id: userId};\r\n yield put(sellerAdminUsersActions.userSaved(newUser));\r\n }\r\n yield put(sellerAdminUsersActions.setUserUpdateState(RequestState.success));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserUpdateState(RequestState.failure));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchSaveUserRequest(action: ActionType<{ data: SellerAdminEditFormModel, userRequestId: number, concurrencyStamp?: Date }>) {\r\n const { data, userRequestId, concurrencyStamp } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserRequestUpdateState(RequestState.request));\r\n try {\r\n const requestUser: UserCreationRequest = yield call(sellerAdminService.saveUserRequest, {\r\n ...data,\r\n id: userRequestId || undefined,\r\n concurrencyStamp\r\n });\r\n yield put(sellerAdminUsersActions.userRequestSaved(requestUser));\r\n yield put(sellerAdminUsersActions.setUserRequestUpdateState(RequestState.success));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserRequestUpdateState(RequestState.failure));\r\n yield handleUserRequestChangeError(e);\r\n }\r\n}\r\n\r\nfunction* watchEnableUserRequest(action: ActionType<{ userRequestId: number, concurrencyStamp: Date }>) {\r\n const { userRequestId, concurrencyStamp } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.request, userRequestId));\r\n try {\r\n const userRequest: UserCreationRequest = yield call(sellerAdminService.enableRequestUser, userRequestId, concurrencyStamp);\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.success, userRequestId));\r\n yield put(sellerAdminUsersActions.userRequestEnabled(userRequest));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.failure, userRequestId));\r\n yield handleUserRequestChangeError(e);\r\n }\r\n}\r\n\r\nfunction* watchDisableUserRequest(action: ActionType<{ userRequestId: number, blockReason: string, concurrencyStamp: Date }>) {\r\n const { userRequestId, concurrencyStamp, blockReason } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.request, userRequestId));\r\n try {\r\n const userRequest: UserCreationRequest = yield call(sellerAdminService.disableRequestUser, userRequestId, concurrencyStamp, blockReason);\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.success, userRequestId));\r\n yield put(sellerAdminUsersActions.userRequestDisabled(userRequest));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.failure, userRequestId));\r\n yield handleUserRequestChangeError(e);\r\n }\r\n}\r\n\r\nfunction* handleUserRequestChangeError(e?: {status: number}){\r\n if (e?.status === 409) {\r\n yield put(notificationActions.notificationAddErrorMessageModal(\r\n \"Data was changed. Refresh the page to get the latest information.\",\r\n \"Changes are not allowed\",\r\n true\r\n ));\r\n } else {\r\n yield put(errorActions.unexpectedError(e))\r\n }\r\n}\r\n\r\nfunction* watchEnableUser(action: ActionType<{ userId: number }>) {\r\n const { userId } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.request, userId));\r\n try {\r\n const response: { id: number, status: UserStatus } = yield call(sellerAdminService.enableUser, userId);\r\n yield put(sellerAdminUsersActions.setUserEnabled(userId, response.status));\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.success, userId));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.failure, userId));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchDisableUser(action: ActionType<{ userId: number, blockReason: string }>) {\r\n const { userId, blockReason } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.request, userId));\r\n try {\r\n yield call(sellerAdminService.disableUser, userId, blockReason);\r\n yield put(sellerAdminUsersActions.setUserDisable(userId, blockReason));\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.success, userId));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.failure, userId));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchExportUsersRequest(){\r\n try {\r\n const file: { name: string, blob: Blob } = yield call(sellerAdminService.exportUsers);\r\n saveAs(file.blob, file.name);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(sellerAdminUsersActions.exportUsersResponse())\r\n }\r\n}\r\n\r\nexport function* watchSellerAdminUsers() {\r\n yield takeEvery(sellerAdminUsersActions.getUserListRequest, watchGetUserListRequest);\r\n yield takeEvery(sellerAdminUsersActions.saveUser, watchSaveUser);\r\n yield takeEvery(sellerAdminUsersActions.saveUserRequest, watchSaveUserRequest);\r\n yield takeEvery(sellerAdminUsersActions.enableUserRequest, watchEnableUserRequest);\r\n yield takeEvery(sellerAdminUsersActions.disableUserRequest, watchDisableUserRequest);\r\n yield takeEvery(sellerAdminUsersActions.enableUser, watchEnableUser);\r\n yield takeEvery(sellerAdminUsersActions.exportUsersRequest, watchExportUsersRequest);\r\n yield takeEvery(sellerAdminUsersActions.disableUser, watchDisableUser);\r\n}\r\n","import { ActionType } from '../types/ActionType';\r\nimport { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { userRequestAdminActions } from '../actions/user-request-admin.actions';\r\nimport { errorActions } from '../actions/error.actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { User } from '../types/management/User';\r\nimport { usersService } from '../services/users.service';\r\nimport { notificationActions } from '../actions';\r\nimport { UserCreationRequest } from '../types/management/UserCreationRequest';\r\nimport { logger } from '../logging/logger';\r\n\r\nfunction* watchApprove(action: ActionType<{ userRequestId: number, concurrencyStamp: Date }>) {\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.request));\r\n\r\n try {\r\n const user: User = yield call(\r\n usersService.approveUserRequest,\r\n action.payload.userRequestId,\r\n action.payload.concurrencyStamp\r\n );\r\n\r\n yield put(userRequestAdminActions.userRequestApproved(action.payload.userRequestId, user));\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.success));\r\n } catch (e) {\r\n yield handleRequestError(action.payload.userRequestId, e);\r\n }\r\n}\r\n\r\nfunction* watchBlock(action: ActionType<{ userRequestId: number, concurrencyStamp: Date, blockReason: string }>) {\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.request));\r\n\r\n try {\r\n const blockedUserRequest: UserCreationRequest = yield call(\r\n usersService.blockUserRequest,\r\n action.payload.userRequestId,\r\n action.payload.concurrencyStamp,\r\n action.payload.blockReason\r\n );\r\n yield put(userRequestAdminActions.userRequestBlocked(blockedUserRequest));\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.success));\r\n } catch (e) {\r\n yield handleRequestError(action.payload.userRequestId, e);\r\n }\r\n}\r\n\r\nfunction* watchUnblock(action: ActionType<{ userRequestId: number, concurrencyStamp: Date }>) {\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.request));\r\n\r\n try {\r\n const unblockedUserRequest: UserCreationRequest = yield call(\r\n usersService.unblockUserRequest,\r\n action.payload.userRequestId,\r\n action.payload.concurrencyStamp,\r\n );\r\n yield put(userRequestAdminActions.userRequestUnblocked(unblockedUserRequest));\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.success));\r\n } catch (e) {\r\n yield handleRequestError(action.payload.userRequestId, e);\r\n }\r\n}\r\n\r\nfunction* handleRequestError(userRequestId: number, e: { status: number }) {\r\n yield put(userRequestAdminActions.setOperationState(userRequestId, RequestState.failure));\r\n if (e.status === 409) {\r\n yield put(notificationActions.notificationAddErrorMessageModal(\r\n \"It is likely that the сreate user request has already been approved/blocked. Please refresh the page'. \",\r\n \"\",\r\n true)\r\n );\r\n } else {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchDeleteUserRequest(action: ActionType<{ userRequestId: number }>) {\r\n try {\r\n yield call(usersService.deleteUserRequest, action.payload.userRequestId);\r\n yield put(userRequestAdminActions.userRequestDeleted(action.payload.userRequestId));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchGetPendingUserRequestCount() {\r\n try {\r\n const count: number = yield call(usersService.gePendingUserRequestCount);\r\n yield put(userRequestAdminActions.setPendingUserRequestCount(count, RequestState.success));\r\n } catch (e) {\r\n yield put(userRequestAdminActions.setPendingUserRequestCount(0, RequestState.failure));\r\n logger.exception(e, 'could not get pending user request count')\r\n }\r\n}\r\n\r\nexport function* watchUserRequestAdmin() {\r\n yield takeEvery(getType(userRequestAdminActions.approve), watchApprove);\r\n yield takeEvery(getType(userRequestAdminActions.block), watchBlock);\r\n yield takeEvery(getType(userRequestAdminActions.unblock), watchUnblock);\r\n yield takeEvery(getType(userRequestAdminActions.deleteUserRequest), watchDeleteUserRequest);\r\n yield takeEvery(getType(userRequestAdminActions.getPendingUserRequestCount), watchGetPendingUserRequestCount)\r\n}\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport { signupActions } from \"../actions/signup.actions\";\r\nimport { notificationActions } from '../actions/notification.actions';\r\nimport { routes } from '../constants/routes';\r\nimport { accountService } from '../services/account.service';\r\nimport { history } from '../history';\r\n\r\nfunction* watchSubmit(action: ActionType) {\r\n try {\r\n yield call(accountService.saveSignupForm, action.payload.request);\r\n yield put(signupActions.submitSuccess());\r\n yield call(history.replace, routes.signUpConfirm);\r\n } catch (e) {\r\n yield put(notificationActions.notificationAddErrorMessage('Sign up form submission failed'));\r\n yield put(signupActions.submitError());\r\n }\r\n}\r\n\r\nexport function* watchSignup() {\r\n yield takeEvery(getType(signupActions.submit), watchSubmit);\r\n}\r\n","import { ActionType, getType } from \"typesafe-actions\";\r\nimport { call, put, takeEvery, takeLatest } from \"redux-saga/effects\";\r\nimport { priceTalksActions } from \"../actions/price-talks.actions\";\r\nimport { errorActions } from '../actions/error.actions';\r\nimport { pushDataActions } from '../constants/actionTypes/push.data.actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { PxTalk } from \"../types/bwic/PxTalk\";\r\nimport { pxTalkService } from '../services/pxTalk.service';\r\n\r\nfunction* watchRequest(action: ActionType) {\r\n try {\r\n const priceTalks: PxTalk[] = yield call(pxTalkService.fetchPxTalks, action.payload.bwicReferenceName, action.payload.positionId);\r\n yield put(priceTalksActions.requestResult(action.payload.positionId, RequestState.success, priceTalks));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(priceTalksActions.requestResult(action.payload.positionId, RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* watchAdd(action: { type: string; positionId: number; priceTalk: PxTalk; }) {\r\n yield put(priceTalksActions.addPriceTalk(action.positionId, action.priceTalk));\r\n}\r\n\r\nexport function* watchPriceTalks() {\r\n yield takeLatest(getType(priceTalksActions.request), watchRequest);\r\n yield takeEvery(pushDataActions.PUSH_DATA_NEW_PX_TALK, watchAdd);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { errorActions } from \"../actions\";\r\nimport { settlementAccountActions } from '../actions/settlement-account.actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { settlementService } from '../services/settlement.service';\r\nimport { SettlementAccount } from \"../types/settlement/SettlementAccount\";\r\n\r\nfunction* watchRequest() {\r\n try {\r\n const accounts: SettlementAccount[] = yield call(settlementService.getSettlementAccounts);\r\n yield put(settlementAccountActions.requestResult(RequestState.success, accounts));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(settlementAccountActions.requestResult(RequestState.failure));\r\n }\r\n}\r\n\r\nexport function* watchSettlementAccount() {\r\n yield takeEvery(getType(settlementAccountActions.request), watchRequest);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType, ActionType } from \"typesafe-actions\";\r\nimport { errorActions } from \"../actions\";\r\nimport { tradeAllocationActions } from \"../actions/trade-allocation.actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { settlementService } from \"../services/settlement.service\";\r\nimport { TradeAllocationItem } from \"../types/trade-allocation/TradeAllocationItem\";\r\n\r\nfunction* watchTradeAllocationRequest(action: ActionType) {\r\n try {\r\n const allocation: TradeAllocationItem[] = yield call(settlementService.getTradeAllocation, action.payload.tradeId);\r\n yield put(tradeAllocationActions.requestResult(action.payload.tradeId, RequestState.success, allocation));\r\n\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(tradeAllocationActions.requestResult(action.payload.tradeId, RequestState.failure));\r\n }\r\n}\r\n\r\nexport function* watchTradeAllocation() {\r\n yield takeEvery(getType(tradeAllocationActions.request), watchTradeAllocationRequest);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { errorActions } from \"../actions\";\r\nimport { tradeAllocationTemplateActions } from '../actions/trade-allocation-template.actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { tradeAllocationTemplateService } from '../services/trade-allocation-template.service';\r\nimport { TradeAllocationTemplate } from \"../types/trade-allocation/template/TradeAllocationTemplate\";\r\n\r\nfunction* watchRequest() {\r\n try {\r\n const templates: TradeAllocationTemplate[] = yield call(tradeAllocationTemplateService.getTemplates);\r\n yield put(tradeAllocationTemplateActions.requestResult(RequestState.success, templates));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(tradeAllocationTemplateActions.requestResult(RequestState.failure));\r\n }\r\n}\r\n\r\nexport function* watchTradeAllocationTemplate() {\r\n yield takeEvery(getType(tradeAllocationTemplateActions.request), watchRequest);\r\n}\r\n","import { AccessTokenApi, AccessToken } from '../types/management/AccessToken';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nconst getTokens = (): Promise => {\r\n return fetchSafe('/api/tokens')\r\n}\r\n\r\nconst saveToken = (id: number | undefined, companyId: number, apis: AccessTokenApi[]): Promise => {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ id, companyId, apis })\r\n };\r\n return fetchSafe('/api/tokens', requestOptions);\r\n}\r\n\r\nconst revokeToken = (id: number): Promise => {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ id })\r\n };\r\n return fetchSafe('/api/tokens', requestOptions);\r\n}\r\n\r\nexport const manageTokensService = {\r\n getTokens,\r\n saveToken,\r\n revokeToken\r\n}\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { errorActions } from '../actions';\r\nimport { manageTokenActions } from '../actions/manage-tokens.actions';\r\nimport { companyRoles } from '../constants';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { companiesService } from '../services';\r\nimport { manageTokensService } from '../services/manage-tokens.service';\r\nimport { AccessToken } from '../types/management/AccessToken';\r\nimport { Company } from '../types/management/Company';\r\n\r\nfunction* wathRequestTokens() {\r\n yield put(manageTokenActions.setTokenRequestStatus(RequestState.request));\r\n try {\r\n const tokens: AccessToken[] = yield call(manageTokensService.getTokens);\r\n yield put(manageTokenActions.storeTokens(tokens));\r\n yield put(manageTokenActions.setTokenRequestStatus(RequestState.success));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchGenerateToken(action: ActionType) {\r\n yield put(manageTokenActions.setGenerateRequestStatus(RequestState.request));\r\n\r\n try {\r\n const token: AccessToken = yield call(manageTokensService.saveToken, undefined, action.payload.companyId, action.payload.apis);\r\n yield put(manageTokenActions.storeGeneratedToken(token));\r\n yield put(manageTokenActions.setGenerateRequestStatus(RequestState.success));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchUpdateToken(action: ActionType) {\r\n yield put(manageTokenActions.setUpdateTokenRequestStatus(RequestState.request));\r\n\r\n try {\r\n const token: AccessToken = yield call(manageTokensService.saveToken, action.payload.tokenId, action.payload.companyId, action.payload.apis);\r\n yield put(manageTokenActions.tokenUpdated(token));\r\n yield put(manageTokenActions.setUpdateTokenRequestStatus(RequestState.success));\r\n } catch (e) {\r\n yield put(manageTokenActions.setUpdateTokenRequestStatus(RequestState.failure));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchRevokeToken(action: ActionType) {\r\n try {\r\n yield put(manageTokenActions.setRevokeTokenRequestStatus(action.payload.tokenId, RequestState.request));\r\n yield call(manageTokensService.revokeToken, action.payload.tokenId);\r\n yield put(manageTokenActions.tokenRevoked(action.payload.tokenId));\r\n yield put(manageTokenActions.setRevokeTokenRequestStatus(action.payload.tokenId, RequestState.success));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageTokenActions.setRevokeTokenRequestStatus(action.payload.tokenId, RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* watchRequestCompanies() {\r\n yield put(manageTokenActions.setCompanyRequestStatus(RequestState.request));\r\n try {\r\n const allCompanies: Company[] = yield call(companiesService.getCompanies);\r\n const companies: Company[] = allCompanies\r\n .filter(c =>\r\n c.role !== companyRoles.Administrator &&\r\n c.role !== companyRoles.Viewer)\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n yield put(manageTokenActions.storeCompanies(companies));\r\n yield put(manageTokenActions.setCompanyRequestStatus(RequestState.success));\r\n\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nexport function* watchManageTokens() {\r\n yield takeEvery(getType(manageTokenActions.requestTokens), wathRequestTokens);\r\n yield takeEvery(getType(manageTokenActions.requestCompanies), watchRequestCompanies);\r\n yield takeEvery(getType(manageTokenActions.generate), watchGenerateToken);\r\n yield takeEvery(getType(manageTokenActions.update), watchUpdateToken);\r\n yield takeEvery(getType(manageTokenActions.revoke), watchRevokeToken);\r\n}\r\n","import { takeLatest, put, call, takeEvery } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { portfolioAgreementDisclaimerActions } from '../actions/portfolio-agreement-disclaimer.actions';\r\nimport { accountActions } from '../constants';\r\nimport { accountService } from '../services';\r\nimport { errorActions } from '../actions';\r\nimport { user } from '../user';\r\nimport { saveAs } from 'file-saver';\r\n\r\nfunction* watchConfirmRequest() {\r\n try {\r\n yield call(accountService.setPortfolioAgreementSigned);\r\n user.setPortfolioAgreementSigned(true);\r\n yield put(portfolioAgreementDisclaimerActions.hide(true));\r\n yield put(portfolioAgreementDisclaimerActions.confirmSuccess());\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(portfolioAgreementDisclaimerActions.confirmFailure());\r\n }\r\n}\r\n\r\nfunction* watchDownloadFileRequest() {\r\n try {\r\n const file: { name: string, blob: Blob } = yield call(accountService.downloadPortfolioAgreementFile);\r\n saveAs(file.blob, file.name);\r\n yield put(portfolioAgreementDisclaimerActions.downloadFileSuccess());\r\n } catch (e) {\r\n yield put(portfolioAgreementDisclaimerActions.downloadFileFailure());\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(portfolioAgreementDisclaimerActions.reset());\r\n}\r\n\r\nexport function* watchPortfolioAgreementDisclaimer() {\r\n yield takeLatest(getType(portfolioAgreementDisclaimerActions.confirmRequest), watchConfirmRequest);\r\n yield takeLatest(getType(portfolioAgreementDisclaimerActions.downloadFileRequest), watchDownloadFileRequest);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import moment from 'moment';\r\nimport { all, call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport saveAs from 'file-saver';\r\nimport { errorActions } from '../actions';\r\nimport { newsActions } from '../actions/news.actions';\r\nimport { releaseService } from '../services/release.service';\r\nimport { MarketingEventType, ReleaseItem, ReleaseItemType, Releases } from '../types/marketing/Release';\r\nimport { compact, find, flatMap } from 'lodash';\r\nimport { MarketingEvent } from '../types/marketing/MarketingEvent';\r\nimport { Conference } from '../types/marketing/Conference';\r\nimport { Webinar } from '../types/marketing/Webinar';\r\nimport { NewsNavigation } from '../types/news/News';\r\nimport { newsService } from '../services/news.service';\r\nimport { News } from '../types/news/News';\r\nimport { NewsCategory, NewsTabToCategory } from '../types/news/enums/NewsCategory';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { constants, routes } from '../constants';\r\nimport { NewsTabCategory } from '../types/news/enums/NewsTabCategory';\r\nimport { history } from '../history';\r\n\r\n// Here order matters — 1. New Feature, 2. Improvement\r\nconst ReleaseItemTypeGroups = [ReleaseItemType.NewFeature, ReleaseItemType.Improvement];\r\n\r\nconst convertReleaseItem = (releaseItem: ReleaseItem): MarketingEvent => ({\r\n title: releaseItem.releaseItemType === ReleaseItemType.NewFeature ? 'New Features' : 'Improvements',\r\n description: releaseItem.title,\r\n type: MarketingEventType.Release,\r\n link: process.env.REACT_APP_WHATS_NEW_POPUP_READ_MORE,\r\n imageReferenceName: releaseItem.imageReferenceName,\r\n releaseItemType: releaseItem.releaseItemType,\r\n});\r\n\r\nconst convertWebinar = (webinar: Webinar): MarketingEvent => ({\r\n title: 'Webinar',\r\n description: webinar.title,\r\n type: MarketingEventType.Webinar,\r\n link: webinar.link,\r\n linkName: webinar.linkName,\r\n imageReferenceName: webinar.imageReferenceName,\r\n speakerTitle: webinar.speakerTitle,\r\n speakerName: webinar.speakerName,\r\n});\r\n\r\nconst convertConference = (conference: Conference): MarketingEvent => ({\r\n title: 'Conference',\r\n description: conference.title,\r\n type: MarketingEventType.Conference,\r\n link: conference.link,\r\n linkName: conference.linkName,\r\n imageReferenceName: conference.imageReferenceName,\r\n});\r\n\r\nfunction composeEventsList(releases: Releases, conferences: Conference[], webinar?: Webinar) {\r\n const releaseItems = compact(flatMap(releases.releases, x =>\r\n x.releaseItems?.map(convertReleaseItem),\r\n ));\r\n\r\n // Find latest Improvements and New Features\r\n let orderedReleaseItems = ReleaseItemTypeGroups.map(itemType =>\r\n find(releaseItems, item => item.releaseItemType === itemType),\r\n );\r\n\r\n const [firstReleaseItem, secondReleaseItem] = orderedReleaseItems;\r\n\r\n if (conferences.length > 1 && firstReleaseItem && secondReleaseItem) {\r\n orderedReleaseItems = [{\r\n ...firstReleaseItem,\r\n description: `${firstReleaseItem?.description}. ${secondReleaseItem?.description}`,\r\n\r\n // Prioritize this type for tracking\r\n releaseItemType: ReleaseItemType.NewFeature,\r\n title: 'New Features and Improvements'\r\n } as MarketingEvent];\r\n }\r\n\r\n // Here order matters — 1. Webinars, 2. Conferences, 3. New Feature, 4. Improvements\r\n return compact([\r\n webinar\r\n ? convertWebinar(webinar)\r\n : undefined,\r\n ...conferences.map(convertConference),\r\n ...orderedReleaseItems,\r\n ]);\r\n}\r\n\r\nfunction* fetchMarketingEvents() {\r\n let conferences: Conference[];\r\n let webinar: Webinar;\r\n let releases: Releases;\r\n\r\n [conferences, webinar, releases] = yield all([\r\n call(releaseService.fetchConferences),\r\n call(releaseService.fetchWebinar),\r\n call(releaseService.fetchReleases),\r\n ]);\r\n\r\n return composeEventsList(releases, conferences, webinar);\r\n}\r\n\r\nfunction* watchFetchTotalNewsCount(action: ActionType) {\r\n try {\r\n const [\r\n totalNewsAll,\r\n totalNewsPrimary,\r\n totalNewsSecondary,\r\n totalNewsResearch,\r\n ]: number[] = yield all([\r\n call(newsService.getNewsTotalCount, {}),\r\n call(newsService.getNewsTotalCount, { categories: [NewsCategory.Primary] }),\r\n call(newsService.getNewsTotalCount, { categories: [NewsCategory.Secondary] }),\r\n call(newsService.getNewsTotalCount, { categories: [NewsCategory.Research] }),\r\n ]);\r\n\r\n yield put(\r\n newsActions.fetchTotalNewsCountResponse({\r\n [NewsTabCategory.All]: totalNewsAll,\r\n [NewsTabCategory.Primary]: totalNewsPrimary,\r\n [NewsTabCategory.Secondary]: totalNewsSecondary,\r\n [NewsTabCategory.Research]: totalNewsResearch,\r\n }),\r\n );\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchFetchMarketingEventRequest() {\r\n try {\r\n const events: MarketingEvent[] = yield fetchMarketingEvents();\r\n\r\n yield put(newsActions.fetchMarketingEventsResponse(events));\r\n } catch (e) {\r\n yield put(newsActions.fetchMarketingEventsResponse([]));\r\n }\r\n}\r\n\r\nfunction* watchFetchNewsRequest(action: ActionType) {\r\n const isNewsCached: boolean = yield select(\r\n (s: AppState) => !!s.news.news[action.payload.tab].get(action.payload.page)?.length,\r\n );\r\n\r\n if (isNewsCached) {\r\n return;\r\n }\r\n\r\n const category = NewsTabToCategory[action.payload.tab];\r\n\r\n try {\r\n const news: News[] = yield call(newsService.getNews, {\r\n count: constants.newsOnPage,\r\n offset: action.payload.page * constants.newsOnPage - constants.newsOnPage,\r\n categories: category ? [category] : undefined,\r\n });\r\n\r\n yield put(newsActions.fetchNewsResponse(news, action.payload.page, action.payload.tab));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchDeleteNews(action: ActionType) {\r\n try {\r\n yield call(newsService.deleteNews, action.payload.referenceName);\r\n\r\n yield put(newsActions.resetNewsList());\r\n\r\n yield put(newsActions.fetchNewsRequest(action.payload.page, action.payload.tab));\r\n yield put(newsActions.fetchTotalNewsCountRequest());\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchDeleteSingleNews(action: ActionType) {\r\n try {\r\n yield call(newsService.deleteNews, action.payload.referenceName);\r\n yield call(history.push, routes.newsUrl());\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchFetchNews(action: ActionType) {\r\n try {\r\n const { newsReferenceName, queryParams } = action.payload;\r\n\r\n const news: NewsNavigation = yield call(newsService.getNewsDetails, newsReferenceName, queryParams);\r\n\r\n yield put(newsActions.fetchNewsDetailsResponse(news));\r\n } catch (e) {\r\n yield call(history.replace, routes.newsUrl());\r\n }\r\n}\r\n\r\nfunction* watchLogUserActivity(action: ActionType) {\r\n try {\r\n yield call(newsService.logUserActivity, action.payload.accessType);\r\n\r\n if (action.payload.link) {\r\n window.open(action.payload.link, '_self');\r\n }\r\n } catch (e) {\r\n yield put(errorActions.error(e));\r\n }\r\n}\r\n\r\nfunction* watchDownloadDocument(action: ActionType) {\r\n const { newsReferenceName, documentReferenceName, fileName } = action.payload;\r\n\r\n try {\r\n let file: { blob: Blob } = yield call(newsService.downloadDocument, newsReferenceName, documentReferenceName)\r\n\r\n saveAs(file.blob, fileName);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchDownloadDocuments(action: ActionType) {\r\n const { newsItem } = action.payload;\r\n\r\n try {\r\n let file: { blob: Blob } = yield call(newsService.downloadDocuments, newsItem.referenceName);\r\n\r\n saveAs(file.blob, `K-Watch News ${moment(newsItem.newsDateTime).format(constants.dateFormat)} attachment.zip`);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nexport function* watchNews() {\r\n yield takeEvery(getType(newsActions.fetchMarketingEventsRequest), watchFetchMarketingEventRequest);\r\n yield takeLatest(getType(newsActions.fetchNewsRequest), watchFetchNewsRequest);\r\n yield takeLatest(getType(newsActions.fetchTotalNewsCountRequest), watchFetchTotalNewsCount);\r\n yield takeLatest(getType(newsActions.deleteNews), watchDeleteNews);\r\n yield takeEvery(getType(newsActions.fetchNewsDetails), watchFetchNews);\r\n yield takeEvery(getType(newsActions.logUserActivity), watchLogUserActivity);\r\n yield takeLatest(getType(newsActions.deleteSingleNews), watchDeleteSingleNews);\r\n yield takeLatest(getType(newsActions.downloadDocument), watchDownloadDocument);\r\n yield takeLatest(getType(newsActions.downloadDocuments), watchDownloadDocuments);\r\n}\r\n","import { fork } from 'redux-saga/effects';\r\nimport { watchNotifications } from './notifications.saga';\r\nimport { watchBlotter } from './blotter.saga';\r\nimport { watchOnBoardingTooltip } from './onBoardinTooltip.saga';\r\nimport { watchDashboard } from './dashboard.saga';\r\nimport { watchSecurityDetails } from './security-details.saga';\r\nimport { watchClientCompanies } from './clients-companies.saga';\r\nimport { watchSellerBuyside } from './seller-buyside.saga';\r\nimport { watchSubscriptions } from './subscriptions.saga';\r\n//import { watchBillingInfo } from './billing-info.saga';\r\n//import { watchPaymentMethod } from './payment-method.saga';\r\n//import { watchUpgradeSubscription } from './upgrade-subscription.saga';\r\nimport { watchContactSales } from './contact-sales.saga';\r\nimport { watchSalesRepresentative } from './sales-representative.saga';\r\nimport { watchBidOnBehalf } from './bid-on-behalf.saga';\r\nimport { watchBillingHistory } from './subscription-biling-history.saga';\r\nimport { watchApiOperation } from './api-operation.saga';\r\nimport { watchFavoriteBrokerDealers } from './favorite-broker-dealers.saga';\r\nimport { watchBdInventory } from './bd-inventory.saga';\r\nimport { watchInventory } from './inventory-saga';\r\nimport { watchClearingBank } from './clearing-bank.saga';\r\nimport { watchBlastMessage } from './blast-message.saga';\r\nimport { watchRelease } from './release.saga';\r\nimport { watchCompanyDetails } from './company-details.saga';\r\nimport { watchDealerListPanel } from './dealer-list-panel.saga';\r\nimport { watchAddToPortfolio } from \"./add-to-portfolio.saga\";\r\nimport { watchBrokerDealerContactList } from './broker-dealer-contact-list.saga';\r\nimport { watchBrokerDealerUserList } from './broker-dealer-user-list.saga';\r\nimport { watchDealerList } from './dealer-list.saga';\r\nimport { watchNewBwicDealers } from './new-bwic-dealers.saga';\r\nimport { watchBrokerDealerList } from './broker-dealer-list.saga';\r\nimport { watchDirectBiddingDisclaimer } from './direct-bidding-agreement-disclaimer.saga';\r\nimport { watchSellerAdminDealers } from './seller-admin-dealers.saga';\r\nimport { watchPortfolioList } from \"./portfolio-list.saga\";\r\nimport { watchManageEmailPreferences } from './manage-email-preferences.saga';\r\nimport { watchSellerAdminLimit } from './seller-admin-limit.saga';\r\nimport { watchSellerAdminUsers } from './seller-admin-users.saga';\r\nimport { watchBrokerDealerBidding } from './broker-dealer-bidding.saga';\r\nimport { watchUserRequestAdmin } from './user-request-admin.saga';\r\nimport { watchImUserConfig } from './im-user-config.saga';\r\nimport { watchAdminInventoryEdit } from './admin-inventory-edit.saga';\r\nimport { watchInventoryEdit } from './inventory-edit.saga';\r\nimport { watchSignup } from './signup.saga';\r\nimport { watchPriceTalks } from './price-talks.saga';\r\nimport { watchEmailPreferences } from './email-preferences.saga';\r\nimport { watchSettlementAccount } from './settlement-account.saga';\r\nimport { watchAssetManager } from './asset-manager.saga';\r\nimport { watchTradeAllocation } from './trade-allocation.saga';\r\nimport { watchTradeAllocationTemplate } from './trade-allocation-template.saga';\r\nimport { watchAwaitingTrades } from './entities/awaiting-trades.saga';\r\nimport { watchRejectedTrades } from './entities/rejected-trades.saga';\r\nimport { watchTransactionHistory } from './amr-transaction-history.saga';\r\nimport { watchAmrPipelineCommon } from './amr-pipeline-common.saga';\r\nimport { watchHelpResources } from './help-resources.saga';\r\nimport { watchAmrTransactionAnalytics } from './amr-transaction-analytics.saga'\r\nimport { watchArrangerPipelineSaga } from './amr-arranger-pipeline.saga';\r\nimport { watchManageTokens } from './manage-tokens.saga'\r\nimport { watchCloManagers } from './clo-managers.saga';\r\nimport { watchAddress } from './address.saga';\r\nimport { watchChangeSubscription } from './change-subscription.saga';\r\nimport { watchPortfolioAgreementDisclaimer } from './portfolio-agreement-disclaimer.saga';\r\nimport { watchAllBwics } from './allbwics.saga';\r\nimport { watchFilter } from './filter.saga';\r\nimport { watchNews } from './news.saga';\r\nimport { watchEditNews } from './edit-news.saga';\r\nimport { watchBwicLog } from './bwic-log.saga';\r\nimport { watchBanks } from './banks.saga';\r\nimport { watchCompanyMembers } from './company-members.saga';\r\nimport { watchDeals } from './deals.saga';\r\n\r\nexport function* watchMain() {\r\n yield fork(watchNotifications);\r\n yield fork(watchBlotter);\r\n yield fork(watchOnBoardingTooltip);\r\n yield fork(watchDashboard);\r\n yield fork(watchSecurityDetails);\r\n yield fork(watchBwicLog);\r\n yield fork(watchClientCompanies);\r\n yield fork(watchSellerBuyside);\r\n yield fork(watchSubscriptions);\r\n //yield fork(watchBillingInfo);\r\n //yield fork(watchPaymentMethod);\r\n yield fork(watchEmailPreferences);\r\n yield fork(watchChangeSubscription);\r\n //yield fork(watchUpgradeSubscription);\r\n yield fork(watchContactSales);\r\n yield fork(watchSalesRepresentative);\r\n yield fork(watchBidOnBehalf);\r\n yield fork(watchApiOperation);\r\n yield fork(watchBillingHistory);\r\n yield fork(watchFavoriteBrokerDealers);\r\n yield fork(watchBdInventory);\r\n yield fork(watchInventory);\r\n yield fork(watchClearingBank);\r\n yield fork(watchBlastMessage);\r\n yield fork(watchCompanyDetails);\r\n yield fork(watchDealerListPanel);\r\n yield fork(watchAddToPortfolio);\r\n yield fork(watchBrokerDealerUserList);\r\n yield fork(watchBrokerDealerContactList);\r\n yield fork(watchDealerList);\r\n yield fork(watchRelease);\r\n yield fork(watchNewBwicDealers);\r\n yield fork(watchBrokerDealerList);\r\n yield fork(watchDirectBiddingDisclaimer);\r\n yield fork(watchSellerAdminDealers);\r\n yield fork(watchPortfolioList);\r\n yield fork(watchSellerAdminLimit);\r\n yield fork(watchSellerAdminUsers);\r\n yield fork(watchBrokerDealerBidding);\r\n yield fork(watchUserRequestAdmin);\r\n yield fork(watchImUserConfig);\r\n yield fork(watchAdminInventoryEdit);\r\n yield fork(watchInventoryEdit);\r\n yield fork(watchSignup);\r\n yield fork(watchPriceTalks);\r\n yield fork(watchManageEmailPreferences);\r\n yield fork(watchSettlementAccount);\r\n yield fork(watchAssetManager);\r\n yield fork(watchTradeAllocation);\r\n yield fork(watchTradeAllocationTemplate);\r\n yield fork(watchAwaitingTrades);\r\n yield fork(watchTransactionHistory);\r\n yield fork(watchAmrPipelineCommon);\r\n yield fork(watchRejectedTrades);\r\n yield fork(watchHelpResources);\r\n yield fork(watchAmrTransactionAnalytics);\r\n yield fork(watchArrangerPipelineSaga);\r\n yield fork(watchManageTokens);\r\n yield fork(watchCloManagers);\r\n yield fork(watchAddress);\r\n yield fork(watchPortfolioAgreementDisclaimer);\r\n yield fork(watchAllBwics);\r\n yield fork(watchFilter);\r\n yield fork(watchNews);\r\n yield fork(watchEditNews);\r\n yield fork(watchBanks);\r\n yield fork(watchCompanyMembers);\r\n yield fork(watchDeals);\r\n}\r\n","import { applyMiddleware, compose, createStore } from 'redux';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport { thunk } from 'redux-thunk';\r\nimport createRootReducer from './reducers';\r\nimport { watchMain } from './sagas/main.saga';\r\n\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\nconst sagaMiddleware = createSagaMiddleware();\r\n\r\nconst store = createStore(\r\n createRootReducer(),\r\n {},\r\n composeEnhancers(\r\n applyMiddleware(\r\n sagaMiddleware,\r\n thunk\r\n )\r\n ),\r\n);\r\n\r\nsagaMiddleware.run(watchMain);\r\n\r\nexport { store };\r\n","import moment from 'moment';\r\nimport qs from 'query-string';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { urlBuilder } from './url.builder';\r\nimport { constants, responseType } from '../constants';\r\nimport { DownloadedDocumentAccessType } from '../types/amr-pipeline/enums/DownloadedDocumentAccessType';\r\nimport { fileUpload } from './file.upload';\r\n\r\nexport const amrPipelineService = {\r\n getTransactionsList,\r\n getTransactionClasses,\r\n getTransactionClassesNames,\r\n getTransaction,\r\n getTransactionHistory,\r\n getLatestTransactions,\r\n getLatestTransactionsByTicker,\r\n getPortfolio,\r\n getDocuments,\r\n getCollateralQualityTest,\r\n getAmrDocuments,\r\n registerUser,\r\n getIntexFile,\r\n getManagerPresentationFile,\r\n getDisclosureFile,\r\n getTransactionDocument,\r\n getTransactionDocuments,\r\n exportPortfolio,\r\n exportTransactionsClasses,\r\n getCurrency,\r\n getSyndicateContacts,\r\n getSyndicateContactsByArranger,\r\n getIOIs,\r\n submitIOIs,\r\n readIOIsByUser,\r\n exportIOIs,\r\n getTransactionClassesSummary,\r\n getTransactionsSummary,\r\n downloadIntexFile,\r\n downloadManagerPresentationFile,\r\n downloadDisclosureFile,\r\n logTabAccess,\r\n getDocumentsDownloads,\r\n getDaysInTheMarket,\r\n getTransactionViewHistory,\r\n getTransactionVersions,\r\n downloadStatisticDocument,\r\n unblockUserRequest,\r\n blockUserRequest,\r\n saveUser,\r\n shareTransactionToClients,\r\n logImUserActivity,\r\n getSharedClients,\r\n uploadDocument,\r\n downloadDocument,\r\n requestDemo,\r\n updateArrangerClient,\r\n logAccessToSharedTransaction,\r\n getBankTransactions,\r\n getDealComparableMetrics\r\n};\r\n\r\nfunction registerUser(user, company) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/accounts`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n userEmail: user.current().email,\r\n firstName: user.current().firstName,\r\n lastName: user.current().lastName,\r\n phoneNumber: user.current().publicPhone,\r\n companyLegalName: company.name,\r\n companyCountryThreeCharsCode: company.countryCode || 'USA',\r\n companyCityName: company.city || \"New York\",\r\n companyAddress: company.address,\r\n companyZipCode: company.zipCode\r\n })\r\n }, true\r\n );\r\n}\r\n\r\nfunction updateArrangerClient(token) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/accounts/update-arranger-client`,\r\n {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n body: JSON.stringify({\r\n token,\r\n }),\r\n },\r\n true,\r\n );\r\n}\r\n\r\nfunction logAccessToSharedTransaction(dealReferenceName, transactionReferenceName, token) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/Transactions/${transactionReferenceName}/share-clients/log`,\r\n {\r\n method: 'PUT',\r\n responseType: responseType.none,\r\n body: JSON.stringify({\r\n token,\r\n }),\r\n },\r\n );\r\n}\r\n\r\nfunction getTransactionsList(filterCriteria, searchCriteria) {\r\n const searchParams = {\r\n orderBy: searchCriteria,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Transactions`, {\r\n method: 'POST', body: JSON.stringify({ ...filterCriteria, ...searchParams })\r\n });\r\n}\r\n\r\nfunction getTransactionsSummary(transactionFilterOptions, statsToCalculate) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Transactions/statistics`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n transactionFilterOptions,\r\n statsToCalculate,\r\n }),\r\n });\r\n}\r\n\r\nfunction getTransactionClassesSummary(filterCriteria) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transaction-classes/statistics`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n });\r\n}\r\n\r\nfunction getLatestTransactions(companyReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Transactions/collateral-manager/${companyReferenceName}/latest-transaction-in-deal`\r\n );\r\n}\r\n\r\nfunction getLatestTransactionsByTicker(tickers) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/latest-transactions-in-deals`, {\r\n method: 'POST',\r\n body: JSON.stringify({ tickers }),\r\n });\r\n}\r\n\r\nfunction getTransaction(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}`\r\n );\r\n}\r\n\r\nfunction getTransactionHistory(dealReferenceName, transactionReferenceName, options = { classesOnly: false }) {\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/history`,\r\n options\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction getTransactionClasses(filterCriteria, searchCriteria) {\r\n const searchParams = {\r\n orderBy: searchCriteria,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transaction-classes`, {\r\n method: 'POST', body: JSON.stringify({ ...filterCriteria, ...searchParams, includeTransaction: true })\r\n }\r\n );\r\n}\r\n\r\nfunction getTransactionClassesNames() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transaction-classes-names`);\r\n}\r\n\r\nfunction getPortfolio(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/portfolio`\r\n );\r\n}\r\n\r\nfunction getAmrDocuments(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/documents`\r\n );\r\n}\r\n\r\nfunction getDocuments(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/documents`\r\n );\r\n}\r\n\r\nfunction getCollateralQualityTest(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/collateral-quality-tests`\r\n );\r\n}\r\n\r\n\r\nfunction downloadIntexFile(dealReferenceName, transactionReferenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/intex-file/download`, requestOptions);\r\n}\r\n\r\nfunction getIntexFile(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/intex-file/`,\r\n undefined,\r\n { successHandler: response => response.status === 204 ? null : response.json() },\r\n );\r\n}\r\n\r\nfunction getManagerPresentationFile(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/manager-presentation-file/`,\r\n undefined,\r\n { successHandler: response => response.status === 204 ? null : response.json() },\r\n );\r\n}\r\n\r\nfunction downloadManagerPresentationFile(dealReferenceName, transactionReferenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/manager-presentation-file/download`, requestOptions);\r\n}\r\n\r\nfunction getDisclosureFile(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/disclosure-file/`,\r\n undefined,\r\n { successHandler: response => response.status === 204 ? null : response.json() },\r\n );\r\n}\r\n\r\nfunction downloadDisclosureFile(dealReferenceName, transactionReferenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/disclosure-file/download`, requestOptions);\r\n}\r\n\r\nfunction getTransactionDocument(dealReferenceName, transactionReferenceName, referenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/documents/${referenceName}/download`, requestOptions\r\n );\r\n}\r\n\r\nfunction getTransactionDocuments(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/documents/download-all`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction exportPortfolio(dealReferenceName, transactionReferenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/portfolio/export`, requestOptions\r\n );\r\n}\r\n\r\nfunction getSyndicateContacts(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/syndicate-contacts`\r\n ).then(res => res == null ? [] : res);\r\n}\r\n\r\nfunction getSyndicateContactsByArranger(dealReferenceName, transactionReferenceName, companyReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/syndicate-contacts/${companyReferenceName}`\r\n );\r\n}\r\n\r\nfunction exportTransactionsClasses(filterCriteria, dealSortCriteria, trasactionClassSortCriteria) {\r\n const searchParams = {\r\n orderByTransaction: dealSortCriteria,\r\n orderByTransactionClass: trasactionClassSortCriteria,\r\n };\r\n const requestOptions = {\r\n body: JSON.stringify({ ...filterCriteria, ...searchParams }),\r\n method: 'POST',\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/export`, requestOptions);\r\n}\r\n\r\nfunction getCurrency() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Currency`);\r\n}\r\n\r\nfunction getIOIs(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/iois`\r\n );\r\n}\r\n\r\nfunction submitIOIs(dealReferenceName, transactionReferenceName, iois) {\r\n const requestOptions = {\r\n body: JSON.stringify({ iois }),\r\n method: \"PUT\",\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/iois`, requestOptions\r\n );\r\n}\r\n\r\nfunction readIOIsByUser(dealReferenceName, transactionReferenceName, ioiReferenceNames) {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ ioiReferenceNames }),\r\n responseType: responseType.none,\r\n };\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/read-iois-by-user`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction exportIOIs(dealReferenceName, transactionReferenceName, excludeDeleted = false) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/iois/export/${excludeDeleted}`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction logTabAccess(dealReferenceName, transactionReferenceName, tabAccessType) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/tab/${tabAccessType}`, {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n })\r\n}\r\n\r\nfunction getTransactionViewHistory(dealReferenceName, transactionReferenceName, startDate, endDate) {\r\n let queryString = '';\r\n\r\n if (startDate && endDate) {\r\n const queryParams = {\r\n 'period.From': moment(startDate).format(),\r\n 'period.To': moment(endDate).format(),\r\n };\r\n\r\n queryString = `?${qs.stringify(queryParams)}`;\r\n }\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/history/${queryString}`,\r\n );\r\n}\r\n\r\nfunction getTransactionVersions(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/versions`,\r\n );\r\n}\r\n\r\nfunction getDocumentsDownloads(dealReferenceName, transactionReferenceName, startDate, endDate) {\r\n let queryString = '';\r\n\r\n if (startDate && endDate) {\r\n const queryParams = {\r\n 'period.From': moment(startDate).format(constants.dateFormatISO8601),\r\n 'period.To': moment(endDate).format(constants.dateFormatISO8601),\r\n };\r\n\r\n queryString = `?${qs.stringify(queryParams)}`;\r\n }\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/document-downloads/${queryString}`\r\n );\r\n}\r\n\r\nfunction getDaysInTheMarket(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/days-market`\r\n );\r\n}\r\n\r\nfunction downloadStatisticDocument(dealReferenceName, transactionReferenceName, documentReferenceName, accessType) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n let documentLink;\r\n\r\n switch (accessType) {\r\n case DownloadedDocumentAccessType.DownloadAllDocuments:\r\n case DownloadedDocumentAccessType.DownloadOneDocument: {\r\n documentLink = 'documents'\r\n break;\r\n }\r\n case DownloadedDocumentAccessType.DownloadIntexFile: {\r\n documentLink = 'intex-file';\r\n break;\r\n }\r\n case DownloadedDocumentAccessType.DownloadManagerPresentationFile: {\r\n documentLink = 'manager-presentation-file';\r\n break;\r\n }\r\n case DownloadedDocumentAccessType.DownloadDisclosureFile: {\r\n documentLink = 'disclosure-file';\r\n break;\r\n }\r\n default: break;\r\n }\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/${documentLink}/${documentReferenceName}/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction unblockUserRequest(userEmail) {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/user/Unblock`;\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ userEmail }),\r\n responseType: responseType.json,\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction blockUserRequest(userEmail, blockReason) {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/user/Block`;\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ userEmail, blockReason }),\r\n responseType: responseType.json,\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction saveUser(user) {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/user/Update`;\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ ...user }),\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction shareTransactionToClients(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n recipientsEmails,\r\n message\r\n) {\r\n const requestOptions = {\r\n body: JSON.stringify({ recipientsEmails, message }),\r\n method: \"PUT\",\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/share-clients/add`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction logImUserActivity() {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/log-user-activity/IM`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getSharedClients(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/share-clients`,\r\n );\r\n}\r\n\r\nfunction uploadDocument(file, progressCallback) {\r\n return fileUpload(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/documents`,\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction downloadDocument(referenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/documents/${referenceName}`, requestOptions);\r\n}\r\n\r\nfunction requestDemo() {\r\n const requestOptions = {\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/accounts/demo-request`, requestOptions);\r\n}\r\n\r\nfunction getBankTransactions(companyReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/bank/${companyReferenceName}`\r\n );\r\n}\r\n\r\nfunction getDealComparableMetrics(\r\n dealReferenceName,\r\n transactionReferenceName) {\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/comparable-deals`);\r\n}\r\n","import { Location } from 'history';\r\nimport { history } from '../history';\r\nimport { logger } from '../logging/logger';\r\nimport { routes } from '../constants';\r\nimport { matchPath } from 'react-router';\r\n\r\nclass RequestCancellationController {\r\n readonly _abortControllers: Map = new Map();\r\n readonly _unionRoutes: string[][] = [];\r\n\r\n _previousLocation?: Location;\r\n\r\n constructor(unionRoutes: string[][] = []) {\r\n this._previousLocation = history.location;\r\n this._unionRoutes = unionRoutes;\r\n this.start();\r\n }\r\n\r\n start = (): void => {\r\n history.listen(nextLocation => {\r\n if (\r\n this._previousLocation != null &&\r\n this._previousLocation.pathname !== nextLocation.pathname\r\n ) {\r\n const unionRoutes = this._unionRoutes.find(u =>\r\n u.some(path =>\r\n matchPath(this._previousLocation?.pathname ? this._previousLocation?.pathname : '', {\r\n path,\r\n exact: true,\r\n }),\r\n ),\r\n );\r\n if (unionRoutes) {\r\n const isNextLocationInUnionRouteList = unionRoutes.some(path =>\r\n matchPath(nextLocation.pathname, { path, exact: true }),\r\n );\r\n\r\n if (!isNextLocationInUnionRouteList) {\r\n unionRoutes.forEach(r => this.abort(r));\r\n }\r\n } else {\r\n this.abort(this._previousLocation.pathname);\r\n }\r\n }\r\n this._previousLocation = nextLocation;\r\n });\r\n };\r\n\r\n signal = (customKey?: string): AbortSignal => {\r\n const key: string = customKey ?? history.location.pathname;\r\n if (!this._abortControllers.has(key)) {\r\n this._abortControllers.set(key, new AbortController());\r\n }\r\n\r\n return (this._abortControllers.get(key) as AbortController).signal;\r\n }\r\n\r\n abort = (key: string): void => {\r\n const controller = this._abortControllers.get(key);\r\n if (controller) {\r\n controller.abort();\r\n this._abortControllers.delete(key);\r\n }\r\n }\r\n\r\n reset = (key: string): void => {\r\n this._abortControllers.delete(key);\r\n }\r\n\r\n log = (message: string, payload?: any): void => logger.trace('Request Cancellation: ' + message, payload)\r\n}\r\n\r\nconst unionRoutes = [\r\n [routes.manageCompanies, routes.manageCompanyMembers],\r\n [routes.transactionDetail, routes.transactionDetail],\r\n [routes.manageCloManager, routes.manageCloManager],\r\n [routes.deals],\r\n [routes.deals],\r\n];\r\n\r\nexport const requestCancelationController = new RequestCancellationController(unionRoutes);\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { PageConfig } from '../types/page-config/PageConfig';\r\nimport { PageConfigType } from '../types/page-config/PageConfigType';\r\nimport { UserConfigFilter } from '../types/user-config/UserConfigFilter';\r\n\r\nexport const pageConfigService = {\r\n getConfigs,\r\n saveConfig,\r\n getDefaultConfigs,\r\n saveFilters,\r\n}\r\n\r\nfunction getConfigs(): Promise {\r\n return fetchSafe(`/api/page-config`, undefined, true);\r\n}\r\n\r\nfunction getDefaultConfigs(pageConfigType: PageConfigType): Promise {\r\n return fetchSafe(`/api/page-config/${pageConfigType}/default`);\r\n}\r\n\r\nfunction saveConfig(pageConfigType: PageConfigType, pageConfig: PageConfig): Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(pageConfig)\r\n };\r\n return fetchSafe(`/api/page-config/${pageConfigType}`, requestOptions, true);\r\n}\r\n\r\nfunction saveFilters(page: PageConfigType, value: UserConfigFilter[]): Promise {\r\n const requestParams = { method: 'POST', body: JSON.stringify({ page, value }) }\r\n return fetchSafe('/api/page-config', requestParams)\r\n}\r\n","import { responseType } from '../constants';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nexport const bwicDealsService = {\r\n getDeals,\r\n getDealSecurityStatistics,\r\n downloadDealSecurityDocuments\r\n}\r\n\r\nfunction getDeals(positions) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(positions)\r\n };\r\n\r\n return fetchSafe('/api/deals', requestOptions);\r\n}\r\n\r\nfunction getDealSecurityStatistics(dealTickers){\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ dealTickers })\r\n };\r\n\r\n return fetchSafe('/api/securities/clo-managers-deals', requestOptions);\r\n}\r\n\r\nfunction downloadDealSecurityDocuments(dealTicker, dealName){\r\n return fetchSafe(`/api/securities/clo-managers-deals/${dealTicker}/download/${dealName}`, {\r\n responseType: responseType.file\r\n });\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\n\r\nexport const portfolioService = {\r\n getPortfolios,\r\n getPortfolio,\r\n deletePortfolio,\r\n createPortfolio,\r\n createNewPortfolio,\r\n renamePortfolio,\r\n savePositions,\r\n saveSecurityPosition,\r\n exportPortfolios,\r\n exportPortfolio,\r\n updatePortfoliosAlert,\r\n portfolioExist\r\n};\r\n\r\nfunction portfolioExist() {\r\n return fetchSafe('/api/portfolios/has-portfolios');\r\n}\r\n\r\nfunction getPortfolios() {\r\n return fetchSafe('/api/portfolios');\r\n}\r\n\r\nfunction getPortfolio(portfolioReferenceName) {\r\n return fetchSafe(`/api/portfolios/${portfolioReferenceName}`);\r\n}\r\n\r\nfunction deletePortfolio(portfolioId) {\r\n let url = `/api/portfolios/${portfolioId}`;\r\n\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction createPortfolio(title) {\r\n let url = `/api/portfolios`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(title)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction createNewPortfolio(title, positions, notifyUser = false) {\r\n return fetchSafe(\r\n '/api/portfolios',\r\n { method: 'POST', body: JSON.stringify({ title, positions, notifyUser }) }\r\n );\r\n}\r\n\r\nfunction renamePortfolio(portfolioId, title) {\r\n let url = `/api/portfolios/${portfolioId}`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(title),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction savePositions(portfolioId, positions) {\r\n let url = `/api/portfolios/${portfolioId}/positions`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(positions),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction saveSecurityPosition(portfolioId, position) {\r\n let url = `/api/portfolios/${portfolioId}/add`;\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(position),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction exportPortfolios(searchTerms){\r\n const url = '/api/portfolios/export';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(searchTerms),\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction exportPortfolio(portfolioId) {\r\n return fetchSafe(\r\n `/api/portfolios/export/${portfolioId}`,\r\n { responseType: responseType.file }\r\n );\r\n}\r\n\r\nfunction updatePortfoliosAlert(data) {\r\n const url = '/api/portfolios/alerts';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { ContactSalesRequest } from \"../types/contact-sales/ContactSalesRequest\";\r\n\r\nexport const contactSalesService = {\r\n sendRequest\r\n}\r\n\r\nfunction sendRequest(request: ContactSalesRequest): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(request),\r\n responseType: responseType.none\r\n\r\n };\r\n\r\n return fetchSafe('/api/profile/contact-sales', requestOptions);\r\n}\r\n","import isNil from 'lodash/isNil';\r\n\r\nexport function urlBuilder(baseUrl, queryArgs) {\r\n const query = Object\r\n .keys(queryArgs)\r\n .filter(key => !isNil(queryArgs[key]) || (!!queryArgs[key] && (!Array.isArray(queryArgs[key]) || queryArgs[key].length)))\r\n .map(key => Array.isArray(queryArgs[key]) ? addArray(key, queryArgs[key]) : addSingle(key, queryArgs[key]))\r\n .flat()\r\n .join('&');\r\n\r\n if (query) {\r\n return `${baseUrl}?${query}`;\r\n }\r\n\r\n return baseUrl;\r\n}\r\n\r\nfunction addArray(key, values) {\r\n return values.map(value => addSingle(key, value));\r\n}\r\n\r\nfunction addSingle(key, value) {\r\n return `${key}=${encodeURIComponent(value)}`\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\nexport const biddingService = {\r\n getAccessState,\r\n requestAccess,\r\n submitBids,\r\n updateBidAttributes,\r\n sendQuickFeedback,\r\n sendOnBehalfQuickFeedback,\r\n saveTargetLevel,\r\n trade,\r\n affirm,\r\n reject,\r\n checkAwaitingTrades,\r\n sendBidRequest,\r\n getLiveBiddingData\r\n}\r\n\r\nfunction getAccessState(bwicReferenceName) {\r\n return fetchSafe(`/api/bidding/${bwicReferenceName}/access`);\r\n}\r\n\r\nfunction requestAccess(bwicReferenceName, comment) {\r\n const url = `/api/bidding/${bwicReferenceName}/access`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(comment),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction submitBids(bwicReferenceName, bids) {\r\n const url = `/api/bidding/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(bids)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction updateBidAttributes(bidAttributes) {\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify(bidAttributes)\r\n };\r\n\r\n return fetchSafe('/api/bidding', requestOptions);\r\n}\r\n\r\nfunction sendQuickFeedback(bwicReferenceName, positionId, bids, feedbackType) {\r\n const url = `/api/bidding/feedback/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ positionId, bids, feedbackType }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions, true);\r\n}\r\n\r\nfunction sendOnBehalfQuickFeedback(bwicReferenceName, positionId, bids, feedbackType) {\r\n const url = `/api/bidding/on-behalf/feedback/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ positionId, bids, feedbackType }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions, true);\r\n}\r\n\r\nfunction sendBidRequest(bwicReferenceName, positionId, companies, requestType) {\r\n const url = `/api/bidding/bid-request/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ positionId, companies, requestType }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\n\r\nfunction trade(bwicReferenceName, tradingPositions) {\r\n const url = `/api/trading/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(tradingPositions),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction saveTargetLevel(bwicReferenceName, positionId, targetLevel) {\r\n const url = `/api/bidding/savetargetlevel/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ positionId, targetLevel }),\r\n responseType: responseType.none\r\n }\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction affirm(affirmModels) {\r\n const url = `/api/trading/affirm`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(affirmModels),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction reject(rejectModel) {\r\n const url = '/api/trading/reject';\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(rejectModel),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction checkAwaitingTrades() {\r\n return fetchSafe('/api/trading/trades', {}, true);\r\n}\r\n\r\nfunction getLiveBiddingData() {\r\n return fetchSafe('api/bwics/live-bidding-positions', {}, true);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { logger } from '../logging/logger';\r\n\r\nexport const trackingService = {\r\n trackAction\r\n}\r\n\r\nfunction trackAction(eventName: string, values?: { [key: string | number]: string | number }) {\r\n const url = `/api/tracking`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ eventName, values }),\r\n responseType: responseType.none\r\n };\r\n\r\n try {\r\n fetchSafe(url, requestOptions);\r\n } catch (e) {\r\n logger.exception(e, 'Failed to track some event');\r\n }\r\n}","import moment from 'moment';\r\nimport { createSelector } from 'reselect';\r\nimport { constants } from '../constants';\r\nimport { dateTimeUtils } from '../utils';\r\nimport { newBWICSteps } from '../constants/newBWIC.steps';\r\nimport { TimeZone } from '../types/models/TimeZone';\r\n\r\ntype TState = {\r\n isInitializing: boolean;\r\n hasBwicPositions: boolean;\r\n submitted: boolean;\r\n activeStep: string;\r\n process: {\r\n date?: Date;\r\n nextBusinessDay?: Date;\r\n bidsDue?: string;\r\n goodUntil?: string;\r\n daysToSettle: number;\r\n timeZone?: string;\r\n timeZones: TimeZone[];\r\n }\r\n};\r\n\r\nconst getInitializingFlag = (state: TState) => state.isInitializing;\r\nconst getSubmittedFlag = (state: TState) => state.submitted;\r\nconst getActiveStep = (state: TState) => state.activeStep\r\nconst getHasBwicPositionsFlag = (state: TState) => state.hasBwicPositions;\r\nconst getBwicDate = (state: TState) => state.process.date;\r\nconst getNextBusinessDay = (state: TState) => state.process.nextBusinessDay;\r\nconst getBidsDue = (state: TState) => state.process.bidsDue;\r\nconst getGoodUntil = (state: TState) => state.process.goodUntil;\r\nconst getDaysToSettle = (state: TState) => state.process.daysToSettle;\r\nconst getTimeZone = (state: TState) => state.process.timeZone;\r\nconst getTimeZoneList = (state: TState) => state.process.timeZones;\r\n\r\nexport const bwicChangedFlagSelector = createSelector([\r\n getInitializingFlag,\r\n getActiveStep,\r\n getSubmittedFlag,\r\n getTimeZoneList,\r\n getHasBwicPositionsFlag,\r\n getDaysToSettle,\r\n getBwicDate,\r\n getNextBusinessDay,\r\n getBidsDue,\r\n getGoodUntil,\r\n getTimeZone], (\r\n isInitializing,\r\n activeStep: string,\r\n submitted: boolean,\r\n timeZones: TimeZone[],\r\n hasPositions: boolean,\r\n daysToSettle: number,\r\n date?: Date,\r\n nextBusinessDay?: Date,\r\n bidsDue?: string,\r\n goodUntil?: string,\r\n timeZone? : string ) => {\r\n return !isInitializing && !submitted && (\r\n activeStep !== newBWICSteps.securities ||\r\n hasPositions ||\r\n daysToSettle !== constants.daysToSettleDefault ||\r\n !date ||\r\n !bidsDue ||\r\n !goodUntil ||\r\n (nextBusinessDay && !moment(date).isSame(nextBusinessDay, 'day')) ||\r\n dateTimeUtils.timestampFromUtcString(bidsDue) !== constants.bidDueDefaultTimestamp ||\r\n dateTimeUtils.timestampFromUtcString(goodUntil) !== constants.goodUntilDefaultTimestamp ||\r\n (timeZone && timeZones.length && timeZone !== timeZones[0].id)\r\n );\r\n }\r\n);\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { urlBuilder } from './url.builder';\r\nimport { getFromCache } from './cache';\r\n\r\n\r\nexport const companiesService = {\r\n getCompanies,\r\n getBrokerDealers,\r\n getBrokerDealer,\r\n getActiveAssetManagers,\r\n getCompany,\r\n getCompanyDomains,\r\n getCompanyMembers,\r\n getCurrentUserCompany,\r\n postCompanyApprove,\r\n postCompanyReject,\r\n changeCompanyStatus,\r\n save,\r\n setMemberOfacStatus,\r\n setCompanyOfacStatus,\r\n getBwicParticipants,\r\n sendDistributionListInvite,\r\n sendHeadOfTrdingInvite,\r\n getFavorites,\r\n addToFavorites,\r\n deleteFromFavorites,\r\n exportCompanies,\r\n getClearingBankBwicParticipants\r\n};\r\n\r\nfunction getCompanies() {\r\n return fetchSafe('/api/companies');\r\n}\r\n\r\nfunction getBrokerDealers() {\r\n return fetchSafe('/api/companies/broker-dealers');\r\n}\r\n\r\nfunction getBrokerDealer(referenceName) {\r\n return fetchSafe(`/api/companies/broker-dealers/${referenceName}`);\r\n}\r\n\r\nfunction getActiveAssetManagers() {\r\n return fetchSafe('/api/companies/asset-managers');\r\n}\r\n\r\nfunction getCompany(referenceName, companyId) {\r\n const url = urlBuilder('/api/companies/single', { referenceName, companyId });\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction getCompanyDomains() {\r\n return fetchSafe('/api/companies/domains');\r\n}\r\n\r\nfunction getCurrentUserCompany(disableRequestCancelation = false) {\r\n return getFromCache('/api/companies/current-user', undefined, undefined, disableRequestCancelation);\r\n}\r\n\r\nfunction postCompanyApprove(companyId) {\r\n const url = `/api/companies/${companyId}/approve`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: '',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction postCompanyReject(companyId, rejectReason) {\r\n const url = `/api/companies/${companyId}/reject`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(rejectReason),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction changeCompanyStatus(companyId, status, reason) {\r\n const url = `/api/companies/${companyId}/status`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ status, reason }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction save(companySaveModel) {\r\n const url = '/api/companies';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(companySaveModel),\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getCompanyMembers(companyId) {\r\n return fetchSafe(`/api/companies/${companyId}/members`);\r\n}\r\n\r\nfunction setMemberOfacStatus(memberId, status) {\r\n const url = `/api/users/${memberId}/ofac`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(status)\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction setCompanyOfacStatus(companyId, status) {\r\n const url = `/api/companies/${companyId}/ofac`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(status)\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\n\r\nfunction getBwicParticipants(bwicReferenceName) {\r\n return fetchSafe(`/api/bwics/participants/${bwicReferenceName}`);\r\n}\r\n\r\nfunction sendDistributionListInvite(companyId) {\r\n const url = '/api/invitation/invite-distribution-list';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ companyId }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction sendHeadOfTrdingInvite(companyId) {\r\n const url = '/api/invitation/invite-head-of-trading';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ companyId }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getFavorites() {\r\n return fetchSafe(`/api/companies/favourites`);\r\n}\r\n\r\nfunction addToFavorites(companyId) {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n body: companyId,\r\n };\r\n return fetchSafe(`/api/companies/favourites`, requestOptions);\r\n}\r\n\r\nfunction deleteFromFavorites(companyId) {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n };\r\n return fetchSafe(`/api/companies/favourites/${companyId}`, requestOptions);\r\n}\r\n\r\nfunction getClearingBankBwicParticipants(bwicReferenceName) {\r\n return fetchSafe(`/api/companies/clearing-banks/${bwicReferenceName}`);\r\n}\r\n\r\nfunction exportCompanies(searchTerms, statuses, roles, regByFrom, regByTo, salesRepresentativeIds, regByIds, orderByColumn, sortOrder) {\r\n const url = urlBuilder('/api/companies/export', {\r\n searchTerms,\r\n statuses,\r\n roles,\r\n regByFrom,\r\n regByTo,\r\n salesRepresentativeIds,\r\n regByIds,\r\n orderByColumn,\r\n sortOrder\r\n })\r\n return fetchSafe(url, { responseType: responseType.file })\r\n}\r\n"],"names":["fileUpload","url","dataItems","blob","onProgress","requestCancelationSignal","arguments","length","undefined","requestCancelationController","signal","refreshTokenController","ensureTokenUpToDate","user","token","refreshToken","then","headers","authorization","concat","Promise","resolve","reject","xhr","XMLHttpRequest","key","open","setRequestHeader","onload","e","apiUtils","isRequestSuccess","target","status","responseText","JSON","parse","onerror","onabort","upload","onprogress","abort","form","FormData","append","name","Object","keys","forEach","send","catch","_ref","message","buildService","version","fetchSafe","getParticipants","state","participants","getOffPlatformCompanies","offPlatformCompanies","getFavorites","favorites","getPositions","securities","getAgreements","agreements","getAllToAllFlag","isAllToAll","getBuyers","allBuyersBids","map","s","_s$bids","bids","flat","filter","b","buyerPseudoOrderNumber","Array","from","arrayUtils","groupBy","entries","_ref2","_slicedToArray","_ref2$$","company","_objectSpread","identifier","biddingUtils","getBidCompanyIdentifier","getSellerBiddingCompanies","createSelector","hiddenState","processType","participans","brokerDealers","p","CompanyStatus","active","isClearingBank","BwicProcessType","Live","c","buyers","_toConsumableArray","sortBrokerDealerCompanies","getSellerFinishedCompanies","some","_s$bids2","companies","confirmedAgreementsByDealer","normalize","a","settlementAgent","agreementStatus","SettlementAgreementStatus","confirmed","id","sort","compareBoolean","localeCompare","manageStorageService","clearRedisCache","method","currencyService","getCurrencies","getFromCache","getCurrencyRate","setCurrencyRate","usdRate","urlBuilder","requestOptions","responseType","none","daysService","getNextBusinessDate","moment","format","getNextBusinessDates","daysCount","isBusinessDay","date","getHolidays","year","bwicProcessService","getTemplates","list","x","readonly","contactsService","getContacts","addContact","contact","body","stringify","updateContact","deleteContact","contactId","uploadContacts","file","progressCallback","parseContactsStirng","text","bulkSave","contactsToSave","contactsToDelete","getXlsxTemplate","inviteBuysideClients","emailList","buysideClientEmails","inviteAllToJoin","sendInvite","locationService","getCountries","countries","usa","find","code","constants","USCountryCode","otherCountries","getStates","countryCode","getCities","stateId","parsedBwicsService","search","searchCriteria","page","pageSize","publish","referenceName","unpublish","save","payload","deleteBwic","cancel","changeAmrFlag","bwicReferenceName","isAMR","colorService","positionId","color","deleteColor","tradingService","isinCusipsAndTickers","statuses","settlementStatuses","currency","side","type","dateFrom","dateTo","settlFrom","settlTo","orderByColumn","_ref$sortOrder","sortOrder","_ref$page","_ref$pageSize","dateTimeFormatUtc","to","settlementFrom","settlementTo","doesExist","blotterExport","params","clientDateTime","setVcon","tradeId","isBuyTrade","value","referenceId","buyTrade","setBooked","_ref3","getAwaitingActionTrades","getCurrentTimeStamp","encodeURIComponent","dashboardService","fetchDailyTradingStats","fetchExportTradingStats","currencyFilter","ratings","fetchScheduledBwics","fetchPortfolioSecurities","exportBwicStatistic","securityId","fetchColorRates","fetchDntRates","fetchSameDayPeriods","fetchDealersStatsExists","fetchDealersStats","exportDealersStats","fetchSellersStatsExists","fetchClientsStats","exportSellerStats","fetchPriceLevel","fetchDtcSellingBuying","fetchMedianAAA","fetchAAAPriceLevel","fetchDtcInvestmentGrade","fetchMostTradedTickers","fetchBiggestMovers","fetchPxTalkDeviation","fetchBwicPercentOfTrace","fetchTopChart","chartType","selectedType","currencyCode","yearFrom","yearTo","collateralTypes","queryParams","TransactionStatus","Closed","Priced","types","AllTopIssuersTransactionTypes","startOf","endOf","queryString","qs","process","exportTopChart","sortingParams","querySortingParams","parseSortingParams","fetchDeals","additionalCriteria","filterCriteria","pricingDate","dateFormatISO8601","fetchExportDeals","fetchPortfolioInventorySecurities","fetchIssueTransactionVolumesCount","_ref$transactionType","transactionType","TransactionType","newIssue","refi","reset","_ref$currencyCode","Currency","USD","_ref$statuses","_ref$collateralTypes","_ref$esg","esg","minChartYear","fetchVolumeCountByTransactionTypes","_ref2$transactionType","_ref2$currencyCode","_ref2$statuses","_ref2$collateralTypes","_ref2$euCompliance","euCompliance","fetchVolumesCountShortLongDated","managerReferenceName","_ref3$transactionType","transactionTypes","_ref3$statuses","nonCallPeriodEndYearsShort","reinvestmentPeriodEndYearsShort","nonCallPeriodEndYearsLong","reinvestmentPeriodEndYearsLong","_nonCallPeriodEndYear","ncEndShortFrom","ncEndShortTo","_reinvestmentPeriodEn","riEndShortFrom","reEndShortTo","_nonCallPeriodEndYear2","ncEndLongFrom","ncEndLongTo","_reinvestmentPeriodEn2","riEndLongFrom","riEndLongTo","asDays","fetchIssuanceSpreads","_ref4","_ref4$transactionType","_ref4$statuses","_ref4$collateralTypes","CollateralType","broadlySyndicated","middleMarket","_ref4$floaterIndexes","floaterIndexes","_ref4$classRatings","classRatings","_ref4$currencyCodes","currencyCodes","_ref4$nonCallPeriodEn","nonCallPeriodEndYears","_ref4$reinvestmentPer","reinvestmentPeriodEndYears","_nonCallPeriodEndYear3","ncEndFrom","ncEndTo","_reinvestmentPeriodEn3","riEndFrom","riEndTo","ncEndPeriod","isNil","riEndPeriod","fetchIssuenseSpreadsComparableData","dealReferenceName","transactionReferenceName","pipelineRequestCriteria","shortLongDatedDeals","_nonCallPeriodEndYear4","_nonCallPeriodEndYear5","queryArgs","fetchKIndicator","fetchNewIssueWeeklySpreads","Active","onBoardingTooltipService","setCount","data","feedbackService","sendFeedback","feedbackData","ratingService","getSecurityRatings","getRatingMappings","bidAsDealerRequestService","getBwicBidRequests","findBidRequestsAsSeller","filterOptions","sortBy","BwicMonitorSortByOptions","NewestFirst","loadSummary","sortByApiParams","bwicMonitorSortByApiValues","direction","appConfig","isSummaryRowHidden","create","brokerDealerId","commission","size","salesCoverage","bidLock","approve","bidRequestId","comment","submit","bidRequests","exportBidRequestsAsSeller","exportBidRequestsAsDealer","latestBidsOnly","bidAsDealerRequestExist","salesRepresentativesService","getCurrentUserSalesRepresentatives","getList","sales","firstName","lastName","assign","model","unassign","photoService","getThumbnail","userId","clearingBankService","saveClearingBankSettings","companyId","dailyTradingLimit","commissions","getSettlementAgentCommission","imUserConfigService","getUserConfig","configType","getDefaultUserConfig","createOrUpdateUserConfig","userConfig","withResponse","json","deleteUserConfig","updateFilterEmailAlertsConfig","filterAlertStatuses","deleteUserFilter","filterType","billingService","getPaymentCards","setPrimaryCard","deletePaymentCard","addPaymentCard","getBillingContact","saveBillingContact","saveSubscription","title","isTrial","expirationDate","expiration","toISOString","requestImProSubscription","getSubscriptions","changeSubscription","subscriptionTitle","searchBillingHistory","notifySales","_fetchReleases","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","stop","apply","releaseService","fetchReleases","fetchWebinar","fetchConferences","documentsService","uploadDocument","documentStoreType","getDocumentUrlByType","uploadAndAssignDocument","documentType","downloadDocument","documentId","DocumentStoreType","Default","downloadAllDocuments","documentGroupKey","Settlement","Error","getDownloadAllUrlByType","deleteDocument","dealTicker","uploadSecurities","downloadSecurities","getSecurityDocumentsExistFlag","isinCusip","downloadStatic","filename","Disclosure","settlementService","getSettlementAccounts","getTradeAllocation","saveSettlementAccount","settlementAccount","deleteSettlementAccount","accountId","saveTradeAllocation","allocationLock","items","bidOnBehalfService","getCompanies","submitBidsBulk","uploadFile","parseClipboard","downloadTemplate","pxTalkService","talk","levelType","savePriceTalks","priceTalkLock","deletedPriceTalks","priceTalks","deletePxTalk","fetchPxTalks","dealsService","getDeals","getDeal","getDealRegularDocuments","getDealDocuments","getCleansingNoticeDocuments","getClassAuctions","classReferenceName","getLatestDealAuctions","getDealDocumentsByType","getDealsList","searchString","offset","count","pipelineFilters","searchItemsPerLoad","getDealsClassesList","getDealDocument","getDealDocumentTemplate","getDealsNamesList","searchTerm","orderByField","ascending","getDealTransactions","options","getPreviousTransaction","getDealDetails","deleteDeal","updateDeal","formData","updateClasses","classes","getExcludedDealers","saveExcludedDealers","excludedDealersData","getAmrDocument","exportSettlementInstructions","getSettlementInstructions","saveSettlementInstructions","settlementInstructions","updateDealDocuments","documents","saveAmrInfo","amrInfo","deleteAmrInfo","downloadAmrDocument","documentReferenceName","downloadAmrDocuments","validateRegularExpression","pattern","PushNotificationService","_createClass","_this","_classCallCheck","lastReconnectError","build","conn","HubConnectionBuilder","withUrl","notificationService","getAccessTokenFactory","withAutomaticReconnect","getReconnectTimeoutPolicy","configureLogging","log","level","LogLevel","Debug","on","store","dispatch","notificationActions","notificationPushReceived","jsonUtils","notificationRead","notificationReadAll","dataPushReceived","companiesActions","companyPushDataReceived","portfolioListActions","updateSendAlertState","response","dashboardPushUpdateTradingStats","dashboardPushUpdatePriceLevel","dashboardPushUpdateMostTradedTickers","dashboardPushBiggestMovers","pushInvitationActions","pushUserActions","settlementAgentAgeementPushActions","settlementAgentAgreementPushReceived","settlementAgentAgreementActions","pushDataReceived","newBwicDealersActions","sellerBidAsDealerAgreementsPushDataReceived","subscriptionsActions","subscriptionPushReceived","brokerDealerContactListActions","pushUpdateList","apiOperationActions","result","bdInventoryActions","pushInventory","inventoryActions","updatedInventorySecurities","lockModifiedDate","onreconnecting","error","notificationServiceReconnecting","onreconnected","notificationServiceReconnected","onclose","notificationServiceDisconnected","statusCode","accountService","logout","window","location","reload","start","_callee2","attempt","isUnauthorized","timeout","_args2","_context2","HubConnectionState","Disconnected","Disconnecting","notificationServiceConnected","t0","isAuthenticated","toString","includes","pushNotificationsServiceRestartAttemptsLimit","pushNotificationsServiceRestartTimeout","setTimeout","_callee3","_context3","logger","exception","accessTokenFactory","_accessTokenFactory","_callee4","_context4","sent","nextRetryDelayInMilliseconds","retryContext","retryReason","previousRetryCount","methodName","param","notificationUtils","isConnected","invoke","sendNotification","_callee5","subj","_context5","errorActions","unexpectedError","_x","_x2","_x3","trace","Connected","pushNotificationService","getSecuritiesWithLatestBids","includeDirectBids","getLatestBids","allBids","bid","values","companyBids","getLatestStage1Bids","stagedBiddingStatus","isDraft","entityName","test","_fetchCategories","categories","category","_fetchCategorySections","categoryId","fetchCategoryArticles","_fetchCategoryArticles","nextPage","iterationResult","prevCount","_args3","_fetchSection","sectionId","section","sectionName","categoryName","articles","helpResourcesService","fetchSection","fetchCategories","fetchCategorySections","fetchBySearch","getArticleImage","src","getArticleAttachment","getArticleAttachmentsList","articleId","tradeAllocationTemplateService","setTemplateActive","templateId","lock","saveTemplate","template","deleteTemplate","amrCompaniesService","getCompanyInfo","companyReferenceName","getMembersList","getTrusteeList","roles","getCollateralManagerList","CollateralManager","getMajorityEquityList","getAmrAgentList","getManagersList","havingDealType","HavingDealType","None","getArrangersList","BdHavingDeals","getBanksList","Banks","getAvailableBrokerDealers","inventoryService","getInventoryExistFlag","getAllInventory","getBdInventory","getAdminEditInventory","setTraded","inventoryPositionId","tradeDate","inventorySecurities","exportInventoryList","sendEmail","toDealerEmail","selectedDealerEmail","toBloombergEmail","selectedBloombergEmail","getSecuritiesXlsxTemplate","parseSecuritiesStirng","getActiveSecurityIdList","manageEmailsService","getEmail","requestParams","getEmailTypes","addressService","countryId","bwicService","getAssets","getOpenBiddingStatus","getBwicHistory","getSecurityDocsZip","searchSecurities","searchSecuritiesGlobal","searchByTicker","abortSignal","endpoint","searchBwics","criteria","bwic","exportBwic","exportBwics","getByReferenceName","reason","markHistoryMessagesAsRead","bwicActions","setColorDistribution","enabled","completeBwic","colorDistributionModel","myBwicsExist","isBdBuy","buyBwics","saveAutoFeedbackConfiguration","configuration","validateTradeLimits","bwicDate","bidsDue","timeZone","bwicPositions","utcOffset","positions","ticker","rating","moneyUtils","isBwicWithSecuritesExist","securityIds","finishStage","getSecurityBwicStatistics","getClassDetails","_getAnalytics","currentTime","cloManagersService","getCloManager","createOrUpdateCloManager","cloManager","downloadManagerPresentationFile","logUserActivity","accessType","switchFavorite","favorite","getAnalytics","getInvitedAndActiveManagers","getProfileViewHistory","startDate","endDate","getLatestTransactionsInDeal","scheduleMeeting","recipientsEmails","getCloSystemInfrastructures","banksService","getBwicBanksList","Date","getBankDetails","getEvents","getSyndicateContacts","updateBank","bank","getBwicsPriceTalks","exportBankManagersTrans","dealerInventorySelector","entities","inventory","filters","bdInventory","lastAppliedFilter","searchTermItems","collateralManagers","requestState","searchIsinTickerItems","managersRequestState","isDynamicFiltersLoaded","isRequestFailed","selectedFilters","getSelectedFilters","inventories","i","ncEnd","ncEndMonth","ncEndYear","formatUtils","formatMonthAndYear","riEnd","riEndMonth","riEndYear","statusName","InventoryPositionStatus","item","searchIsinTicker","_i$collateralManager","_i$trustee","selectedDateOption","selectedOption","isCurrent","dateRangeFilterOptions","CurrentInventory","currentInventoryStatuses","added","updated","t","traded","isSame","lastUpdateDate","compareByDateRange","maturity","statedMaturity","vintage","closing","closingDate","nonCallEnd","compareByDateYearRange","nonCallPeriodEnd","reinvestmentEnd","reinvestmentPeriodEnd","compareStrings","managers","collateralManager","collateralType","trustees","trustee","staticDeal","amr","compareNumbers","outOfNC","compareBooleanStrict","outOfRI","applyFilterCriteria","onFetched","storage","sessionStorage","disableRequestCancelation","cached","getItem","setItem","_unused","console","tradeReportingService","isReported","excludeOnBehalf","tradeStatuses","sortingField","sortDirection","exportSearchResult","setReportedFalg","getResolveTrades","setResolveTrades","references","login","email","password","deviceId","userResult","accessToken","apiLogout","getAccessToken","_getAccessToken","resetPassword","setUpPassword","getAssetManagers","getProfile","changePhoneNumber","phoneNumber","changePassword","getProfileCompany","addCompanyTrader","editCompanyTrader","traderId","editCompanyContact","departmentValue","enableCompanyTrader","disableCompanyTrader","requestIdentityVerificationCodeEmail","requestIdentityVerificationCodeSms","submitIdentityVerificationCode","saveIdentityPhoneNumber","requestPhoneVerificationCode","submitPhoneVerificationCode","deactivateSmsConfirmation","uploadUserImage","deleteIdentityPhoneNumber","fetchUserImage","deleteUserImage","buildVersion","downloadDirectBiddingAgreementPdf","setDirectBiddingAgreementSigned","saveBloombergEmail","bloombergEmail","saveSignupForm","saveArrangersClientSignupForm","saveBwicAnnouncementNotifications","downloadPortfolioAgreementFile","setPortfolioAgreementSigned","downloadCusipTermsFile","actionTypes","LOGOUT","clear","localStorage","removeItem","onBoardingTooltipConst","localStorageKey","requestDirectBiddingPopupLocalStorageKey","requestAllToAllPopupLocalStorageKey","history","replace","routes","_user","fetch","ok","newsService","getNews","getNewsTotalCount","getNewsDetails","createOrUpdateNews","newsData","deleteNews","newsReferenceName","downloadDocuments","amrPipelineSelector","pipelineType","PipelineType","Deals","issuanceMonitor","amrPipeline","amrPipelineIOIs","arrangerPipelineSelector","amrArrangerPipeline","arrangerPipeline","amrDealsSelector","deals","summarySelector","amrPipelineFilterSelector","_amrPipeline$deals","isSummaryRequesting","transactionsStatistic","classesStatistic","initialFilter","shouldShowClassesSummary","f","selected","initialFilterCriteria","getFilterCriteria","lastAppliedFilterCriteria","shouldShowTransactionsSummary","isEqual","issuanceMonitorFilterSelector","ArrangerPipeline","arrangerPipelineFilterSelector","issuanceMonitorSearchTransactionsSelector","searchTransactions","arrangerPipelineDealsSelector","arrangerPipelineApplyDisabledSelector","filterApplied","visibleFilters","isLoading","filterErrors","filterRange","fromRange","toRange","FilterType","Range","Number","applyDisabledSelector","_amrPipeline$deals2","isTransactionsSearching","isClassesSearching","_amrPipeline$filter","_filterDate$filter$op","_filterDate$filter$op2","_filterDate$filter$op3","_filterDate$filter$op4","_filterDate$filter$op5","_filterDate$filter$op6","_filterDate$filter$op7","_filterDate$filter$op8","_filterDateTimeRange$","_filterDateTimeRange$2","filterDate","filterDateTimeRange","fromDate","customDateRange","toDate","fromYearsRange","customYearsRange","toYearsRange","fromDateTimeRange","toDateTimeRange","DateWithYearsRange","YearsDate","DateWithYearsAndTimeRange","validateYear","getFullYear","amrDealsApplyDisabledSelector","settlementAgentAgreementService","getAgreementForSettlementAgent","sendRequest","updateAgreement","fetchPendingAgreementCount","getMethod","toUpperCase","awaitTimeout","delay","retryAttempt","handleResponse","responseTypes","t1","fileUtils","getFileNameFromResponse","t2","shouldRetry","failure","setOptionsDefaults","statusText","emailPreferencesService","getEmailPreferences","saveEmailPreferences","preferences","saveBwicByRating","bwicByRatingPreferences","amrArrangerPipelineService","getArrangerPipelines","searchParams","orderBy","getArrangerPipelinesCount","getArrangerPipelinesByTicker","tickers","createOrUpdateArrangerPipeline","arrangerPipelines","exportArrangerPipelines","getDealsLegalNames","downloadDisclosureFile","bankReferenceName","downloadManagerPresentation","getArrangerPipelinesStatistic","deleteArrangerPipeline","blastMessageService","getPortfolios","portfolios","portfolio","portfolioName","security","searchTerms","term","toLowerCase","indexOf","applySearchTerms","_s$trustee","_s$collateralManager","dealName","dealLegalName","classnames","names","join","getBrokerDealerList","brokerDealerList","getBrokerDealerContactList","brokerDealerContactList","getBrokerDealerUserList","brokerDealerUserList","filterDealers","dealers","contacts","users","_agreements$find","hasRoles","BrokerDealerTrader","cc","cu","distributionList","headOfTrading","dealersSelector","settlementAgentAgreements","isRequestedInitialData","usersService","getUsers","getUser","getUserCreationRequests","getActiveBrokerDealers","enableUser","disableUser","blockReason","resendInvite","saveUser","member","exportUsers","exportUrl","updateTfaEnabledState","getUserLoginHistory","approveUserRequest","concurrencyStamp","blockUserRequest","deleteUser","deleteUserRequest","userRequestId","setTempPassword","gePendingUserRequestCount","unblockUserRequest","lastAppliedCompanyFilter","companyOrderBy","companyFilter","primaryContact","u","primaryContactId","members","rolesText","companyRoles","getTitle","role","subscriptionText","hasActiveUsers","userStatuses","trialPeriodEnd","isTrialExpired","SubscriptionType","trial","subscription","getSubscriptionTitle","subscriptionDate","subscriptionExpiration","getSubscriptionDate","filteredResult","_filter$regBy","_filter$salesRepresen","filterCompanies","blocked","offPlatform","administrator","Administrator","brokerDealer","BrokerDealer","seller","Seller","viewer","Viewer","media","Media","regBy","createdById","salesRepresentatives","salesRepresentative","_c$country","_c$createdBy","_c$subscriptionText","country","createdBy","companyStatuses","getByStatusCode","concatFullName","dateRegistered","sr","bwicDateFilterOptions","custom","filterCompaniesByRange","unspecified","dateFilter","getSearchDateRange","applyFilter","column","companyColumns","legalName","getPrimaryContactName","subscriptionEnd","compareDatesNullable","isAfter","isBefore","trim","getMemsberList","getActiveMembers","m","getMembers","userRequests","lastAppliedMemberFilter","memberOrderBy","memberFilter","extendedMembers","fullName","companyName","companyStatus","companyStatusName","canUnblock","dateRegisteredUtc","local","dateLastLogin","dateLastLoginUtc","emptyPlaceholder","filteredUserRequests","r","isUserRequest","registrationDate","registrationBy","userRequestStatuses","unprocessedUserRequests","UserRequestStatus","Pending","blockedUserRequests","Blocked","filteredUsers","_filter$companies","filteringResult","UserStatus","invited","Invited","notInvited","NotInvited","pendingApproval","requestStatuses","rolesArray","arrangersClient","ArrangersClient","brokerDealerTrader","brokerDealerViewer","BrokerDealerViewer","dataEntry","DataEntry","sellerAdmin","SellerAdministrator","sellerTrader","SellerTrader","sellerViewer","SellerViewer","subscriptionManager","SubscriptionManager","memberRole","_m$createdBy","phone","dateTimeUtils","utcToLocalString","dateFormat4","filterMembersByRange","memberColumns","_a$createdBy","_b$createdBy","getDate","dt","orderByAsc","getFilteredParsedBWICs","manageParsedBwics","bwics","refreshLastUpdatedDate","refreshFlag","bidsDueUtc","lastUpdateAt","duration","lastUpdateAtUtc","getHistory","visible","actions","compareDates","sentDateUtc","addActionProps","currentUser","current","isMyMessage","submittedBy","isResponseMessage","tradingPositionsSelector","tradingPositions","tradingPositionsState","newBwicDealersSelector","visibleCompanies","sortDealersByConfirmedAgreement","watchNotificationServiceConnect","_marked2","watchAuthLoginSuccess","_marked3","watchAuthLogout","_marked4","watchNotificationGetList","_marked5","watchNotificationsGetCountUnread","_marked6","watchNotificationSetReadRequest","_marked7","watchNotificationsReadAllRequest","_marked8","watchNotifications","call","_marked","put","notificationServiceConnect","notificationReset","notificationAttributes","notifications","lastNotificationReferenceName","newNotificationList","_notificationAttributes","select","notification","notificationList","n","_notificationAttribut","displayInNotificationList","NotificationType","PushNotification","toastVisible","appendNotifications","notificationGetListFailure","countUnread","notificationsSetCountUnread","notificationsGetCountUnreadFailure","action","_context6","notificationSetReadSuccess","notificationSetReadFailure","_context7","notificationsReadAllSuccess","notificationsReadAllFailure","_context8","takeEvery","getType","accountActions","LOGIN_SUCCESS","takeLatest","notificationGetList","notificationsGetCountUnread","notificationSetReadRequest","notificationsReadAllRequest","watchOnBoardingTooltipSetCount","watchLogout","watchOnBoardingTooltip","onBoardingTooltipSetCountSuccess","onBoardingTooltipSetCountFailure","onBoardingReset","onBoardingTooltipSetCountRequest","watchSecurityDetailsInit","watchSecurityDetails","_action$payload","fetchAgencyRatings","_yield$all","_yield$all2","mappings","all","securityDetailsActions","securityDetailsInitSuccess","securityDetailsInitFailure","securityDetailsInitRequest","watchInit","setFilterFromSearchString","watchExportBidRequestsRequest","getSearchFilterOptions","watchFilterApply","watchReset","watchSubmitBidRequest","watchBwicStatusChange","_marked9","_marked10","watchSortChanged","_marked11","watchSellerBuyside","_yield$select","sellerBuyside","sellerBuysideActions","initRequestStatus","RequestState","request","success","advancedFiltersBlocked","hasFeatures","SubscriptionFeature","BwicMonitorAvancedFilters","dateFilterChange","filterApply","criticalError","_yield$select2","identifierOptions","statusOptions","currencyOptions","ratingsOptions","typesOptions","sizeMin","sizeMax","submittedBidsOption","serializers","_sizeMin","_sizeMax","dateCommand","sortByCommand","identifiers","parsedIdentifiers","parsedDate","parsedStatuses","parsedRatings","Rating","multipleCurrencies","parsedCurrency","parsedTypes","BwicType","sizeFrom","min","sizeTo","max","submittedBids","submittedBidsValue","Boolean","sorting","sortByValue","queryStringSerializer","deserialize","bwicStatuses","bwicStatusFilterChange","searchSecuritiesActions","addSearchItem","storeCurrencySelectedStatus","currencyFilterChange","ratingFilterChange","typeFilterChange","sizeFilterChange","submittedBidsFilterChange","canExecute","shouldExecute","execute","_getDateRangeOption","option","customRange","getDateRangeOption","customDateFilterChange","BwicMonitorSorting","sortFieldChanged","DeserializeCommandHandler","addCommand","processGenerator","filterOption","saveAs","exportBidRequestsSuccess","exportBidRequestsFailure","stateFilter","dateRange","getFilterSelectedValues","getSelectedCurrency","currencies","currentPageNumber","numericUtils","isNumber","_state$lastAppliedFil","isFilterChanged","_history$location$sea","totalRecordNumber","summary","dataItemsLoadingState","isApply","isSearchTermChange","resetSummary","t3","t4","_objectWithoutProperties","_excluded","push","serialize","pathname","storeAppliedFilter","storeSearchResult","t5","finish","selectedCurrencies","String","o","_yield$select3","saveSearchTermItems","_apiOperation$result","_apiOperation$result2","_conflict$modifiedDat","_current$bidAsDealerR","apiOperation","_action$payload$data","axed","final","modifiedDate","agreementBrokerDealerId","agreementCommission","positionSize","conflict","isBiddingOverThemself","isBidOrCommissionChanged","bidRequest","_yield$call","_yield$call2","_response","_yield$call3","_yield$call4","_response2","_context9","requests","event","ApiOperationType","SubmitAxedFinal","SubmitBidRequest","position","isRequesting","requestStateSubmitBidRequest","updateRequestStateSubmitBid","resetEvent","parseConflict","bidAsDealerRequest","directBid","acceptBiddingOverThemself","waitResult","autoRemove","errorToastDisabled","createdDate","bidId","biddingService","updateBidAttributes","jsonText","conflicts","tryParse","editState","_context10","bwicStatus","BwicStatus","scheduled","bidding","editBidRequestState","isColorDistribution","BidRequestStatus","expired","updateEditBidRequestState","updateBidRequests","_context11","hardReset","_context12","pagingReset","_context13","init","sortChanged","submitBidRequest","pushDataActions","PUSH_DATA_BWIC_STATUS_CHANGE","exportBidRequestsRequest","wathSubscriptionChangePush","watchSubscriptions","_action$payload$subsc","refreshAuthentication","watchLoadSalesRepresentatives","watchSalesRepresentative","_user$current","salesRepresentativesSupported","salesRepresentativeActions","storeSalesRepresentatives","loadUserSalesRepresentatives","watchApplyFilter","watchFetchHistory","watchBillingHistory","getSearchRequestParams","period","filterPeriod","_filterPeriod$find","periodValues","_defineProperty","SubscriptionPeriod","month","subtract","quarter","getFilterPeriodValues","appliedFilter","subscriptions","billingHistory","billingHistoryActions","fetchBillingHistory","setApplyFilter","_getSearchRequestPara","watchGetReleaseRequest","watchMarkAsReadRequest","watchRelease","responseReleases","release","releaseActions","getReleaseRequest","getReleaseResponse","OnBoardingTooltipType","whatsNewPopup","maxCountLimit","setOnBoardingTooltipCounter","markAsReadResponse","markAsReadRequest","watchSelectAllDealersByDefault","watchPushUpdateDealerContacts","watchNewBwicDealers","liveBidding","dealersToSelect","_s$process$templates$","templates","d","selectDealers","selectedByDefault","selectedDealers","brokerDealerContacts","brokerDealerUsers","newBwicDealers","_s$process$templates$2","isLiveBiddingOffPlatform","deleted","selectDealer","selectDealersByDefault","sellerAdminService","excludeNewCompany","companyIds","watchGetExcludedDealers","watchSaveExcludedDealers","watchSellerAdminDealers","sellerAdminDealerActions","getExcludedDealersSuccess","excludedDealers","getExcludedDealersFailure","dealerIds","saveExcludedDealersSuccess","setEditModeStatus","brokerDealerListActions","getExcludedDealersRequest","saveExcludedDealersFailure","saveExcludedDealersRequest","watchRequest","setDefaultFilter","setDefaultFilterSelect","watchColorDistributionSend","watchBwicStatusChanged","watchPortfolioGlobalAlertsChange","watchPortfolioList","filterActions","createFilterActions","BwicFilterType","Portfolio","portfolioService","requestResult","getFilterItems","allDealNames","dealNameFilterItems","allManagers","managerFilterItems","allTrusteeNames","trusteeFilterItems","cloneDeep","collection","distinct","disabled","_s$collateralManager2","_s$trustee2","filterQueryString","filtersConfig","canUseAdvancedFilters","defaultConfigFilter","acceptableCollateralMembers","_mixedDateRange","_mixedDateRange2","ncEndSerializers","getNcEndDeserializeResult","_mixedDateRange3","_mixedDateRange4","riEndSerializers","getRiEndDeserializeResult","searchInputValues","currencyValues","ratingValues","dealNames","isEsg","isEuCompliance","isStaticDeal","maturityFrom","maturityTo","vintageFrom","vintageTo","closingFrom","closingTo","trusteeValues","amrValue","isOutofRI","isOutOfNC","ncEndDeserializeResult","riEndDeserializeResult","searchInputValuesCommand","collateralTypesCommand","currenciesCommand","collateralManagersReferenceNamesCommand","ratingCommand","dealNamesCommand","esgCommand","euCompilanceCommand","staticDealsCommand","outOfNCCommand","outofRICommand","nonCallEndCommand","reinvestmentEndCommand","trusteesValuesCommand","maturityCommand","vintageCommand","closingCommand","amrValueCommand","_context21","_s$entities$pageConfi","_s$entities$pageConfi2","pageConfig","configs","PageConfigType","PortfolioAvancedFilters","default","mixedDateRange","dealsLegalNames","staticDeals","filterSelectChange","manager","filterVisibilityChange","filterRadioChange","dates","years","_context14","filterDateQueryStringDeserialized","_context15","_context16","_context17","makeFilterVisible","getDateOptionByRange","ThisWeek","filterDateSelectOption","filterDateSelectCustomRange","_context18","_context19","_context20","portfolioActions","advancedFilterBlocked","selectFilterFromConfig","_context22","colorDistributionSend","historyAction","colors","_context23","bwicStatusChanged","portfoliosRequestState","alertState","_context24","portfolioId","bwicAlert","bwicGlobalAlertEnabled","dealersInventoryAlert","inventoryGlobalAlertEnabled","cleansingNoticeAlert","cleansingNoticeAlertEnabled","issuanceMonitorAlert","issuanceMonitorAlertEnabled","outOfRiPeriodAlert","outOfRiAlertEnabled","outOfNcPeriodAlert","outOfNcAlertEnabled","rollerDeadlineAlert","rollerDeadlineAlertEnabled","_context25","PUSH_DATA_PUBLIC_COLORS","manageEmailPreferencesActions","portfolioGlobalAlertsChange","watchGetInitialDataRequest","watchSaveRequest","watchSaveArrangerPipelineRequest","watchSaveBanksRequest","watchSaveEmailPreferences","watchSaveBwicByRatingRequest","watchManageEmailPreferences","amrPipelineActions","createAmrPipelineActions","banks","amrBanks","bwicBanks","loadFilters","initFilter","initialData","withIssuanceMonitorAccess","CloManagers","combineBanks","getInitialDataSuccess","emailPreferencesActions","editIssuanceMonitorPreferences","editCloManagerPreferences","userCompany","isCollateralManager","hasImSubscription","hasBwicSubscription","hasDealerInventorySubscription","cloManagerBwicAlerts","cloManagerDealerInventoryAlerts","cloManagerBwicAlertsConfig","cloManagerDiAlertsConfig","singleUpdateOption","newTransactionOption","statisticOption","cloManagerAnalyticsAlert","cloManagerImAlerts","cloManagerApAlerts","filterData","imAlertsConfig","newTransactionConfig","imStatisticsConfig","cloManagerAnalyticsAlertsConfig","cloManagerImAlertsConfig","cloManagerApAlertsConfig","_cloManagerAnalyticsAlert","_cloManagerAnalyticsAlertsConfig","manageEmailPreferences","editCloManagersPreferences","amrPipelineCommon","IssuanceMonitorFullAccess","BwicMonitorAlerts","InventoryAlerts","cloManagerBwicAlert","cloManagerDealerInventoryAlert","UserConfigType","imAlertConfig","alertOption","newTransactionAlertConfig","weeklyStatsAlertConfig","emailOption","cloManagerIssuanceMonitorAlert","cloManagerArrangerPipelineAlert","ImFilter","imAlert","newPublishedTransactionAlert","weeklyStatsEmail","AlertOption","Never","saveSuccess","getInitialDataRequest","saveFailure","editArrangerPipelinePreferences","apAlertOption","apConfig","hasAllFeatures","apAlertConfig","arrangerPipelineAlert","editBanksPreferences","withAnalyticsAccess","withDiAccess","withImApAccess","bankAnalyticsAlerts","bankAnalyticsConfig","bankDiAlerts","bankDiAlertsConfig","bankImAlerts","bankApAlerts","bankImAlertsConfig","bankApAlertsConfig","hasBankAnalyticsAlertsChangeAccess","bankImApRequiredFeatures","bankAnalyticsAlert","bankDealerInventoryAlert","bankIssuanceMonitorAlert","bankArrangerPipelineAlert","initialPreferences","editPreferences","emailPreferences","isPortfolioBwicAlertChanged","isPortfolioInventoryAlertChanged","isOutOfRiPeriodAlertChanged","isOutOfNcPeriodAlertChanged","isPortfolioCleansingNoticeAlertChanged","isPortfolioIssuanceMonitorAlertChanged","isPortfolioRollerDeadlineAlertChanged","bwicAlertEnabled","inventoryAlertEnabled","saveEmailPreferencesSuccess","portfolioBwicAlertState","portfolioDealersInventoryAlertState","portfolioOutOfRiPeriodAlertState","portfolioOutOfNcPeriodAlertState","portfolioCleansingNoticeAlertState","portfolioIssuanceMonitorAlertState","portfolioRollerDeadlineAlertState","AlertEnabledState","Enabled","saveEmailPreferencesFailure","bwicByRating","bwicByRatingAlertState","ratingPreference","saveBwicByRatingPreferencesSuccess","saveBwicByRatingPreferencesFailure","saveRequest","saveArrangerPipelineRequest","saveBanksRequest","saveBwicByRatingPreferencesRequest","saveEmailPreferencesRequest","watchGetTradeLimits","watchUpdateTradeLimits","watchSellerAdminLimit","limits","sellerAdminLimitActions","getTradeLimitsSuccess","tradingLimits","TradingLimitType","SellMaxBondSize","EUR","SellMaxDailyTradesSize","BuyMaxBondSize","BuyMaxDailyTradesSize","updateTradeLimitsSuccess","updateTradeLimitsFailure","getTradeLimitsRequest","updateTradeLimitsRequest","watchGetUserListRequest","watchSaveUser","watchSaveUserRequest","watchEnableUserRequest","watchDisableUserRequest","handleUserRequestChangeError","watchEnableUser","watchDisableUser","watchExportUsersRequest","watchSellerAdminUsers","sellerAdminUsersActions","getUserListSuccess","getUserListFailure","newUser","setUserUpdateState","sellerAdminUsers","userSaved","_action$payload2","requestUser","setUserRequestUpdateState","userRequestSaved","_action$payload3","userRequest","setUserRequestOperationState","userRequestEnabled","_action$payload4","userRequestDisabled","notificationAddErrorMessageModal","setUserOperationState","setUserEnabled","_action$payload5","setUserDisable","exportUsersResponse","getUserListRequest","saveUserRequest","enableUserRequest","disableUserRequest","exportUsersRequest","watchApprove","watchBlock","watchUnblock","handleRequestError","watchDeleteUserRequest","watchGetPendingUserRequestCount","watchUserRequestAdmin","userRequestAdminActions","setOperationState","userRequestApproved","blockedUserRequest","userRequestBlocked","unblockedUserRequest","userRequestUnblocked","userRequestDeleted","setPendingUserRequestCount","block","unblock","getPendingUserRequestCount","watchSubmit","watchSignup","signupActions","submitSuccess","signUpConfirm","notificationAddErrorMessage","submitError","watchAdd","watchPriceTalks","priceTalksActions","addPriceTalk","priceTalk","PUSH_DATA_NEW_PX_TALK","watchSettlementAccount","accounts","settlementAccountActions","watchTradeAllocationRequest","watchTradeAllocation","allocation","tradeAllocationActions","watchTradeAllocationTemplate","tradeAllocationTemplateActions","manageTokensService","apis","wathRequestTokens","watchGenerateToken","watchUpdateToken","watchRevokeToken","watchRequestCompanies","watchManageTokens","tokens","manageTokenActions","setTokenRequestStatus","storeTokens","setGenerateRequestStatus","storeGeneratedToken","setUpdateTokenRequestStatus","tokenId","tokenUpdated","setRevokeTokenRequestStatus","tokenRevoked","allCompanies","setCompanyRequestStatus","companiesService","storeCompanies","requestTokens","requestCompanies","generate","update","revoke","watchConfirmRequest","watchDownloadFileRequest","watchPortfolioAgreementDisclaimer","portfolioAgreementDisclaimerActions","hide","confirmSuccess","confirmFailure","downloadFileSuccess","downloadFileFailure","confirmRequest","downloadFileRequest","fetchMarketingEvents","watchFetchTotalNewsCount","watchFetchMarketingEventRequest","watchFetchNewsRequest","watchDeleteNews","watchDeleteSingleNews","watchFetchNews","watchLogUserActivity","watchDownloadDocument","watchDownloadDocuments","watchNews","ReleaseItemTypeGroups","ReleaseItemType","NewFeature","Improvement","convertReleaseItem","releaseItem","releaseItemType","description","MarketingEventType","Release","link","imageReferenceName","convertWebinar","webinar","Webinar","linkName","speakerTitle","speakerName","convertConference","conference","Conference","composeEventsList","releases","conferences","releaseItems","compact","flatMap","_x$releaseItems","orderedReleaseItems","itemType","_orderedReleaseItems","_orderedReleaseItems2","firstReleaseItem","secondReleaseItem","_yield$all3","_yield$all4","totalNewsAll","totalNewsPrimary","totalNewsSecondary","totalNewsResearch","NewsCategory","Primary","Secondary","Research","newsActions","fetchTotalNewsCountResponse","NewsTabCategory","All","events","fetchMarketingEventsResponse","news","_s$news$news$action$p","tab","get","NewsTabToCategory","newsOnPage","fetchNewsResponse","resetNewsList","fetchNewsRequest","fetchTotalNewsCountRequest","newsUrl","fetchNewsDetailsResponse","fileName","newsItem","newsDateTime","dateFormat","fetchMarketingEventsRequest","fetchNewsDetails","deleteSingleNews","watchMain","fork","watchBlotter","watchDashboard","watchBwicLog","watchClientCompanies","watchEmailPreferences","watchChangeSubscription","watchContactSales","watchBidOnBehalf","watchApiOperation","watchFavoriteBrokerDealers","watchBdInventory","watchInventory","watchClearingBank","watchBlastMessage","watchCompanyDetails","watchDealerListPanel","watchAddToPortfolio","watchBrokerDealerUserList","watchBrokerDealerContactList","watchDealerList","watchBrokerDealerList","watchDirectBiddingDisclaimer","watchBrokerDealerBidding","watchImUserConfig","watchAdminInventoryEdit","watchInventoryEdit","watchAssetManager","watchAwaitingTrades","watchTransactionHistory","watchAmrPipelineCommon","watchRejectedTrades","watchHelpResources","watchAmrTransactionAnalytics","watchArrangerPipelineSaga","watchCloManagers","watchAddress","watchAllBwics","watchFilter","watchEditNews","watchBanks","watchCompanyMembers","watchDeals","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","sagaMiddleware","createSagaMiddleware","createStore","createRootReducer","applyMiddleware","thunk","run","amrPipelineService","getTransactionsList","getTransactionClasses","includeTransaction","getTransactionClassesNames","getTransaction","getTransactionHistory","classesOnly","getLatestTransactions","getLatestTransactionsByTicker","getPortfolio","getDocuments","getCollateralQualityTest","getAmrDocuments","registerUser","userEmail","publicPhone","companyLegalName","companyCountryThreeCharsCode","companyCityName","city","companyAddress","address","companyZipCode","zipCode","getIntexFile","successHandler","getManagerPresentationFile","getDisclosureFile","getTransactionDocument","getTransactionDocuments","exportPortfolio","exportTransactionsClasses","dealSortCriteria","trasactionClassSortCriteria","orderByTransaction","orderByTransactionClass","getCurrency","res","getSyndicateContactsByArranger","getIOIs","submitIOIs","iois","readIOIsByUser","ioiReferenceNames","exportIOIs","excludeDeleted","getTransactionClassesSummary","getTransactionsSummary","transactionFilterOptions","statsToCalculate","downloadIntexFile","logTabAccess","tabAccessType","getDocumentsDownloads","getDaysInTheMarket","getTransactionViewHistory","getTransactionVersions","downloadStatisticDocument","documentLink","DownloadedDocumentAccessType","DownloadAllDocuments","DownloadOneDocument","DownloadIntexFile","DownloadManagerPresentationFile","DownloadDisclosureFile","shareTransactionToClients","logImUserActivity","getSharedClients","requestDemo","updateArrangerClient","logAccessToSharedTransaction","getBankTransactions","getDealComparableMetrics","RequestCancellationController","unionRoutes","_abortControllers","Map","_unionRoutes","_previousLocation","listen","nextLocation","path","_this$_previousLocati","_this$_previousLocati2","matchPath","exact","customKey","has","set","AbortController","controller","delete","this","manageCompanies","manageCompanyMembers","transactionDetail","manageCloManager","pageConfigService","getConfigs","saveConfig","pageConfigType","getDefaultConfigs","saveFilters","bwicDealsService","getDealSecurityStatistics","dealTickers","downloadDealSecurityDocuments","portfolioReferenceName","deletePortfolio","createPortfolio","createNewPortfolio","notifyUser","renamePortfolio","savePositions","saveSecurityPosition","exportPortfolios","updatePortfoliosAlert","portfolioExist","contactSalesService","baseUrl","query","isArray","addSingle","addArray","getAccessState","requestAccess","submitBids","bidAttributes","sendQuickFeedback","feedbackType","sendOnBehalfQuickFeedback","saveTargetLevel","targetLevel","trade","affirm","affirmModels","rejectModel","checkAwaitingTrades","sendBidRequest","requestType","getLiveBiddingData","trackingService","trackAction","eventName","bwicChangedFlagSelector","isInitializing","activeStep","submitted","timeZones","hasBwicPositions","daysToSettle","nextBusinessDay","goodUntil","hasPositions","newBWICSteps","daysToSettleDefault","timestampFromUtcString","bidDueDefaultTimestamp","goodUntilDefaultTimestamp","getBrokerDealers","getBrokerDealer","getActiveAssetManagers","getCompany","getCompanyDomains","getCompanyMembers","getCurrentUserCompany","postCompanyApprove","postCompanyReject","rejectReason","changeCompanyStatus","companySaveModel","setMemberOfacStatus","memberId","setCompanyOfacStatus","getBwicParticipants","sendDistributionListInvite","sendHeadOfTrdingInvite","addToFavorites","deleteFromFavorites","exportCompanies","regByFrom","regByTo","salesRepresentativeIds","regByIds","getClearingBankBwicParticipants"],"sourceRoot":""}