{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA;AAGA;AACA;AACA;AACA;;;AAEM,SAAUM,cAAV,OAA6C;AAAA,MAAlBC,QAAkB,QAAlBA,QAAkB;AAAA,MAARC,MAAQ,QAARA,MAAQ;AACjD;AACAA,QAAM,CAACC,QAAP,CAAgB,CAAC,QAAD,CAAhB;AACD;AACD,IAAMC,MAAM,GAAW,CACrB;AAAEC,MAAI,EAAE,EAAR;AAAYC,aAAW,EAAE,CAACT,0DAAD,CAAzB;AAAsCU,cAAY,EAAE;AAAA,WAAM,sKAAmCC,IAAnC,CAAwC,WAAC;AAAA,aAAIC,CAAC,CAACC,UAAN;AAAA,KAAzC,CAAN;AAAA;AAApD,CADqB,EAErB;AAAEL,MAAI,EAAE,aAAR;AAAuBM,WAAS,EAAEZ,4FAAlC;AAAwDO,aAAW,EAAE,CAACT,0DAAD;AAArE,CAFqB,EAGrB;AAAEQ,MAAI,EAAE,cAAR;AAAwBM,WAAS,EAAEf,6FAAqBA;AAAxD,CAHqB,EAIrB;AAAES,MAAI,EAAE,sBAAR;AAAgCM,WAAS,EAAEb,+HAA2BA;AAAtE,CAJqB,EAKrB;AAAEO,MAAI,EAAE,IAAR;AAAcO,YAAU,EAAE,EAA1B;AAA8BC,WAAS,EAAE;AAAzC,CALqB,CAAvB;AAYO,IAAMC,gBAAb;AAAA;AAAA;;;mBAAaA;AAAgB;;;QAAhBA;;;YAHF,CAACpB,iEAAA,CAAqBU,MAArB,EAA6B;AAAEY,sBAAkB,EAAErB,8DAAtB;AAAyCsB,0BAAsB,EAAE;AAAjE,GAA7B,CAAD,GACCvB,yDAAYA;;;;sHAEXoB,kBAAgB;AAAAI,cAAAA,yDAAAA;AAAAC,cAFjBzB,yDAEiB;AAAA;AAFL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBxB;AAIA;AAEA;AAEA;AACA;AACA;;;;;;;;;AAKA;;AAOO,IAAMmC,YAAb;AAKE,wBACUC,WADV,EAEU5B,MAFV,EAGU6B,SAHV,EAIUC,gBAJV,EAKUC,WALV,EAMUC,oBANV,EAOUC,WAPV,EAQUC,WARV,EAQyC;AAAA;;AAAA;;AAP/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZV,iBAAQ,qBAAR;AAEiB,wBAAe,IAAIV,yCAAJ,EAAf;AAcf,SAAKW,eAAL,GAAuBd,0EAAvB,CAJuC,CAKvC;;AACA,QAAI,KAAKe,cAAL,CAAoB,KAAKP,SAAL,CAAeQ,eAAf,CAA+BC,UAAnD,CAAJ,EAAoE;AAClEnB,MAAAA,8EAAA,CAAsB,KAAKU,SAAL,CAAeQ,eAAf,CAA+BG,YAArD,EAAmE,CACjE,QADiE,EAEjE,YAFiE,EAGjE,UAHiE,EAIjE,YAJiE,EAKjE,YALiE,EAMjE,UANiE,CAAnE;AAQA,WAAKxC,MAAL,CAAYyC,MAAZ,CAAmBC,SAAnB,CAA6B,eAAK,EAAG;AACnC,YAAIC,KAAK,YAAYzB,2DAArB,EAAoC;AAClC,cAAI0B,YAAY,CAACC,OAAb,CAAqB,QAArB,CAAJ,EAAoC;AAClC,iBAAI,CAACd,WAAL,CAAiBe,iBAAjB,CAAmCC,IAAnC,CAAwC,IAAxC;;AACA5B,YAAAA,0FAAA,CAAkC,WAAlC,EAA+C;AAC7C8B,wBAAU,EAAEN,KAAK,CAACO,iBAD2B;AAE7CC,2BAAa,EAAER,KAAK,CAACO,iBAFwB;AAG7CE,oBAAM,EAAER,YAAY,CAACC,OAAb,CAAqB,QAArB,CAHqC;AAI7CQ,sBAAQ,EAAEV,KAAK,CAACO,iBAJ6B;AAK7CI,uBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB;AALkC,aAA/C;AAOD,WATD,MASO;AACL,gBAAMU,aAAa,GAAG,KAAI,CAACpB,eAAL,CAAqBb,MAArB,CAA4B,cAAI;AAAA,qBAAIkC,IAAI,KAAKb,KAAK,CAACO,iBAAnB;AAAA,aAAhC,CAAtB;;AACA,gBAAIK,aAAa,CAACE,MAAlB,EAA0B;AACxB;AACD,aAFD,MAEO;AACLtC,cAAAA,0FAAA,CAAkC,WAAlC,EAA+C;AAC7C8B,0BAAU,EAAEN,KAAK,CAACO,iBAD2B;AAE7CC,6BAAa,EAAER,KAAK,CAACO,iBAFwB;AAG7CG,wBAAQ,EAAEV,KAAK,CAACO,iBAH6B;AAI7CI,yBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB;AAJkC,eAA/C;AAMD;AACF;AACF;AACF,OAzBD;AA0BD,KAzCsC,CA2CvC;;;AACA,QAAI,KAAKT,cAAL,CAAoB,KAAKP,SAAL,CAAe,QAAf,EAAyBS,UAA7C,CAAJ,EAA8D;AAC5DlB,MAAAA,yEAAA,CAAiB,KAAKS,SAAL,CAAe,QAAf,EAAyBW,YAA1C;AACD;AACF;;AA5DH;AAAA;AAAA,WA8DE,oBAAQ;AACN;AAEA,UAAMmB,QAAQ,GAAGC,SAAS,CAACC,SAAV,CAAoBC,OAApB,CAA4B,KAA5B,MAAuC,CAAC,CAAxC,IAA6C,SAASC,IAAT,CAAcH,SAAS,CAACC,SAAxB,CAA7C,IAAmF,aAAaE,IAAb,CAAkBH,SAAS,CAACI,MAA5B,CAApG;;AACA,UAAIL,QAAQ,IAAIM,MAAM,CAACC,UAAP,GAAoB,IAApC,EAA0C;AACxC,aAAKtC,WAAL,CAAiBuC,0BAAjB;AACD;;AACD,UAAI,CAACR,QAAL,EAAe;AACb,aAAK/B,WAAL,CAAiBwC,uBAAjB;AACD;;AAED,WAAKC,cAAL;AACD;AA1EH;AAAA;AAAA,WA4EE,0BAAc;AAAA;;AAEZ,WAAKrC,oBAAL,CAA0BsC,YAA1B,CACGC,IADH,CAEIjD,uDAAM,CAAC,UAACkD,GAAD;AAAA,eAAuBA,GAAG,CAACC,SAAJ,KAAkBhD,yEAAlB,IAA6C+C,GAAG,CAACC,SAAJ,KAAkBhD,uFAAtF;AAAA,OAAD,CAFV,EAGIF,0DAAS,CAAC,KAAKqD,YAAN,CAHb,EAIGlC,SAJH,CAIa,UAACmC,MAAD,EAAyB;AAClC,YAAMC,OAAO,GAAGD,MAAM,CAACC,OAAvB;;AACA,YAAIA,OAAO,CAACC,OAAZ,EAAqB;AACnB,cAAIC,gBAAgB,GAAG,EAAvB;;AACA,cAAIpC,YAAY,CAACC,OAAb,CAAqB,WAArB,MAAsC,IAAtC,IAA8CD,YAAY,CAACC,OAAb,CAAqB,WAArB,MAAsCoC,SAAxF,EAAmG;AACjGD,4BAAgB,GAAGpC,YAAY,CAACC,OAAb,CAAqB,WAArB,CAAnB;AACD;;AAED,cAAIqC,gBAAgB,GAAGJ,OAAO,CAACC,OAAR,CAAgBI,QAAvC;AACAvC,sBAAY,CAACwC,OAAb,CAAqB,WAArB,EAAkCN,OAAO,CAACC,OAAR,CAAgBI,QAAlD;AACAvC,sBAAY,CAACwC,OAAb,CAAqB,aAArB,EAAoCC,IAAI,CAACC,SAAL,CAAe;AACjD,yBAAaR,OAAO,CAACC,OAAR,CAAgBQ,IADoB;AAEjD,wBAAY,EAFqC;AAGjD,qBAAST,OAAO,CAACC,OAAR,CAAgBI,QAHwB;AAIjD,qBAASL,OAAO,CAACC,OAAR,CAAgBI;AAJwB,WAAf,CAApC;AAQA,cAAIK,mBAAmB,GAAG,IAAIC,IAAJ,GAAWC,OAAX,EAA1B;;AACA,cAAI9C,YAAY,CAACC,OAAb,CAAqB,eAArB,MAA0C,IAA1C,IAAkDD,YAAY,CAACC,OAAb,CAAqB,eAArB,MAA0CoC,SAAhG,EAA2G;AACzG,gBAAIC,gBAAgB,KAAKF,gBAAzB,EAA2C;AACzC,kBAAIW,yBAAyB,GAAGC,QAAQ,CAAChD,YAAY,CAACC,OAAb,CAAqB,eAArB,CAAD,CAAxC;;AACA,kBAAK2C,mBAAmB,GAAGG,yBAAvB,GAAoD,IAAxD,EAA8D;AAC5D,sBAAI,CAACE,cAAL;AACD;AACF,aALD,MAKO;AACL,oBAAI,CAACA,cAAL;AACD;;AACDjD,wBAAY,CAACwC,OAAb,CAAqB,eAArB,EAAsCI,mBAAmB,CAACM,QAApB,EAAtC;AACD,WAVD,MAUO;AACL,kBAAI,CAACD,cAAL;;AACAjD,wBAAY,CAACwC,OAAb,CAAqB,eAArB,EAAsCI,mBAAmB,CAACM,QAApB,EAAtC;AACD;;AACD,gBAAI,CAAC/D,WAAL,CAAiBgE,cAAjB,CAAgChD,IAAhC,CAAqC,IAArC;AACD;;AACD,cAAI,CAACd,WAAL,CAAiB+D,QAAjB,CAA0BC,gBAA1B,CAA2CnB,OAAO,CAACC,OAAnD;AACD,OAxCH;AA0CA,WAAK/C,oBAAL,CAA0BkE,WAA1B,CACG3B,IADH,CAEIjD,uDAAM,CAAC,UAAC6E,MAAD;AAAA,eAA+BA,MAAM,KAAKzE,wEAA1C;AAAA,OAAD,CAFV,EAIGgB,SAJH,CAIa,YAAK;AACd,cAAI,CAAC2D,wBAAL;AACD,OANH;AAOD;AA/HH;AAAA;AAAA,WAiIE,oCAAwB;AACtB;;;;;AAKA,UAAIC,aAAa,GAAG,KAAKrE,WAAL,CAAiB+D,QAAjB,CAA0BO,gBAA1B,EAApB;;AACA,UAAI,CAACD,aAAD,IAAkB,KAAKrE,WAAL,CAAiB+D,QAAjB,CAA0BQ,cAA1B,GAA2C/C,MAA3C,GAAoD,CAA1E,EAA6E;AAC3E,YAAIgD,QAAQ,GAAG,KAAKxE,WAAL,CAAiB+D,QAAjB,CAA0BQ,cAA1B,EAAf;AACA,aAAKvE,WAAL,CAAiB+D,QAAjB,CAA0BC,gBAA1B,CAA2CQ,QAAQ,CAAC,CAAD,CAAnD;AACD;AACF;AA5IH;AAAA;AAAA,WA8IE,wBAAeC,KAAf,EAAoB;AAClB,UAAIA,KAAJ,EAAW;AACT,eAAOA,KAAK,CAACZ,QAAN,GAAiBa,WAAjB,OAAmC,MAA1C;AACD,OAFD,MAEO;AACL,eAAO,KAAP;AACD;AACF;AApJH;AAAA;AAAA,WAsJE,0BAAc;AACZ,UAAIC,KAAK,GAAGhE,YAAY,CAACC,OAAb,CAAqB,WAArB,CAAZ;AACA,WAAKX,WAAL,CAAiB2E,2BAAjB,CAA6CD,KAA7C;AACAhE,kBAAY,CAACwC,OAAb,CAAqB,UAArB,EAAiC,MAAjC;AACA,WAAKlD,WAAL,CAAiB4E,WAAjB,CAA6B,OAA7B,EAAsC,QAAtC;AACA,aAAO,IAAP;AACD;AA5JH;;AAAA;AAAA;;;mBAAanF,cAAYoF,gEAAAA,CAAAA,4EAAAA,GAAAA,gEAAAA,CAAAA,oDAAAA,GAAAA,gEAAAA,CAAAA,kDAAAA,GAAAA,gEAAAA,CAAAA,gFAAAA,GAAAA,gEAAAA,CAAAA,2EAAAA,GAAAA,gEAAAA,CAAAA,sEAAAA,GAAAA,gEAAAA,CAAAA,6DAAAA,GAAAA,gEAAAA,CAAAA,qFAAAA;AAAA;;;QAAZpF;AAAYqF;AAAAC;AAAAC;AAAAC;AAAA;ACtBzBJ,MAAAA,wDAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDA;AAEO,IAAMK,SAAb;AAAA;AAAA;AASO,IAAMC,UAAb;AAAA;AAAA;AAIO,IAAMlG,eAAb;AAAA;AAAA;AAMO,IAAMmG,SAAb;AAAA;AAAA;AAOO,IAAMC,YAAb;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAWA;AACA;AAEA;;;AAEA,IAAIqB,UAAJ;AAEM,SAAUC,mBAAV,GAA6B;AACjC,SAAO,IAAIX,yEAAJ,CAA4BU,UAAU,CAACE,UAAvC,CAAP;AACD;AAEK,SAAUC,4BAAV,GAAsC;AAC1C,MAAMC,oBAAoB,GAAG,IAAIC,GAAJ,EAA7B;AAEAD,sBAAoB,CAACE,GAArB,CAAyBN,UAAU,CAACO,kBAAX,CAA8BC,GAA9B,CAAkCC,QAA3D,EAAqET,UAAU,CAACO,kBAAX,CAA8BC,GAA9B,CAAkCE,MAAvG;AAEA,SAAO;AACLC,mBAAe,EAAEpB,0EADZ;AAELa,wBAAoB,EAApBA;AAFK,GAAP;AAID;AAEK,SAAUS,sBAAV,GAAgC;AACpC,SAAO;AACLF,mBAAe,EAAEpB,0EADZ;AAELuB,eAAW,EAAEd,UAAU,CAACe;AAFnB,GAAP;AAID;AAsCM,IAAMC,SAAb,mKACE,mBAAoBC,iBAApB,EAAiD;AAAA;;AAA7B;AAClBjB,YAAU,GAAGiB,iBAAb;AACD,CAHH;;;mBAAaD,WAAS7C,uDAAAA,CAAAA,8DAAAA;AAAA;;;QAAT6C;AAASE,cAFRnI,wDAEQ;;;aAjCT,CACT;AACEoI,WAAO,EAAErC,oEADX;AAEEsC,YAAQ,EAAE5B,iEAFZ;AAGE6B,SAAK,EAAE;AAHT,GADS,EAMT;AACEF,WAAO,EAAEvB,+DADX;AAEE0B,cAAU,EAAErB;AAFd,GANS,EAUT;AACEkB,WAAO,EAAExB,mEADX;AAEE2B,cAAU,EAAET;AAFd,GAVS,EAcT;AACEM,WAAO,EAAEtB,yEADX;AAEEyB,cAAU,EAAEnB;AAFd,GAdS,EAkBT;AACEgB,WAAO,EAAE9B,iFADX;AAEEkC,YAAQ,EAAE;AAAEC,iBAAW,EAAE;AAAf;AAFZ,GAlBS,EAsBT9B,6DAtBS,EAuBT3I,2DAvBS,EAwBTiI,gEAxBS,EAyBTS,sEAzBS,EA0BTR,qFA1BS,EA2BTa,8DA3BS,EA4BTZ,gFA5BS,EA6BTa,uFA7BS;AA8BV3H,YA/BQ,CAACwG,qEAAD,EAAgBG,mEAAhB,EAAkC/G,iEAAlC,EAAoD6G,0FAApD,EAA6EM,2EAA7E,EAAgGC,sEAAhG,CA+BR;;;;uHAGU4B,WAAS;AAAAS,mBAnCL1I,wDAmCK,EAnCSjC,6FAmCT,EAnCgCG,4FAmChC;AAnCoDmB,cAC9DwG,qEAD8D,EAC/CG,mEAD+C,EAC7B/G,iEAD6B,EACX6G,0FADW,EACcM,2EADd,EACiCC,sEADjC;AAmCpD;AAlCoG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClDhHjB,IAAAA,4DAAAA;AAA4CA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;;AAChEA,IAAAA,4DAAAA;AAA2CA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;;;;;;AAC3DA,IAAAA,4DAAAA;AACEA,IAAAA,oDAAAA;AAAsBA,IAAAA,uDAAAA;AACtBA,IAAAA,oDAAAA;AACFA,IAAAA,0DAAAA;;;;ACFH,IAAMlH,oBAAb;AAKE,gCAAoByK,cAApB,EAA4DC,KAA5D,EAA2FvK,MAA3F,EAAyG;AAAA;;AAAA;;AAArF;AAAwC;AAA+B;AAH3F,0BAAuD,YAAvD;AAIE,SAAKuK,KAAL,CAAWC,aAAX,CAAyB9H,SAAzB,CAAmC,gBAAM,EAAG;AAC1C,WAAI,CAAC+H,QAAL,GAAgBC,MAAM,CAACC,GAAP,CAAW,UAAX,CAAhB;AACA,WAAI,CAACC,MAAL,GAAcF,MAAM,CAACC,GAAP,CAAW,QAAX,CAAd;AACD,KAHD;AAID;;AAVH;AAAA;AAAA,WAYE,oBAAQ;AAAA;;AACN,WAAKL,cAAL,CAAoBO,wBAApB,CAA6C,KAAKJ,QAAlD,EAA4D,KAAKG,MAAjE,EAAyElI,SAAzE,CACE,aAAG,EAAG;AACJ,cAAI,CAACoI,cAAL,GAAsB,WAAtB;AACD,OAHH,EAIE,aAAG,EAAG;AACJ,cAAI,CAACA,cAAL,GAAsB,OAAtB;AACD,OANH;AAQD;AArBH;;AAAA;AAAA;;;mBAAajL,sBAAoBkH,+DAAAA,CAAAA,2FAAAA,GAAAA,+DAAAA,CAAAA,2DAAAA,GAAAA,+DAAAA,CAAAA,mDAAAA;AAAA;;;QAApBlH;AAAoBmH;AAAAC;AAAAC;AAAA6D;AAAA5D;AAAA;ADR7BJ,MAAAA,4DAAAA,cAA6C,CAA7C,EAA6C,KAA7C,EAA6C,CAA7C;AAEMA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAIFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;;;;AATOA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AENf;;;;AASO,IAAMrH,qBAAb;AACE,iCAAoBM,MAApB,EACUiC,WADV,EACkC;AAAA;;AADd;AACV;AAA6B;;AAFzC;AAAA;AAAA,WAIE,oBAAQ;AACNgJ,iBAAW,CAAC,cAAD,EAAiBD,4FAAjB,CAAX;AACD;AANH;AAAA;AAAA,WAQQ,kBAAM;;;;;;;AACV,uBAAM,KAAK/I,WAAL,CAAiBiJ,cAAjB,EAAN;;;AACA,qBAAKlL,MAAL,CAAYC,QAAZ,CAAqB,CAAC,QAAD,CAArB;;;;;;;;;AACD;AAXH;;AAAA;AAAA;;;mBAAaP,uBAAqBqH,+DAAAA,CAAAA,mDAAAA,GAAAA,+DAAAA,CAAAA,4DAAAA;AAAA;;;QAArBrH;AAAqBsH;AAAAC;AAAAC;AAAA6D;AAAA5D;AAAA;ACXlCJ,MAAAA,4DAAAA,cAAuB,CAAvB,EAAuB,KAAvB,EAAuB,CAAvB,EAAuB,CAAvB,EAAuB,KAAvB,EAAuB,CAAvB;AAGMA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA,WAAK,CAAL,EAAK,IAAL;AACMA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AAClBA,MAAAA,4DAAAA;AAAGA,MAAAA,oDAAAA;AAAuCA,MAAAA,uDAAAA;AACxCA,MAAAA,oDAAAA;AAAsCA,MAAAA,0DAAAA;AAEtCA,MAAAA,4DAAAA;AAAGA,MAAAA,oDAAAA;AAA8BA,MAAAA,uDAAAA;AAC/BA,MAAAA,oDAAAA;AAAuBA,MAAAA,0DAAAA;AAEvBA,MAAAA,4DAAAA,eAA4D,EAA5D,EAA4D,QAA5D,EAA4D,CAA5D;AACUA,MAAAA,wDAAAA;AAAA,eAASoE,YAAT;AAAiB,OAAjB;AAAmBpE,MAAAA,oDAAAA;AAAOA,MAAAA,0DAAAA;AAG1CA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;;;;;;;;;;;;;;;;;;;;;;;;;AClBJ;;;AAOO,IAAMsE,qBAAb;AACE,iCAA+CC,IAA/C,EAAkEC,QAAlE,EAAiH;AAAA;;AAAlE;AAAmB;AAAmD;;AADvH;AAAA;AAAA,WAGE,qBAAS;AACP,WAAKA,QAAL,CAAcC,iBAAd;AACD;AALH;;AAAA;AAAA;;;mBAAaH,uBAAqBtE,+DAAAA,CACZqE,2EADY,GACMrE,+DAAAA,CAAAA,uEAAAA;AAAA;;;QAD3BsE;AAAqBrE;AAAAC;AAAAC;AAAA6D;AAAA5D;AAAA;ACRlCJ,MAAAA,4DAAAA,cAAgC,CAAhC,EAAgC,GAAhC,EAAgC,CAAhC;AAEQA,MAAAA,uDAAAA;AACAA,MAAAA,oDAAAA;AACAA,MAAAA,4DAAAA;AAAmCA,MAAAA,wDAAAA;AAAA,eAASoE,eAAT;AAAoB,OAApB;AAC/BpE,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;;;;AAHAA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACFR;;;;AAaO,IAAM2E,6BAAb;AACE,yCAAmBC,SAAnB,EAA2GL,IAA3G,EAA8H;AAAA;;AAA3G;AAAwF;AAAuB;;AADpI;AAAA;AAAA,WAGE,wBAAenF,MAAf,EAAqB;AACnB,UAAIA,MAAM,KAAK,QAAf,EAAyB;AACvB,aAAKmF,IAAL,CAAUrJ,WAAV,CAAsB2J,QAAtB;AACA,aAAKD,SAAL,CAAeE,KAAf,GAFuB,CAGvB;AACD,OAJD,MAIO;AACL;AACA;AACA,aAAKF,SAAL,CAAeE,KAAf,GAHK,CAIL;AACD;AACF;AAdH;;AAAA;AAAA;;;mBAAaH,+BAA6B3E,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAC2C0E,qEAD3C;AAC0D;;;QADvFC;AAA6B1E;AAAAC;AAAAC;AAAA6D;AAAA5D;AAAA;ACd1CJ,MAAAA,4DAAAA,cAAkC,CAAlC,EAAkC,oBAAlC,EAAkC,CAAlC,EAAkC,CAAlC,EAAkC,GAAlC;AAEWA,MAAAA,oDAAAA;AAA0BA,MAAAA,0DAAAA;AAC7BA,MAAAA,4DAAAA;AAAGA,MAAAA,oDAAAA;AAAuCA,MAAAA,0DAAAA;AAG9CA,MAAAA,4DAAAA,6BAAmF,CAAnF,EAAmF,QAAnF,EAAmF,CAAnF;AACuBA,MAAAA,wDAAAA;AAAA,eAASoE,mBAAe,QAAf,CAAT;AAAiC,OAAjC;AAAmCpE,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAC5DA,MAAAA,4DAAAA;AAAkDA,MAAAA,wDAAAA;AAAA,eAASoE,mBAAe,IAAf,CAAT;AAA6B,OAA7B;AAA+CpE,MAAAA,oDAAAA;AAAEA,MAAAA,0DAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDpG,IAAMnH,2BAAb;AAEE;AAAA;;AACA,4BAAmB,EAAnB;AADiB;;AAFnB;AAAA;AAAA,WAIE,oBAAQ;AACNkM,aAAO,CAACC,GAAR,CAAY,EAAZ;AACD;AANH;;AAAA;AAAA;;;mBAAanM;AAA2B;;;QAA3BA;AAA2BoH;AAAAC;AAAAC;AAAA6D;AAAA5D;AAAA;ACPxCJ,MAAAA,4DAAAA,cAA4B,CAA5B,EAA4B,KAA5B,EAA4B,CAA5B,EAA4B,CAA5B,EAA4B,KAA5B,EAA4B,CAA5B,EAA4B,CAA5B,EAA4B,KAA5B;AAIgBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA,cAAkB,CAAlB,EAAkB,IAAlB,EAAkB,CAAlB;AACqBA,MAAAA,oDAAAA;AAAoCA,MAAAA,0DAAAA;AACrDA,MAAAA,4DAAAA,aAAuB,CAAvB,EAAuB,IAAvB,EAAuB,CAAvB;AAC0BA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,cAAuB,EAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,EAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAW+DA,MAAAA,0DAAAA;AAEtEA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAEWA,MAAAA,0DAAAA;AAElBA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAAuCA,MAAAA,0DAAAA;AAItDA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,cAAuB,EAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,EAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAOUA,MAAAA,0DAAAA;AAEjBA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAEMA,MAAAA,0DAAAA;AAEbA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAC6CA,MAAAA,0DAAAA;AAEpDA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAMwEA,MAAAA,0DAAAA;AAIvFA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,cAAuB,EAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,EAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAWoBA,MAAAA,0DAAAA;AAE3BA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAIuBA,MAAAA,0DAAAA;AAE9BA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAC4DA,MAAAA,0DAAAA;AAI3EA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,cAAuB,EAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,EAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAUMA,MAAAA,0DAAAA;AAEbA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAKsDA,MAAAA,0DAAAA;AAE7DA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAW6BA,MAAAA,0DAAAA;AAEpCA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAgBUA,MAAAA,0DAAAA;AAEjBA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAKiDA,MAAAA,0DAAAA;AAIhEA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,cAAuB,EAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,EAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAGaA,MAAAA,0DAAAA;AAI5BA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,cAAuB,EAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,EAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAG0CA,MAAAA,0DAAAA;AAEjDA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAA+DA,MAAAA,0DAAAA;AAEtEA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AACHA,MAAAA,0DAAAA;AAEJA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AACHA,MAAAA,0DAAAA;AAEJA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAEHA,MAAAA,0DAAAA;AAEJA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAEHA,MAAAA,0DAAAA;AAEJA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAEHA,MAAAA,0DAAAA;AAEJA,MAAAA,4DAAAA,cAA4B,EAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAKHA,MAAAA,0DAAAA;AAEJA,MAAAA,4DAAAA,cAA4B,GAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAGHA,MAAAA,0DAAAA;AAEJA,MAAAA,4DAAAA,eAA4B,GAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAMHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAGHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAQHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAYHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAAHA,MAAAA,0DAAAA;AAOJA,MAAAA,4DAAAA,eAA4B,GAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAAHA,MAAAA,0DAAAA;AAUJA,MAAAA,4DAAAA,eAA4B,GAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAUHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAEHA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAG4DA,MAAAA,0DAAAA;AAEnEA,MAAAA,4DAAAA,eAA4B,GAA5B,EAA4B,GAA5B;AACOA,MAAAA,oDAAAA;AAGoCA,MAAAA,0DAAAA;AAM3DA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AACHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAAHA,MAAAA,0DAAAA;AAGJA,MAAAA,4DAAAA,eAA4B,GAA5B,EAA4B,GAA5B;AAEQA,MAAAA,oDAAAA;AAKJA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAMHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAOHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAQHA,MAAAA,0DAAAA;AAIZA,MAAAA,4DAAAA;AAAsBA,MAAAA,oDAAAA;AAClBA,MAAAA,4DAAAA,eAAuB,GAAvB,EAAuB,IAAvB,EAAuB,CAAvB,EAAuB,GAAvB,EAAuB,GAAvB;AAEWA,MAAAA,oDAAAA;AAAHA,MAAAA,0DAAAA;AASJA,MAAAA,4DAAAA,eAA4B,GAA5B,EAA4B,GAA5B;AAEQA,MAAAA,oDAAAA;AAKJA,MAAAA,0DAAAA;AAQ5BA,MAAAA,4DAAAA,oBAA6B,GAA7B,EAA6B,KAA7B,EAA6B,EAA7B,EAA6B,GAA7B,EAA6B,KAA7B,EAA6B,EAA7B,EAA6B,GAA7B,EAA6B,KAA7B,EAA6B,EAA7B,EAA6B,GAA7B,EAA6B,MAA7B;AAG6CA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AAC/CA,MAAAA,4DAAAA,iBAA4B,GAA5B,EAA4B,IAA5B,EAA4B,EAA5B,EAA4B,GAA5B,EAA4B,IAA5B,EAA4B,EAA5B,EAA4B,GAA5B,EAA4B,GAA5B,EAA4B,EAA5B;AAG4EA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AAEjFA,MAAAA,4DAAAA,gBAAkC,GAAlC,EAAkC,GAAlC,EAAkC,EAAlC;AACiEA,MAAAA,oDAAAA;AAAIA,MAAAA,0DAAAA;AACrEA,MAAAA,4DAAAA,gBAAkC,GAAlC,EAAkC,GAAlC,EAAkC,EAAlC;AAC6DA,MAAAA,4DAAAA;AAAAA,MAAAA,4DAAAA;AAIjDA,MAAAA,uDAAAA;AAGJA,MAAAA,0DAAAA;;;;AAb6BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,eAAAA,6DAAAA;;;;;;;;;;;;;;;;;;;;;;;;;AClbtD,IAAMiF,aAAa,GACxB;;;;;qDADK;AAQA,IAAMC,cAAc,GAAG,qBAAvB,EAEP;;AACO,IAAM5K,UAAU,GAAG,CAAC,GAAD,CAAnB;AACA,IAAM6K,SAAS,GAAG,CACvB;AACE3G,MAAI,EAAE,qBADR;AAEElC,UAAQ,EAAE,mBAFZ;AAGEkH,OAAK,EAAE;AAHT,CADuB,CAAlB;AAUA,IAAM4B,cAAc,GAAG,CAC5B;AAAEC,aAAW,EAAE,EAAf;AAAmB1F,OAAK,EAAE;AAA1B,CAD4B,EAE5B;AAAE0F,aAAW,EAAE,EAAf;AAAmB1F,OAAK,EAAE;AAA1B,CAF4B,EAG5B;AAAE0F,aAAW,EAAE,GAAf;AAAoB1F,OAAK,EAAE;AAA3B,CAH4B,CAAvB;AAMA,IAAMsE,qBAAqB,GAAG;AACnCqB,WAAS,EAAE;AACTC,UAAM,EAAE;AACN5F,WAAK,EAAE,GADD;AAEN6F,aAAO,EAAE;AACPC,cAAM,EAAE,IADD;AAEPC,kBAAU,EAAE;AAFL;AAFH,KADC;AAQTC,SAAK,EAAE;AACLhG,WAAK,EAAE;AADF,KARE;AAWTiG,SAAK,EAAE;AACLC,UAAI,EAAE,QADD;AAELC,YAAM,EAAE;AACNC,aAAK,EAAE,CADD;AAENJ,aAAK,EAAE;AAFD,OAFH;AAMLK,aAAO,EAAE;AACPC,gBAAQ,EAAE;AADH,OANJ;AASLC,WAAK,EAAE;AACLC,WAAG,EAAE,gBADA;AAELJ,aAAK,EAAE,GAFF;AAGLK,cAAM,EAAE;AAHH;AATF,KAXE;AA0BTC,WAAO,EAAE;AACP1G,WAAK,EAAE,GADA;AAEP2G,YAAM,EAAE,KAFD;AAGPC,UAAI,EAAE;AACJd,cAAM,EAAE,KADJ;AAEJe,aAAK,EAAE,CAFH;AAGJC,mBAAW,EAAE,GAHT;AAIJC,YAAI,EAAE;AAJF;AAHC,KA1BA;AAoCTC,QAAI,EAAE;AACJhH,WAAK,EAAE,CADH;AAEJ2G,YAAM,EAAE,IAFJ;AAGJC,UAAI,EAAE;AACJd,cAAM,EAAE,KADJ;AAEJe,aAAK,EAAE,EAFH;AAGJI,gBAAQ,EAAE,GAHN;AAIJF,YAAI,EAAE;AAJF;AAHF,KApCG;AA8CTG,eAAW,EAAE;AACXpB,YAAM,EAAE,IADG;AAEXqB,cAAQ,EAAE,GAFC;AAGXnB,WAAK,EAAE,SAHI;AAIXU,aAAO,EAAE,GAJE;AAKXN,WAAK,EAAE;AALI,KA9CJ;AAqDTgB,QAAI,EAAE;AACJtB,YAAM,EAAE,IADJ;AAEJe,WAAK,EAAE,CAFH;AAGJQ,eAAS,EAAE,MAHP;AAIJV,YAAM,EAAE,KAJJ;AAKJW,cAAQ,EAAE,KALN;AAMJC,cAAQ,EAAE,KANN;AAOJC,YAAM,EAAE,KAPJ;AAQJC,aAAO,EAAE;AACP3B,cAAM,EAAE,KADD;AAEP4B,eAAO,EAAE,GAFF;AAGPC,eAAO,EAAE;AAHF;AARL;AArDG,GADwB;AAqEnCC,eAAa,EAAE;AACbC,aAAS,EAAE,QADE;AAEb9L,UAAM,EAAE;AACN+L,aAAO,EAAE;AACPhC,cAAM,EAAE,KADD;AAEPiC,YAAI,EAAE;AAFC,OADH;AAKNC,aAAO,EAAE;AACPlC,cAAM,EAAE,KADD;AAEPiC,YAAI,EAAE;AAFC,OALH;AASNE,YAAM,EAAE;AATF,KAFK;AAabC,SAAK,EAAE;AACLC,UAAI,EAAE;AACJhB,gBAAQ,EAAE,GADN;AAEJD,mBAAW,EAAE;AACXR,iBAAO,EAAE;AADE;AAFT,OADD;AAOL0B,YAAM,EAAE;AACNjB,gBAAQ,EAAE,GADJ;AAENH,YAAI,EAAE,EAFA;AAGNqB,gBAAQ,EAAE,CAHJ;AAIN3B,eAAO,EAAE,CAJH;AAKNG,aAAK,EAAE;AALD,OAPH;AAcLyB,aAAO,EAAE;AACPnB,gBAAQ,EAAE,GADH;AAEPkB,gBAAQ,EAAE;AAFH,OAdJ;AAkBLE,UAAI,EAAE;AACJC,oBAAY,EAAE;AADV,OAlBD;AAqBLC,YAAM,EAAE;AACND,oBAAY,EAAE;AADR;AArBH;AAbM,GArEoB;AA4GnCE,eAAa,EAAE;AA5GoB,CAA9B;;;;;;;;;;;;;;;;;;;ACZA,IAAMC,cAAc,GAAqB,CAC9C;AACE9J,MAAI,EAAE,UADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,wBAAP;AAAiCpD,eAAW,EAAE,0BAA9C;AAA0EqD,kBAAc,EAAE,KAA1F;AAAiGC,eAAW,EAAE,KAA9G;AAAqH9C,QAAI,EAAE;AAA3H,GADK,EAEL;AAAE4C,OAAG,EAAE,kBAAP;AAA2BpD,eAAW,EAAE,mBAAxC;AAA6DqD,kBAAc,EAAE,IAA7E;AAAmFC,eAAW,EAAE,IAAhG;AAAsG9C,QAAI,EAAE;AAA5G,GAFK,EAGL;AACE4C,OAAG,EAAE,mBADP;AAEEG,aAAS,EAAE,UAFb;AAGEvD,eAAW,EAAE,UAHf;AAIEqD,kBAAc,EAAE,IAJlB;AAKEC,eAAW,EAAE,IALf;AAME9C,QAAI,EAAE;AANR,GAHK,EAWL;AAAE4C,OAAG,EAAE,UAAP;AAAmBpD,eAAW,EAAE,kBAAhC;AAAoDqD,kBAAc,EAAE,IAApE;AAA0EC,eAAW,EAAE,IAAvF;AAA6F9C,QAAI,EAAE;AAAnG,GAXK,EAYL;AAAE4C,OAAG,EAAE,UAAP;AAAmBpD,eAAW,EAAE,WAAhC;AAA6CqD,kBAAc,EAAE,IAA7D;AAAmEC,eAAW,EAAE,IAAhF;AAAsF9C,QAAI,EAAE;AAA5F,GAZK,EAaL;AAAE4C,OAAG,EAAE,YAAP;AAAqBpD,eAAW,EAAE,aAAlC;AAAiDqD,kBAAc,EAAE,IAAjE;AAAuEC,eAAW,EAAE,IAApF;AAA0F9C,QAAI,EAAE;AAAhG,GAbK,CAHT;AAkBEgD,OAAK,EAAE;AAlBT,CAD8C,EAqB9C;AACErK,MAAI,EAAE,gBADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,QAAP;AAAiBpD,eAAW,EAAE,eAA9B;AAA+CqD,kBAAc,EAAE,KAA/D;AAAsEC,eAAW,EAAE,KAAnF;AAA0F9C,QAAI,EAAE;AAAhG,GADK,EAEL;AAAE4C,OAAG,EAAE,SAAP;AAAkBpD,eAAW,EAAE,iBAA/B;AAAkDqD,kBAAc,EAAE,KAAlE;AAAyEC,eAAW,EAAE,KAAtF;AAA6F9C,QAAI,EAAE;AAAnG,GAFK,EAGL;AAAE4C,OAAG,EAAE,UAAP;AAAmBpD,eAAW,EAAE,8BAAhC;AAAgEqD,kBAAc,EAAE,KAAhF;AAAuFC,eAAW,EAAE,KAApG;AAA2G9C,QAAI,EAAE;AAAjH,GAHK,EAIL;AAAE4C,OAAG,EAAE,MAAP;AAAepD,eAAW,EAAE,8BAA5B;AAA4DqD,kBAAc,EAAE,KAA5E;AAAmFC,eAAW,EAAE,KAAhG;AAAuG9C,QAAI,EAAE;AAA7G,GAJK,EAKL;AAAE4C,OAAG,EAAE,SAAP;AAAkBpD,eAAW,EAAE,8BAA/B;AAA+DqD,kBAAc,EAAE,KAA/E;AAAsFC,eAAW,EAAE,KAAnG;AAA0G9C,QAAI,EAAE;AAAhH,GALK,EAML;AAAE4C,OAAG,EAAE,MAAP;AAAepD,eAAW,EAAE,8BAA5B;AAA4DqD,kBAAc,EAAE,KAA5E;AAAmFC,eAAW,EAAE,KAAhG;AAAuG9C,QAAI,EAAE;AAA7G,GANK,CAHT;AAYEgD,OAAK,EAAE;AAZT,CArB8C,EAmC9C;AACErK,MAAI,EAAE,8BADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACP;AAAEC,OAAG,EAAE,cAAP;AAAuBpD,eAAW,EAAE,mBAApC;AAAyDqD,kBAAc,EAAE,KAAzE;AAAgFC,eAAW,EAAE,KAA7F;AAAoG9C,QAAI,EAAE;AAA1G,GADO,EAEP;AAAE4C,OAAG,EAAE,eAAP;AAAwBpD,eAAW,EAAE,qBAArC;AAA4DqD,kBAAc,EAAE,KAA5E;AAAmFC,eAAW,EAAE,KAAhG;AAAuG9C,QAAI,EAAE;AAA7G,GAFO,EAGP;AAAE4C,OAAG,EAAE,gBAAP;AAAyBpD,eAAW,EAAE,kCAAtC;AAA0EqD,kBAAc,EAAE,KAA1F;AAAiGC,eAAW,EAAE,KAA9G;AAAqH9C,QAAI,EAAE;AAA3H,GAHO,EAIP;AAAE4C,OAAG,EAAE,YAAP;AAAqBpD,eAAW,EAAE,kCAAlC;AAAsEqD,kBAAc,EAAE,KAAtF;AAA6FC,eAAW,EAAE,KAA1G;AAAiH9C,QAAI,EAAE;AAAvH,GAJO,EAKP;AAAE4C,OAAG,EAAE,eAAP;AAAwBpD,eAAW,EAAE,kCAArC;AAAyEqD,kBAAc,EAAE,KAAzF;AAAgGC,eAAW,EAAE,KAA7G;AAAoH9C,QAAI,EAAE;AAA1H,GALO,EAMP;AAAE4C,OAAG,EAAE,YAAP;AAAqBpD,eAAW,EAAE,kCAAlC;AAAsEqD,kBAAc,EAAE,KAAtF;AAA6FC,eAAW,EAAE,KAA1G;AAAiH9C,QAAI,EAAE;AAAvH,GANO,CAHT;AAWEgD,OAAK,EAAE;AAXT,CAnC8C,EAgD9C;AACErK,MAAI,EAAE,6BADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACP;AAAEC,OAAG,EAAE,eAAP;AAAwBpD,eAAW,EAAE,SAArC;AAAgDqD,kBAAc,EAAE,KAAhE;AAAuEC,eAAW,EAAE,KAApF;AAA2F9C,QAAI,EAAE;AAAjG,GADO,EAEP;AAAE4C,OAAG,EAAE,eAAP;AAAwBpD,eAAW,EAAE,SAArC;AAAgDqD,kBAAc,EAAE,KAAhE;AAAuEC,eAAW,EAAE,KAApF;AAA2F9C,QAAI,EAAE;AAAjG,GAFO,EAGP;AAAE4C,OAAG,EAAE,eAAP;AAAwBpD,eAAW,EAAE,SAArC;AAAgDqD,kBAAc,EAAE,KAAhE;AAAuEC,eAAW,EAAE,KAApF;AAA2F9C,QAAI,EAAE;AAAjG,GAHO,CAHT;AAQEgD,OAAK,EAAE;AART,CAhD8C,EA0D9C;AACErK,MAAI,EAAE,UADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,SAAP;AAAkBpD,eAAW,EAAE,SAA/B;AAA0CqD,kBAAc,EAAE,KAA1D;AAAiEC,eAAW,EAAE,KAA9E;AAAqF9C,QAAI,EAAE;AAA3F,GADK,EAEL;AAAE4C,OAAG,EAAE,YAAP;AAAqBpD,eAAW,EAAE,aAAlC;AAAiDqD,kBAAc,EAAE,KAAjE;AAAwEC,eAAW,EAAE,KAArF;AAA4F9C,QAAI,EAAE;AAAlG,GAFK,CAHT;AAOEgD,OAAK,EAAE;AAPT,CA1D8C,EAqE9C;AACErK,MAAI,EAAE,UADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,mBAAP;AAA4BpD,eAAW,EAAE,gBAAzC;AAA2DqD,kBAAc,EAAE,KAA3E;AAAkFC,eAAW,EAAE,KAA/F;AAAsG9C,QAAI,EAAE;AAA5G,GADK,EAEL;AACE4C,OAAG,EAAE,sBADP;AAEEpD,eAAW,EAAE,oBAFf;AAGEqD,kBAAc,EAAE,KAHlB;AAIEC,eAAW,EAAE,KAJf;AAKE9C,QAAI,EAAE;AALR,GAFK,CAHT;AAaEgD,OAAK,EAAE;AAbT,CArE8C,EAoF9C;AACErK,MAAI,EAAE,UADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,gBAAP;AAAyBpD,eAAW,EAAE,iBAAtC;AAAyDqD,kBAAc,EAAE,KAAzE;AAAgFC,eAAW,EAAE,KAA7F;AAAoG9C,QAAI,EAAE;AAA1G,GADK,EAEL;AAAE4C,OAAG,EAAE,cAAP;AAAuBpD,eAAW,EAAE,eAApC;AAAqDqD,kBAAc,EAAE,KAArE;AAA4EC,eAAW,EAAE,KAAzF;AAAgG9C,QAAI,EAAE;AAAtG,GAFK,CAHT;AAOEgD,OAAK,EAAE;AAPT,CApF8C,EA6F9C;AACErK,MAAI,EAAE,mBADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,gBAAP;AAAyBpD,eAAW,EAAE,iBAAtC;AAAyDqD,kBAAc,EAAE,KAAzE;AAAgFI,wBAAoB,EAAE,IAAtG;AAA4GH,eAAW,EAAE,KAAzH;AAAgI9C,QAAI,EAAE;AAAtI,GADK,EAEL;AAAE4C,OAAG,EAAE,iBAAP;AAA0BpD,eAAW,EAAE,kBAAvC;AAA2DqD,kBAAc,EAAE,KAA3E;AAAkFI,wBAAoB,EAAE,IAAxG;AAA8GH,eAAW,EAAE,KAA3H;AAAkI9C,QAAI,EAAE;AAAxI,GAFK,EAGL;AAAE4C,OAAG,EAAE,eAAP;AAAwBpD,eAAW,EAAE,+BAArC;AAAsEqD,kBAAc,EAAE,KAAtF;AAA6FI,wBAAoB,EAAE,IAAnH;AAAyHH,eAAW,EAAE,KAAtI;AAA6I9C,QAAI,EAAE;AAAnJ,GAHK,CAHT;AAQEgD,OAAK,EAAE;AART,CA7F8C,EAuG9C;AACErK,MAAI,EAAE,QADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,eAAP;AAAwBpD,eAAW,EAAE,gBAArC;AAAuDqD,kBAAc,EAAE,KAAvE;AAA8EC,eAAW,EAAE,KAA3F;AAAkG9C,QAAI,EAAE;AAAxG,GADK,EAEL;AACE4C,OAAG,EAAE,kBADP;AAEEpD,eAAW,EAAE,oBAFf;AAGEqD,kBAAc,EAAE,KAHlB;AAIEC,eAAW,EAAE,KAJf;AAKE9C,QAAI,EAAE;AALR,GAFK,CAHT;AAaEgD,OAAK,EAAE;AAbT,CAvG8C,EAsH9C;AACErK,MAAI,EAAE,kBADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,kBAAP;AAA2BpD,eAAW,EAAE,gBAAxC;AAA0DqD,kBAAc,EAAE,KAA1E;AAAiFI,wBAAoB,EAAE,IAAvG;AAA6GH,eAAW,EAAE,KAA1H;AAAiI9C,QAAI,EAAE;AAAvI,GADK,EAEL;AAAE4C,OAAG,EAAE,gBAAP;AAAyBpD,eAAW,EAAE,iBAAtC;AAAyDqD,kBAAc,EAAE,KAAzE;AAAgFI,wBAAoB,EAAE,IAAtG;AAA4GH,eAAW,EAAE,KAAzH;AAAgI9C,QAAI,EAAE;AAAtI,GAFK,CAHT;AAOEgD,OAAK,EAAE;AAPT,CAtH8C,EA+H9C;AACErK,MAAI,EAAE,iBADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,cAAP;AAAuBpD,eAAW,EAAE,eAApC;AAAqDqD,kBAAc,EAAE,KAArE;AAA4EI,wBAAoB,EAAE,IAAlG;AAAwGH,eAAW,EAAE,KAArH;AAA4H9C,QAAI,EAAE;AAAlI,GADK,EAEL;AAAE4C,OAAG,EAAE,eAAP;AAAwBpD,eAAW,EAAE,gBAArC;AAAuDqD,kBAAc,EAAE,KAAvE;AAA8EI,wBAAoB,EAAE,IAApG;AAA0GH,eAAW,EAAE,KAAvH;AAA8H9C,QAAI,EAAE;AAApI,GAFK,CAHT;AAOEgD,OAAK,EAAE;AAPT,CA/H8C,EAwI9C;AACErK,MAAI,EAAE,kBADR;AAEE+J,WAAS,EAAE,MAFb;AAGEC,OAAK,EAAE,CACL;AAAEC,OAAG,EAAE,gBAAP;AAAyBpD,eAAW,EAAE,iBAAtC;AAAyDqD,kBAAc,EAAE,KAAzE;AAAgFC,eAAW,EAAE,KAA7F;AAAoG9C,QAAI,EAAE;AAA1G,GADK,EAEL;AAAE4C,OAAG,EAAE,mBAAP;AAA4BpD,eAAW,EAAE,qBAAzC;AAAgEqD,kBAAc,EAAE,KAAhF;AAAuFC,eAAW,EAAE,KAApG;AAA2G9C,QAAI,EAAE;AAAjH,GAFK,CAHT;AAOEgD,OAAK,EAAE;AAPT,CAxI8C,CAAzC;AAmJA,IAAME,2BAA2B,GAAG,CACzC,uBADyC,EAEzC,kCAFyC,EAGzC,0BAHyC,EAIzC,6BAJyC,EAKzC,+BALyC,EAMzC,8BANyC,CAApC;AASA,IAAMC,eAAe,GAAG;AAC7BC,UAAQ,EAAE;AACRC,kBAAc,EAAE,IADR;AAERC,eAAW,EAAE,aAFL;AAGRC,OAAG,EAAE,UAHG;AAIRC,QAAI,EAAE,CACJ;AACEC,UAAI,EAAE,cADR;AAEEF,SAAG,EAAE,aAFP;AAGEG,eAAS,EAAE;AAHb,KADI;AAJE,GADmB;AAa7BC,YAAU,EAAE;AACVN,kBAAc,EAAE,IADN;AAEVC,eAAW,EAAE,YAFH;AAGVC,OAAG,EAAE,YAHK;AAIVC,QAAI,EAAE,CACJ;AACEC,UAAI,EAAE,WADR;AAEEF,SAAG,EAAE,WAFP;AAGEG,eAAS,EAAE;AAHb,KADI,EAMJ;AACED,UAAI,EAAE,eADR;AAEEF,SAAG,EAAE,eAFP;AAGEG,eAAS,EAAE;AAHb,KANI,EAWJ;AACED,UAAI,EAAE,eADR;AAEEF,SAAG,EAAE,IAFP;AAGEG,eAAS,EAAE;AAHb,KAXI,EAgBJ;AACED,UAAI,EAAE,gBADR;AAEEF,SAAG,EAAE,IAFP;AAGEG,eAAS,EAAE;AAHb,KAhBI,EAqBJ;AACED,UAAI,EAAE,QADR;AAEEF,SAAG,EAAE,QAFP;AAGEG,eAAS,EAAE;AAHb,KArBI,EA0BJ;AACED,UAAI,EAAE,QADR;AAEEF,SAAG,EAAE,QAFP;AAGEG,eAAS,EAAE;AAHb,KA1BI;AAJI;AAbiB,CAAxB;AAoDA,IAAME,kBAAkB,GAAG;AAChCD,YAAU,EAAE;AACVN,kBAAc,EAAE,IADN;AAEVC,eAAW,EAAE,YAFH;AAGVC,OAAG,EAAE,YAHK;AAIVC,QAAI,EAAE,CACJ;AACEC,UAAI,EAAE,gBADR;AAEEF,SAAG,EAAE,eAFP;AAGEG,eAAS,EAAE;AAHb,KADI,EAMJ;AACED,UAAI,EAAE,eADR;AAEEF,SAAG,EAAE,IAFP;AAGEG,eAAS,EAAE;AAHb,KANI,EAWJ;AACED,UAAI,EAAE,gBADR;AAEEF,SAAG,EAAE,IAFP;AAGEG,eAAS,EAAE;AAHb,KAXI,EAgBJ;AACED,UAAI,EAAE,mBADR;AAEEF,SAAG,EAAE,MAFP;AAGEG,eAAS,EAAE;AAHb,KAhBI,EAqBJ;AACED,UAAI,EAAE,QADR;AAEEF,SAAG,EAAE,QAFP;AAGEG,eAAS,EAAE;AAHb,KArBI,CA0BJ;AACA;AACA;AACA;AACA;AA9BI;AAJI,GADoB;AAsChCN,UAAQ,EAAE;AACRC,kBAAc,EAAE,IADR;AAERC,eAAW,EAAE,WAFL;AAGRC,OAAG,EAAE,UAHG;AAIRC,QAAI,EAAE,CACJ;AACEC,UAAI,EAAE,gBADR;AAEEF,SAAG,EAAE,eAFP;AAGEG,eAAS,EAAE;AAHb,KADI,EAMJ;AACED,UAAI,EAAE,gBADR;AAEEF,SAAG,EAAE,eAFP;AAGEG,eAAS,EAAE;AAHb,KANI,EAWJ;AACED,UAAI,EAAE,YADR;AAEEF,SAAG,EAAE,WAFP;AAGEG,eAAS,EAAE;AAHb,KAXI,EAgBJ;AACED,UAAI,EAAE,cADR;AAEEF,SAAG,EAAE,aAFP;AAGEG,eAAS,EAAE;AAHb,KAhBI;AAJE,GAtCsB;AAiEhCG,kBAAgB,EAAE;AAChBR,kBAAc,EAAE,IADA;AAEhBC,eAAW,EAAE,mBAFG;AAGhBC,OAAG,EAAE,kBAHW;AAIhBC,QAAI,EAAE,CACJ;AACEC,UAAI,EAAE,KADR;AAEEF,SAAG,EAAE,KAFP;AAGEG,eAAS,EAAE;AAHb,KADI,EAMJ;AACED,UAAI,EAAE,IADR;AAEEF,SAAG,EAAE,IAFP;AAGEG,eAAS,EAAE;AAHb,KANI;AAJU,GAjEc;AAkFhCI,wBAAsB,EAAE;AACtBT,kBAAc,EAAE,KADM;AAEtBC,eAAW,EAAE,0BAFS;AAGtBC,OAAG,EAAE,wBAHiB;AAItBC,QAAI,EAAE,CACJ;AACEC,UAAI,EAAE,OADR;AAEEF,SAAG,EAAE,OAFP;AAGEG,eAAS,EAAE;AAHb,KADI,EAMJ;AACED,UAAI,EAAE,QADR;AAEEF,SAAG,EAAE,QAFP;AAGEG,eAAS,EAAE;AAHb,KANI,EAWJ;AACED,UAAI,EAAE,kBADR;AAEEF,SAAG,EAAE,gBAFP;AAGEG,eAAS,EAAE;AAHb,KAXI;AAJgB;AAlFQ,CAA3B;AA0GP,IAAMK,IAAI,GAAG,IAAIlL,IAAJ,EAAb;AACA,IAAMmL,KAAK,GAAGD,IAAI,CAACE,QAAL,KAAkB,CAAhC;AACA,IAAMC,IAAI,GAAGH,IAAI,CAACI,WAAL,EAAb;AACA,IAAMC,iBAAiB,GAAIJ,KAAK,IAAI,EAAT,IAAeA,KAAK,IAAI,EAAzB,GAA+BE,IAAI,GAAG,CAAtC,GAA0CA,IAApE;AACA,IAAMG,aAAa,GAAGC,MAAM,CAACF,iBAAiB,CAAClL,QAAlB,GAA6BqL,KAA7B,CAAmC,CAAC,CAApC,CAAD,CAA5B;AACA,IAAMC,qBAAqB,GAAGH,aAAa,GAAG,CAA9C;AAEO,IAAMI,uBAAuB;AAClCC,UAAQ,EAAE;AACRrB,kBAAc,EAAE,IADR;AAERC,eAAW,EAAE,kBAFL;AAGRC,OAAG,EAAE,UAHG;AAIRC,QAAI,EAAGQ,KAAK,KAAK,EAAV,IAAgBA,KAAK,KAAK,EAA3B,GACN,CACE;AACEP,UAAI,EAAE,WADR;AAEEF,SAAG,EAAE,WAFP;AAGEG,eAAS,EAAE;AAHb,KADF,EAME;AACED,UAAI,EAAE,0BAA0Be,qBADlC;AAEEjB,SAAG,EAAE,0BAA0BiB,qBAFjC;AAGEd,eAAS,EAAE;AAHb,KANF,EAWE;AACED,UAAI,EAAE,2BAA2Be,qBADnC;AAEEjB,SAAG,EAAE,2BAA2BiB,qBAFlC;AAGEd,eAAS,EAAE;AAHb,KAXF,EAgBE;AACED,UAAI,EAAE,0BAA0BY,aADlC;AAEEd,SAAG,EAAE,0BAA0Bc,aAFjC;AAGEX,eAAS,EAAE;AAHb,KAhBF,EAqBE;AACED,UAAI,EAAE,2BAA2BY,aADnC;AAEEd,SAAG,EAAE,2BAA2Bc,aAFlC;AAGEX,eAAS,EAAE;AAHb,KArBF,CA0BE;AACA;AACA;AACA;AACA;AA9BF,KADM,GAiCN,CACE;AACED,UAAI,EAAE,WADR;AAEEF,SAAG,EAAE,WAFP;AAGEG,eAAS,EAAE;AAHb,KADF,EAME;AACED,UAAI,EAAE,0BAA0BY,aADlC;AAEEd,SAAG,EAAE,0BAA0Bc,aAFjC;AAGEX,eAAS,EAAE;AAHb,KANF,EAWE;AACED,UAAI,EAAE,2BAA2BY,aADnC;AAEEd,SAAG,EAAE,2BAA2Bc,aAFlC;AAGEX,eAAS,EAAE;AAHb,KAXF;AArCQ,GADwB;AAwDlCiB,mBAAiB,EAAE;AACjBtB,kBAAc,EAAE,IADC;AAEjBC,eAAW,EAAE,UAFI;AAGjBC,OAAG,EAAE,mBAHY;AAIjBC,QAAI,EAAE,CACJ;AACEC,UAAI,EAAE,KADR;AAEEF,SAAG,EAAE,KAFP;AAGEG,eAAS,EAAE;AAHb,KADI,EAMJ;AACED,UAAI,EAAE,KADR;AAEEF,SAAG,EAAE,KAFP;AAGEG,eAAS,EAAE;AAHb,KANI,EAWJ;AACED,UAAI,EAAE,KADR;AAEEF,SAAG,EAAE,KAFP;AAGEG,eAAS,EAAE;AAHb,KAXI,EAgBJ;AACED,UAAI,EAAE,OADR;AAEEF,SAAG,EAAE,OAFP;AAGEG,eAAS,EAAE;AAHb,KAhBI;AAJW;AAxDe,GAyG/BE,kBAzG+B,CAA7B;;;;;;;;;;;;;;;;ACjVA,IAAMgB,aAAa,GAAG,CACzB;AAACjM,MAAI,EAAC,eAAN;AAAuBkM,OAAK,EAAE,CAA9B;AAAiCjO,MAAI,EAAE,iBAAvC;AAA0DkO,SAAO,EAAE;AAAnE,CADyB,EAEzB;AAACnM,MAAI,EAAC,kBAAN;AAA0BkM,OAAK,EAAE,CAAjC;AAAoCjO,MAAI,EAAE,qBAA1C;AAAiEkO,SAAO,EAAE;AAA1E,CAFyB,EAGzB;AAACnM,MAAI,EAAC,mBAAN;AAA2BkM,OAAK,EAAE,CAAlC;AAAqCjO,MAAI,EAAE,eAA3C;AAA4DkO,SAAO,EAAE;AAArE,CAHyB,EAIzB;AAACnM,MAAI,EAAC,sBAAN;AAA8BkM,OAAK,EAAE,CAArC;AAAwCjO,MAAI,EAAE,mBAA9C;AAAmEkO,SAAO,EAAE;AAA5E,CAJyB,EAKzB;AAACnM,MAAI,EAAC,gBAAN;AAAwBkM,OAAK,EAAE,CAA/B;AAAkCjO,MAAI,EAAE,kBAAxC;AAA4DkO,SAAO,EAAE;AAArE,CALyB,EAMzB;AAACnM,MAAI,EAAC,mBAAN;AAA2BkM,OAAK,EAAE,CAAlC;AAAqCjO,MAAI,EAAE,sBAA3C;AAAmEkO,SAAO,EAAE;AAA5E,CANyB,EAOzB;AAACnM,MAAI,EAAC,gBAAN;AAAwBkM,OAAK,EAAE,CAA/B;AAAkCjO,MAAI,EAAE,yBAAxC;AAAmEkO,SAAO,EAAE;AAA5E,CAPyB,EAQzB;AAACnM,MAAI,EAAC,SAAN;AAAiBkM,OAAK,EAAE,CAAxB;AAA2BjO,MAAI,EAAE,UAAjC;AAA6CkO,SAAO,EAAE;AAAtD,CARyB,EASzB;AAACnM,MAAI,EAAC,QAAN;AAAgBkM,OAAK,EAAE,CAAvB;AAA0BjO,MAAI,EAAE,QAAhC;AAA0CkO,SAAO,EAAE;AAAnD,CATyB,EAUzB;AAACnM,MAAI,EAAC,SAAN;AAAiBkM,OAAK,EAAE,CAAxB;AAA2BjO,MAAI,EAAE,UAAjC;AAA6CkO,SAAO,EAAE;AAAtD,CAVyB,EAWzB;AAACnM,MAAI,EAAC,UAAN;AAAkBkM,OAAK,EAAE,CAAzB;AAA4BjO,MAAI,EAAE,SAAlC;AAA6CkO,SAAO,EAAE;AAAtD,CAXyB,EAYzB;AAACnM,MAAI,EAAC,MAAN;AAAckM,OAAK,EAAE,CAArB;AAAwBjO,MAAI,EAAE,SAA9B;AAAyCkO,SAAO,EAAE;AAAlD,CAZyB,EAazB;AAACnM,MAAI,EAAC,SAAN;AAAiBkM,OAAK,EAAE,CAAxB;AAA2BjO,MAAI,EAAE,SAAjC;AAA4CkO,SAAO,EAAE;AAArD,CAbyB,EAczB;AAACnM,MAAI,EAAC,eAAN;AAAuBkM,OAAK,EAAE,CAA9B;AAAiCjO,MAAI,EAAE,SAAvC;AAAkDkO,SAAO,EAAE;AAA3D,CAdyB,EAezB;AAACnM,MAAI,EAAC,eAAN;AAAuBkM,OAAK,EAAE,CAA9B;AAAiCjO,MAAI,EAAE,SAAvC;AAAkDkO,SAAO,EAAE;AAA3D,CAfyB,EAgBzB;AAACnM,MAAI,EAAC,eAAN;AAAuBkM,OAAK,EAAE,CAA9B;AAAiCjO,MAAI,EAAE,SAAvC;AAAkDkO,SAAO,EAAE;AAA3D,CAhByB,EAiBzB;AAACnM,MAAI,EAAC,cAAN;AAAsBkM,OAAK,EAAE,CAA7B;AAAgCjO,MAAI,EAAE,QAAtC;AAAgDkO,SAAO,EAAE;AAAzD,CAjByB,EAkBzB;AAACnM,MAAI,EAAC,eAAN;AAAuBkM,OAAK,EAAE,CAA9B;AAAiCjO,MAAI,EAAE,UAAvC;AAAmDkO,SAAO,EAAE;AAA5D,CAlByB,EAmBzB;AAACnM,MAAI,EAAC,gBAAN;AAAwBkM,OAAK,EAAE,CAA/B;AAAkCjO,MAAI,EAAE,SAAxC;AAAmDkO,SAAO,EAAE;AAA5D,CAnByB,EAoBzB;AAACnM,MAAI,EAAC,YAAN;AAAoBkM,OAAK,EAAE,CAA3B;AAA8BjO,MAAI,EAAE,SAApC;AAA+CkO,SAAO,EAAE;AAAxD,CApByB,EAqBzB;AAACnM,MAAI,EAAC,eAAN;AAAuBkM,OAAK,EAAE,CAA9B;AAAiCjO,MAAI,EAAE,SAAvC;AAAkDkO,SAAO,EAAE;AAA3D,CArByB,CAAtB;AAwBA,IAAMC,qBAAqB,GAAG,CACjC;AAACF,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,iBAAjB;AAAoC+B,MAAI,EAAE,eAA1C;AAA2D6G,aAAW,EAAE,gBAAxE;AAA0FwF,aAAW,EAAE;AAAvG,CADiC,EAEjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,qBAAjB;AAAwC+B,MAAI,EAAE,kBAA9C;AAAkE6G,aAAW,EAAE,oBAA/E;AAAqGwF,aAAW,EAAE;AAAlH,CAFiC,EAGjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,eAAjB;AAAkC+B,MAAI,EAAE,mBAAxC;AAA6D6G,aAAW,EAAE,gBAA1E;AAA4FwF,aAAW,EAAE;AAAzG,CAHiC,EAIjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,mBAAjB;AAAsC+B,MAAI,EAAE,sBAA5C;AAAoE6G,aAAW,EAAE,oBAAjF;AAAuGwF,aAAW,EAAE;AAApH,CAJiC,EAKjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,yBAAjB;AAA4C+B,MAAI,EAAE,gBAAlD;AAAoE6G,aAAW,EAAE,iBAAjF;AAAoGwF,aAAW,EAAE;AAAjH,CALiC,EAMjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,yBAAjB;AAA4C+B,MAAI,EAAE,gBAAlD;AAAoE6G,aAAW,EAAE,iBAAjF;AAAoGwF,aAAW,EAAE;AAAjH,CANiC,EAOjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,kBAAjB;AAAqC+B,MAAI,EAAE,gBAA3C;AAA6D6G,aAAW,EAAE,iBAA1E;AAA6FwF,aAAW,EAAE;AAA1G,CAPiC,EAQjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,sBAAjB;AAAyC+B,MAAI,EAAE,mBAA/C;AAAoE6G,aAAW,EAAE,qBAAjF;AAAwGwF,aAAW,EAAE;AAArH,CARiC,EASjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,UAAjB;AAA6B+B,MAAI,EAAE,SAAnC;AAA8C6G,aAAW,EAAE,SAA3D;AAAsEwF,aAAW,EAAE;AAAnF,CATiC,EAUjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,QAAjB;AAA2B+B,MAAI,EAAE,QAAjC;AAA2C6G,aAAW,EAAE,eAAxD;AAAyEwF,aAAW,EAAE;AAAtF,CAViC,EAWjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,UAAjB;AAA6B+B,MAAI,EAAE,SAAnC;AAA8C6G,aAAW,EAAE,iBAA3D;AAA8EwF,aAAW,EAAE;AAA3F,CAXiC,EAYjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,UAAlC;AAA8C6G,aAAW,EAAE,8BAA3D;AAA2FwF,aAAW,EAAE;AAAxG,CAZiC,EAajC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,MAAlC;AAA0C6G,aAAW,EAAE,8BAAvD;AAAuFwF,aAAW,EAAE;AAApG,CAbiC,EAcjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,SAAlC;AAA6C6G,aAAW,EAAE,8BAA1D;AAA0FwF,aAAW,EAAE;AAAvG,CAdiC,EAejC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,QAAjB;AAA2B+B,MAAI,EAAE,cAAjC;AAAiD6G,aAAW,EAAE,mBAA9D;AAAmFwF,aAAW,EAAE;AAAhG,CAfiC,EAgBjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,UAAjB;AAA6B+B,MAAI,EAAE,eAAnC;AAAoD6G,aAAW,EAAE,qBAAjE;AAAwFwF,aAAW,EAAE;AAArG,CAhBiC,EAiBjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,gBAAlC;AAAoD6G,aAAW,EAAE,kCAAjE;AAAqGwF,aAAW,EAAE;AAAlH,CAjBiC,EAkBjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,YAAlC;AAAgD6G,aAAW,EAAE,yCAA7D;AAAwGwF,aAAW,EAAE;AAArH,CAlBiC,EAmBjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,eAAlC;AAAmD6G,aAAW,EAAE,yCAAhE;AAA2GwF,aAAW,EAAE;AAAxH,CAnBiC,EAoBjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,eAAlC;AAAmD6G,aAAW,EAAE,SAAhE;AAA2EwF,aAAW,EAAE;AAAxF,CApBiC,EAqBjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,eAAlC;AAAmD6G,aAAW,EAAE,SAAhE;AAA2EwF,aAAW,EAAE;AAAxF,CArBiC,EAsBjC;AAACH,OAAK,EAAE,CAAR;AAAWjO,MAAI,EAAE,SAAjB;AAA4B+B,MAAI,EAAE,eAAlC;AAAmD6G,aAAW,EAAE,SAAhE;AAA2EwF,aAAW,EAAE;AAAxF,CAtBiC,CAA9B;;;;;;;;;;;;;;;ACxBP;;;;;;;AAQO,IAAMC,QAAQ,GAAG;AACtBC,cAAY,EAAE,2BADQ;AAEtBC,gBAAc,EAAE,oDAFM;AAGtBC,cAAY,EAAE,2DAHQ;AAItBN,SAAO,EAAE,qBAJa;AAKtBO,iBAAe,EAAE,gCALK;AAMtBC,oBAAkB,EAAE,mDANE;AAOtBC,eAAa,EAAE,kBAPO;AAQtBC,mBAAiB,EAAE,sBARG;AAStBC,0BAAwB,EAAE,2BATJ;AAUtBC,YAAU,EAAE,yBAVU;AAWtBC,aAAW,EAAE,mBAXS;AAYtBC,WAAS,EAAE,kBAZW;AAatBC,aAAW,EAAE,sBAbS;AActBC,kBAAgB,EAAE,8BAdI;AAetBC,eAAa,EAAE,sCAfO;AAgBtBC,mBAAiB,EAAE,gCAhBG;AAiBtBC,gBAAc,EAAE,qBAjBM;AAkBtBC,sBAAoB,EAAE,iCAlBA;AAmBtBC,aAAW,EAAE,gCAnBS;AAoBtBC,UAAQ,EAAE,sBApBY;AAqBtBC,gBAAc,EAAE,mBArBM;AAsBtBC,kBAAgB,EAAE,uBAtBI;AAuBtBC,2BAAyB,EAAE;AAvBL,CAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA,IAAMvL,SAAb;AACE,qBAAoB3F,WAApB,EAAsDjC,MAAtD,EAA8EoT,YAA9E,EAA0G;AAAA;;AAAtF;AAAkC;AAAwB;AAAgC;;AADhH;AAAA;AAAA,WAGQ,qBAAY7I,KAAZ,EAA2C8I,KAA3C,EAAqE;;;;;;;AAErE,uBAAM,KAAKpR,WAAL,CAAiBqR,gBAAjB,EAAN;;;;;;;;iDACK;;;AAET;AAEA;AACA,qBAAKtT,MAAL,CAAYC,QAAZ,CAAqB,CAAC,QAAD,CAArB,EAAiC;AAAEsT,6BAAW,EAAE;AAAEC,6BAAS,EAAEH,KAAK,CAACI;AAAnB;AAAf,iBAAjC;;;;;;;;;AACD;AAZH;AAAA;AAAA,WAcQ,iBAAQlJ,KAAR,EAAoB;;;;;;;AACxB;AACA;AACA;AACMiJ,4BAAY,KAAKJ,YAAL,CAAkBM,QAAlB,CAA2BH,WAA3B,CAAuC,WAAvC;AAClB,qBAAKvT,MAAL,CAAYC,QAAZ,CAAqB,CAAC,QAAD,CAArB,EAAiC;AAAEsT,6BAAW,EAAE;AAAEC,6BAAS,EAATA;AAAF;AAAf,iBAAjC;;;;;;;;;AACD;AApBH;;AAAA;AAAA;;;mBAAa5L,WAASb,sDAAAA,CAAAA,+DAAAA,GAAAA,sDAAAA,CAAAA,mDAAAA,GAAAA,sDAAAA,CAAAA,2DAAAA;AAAA;;;SAATa;AAAS+L,WAAT/L,SAAS;;;;;;;;;;;;;;;;;;;;ACNf,IAAMgM,WAAb,mKAEE,qBAAYC,GAAZ,EAAe;AAAA;;AACb,OAAKC,MAAL,GAAcD,GAAG,CAACE,GAAJ,CAAQ,WAAC;AAAA,WAAI,IAAIC,UAAJ,CAAeC,CAAf,CAAJ;AAAA,GAAT,CAAd;AACD,CAJH;;IAOMD,0BAAAA,kJAAAA,CAIJ,oBAAYE,SAAZ,EAAqB;AAAA;;AACnB,OAAK3O,IAAL,GAAY2O,SAAS,CAAC7D,IAAtB;AACA,OAAKzD,IAAL,GAAYsH,SAAS,CAACC,IAAtB;AACA,OAAK7I,IAAL,GAAY4I,SAAS,CAAC9D,IAAV,GAAiB8D,SAAS,CAAC9D,IAAV,CAAe2D,GAAf,CAAmB,WAAC;AAAA,WAAI,IAAIC,UAAJ,CAAeC,CAAf,CAAJ;AAAA,GAApB,CAAjB,GAA8D,IAA1E;AACD;;;;;;;;;;;;;;;;;;;;;ACfI,IAAMG,UAAb,mKAOE,oBAAY1N,KAAZ,EAA4H;AAAA,MAAlG2N,QAAkG,uEAA9E,KAA8E;AAAA,MAAhEC,YAAgE,uEAAxC,KAAwC;AAAA,MAAjCC,gBAAiC,uEAAL,KAAK;;AAAA;;AAAlG;AAAkC;;AAC1D,MAAI,OAAO7N,KAAP,KAAiB,QAArB,EAA+B;AAC7B,SAAK8I,GAAL,GAAW,KAAKpD,WAAL,GAAmB1F,KAA9B;AACD,GAFD,MAEO;AACL,SAAK8I,GAAL,GAAW9I,KAAK,CAACyJ,GAAjB;;AACA,QAAIoE,gBAAJ,EAAsB;AACpB,WAAKnI,WAAL,aAAsB1F,KAAK,CAACyJ,GAA5B,gBAAqCzJ,KAAK,CAAC8N,WAA3C;AACD,KAFD,MAEO;AACL,WAAKpI,WAAL,GAAmB1F,KAAK,CAAC2J,IAAzB;AACD;AACF;;AAED,MAAIkE,gBAAJ,EAAsB;AACpB,SAAKE,QAAL,GAAgB,KAAKjF,GAArB;AACD,GAFD,MAEO;AACL,SAAKiF,QAAL,GAAgB,KAAKjF,GAAL,KAAa,WAAb,GAA2B,iBAA3B,GAA+C,KAAKpD,WAApE;AACD;;AACD,OAAKsI,WAAL,GAAmB,KAAKtI,WAAxB;AACA,OAAKuI,SAAL,GAAiB,KAAKnF,GAAtB;AACA,OAAKoF,cAAL,GAAsB,KAAKH,QAA3B;AACD,CA3BH;AA8BO,IAAMI,UAAb,mKAGE,oBACStP,IADT,EAES6G,WAFT,EAGSqD,cAHT,EAIE/I,KAJF,EAMkC;AAAA,MADxBoO,YACwB,uEADD,CACC;AAAA,MAAzBC,SAAyB,uEAAJ,IAAI;;AAAA;;AALzB;AACA;AACA;AAEC;AACD;AAEP,OAAKC,QAAL,GAAgB,CAAC,KAAKD,SAAtB;AACA,OAAKrO,KAAL,GAAaA,KAAK,IAAIzB,SAAT,GAAqB,IAArB,GAA4B,CAAC,IAAImP,UAAJ,CAAe1N,KAAf,CAAD,CAAzC;AACD,CAbH;AAgBO,IAAMuO,gBAAb,mKAEE,0BAAmBzF,GAAnB,EAAuCpD,WAAvC,EAAmEqD,cAAnE,EAAmGC,WAAnG,EAAuH;AAAA;;AAApG;AAAoB;AAA4B;AAAgC;;AACjG,MAAIF,GAAG,KAAK,YAAZ,EAA0B;AACxB,SAAK5C,IAAL,GAAY,mBAAZ;AACD,GAFD,MAEO,IAAI6C,cAAJ,EAAoB;AACzB,SAAK7C,IAAL,GAAY,eAAZ;AACD,GAFM,MAEA;AACL,SAAKA,IAAL,GAAY,kBAAZ;AACD;AACF,CAVH;;;;;;;;;;;;;;;;;;;;;AC9CO,IAAMsI,YAAb,mKAGE,sBAAYrB,GAAZ,EAAe;AAAA;;AACb,OAAKsB,cAAL,GAAsB,EAAtB;AACA,OAAKC,iBAAL,GAAyB,EAAzB;;AAFa,mLAGMvB,GAHN;AAAA;;AAAA;AAGb,wDAAwB;AAAA,UAAbrQ,IAAa;;AACtB,UAAIA,IAAI,CAAC,UAAD,CAAJ,KAAqB,SAAzB,EAAoC;AAClC,aAAK2R,cAAL,CAAoBlG,IAApB,CAAyB,IAAIoG,eAAJ,CAAoB7R,IAApB,CAAzB;AACD,OAFD,MAEO,IAAIA,IAAI,CAAC,UAAD,CAAJ,KAAqB,mBAAzB,EAA8C;AACnD,aAAK4R,iBAAL,CAAuBnG,IAAvB,CAA4B,IAAIoG,eAAJ,CAAoB7R,IAApB,CAA5B;AACD;AACF;AATY;AAAA;AAAA;AAAA;AAAA;AAUd,CAbH;;IAgBM6R,+BAAAA,kJAAAA,CAKJ,yBAAYxB,GAAZ,EAAe;AAAA;;AACb,OAAKyB,OAAL,GAAezB,GAAG,CAAC0B,aAAnB;AACA,OAAKC,iBAAL,GAAyB,EAAzB;AACA,OAAKC,UAAL,GAAkBpQ,IAAI,CAACqQ,KAAL,CAAW7B,GAAG,CAAC8B,SAAf,CAAlB;AACA,OAAKC,SAAL,GAAiB/B,GAAG,CAACvD,SAArB;AACD;;;;;;;;;;;;;;;;;;;;;ACrBI,IAAMxI,iBAAb;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,WACE,mBAAUpB,KAAV,EAAwH;AAAA,UAAtFmP,MAAsF,uEAArE,EAAqE;AAAA,UAAjEC,MAAiE,uEAAhD,EAAgD;AAAA,UAA5ClJ,IAA4C,uEAA7B,EAA6B;AAAA,UAAzBmJ,aAAyB,uEAAD,CAAC;;AACtH,UAAIrP,KAAK,KAAK,IAAd,EAAoB;AAClB,eAAO,KAAP;AACD;;AACD,UAAMsP,SAAS,GAAG,OAAOtP,KAAP,IAAgB,QAAhB,GAA2BA,KAA3B,GAAmCuP,UAAU,CAACvP,KAAD,CAA/D;AACA,UAAMwP,UAAU,GAAGF,SAAS,GAAG,CAA/B;AACA,UAAMG,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASL,SAAT,CAAjB;AACA,UAAIM,cAAJ;AACA,UAAIC,cAAc,GAAG,CAArB;AACA,UAAIC,SAAS,GAAG,EAAhB;;AAEA,UAAIX,MAAM,KAAK,GAAf,EAAoB;AAClBS,sBAAc,GAAGF,IAAI,CAACK,KAAL,CAAWN,QAAX,CAAjB;AACAJ,qBAAa,GAAG,CAAhB;AACD,OAHD,MAGO,IAAInJ,IAAI,CAACjG,WAAL,OAAuB,GAA3B,EAAgC;AACrC4P,sBAAc,GAAG,CAAjB;AACAR,qBAAa,GAAG,CAAhB,CAFqC,CAElB;;AACnBS,iBAAS,GAAG,GAAZ;AACD,OAJM,MAIA,IAAI5J,IAAI,CAACjG,WAAL,OAAuB,GAA3B,EAAgC;AACrC4P,sBAAc,GAAG,CAAjB;AACAC,iBAAS,GAAG,GAAZ;AACD,OAHM,MAGA,IAAIL,QAAQ,IAAI,GAAhB,EAAqB;AAC1BI,sBAAc,GAAG,CAAjB;AACAC,iBAAS,GAAG,GAAZ;AACD,OAHM,MAGA,IAAIL,QAAQ,GAAG,GAAf,EAAoB;AACzBI,sBAAc,GAAG,CAAjB;AACAC,iBAAS,GAAG,GAAZ;AACD;;AAED,UAAME,QAAQ,GAAGN,IAAI,CAACO,GAAL,CAAS,EAAT,EAAa,IAAIJ,cAAjB,CAAjB;AACA,UAAMK,gBAAgB,GAAGR,IAAI,CAACO,GAAL,CAAS,EAAT,EAAaZ,aAAb,CAAzB;AACAO,oBAAc,GAAGF,IAAI,CAACK,KAAL,CAAYN,QAAQ,GAAGS,gBAAZ,GAAgCF,QAA3C,IAAuDE,gBAAvD,GAA0E,EAA3F,CA/BsH,CAiCtH;;AACA,UAAIb,aAAa,GAAG,CAApB,EAAuB;AACrBO,sBAAc,GAAGA,cAAc,IAAIA,cAAc,CAACxS,OAAf,CAAuB,GAAvB,MAAgC,CAAC,CAAjC,GAAqC,GAArC,GAA2C,EAA/C,CAA/B;AACA,YAAM+S,IAAI,GAAGd,aAAa,GAAGO,cAAc,CAACQ,KAAf,CAAqB,GAArB,EAA0B,CAA1B,EAA6BrT,MAA1D;AACA6S,sBAAc,GAAGA,cAAc,GAAG,IAAIS,MAAJ,CAAWF,IAAX,CAAlC;AACD;;AAEDP,oBAAc,GAAGA,cAAc,CAACxQ,QAAf,GAA0BkR,OAA1B,CAAkC,uBAAlC,EAA2D,GAA3D,CAAjB,CAxCsH,CA0CtH;;AACA,uBAAUlB,MAAV,SAAmBQ,cAAnB,SAAoCE,SAApC,SAAgDX,MAAhD;AACD;AA7CH;;AAAA;AAAA;;;mBAAa/N;AAAiB;;;;QAAjBA;AAAiBmP;;;;;;;;;;;;;;;;;;;;;;;;;ACH9B;;;;AAKO,IAAMtO,mBAAb;AACE,+BAAoBwO,aAApB,EAA0D7M,cAA1D,EAAwF;AAAA;;AAApE;AAAsC;AAAmC;;AAD/F;AAAA;AAAA,WAEE,mBAAU5D,KAAV,EAAsB0Q,QAAtB,EAAuD;AACrD,UAAIC,aAAa,GAAG,EAApB;;AACA,UAAID,QAAQ,CAAC7R,IAAT,IAAiB,YAArB,EAAmC;AACjC,YAAI+R,aAAa,GAAG,KAAKhN,cAAL,CAAoBgN,aAAxC;AACA,YAAIC,cAAc,GAAGD,aAAa,CAACE,gBAAd,IAAkC,IAAlC,GAAyCF,aAAa,CAACE,gBAAd,CAA+BV,KAA/B,CAAqC,GAArC,EAA0CW,IAA1C,EAAzC,GAA4F,EAAjH;;AACA,YAAIH,aAAa,CAAC/G,UAAd,IAA4B,eAAhC,EAAiD;AAC/C,iBAAO8G,aAAa,aAAMH,mCAAM,CAACI,aAAa,CAACI,SAAf,CAAN,CAAgCC,MAAhC,CAAuC,UAAvC,CAAN,gBAA8DT,mCAAM,CAACI,aAAa,CAACM,OAAf,CAAN,CAA8BD,MAA9B,CAAqC,UAArC,CAA9D,CAApB;AACD,SAFD,MAEO,IAAIL,aAAa,CAAC/G,UAAd,IAA4B,IAAhC,EAAsC;AAC3C,cAAIgH,cAAc,CAAC9T,MAAf,IAAyB,CAAzB,IAA8B6T,aAAa,CAACI,SAAd,IAA2B,EAAzD,IAA+DJ,aAAa,CAACM,OAAd,IAAyB,EAA5F,EAAgG;AAC9F,mBAAOP,aAAa,iBAAUE,cAAc,CAAC,CAAD,CAAd,GAAoB,CAA9B,qBAA0CA,cAAc,CAACA,cAAc,CAAC9T,MAAf,GAAwB,CAAzB,CAAxD,CAApB;AACD,WAFD,MAEO,IAAI8T,cAAc,CAAC9T,MAAf,GAAwB,CAAxB,IAA6B6T,aAAa,CAACI,SAAd,IAA2B,EAAxD,IAA8DJ,aAAa,CAACM,OAAd,IAAyB,EAA3F,EAA+F;AACpG,mBAAOP,aAAa,kBAAWE,cAAc,CAACxD,GAAf,CAAmB,cAAI,EAAG;AAAG,qBAAOvQ,IAAI,CAAC2N,KAAL,CAAW,CAAC,CAAZ,CAAP;AAAuB,aAApD,EAAsD0G,IAAtD,CAA2D,GAA3D,CAAX,CAApB;AACD,WAFM,MAEA,IAAIP,aAAa,CAACE,gBAAd,IAAkC,IAAtC,EAA4C;AACjD,mBAAOH,aAAa,aAAMH,mCAAM,CAACI,aAAa,CAACI,SAAf,CAAN,CAAgCC,MAAhC,CAAuC,UAAvC,CAAN,gBAA8DT,mCAAM,CAACI,aAAa,CAACM,OAAf,CAAN,CAA8BD,MAA9B,CAAqC,UAArC,CAA9D,CAApB;AACD,WAFM,MAEA,IAAIJ,cAAc,CAAC9T,MAAf,GAAwB,CAAxB,IAA6B6T,aAAa,CAACM,OAAd,KAA0B,EAA3D,EAA+D;AACpE,mBAAOP,aAAa,kBAAWE,cAAc,CAACxD,GAAf,CAAmB,cAAI,EAAG;AAAG,qBAAOvQ,IAAI,CAAC2N,KAAL,CAAW,CAAC,CAAZ,CAAP;AAAuB,aAApD,EAAsD0G,IAAtD,CAA2D,GAA3D,CAAX,cAA8E,KAAKV,aAAL,CAAmBnE,QAAnB,CAA4B,CAA5B,EAA+BlN,QAA/B,GAA0CqL,KAA1C,CAAgD,CAAC,CAAjD,CAA9E,CAApB;AACD;AACF,SAVM,MAWF,IAAImG,aAAa,CAAC/G,UAAd,IAA4B,IAAhC,EAAsC;AACzC,cAAIgH,cAAc,CAAC9T,MAAf,IAAyB,CAAzB,IAA8B6T,aAAa,CAACI,SAAd,IAA2B,EAAzD,IAA+DJ,aAAa,CAACM,OAAd,IAAyB,EAA5F,EAAgG;AAC9F,mBAAOP,aAAa,iBAAUE,cAAc,CAAC,CAAD,CAAxB,oBAAqCA,cAAc,CAACA,cAAc,CAAC9T,MAAf,GAAwB,CAAzB,CAAnD,CAApB;AACD,WAFD,MAEO,IAAI8T,cAAc,CAAC9T,MAAf,GAAwB,CAAxB,IAA6B6T,aAAa,CAACI,SAAd,IAA2B,EAAxD,IAA8DJ,aAAa,CAACM,OAAd,IAAyB,EAA3F,EAA+F;AACpG,mBAAOP,aAAa,kBAAWE,cAAc,CAACxD,GAAf,CAAmB,cAAI,EAAG;AAAG,qBAAOvQ,IAAI,CAAC2N,KAAL,CAAW,CAAC,CAAZ,CAAP;AAAuB,aAApD,EAAsD0G,IAAtD,CAA2D,GAA3D,CAAX,CAApB;AACD,WAFM,MAEA,IAAIP,aAAa,CAACE,gBAAd,IAAkC,IAAtC,EAA4C;AACjD,mBAAOH,aAAa,aAAMH,mCAAM,CAACI,aAAa,CAACI,SAAf,CAAN,CAAgCC,MAAhC,CAAuC,UAAvC,CAAN,gBAA8DT,mCAAM,CAACI,aAAa,CAACM,OAAf,CAAN,CAA8BD,MAA9B,CAAqC,UAArC,CAA9D,CAApB;AACD,WAFM,MAEA,IAAIJ,cAAc,CAAC9T,MAAf,GAAwB,CAAxB,IAA6B6T,aAAa,CAACM,OAAd,KAA0B,EAA3D,EAA+D;AACpE,mBAAOP,aAAa,kBAAWE,cAAc,CAACxD,GAAf,CAAmB,cAAI,EAAG;AAAG,qBAAOvQ,IAAI,CAAC2N,KAAL,CAAW,CAAC,CAAZ,CAAP;AAAuB,aAApD,EAAsD0G,IAAtD,CAA2D,GAA3D,CAAX,cAA8E,KAAKV,aAAL,CAAmBnE,QAAnB,CAA4B,CAA5B,EAA+BlN,QAA/B,GAA0CqL,KAA1C,CAAgD,CAAC,CAAjD,CAA9E,CAApB;AACD;AACF,SAVI,MAWA;AACH,iBAAOkG,aAAa,aAAMH,mCAAM,CAACI,aAAa,CAACI,SAAf,CAAN,CAAgCC,MAAhC,CAAuC,UAAvC,CAAN,gBAA8DT,mCAAM,CAACI,aAAa,CAACM,OAAf,CAAN,CAA8BD,MAA9B,CAAqC,UAArC,CAA9D,CAApB;AACD;AACF,OA9BD,MA8BO;AACN,eAAQN,aAAa,GAAG3Q,KAAxB;AACA;;AACD,aAAO2Q,aAAP;AACD;AAtCH;;AAAA;AAAA;;;mBAAa1O,qBAAmB5B,+DAAAA,CAAAA,0EAAAA,OAAAA,+DAAAA,CAAAA,6EAAAA;AAAA;;;;QAAnB4B;AAAmBsO;;;;;;;;;;;;;;;;;;;;;;ACFzB,IAAMa,gBAAb;AACE;AAAA;AAAgB;;AADlB;AAAA;AAAA,WAGE,4BAAmBtV,YAAnB,EAA+B;AAC7B;AACA,UAAMuV,eAAe,GAAGC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAxB;AACAF,qBAAe,CAAC7K,GAAhB,GAAsB,iDAAiD1K,YAAvE;AACAwV,cAAQ,CAACE,IAAT,CAAcC,WAAd,CAA0BJ,eAA1B;AAEA,UAAMK,MAAM,GAAGJ,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACAG,YAAM,CAACC,SAAP,+SAKoB7V,YALpB;AAMAwV,cAAQ,CAACE,IAAT,CAAcC,WAAd,CAA0BC,MAA1B;AACD;AAjBH;AAAA;AAAA,WAmBE,mBAAU5V,YAAV,EAAsB;AACpB,UAAM8V,YAAY,GAAGN,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAArB;AACAK,kBAAY,CAACD,SAAb,oIAEyB7V,YAFzB;AAQAwV,cAAQ,CAACE,IAAT,CAAcC,WAAd,CAA0BG,YAA1B,EAVoB,CAYpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AA7CH;;AAAA;AAAA;;;mBAAaR;AAAgB;;;SAAhBA;AAAgBnE,WAAhBmE,gBAAgB;AAAAS,cAFf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDd;AACA;AAEA;AAIA;;;;;;AAUO,IAAMG,UAAb;AACE,sBAAoBC,IAApB,EAA8C3Y,MAA9C,EAAsE6B,SAAtE,EAAoGI,WAApG,EAA4H;AAAA;;AAAxG;AAA0B;AAAwB;AAA8B;AAE5F,mBAAU,KAAKJ,SAAL,CAAe+W,MAAzB;AACA,mBAAU/G,yDAAV;AAHyH;;AADnI;AAAA;AAAA,WAME,aAAIjF,IAAJ,EAAU9H,OAAV,EAAkB;AAAA;;AAChB,aAAO,KAAK6T,IAAL,CAAUhO,GAAV,CAAc,KAAKkO,MAAL,CAAYjM,IAAZ,EAAkB9H,OAAlB,CAAd,EAA0CP,IAA1C,CACLwP,mDAAG,CAAC,aAAG;AAAA,eAAI,KAAI,CAAC+E,cAAL,CAAoBC,GAApB,CAAJ;AAAA,OAAJ,CADE,EAELP,0DAAU,CAAC,aAAG;AAAA,eAAI,KAAI,CAACQ,WAAL,CAAiBC,GAAjB,CAAJ;AAAA,OAAJ,CAFL,CAAP;AAID;AAXH;AAAA;AAAA,WAaE,cAAKrM,IAAL,EAAWsM,GAAX,EAAc;AAAA;;AACZ,aAAO,KAAKP,IAAL,CAAUQ,IAAV,CAAe,KAAKN,MAAL,CAAYjM,IAAZ,CAAf,EAAkCsM,GAAlC,EAAuC3U,IAAvC,CACLwP,mDAAG,CAAC,aAAG;AAAA,eAAI,MAAI,CAAC+E,cAAL,CAAoBC,GAApB,CAAJ;AAAA,OAAJ,CADE,EAELP,0DAAU,CAAC,aAAG;AAAA,eAAI,MAAI,CAACQ,WAAL,CAAiBC,GAAjB,CAAJ;AAAA,OAAJ,CAFL,CAAP;AAID;AAlBH;AAAA;AAAA,WAoBE,aAAIrM,IAAJ,EAAUsM,GAAV,EAAa;AAAA;;AACX,aAAO,KAAKP,IAAL,CAAUS,GAAV,CAAc,KAAKP,MAAL,CAAYjM,IAAZ,CAAd,EAAiCsM,GAAjC,EAAsC3U,IAAtC,CACLwP,mDAAG,CAAC,aAAG;AAAA,eAAI,MAAI,CAAC+E,cAAL,CAAoBC,GAApB,CAAJ;AAAA,OAAJ,CADE,EAELP,0DAAU,CAAC,aAAG;AAAA,eAAI,MAAI,CAACQ,WAAL,CAAiBC,GAAjB,CAAJ;AAAA,OAAJ,CAFL,CAAP;AAID;AAzBH;AAAA;AAAA,WA2BE,sBAAarM,IAAb,EAAmBnC,QAAnB,EAA6ByO,GAA7B,EAAkCxO,MAAlC,EAAyC;AAAA;;AACvC,aAAO,KAAKiO,IAAL,CAAUQ,IAAV,CAAe,KAAKN,MAAL,CAAYjM,IAAZ,EAAkBlC,MAAlB,CAAf,EAA0CwO,GAA1C,EAA+C;AAAEG,oBAAY,EAAE;AAAhB,OAA/C,EAAyE9U,IAAzE,CACLwP,mDAAG,CAAC,aAAG;AAAA,eAAI,MAAI,CAACuF,kBAAL,CAAwBP,GAAxB,EAA6BnM,IAAI,KAAK,2BAAT,aAA0CsK,mCAAM,GAAGS,MAAT,CAAgB,YAAhB,CAA1C,sBAA0FlN,QAAvH,CAAJ;AAAA,OAAJ,CADE,EAEL+N,0DAAU,CAAC,aAAG;AAAA,eAAI,MAAI,CAACQ,WAAL,CAAiBC,GAAjB,CAAJ;AAAA,OAAJ,CAFL,CAAP;AAID;AAhCH;AAAA;AAAA,WAkCE,gBAAOrM,IAAP,EAAa9H,OAAb,EAAqB;AACnB,UAAI2O,GAAG,GAAG,KAAK8F,OAAL,GAAe,KAAKC,OAAL,CAAa5M,IAAb,CAAzB;;AACA,UAAI9H,OAAJ,EAAa;AACX2O,WAAG,IAAI,KAAKgG,cAAL,CAAoB3U,OAApB,CAAP;AACD;;AACD,aAAO2O,GAAP;AACD;AAxCH;AAAA;AAAA,WA0CE,wBAAe3O,OAAf,EAAsB;AACpB,UAAI4U,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAY9U,OAAZ,EACTiP,GADS,CACL,WAAC,EAAG;AACP,eAAO8F,kBAAkB,CAACC,CAAD,CAAlB,GAAwB,GAAxB,GAA8BD,kBAAkB,CAAC/U,OAAO,CAACgV,CAAD,CAAR,CAAvD;AACD,OAHS,EAITjC,IAJS,CAIJ,GAJI,CAAZ;AAKA6B,WAAK,cAAOA,KAAP,CAAL;AACA,aAAOA,KAAP;AACD,KAlDH,CAoDE;;AApDF;AAAA;AAAA,WAqDE,4BAAmBK,QAAnB,EAA6BtP,QAA7B,EAAqC;AACnC;AACA;AACA,UAAIsP,QAAQ,CAACC,KAAb,EAAoB;AAClB,aAAKC,uBAAL,CAA6BF,QAA7B;AACD,OAFD,MAEO;AACL,YAAMG,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACJ,QAAD,CAAT,EAAqB;AAAEnN,cAAI,EAAEmN,QAAQ,CAACnN;AAAjB,SAArB,CAAb;;AACA,YAAIhJ,SAAS,CAACwW,UAAd,EAA0B;AACxBxW,mBAAS,CAACwW,UAAV,CAAqBF,IAArB,EAA2BzP,QAA3B;AACD,SAFD,MAEO;AACL,cAAM4P,CAAC,GAAGrC,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAV;AACAD,kBAAQ,CAACsC,IAAT,CAAcnC,WAAd,CAA0BkC,CAA1B;AACA,cAAME,OAAO,GAAGC,GAAG,CAACC,eAAJ,CAAoBP,IAApB,CAAhB;AACAG,WAAC,CAACK,IAAF,GAASH,OAAT;AACAF,WAAC,CAACM,QAAF,GAAalQ,QAAb;AACA4P,WAAC,CAACO,KAAF;AACD;AACF;AACF,KAvEH,CAyEE;;AAzEF;AAAA;AAAA,WA0EE,wBAAeb,QAAf,EAAuB;AACrB;AACA;AACA,UAAIA,QAAQ,IAAIA,QAAQ,CAACC,KAAzB,EAAgC;AAC9B,aAAKC,uBAAL,CAA6BF,QAA7B;AACD,OAFD,MAEO;AACL,eAAOA,QAAP;AACD;AACF,KAlFH,CAoFE;;AApFF;AAAA;AAAA,WAqFE,qBAAYC,KAAZ,EAAiB;AACf;AACA;AACA,UAAIA,KAAK,CAAC7T,MAAN,KAAiB,GAArB,EAA0B;AACxB,aAAKlE,WAAL,CAAiB2J,QAAjB;AACA,eAAO,EAAP;AACD,OAHD,MAGO;AACL,YAAMiP,MAAM,GAAGb,KAAK,CAACc,OAAN,IAAiB,cAAhC;AACA,eAAOrC,gDAAU,CAACoC,MAAD,CAAjB;AACD;AACF,KA/FH,CAiGE;;AAjGF;AAAA;AAAA,WAkGE,iCAAwBd,QAAxB,EAAgC;AAC9B;AACA;AACA,YAAM,IAAIgB,KAAJ,CAAUhB,QAAQ,CAACe,OAAnB,CAAN;AACD;AAtGH;;AAAA;AAAA;;;mBAAapC,YAAU3R,sDAAAA,CAAAA,6DAAAA,GAAAA,sDAAAA,CAAAA,oDAAAA,GAAAA,sDAAAA,CAAAA,yDAAAA,GAAAA,sDAAAA,CAAAA,sDAAAA;AAAA;;;SAAV2R;AAAU/E,WAAV+E,UAAU;AAAAH,cAFT;;;;;;;;;;;;;;;;;;;;;;;;AChBd;;;AAIO,IAAM1Q,kBAAb;AAKE,8BAAoBhG,SAApB,EAAwC;AAAA;;AAApB;AAJZ,kBAA8B;AACpCoZ,wBAAkB,EAAE,KAAKpZ,SAAL,CAAeK,WAAf,CAA2B+Y;AADX,KAA9B;AAKN,SAAKC,kBAAL;AACD;;AAPH;AAAA;AAAA,WASS,qBACL3V,IADK,EAELkO,GAFK,EAGL0H,UAHK,EAILC,YAJK,EAKLrM,QALK,EAKY;AAEjBiM,MAAAA,6EAAA,CAA0BzV,IAA1B,EAAgCkO,GAAhC,EAAqC,KAAK6H,mBAAL,CAAyBH,UAAzB,CAArC,EAA2EC,YAA3E,EAAyFrM,QAAzF;AACD;AAjBH;AAAA;AAAA,WAmBS,kBAASxJ,IAAT,EAAuB4V,UAAvB,EAA+DC,YAA/D,EAAuG;AAC5GJ,MAAAA,0EAAA,CAAuBzV,IAAvB,EAA6B,KAAK+V,mBAAL,CAAyBH,UAAzB,CAA7B,EAAmEC,YAAnE;AACD;AArBH;AAAA;AAAA,WAuBS,kBAASpB,KAAT,EAAuBmB,UAAvB,EAA+DC,YAA/D,EAAuG;AAC5GJ,MAAAA,8EAAA,CAA2BhB,KAA3B,EAAkC,IAAlC,EAAwC,KAAKsB,mBAAL,CAAyBH,UAAzB,CAAxC,EAA8EC,YAA9E;AACD;AAzBH;AAAA;AAAA,WA2BU,6BAAoBD,UAApB,EAA0D;AAChE,UAAI,CAACA,UAAL,EAAiB;AACfA,kBAAU,GAAG,EAAb;AACD,OAH+D,CAKhE;;;AAEA,aAAOA,UAAP;AACD;AAnCH;AAAA;AAAA,WAqCS,8BAAkB;AACvB,UAAI,CAACH,sEAAL,EAAyB;AACvBA,QAAAA,gFAAA,CAA6B,KAAKS,MAAlC;AACAT,QAAAA,6FAAA;AACA,aAAKnU,2BAAL,CAAiCjE,YAAY,CAACC,OAAb,CAAqB,WAArB,CAAjC;AACD;AACF;AA3CH;AAAA;AAAA,WA6CS,qCAA4BO,MAA5B,EAAkC;AACvC4X,MAAAA,2FAAA,CAAwC5X,MAAxC;AACD;AA/CH;;AAAA;AAAA;;;mBAAayE,oBAAkBd,sDAAAA,CAAAA,yDAAAA;AAAA;;;SAAlBc;AAAkB8L,WAAlB9L,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA/B;;;;;;AAOO,IAAM+T,WAAb;AACE,uBAAoB5b,MAApB,EAA4C6b,MAA5C,EAAuE5Z,WAAvE,EAAyG2G,UAAzG,EAA+H;AAAA;;AAA3G;AAAwB;AAA2B;AAAkC;AAGzG,uBAAc,OAAd;AAHmI,GADrI,CAME;;;AANF;AAAA;AAAA,WAOQ,oBAAQ;;;;;;AACZhG,4BAAY,CAACwC,OAAb,CAAqB,aAArB,EAAoCC,IAAI,CAACC,SAAL,CAAe,EAAf,CAApC;AACA1C,4BAAY,CAACwC,OAAb,CAAqB,WAArB,EAAkC,EAAlC;AACAxC,4BAAY,CAACwC,OAAb,CAAqB,QAArB,EAA+B,EAA/B;AACAxC,4BAAY,CAACwC,OAAb,CAAqB,oBAArB,EAA2C,IAA3C;AACAxC,4BAAY,CAACwC,OAAb,CAAqB,oBAArB,EAA2C,IAA3C;AACAxC,4BAAY,CAACwC,OAAb,CAAqB,uBAArB,EAA8C,IAA9C,GACA;AACA;AACA;AACA;AACA;;;AACA,uBAAM,KAAKnD,WAAL,CAAiBiJ,cAAjB,EAAN;;;AACA,qBAAKlL,MAAL,CAAYC,QAAZ,CAAqB,CAAC,QAAD,CAArB;;;;;;;;;AACD;AArBH;AAAA;AAAA,WAuBE,+BAAmB;AACjB,aAAO,KAAKgC,WAAL,CAAiB+D,QAAjB,CAA0BQ,cAA1B,EAAP;AACD;AAzBH;AAAA;AAAA,WA2BQ,4BAAgB;;;;;;kDAGb,KAAKvE,WAAL,CAAiB+D,QAAjB,CAA0BQ,cAA1B,GAA2C/C,MAA3C,GAAoD;;;;;;;;;AAC5D;AA/BH;AAAA;AAAA,WAiCQ,0BAAc;;;;;;;;;;;;AAEnB;AAnCH;AAAA;AAAA,WAqCE,2BAAe;AAAA;;AACb,UAAI,KAAKqY,YAAT,EAAuB;AACrBC,oBAAY,CAAC,KAAKD,YAAN,CAAZ;AACD;;AACD,WAAKA,YAAL,GAAoBE,UAAU,CAAC,YAAK;AAClC,YAAMrQ,SAAS,GAAG,KAAI,CAACkQ,MAAL,CAAYI,IAAZ,CAAiBvQ,8IAAjB,EAAgD;AAChEoB,eAAK,EAAE,OADyD;AAEhEoP,sBAAY,EAAE,IAFkD;AAGhE5Q,cAAI,EAAE;AAH0D,SAAhD,CAAlB;AAKD,OAN6B,EAM3B,KAAK6Q,WANsB,CAA9B;AAOD;AAhDH;;AAAA;AAAA;;;mBAAaP,aAAW7U,sDAAAA,CAAAA,mDAAAA,GAAAA,sDAAAA,CAAAA,+DAAAA,GAAAA,sDAAAA,CAAAA,4DAAAA,GAAAA,sDAAAA,CAAAA,8DAAAA;AAAA;;;SAAX6U;AAAWjI,WAAXiI,WAAW;AAAArD,cAFV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRd;AACA;AACA;AACA;AACA;;;;;AAOO,IAAM8D,WAAb;AACE,uBAAoBC,UAApB,EAAoDza,SAApD,EAAkF7B,MAAlF,EAAgG;AAAA;;AAA5E;AAAgC;AAA8B;AAC3E,4BAAyC,IAAIoc,iDAAJ,CAAoB,IAApB,CAAzC;AACA,0BAAuC,IAAIA,iDAAJ,CAAoB,IAApB,CAAvC;AACA,6BAA0C,IAAIA,iDAAJ,CAAoB,IAApB,CAA1C;AACA,0BAA2C,IAAIA,iDAAJ,CAAoB,KAApB,CAA3C;AACA,wBAAyC,IAAIA,iDAAJ,CAAoB,IAApB,CAAzC;AAL8F;;AADvG;AAAA;AAAA,WAWE,uBAAcG,QAAd,EAAsB;AACpB,UAAMzX,OAAO;AACX0X,iBAAS,EAAEvQ,uEADA;AAEX3I,iBAAS,EAAEV,YAAY,CAACU;AAFb,SAGRiZ,QAHQ,CAAb;AAKA,aAAO,KAAKD,UAAL,CAAgBnD,IAAhB,CAAqB,aAArB,EAAoCrU,OAApC,CAAP;AACD;AAlBH;AAAA;AAAA,WAoBQ,yBAAgB2X,eAAhB,EAA+B;;;;;;;;iDAC5B,IAAIC,OAAJ,CAAkB,UAACC,OAAD,EAAUC,MAAV,EAAoB;AAC3C,sBAAMC,OAAO,GAAGxX,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,CAAhB;AACA,sBAAMiC,OAAO,GAAG;AACdgY,6BAAS,EAAED,OAAO,CAACC,SADL;AAEdC,4BAAQ,EAAEF,OAAO,CAACE,QAAR,GAAmBF,OAAO,CAACE,QAA3B,GAAsC,IAFlC;AAGdC,8BAAU,EAAE,IAHE;AAIdC,2BAAO,EAAEJ,OAAO,CAACjW,KAJH;AAKdsW,2BAAO,EAAEL,OAAO,CAACM,KALH;AAMdV,mCAAe,EAAfA;AANc,mBAAhB;;AAQA,uBAAI,CAACH,UAAL,CAAgB3R,GAAhB,CAAoB,WAApB,EAAiC7F,OAAjC,EAA0CpC,SAA1C,CACE,cAAI,EAAG;AACL,yBAAI,CAAC0a,mBAAL,CAAyB9R,IAAzB;;AACAqR,2BAAO;AACR,mBAJH,EAKE,aAAG,EAAG;AACJ7Q,2BAAO,CAACC,GAAR,CAAY,oBAAZ,EAAkCkN,GAAlC;AACA0D,2BAAO;AACR,mBARH;AAUD,iBApBM;;;;;;;;;AAqBR;AA1CH;AAAA;AAAA,WA4CU,6BAAoBU,YAApB,EAAgC;AACtC,UAAMC,QAAQ,GAAG,IAAI7X,IAAJ,CAAS4X,YAAT,CAAjB;AACA,UAAM1M,IAAI,GAAG2M,QAAQ,CAACC,kBAAT,CAA4B,OAA5B,CAAb;AACA,UAAMC,IAAI,GAAGF,QAAQ,CAACG,kBAAT,CAA4B,OAA5B,CAAb;AACA,UAAMC,SAAS,aAAM/M,IAAN,cAAc6M,IAAd,CAAf;AACA,WAAKG,gBAAL,CAAsB5a,IAAtB,CAA2B2a,SAA3B;AACD;AAlDH;AAAA;AAAA,WAoDE,gCAAoB;AAAA;;AAClB,UAAM5Y,OAAO,GAAG;AACd8B,aAAK,EAAEhE,YAAY,CAACC,OAAb,CAAqB,WAArB,CADO;AAEd2Z,iBAAS,EAAEvQ,uEAFG;AAGd2R,YAAI,EAAE,mBAHQ;AAIdlM,eAAO,EAAE,mBAJK;AAKdmM,qBAAa,EAAE;AALD,OAAhB;AAOA,aAAO,KAAKvB,UAAL,CAAgB3R,GAAhB,CAAoB,aAApB,EAAmC7F,OAAnC,EAA4CP,IAA5C,CACLwP,oDAAG,CAAC,cAAI,EAAG;AACT,YAAI,CAACzI,IAAL,EAAW;AACT,gBAAI,CAACwS,WAAL,GAAmB,KAAnB;AACD,SAFD,MAEO;AACL,gBAAI,CAACA,WAAL,GAAmBxS,IAAI,CAAC,aAAD,CAAvB;AACD;;AACD,cAAI,CAACyS,cAAL,CAAoBhb,IAApB,CAAyB,MAAI,CAAC+a,WAA9B;;AACA,eAAO,IAAIlK,mEAAJ,CAAgBtI,IAAI,CAAC8E,IAArB,CAAP;AACD,OARE,CADE,EAUL2D,oDAAG,CAAC,cAAI;AAAA,eAAIzI,IAAI,CAACwI,MAAT;AAAA,OAAL,CAVE,CAAP;AAYD;AAxEH;AAAA;AAAA,WA0EE,wBAAekK,MAAf,EAAuBC,QAAvB,EAA+B;AAC7B,UAAMnZ,OAAO,GAAG;AACdxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADG;AAEdmb,cAAM,EAANA,MAFc;AAGdC,gBAAQ,EAARA;AAHc,OAAhB;AAKA,aAAO,KAAK3B,UAAL,CAAgBnD,IAAhB,CAAqB,gBAArB,EAAuCrU,OAAvC,CAAP;AACD;AAjFH;AAAA;AAAA,WAkFE,wBAAe4B,KAAf,EAAoB;AAClB,UAAIA,KAAJ,EAAW;AACT,eAAOA,KAAK,CAACZ,QAAN,GAAiBa,WAAjB,OAAmC,MAA1C;AACD;;AACD,aAAO,KAAP;AACD;AAvFH;AAAA;AAAA,WAyFE,6BAAiB;AAAA;;AACf,UAAMkW,OAAO,GAAGxX,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,CAAhB;AACA,UAAMiC,OAAO,GAAG;AACd8B,aAAK,EAAEiW,OAAO,CAACjW,KADD;AAEdgX,YAAI,EAAE,oBAFQ;AAGdlM,eAAO,EAAE,oBAHK;AAIdmM,qBAAa,EAAE;AAJD,OAAhB;AAOA,WAAKvB,UAAL,CAAgB3R,GAAhB,CAAoB,gBAApB,EAAsC7F,OAAtC,EAA+CpC,SAA/C,CAAyD,cAAI,EAAG;AAC9D,YAAI4I,IAAJ,EAAU;AACR1I,sBAAY,CAACwC,OAAb,CAAqB,QAArB,EAA+BkG,IAA/B;;AACA,cAAI,MAAI,CAAClJ,cAAL,CAAoB,MAAI,CAACP,SAAL,CAAeQ,eAAf,CAA+BC,UAAnD,CAAJ,EAAoE;AAClE,gBAAI,CAAC,MAAI,CAACQ,iBAAL,CAAuBob,QAAvB,EAAL,EAAwC;AACtC/c,cAAAA,0FAAA,CAAkC,WAAlC,EAA+C;AAC7C8B,0BAAU,EAAE,MAAI,CAACjD,MAAL,CAAYyT,GADqB;AAE7CtQ,6BAAa,EAAE,MAAI,CAACnD,MAAL,CAAYyT,GAFkB;AAG7CrQ,sBAAM,EAAEkI,IAHqC;AAI7CjI,wBAAQ,EAAE,MAAI,CAACrD,MAAL,CAAYyT;AAJuB,eAA/C;AAMD;AACF;AACF;AACF,OAdD;AAeD;AAjHH;;AAAA;AAAA;;;mBAAa4I,aAAWtV,uDAAAA,CAAAA,oDAAAA,GAAAA,uDAAAA,CAAAA,yDAAAA,GAAAA,uDAAAA,CAAAA,oDAAAA;AAAA;;;SAAXsV;AAAW1I,WAAX0I,WAAW;AAAA9D,cAFV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRd;AACA;AAGA;;;;;;AAIO,IAAM6F,cAAb;AAmBE,0BACU9B,UADV,EAEUnF,aAFV,EAGUkH,YAHV,EAIUtc,WAJV,EAIkC;AAAA;;AAHxB;AACA;AACA;AACA;AAtBF,qBAAY,mBAAZ;AACA,0BAAiBkK,uEAAjB;AACA,6KAAeC,kEAAf;AACR,gCAA6C,IAAIkQ,iDAAJ,CAAoB,IAApB,CAA7C;AACA,8BAA2C,IAAIA,iDAAJ,CAAoB,EAApB,CAA3C;AACA,wBAAqC,IAAIA,iDAAJ,CAAoB,IAApB,CAArC;AACA,2BAAwC,IAAIA,iDAAJ,CAAoB,CAApB,CAAxC;AACA,6BAA0C,IAAIA,iDAAJ,CAAoB,CAApB,CAA1C;AACA,8BAA2C,IAAIA,iDAAJ,CAAoB,CAApB,CAA3C;AACA,6BAA0C,IAAIA,iDAAJ,CAAoB,CAApB,CAA1C;AACA,8BAA2C,IAAIA,iDAAJ,CAAoB,CAApB,CAA3C;AACA,6BAA0C,IAAIA,iDAAJ,CAAoB,CAApB,CAA1C;AACO,sBAAmC,IAAIA,iDAAJ,CAAoB,OAApB,CAAnC,CAU2B,CATlC;;AACQ,+BAAsB,EAAtB;AAER,wBAAe,IAAIA,iDAAJ,CAAoB,KAApB,CAAf,CAMkC,CAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AAjCH;AAAA;AAAA,WAkCE,qBAAY7W,IAAZ,EAAgB;AACd,WAAK+Y,SAAL,GAAiB/Y,IAAjB;AACA,WAAKgZ,YAAL,CAAkBxb,IAAlB,CAAuBwC,IAAI,CAACoB,WAAL,EAAvB,EAFc,CAGd;AACA;AACA;;AACA,WAAK6X,YAAL,CAAkBzb,IAAlB,CAAuB,KAAvB,EANc,CAOd;AACA;AACD;AA3CH;AAAA;AAAA,WA4CE,uBAAW;AACT,aAAO,KAAKub,SAAZ;AACD;AA9CH;AAAA;AAAA,WAgDE,wBAAeG,aAAf,EAA8Bpb,QAA9B,EAA+G;AAAA;;AAAA,UAAvEqb,WAAuE,uEAAzD,CAAyD;AAAA,UAAtDC,eAAsD;AAAA,UAApCC,kBAAoC;AAAA,UAAfC,cAAe;AAC7G,UAAMC,SAAS,GAAG,KAAK3H,aAAL,CAAmB4H,kBAAnB,EAAlB;AACA,UAAIC,cAAc,GAAG,KAAK7H,aAAL,CAAmB8H,kBAAnB,EAArB;AACAD,oBAAc,GAAG,KAAK7H,aAAL,CAAmB+H,SAAnB,CAA6BF,cAA7B,CAAjB,CAH6G,CAI7G;;AAEA,UAAI,CAACJ,kBAAL,EAAyB;AACvBI,sBAAc,CAACA,cAAf,CAA8BG,IAA9B,CAAmC,gBAAM,EAAG;AAC1C;AACA,cAAI,CAAC,mBAAD,EAAsB,sBAAtB,EAA8C,gBAA9C,EAAgE,iBAAhE,EACJ,eADI,EACarb,OADb,CACqBxC,MAAM,CAACkO,GAD5B,IACmC,CAAC,CADpC,IACyCiP,aAAa,CAAC/M,OAAd,IAAyB,WADtE,EACmF;AACjF,gBAAI+M,aAAa,CAAC/M,OAAd,KAA0B,YAA1B,IAA0C,CAAC,gBAAD,EAAmB,cAAnB,EAAmC5N,OAAnC,CAA2CxC,MAAM,CAACkO,GAAlD,IAAyD,CAAvG,EAAyG;AACvGoP,gCAAkB,GAAG,IAArB;AACD;AACF;AACF,SARD;AASD,OAhB4G,CAiB7G;;;AACA,UAAIA,kBAAkB,IAAIC,cAAc,KAAK,UAA7C,EAAyD;AACvD,YAAIO,eAAe,GAAG,CACpB;AAAE5P,aAAG,EAAE,sBAAP;AAA+B9I,eAAK,EAAE,aAAtC;AAAqD2Y,kBAAQ,EAAE;AAA/D,SADoB,EAEpB;AACE7P,aAAG,EAAE,oBADP;AAEE9I,eAAK,EACH,2HAHJ;AAIE2Y,kBAAQ,EAAE;AAJZ,SAFoB,CAAtB;AASAL,sBAAc,CAACA,cAAf,sKAAoCA,cAAc,CAACA,cAAnD,GAAsEI,eAAtE;AACD;;AAGD,UAAIP,cAAc,KAAK,SAAvB,EAAkC;AAChC;AACAA,sBAAc,GAAGG,cAAc,CAACA,cAAf,CAA8B1d,MAA9B,CAAqC,mBAAS,EAAG;AAChE,iBAAO,CAAC,CAAC,gBAAD,EAAmB,kBAAnB,EAAuC,eAAvC,EAAwD,cAAxD,EAAwE,eAAxE,EAAyFge,QAAzF,CAAkGC,SAAS,CAAC/P,GAA5G,CAAR;AACD,SAFgB,CAAjB;AAGAwP,sBAAc,CAACA,cAAf,4JAAoCH,cAApC;AACD,OAND,MAMO,IAAIA,cAAc,KAAK,UAAvB,EAAmC;AACxC;AACAA,sBAAc,GAAGG,cAAc,CAACA,cAAf,CAA8B1d,MAA9B,CAAqC,mBAAS,EAAG;AAChE,iBAAO,CAAC,CAAC,gBAAD,EAAmB,iBAAnB,EAAsC,eAAtC,EAAuD,cAAvD,EAAuE,eAAvE,EAAwF,sBAAxF,EAAgH,oBAAhH,EAAsIge,QAAtI,CAA+IC,SAAS,CAAC/P,GAAzJ,CAAR;AACD,SAFgB,CAAjB;AAGAwP,sBAAc,CAACA,cAAf,4JAAoCH,cAApC;AACD,OANM,MAMA,IAAIA,cAAc,KAAK,QAAvB,EAAiC;AACtC;AACAA,sBAAc,GAAGG,cAAc,CAACA,cAAf,CAA8B1d,MAA9B,CAAqC,mBAAS,EAAG;AAChE,iBAAO,CAAC,CAAC,gBAAD,EAAmB,iBAAnB,EAAsC,eAAtC,EAAuD,gBAAvD,EAAyE,kBAAzE,EAA6F,sBAA7F,EAAqH,oBAArH,EAA2Ige,QAA3I,CAAoJC,SAAS,CAAC/P,GAA9J,CAAR;AACD,SAFgB,CAAjB;AAGAwP,sBAAc,CAACA,cAAf,4JAAoCH,cAApC;AACD,OANM,MAMA,IAAIA,cAAc,KAAK,gBAAvB,EAAyC;AAC9CA,sBAAc,GAAGG,cAAc,CAACA,cAAf,CAA8B1d,MAA9B,CAAqC,mBAAS,EAAG;AAChE,iBAAO,CAAC,CAAC,gBAAD,EAAmB,kBAAnB,EAAuC,cAAvC,EAAuD,eAAvD,EAAwEge,QAAxE,CAAiFC,SAAS,CAAC/P,GAA3F,CAAR;AACD,SAFgB,CAAjB;AAGAwP,sBAAc,CAACA,cAAf,4JAAoCH,cAApC;AACD,OAvD4G,CAwD7G;;;AACA,UAAIG,cAAc,CAAC,YAAD,CAAd,IAAgC,IAApC,EAA0C;AACxCA,sBAAc,CAAC,WAAD,CAAd,GAA8B,KAAK7H,aAAL,CAAmBqI,SAAnB,CAA6B9H,SAA3D;AACAsH,sBAAc,CAAC,SAAD,CAAd,GAA4B,KAAK7H,aAAL,CAAmBqI,SAAnB,CAA6B5H,OAAzD;;AACA,YAAIoH,cAAc,CAAC,kBAAD,CAAd,IAAsCA,cAAc,CAAC,kBAAD,CAAd,CAAmCM,QAAnC,CAA4CpI,mCAAM,GAAGS,MAAT,CAAgB,MAAhB,CAA5C,CAA1C,EAAgH;AAC9GqH,wBAAc,CAAC,kBAAD,CAAd,GAAqCA,cAAc,CAAC,kBAAD,CAAd,CAAmClI,KAAnC,CAAyC,GAAzC,EAA8CxV,MAA9C,CAAqD,cAAI;AAAA,mBAAIkC,IAAI,IAAI0T,mCAAM,GAAGS,MAAT,CAAgB,MAAhB,CAAZ;AAAA,WAAzD,EAA8FE,IAA9F,EAArC;AACD;AACF,OAND,MAMO,IAAImH,cAAc,CAAC,YAAD,CAAd,IAAgC,IAApC,EAA0C;AAC/CA,sBAAc,CAAC,WAAD,CAAd,GAA8B,KAAK7H,aAAL,CAAmBqI,SAAnB,CAA6B9H,SAA3D;AACAsH,sBAAc,CAAC,SAAD,CAAd,GAA4B,KAAK7H,aAAL,CAAmBqI,SAAnB,CAA6B5H,OAAzD;;AACA,YAAIoH,cAAc,CAAC,kBAAD,CAAd,IAAsCA,cAAc,CAAC,kBAAD,CAAd,CAAmCM,QAAnC,CAA4CpI,mCAAM,GAAGuI,GAAT,CAAa,CAAb,EAAgB,OAAhB,EAAyB9H,MAAzB,CAAgC,MAAhC,CAA5C,CAA1C,EAAgI;AAC9HqH,wBAAc,CAAC,kBAAD,CAAd,GAAqCA,cAAc,CAAC,kBAAD,CAAd,CAAmClI,KAAnC,CAAyC,GAAzC,EAA8CxV,MAA9C,CAAqD,cAAI;AAAA,mBAAIkC,IAAI,IAAI0T,mCAAM,GAAGuI,GAAT,CAAa,CAAb,EAAgB,OAAhB,EAAyB9H,MAAzB,CAAgC,MAAhC,CAAZ;AAAA,WAAzD,EAA8GE,IAA9G,EAArC;AACD;AACF;;AAED,UAAI6H,SAAS,GAAG;AAEZpc,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB;AACX8c,iBAAS,EAAE/c,YAAY,CAACC,OAAb,CAAqB,QAArB;AACXia,iBAAS,EAAEla,YAAY,CAACC,OAAb,CAAqB,aAArB,KAAuCwC,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,EAAgDia;AAClGC,gBAAQ,EAAEna,YAAY,CAACC,OAAb,CAAqB,aAArB,KAAuCwC,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,EAAgDka;AACjG6C,kBAAU,EAAE;AACZpD,iBAAS,EAAE,KAAKqD;AAChBjC,YAAI,EAAEva,QAAQ,GAAGA,QAAH,GAAc,KAAKib;AACjCI,mBAAW,EAAXA;AACAZ,mBAAW,EAAE,KAAK/b,WAAL,CAAiB+b;SAC3BgB,YACAL,gBACAO,eAbS,CAAhB;;AAiBA,UAAIL,eAAJ,EAAqB;AACnBe,iBAAS,CAACzQ,IAAV,CAAc0K,gCAAM+F,SAAS,CAAC,CAAD,CAAf,GAAkB;AAAEhB,qBAAW,EAAE;AAAf,SAAlB,CAAd;AACD;;AACD,WAAKpH,aAAL,GAAqBoI,SAAS,CAAC,CAAD,CAA9B;AACAA,eAAS,GAAGA,SAAS,CAAC3L,GAAV,CAAc,cAAI;AAAA,eAAI,KAAI,CAACuI,UAAL,CAAgBnD,IAAhB,CAAqB,SAArB,EAAgC2G,IAAhC,CAAJ;AAAA,OAAlB,CAAZ;AACA,aAAO3B,+CAAQ,CAACuB,SAAD,CAAf;AACD;AA9IH;AAAA;AAAA,WAgJE,8BAAqBjB,aAArB,EAAoChU,QAApC,EAAmF;AAAA,UAArCiU,WAAqC,uEAAvB,CAAuB;AAAA,UAApBqB,UAAoB,uEAAP,OAAO;AACjF,UAAMjB,SAAS,GAAG,KAAK3H,aAAL,CAAmB4H,kBAAnB,EAAlB;AACA,UAAIC,cAAc,GAAG,KAAK7H,aAAL,CAAmB8H,kBAAnB,EAArB;AACAD,oBAAc,GAAG,KAAK7H,aAAL,CAAmB+H,SAAnB,CAA6BF,cAA7B,CAAjB;AACA,UAAMla,OAAO;AACXxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADA;AAEX8c,iBAAS,EAAE/c,YAAY,CAACC,OAAb,CAAqB,QAArB,CAFA;AAGXia,iBAAS,EAAEla,YAAY,CAACC,OAAb,CAAqB,aAArB,KAAuCwC,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,EAAgDia,SAHvF;AAIXC,gBAAQ,EAAEna,YAAY,CAACC,OAAb,CAAqB,aAArB,KAAuCwC,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,EAAgDka,QAJtF;AAKX6C,kBAAU,EAAE,OALD;AAMXpD,iBAAS,EAAE,KAAKqD,cANL;AAOXjC,YAAI,EAAE,KAAKU,SAPA;AAQX0B,kBAAU,EAAE,KARD;AASXlC,mBAAW,EAAE,KAAK/b,WAAL,CAAiB+b,WATnB;AAUXY,mBAAW,EAAXA,WAVW;AAWXqB,kBAAU,EAAVA;AAXW,SAYRjB,SAZQ,GAaRL,aAbQ,GAcRO,cAdQ,GAcM;AACjBiB,0BAAkB,EAAE,KAAK9I,aAAL,CAAmB+I,aAAnB,CAAiCxZ;AADpC,OAdN,CAAb;;AAiBA,UAAI5B,OAAO,CAAC4M,OAAR,KAAoB,eAApB,IAAuC5M,OAAO,CAAC4M,OAAR,KAAoB,kBAA3D,IAAiF5M,OAAO,CAAC4M,OAAR,KAAoB,2BAAzG,EAAsI;AACpI,eAAO5M,OAAO,CAAC,WAAD,CAAd;AACA,eAAOA,OAAO,CAAC,SAAD,CAAd;AACD;;AACD,UAAI8Z,kBAAJ;AACA9Z,aAAO,CAACka,cAAR,CAAuBG,IAAvB,CAA4B,gBAAM,EAAG;AACnC;AACA,YAAI,CAAC,mBAAD,EAAsB,sBAAtB,EAA8C,gBAA9C,EAAgE,iBAAhE,EAAmF,gBAAnF,EAAqG,cAArG,EAAqH,eAArH,EAAsIrb,OAAtI,CAA8IxC,MAAM,CAACkO,GAArJ,IAA4J,CAAC,CAA7J,IAAkK1K,OAAO,CAAC4M,OAAR,IAAmB,WAAzL,EAAsM;AACpM,cAAI5M,OAAO,CAAC4M,OAAR,KAAoB,YAApB,IAAoC,CAAC,gBAAD,EAAmB,cAAnB,EAAmC,eAAnC,EAAoD5N,OAApD,CAA4DxC,MAAM,CAACkO,GAAnE,IAA0E,CAAlH,EAAoH;AAClHoP,8BAAkB,GAAG,IAArB;AACD;AACF;AACF,OAPD;;AAQA,UAAIA,kBAAJ,EAAwB;AACtB,YAAIQ,eAAe,GAAG,CACpB;AAAE5P,aAAG,EAAE,sBAAP;AAA+B9I,eAAK,EAAE,aAAtC;AAAqD2Y,kBAAQ,EAAE;AAA/D,SADoB,EAEpB;AACE7P,aAAG,EAAE,oBADP;AAEE9I,eAAK,EACH,2HAHJ;AAIE2Y,kBAAQ,EAAE;AAJZ,SAFoB,CAAtB;AASAva,eAAO,CAACka,cAAR,sKAA6Bla,OAAO,CAACka,cAArC,GAAwDI,eAAxD;AACD;;AACD,aAAO,KAAK9C,UAAL,CAAgB6D,YAAhB,CAA6B,eAA7B,EAA8C1V,QAA9C,EAAwD3F,OAAxD,CAAP;AACD;AA/LH;AAAA;AAAA,WAiME,oCAA2Bsb,UAA3B,EAAuC3V,QAAvC,EAA+C;AAC7C,UAAMqU,SAAS,GAAG,KAAK3H,aAAL,CAAmB4H,kBAAnB,EAAlB;AACA,UAAIC,cAAc,GAAG,KAAK7H,aAAL,CAAmB8H,kBAAnB,EAArB;AACAD,oBAAc,GAAG,KAAK7H,aAAL,CAAmB+H,SAAnB,CAA6BF,cAA7B,CAAjB;AACA,UAAMqB,QAAQ,GAAGD,UAAU,CAACrM,GAAX,CAAe,cAAI,EAAG;AACrC;AACA,YAAMjP,OAAO,GAAG;AACd8M,qBAAW,EAAEpO,IADC;AAEd8c,uBAAa,EAAE,EAFD;AAGdC,uBAAa,EAAE,CAHD;AAIdC,wBAAc,EAAE;AAJF,SAAhB,CAFqC,CASrC;AACA;AACA;;AACA,eAAO1b,OAAP;AACD,OAbgB,CAAjB;AAcA,UAAMA,OAAO;AACXxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADA;AAEX8c,iBAAS,EAAE/c,YAAY,CAACC,OAAb,CAAqB,QAArB,CAFA;AAGXia,iBAAS,EAAEla,YAAY,CAACC,OAAb,CAAqB,aAArB,KAAuCwC,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,EAAgDia,SAHvF;AAIXC,gBAAQ,EAAEna,YAAY,CAACC,OAAb,CAAqB,aAArB,KAAuCwC,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,EAAgDka,QAJtF;AAKX6C,kBAAU,EAAE,OALD;AAMXpD,iBAAS,EAAE,KAAKqD,cANL;AAOXjC,YAAI,EAAE,KAAKU,SAPA;AAQXI,mBAAW,EAAE,CARF;AASXhH,iBAAS,EAAEoH,SAAS,CAACpH,SATV;AAUXE,eAAO,EAAEkH,SAAS,CAAClH,OAVR;AAWX6I,iBAAS,EAAE,CAXA;AAYXC,gBAAQ,EAAE,EAZC;AAaXV,kBAAU,EAAE,KAbD;AAcXD,kBAAU,EAAE,OAdD;AAeXjC,mBAAW,EAAE,KAAK/b,WAAL,CAAiB+b,WAfnB;AAgBXuC,gBAAQ,EAARA;AAhBW,SAiBRrB,cAjBQ,CAAb;AAoBA,UAAIJ,kBAAJ;AACA9Z,aAAO,CAACka,cAAR,CAAuBG,IAAvB,CAA4B,gBAAM,EAAG;AACnC;AACA,YAAI,CAAC,mBAAD,EAAsB,sBAAtB,EAA8C,gBAA9C,EAAgE,iBAAhE,EAAmF,eAAnF,EAAoGrb,OAApG,CAA4GxC,MAAM,CAACkO,GAAnH,IAA0H,CAAC,CAA3H,IAAgI1K,OAAO,CAAC4M,OAAR,IAAmB,WAAvJ,EAAoK;AAClK,cAAI5M,OAAO,CAAC4M,OAAR,KAAoB,YAApB,IAAoC,CAAC,gBAAD,EAAmB,cAAnB,EAAmC5N,OAAnC,CAA2CxC,MAAM,CAACkO,GAAlD,IAAyD,CAAjG,EAAmG;AACjGoP,8BAAkB,GAAG,IAArB;AACD;AACF;AACF,OAPD;;AAQA,UAAIA,kBAAJ,EAAwB;AACtB,YAAIQ,eAAe,GAAG,CACpB;AAAE5P,aAAG,EAAE,sBAAP;AAA+B9I,eAAK,EAAE,aAAtC;AAAqD2Y,kBAAQ,EAAE;AAA/D,SADoB,EAEpB;AACE7P,aAAG,EAAE,oBADP;AAEE9I,eAAK,EACH,2HAHJ;AAIE2Y,kBAAQ,EAAE;AAJZ,SAFoB,CAAtB;AASAva,eAAO,CAACka,cAAR,sKAA6Bla,OAAO,CAACka,cAArC,GAAwDI,eAAxD;AACD;;AAGD,aAAO,KAAK9C,UAAL,CAAgB6D,YAAhB,CAA6B,mBAA7B,EAAkD1V,QAAlD,EAA4D3F,OAA5D,CAAP;AACD;AA/PH;AAAA;AAAA,WAmQE,+BAAsBsb,UAAtB,EAAkC3V,QAAlC,EAA4CkW,SAA5C,EAAqD;AAAA;;AACnD,UAAM7B,SAAS,GAAG,KAAK3H,aAAL,CAAmB4H,kBAAnB,EAAlB;AACA,UAAIC,cAAc,GAAG,KAAK7H,aAAL,CAAmB8H,kBAAnB,EAArB;AACAD,oBAAc,GAAG,KAAK7H,aAAL,CAAmB+H,SAAnB,CAA6BF,cAA7B,CAAjB;AACA,UAAMqB,QAAQ,GAAGD,UAAU,CAACrM,GAAX,CAAe,cAAI,EAAG;AACrC,YAAM6M,WAAW,GAAG,MAAI,CAACC,oBAAL,CAA0Brd,IAA1B,CAApB;;AACA,YAAMsB,OAAO,GAAG;AACd8M,qBAAW,EAAEpO,IADC;AAEd8c,uBAAa,EAAE,EAFD;AAGdC,uBAAa,EAAE,CAHD;AAIdC,wBAAc,EAAEI,WAAW,CAACJ;AAJd,SAAhB;;AAOA,YAAII,WAAW,CAACrb,IAAZ,KAAqB,WAArB,IAAoCqb,WAAW,CAACrb,IAAZ,KAAqB,YAA7D,EAA2E;AACzET,iBAAO,CAAC,gBAAD,CAAP,GAA4B,EAA5B;AACD;;AACD,eAAOA,OAAP;AACD,OAbgB,CAAjB;AAcA,UAAMA,OAAO;AACXxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADA;AAEX8c,iBAAS,EAAE/c,YAAY,CAACC,OAAb,CAAqB,QAArB,CAFA;AAGXia,iBAAS,EAAEla,YAAY,CAACC,OAAb,CAAqB,aAArB,KAAuCwC,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,EAAgDia,SAHvF;AAIXC,gBAAQ,EAAEna,YAAY,CAACC,OAAb,CAAqB,aAArB,KAAuCwC,IAAI,CAACqQ,KAAL,CAAW9S,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAX,EAAgDka,QAJtF;AAKX6C,kBAAU,EAAE,OALD;AAMXpD,iBAAS,EAAE,KAAKqD,cANL;AAOXjC,YAAI,EAAE,KAAKU,SAPA;AAQXI,mBAAW,EAAE,CARF;AASXhH,iBAAS,EAAEoH,SAAS,CAACpH,SATV;AAUXE,eAAO,EAAEkH,SAAS,CAAClH,OAVR;AAWX6I,iBAAS,EAAE,CAXA;AAYXC,gBAAQ,EAAE,EAZC;AAaXV,kBAAU,EAAE,KAbD;AAcXD,kBAAU,EAAE,OAdD;AAeXjC,mBAAW,EAAE,KAAK/b,WAAL,CAAiB+b,WAfnB;AAgBXuC,gBAAQ,EAARA;AAhBW,SAiBRrB,cAjBQ,GAiBM;AACjBvU,gBAAQ,EAAE;AADO,OAjBN,CAAb;AAoBA,UAAImU,kBAAJ;AACA9Z,aAAO,CAACka,cAAR,CAAuBG,IAAvB,CAA4B,gBAAM,EAAG;AACnC;AACA,YAAI,CAAC,mBAAD,EAAsB,sBAAtB,EAA8C,gBAA9C,EAAgE,iBAAhE,EAAmF,eAAnF,EAAoGrb,OAApG,CAA4GxC,MAAM,CAACkO,GAAnH,IAA0H,CAAC,CAA3H,IAAgI1K,OAAO,CAAC4M,OAAR,IAAmB,WAAvJ,EAAoK;AAClK,cAAI5M,OAAO,CAAC4M,OAAR,KAAoB,YAApB,IAAoC,CAAC,gBAAD,EAAmB,cAAnB,EAAmC5N,OAAnC,CAA2CxC,MAAM,CAACkO,GAAlD,IAAyD,CAAjG,EAAmG;AACjGoP,8BAAkB,GAAG,IAArB;AACD;AACF;AACF,OAPD;;AAQA,UAAIA,kBAAJ,EAAwB;AACtB,YAAIQ,eAAe,GAAG,CACpB;AAAE5P,aAAG,EAAE,sBAAP;AAA+B9I,eAAK,EAAE,aAAtC;AAAqD2Y,kBAAQ,EAAE;AAA/D,SADoB,EAEpB;AACE7P,aAAG,EAAE,oBADP;AAEE9I,eAAK,EACH,2HAHJ;AAIE2Y,kBAAQ,EAAE;AAJZ,SAFoB,CAAtB;AASAva,eAAO,CAACka,cAAR,sKAA6Bla,OAAO,CAACka,cAArC,GAAwDI,eAAxD;AACD,OA1DkD,CA4DnD;;;AACA,UAAI0B,gBAAgB,GAAGhc,OAAO,CAACka,cAAR,CAAuB1d,MAAvB,CAA8B,gBAAM,EAAG;AAC5D,eAAO,CAAC,mBAAD,EAAsB,sBAAtB,EAA8C,eAA9C,EAA+D,kBAA/D,EAAmFwC,OAAnF,CAA2FxC,MAAM,CAACkO,GAAlG,IAAyG,CAAC,CAAjH;AACD,OAFsB,CAAvB;;AAIA,UAAIsR,gBAAgB,CAACrd,MAArB,EAA6B;AAC3BqB,eAAO,CAACub,QAAR,sKAAuBvb,OAAO,CAACub,QAA/B,GACG,CAAC;AAAEzO,qBAAW,EAAE,YAAf;AAA6B0O,uBAAa,EAAE,EAA5C;AAAgDC,uBAAa,EAAE,CAA/D;AAAkEC,wBAAc,EAAE;AAAlF,SAAD,EACH;AAAE5O,qBAAW,EAAE,aAAf;AAA8B0O,uBAAa,EAAE,EAA7C;AAAiDC,uBAAa,EAAE,CAAhE;AAAmEC,wBAAc,EAAE;AAAnF,SADG,CADH;AAGD;;AACD,aAAO,KAAKlE,UAAL,CAAgBnD,IAAhB,CAAqB,kBAArB,EAAyCrU,OAAzC,CAAP;AACD;AA1UH;AAAA;AAAA,WA4UE,kCAAyB2F,QAAzB,EAAmCG,MAAnC,EAAyC;AACvC,UAAM9F,OAAO,GAAG;AACd2F,gBAAQ,EAARA,QADc;AAEdG,cAAM,EAANA,MAFc;AAGdmW,gBAAQ,EAAEne,YAAY,CAACC,OAAb,CAAqB,WAArB;AAHI,OAAhB;AAKA,aAAO,KAAKyZ,UAAL,CAAgB6D,YAAhB,CAA6B,2BAA7B,EAA0D1V,QAA1D,EAAoE,EAApE,EAAwE3F,OAAxE,CAAP;AACD;AAnVH;AAAA;AAAA,WAsVE,iCAAwB4M,OAAxB,EAAiCjH,QAAjC,EAA2CsV,UAA3C,EAAqD;AACnD,UAAMjB,SAAS,GAAG,KAAK3H,aAAL,CAAmB4H,kBAAnB,EAAlB;AACA,UAAIC,cAAc,GAAG,KAAK7H,aAAL,CAAmB8H,kBAAnB,EAArB;AACAD,oBAAc,GAAG,KAAK7H,aAAL,CAAmB+H,SAAnB,CAA6BF,cAA7B,CAAjB;AACA,UAAM4B,WAAW,GAAG,KAAKC,oBAAL,CAA0BnP,OAA1B,CAApB;AACA,UAAM5M,OAAO;AACXxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADA;AAEX2Z,iBAAS,EAAE,KAAKqD,cAFL;AAGXjC,YAAI,EAAE,KAAKU,SAHA;AAIX5M,eAAO,EAAPA,OAJW;AAKXgN,mBAAW,EAAE,CALF;AAMXhH,iBAAS,EAAEoH,SAAS,CAACpH,SANV;AAOXE,eAAO,EAAEkH,SAAS,CAAClH,OAPR;AAQX6I,iBAAS,EAAE,CARA;AASXC,gBAAQ,EAAE,CATC;AAUXV,kBAAU,EAAE,KAVD;AAWXD,kBAAU,EAAVA,UAXW;AAYXjC,mBAAW,EAAE,KAAK/b,WAAL,CAAiB+b,WAZnB;AAaX0C,sBAAc,EAAEI,WAAW,CAACJ,cAbjB;AAcXF,qBAAa,EAAEM,WAAW,CAACI,cAdhB;AAeXT,qBAAa,EAAEK,WAAW,CAACK;AAfhB,SAgBRjC,cAhBQ,GAgBM;AACjBiB,0BAAkB,EAAE,KAAK9I,aAAL,CAAmB+I,aAAnB,CAAiCxZ;AADpC,OAhBN,CAAb;AAmBA,aAAO,KAAK4V,UAAL,CAAgB6D,YAAhB,CAA6B,eAA7B,EAA8C1V,QAA9C,EAAwD3F,OAAxD,CAAP;AACD;AA/WH;AAAA;AAAA,WAiXE,gCAAoB;AAClB,UAAIka,cAAc,GAAG,KAAK7H,aAAL,CAAmB8H,kBAAnB,EAArB;AACAD,oBAAc,GAAG,KAAK7H,aAAL,CAAmB+H,SAAnB,CAA6BF,cAA7B,CAAjB;AACA,UAAMla,OAAO;AACXxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADA;AAEX2Z,iBAAS,EAAE,KAAKqD,cAFL;AAGXG,kBAAU,EAAE;AAHD,SAIRhB,cAJQ,CAAb;AAMA,aAAO,KAAK1C,UAAL,CAAgBnD,IAAhB,CAAqB,YAArB,EAAmCrU,OAAnC,CAAP;AACD;AAED;AAEA;;AA/XF;AAAA;AAAA,WAgYE,8BAAqBS,IAArB,EAA2B2b,KAA3B,EAAkCtU,IAAlC,EAAwC4T,cAAxC,EAAuD;AACrD,WAAKW,mBAAL,CAAyB5b,IAAzB,IAAiC;AAC/BA,YAAI,EAAJA,IAD+B;AAE/B2b,aAAK,EAALA,KAF+B;AAG/BtU,YAAI,EAAJA,IAH+B;AAI/BwU,qBAAa,EAAE,IAJgB;AAK/BC,iBAAS,EAAE,IALoB;AAM/Bb,sBAAc,EAAdA;AAN+B,OAAjC;AAQD,KAzYH,CA0YE;;AA1YF;AAAA;AAAA,WA2YE,2BAAkBjb,IAAlB,EAAwBqH,IAAxB,EAA4B;AAC1B,WAAKuU,mBAAL,CAAyB5b,IAAzB,EAA+BqH,IAA/B,GAAsCA,IAAtC;AACA,WAAK0U,UAAL,CAAgBve,IAAhB,CAAqB6J,IAArB;AACD,KA9YH,CA+YE;;AA/YF;AAAA;AAAA,WAgZE,gCAAuBrH,IAAvB,EAA6B+F,IAA7B,EAAmCiW,QAAnC,EAAgE;AAAA,UAAnBf,cAAmB,uEAAF,EAAE;AAC9D,WAAKW,mBAAL,CAAyB5b,IAAzB,EAA+B8b,SAA/B,GAA2C/V,IAA3C;AACA,WAAK6V,mBAAL,CAAyB5b,IAAzB,IAA8BoU,8CAAQ,KAAKwH,mBAAL,CAAyB5b,IAAzB,CAAR,GAA2Cgc,QAA3C,GAAmD;AAAEf,sBAAc,EAAdA;AAAF,OAAnD,CAA9B;AACD,KAnZH,CAoZE;;AApZF;AAAA;AAAA,WAqZE,gCAAuBjb,IAAvB,EAA6B+F,IAA7B,EAAiC;AAC/B,WAAK6V,mBAAL,CAAyB5b,IAAzB,EAA+B6b,aAA/B,GAA+C9V,IAA/C;AACD,KAvZH,CAwZE;;AAxZF;AAAA;AAAA,WAyZE,gCAAuB/F,IAAvB,EAA2B;AACzB,aAAO,KAAK4b,mBAAL,CAAyB5b,IAAzB,CAAP;AACD,KA3ZH,CA4ZE;;AA5ZF;AAAA;AAAA,WA6ZE,4BAAgB;AACd,aAAOoU,MAAM,CAACC,IAAP,CAAY,KAAKuH,mBAAjB,CAAP;AACD,KA/ZH,CAgaE;;AAhaF;AAAA;AAAA,WAiaE,8BAAqBvU,IAArB,EAAyB;AACvB,+BAAY,KAAKuU,mBAAL,CAAyBvU,IAAzB,CAAZ;AACD,KAnaH,CAqaE;;AAraF;AAAA;AAAA,WAsaE,4BAAmByU,SAAnB,EAA4B;AAAA;;AAC1B,UAAMG,SAAS,GAAG,EAAlB;AACAA,eAAS,CAACvS,IAAV,CAAeoS,SAAS,CAACI,OAAV,CAAkB1N,GAAlB,CAAsB,cAAI;AAAA,eAAIvQ,IAAI,CAACke,UAAT;AAAA,OAA1B,CAAf;AAEA,UAAMC,SAAS,GAAGN,SAAS,CAACI,OAAV,CAAkB1N,GAAlB,CAAsB,cAAI;AAAA,eAAIvQ,IAAI,CAACoe,KAAT;AAAA,OAA1B,CAAlB;AACA,UAAMC,SAAS,GAAGR,SAAS,CAACjR,IAAV,CAAe2D,GAAf,CAAmB,cAAI;AAAA,eAAI4N,SAAS,CAAC5N,GAAV,CAAc,aAAG;AAAA,iBAAI,MAAI,CAAC+N,yBAAL,CAA+BxW,IAAI,CAACkE,GAAD,CAAnC,CAAJ;AAAA,SAAjB,CAAJ;AAAA,OAAvB,CAAlB;AAEA,UAAIuS,SAAS,GAAGpI,MAAM,CAACqI,MAAP,CAAcX,SAAS,CAACY,SAAxB,CAAhB;AACAF,eAAS,CAACG,KAAV,GAR0B,CAS1B;;AACAH,eAAS,GAAGA,SAAS,CAAChO,GAAV,CAAc,cAAI;AAAA,eAAI,MAAI,CAAC+N,yBAAL,CAA+Bte,IAA/B,CAAJ;AAAA,OAAlB,CAAZ;AACAqe,eAAS,CAAC5S,IAAV,CAAe8S,SAAf;AAEA,aAAO;AAAE7J,YAAI,EAAEsJ,SAAR;AAAmBlH,YAAI,EAAEuH;AAAzB,OAAP;AACD,KApbH,CAsbE;;AAtbF;AAAA;AAAA,WAubE,mCAA0Bnb,KAA1B,EAA4C;AAAA,UAAXyb,OAAW,uEAAD,CAAC;;AAC1C,UAAIzb,KAAK,IAAI,IAAb,EAAmB;AACjB,eAAO,KAAP;AACD,OAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AACpC,eAAOA,KAAP;AACD;;AACD,UAAM0b,SAAS,GAAGhM,IAAI,CAACC,GAAL,CAAS3P,KAAT,EACf2b,OADe,CACPF,OADO,EAEfrc,QAFe,GAGfkR,OAHe,CAGP,uBAHO,EAGkB,GAHlB,CAAlB;AAIA,aAAOtQ,KAAK,GAAG,CAAR,cAAgB0b,SAAhB,SAA+BA,SAAtC;AACD,KAlcH,CAocE;;AApcF;AAAA;AAAA,WAqcE,8BAAqB/B,QAArB,EAA6B;AAAA;;AAC3B,UAAMiC,eAAe,GAAGjC,QAAQ,CAACtM,GAAT,CAAa,iBAAO,EAAG;AAC7C,YAAM6M,WAAW,GAAG,MAAI,CAACC,oBAAL,CAA0BnP,OAA1B,CAApB;;AACA,YAAIkP,WAAW,CAAChU,IAAZ,KAAqB,OAAzB,EAAkC;AAChCgU,qBAAW,CAACS,SAAZ,GAAwB,MAAI,CAACkB,kBAAL,CAAwB3B,WAAW,CAACS,SAApC,CAAxB;AACD;;AACD,eAAOT,WAAP;AACD,OANuB,CAAxB;AAOA,aAAO0B,eAAP;AACD,KA9cH,CAgdE;;AAhdF;AAAA;AAAA,WAidE,iCAAqB;AACnB,UAAMtD,cAAc,GAAG,KAAK7H,aAAL,CAAmBqL,gBAAnB,EAAvB;AACA,aAAO;AACLtK,YAAI,EAAE,CAAC,CAAC,aAAD,EAAgB,cAAhB,CAAD,CADD;AAELoC,YAAI,EAAEX,MAAM,CAAC8I,OAAP,CAAezD,cAAf;AAFD,OAAP;AAID;AAvdH;AAAA;AAAA,WAydE,4BAAmBtY,KAAnB,EAAwB;AACtB,WAAKgc,eAAL,CAAqB3f,IAArB,CAA0B2D,KAA1B;AACA,aAAOA,KAAP;AACD;AA5dH;AAAA;AAAA,WA8dE,8BAAqBA,KAArB,EAA0B;AACxB,WAAKic,iBAAL,CAAuB5f,IAAvB,CAA4B2D,KAA5B;AACA,aAAOA,KAAP;AACD;AAjeH;AAAA;AAAA,WAmeE,+BAAsBA,KAAtB,EAA2B;AACzB,WAAKkc,kBAAL,CAAwB7f,IAAxB,CAA6B2D,KAA7B;AACA,aAAOA,KAAP;AACD;AAteH;AAAA;AAAA,WAweE,8BAAqBA,KAArB,EAA0B;AACxB,WAAKmc,iBAAL,CAAuB9f,IAAvB,CAA4B2D,KAA5B;AACA,aAAOA,KAAP;AACD;AA3eH;AAAA;AAAA,WA6eE,+BAAsBA,KAAtB,EAA2B;AACzB,WAAKoc,kBAAL,CAAwB/f,IAAxB,CAA6B2D,KAA7B;AACA,aAAOA,KAAP;AACD;AAhfH;AAAA;AAAA,WAkfE,8BAAqBA,KAArB,EAA0B;AACxB,WAAKqc,iBAAL,CAAuBhgB,IAAvB,CAA4B2D,KAA5B;AACA,aAAOA,KAAP;AACD;AArfH;;AAAA;AAAA;;;mBAAa0X,gBAAcrX,uDAAAA,CAAAA,oDAAAA,GAAAA,uDAAAA,CAAAA,iEAAAA,GAAAA,uDAAAA,CAAAA,8DAAAA,GAAAA,uDAAAA,CAAAA,2DAAAA;AAAA;;;SAAdqX;AAAczK,WAAdyK,cAAc;AAAA7F,cAFb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPd;AACA;AACA;AAEA;AACA;AAQA;AACA;AAEA;;;;;;AAKO,IAAMyK,aAAb;AACE,yBAAoB1G,UAApB,EAAoD/R,KAApD,EAA2EoO,IAA3E,EACU9W,SADV,EAC8B;AAAA;;AADV;AAAgC;AAAuB;AACjE,+BAAoB,CAM9B;AAEA;;AACQ,wBAAe,EAAf;AASD,oCAA2B,EAA3B;AACA,qBAAY;AACjB6V,eAAS,EAAE,EADM;AAEjBE,aAAO,EAAE;AAFQ,KAAZ,CAnBuB,CAuB9B;;AACQ,4BAAmB,IAAnB,CAxBsB,CAiC9B;;AACQ,0BAAiB,KAAjB,CAlCsB,CAiE9B;;AACQ,yBAAgBvI,qEAAhB,CAlEsB,CA2E9B;AAEA;;AACO,0BAAiBpD,uEAAjB;AACA,qBAAY,SAAZ;AACA,wBAAe,aAAf,CAhFuB,CAkF9B;;AACQ,2BAAkB,EAAlB,CAnFsB,CAmFA;;AACtB,4BAAmB,EAAnB,CApFsB,CAoFC;;AACvB,6BAAoB,EAApB,CArFsB,CAqFE;;AACxB,gCAAuB,EAAvB,CAtFsB,CAsFK;AAKnC;;AACA;;;;;;;;;;;;;;;;AAeO,wBAAyC,IAAImQ,kDAAJ,CAAoB,KAApB,CAAzC;AACA,uCAAwD,IAAIA,kDAAJ,CAAoB,KAApB,CAAxD;AAEA,0BAAuC,IAAIA,kDAAJ,CAAoB,IAApB,CAAvC;AACA,2BAAwC,IAAIA,kDAAJ,CAAoB,IAApB,CAAxC;AACA,+BAA4C,IAAIA,kDAAJ,CAAoB,IAApB,CAA5C;AACA,yBAAsC,IAAIA,kDAAJ,CAAoB,IAApB,CAAtC;AACA,+BAA4C,IAAIA,kDAAJ,CAAoB/M,qEAApB,CAA5C;AACA,wBAAqC,IAAI+M,kDAAJ,CAAoB,EAApB,CAArC;AACA,yBAAsD,IAAIA,kDAAJ,CAAoB;AAAEjW,YAAM,EAAE;AAAV,KAApB,CAAtD,CApHuB,CAqH9B;;AACO,6BAA0C,IAAIiW,kDAAJ,CAAoB;AAAExP,UAAI,EAAE;AAAR,KAApB,CAA1C;AACA,2BAAwC,IAAIwP,kDAAJ,CAAoB,EAApB,CAAxC;AACA,8BAA2D,IAAIA,kDAAJ,CAAoB;AAAEjW,YAAM,EAAE;AAAV,KAApB,CAA3D;AACA,6BAA0C,IAAIiW,kDAAJ,CAAoB,EAApB,CAA1C;AACA,0BAA0C,IAAIA,kDAAJ,CAAoB,IAApB,CAA1C;AACA,yBAAyC,IAAIA,kDAAJ,CAAoB,IAApB,CAAzC;AACA,2BAA4C,IAAIA,kDAAJ,CAAoB,IAApB,CAA5C;AACA,wBAAwC,IAAIA,kDAAJ,CAAoB,IAApB,CAAxC;AACA,wCAAqD,IAAIA,kDAAJ,CAAoB,IAApB,CAArD;AACA,iCAAwB,KAAxB;AACA,yCAAsD,IAAIA,kDAAJ,CAAoB,IAApB,CAAtD;AACA,yCAAyD,IAAIA,kDAAJ,CAAoB,IAApB,CAAzD;AACA,iCAAiD,IAAIA,kDAAJ,CAAoB,IAApB,CAAjD;AAEC,wBAAe5K,mEAAf,CApIsB,CAE5B;AACA;AACD;;AANH;AAAA;AAAA,SAgBE,eAAuB;AACrB,aAAOnM,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAK2d,YAApB,CAAX,CAAP;AACD,KAlBH;AAAA,SAYE,aAAwBC,GAAxB,EAA2B;AACzB,WAAKD,YAAL,GAAoBC,GAApB;AACA,WAAKC,YAAL,CAAkBpgB,IAAlB,CAAuB,KAAKkgB,YAA5B;AACD;AAfH;AAAA;AAAA,SA+BE,eAA2B;AACzB,aAAO5d,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAK8d,gBAApB,CAAX,CAAP;AACD,KAjCH;AAAA,SA2BE,aAA4BF,GAA5B,EAA+B;AAC7B,WAAKE,gBAAL,GAAwBF,GAAxB;AACA,WAAKG,cAAL,CAAoBtgB,IAApB,CAAyBsC,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAK8d,gBAApB,CAAX,CAAzB;AACD;AA9BH;AAAA;AAAA,SAwCE,eAAiB;AACf,aAAO,KAAKE,cAAZ;AACD,KA1CH;AAAA,SAqCE,aAAkBJ,GAAlB,EAA8B;AAC5B,WAAKI,cAAL,GAAsBJ,GAAtB;AACD;AAvCH;AAAA;AAAA,SAkDE,eAAgB;AACd,aAAO7d,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAKie,aAApB,CAAX,CAAP;AACD,KApDH;AAAA,SA8CE,aAAiBC,OAAjB,EAAwB;AACtB,WAAKD,aAAL,GAAqBle,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAeke,OAAf,CAAX,CAArB;AACA,WAAKC,eAAL,CAAqB1gB,IAArB,CAA0BsC,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAeke,OAAf,CAAX,CAA1B;AACD;AAjDH;AAAA;AAAA,SA+DE,eAAyB;AACvB,aAAO,KAAKE,sBAAZ;AACD,KAjEH;AAAA,SAwDE,aAA0Bne,IAA1B,EAA8B;AAC5B,WAAKme,sBAAL,GAA8Bne,IAA9B;AACA,WAAKoe,mBAAL,CAAyB5gB,IAAzB,CAA8BwC,IAA9B;;AACA,UAAI,KAAKqe,YAAT,EAAuB;AACrB,aAAKA,YAAL,GAAoB,KAAKL,aAAzB;AACD;AACF;AA9DH;AAAA;AAAA,SAyEE,eAAgB;AACd,aAAO,KAAKM,aAAZ;AACD,KA3EH,CAwIE;AAxIF;AAAA,SAqEE,aAAiBC,MAAjB,EAAuB;AACrB,WAAKD,aAAL,GAAqBC,MAArB;AACA,WAAKC,mBAAL,CAAyBhhB,IAAzB,CAA8B+gB,MAA9B;AACD;AAxEH;AAAA;AAAA,WAyIE,kCAAyBrI,MAAzB,EAAiCuI,UAAjC,EAA2C;AAAA;;AACzC,UAAIhF,cAAc,GAAG,KAAKiF,iBAAL,CAAuBD,UAAvB,CAArB;AACAhF,oBAAc,GAAG,KAAKE,SAAL,CAAeF,cAAf,CAAjB;AACA,UAAIla,OAAO;AACTxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADF;AAET2Z,iBAAS,EAAE,KAAKqD,cAFP;AAGTjC,YAAI,EAAE,KAAKU,SAHF;AAIT5M,eAAO,EAAE,KAAKwS,YAJL;AAKTxF,mBAAW,EAAE,CALJ;AAMThH,iBAAS,EAAE,KAAKyM,mBANP;AAOTvM,eAAO,EAAE,KAAKwM,iBAPL;AAQTJ,kBAAU,EAAVA;AARS,SASNhF,cATM,CAAX;AAWAla,aAAO,mCAAQ2W,MAAR,GAAmB3W,OAAnB,CAAP,CAdyC,CAezC;;AACA,UAAI,CAACA,OAAO,CAAC,WAAD,CAAR,IAAyB,KAAKuf,eAAL,CAAqB3d,KAA9C,IAAuD,KAAK2d,eAAL,CAAqB3d,KAArB,CAA2BjD,MAAtF,EAA8F;AAC5FqB,eAAO,CAAC,WAAD,CAAP,GAAuB,KAAKuf,eAAL,CAAqB3d,KAA5C;AACD,OAlBwC,CAoBzC;;;AACA,UAAIsd,UAAU,KAAK,eAAnB,EAAoC;AAClC,YAAIM,aAAa,GAAG,CAClB;AAAE9U,aAAG,EAAE,iBAAP;AAA0B9I,eAAK,cAAM,KAAK7E,SAAL,CAAe,cAAf,EAA+B0iB,EAArC,kBAA/B;AAAoFlF,kBAAQ,EAAE;AAA9F,SADkB,CAApB;AAIAva,eAAO,CAACka,cAAR,sKAA6Bla,OAAO,CAACka,cAArC,GAAwDsF,aAAxD;AACD,OA3BwC,CA6BzC;;;AACA,UAAIN,UAAU,KAAK,cAAf,IAAiCA,UAAU,KAAK,eAApD,EAAqE;AAEnE,YAAInF,cAAc,GAAG/Z,OAAO,CAACka,cAAR,CAAuB1d,MAAvB,CAA8B,mBAAS,EAAG;AAC7D,iBAAO,CAAC,CAAC,gBAAD,EAAmB,iBAAnB,EAAsC,eAAtC,EAAuDge,QAAvD,CAAgEC,SAAS,CAAC/P,GAA1E,CAAR;AACD,SAFoB,CAArB;AAGA1K,eAAO,CAACka,cAAR,4JAA6BH,cAA7B,EALmE,CAMnE;AACD,OAPD,MAOO,IAAImF,UAAU,KAAK,gBAAf,IAAmCA,UAAU,KAAK,iBAAlD,IAAuEA,UAAU,KAAK,eAA1F,EAA2G;AAChH,YAAInF,eAAc,GAAG/Z,OAAO,CAACka,cAAR,CAAuB1d,MAAvB,CAA8B,mBAAS,EAAG;AAC7D,iBAAO,CAAC,CAAC,cAAD,EAAiB,eAAjB,EAAmCge,QAAnC,CAA4CC,SAAS,CAAC/P,GAAtD,CAAR;AACD,SAFoB,CAArB;;AAGA1K,eAAO,CAACka,cAAR,4JAA6BH,eAA7B;AACD;;AAED,WAAKvC,UAAL,CAAgBnD,IAAhB,CAAqB,cAArB,EAAqCrU,OAArC,EAA8CpC,SAA9C,CAAwD,cAAI;AAAA,eAAI,KAAI,CAAC8hB,uBAAL,CAA6BR,UAA7B,EAAyC1Y,IAAzC,CAAJ;AAAA,OAA5D;AACD;AAtLH;AAAA;AAAA,WAwLE,wCAA+B5E,KAA/B,EAAoC;AAClC,WAAK+d,2BAAL,CAAiC1hB,IAAjC,CAAsC2D,KAAtC;AACD;AA1LH;AAAA;AAAA,WA4LE,0CAA8B;AAC5B,aAAO,KAAK+d,2BAAL,CAAiCC,YAAjC,EAAP;AACD;AA9LH;AAAA;AAAA,WAgME,6BAAiB;AACf,UAAMV,UAAU,GAAG,mBAAnB;;AACA,kCAA+B,KAAKW,qBAAL,EAA/B;AAAA,UAAQjN,SAAR,yBAAQA,SAAR;AAAA,UAAmBE,OAAnB,yBAAmBA,OAAnB;;AACA,UAAMgN,cAAc,GAAGvf,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAKuf,eAApB,CAAX,CAAvB;AACA,UAAM/f,OAAO,GAAG;AACdkL,gBAAQ,EAAE4U,cAAc,CAAC5U,QAAf,CAAwBtJ,KAAxB,CAA8B,CAA9B,EAAiC8I,GAD7B;AAEde,kBAAU,EAAEqU,cAAc,CAACrU,UAAf,CAA0B7J,KAA1B,CAAgC,CAAhC,EAAmC8I,GAFjC;AAGdwP,sBAAc,EAAE;AACd1N,kBAAQ,cAAMsT,cAAc,CAACtT,QAAf,CAAwB5K,KAAxB,CAA8B,CAA9B,EAAiC8I,GAAvC;AADM,SAHF;AAMdlM,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CANG;AAOd2Z,iBAAS,EAAE,KAAKqD,cAPF;AAQdjC,YAAI,EAAE,KAAKU,SARG;AASd5M,eAAO,EAAE,KAAKwS,YATA;AAUdxF,mBAAW,EAAE,CAVC;AAWdhH,iBAAS,EAATA,SAXc;AAYdE,eAAO,EAAPA,OAZc;AAad6I,iBAAS,EAAE,CAbG;AAcdC,gBAAQ,EAAE,GAdI;AAedsD,kBAAU,EAAVA;AAfc,OAAhB,CAJe,CAsBf;;AACA,aAAO,KAAK1H,UAAL,CAAgBnD,IAAhB,CAAqB,cAArB,EAAqCrU,OAArC,CAAP,CAvBe,CAwBf;AACD;AAzNH;AAAA;AAAA,WA2NE,2BAAkBwG,IAAlB,EAAsB;AACpB,UAAMwZ,UAAU,GAAG,KAAKC,WAAxB;AACAzZ,UAAI,CAAC8E,IAAL,GAAY9E,IAAI,CAAC8E,IAAL,IAAa9E,IAAI,CAAC8E,IAAL,CAAU3M,MAAvB,GAAgC6H,IAAI,CAAC8E,IAAL,CAAU9O,MAAV,CAAiB,WAAC;AAAA,eAAI2S,CAAC,IAAI,IAAT;AAAA,OAAlB,CAAhC,GAAmE,EAA/E;AACA6Q,gBAAU,CAAC,mBAAD,CAAV,GAAkCxZ,IAAI,CAAC8E,IAAL,CAAU2D,GAAV,CAAc,WAAC;AAAA,eAAI,IAAIK,6DAAJ,CAAeH,CAAf,EAAkBhP,SAAlB,EAA6BA,SAA7B,EAAwC,IAAxC,CAAJ;AAAA,OAAf,CAAlC;AACA,WAAK8f,WAAL,GAAmBD,UAAnB;AACA,WAAKE,eAAL,CAAqBjiB,IAArB,CAA0B,IAA1B;AACA,WAAK8hB,eAAL,CAAqB,mBAArB,EAA0C/P,YAA1C,GAAyDxJ,IAAI,CAAC2Z,YAA9D;;AACA,UAAI,KAAKC,eAAT,EAA0B;AACxB,YAAMA,eAAe,GAAG,KAAKA,eAA7B;AACAA,uBAAe,CAAC,mBAAD,CAAf,CAAqCpQ,YAArC,GAAoDxJ,IAAI,CAAC2Z,YAAzD;AACA,aAAKC,eAAL,GAAuBA,eAAvB;AACD;AACF,KAvOH,CAyOE;;AAzOF;AAAA;AAAA,WA0OE,yBAAgB5jB,MAAhB,EAAsB;AACpB,UAAI6jB,WAAW,GAAG,EAAlB;AACA,UAAInD,MAAJ;;AACA,UAAI1gB,MAAM,CAACiE,IAAP,KAAgB,YAAhB,IAAgCjE,MAAM,CAACiE,IAAP,KAAgB,UAApD,EAAgE;AAC9Dyc,cAAM,GAAG1gB,MAAM,CAACoF,KAAP,CAAaqN,GAAb,CAAiB,WAAC;AAAA,iBAAKE,CAAC,CAACzE,GAAF,GAAQyE,CAAC,CAACzE,GAAV,GAAgByE,CAArB;AAAA,SAAlB,CAAT;AACAkR,mBAAW,GAAGnD,MAAM,CAAC,CAAD,CAApB;AACD,OAHD,MAGO,IAAI1gB,MAAM,CAACiE,IAAP,KAAgB,kBAApB,EAAwC;AAC7C4f,mBAAW,GAAG7jB,MAAM,CAACoF,KAAP,CAAa,CAAb,EAAgB8I,GAA9B;AACD,OAFM,MAEA,IAAIlO,MAAM,CAACiE,IAAP,KAAgB,mBAApB,EAAyC;AAC9C4f,mBAAW,eAAO7jB,MAAM,CAACoF,KAAP,CAAa,CAAb,EAAgB8I,GAAvB,OAAX;AACD,OAFM,MAEA;AACLwS,cAAM,GAAG1gB,MAAM,CAACoF,KAAP,CAAaqN,GAAb,CAAiB,WAAC;AAAA,iBAAKE,CAAC,CAACQ,QAAF,GAAaR,CAAC,CAACQ,QAAf,GAA0BR,CAA/B;AAAA,SAAlB,CAAT;AACAkR,mBAAW,eAAOnD,MAAM,CAACnK,IAAP,CAAY,KAAZ,CAAP,OAAX;AACD,OAbmB,CAcpB;AACA;AACA;AACA;AACA;;;AACA,aAAOsN,WAAP;AACD,KA9PH,CAgQE;;AAhQF;AAAA;AAAA,WAiQE,8BAAkB;AAChB,UAAMC,eAAe,GAAG;AACtB7U,kBAAU,EAAE,IADU;AAEtBP,gBAAQ,EAAE,IAFY;AAGtBwH,wBAAgB,EAAE,IAHI;AAItBwH,sBAAc,EAAE;AAJM,OAAxB;AAMA,UAAMkG,eAAe,GAAG,KAAKA,eAA7B;;AACA,WAAK,IAAMG,UAAX,IAAyBH,eAAzB,EAA0C;AACxC,YAAM5jB,MAAM,GAAG4jB,eAAe,CAACG,UAAD,CAA9B;;AACA,YAAI/jB,MAAM,CAAC0T,QAAP,IAAmB1T,MAAM,CAACoF,KAA1B,IAAmCpF,MAAM,CAACoF,KAAP,CAAajD,MAApD,EAA4D;AAC1D;AACA,cAAM0hB,WAAW,GAAG,KAAKG,eAAL,CAAqBhkB,MAArB,CAApB;;AACA,cAAI+jB,UAAU,KAAK,kBAAnB,EAAsC;AACpC,gBAAIF,WAAW,KAAK,MAApB,EAA2B;AACzB,mBAAKI,4BAAL,CAAkCxiB,IAAlC,CAAuC,IAAvC;AACD,aAFD,MAEO;AACL,mBAAKwiB,4BAAL,CAAkCxiB,IAAlC,CAAuC,KAAvC;AACD;AACF;;AACD,cAAIsiB,UAAU,KAAK,wBAAnB,EAA4C;AAC1C,iBAAKG,6BAAL,CAAmCziB,IAAnC,CAAwCoiB,WAAxC;AACD;;AACD,cAAIC,eAAe,CAACC,UAAD,CAAf,KAAgC,IAApC,EAA0C;AACxCD,2BAAe,CAACC,UAAD,CAAf,GAA8BF,WAA9B;AACD,WAFD,MAEO;AACL,gBAAIE,UAAU,KAAK,kBAAf,IAAqCF,WAAW,KAAK,SAAzD,EAAoE;AAClE;AACD;;AAED,gBAAMM,aAAa,GAAG;AACpBjW,iBAAG,EAAE6V,UADe;AAEpB3e,mBAAK,EAAEye,WAFa;AAGpB9F,sBAAQ,EAAE/d,MAAM,CAACokB,SAAP,GAAmB,OAAnB,GAA6B;AAHnB,aAAtB;AAKAN,2BAAe,CAACpG,cAAhB,CAA+B/P,IAA/B,CAAoCwW,aAApC;AACD;AACF;AACF;;AAED,UAAME,cAAc,GAAGT,eAAe,CAAC3U,UAAhB,CAA2B7J,KAA3B,CAAiC,CAAjC,CAAvB;;AACA,UAAIif,cAAc,CAACC,UAAnB,EAA+B;AAC7BR,uBAAe,CAAC5N,gBAAhB,GAAmCmO,cAAc,CAACC,UAAlD;AACD,OAFD,MAEO,IAAID,cAAc,CAACE,SAAnB,EAA8B;AACnCT,uBAAe,CAAC5N,gBAAhB,GAAmCmO,cAAc,CAACE,SAAlD;AACD;;AACD,WAAKC,gBAAL,GAAwBV,eAAe,GAAGA,eAAH,GAAqB,EAA5D;AACD,KAhTH,CAkTE;;AAlTF;AAAA;AAAA,WAmTE,8BAAkB;AAChB,aAAO/f,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAKwgB,gBAApB,CAAX,CAAP;AACD;AArTH;AAAA;AAAA,WAuTE,4BAAgB;AACd,UAAML,aAAa,GAAG,EAAtB;AACA,UAAMP,eAAe,GAAG,KAAKA,eAA7B;;AACA,WAAK,IAAMG,UAAX,IAAyBH,eAAzB,EAA0C;AACxC,YAAM5jB,MAAM,GAAG4jB,eAAe,CAACG,UAAD,CAA9B;;AACA,YAAI/jB,MAAM,CAACoF,KAAP,IAAgBpF,MAAM,CAACoF,KAAP,CAAajD,MAAjC,EAAyC;AACvC,cAAIue,MAAM,GAAG,KAAKsD,eAAL,CAAqBhkB,MAArB,CAAb;;AACA,cAAI0gB,MAAM,IAAI,IAAV,IAAkBA,MAAM,IAAI,IAA5B,IAAoCA,MAAM,IAAI,MAAlD,EAA0D;AACxDA,kBAAM,GAAG1gB,MAAM,CAACoF,KAAP,CAAa,CAAb,EAAgB+N,QAAzB;AACD;;AACDgR,uBAAa,CAACnkB,MAAM,CAAC8K,WAAR,CAAb,GAAoC4V,MAAM,CAAChL,OAAP,CAAe,KAAf,EAAsB,EAAtB,CAApC;AACD;AACF;;AACD,UAAM2O,cAAc,GAAGT,eAAe,CAAClV,QAAhB,CAAyBtJ,KAAzB,CAA+B,CAA/B,CAAvB;;AACA,UAAIif,cAAc,CAACC,UAAnB,EAA+B;AAC7BH,qBAAa,CAAC,QAAD,CAAb,GAA0BE,cAAc,CAACC,UAAf,CAA0B7R,GAA1B,CAA8B,eAAK,EAAG;AAC9DnD,eAAK,GAAGA,KAAK,CAAC9K,QAAN,EAAR;AACA,iBAAO8K,KAAK,CAACO,KAAN,CAAY,CAAZ,EAAe,CAAf,IAAoB,GAApB,GAA0BP,KAAK,CAACO,KAAN,CAAY,CAAZ,EAAe,CAAf,CAAjC;AACD,SAHyB,CAA1B;AAID,OALD,MAKO,IAAIwU,cAAc,CAACE,SAAnB,EAA8B;AACnCJ,qBAAa,CAAC,OAAD,CAAb,GAAyBE,cAAc,CAACE,SAAxC;AACD,OAFM,MAEA;AACLJ,qBAAa,CAAC,YAAD,CAAb,GAA8B,KAAKM,gBAAL,CAAsB,KAAK5B,mBAA3B,CAA9B;AACAsB,qBAAa,CAAC,UAAD,CAAb,GAA4B,KAAKM,gBAAL,CAAsB,KAAK3B,iBAA3B,CAA5B;AACD;;AACD,aAAOqB,aAAP;AACD,KAjVH,CAmVE;;AAnVF;AAAA;AAAA,WAoVE,0BAAiB9U,IAAjB,EAA6B;AAC3B,UAAMqV,GAAG,GAAGrV,IAAI,CAACsV,MAAL,CAAY,CAAZ,EAAe,CAAf,CAAZ;AACA,UAAMrV,KAAK,GAAGD,IAAI,CAACsV,MAAL,CAAY,CAAZ,EAAe,CAAf,CAAd;AACA,UAAMnV,IAAI,GAAGH,IAAI,CAACsV,MAAL,CAAY,CAAZ,EAAetV,IAAI,CAAClN,MAApB,CAAb;AAEA,aAAOuiB,GAAG,GAAG,GAAN,GAAYpV,KAAZ,GAAoB,GAApB,GAA0BE,IAAjC;AACD,KA1VH,CA4VE;;AA5VF;AAAA;AAAA,WA6VE,6BAA0B;AAAA,UAARtB,GAAQ,uEAAF,EAAE;AACxB,UAAMgU,OAAO,GAAG;AACdjT,kBAAU,EAAE,IADE;AAEdP,gBAAQ,EAAE,IAFI;AAGdwH,wBAAgB,EAAE,IAHJ;AAIdwH,sBAAc,EAAE;AAJF,OAAhB;AAMA,UAAMkG,eAAe,GAAG,KAAKA,eAA7B;;AACA,WAAK,IAAMG,UAAX,IAAyBH,eAAzB,EAA0C;AACxC,YAAM5jB,MAAM,GAAG4jB,eAAe,CAACG,UAAD,CAA9B;;AACA,YAAI/jB,MAAM,CAACiE,IAAP,KAAgBiK,GAAhB,IAAuBlO,MAAM,CAACoF,KAA9B,IAAuCpF,MAAM,CAACoF,KAAP,CAAajD,MAAxD,EAAgE;AAC9D,cAAM0hB,WAAW,GAAG,KAAKG,eAAL,CAAqBhkB,MAArB,CAApB;;AACA,cAAIkiB,OAAO,CAACliB,MAAM,CAACiE,IAAR,CAAP,KAAyB,IAA7B,EAAmC;AACjCie,mBAAO,CAACliB,MAAM,CAACiE,IAAR,CAAP,GAAuB4f,WAAvB;AACD,WAFD,MAEO;AACL,gBAAIE,UAAU,KAAK,kBAAf,IAAqCF,WAAW,KAAK,SAAzD,EAAoE;AAClE;AACD;;AAED3B,mBAAO,CAACxE,cAAR,CAAuB/P,IAAvB,CAA4B;AAC1BO,iBAAG,EAAE6V,UADqB;AAE1B3e,mBAAK,EAAEye,WAFmB;AAG1B9F,sBAAQ,EAAE/d,MAAM,CAACokB,SAAP,GAAmB,OAAnB,GAA6B;AAHb,aAA5B;AAKD;AACF;AACF,OA1BuB,CA4BxB;;;AACA,UAAI,CAAC,mBAAD,EAAsB,sBAAtB,EAA8C,gBAA9C,EAAgE,iBAAhE,EAAmF,eAAnF,EAAoG,eAApG,EAAqH5hB,OAArH,CAA6H0L,GAA7H,IAAoI,CAAC,CAAzI,EAA4I;AAC1I,YAAI4P,eAAe,GAAG,CACpB;AAAE5P,aAAG,EAAE,sBAAP;AAA+B9I,eAAK,EAAE,aAAtC;AAAqD2Y,kBAAQ,EAAE;AAA/D,SADoB,EAEpB;AACE7P,aAAG,EAAE,oBADP;AAEE9I,eAAK,EACH,2HAHJ;AAIE2Y,kBAAQ,EAAE;AAJZ,SAFoB,CAAtB;AASAmE,eAAO,CAACxE,cAAR,sKAA6BwE,OAAO,CAACxE,cAArC,GAAwDI,eAAxD;AACD;;AAED,UAAI8F,eAAe,IAAIA,eAAe,CAAC3U,UAAvC,EAAmD;AACjD,YAAMoV,cAAc,GAAGT,eAAe,CAAC3U,UAAhB,CAA2B7J,KAA3B,CAAiC,CAAjC,CAAvB;;AACA,YAAIif,cAAc,CAACC,UAAnB,EAA+B;AAC7BpC,iBAAO,CAAChM,gBAAR,GAA2BmO,cAAc,CAACC,UAA1C;AACD,SAFD,MAEO,IAAID,cAAc,CAACE,SAAnB,EAA8B;AACnCrC,iBAAO,CAAChM,gBAAR,GAA2BmO,cAAc,CAACE,SAA1C;AACD;AACF;;AACD,aAAOrC,OAAP;AACD,KAhZH,CAkZE;;AAlZF;AAAA;AAAA,WAmZE,iCAAwBhU,GAAxB,EAA6BlE,IAA7B,EAAiC;AAC/B,UAAMwZ,UAAU,GAAG,KAAKC,WAAxB;AACAzZ,UAAI,CAAC8E,IAAL,GAAY9E,IAAI,CAAC8E,IAAL,IAAa9E,IAAI,CAAC8E,IAAL,CAAU3M,MAAvB,GAAgC6H,IAAI,CAAC8E,IAAL,CAAU9O,MAAV,CAAiB,WAAC;AAAA,eAAI2S,CAAC,IAAI,IAAT;AAAA,OAAlB,CAAhC,GAAmE,EAA/E;AACA6Q,gBAAU,CAACtV,GAAD,CAAV,GAAkBlE,IAAlB;AACA,WAAKyZ,WAAL,GAAmBD,UAAnB;AACD,KAxZH,CA0ZE;;AA1ZF;AAAA;AAAA,WA2ZE,4BAAmBxjB,MAAnB,EAA2BoF,KAA3B,EAAgC;AAC9B,UAAMwe,eAAe,GAAG,KAAKA,eAA7B;;AACA,UAAIA,eAAe,CAAC5jB,MAAD,CAAnB,EAA6B;AAC3B4jB,uBAAe,CAAC5jB,MAAD,CAAf,CAAwBoF,KAAxB,GAAgC,CAACA,KAAD,CAAhC;AACAwe,uBAAe,CAAC5jB,MAAD,CAAf,CAAwB0T,QAAxB,GAAmC,IAAnC;AACD;;AACD,WAAKkQ,eAAL,GAAuBA,eAAvB;AACD,KAlaH,CAoaE;;AApaF;AAAA;AAAA,WAqaE,+BAAsB5jB,MAAtB,EAA8BoF,KAA9B,EAAmC;AACjC,UAAMwe,eAAe,GAAG,KAAKA,eAA7B;;AACA,UAAI5jB,MAAM,KAAK,wBAAf,EAAwC;AACtC4jB,uBAAe,CAAC5jB,MAAD,CAAf,CAAwBoF,KAAxB,GAAgC,CAACA,KAAD,CAAhC;AACD,OAFD,MAEO;AACLwe,uBAAe,CAAC5jB,MAAD,CAAf,CAAwBoF,KAAxB,CAA8B,CAA9B,IAAmCA,KAAnC;AACD;;AACD,WAAKwe,eAAL,GAAuBA,eAAvB;AACD,KA7aH,CA+aE;;AA/aF;AAAA;AAAA,WAgbE,8BAAqB5jB,MAArB,EAA6BoF,KAA7B,EAAqD;AAAA;;AAAA,UAAjBwf,UAAiB,uEAAJ,IAAI;AACnD,UAAMhB,eAAe,GAAG,KAAKA,eAA7B;;AACA,UAAIxe,KAAK,CAACjD,MAAN,GAAe,CAAnB,EAAsB;AACpB,YAAInC,MAAM,KAAK,cAAX,IAA6BA,MAAM,KAAK,eAA5C,EAA6D;AAC3D,eAAK6kB,aAAL,CAAmB,CAAC,gBAAD,EAAmB,eAAnB,EAAoC,iBAApC,CAAnB,EAA2EjB,eAA3E;AACD,SAFD,MAEO,IAAI5jB,MAAM,KAAK,gBAAX,IAA+BA,MAAM,KAAK,eAA1C,IAA6DA,MAAM,KAAK,iBAA5E,EAA+F;AACpG,eAAK6kB,aAAL,CAAmB,CAAC,cAAD,EAAiB,eAAjB,CAAnB,EAAsDjB,eAAtD;AACD;AACF;;AACDlJ,gBAAU,CAAC,YAAK;AACd,YAAI,MAAI,CAACoK,mBAAL,CAAyB1f,KAAzB,EAAgCwe,eAAe,CAAC5jB,MAAD,CAAf,CAAwBoF,KAAxD,CAAJ,EAAoE;AAClEwe,yBAAe,CAAC5jB,MAAD,CAAf,CAAwBoF,KAAxB,GAAgCA,KAAhC;AACAwe,yBAAe,CAAC5jB,MAAD,CAAf,CAAwB0T,QAAxB,GAAmC,IAAnC;AACA,gBAAI,CAACkQ,eAAL,GAAuBA,eAAvB,CAHkE,CAIlE;;AACA,gBAAI,CAACmB,qBAAL,CAA2B,EAA3B;AACD;AACF,OARS,EAQP,IARO,CAAV;AAUD;AAncH;AAAA;AAAA,WAqcE,uBAAc7C,OAAd,EAAuB8C,gBAAvB,EAAuC;AACrC,UAAMpB,eAAe,GAAG,KAAKA,eAA7B;AACA1B,aAAO,CAACzP,GAAR,CAAY,gBAAM,EAAG;AACnBuS,wBAAgB,CAAChlB,MAAD,CAAhB,CAAyBoF,KAAzB,GAAiC,IAAjC;AACA4f,wBAAgB,CAAChlB,MAAD,CAAhB,CAAyB0T,QAAzB,GAAoC,KAApC;AACD,OAHD;AAKA,WAAKkQ,eAAL,GAAuBoB,gBAAvB;AACD;AA7cH;AAAA;AAAA,WA+cE,6BAAoBC,QAApB,EAA8BC,YAA9B,EAA0C;AACxC,UAAI,CAACA,YAAD,IAAiBD,QAAQ,CAAC9iB,MAAT,IAAmB,CAAxC,EAA2C,OAAO,KAAP;;AAC3C,UAAI,CAAC+iB,YAAD,IAAiB,CAACD,QAAtB,EAAgC;AAC9B,eAAO,KAAP;AACD;;AACD,UACG,CAACC,YAAD,IAAiBD,QAAjB,IAA6BA,QAAQ,CAAC9iB,MAAvC,IACC,CAAC8iB,QAAD,IAAaC,YAAb,IAA6BA,YAAY,CAAC/iB,MAD3C,IAEA8iB,QAAQ,CAAC9iB,MAAT,KAAoB+iB,YAAY,CAAC/iB,MAHnC,EAIE;AACA,eAAO,IAAP;AACD;;AAXuC,uLAYrB+iB,YAZqB;AAAA;;AAAA;AAYxC,4DAAiC;AAAA,cAAtBhjB,IAAsB;;AAC/B,cAAI+iB,QAAQ,CAACziB,OAAT,CAAiBN,IAAjB,IAAyB,CAA7B,EAAgC;AAC9B,mBAAO,IAAP;AACD;AACF,SAhBuC,CAiBxC;AACA;;AAlBwC;AAAA;AAAA;AAAA;AAAA;;AAmBxC,aAAO,KAAP;AACD,KAneH,CAqeE;;AAreF;AAAA;AAAA,WAseE,6BAAoBlC,MAApB,EAA4B6E,MAA5B,EAAkC;AAChC,UAAM+e,eAAe,GAAG,KAAKA,eAA7B;AACAA,qBAAe,CAAC5jB,MAAD,CAAf,CAAwB0T,QAAxB,GAAmC7O,MAAnC;AACA,WAAK+e,eAAL,GAAuBA,eAAvB;AACD,KA1eH,CA4eE;;AA5eF;AAAA;AAAA,WA6eE,uBAAiC;AAAA;;AAAA,UAArBuB,cAAqB,uEAAJ,IAAI;AAC/B,UAAMjD,OAAO,GAAG,KAAK0B,eAArB;AACA,UAAMO,aAAa,GAAG,EAAtB;;AACA,WAAK,IAAMjW,GAAX,IAAkBgU,OAAlB,EAA2B;AACzB,YAAIA,OAAO,CAAChU,GAAD,CAAP,CAAawF,QAAb,IAAyBwO,OAAO,CAAChU,GAAD,CAAP,CAAa9I,KAAtC,IAA+C8c,OAAO,CAAChU,GAAD,CAAP,CAAa9I,KAAb,CAAmBjD,MAAtE,EAA8E;AAC5E,cAAMD,IAAI,qBAAQggB,OAAO,CAAChU,GAAD,CAAf,CAAV;;AACA,cAAIhM,IAAI,CAAC+B,IAAL,KAAc,YAAlB,EAA+B;AAC7B,gBAAI/B,IAAI,CAACkD,KAAL,CAAW,CAAX,EAAc+N,QAAd,KAA2B,IAA/B,EAAoC;AAClCjR,kBAAI,CAACkD,KAAL,CAAW,CAAX,EAAc+N,QAAd,GAAyB,eAAzB;AACD;AACF;;AACDjR,cAAI,CAACkD,KAAL,GAAalD,IAAI,CAACkD,KAAL,CAAWqN,GAAX,CAAe,WAAC;AAAA,mBAAKE,CAAC,CAACQ,QAAF,GAAaR,CAAC,CAACQ,QAAf,GAA0BR,CAA/B;AAAA,WAAhB,CAAb;AACAwR,uBAAa,CAACxW,IAAd,CAAmBzL,IAAnB;AACD;AACF;;AAED,WAAKiiB,aAAL,CAAmB1iB,IAAnB,CAAwB0iB,aAAxB;AACA,WAAKiB,kBAAL;AACA,WAAKC,mBAAL;;AACA,UAAI,CAACF,cAAL,EAAqB;AACnB;AACD;;AACDzK,gBAAU,CAAC,YAAK;AACd,cAAI,CAAC4K,iBAAL,CAAuB7jB,IAAvB,CAA4B;AAAE6J,cAAI,EAAE,IAAR;AAAc4W,iBAAO,EAAEiC;AAAvB,SAA5B;;AACA,cAAI,CAACY,qBAAL,CAA2B,EAA3B;AACD,OAHS,CAAV;AAID;AAvgBH;AAAA;AAAA,WAygBE,gDAA0D;AAAA,UAArBI,cAAqB,uEAAJ,IAAI;AACxD,UAAMjD,OAAO,GAAG,KAAK0B,eAArB;AACA,UAAMO,aAAa,GAAG,EAAtB;;AACA,WAAK,IAAMjW,GAAX,IAAkBgU,OAAlB,EAA2B;AACzB,YAAIA,OAAO,CAAChU,GAAD,CAAP,CAAawF,QAAb,IAAyBwO,OAAO,CAAChU,GAAD,CAAP,CAAa9I,KAAtC,IAA+C8c,OAAO,CAAChU,GAAD,CAAP,CAAa9I,KAAb,CAAmBjD,MAAtE,EAA8E;AAC5E,cAAMD,IAAI,qBAAQggB,OAAO,CAAChU,GAAD,CAAf,CAAV;AACA,cAAIqX,uBAAuB,GAAa,CAAC,cAAD,EAAiB,eAAjB,EAAkC,gBAAlC,EAAoD,YAApD,EAAkE,eAAlE,EAAmF,YAAnF,EAAiG,eAAjG,EAAkH,eAAlH,EAAmI,eAAnI,CAAxC;;AACA,cAAIA,uBAAuB,CAAC/iB,OAAxB,CAAgCN,IAAI,CAAC+B,IAArC,IAA6C,CAAjD,EAAmD;AACjD/B,gBAAI,CAACkD,KAAL,GAAalD,IAAI,CAACkD,KAAL,CAAWqN,GAAX,CAAe,WAAC;AAAA,qBAAKE,CAAC,CAACQ,QAAF,GAAaR,CAAC,CAACQ,QAAf,GAA0BR,CAA/B;AAAA,aAAhB,CAAb;AACAwR,yBAAa,CAACxW,IAAd,CAAmBzL,IAAnB;AACD,WAHD,MAGM;AACJ,iBAAKsjB,YAAL,CAAkB/jB,IAAlB,CAAuB;AAAEsiB,wBAAU,EAAE7hB,IAAI,CAAC+B;AAAnB,aAAvB;AACA,iBAAKwhB,oBAAL,CAA0BvjB,IAAI,CAAC+B,IAA/B,EAAqC,EAArC;AACA,iBAAKyhB,mBAAL,CAAyBxjB,IAAI,CAAC+B,IAA9B,EAAoC,KAApC;AACD;AACF;AACF;AAEF;AA3hBH;AAAA;AAAA,WA6hBE,yCAAmD;AAAA,UAArBkhB,cAAqB,uEAAJ,IAAI;AACjD,UAAMjD,OAAO,GAAG,KAAK0B,eAArB;AACA,UAAMO,aAAa,GAAG,EAAtB;;AACA,WAAK,IAAMjW,GAAX,IAAkBgU,OAAlB,EAA2B;AACzB,YAAIA,OAAO,CAAChU,GAAD,CAAP,CAAawF,QAAb,IAAyBwO,OAAO,CAAChU,GAAD,CAAP,CAAa9I,KAAtC,IAA+C8c,OAAO,CAAChU,GAAD,CAAP,CAAa9I,KAAb,CAAmBjD,MAAtE,EAA8E;AAC5E,cAAMD,IAAI,qBAAQggB,OAAO,CAAChU,GAAD,CAAf,CAAV;AACA,cAAIqX,uBAAuB,GAAa,CAAC,wBAAD,CAAxC;;AACA,cAAIA,uBAAuB,CAAC/iB,OAAxB,CAAgCN,IAAI,CAAC+B,IAArC,IAA6C,CAAjD,EAAmD;AACjD/B,gBAAI,CAACkD,KAAL,GAAalD,IAAI,CAACkD,KAAL,CAAWqN,GAAX,CAAe,WAAC;AAAA,qBAAKE,CAAC,CAACQ,QAAF,GAAaR,CAAC,CAACQ,QAAf,GAA0BR,CAA/B;AAAA,aAAhB,CAAb;AACAwR,yBAAa,CAACxW,IAAd,CAAmBzL,IAAnB;AACD,WAHD,MAGM;AACJ,iBAAKsjB,YAAL,CAAkB/jB,IAAlB,CAAuB;AAAEsiB,wBAAU,EAAE7hB,IAAI,CAAC+B;AAAnB,aAAvB;AACA,iBAAKwhB,oBAAL,CAA0BvjB,IAAI,CAAC+B,IAA/B,EAAqC,EAArC;AACA,iBAAKyhB,mBAAL,CAAyBxjB,IAAI,CAAC+B,IAA9B,EAAoC,KAApC;AACD;AACF;AACF;AAEF;AA/iBH;AAAA;AAAA,WAijBE,mCAA0B0hB,OAA1B,EAA6D;AAAA;;AAAA,UAA1BC,mBAA0B,uEAAJ,IAAI;AAC3D,UAAMhC,eAAe,GAAG,KAAKA,eAA7B;AACA+B,aAAO,CAAClT,GAAR,CAAY,UAACoT,IAAD,EAAO1V,KAAP,EAAgB;AAC1B,YAAIA,KAAK,GAAGwV,OAAO,CAACxjB,MAAR,GAAiB,CAA7B,EACE,MAAI,CAAC2jB,UAAL,CAAgBlC,eAAe,CAACiC,IAAI,CAAC3X,GAAN,CAA/B,EAA2C,IAA3C,EAAiD2X,IAAI,CAAC1V,KAAtD;AACH,OAHD;AAID;AAvjBH;AAAA;AAAA,WAyjBE,qCAA4B/K,KAA5B,EAAmC2gB,sBAAnC,EAAyD;AACvD,UAAIxT,GAAG,GAAG,EAAV;;AACA,UAAInN,KAAK,KAAK,KAAd,EAAoB;AAClBmN,WAAG,GAAG;AAACY,kBAAQ,EAAE,IAAX;AAAiBJ,kBAAQ,EAAE,KAA3B;AAAkCjI,qBAAW,EAAE,IAA/C;AAAqDwI,wBAAc,EAAE,IAArE;AAA2ED,mBAAS,EAAE,IAAtF;AAA4FD,qBAAW,EAAE,IAAzG;AAA+GlF,aAAG,EAAE,IAApH;AAAyH8E,sBAAY,EAAE;AAAvI,SAAN;AACA,YAAMgT,0BAA0B,GAAG,KAAKC,mCAAL,CAAyCF,sBAAzC,CAAnC;AACA,aAAKG,qBAAL,CAA2B,wBAA3B,EAAqDF,0BAArD;AACD,OAJD,MAIO;AACLzT,WAAG,GAAG;AAACY,kBAAQ,EAAE,KAAX;AAAkBJ,kBAAQ,EAAE,KAA5B;AAAmCjI,qBAAW,EAAE,KAAhD;AAAuDwI,wBAAc,EAAE,KAAvE;AAA8ED,mBAAS,EAAE,KAAzF;AAAgGD,qBAAW,EAAE,KAA7G;AAAoHlF,aAAG,EAAE,KAAzH;AAA+H8E,sBAAY,EAAE;AAA7I,SAAN;AACD;;AACD,WAAKkT,qBAAL,CAA2B,kBAA3B,EAA+C3T,GAA/C;AACA,WAAK0R,4BAAL,CAAkCxiB,IAAlC,CAAuC8Q,GAAG,CAAC,aAAD,CAA1C;;AACA,UAAGA,GAAG,CAAC,aAAD,CAAH,KAAuB,KAA1B,EAAgC;AAC9B,aAAK4T,oCAAL,CAA0C,IAA1C;AACA,aAAKC,6BAAL,CAAmC,IAAnC;AACA,aAAKC,WAAL,CAAiB,IAAjB;AACD,OAJD,MAIM;AACJ,aAAKA,WAAL,CAAiB,IAAjB;AACD;AACF;AA3kBH;AAAA;AAAA,WA6kBE,2CAAkCjhB,KAAlC,EAAuC;AACrC,UAAMmN,GAAG,GAAG,KAAK0T,mCAAL,CAAyC7gB,KAAzC,CAAZ;AACA,WAAK8gB,qBAAL,CAA2B,wBAA3B,EAAqD3T,GAArD;AACA,UAAMqR,eAAe,GAAG,KAAKA,eAA7B;AACA,WAAKA,eAAL,GAAuBA,eAAvB;AACA,WAAKyC,WAAL,CAAiB,IAAjB;AACD;AAnlBH;AAAA;AAAA,WAqlBE,6CAAoCjhB,KAApC,EAAyC;AACvC,UAAImN,GAAG,GAAG,EAAV;;AACA,UAAInN,KAAK,KAAK,QAAd,EAAwB;AACtBmN,WAAG,GAAG;AACJY,kBAAQ,EAAE,QADN;AACgBJ,kBAAQ,EAAE,KAD1B;AACiCjI,qBAAW,EAAE,QAD9C;AACwDwI,wBAAc,EAAE,QADxE;AAEJD,mBAAS,EAAE,QAFP;AAEiBD,qBAAW,EAAE,QAF9B;AAEwClF,aAAG,EAAE,QAF7C;AAEuD8E,sBAAY,EAAE;AAFrE,SAAN;AAID,OALD,MAKO,IAAI5N,KAAK,KAAK,kBAAd,EAAkC;AACvCmN,WAAG,GAAG;AACJY,kBAAQ,EAAE,kBADN;AAC0BJ,kBAAQ,EAAE,KADpC;AAC2CjI,qBAAW,EAAE,kBADxD;AAC4EwI,wBAAc,EAAE,kBAD5F;AAEJD,mBAAS,EAAE,OAFP;AAEgBD,qBAAW,EAAE,kBAF7B;AAEiDlF,aAAG,EAAE,gBAFtD;AAEwE8E,sBAAY,EAAE;AAFtF,SAAN;AAID,OALM,MAKA;AACLT,WAAG,GAAG;AACJY,kBAAQ,EAAE,OADN;AACeJ,kBAAQ,EAAE,KADzB;AACgCjI,qBAAW,EAAE,OAD7C;AACsDwI,wBAAc,EAAE,OADtE;AAEJD,mBAAS,EAAE,OAFP;AAEgBD,qBAAW,EAAE,OAF7B;AAEsClF,aAAG,EAAE,OAF3C;AAEoD8E,sBAAY,EAAE;AAFlE,SAAN;AAID;;AACD,aAAOT,GAAP;AACD,KAxmBH,CA0mBE;;AA1mBF;AAAA;AAAA,WA2mBE,oBAAWvI,IAAX,EAAmD;AAAA,UAAlC4b,mBAAkC,uEAAZ,IAAY;AAAA,UAANzV,KAAM;AACjD,WAAKqV,YAAL,CAAkB/jB,IAAlB,CAAuB;AAAEsiB,kBAAU,EAAE/Z,IAAI,CAACc;AAAnB,OAAvB;AACA,WAAK2a,oBAAL,CAA0Bzb,IAAI,CAAC/F,IAA/B,EAAqC,EAArC;AACA,WAAKyhB,mBAAL,CAAyB1b,IAAI,CAAC/F,IAA9B,EAAoC,KAApC;AACA,WAAKoiB,WAAL,CAAiBT,mBAAjB;AACA,UAAMU,WAAW,GAAG,KAAKC,YAAL,CAAkBvmB,MAAlB,CAAyB,eAAK;AAAA,eAAIwmB,KAAK,CAACviB,IAAN,KAAe+F,IAAI,CAAC/F,IAAxB;AAAA,OAA9B,EAA4D,CAA5D,CAApB;;AACA,UAAIqiB,WAAJ,EAAgB;AACd,aAAKG,qBAAL,CAA2BhlB,IAA3B,CAAgC6kB,WAAhC;AACD;AACF;AApnBH;AAAA;AAAA,WAsnBE,sCAA6Btc,IAA7B,EAAiC;AAC/B,WAAKwb,YAAL,CAAkB/jB,IAAlB,CAAuB;AAAEsiB,kBAAU,EAAE/Z,IAAI,CAACc;AAAnB,OAAvB;AACA,WAAK2a,oBAAL,CAA0Bzb,IAAI,CAAC/F,IAA/B,EAAqC,EAArC;AACA,WAAKyhB,mBAAL,CAAyB1b,IAAI,CAAC/F,IAA9B,EAAoC,KAApC;AACD,KA1nBH,CA4nBE;;AA5nBF;AAAA;AAAA,WA6nBE,iCAAqB;AACnB;AACA;AAEA,UAAMmS,SAAS,GAAGR,mCAAM,GAAG8Q,QAAT,CAAkB,CAAlB,EAAqB,OAArB,EAA8BC,OAA9B,CAAsC,OAAtC,EAA+CtQ,MAA/C,CAAsD,YAAtD,CAAlB;AACA,UAAMC,OAAO,GAAGV,mCAAM,GAAG8Q,QAAT,CAAkB,CAAlB,EAAqB,QAArB,EAA+BE,KAA/B,CAAqC,OAArC,EAA8CvQ,MAA9C,CAAqD,YAArD,CAAhB;AACA,aAAO;AAAED,iBAAS,EAATA,SAAF;AAAaE,eAAO,EAAPA;AAAb,OAAP;AACD;AApoBH;AAAA;AAAA,WAqoBE,8BAAkB;AAChB,UAAMF,SAAS,GAAGR,mCAAM,CAAC,YAAD,CAAN,CAAqBS,MAArB,CAA4B,YAA5B,CAAlB;AACA,UAAMC,OAAO,GAAGV,mCAAM,GACnBuI,GADa,CACT,CADS,EACN,MADM,EAEb9H,MAFa,CAEN,YAFM,CAAhB;AAGA,aAAO;AAAED,iBAAS,EAATA,SAAF;AAAaE,eAAO,EAAPA;AAAb,OAAP;AACD,KA3oBH,CA6oBE;;AA7oBF;AAAA;AAAA,WA8oBE,6BAA4B;AAAA,UAAVuQ,IAAU,uEAAH,GAAG;AAC1B,UAAMC,KAAK,GAAGlR,mCAAM,EAApB;AACA,UAAMQ,SAAS,GAAG0Q,KAAK,CAAC3I,GAAN,CAAU,CAAV,EAAa,MAAb,EAAqB9H,MAArB,CAA4B,YAA5B,CAAlB;AACA,UAAMC,OAAO,GAAGV,mCAAM,GACnBuI,GADa,CACT0I,IADS,EACH,MADG,EAEbxQ,MAFa,CAEN,YAFM,CAAhB;AAGA,aAAO;AAAED,iBAAS,EAATA,SAAF;AAAaE,eAAO,EAAPA;AAAb,OAAP;AACD,KArpBH,CAupBE;;AAvpBF;AAAA;AAAA,WAwpBE,4BAAmBtW,MAAnB,EAA2B+mB,QAA3B,EAAmC;AACjC,UAAIlD,WAAJ;;AACA,UAAI,OAAOkD,QAAQ,CAAC3hB,KAAhB,KAA0B,QAA9B,EAAwC;AACtCye,mBAAW,GAAG;AACZ9Q,kBAAQ,EAAE,KADE;AAEZC,sBAAY,EAAE,KAFF;AAGZ9E,aAAG,EAAE6Y,QAAQ,CAAC3hB,KAHF;AAIZ0F,qBAAW,EAAEic,QAAQ,CAAC3hB,KAJV;AAKZ+N,kBAAQ,EAAE4T,QAAQ,CAACjc;AALP,SAAd;;AAOA,YAAIic,QAAQ,CAACC,UAAb,EAAyB;AACvBnD,qBAAW,CAACS,UAAZ,GAAyByC,QAAQ,CAACC,UAAlC;AACD;;AACD,YAAID,QAAQ,CAACE,SAAb,EAAwB;AACtBpD,qBAAW,CAACU,SAAZ,GAAwBwC,QAAQ,CAACE,SAAjC;AACD;AACF;;AACD,WAAKF,QAAL,GAAcA,QAAd;AACA,WAAKb,qBAAL,CAA2BlmB,MAA3B,EAAmC6jB,WAAnC;AACA,WAAKf,iBAAL,GAAyBiE,QAAQ,CAACzQ,OAAlC;AACA,WAAKuM,mBAAL,GAA2BkE,QAAQ,CAAC3Q,SAApC;AACD,KA7qBH,CA+qBE;;AA/qBF;AAAA;AAAA,WAgrBE,8BAAkB;AAChB,aAAO;AACLA,iBAAS,EAAE,KAAKyM,mBADX;AAELvM,eAAO,EAAE,KAAKwM;AAFT,OAAP;AAID;AArrBH;AAAA;AAAA,WAurBE,sCAA0B;AACxB,aAAO;AACL1M,iBAAS,EAAE,KAAKgM,sBAAL,CAA4BjO,UAA5B,CAAuCiC,SAD7C;AAELE,eAAO,EAAE,KAAK8L,sBAAL,CAA4BjO,UAA5B,CAAuCmC;AAF3C,OAAP;AAID;AA5rBH;AAAA;AAAA,WA8rBE,6BAAiB;AACf,WAAK4Q,YAAL,CAAkBzlB,IAAlB,CAAuB,CAAC,KAAKylB,YAAL,CAAkB9hB,KAA1C;AACD;AAhsBH;AAAA;AAAA,WAksBE,4BAAgB;AACd,WAAK8hB,YAAL,CAAkBzlB,IAAlB,CAAuB,KAAvB;AACD;AApsBH;AAAA;AAAA,WAssBE,2BAAe;AACb,WAAKylB,YAAL,CAAkBzlB,IAAlB,CAAuB,IAAvB;AACD;AAED;AAEA;;AA5sBF;AAAA;AAAA,WA6sBE,4BAAgB;AACd,WAAK0lB,4BAAL;AACA,UAAIjF,OAAO,GAAGnS,8EAAd;;AACA,UAAI,KAAKqX,aAAT,EAAwB;AACtBlF,eAAO,mCAAQnS,8EAAR,GAAoCtB,sEAApC,CAAP;AACD;;AACD,WAAK4Y,mBAAL,CAAyBnF,OAAzB;AACD,KAptBH,CAstBE;;AAttBF;AAAA;AAAA,WAutBE,wCAA4B;AAAA;;AAC1B;AACA,UAAMoF,eAAe,GAAGvZ,yEAAA,CAAmB,cAAI;AAAA,eAAI7L,IAAI,CAAC+L,KAAT;AAAA,OAAvB,CAAxB;;AACA,UAAMyC,YAAY,GAAG,YAAG6W,MAAH,sKAAaD,eAAb,EAArB,CAH0B,CAI1B;;;AACA,UAAM1D,eAAe,GAAG,EAAxB;AACA,UAAMH,WAAW,GAAG,EAApB;AACA/S,kBAAY,CAAC+B,GAAb,CAAiB,cAAI,EAAG;AACtBgR,mBAAW,CAACvhB,IAAI,CAACgM,GAAN,CAAX,GAAwB,IAAxB;AACA0V,uBAAe,CAAC1hB,IAAI,CAACgM,GAAN,CAAf,GAA4B,IAAIqF,6DAAJ,CAAerR,IAAI,CAACgM,GAApB,EAAyBhM,IAAI,CAAC4I,WAA9B,EAA2C5I,IAAI,CAACiM,cAAhD,EAAgE,IAAhE,CAA5B;AACD,OAHD;AAIA,WAAKoV,eAAL,GAAuBK,eAAvB;AACA,WAAKH,WAAL,GAAmBA,WAAnB;AACD,KApuBH,CAsuBE;;AAtuBF;AAAA;AAAA,WAuuBE,6BAAoB+D,iBAApB,EAAqC;AACnC,UAAM/D,WAAW,GAAG,KAAKA,WAAzB;AACA,UAAMG,eAAe,GAAG,KAAKA,eAA7B;;AACA,WAAK,IAAMvV,SAAX,IAAwBmZ,iBAAxB,EAA2C;AACzC,YAAMC,UAAU,GAAGD,iBAAiB,CAACnZ,SAAD,CAApC,CADyC,CAEzC;;AACAoV,mBAAW,CAACpV,SAAD,CAAX,GAAyBoZ,UAAU,CAAC3Y,IAAX,CAAgB2D,GAAhB,CAAoB,WAAC;AAAA,iBAAI,IAAIK,6DAAJ,CAAeH,CAAf,CAAJ;AAAA,SAArB,CAAzB,CAHyC,CAIzC;;AACA,YAAM+U,gBAAgB,GAAGD,UAAU,CAAC3Y,IAAX,CAAgB+O,IAAhB,CAAqB,WAAC;AAAA,iBAAIlL,CAAC,CAAC3D,SAAN;AAAA,SAAtB,CAAzB;AACA,YAAM/K,IAAI,GAAG,KAAKsf,eAAL,CAAqBlV,SAArB,EAAgCvD,WAA7C;AACA,aAAKyY,eAAL,CAAqBlV,SAArB,IAAkC,IAAIkF,6DAAJ,CAChClF,SADgC,EAEhCpK,IAFgC,EAGhCwjB,UAAU,CAAC9Y,cAHqB,EAIhC+Y,gBAJgC,EAKhCD,UAAU,CAAC3Y,IAAX,CAAgB3M,MALgB,EAMhC,KANgC,CAAlC;AAQA,aAAKohB,eAAL,CAAqBlV,SAArB,EAAgCvD,WAAhC,GAA8C7G,IAA9C,CAfyC,CAgBzC;;AACA,YAAI2f,eAAe,IAAIA,eAAe,CAACvV,SAAD,CAAtC,EAAmD;AACjDuV,yBAAe,CAACvV,SAAD,CAAf,GAA6BtK,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAKuf,eAAL,CAAqBlV,SAArB,CAAf,CAAX,CAA7B;AACD;AACF;;AACD,WAAKoV,WAAL,GAAmBA,WAAnB;AACA,WAAKG,eAAL,GAAuBA,eAAvB;AACD;AAjwBH;AAAA;AAAA,WAmwBE,gCAAoB;AAClB,WAAKA,eAAL,GAAuB7f,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAKuf,eAApB,CAAX,CAAvB;AACA,WAAK8C,WAAL;AACA,WAAKsB,6BAAL,CAAmClmB,IAAnC,CAAwC,IAAxC;AACD;AAvwBH;AAAA;AAAA,WAywBE,+BAAmB;AAAA;;AACjB,UAAM+gB,MAAM,GAAG,KAAKoF,YAApB;AACApF,YAAM,CAACqF,OAAP,CAAe,mBAAS,EAAG;AACzBC,iBAAS,CAACxZ,KAAV,GAAkBwZ,SAAS,CAAC7Z,KAAV,CAAgB8Z,MAAhB,CAAuB,UAACC,GAAD,EAAMC,UAAN,EAAoB;AAC3D,cAAI,MAAI,CAACrE,eAAL,IAAwB,MAAI,CAACA,eAAL,CAAqBqE,UAAU,CAAC/Z,GAAhC,CAAxB,IAAgE,MAAI,CAAC0V,eAAL,CAAqBqE,UAAU,CAAC/Z,GAAhC,EAAqCwF,QAAzG,EAAmH;AACjH,mBAAOsU,GAAG,GAAG,CAAb;AACD,WAFD,MAEO;AACL,mBAAOA,GAAP;AACD;AACF,SANiB,EAMf,CANe,CAAlB;AAOD,OARD;AASA,WAAKJ,YAAL,GAAoBpF,MAApB;AACD;AArxBH;AAAA;AAAA,WAuxBE,iCAAwBxiB,MAAxB,EAAqC6E,MAArC,EAAkDsL,KAAlD,EAA+D;AAC7D,UAAMqS,MAAM,GAAG,KAAKoF,YAApB;;AACA,UAAI/iB,MAAJ,EAAY;AACV2d,cAAM,CAACrS,KAAD,CAAN,CAAc7B,KAAd;AACD,OAFD,MAEO;AACLkU,cAAM,CAACrS,KAAD,CAAN,CAAc7B,KAAd;AACD;;AACD,WAAKsZ,YAAL,GAAoBpF,MAApB;AACA,WAAKkD,mBAAL,CAAyB1lB,MAAzB,EAAiC6E,MAAjC;AACD;AAED;;AAlyBF;AAAA;AAAA,WAmyBE,+BAAsBqjB,SAAtB,EAA+B;AAC7B,WAAKnF,eAAL,CAAqBthB,IAArB,CAA0BymB,SAA1B;AACA,WAAKC,cAAL,CAAoB1mB,IAApB,CAAyBymB,SAAzB;AACD,KAtyBH,CAwyBE;;AAxyBF;AAAA;AAAA,WAyyBE,yBAAgBA,SAAhB,EAAyB;AAAA;;AACvB,UAAIA,SAAS,IAAI,IAAb,IAAqB,CAAC,KAAK3E,eAA3B,IAA8C,CAAClL,MAAM,CAACC,IAAP,CAAY,KAAKiL,eAAjB,EAAkCphB,MAArF,EAA6F;AAC3F;AACD;;AACD,WAAKimB,kBAAL,CAAwB3mB,IAAxB,CAA6B;AAAEoD,cAAM,EAAE;AAAV,OAA7B;AACA,UAAMwjB,YAAY,GAAG7Z,kFAArB;AACA,UAAI2V,aAAa,GAAG,KAAKxB,iBAAL,EAApB;AACAwB,mBAAa,GAAG,KAAKvG,SAAL,CAAeuG,aAAf,CAAhB;AACA,UAAMmE,eAAe,GAAGD,YAAY,CAAC5V,GAAb,CAAiB,gBAAM;AAAA,eAAI,MAAI,CAAC8V,sBAAL,CAA4BL,SAA5B,EAAuCM,MAAvC,EAA+CrE,aAA/C,CAAJ;AAAA,OAAvB,CAAxB;AACA,UAAMsE,YAAY,GAAG5L,+CAAQ,CAACyL,eAAD,CAAR,CAA0BlnB,SAA1B,CAAoC,cAAI,EAAG;AAC9D,cAAI,CAACsnB,iBAAL,CAAuB1e,IAAvB;;AACAye,oBAAY,CAACE,WAAb;AACD,OAHoB,CAArB;AAID,KAtzBH,CAwzBE;;AAxzBF;AAAA;AAAA,WAyzBE,gCAAuBT,SAAvB,EAAkC9X,OAAlC,EAA2CsN,cAA3C,EAAyD;AACvD,UAAMla,OAAO;AACX0kB,iBAAS,EAATA,SADW;AAEXlmB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CAFA;AAGX2Z,iBAAS,EAAE,KAAKqD,cAHL;AAIXjC,YAAI,EAAE,SAJK;AAKXlM,eAAO,EAAPA,OALW;AAMXgN,mBAAW,EAAE,CANF;AAOX+B,iBAAS,EAAE,CAPA;AAQXC,gBAAQ,EAAE,GARC;AASXhJ,iBAAS,EAAE,KAAKyM,mBATL;AAUXvM,eAAO,EAAE,KAAKwM,iBAVH;AAWXJ,kBAAU,EAAE;AAXD,SAYRhF,cAZQ,CAAb;;AAeA,UAAIla,OAAO,CAAC,YAAD,CAAP,IAAyB,IAA7B,EAAmC;AACjCka,sBAAc,CAAC,WAAD,CAAd,GAA8B,KAAKQ,SAAL,CAAe9H,SAA7C;AACAsH,sBAAc,CAAC,SAAD,CAAd,GAA4B,KAAKQ,SAAL,CAAe5H,OAA3C;;AACA,YAAI9S,OAAO,CAAC,kBAAD,CAAP,IAA+B,IAA/B,IAAuCA,OAAO,CAAC,kBAAD,CAAP,CAA4Bwa,QAA5B,CAAqCpI,mCAAM,GAAGS,MAAT,CAAgB,MAAhB,CAArC,CAA3C,EAA0G;AACxG7S,iBAAO,CAAC,kBAAD,CAAP,GAA8BA,OAAO,CAAC,kBAAD,CAAP,CAA4BgS,KAA5B,CAAkC,GAAlC,EAAuCxV,MAAvC,CAA8C,cAAI;AAAA,mBAAIkC,IAAI,IAAI0T,mCAAM,GAAGS,MAAT,CAAgB,MAAhB,CAAZ;AAAA,WAAlD,EAAuFE,IAAvF,EAA9B;AACD;AACF,OAND,MAMO,IAAI/S,OAAO,CAAC,YAAD,CAAP,IAAyB,IAA7B,EAAmC;AACxCka,sBAAc,CAAC,WAAD,CAAd,GAA8B,KAAKQ,SAAL,CAAe9H,SAA7C;AACAsH,sBAAc,CAAC,SAAD,CAAd,GAA4B,KAAKQ,SAAL,CAAe5H,OAA3C;;AACA,YAAI9S,OAAO,CAAC,kBAAD,CAAP,IAA+B,IAA/B,IAAuCA,OAAO,CAAC,kBAAD,CAAP,CAA4Bwa,QAA5B,CAAqCpI,mCAAM,GAAGuI,GAAT,CAAa,CAAb,EAAgB,OAAhB,EAAyB9H,MAAzB,CAAgC,MAAhC,CAArC,CAA3C,EAA0H;AACxH7S,iBAAO,CAAC,kBAAD,CAAP,GAA8BA,OAAO,CAAC,kBAAD,CAAP,CAA4BgS,KAA5B,CAAkC,GAAlC,EAAuCxV,MAAvC,CAA8C,cAAI;AAAA,mBAAIkC,IAAI,IAAI0T,mCAAM,GAAGuI,GAAT,CAAa,CAAb,EAAgB,OAAhB,EAAyB9H,MAAzB,CAAgC,MAAhC,CAAZ;AAAA,WAAlD,EAAuGE,IAAvG,EAA9B;AACD;AACF,OANM,MAOF;AACH/S,eAAO,CAAC,kBAAD,CAAP,GAA8B,IAA9B;AACD,OA/BsD,CAkCvD;;;AACA,UAAIA,OAAO,CAAC4M,OAAR,KAAoB,8BAAxB,EAAwD;AACtD,YAAImN,cAAc,GAAG/Z,OAAO,CAACka,cAAR,CAAuB1d,MAAvB,CAA8B,mBAAS,EAAG;AAC7D,iBAAO,CAAC,CAAC,gBAAD,EAAmB,iBAAnB,EAAsC,eAAtC,EAAuDge,QAAvD,CAAgEC,SAAS,CAAC/P,GAA1E,CAAR;AACD,SAFoB,CAArB;AAGA1K,eAAO,CAACka,cAAR,4JAA6BH,cAA7B,EAJsD,CAKtD;AACD,OAND,MAMO,IAAI/Z,OAAO,CAAC4M,OAAR,KAAoB,+BAApB,IAAuD5M,OAAO,CAAC4M,OAAR,KAAoB,kCAA/E,EAAmH;AACxH,YAAImN,gBAAc,GAAG/Z,OAAO,CAACka,cAAR,CAAuB1d,MAAvB,CAA8B,mBAAS,EAAG;AAC7D,iBAAO,CAAC,CAAC,cAAD,EAAiB,eAAjB,EAAkCge,QAAlC,CAA2CC,SAAS,CAAC/P,GAArD,CAAR;AACD,SAFoB,CAArB;;AAGA1K,eAAO,CAACka,cAAR,4JAA6BH,gBAA7B;AACD;;AACD,aAAO,KAAKvC,UAAL,CAAgBnD,IAAhB,CAAqB,aAArB,EAAoCrU,OAApC,CAAP;AACD,KAz2BH,CA22BE;;AA32BF;AAAA;AAAA,WA42BE,2BAAkBolB,SAAlB,EAA2B;AACzB,UAAMhF,eAAe,GAAG,KAAKA,eAA7B;AACAgF,eAAS,CAACf,OAAV,CAAkB,cAAI,EAAG;AACvB,YAAI,CAAC7d,IAAL,EAAW;AACT;AACD;;AACD,YAAM6e,iBAAiB,GAAG7e,IAAI,CAAC,CAAD,CAA9B;;AACA,aAAK,IAAMkE,GAAX,IAAkB2a,iBAAlB,EAAqC;AACnC,cAAIjF,eAAe,CAAC1V,GAAD,CAAnB,EAA0B;AACxB0V,2BAAe,CAAC1V,GAAD,CAAf,CAAqBsF,YAArB,GAAoCqV,iBAAiB,CAAC3a,GAAD,CAArD;AACD;AACF;AACF,OAVD;AAWA,WAAK0V,eAAL,GAAuBA,eAAvB;AACA,WAAKwE,kBAAL,CAAwB3mB,IAAxB,CAA6B;AAAEoD,cAAM,EAAE;AAAV,OAA7B;AACD;AAED;AAEA;;AACA;;;;;AAh4BF;AAAA;AAAA,WAo4BE,6BAAoBuiB,aAApB,EAAiC;AAC/B,WAAK9B,iBAAL,CAAuB7jB,IAAvB,CAA4B;AAAE6J,YAAI,EAAE;AAAR,OAA5B;AACA,WAAK8b,aAAL,GAAqBA,aAArB;AACA,UAAM0B,WAAW,GAAG1B,aAAa,GAAG3Y,sEAAH,GAAqBS,yEAAtD;;AACA,UAAI,CAAC,KAAKqU,eAAN,IAAyB,CAAClL,MAAM,CAACC,IAAP,CAAY,KAAKiL,eAAjB,EAAkCphB,MAAhE,EAAwE;AACtE;AACD;;AACD,WAAKklB,mBAAL,CAAyByB,WAAzB;AACA,WAAKxG,YAAL,GAAoB8E,aAAa,GAAG,KAAK2B,iBAAR,GAA4B,KAAKC,oBAAlE;;AACA,UAAI,KAAKjH,cAAL,CAAoB3c,KAAxB,EAA+B;AAC7B,aAAKihB,WAAL;AACD;;AACD,WAAK4C,aAAL,CAAmBxnB,IAAnB,CAAwB;AAAEoD,cAAM,EAAE;AAAV,OAAxB;AACD;AAED;;AAEA;AAEA;;AAv5BF;AAAA;AAAA,WAw5BE,+BAAmB;AACjB,UAAIqkB,SAAJ;AACAA,eAAS,GAAGte,sEAAA,CAAc,WAAC;AAAA,eAAI+H,CAAC,CAAC5Q,QAAN;AAAA,OAAf,EAA+BwU,IAA/B,CAAoC,GAApC,CAAZ;AACA,aAAO2S,SAAP;AACD,KA55BH,CA85BE;;AA95BF;AAAA;AAAA,WA+5BE,+BAAmB;AAAA;;AACjB,UAAM1lB,OAAO,GAAG;AACd2lB,gBAAQ,EAAE7nB,YAAY,CAACC,OAAb,CAAqB,WAArB,CADI;AAEd2nB,iBAAS,EAAE;AAFG,OAAhB;AAIA,WAAKlO,UAAL,CACG3R,GADH,CACO,kBADP,EAC2B7F,OAD3B,EAEGP,IAFH,CAGIwP,oDAAG,CAAC,cAAI;AAAA,eAAI,IAAImB,qEAAJ,CAAiB5J,IAAjB,CAAJ;AAAA,OAAL,CAHP,EAIIyI,oDAAG,CAAC,cAAI;AAAA,eAAI,MAAI,CAAC2W,uBAAL,CAA6Bpf,IAA7B,CAAJ;AAAA,OAAL,CAJP,EAMG5I,SANH,CAMa,cAAI;AAAA,eAAI,MAAI,CAACioB,yBAAL,CAA+Brf,IAA/B,CAAJ;AAAA,OANjB;AAOD;AA36BH;AAAA;AAAA,WA66BE,iCAAwBhK,MAAxB,EAA8B;AAAA;;AAC5B,UAAMwD,OAAO,GAAG;AACdxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADG;AAEd+nB,qBAAa,EAAEtpB,MAAM,CAACgU,OAFR;AAGduV,iBAAS,EAAExlB,IAAI,CAACC,SAAL,CAAehE,MAAM,CAACmU,UAAtB,CAHG;AAIdG,iBAAS,EAAEtU,MAAM,CAACsU,SAJJ;AAKd4U,iBAAS,EAAE;AALG,OAAhB;AAOA,WAAKlO,UAAL,CACGnD,IADH,CACQ,eADR,EACyBrU,OADzB,EAEGP,IAFH,CAGIwP,oDAAG,CAAC,cAAI;AAAA,eAAI,IAAImB,qEAAJ,CAAiB5J,IAAjB,CAAJ;AAAA,OAAL,CAHP,EAIIyI,oDAAG,CAAC,cAAI;AAAA,eAAI,MAAI,CAAC2W,uBAAL,CAA6Bpf,IAA7B,CAAJ;AAAA,OAAL,CAJP,EAME;AANF,OAOG5I,SAPH,CAOa,cAAI;AAAA,eAAIoJ,OAAO,CAACC,GAAR,CAAY,sBAAZ,CAAJ;AAAA,OAPjB;AAQD,KA77BH,CA+7BE;;AA/7BF;AAAA;AAAA,WAg8BE,oCAA2BzK,MAA3B,EAAiC;AAAA;;;;AAC/B,UAAM2P,aAAa,GAAG,KAAK6Z,uBAAL,EAAtB;AACA,UAAMC,gBAAgB,GAAG,kBAAM,SAAN,UAAM,WAAN,GAAM,MAAN,SAAM,CAAEtV,UAAR,MAAkB,IAAlB,IAAkBuV,aAAlB,GAAkB,MAAlB,GAAkBA,GAAEhM,cAAF,CAAiB1d,MAAjB,CAAwB,cAAI;AAAA,eAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,OAA5B,EAAyD,CAAzD,CAAlB,MAA6E,IAA7E,IAA6Eyb,aAA7E,GAA6E,MAA7E,GAA6EA,GAAEvkB,KAAxG;;AACA,UAAIqkB,gBAAgB,CAACzL,QAAjB,CAA0B,cAA1B,CAAJ,EAA8C;AAC5Che,cAAM,CAACmU,UAAP,CAAkBuJ,cAAlB,CAAiC1d,MAAjC,CAAwC,cAAI;AAAA,iBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,SAA5C,EAAyE,CAAzE,EAA4E9I,KAA5E,GAAoF,2BAA2BuK,aAA/G;AACD,OAFD,MAEO,IAAI8Z,gBAAgB,CAACzL,QAAjB,CAA0B,aAA1B,CAAJ,EAA6C;AAClDhe,cAAM,CAACmU,UAAP,CAAkBuJ,cAAlB,CAAiC1d,MAAjC,CAAwC,cAAI;AAAA,iBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,SAA5C,EAAyE,CAAzE,EAA4E9I,KAA5E,GAAoF,0BAA0BuK,aAA9G;AACD;;AACD,UAAMnM,OAAO,GAAG;AACdxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADG;AAEd+nB,qBAAa,EAAEtpB,MAAM,CAACgU,OAFR;AAGduV,iBAAS,EAAExlB,IAAI,CAACC,SAAL,CAAehE,MAAM,CAACmU,UAAtB,CAHG;AAIdG,iBAAS,EAAEtU,MAAM,CAACsU,SAJJ;AAKd4U,iBAAS,EAAE;AALG,OAAhB;AAOA,WAAKlO,UAAL,CACGnD,IADH,CACQ,eADR,EACyBrU,OADzB,EAEGP,IAFH,CAGIwP,oDAAG,CAAC,cAAI;AAAA,eAAI,IAAImB,qEAAJ,CAAiB5J,IAAjB,CAAJ;AAAA,OAAL,CAHP,EAIIyI,oDAAG,CAAC,cAAI;AAAA,eAAI,MAAI,CAAC2W,uBAAL,CAA6Bpf,IAA7B,CAAJ;AAAA,OAAL,CAJP,EAME;AANF,OAOG5I,SAPH,CAOa,cAAI;AAAA,eAAK,MAAI,CAACwoB,qBAAL,GAA6B5pB,MAAlC;AAAA,OAPjB;AAQD,KAv9BH,CAy9BE;;AAz9BF;AAAA;AAAA,WA09BE,sCAA6BA,MAA7B,EAAmC;AAAA;;AACjC,UAAMwD,OAAO,GAAG;AACdxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADG;AAEd+nB,qBAAa,EAAEtpB,MAAM,CAACgU,OAFR;AAGduV,iBAAS,EAAExlB,IAAI,CAACC,SAAL,CAAehE,MAAM,CAACmU,UAAtB,CAHG;AAIdG,iBAAS,EAAEtU,MAAM,CAACsU,SAJJ;AAKd4U,iBAAS,EAAE;AALG,OAAhB;AAOA,WAAKlO,UAAL,CACGnD,IADH,CACQ,mBADR,EAC6BrU,OAD7B,EAEGP,IAFH,CAGIwP,oDAAG,CAAC,cAAI;AAAA,eAAI,IAAImB,qEAAJ,CAAiB5J,IAAjB,CAAJ;AAAA,OAAL,CAHP,EAIIyI,oDAAG,CAAC,cAAI;AAAA,eAAI,OAAI,CAAC2W,uBAAL,CAA6Bpf,IAA7B,CAAJ;AAAA,OAAL,CAJP,EAMG5I,SANH,CAMa,cAAI,EAAG;AAChB;AACA;AACA,eAAI,CAACioB,yBAAL,CAA+Brf,IAA/B,EAHgB,CAIhB;;AACD,OAXH;AAYD;AA9+BH;AAAA;AAAA,WAg/BE,mBAAUkY,OAAV,EAAiB;AACf,UAAIA,OAAO,CAACxE,cAAR,KAA2B,IAA3B,IAAmCwE,OAAO,CAACxE,cAAR,KAA2B/Z,SAAlE,EAA4E;AAC1E,YAAMgM,aAAa,GAAG,KAAK6Z,uBAAL,EAAtB;AACA,YAAMC,gBAAgB,GAAGvH,OAAO,CAACxE,cAAR,CAAuB1d,MAAvB,CAA8B,cAAI;AAAA,iBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,SAAlC,EAA+D,CAA/D,EAAkE9I,KAA3F;;AACA,YAAIqkB,gBAAgB,CAACzL,QAAjB,CAA0B,cAA1B,KAA6CyL,gBAAgB,CAACzL,QAAjB,CAA0B,aAA1B,CAAjD,EAA2F;AACzFkE,iBAAO,CAACxE,cAAR,GAAyBwE,OAAO,CAACxE,cAAR,CAAuBjL,GAAvB,CAA2B,cAAI,EAAG;AACzD,gBAAIvQ,IAAI,CAACgM,GAAL,KAAa,UAAjB,EAA6B;AAC3B,kBAAIhM,IAAI,CAACkD,KAAL,CAAW4Y,QAAX,CAAoB,qBAApB,CAAJ,EAA+C;AAC7C,oBAAI9b,IAAI,CAACkD,KAAL,CAAW4Y,QAAX,CAAoBrO,aAApB,CAAJ,EAAuC;AACrCuS,yBAAO,CAAC,eAAD,CAAP,GAA2BvS,aAA3B;AACAzN,sBAAI,CAACkD,KAAL,GAAa,kCAAb;AACD,iBAHD,MAGO;AACL8c,yBAAO,CAAC,eAAD,CAAP,GAA2BvS,aAAa,GAAG,CAA3C;AACAzN,sBAAI,CAACkD,KAAL,GAAa,mCAAb;AACD;AACF;;AACD,kBAAIlD,IAAI,CAACkD,KAAL,CAAW4Y,QAAX,CAAoB,oBAApB,CAAJ,EAA8C;AAC5C,oBAAI9b,IAAI,CAACkD,KAAL,CAAW4Y,QAAX,CAAoBrO,aAApB,CAAJ,EAAuC;AACrCuS,yBAAO,CAAC,eAAD,CAAP,GAA2BvS,aAA3B;AACAzN,sBAAI,CAACkD,KAAL,GAAa,iCAAb;AACD,iBAHD,MAGO;AACL8c,yBAAO,CAAC,eAAD,CAAP,GAA2BvS,aAAa,GAAG,CAA3C;AACAzN,sBAAI,CAACkD,KAAL,GAAa,kCAAb;AACD;AACF;AACF;;AACD,mBAAOlD,IAAP;AACD,WAtBwB,CAAzB;AAuBD;AACF;;AACD,aAAOggB,OAAP;AACD;AA/gCH;AAAA;AAAA,WAihCE,wBAAeqH,SAAf,EAAwB;AACtB,UAAIA,SAAS,CAACpV,UAAV,CAAqBuJ,cAArB,KAAwC,IAAxC,IAAgD6L,SAAS,CAACpV,UAAV,CAAqBuJ,cAArB,KAAwC/Z,SAA5F,EAAsG;AACpG,YAAMgM,aAAa,GAAG,KAAK6Z,uBAAL,EAAtB;AACA,YAAIC,gBAAgB,GAAGF,SAAS,CAACpV,UAAV,CAAqBuJ,cAArB,CAAoC1d,MAApC,CAA2C,cAAI;AAAA,iBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,SAA/C,EAA4E,CAA5E,EAA+E9I,KAAtG;;AACA,YAAIqkB,gBAAgB,CAACzL,QAAjB,CAA0B,cAA1B,CAAJ,EAA+C;AAC7CuL,mBAAS,CAACpV,UAAV,CAAqB,eAArB,IAAwCxE,aAAxC;AACA4Z,mBAAS,CAACpV,UAAV,CAAqBuJ,cAArB,CAAoC1d,MAApC,CAA2C,cAAI;AAAA,mBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,WAA/C,EAA4E,CAA5E,EAA+E9I,KAA/E,GAAuF,2BAA2BuK,aAAlH;AACD,SAHD,MAGO,IAAI8Z,gBAAgB,CAACzL,QAAjB,CAA0B,aAA1B,CAAJ,EAA6C;AAClDuL,mBAAS,CAACpV,UAAV,CAAqB,eAArB,IAAwCxE,aAAxC;AACA4Z,mBAAS,CAACpV,UAAV,CAAqBuJ,cAArB,CAAoC1d,MAApC,CAA2C,cAAI;AAAA,mBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,WAA/C,EAA4E,CAA5E,EAA+E9I,KAA/E,GAAuF,0BAA0BuK,aAAjH;AACD;AACF;;AACD,WAAKia,qBAAL,GAA6BL,SAA7B;AACA,WAAKM,oBAAL,CAA0BN,SAA1B;AACA,WAAKlD,WAAL;AACA,WAAK4C,aAAL,CAAmBxnB,IAAnB,CAAwB;AAAEoD,cAAM,EAAE;AAAV,OAAxB;AACD;AAjiCH;AAAA;AAAA,WAmiCE,iCAAwB0kB,SAAxB,EAAiC;AAAA;;AAC/B,WAAKR,iBAAL,GAAyBQ,SAAS,CAAC1V,cAAV,CAAyBpB,GAAzB,CAA6B,WAAC;AAAA,eAAI,OAAI,CAACqX,iBAAL,CAAuBnX,CAAvB,CAAJ;AAAA,OAA9B,CAAzB;AACA,WAAKqW,oBAAL,GAA4BO,SAAS,CAACzV,iBAAV,CAA4BrB,GAA5B,CAAgC,WAAC;AAAA,eAAI,OAAI,CAACqX,iBAAL,CAAuBnX,CAAvB,CAAJ;AAAA,OAAjC,CAA5B;AACA,WAAK2P,YAAL,GAAoB,KAAK8E,aAAL,GAAqB,KAAK2B,iBAA1B,GAA8C,KAAKC,oBAAvE;AACA,aAAO,KAAK1G,YAAZ;AACD,KAxiCH,CA0iCE;;AA1iCF;AAAA;AAAA,WA2iCE,mCAA0ByH,WAA1B,EAAqC;;;AACnC,UAAIC,gBAAJ;;AACA,UAAID,WAAW,IAAIA,WAAW,CAAC5nB,MAA/B,EAAuC;AACrC6nB,wBAAgB,GAAGD,WAAW,CAAClM,IAAZ,CAAiB,WAAC;AAAA,iBAAIlL,CAAC,CAAC2B,SAAN;AAAA,SAAlB,CAAnB;AACD,OAJkC,CAKnC;;;AACA,UAAI0V,gBAAJ,EAAsB;AACpB,aAAKJ,qBAAL,GAA6BI,gBAA7B;AACA,YAAMra,aAAa,GAAG,KAAK6Z,uBAAL,EAAtB;AACA,YAAMC,gBAAgB,GAAG,4BAAgB,SAAhB,oBAAgB,WAAhB,GAAgB,MAAhB,mBAAgB,CAAEtV,UAAlB,MAA4B,IAA5B,IAA4BuV,aAA5B,GAA4B,MAA5B,GAA4BA,GAAEhM,cAAF,CAAiB1d,MAAjB,CAAwB,cAAI;AAAA,iBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,SAA5B,EAAyD,CAAzD,CAA5B,MAAuF,IAAvF,IAAuFyb,aAAvF,GAAuF,MAAvF,GAAuFA,GAAEvkB,KAAlH;;AACA,YAAIqkB,gBAAgB,CAACzL,QAAjB,CAA0B,cAA1B,CAAJ,EAA8C;AAC5CgM,0BAAgB,CAAC7V,UAAjB,CAA4BuJ,cAA5B,CAA2C1d,MAA3C,CAAkD,cAAI;AAAA,mBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,WAAtD,EAAmF,CAAnF,EAAsF9I,KAAtF,GAA8F,2BAA2BuK,aAAzH;AACD,SAFD,MAEO,IAAI8Z,gBAAgB,CAACzL,QAAjB,CAA0B,aAA1B,CAAJ,EAA6C;AAClDgM,0BAAgB,CAAC7V,UAAjB,CAA4BuJ,cAA5B,CAA2C1d,MAA3C,CAAkD,cAAI;AAAA,mBAAIkC,IAAI,CAACgM,GAAL,KAAa,UAAjB;AAAA,WAAtD,EAAmF,CAAnF,EAAsF9I,KAAtF,GAA8F,0BAA0BuK,aAAxH;AACD;;AACD,aAAKka,oBAAL,CAA0BG,gBAA1B;AACD,OAVD,MAUO;AACL,aAAKJ,qBAAL,GAA6B,IAA7B;AACA,aAAKK,qBAAL;AACD;;AACD,UAAMC,cAAc,GAAGH,WAAW,CAAClM,IAAZ,CAAiB,uBAAa,EAAE;AACrD,eAAOsM,aAAa,CAAC7V,SAArB;AACD,OAFsB,CAAvB;;AAGA,UAAI4V,cAAc,KAAKvmB,SAAvB,EAAiC;AAC/B,YAAMymB,6BAA6B,GAAG,oBAAc,CAACjW,UAAf,MAAyB,IAAzB,IAAyBkW,aAAzB,GAAyB,MAAzB,GAAyBA,GAAE3M,cAAF,CAAiBG,IAAjB,CAAsB,2BAAiB,EAAE;AACtG,iBAAOyM,iBAAiB,CAACpc,GAAlB,KAA0B,kBAAjC;AACD,SAF8D,CAA/D;;AAGA,YAAIkc,6BAA6B,KAAKzmB,SAAtC,EAAgD;AAC9C,cAAIymB,6BAA6B,CAAChlB,KAA9B,KAAwC,MAA5C,EAAmD;AACjD,iBAAK6e,4BAAL,CAAkCxiB,IAAlC,CAAuC,IAAvC;AACA,gBAAM8oB,mCAAmC,GAAG,oBAAc,CAACpW,UAAf,MAAyB,IAAzB,IAAyBqW,aAAzB,GAAyB,MAAzB,GAAyBA,GAAE9M,cAAF,CAAiBG,IAAjB,CAAsB,2BAAiB,EAAE;AAC5G,qBAAOyM,iBAAiB,CAACpc,GAAlB,KAA0B,wBAAjC;AACD,aAFoE,CAArE;AAGA,iBAAKgW,6BAAL,CAAmCziB,IAAnC,CAAwC8oB,mCAAmC,CAACnlB,KAA5E;AACD;AACF;AACF;;AACD,WAAKihB,WAAL;AACA,WAAKoE,iBAAL;AACA,WAAKxB,aAAL,CAAmBxnB,IAAnB,CAAwB;AAAEoD,cAAM,EAAE;AAAV,OAAxB;AACD;AAnlCH;AAAA;AAAA,WAqlCU,mCAAuB;AAC7B,UAAMwK,IAAI,GAAG,IAAIlL,IAAJ,EAAb;AACA,UAAMmL,KAAK,GAAGD,IAAI,CAACE,QAAL,KAAkB,CAAhC;AACA,UAAMC,IAAI,GAAGH,IAAI,CAACI,WAAL,EAAb;AACA,UAAMC,iBAAiB,GAAIJ,KAAK,IAAI,EAAT,IAAeA,KAAK,IAAI,EAAzB,GAA+BE,IAAI,GAAG,CAAtC,GAA0CA,IAApE;AACA,UAAMG,aAAa,GAAGC,MAAM,CAACF,iBAAiB,CAAClL,QAAlB,GAA6BqL,KAA7B,CAAmC,CAAC,CAApC,CAAD,CAA5B;AACA,aAAOF,aAAP;AACD,KA5lCH,CA8lCE;;AA9lCF;AAAA;AAAA,WA+lCE,iCAAqB;AACnB,WAAKiU,eAAL,GAAuB7f,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAKuf,eAApB,CAAX,CAAvB;AACD,KAjmCH,CAmmCE;;AAnmCF;AAAA;AAAA,WAomCE,8BAAqBwG,WAArB,EAAgC;AAC9B,UAAM7H,OAAO,GAAG6H,WAAW,CAAC5V,UAA5B;AACA,UAAMyP,eAAe,GAAG7f,IAAI,CAACqQ,KAAL,CAAWrQ,IAAI,CAACC,SAAL,CAAe,KAAKuf,eAApB,CAAX,CAAxB;;AACA,WAAK,IAAMlV,SAAX,IAAwB6T,OAAxB,EAAiC;AAC/B,YAAM2B,WAAW,GAAG3B,OAAO,CAAC7T,SAAD,CAA3B;AACA,YAAI4W,QAAQ,SAAZ;;AACA,YAAI5W,SAAS,KAAK,gBAAlB,EAAoC;AAClCwV,qBAAW,CAACgE,OAAZ,CAAoB,cAAI,EAAG;AACzB,gBAAMziB,KAAK,GAAGlD,IAAI,CAACkD,KAAL,CAAWsQ,OAAX,CAAmB,IAAnB,EAAyB,EAAzB,CAAd;;AACA,gBAAI,CAACkO,eAAe,CAAC1hB,IAAI,CAACgM,GAAN,CAAf,CAA0BC,cAA/B,EAA+C;AAC7CyV,6BAAe,CAAC1hB,IAAI,CAACgM,GAAN,CAAf,CAA0BwF,QAA1B,GAAqC,IAArC;AACAkQ,6BAAe,CAAC1hB,IAAI,CAACgM,GAAN,CAAf,CAA0B9I,KAA1B,GAAkCA,KAAK,CAACoQ,KAAN,CAAY,GAAZ,CAAlC;AACD,aAHD,MAGO;AACLoO,6BAAe,CAAC1hB,IAAI,CAACgM,GAAN,CAAf,CAA0B9I,KAA1B,GAAkC,CAAC,IAAI0N,6DAAJ,CAAe1N,KAAf,CAAD,CAAlC;AACD;AACF,WARD;AASA;AACD,SAXD,MAWO,IAAIiJ,SAAS,KAAK,YAAd,IAA8B,qBAAqB5L,IAArB,CAA0BohB,WAA1B,CAAlC,EAA0E;AAC/EoB,kBAAQ,GAAG,IAAInS,6DAAJ,CAAe+Q,WAAW,CAACrO,KAAZ,CAAkB,KAAlB,EAAyB,CAAzB,CAAf,CAAX;;AACA,cAAIqO,WAAW,KAAK,IAApB,EAAyB;AACvBoB,oBAAQ,CAAC9R,QAAT,GAAoB,eAApB;AACD,WAFD,MAEO;AACL8R,oBAAQ,CAAC9R,QAAT,GAAoB0Q,WAApB;AACD;;AACDD,yBAAe,CAACvV,SAAD,CAAf,CAA2BjJ,KAA3B,GAAmC,CAAC6f,QAAD,CAAnC;AACD,SARM,MAQA,IAAIpB,WAAW,IAAID,eAAe,CAACvV,SAAD,CAAlC,EAA+C;AACpDuV,yBAAe,CAACvV,SAAD,CAAf,CAA2BjJ,KAA3B,GAAmC,CAAC,IAAI0N,6DAAJ,CAAe+Q,WAAf,CAAD,CAAnC;AACD;AACF;;AACD,UAAI3B,OAAO,CAACjT,UAAR,KAAuB,QAAvB,IAAmCiT,OAAO,CAACwI,aAA/C,EAA8D;AAC5D9G,uBAAe,CAAC3U,UAAhB,CAA2B7J,KAA3B,CAAiC,CAAjC,EAAoCkf,UAApC,GAAiDpC,OAAO,CAAChM,gBAAzD;AACD;;AACD,UAAI,CAACgM,OAAO,CAACjT,UAAR,KAAuB,IAAvB,IAA+BiT,OAAO,CAACjT,UAAR,KAAuB,IAAvD,KAAgEiT,OAAO,CAAChM,gBAA5E,EAA8F;AAC5F0N,uBAAe,CAAC3U,UAAhB,CAA2B7J,KAA3B,CAAiC,CAAjC,EAAoCmf,SAApC,GAAgDrC,OAAO,CAAChM,gBAAxD;AACD;;AACD,WAAK0N,eAAL,GAAuBA,eAAvB;AACD,KAxoCH,CA0oCE;;AA1oCF;AAAA;AAAA,WA2oCE,2BAAkB5jB,MAAlB,EAAwB;AACtB,UAAM2qB,UAAU,GAAG3qB,MAAM,CAACmU,UAA1B;AACA,UAAMyW,aAAa,GAAG,KAAKrH,eAA3B;AACA,UAAIsH,aAAa,GAAG,EAApB;;AACA,WAAK,IAAM3c,GAAX,IAAkByc,UAAlB,EAA8B;AAC5B,YAAIzc,GAAG,KAAK,gBAAZ,EAA8B;AAC5B,cAAM4c,cAAc,GAAGH,UAAU,CAACzc,GAAD,CAAV,CAAgBuE,GAAhB,CAAoB,WAAC;AAAA,6BAAOmY,aAAa,CAACjY,CAAC,CAACzE,GAAH,CAAb,CAAqBpD,WAA5B,eAA4C6H,CAAC,CAACvN,KAA9C;AAAA,WAArB,EAA4EmR,IAA5E,CAAiF,IAAjF,CAAvB;AACAsU,uBAAa,IAAIC,cAAjB;AACD,SAHD,MAGO,IAAIF,aAAa,CAAC1c,GAAD,CAAjB,EAAwB;AAC7B2c,uBAAa,cAAOD,aAAa,CAAC1c,GAAD,CAAb,CAAmBpD,WAA1B,eAA0C6f,UAAU,CAACzc,GAAD,CAAV,IAAmB,eAAnB,GAAmC,gBAAnC,GAAoDyc,UAAU,CAACzc,GAAD,CAAxG,OAAb;AACD;AACF;;AACDlO,YAAM,CAACkU,iBAAP,GAA2B2W,aAAa,CAACnV,OAAd,CAAsB,KAAtB,EAA6B,EAA7B,CAA3B;AACA,aAAO1V,MAAP;AACD,KAzpCH,CA2pCE;;AA3pCF;AAAA;AAAA,WA4pCE,0CAA8B;AAC5B,UAAIkiB,OAAO,GAAG,KAAKS,iBAAL,EAAd;AACAT,aAAO,GAAG,KAAKtE,SAAL,CAAesE,OAAf,CAAV;AACA,UAAM6I,SAAS,GAAG,KAAKtN,kBAAL,EAAlB;AACAyE,aAAO,mCAAQA,OAAR,GAAoB6I,SAApB,CAAP;AACA,aAAO7I,OAAP;AACD,KAlqCH,CAoqCE;;AApqCF;AAAA;AAAA,WAqqCE,gCAAoB;AAClB,UAAMjE,SAAS,GAAG;AAChBjK,eAAO,EAAE,IADO;AAEhBG,kBAAU,EAAE,KAAK6W,8BAAL,EAFI;AAGhB9W,yBAAiB,EAAE,EAHH;AAIhBI,iBAAS,EAAE;AAJK,OAAlB;AAMA,aAAO,KAAKwV,iBAAL,CAAuB7L,SAAvB,CAAP;AACD,KA7qCH,CA+qCE;;AA/qCF;AAAA;AAAA,WAgrCE,4BAAmBha,IAAnB,EAAuB;AACrB,UAAM8lB,WAAW,GAAG,KAAKzH,YAAzB;AACA,UAAM2I,iBAAiB,GAAGlB,WAAW,CAAClM,IAAZ,CAAiB,cAAI;AAAA,eAAI3b,IAAI,CAAC8R,OAAL,KAAiB/P,IAArB;AAAA,OAArB,CAA1B;AACA,aAAOgnB,iBAAiB,IAAI,IAArB,IAA6BhnB,IAAI,CAAC9B,MAAL,GAAc,CAAlD;AACD,KAprCH,CAsrCE;;AAtrCF;AAAA;AAAA,WAurCE,mCAAuB;AAAA;;AACrB,UAAMqB,OAAO,GAAG;AACdxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADG;AAEd2Z,iBAAS,EAAEvQ,uEAFG;AAGd2R,YAAI,EAAE,SAHQ;AAIdlM,eAAO,EAAE,WAJK;AAKdmM,qBAAa,EAAE;AALD,OAAhB;AAOA,WAAKvB,UAAL,CAAgB3R,GAAhB,CAAoB,sBAApB,EAA4C7F,OAA5C,EAAqDpC,SAArD,CACE,cAAI;AAAA,eAAI,OAAI,CAAC8pB,iBAAL,CAAuBzpB,IAAvB,CAA4BuI,IAA5B,CAAJ;AAAA,OADN,EAEE,aAAG;AAAA,eAAIQ,OAAO,CAACC,GAAR,CAAY,sCAAZ,EAAoDkN,GAApD,CAAJ;AAAA,OAFL;AAID;AAnsCH;AAAA;AAAA,WAqsCE,qBAAYvH,OAAZ,EAAmB;AACjB,UAAM+a,wBAAwB,GAAG,KAAKpJ,cAAL,CAAoB3c,KAApB,CAA0B,UAA1B,EAAsCA,KAAtC,CAA4C,CAA5C,EAA+C8I,GAAhF;AACA,UAAM1K,OAAO,GAAG;AACdxB,iBAAS,EAAEV,YAAY,CAACC,OAAb,CAAqB,WAArB,CADG;AAEd2Z,iBAAS,EAAEvQ,uEAFG;AAGd2R,YAAI,EAAE,SAHQ;AAIdlM,eAAO,EAAPA,OAJc;AAKdgN,mBAAW,EAAE,CALC;AAMdgO,gBAAQ,EAAED;AANI,OAAhB;AAQA,aAAO,KAAKnQ,UAAL,CAAgB3R,GAAhB,CAAoB,UAApB,EAAgC7F,OAAhC,CAAP;AACD;AAhtCH;;AAAA;AAAA;;;mBAAake,eAAajc,uDAAAA,CAAAA,qDAAAA,GAAAA,uDAAAA,CAAAA,oDAAAA,GAAAA,uDAAAA,CAAAA,6DAAAA,GAAAA,uDAAAA,CAAAA,0DAAAA;AAAA;;;SAAbic;AAAarP,WAAbqP,aAAa;AAAAzK,cAFZ;;;;;;;;;;;;;;;;;;;;;;;ACpBd;;;AAMO,IAAMoU,WAAb;AAEE,uBAAoBC,SAApB,EAA0C;AAAA;;AAAtB;AADpB,2BAAkB,KAAlB;;AAEE,QAAI3oB,MAAM,CAACC,UAAP,GAAoB,IAAxB,EAA8B;AAC5B,WAAK2oB,eAAL,GAAuB,IAAvB;AACD;AACF;;AANH;AAAA;AAAA,WAQE,sCAA0B;AACxB,UAAIjqB,YAAY,CAACC,OAAb,CAAqB,uBAArB,MAAkD,MAAtD,EAA8D;AAC5D;AACD;;AACD,WAAKiqB,QAAL,CAAc,+EAAd,EAA+F,KAA/F,EAAsG,kBAAtG,EAA0H,EAA1H,EAA8HpqB,SAA9H,CACE,cAAI,EAAG;AACL,YAAI,CAAC4I,IAAI,CAACyhB,iBAAV,EAA6B;AAC3B;AACD;;AACDnqB,oBAAY,CAACwC,OAAb,CAAqB,uBAArB,EAA8C,MAA9C;AACD,OANH;AAQD;AApBH;AAAA;AAAA,WAsBE,mCAAuB;AACrB,UAAIxC,YAAY,CAACC,OAAb,CAAqB,oBAArB,MAA+C,MAAnD,EAA2D;AACzD;AACD;;AACD,WAAKiqB,QAAL,CACE,oFACG,KAAKD,eAAL,GAAuB,qCAAvB,GAA+D,EADlE,CADF,EAGE,KAHF,EAIE,kBAJF,EAKE,EALF,EAMEnqB,SANF,CAMY,cAAI,EAAG;AACjB,YAAI,CAAC4I,IAAI,CAACyhB,iBAAV,EAA6B;AAC3B;AACD;;AACDnqB,oBAAY,CAACwC,OAAb,CAAqB,oBAArB,EAA2C,MAA3C;AACD,OAXD;AAYD;AAtCH;AAAA;AAAA,WAwCE,2BAAe;AACb,UAAIxC,YAAY,CAACC,OAAb,CAAqB,oBAArB,MAA+C,MAAnD,EAA2D;AACzD;AACD;;AACD,WAAKiqB,QAAL,sNAGE,KAHF,EAIE,kBAJF,EAKEpqB,SALF,CAKY,cAAI,EAAG;AACjB,YAAI,CAAC4I,IAAI,CAACyhB,iBAAV,EAA6B;AAC3B;AACD;;AACDnqB,oBAAY,CAACwC,OAAb,CAAqB,oBAArB,EAA2C,MAA3C;AACD,OAVD;AAWD;AAvDH;AAAA;AAAA,WAyDE,kBAAS0V,OAAT,EAAkBkS,QAAlB,EAA4BC,WAA5B,EAAiD;AAAA,UAARzP,IAAQ,uEAAD,CAAC;;AAC/C,UAAMjS,QAAQ,GAAG,KAAKqhB,SAAL,CAAeM,iBAAf,CAAiC7hB,oGAAjC,EAAwD;AACvE8hB,kBAAU,EAAEF,WAD2D;AAEvEG,wBAAgB,EAAEJ,QAFqD;AAGvEK,0BAAkB,EAAE,QAHmD;AAIvE/hB,YAAI,EAAE;AAAEwP,iBAAO,EAAPA;AAAF;AAJiE,OAAxD,CAAjB;;AAMA,aAAOvP,QAAQ,CAAC+hB,cAAT,EAAP;AACD;AAjEH;;AAAA;AAAA;;;mBAAaX,aAAW5lB,sDAAAA,CAAAA,oEAAAA;AAAA;;;SAAX4lB;AAAWhZ,WAAXgZ,WAAW;AAAApU,cAFV;;;;;;;;;;;;;;;;;;;;;;;;ACGP,IAAMgV,YAAb;AACE,wBAAoBC,iBAApB,EAAwD;AAAA;;AAApC;AAEpB,sBAAa,CAAC,gBAAD,EAAmB,uBAAnB,EAA4C,4BAA5C,EAA0E,4BAA1E,CAAb;AAF6D,GAD/D,CAKE;;;AALF;AAAA;AAAA,WAME,yBAAgBC,GAAhB,EAAqBniB,IAArB,EAAwE;AAAA;;AAAA,UAA7CoiB,eAA6C,uEAA3B,KAA2B;AAAA,UAApBC,YAAoB,uEAAL,KAAK;AACtE,UAAM/T,IAAI,GAAG6T,GAAG,CAACG,WAAJ,CAAgBtsB,MAAhB,CAAuB,WAAC;AAAA,eAAI2S,CAAC,CAAC4Z,kBAAN;AAAA,OAAxB,CAAb;AACA,UAAMC,gBAAgB,GAAG,KAAKC,aAAL,CAAmBziB,IAAnB,CAAzB;AACAwiB,sBAAgB,CAACrM,OAAjB,GAA2B7H,IAAI,CAAC7F,GAAL,CAAS,aAAG;AAAA,eAAI,KAAI,CAACia,wBAAL,CAA8B1iB,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAa,EAA/C,EAAmDkE,GAAnD,EAAwD,EAAxD,CAAJ;AAAA,OAAZ,CAA3B,CAHsE,CAItE;;AACA,UAAIke,eAAJ,EAAqB;AACnBI,wBAAgB,CAAC7L,SAAjB,GAA6B,KAAKgM,iBAAL,CAAuB3iB,IAAvB,EAA6BsO,IAA7B,CAA7B;AACD;;AACD,UAAI+T,YAAJ,EAAkB;AAChBG,wBAAgB,CAAC1d,IAAjB,GAAwB9E,IAAI,CAAC,CAAD,CAA5B;AACAwiB,wBAAgB,CAAC7L,SAAjB,GAA6B,KAAKiM,kBAAL,CAAwB5iB,IAAI,CAAC,CAAD,CAA5B,EAAiCsO,IAAjC,CAA7B;AACD;;AACD,aAAOkU,gBAAP;AACD,KAnBH,CAqBE;;AArBF;AAAA;AAAA,WAsBE,kCAAyBL,GAAzB,EAA8B/M,QAA9B,EAAwCpV,IAAxC,EAA0E;AAAA;;AAAA,UAA5B6iB,WAA4B,uEAAd,EAAc;AAAA,UAAVpM,SAAU;AACxE,UAAMnI,IAAI,GAAG6T,GAAG,CAACG,WAAJ,GAAkBH,GAAG,CAACG,WAAJ,CAAgBtsB,MAAhB,CAAuB,WAAC;AAAA,eAAI,CAAC2S,CAAC,CAACma,uBAAP;AAAA,OAAxB,CAAlB,GAA4EX,GAAzF;AACA,UAAMY,KAAK,GAAGjY,IAAI,CAACkY,IAAL,CAAUhjB,IAAI,CAAC2Z,YAAL,GAAoBvE,QAA9B,CAAd;AACA,UAAM6N,qBAAqB,GAAG,KAAKR,aAAL,CAAmBziB,IAAI,CAAC8E,IAAxB,EAA8Bie,KAA9B,CAA9B;AACAE,2BAAqB,CAAC9M,OAAtB,GAAgC7H,IAAI,CAAC7F,GAAL,CAAS,aAAG;AAAA,eAAI,MAAI,CAACia,wBAAL,CAA8B1iB,IAAI,CAAC8E,IAAL,CAAU,CAAV,CAA9B,EAA4CZ,GAA5C,EAAiD2e,WAAjD,EAA8D,UAA9D,CAAJ;AAAA,OAAZ,CAAhC;;AACA,UAAIpM,SAAJ,EAAe;AACbwM,6BAAqB,CAACtM,SAAtB,GAAkC,KAAKiM,kBAAL,CAAwBnM,SAAxB,EAAmCnI,IAAnC,CAAlC;AACD;;AACD,aAAO2U,qBAAP;AACD,KA/BH,CAiCE;;AAjCF;AAAA;AAAA,WAkCE,uBAAcjjB,IAAd,EAA6B;AAAA,UAAT+iB,KAAS,uEAAD,CAAC;AAC3B,aAAO;AACLje,YAAI,EAAE9E,IADD;AAELmW,eAAO,EAAE,EAFJ;AAGL+M,kBAAU,EAAEH,KAHP;AAILpM,iBAAS,EAAE;AACTwM,mBAAS,EAAE;AADF;AAJN,OAAP;AAQD,KA3CH,CA6CE;;AA7CF;AAAA;AAAA,WA8CE,2BAAkBnjB,IAAlB,EAAwBojB,WAAxB,EAAmC;AACjC,UAAM3M,SAAS,GAAG;AAChB0M,iBAAS,EAAE;AADK,OAAlB;;AADiC,iCAIxBxa,CAJwB;AAK/B,YAAIvN,KAAK,GAAG,EAAZ;AACA,YAAMioB,MAAM,GAAGD,WAAW,CAACza,CAAD,CAA1B;AACA,YAAMzE,GAAG,GAAGmf,MAAM,CAACnf,GAAnB;;AACA,YAAIyE,CAAC,KAAK,CAAV,EAAa;AACXvN,eAAK,GAAG,OAAR;AACD,SAFD,MAEO,IAAIioB,MAAM,CAACC,OAAP,IAAkBtjB,IAAlB,IAA0BA,IAAI,CAAC,CAAD,CAA9B,IAAqC,OAAOA,IAAI,CAAC,CAAD,CAAJ,CAAQkE,GAAR,CAAP,KAAwB,QAAjE,EAA2E;AAChF9I,eAAK,GAAG4E,IAAI,CAAC+d,MAAL,CAAY,UAAChP,CAAD,EAAIwU,CAAJ;AAAA,mBAAUxU,CAAC,GAAGwU,CAAC,CAACrf,GAAD,CAAf;AAAA,WAAZ,EAAkC,CAAlC,CAAR;AACD;;AACDuS,iBAAS,CAACvS,GAAD,CAAT,GAAiB9I,KAAjB;AAb+B;;AAIjC,WAAK,IAAIuN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGya,WAAW,CAACjrB,MAAhC,EAAwCwQ,CAAC,EAAzC,EAA6C;AAAA,cAApCA,CAAoC;AAU5C;;AACD,aAAO8N,SAAP;AACD,KA9DH,CAgEE;;AAhEF;AAAA;AAAA,WAiEE,4BAAmBzW,IAAnB,EAAyBojB,WAAzB,EAAoC;AAClC,UAAM3M,SAAS,GAAG;AAChB0M,iBAAS,EAAE;AADK,OAAlB;;AAGA,WAAK,IAAIxa,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGya,WAAW,CAACjrB,MAAhC,EAAwCwQ,CAAC,EAAzC,EAA6C;AAC3C,YAAMvN,KAAK,GAAG,EAAd;AACA,YAAMioB,MAAM,GAAGD,WAAW,CAACza,CAAD,CAA1B;AACA,YAAMzE,GAAG,GAAGmf,MAAM,CAACnf,GAAP,GAAamf,MAAM,CAACnf,GAApB,GAA0Bmf,MAAM,CAAC/M,KAA7C;;AACA,YAAI3N,CAAC,KAAK,CAAV,EAAa;AACX8N,mBAAS,CAACvS,GAAD,CAAT,GAAiB,aAAjB;AACD,SAFD,MAEO,IAAI,CAAClE,IAAI,CAAC,CAAD,CAAJ,CAAQkE,GAAR,CAAD,IAAiB,CAACmf,MAAM,CAACC,OAA7B,EAAsC;AAC3C7M,mBAAS,CAACvS,GAAD,CAAT,GAAiB,EAAjB;AACD,SAFM,MAEA;AACLuS,mBAAS,CAACvS,GAAD,CAAT,GAAiBlE,IAAI,CAAC,CAAD,CAAJ,CAAQkE,GAAR,CAAjB;AACD;AACF;;AACD,aAAOuS,SAAP;AACD;AAlFH;AAAA;AAAA,WAoFE,kCAAyBzW,IAAzB,EAA+BwjB,UAA/B,EAA2CX,WAA3C,EAAwDY,IAAxD,EAA6D;AAAA;;AAC3D,UAAI,CAACzjB,IAAL,EAAW;AACT;AACD;;AACD,UAAMsB,IAAI,GAAG,OAAOtB,IAAI,CAACwjB,UAAU,CAACtf,GAAZ,CAAxB;AACA,UAAIif,SAAS,GAAG7hB,IAAI,KAAK,QAAT,yBAA0C,YAA1D,CAL2D,CAO3D;AACA;AACA;AACA;;AACA,UAAItB,IAAI,CAACwjB,UAAU,CAACtf,GAAZ,CAAJ,IAAwB,IAAxB,IAAgCsf,UAAU,CAACE,WAA/C,EAA4D;AAC1DP,iBAAS,IAAI,aAAb;AACD,OAb0D,CAe3D;AACA;;;AACA,UAAI,KAAKQ,UAAL,CAAgBnrB,OAAhB,CAAwBgrB,UAAU,CAACtf,GAAnC,IAA0C,CAAC,CAA/C,EAAkD;AAChDif,iBAAS,IAAI,SAAb;AACD;;AAED,UAAMS,YAAY,GAAG;AACnBC,kBAAU,EAAE,KADO;AAEnBvN,aAAK,EAAEkN,UAAU,CAACtf,GAAX,IAAkBsf,UAAU,CAAClN;AAFjB,OAArB;AAKA,UAAMwN,WAAW,GAAG;AAClB1N,kBAAU,EAAEoN,UAAU,CAACO,UADL;AAElBzN,aAAK,EAAEkN,UAAU,CAACtf,GAFA;AAGlBif,iBAAS,EAATA,SAHkB;AAIlBa,oBAAY,EAAE,4BAAM;AAAA,iBAAI,MAAI,CAACC,qBAAL,CAA2BT,UAA3B,EAAuCpkB,MAAvC,EAA+CyjB,WAA/C,EAA4DY,IAA5D,CAAJ;AAAA,SAJF;AAKlB;AACAS,6BAAqB,kCAChBN,YADgB,GACJ;AACfT,mBAAS,EAATA;AADe,SADI,CANH;AAUlBgB,qBAAa,EAAEX,UAAU,CAACY,iBAAX,GAA+BZ,UAAU,CAACY,iBAA1C,GAA8DZ,UAAU,CAACO,UAVtE;AAWlBM,oBAAY,EAAE;AAXI,OAApB;;AAaA,UAAI,CAACb,UAAU,CAACF,OAAhB,EAAyB;AACvBQ,mBAAW,CAAC,WAAD,CAAX,IAA4B,cAA5B;AACD;;AACD,UAAIN,UAAU,CAAChiB,KAAf,EAAsB;AACpBsiB,mBAAW,CAAC,OAAD,CAAX,GAAuBN,UAAU,CAAChiB,KAAlC;AACD,OA5C0D,CA6C3D;;;AACA,UAAIgiB,UAAU,CAACpN,UAAf,EAA2B;AACzBoN,kBAAU,CAACQ,YAAX,GAA0BF,WAAW,CAACE,YAAtC;AACA,iCAAYR,UAAZ;AACD;;AACD,aAAOM,WAAP;AACD;AAvIH;AAAA;AAAA,WAyIE,wBAAe1oB,KAAf,EAAoB;AAClB,UAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,eAAO,KAAP;AACD,OAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AACpC,eAAOA,KAAP;AACD,OAFM,MAEA;AACL,eAAOA,KAAK,CAACsQ,OAAN,CAAc,MAAd,EAAsB,MAAtB,CAAP;AACD;AACF;AAjJH;AAAA;AAAA,WAmJE,kCAAyBtQ,KAAzB,EAA8B;AAC5B,UAAMkpB,YAAY,GAAGlpB,KAAK,CAAC2b,OAAN,CAAc,CAAd,CAArB;AACA,aAAOuN,YAAY,CAAC9pB,QAAb,GAAwBkR,OAAxB,CAAgC,uBAAhC,EAAyD,GAAzD,CAAP;AACD;AAtJH;AAAA;AAAA,WAwJE,+BAAsB8X,UAAtB,EAAkCpkB,MAAlC,EAA0CyjB,WAA1C,EAAuDY,IAAvD,EAA4D;AAC1D,UAAMvf,GAAG,GAAGsf,UAAU,CAACO,UAAvB;AACA,UAAMnO,KAAK,GAAG,KAAK2O,cAAL,CAAoBnlB,MAAM,CAAChE,KAA3B,CAAd;AACA,UAAMyb,OAAO,GAAG2M,UAAU,CAACgB,cAAX,GAA4B,CAA5B,GAAgC,CAAhD;AACA,UAAMxZ,cAAc,GAAG,KAAKyZ,iBAAL,CAAuBrlB,MAAM,CAAChE,KAA9B,EAAqCyb,OAArC,EAA8C2M,UAA9C,EAA0DX,WAA1D,EAAuEY,IAAvE,CAAvB;;AACA,UAAID,UAAU,CAACgB,cAAX,IAA6B,OAAOplB,MAAM,CAAChE,KAAd,KAAwB,QAAzD,EAAmE;AACjE,eAAO,KAAKspB,gBAAL,CAAsB9O,KAAtB,EAA6B5K,cAA7B,EAA6C5L,MAAM,CAAChE,KAAP,GAAe,CAA5D,CAAP;AACD,OAFD,MAEO,IAAIooB,UAAU,CAACmB,kBAAX,IAAiC,OAAOvlB,MAAM,CAAChE,KAAd,KAAwB,QAA7D,EAAuE;AAC5E,eAAO,KAAKwpB,kBAAL,CAAwBhP,KAAxB,EAA+B5K,cAA/B,EAA+C5L,MAAM,CAAChE,KAAP,GAAe,CAA9D,CAAP;AACD,OAFM,MAEA,IAAIooB,UAAU,CAACqB,cAAf,EAA+B;AACpC,eAAO,KAAKC,sBAAL,CAA4BlP,KAA5B,EAAmC5K,cAAnC,EAAmD5L,MAAM,CAAC,MAAD,CAAzD,CAAP;AACD,OAFM,MAEA;AACL,YAAIklB,YAAJ;;AACA,YAAI,OAAO1O,KAAP,KAAiB,QAArB,EAA+B;AAC7B0O,sBAAY,GAAG,KAAKS,wBAAL,CAA8BnP,KAA9B,CAAf;AACD,SAFD,MAEO;AACL0O,sBAAY,GAAG1O,KAAf;AACD;;AACD,YAAIxW,MAAM,IAAIA,MAAM,CAACY,IAAjB,IAAyBZ,MAAM,CAACY,IAAP,CAAYglB,QAAzC,EAAmD;AACjD,uCAAsBV,YAAtB,yCAA+DtZ,cAA/D;AACD,SAFD,MAEO;AACL,uCAAsBsZ,YAAtB,cAAsCtZ,cAAtC;AACD;AACF;AACF;AAhLH;AAAA;AAAA,WAkLE,2BAAkB5P,KAAlB,EAAoE;AAAA,UAA3Cyb,OAA2C,uEAAjC,CAAiC;AAAA,UAA9B2M,UAA8B;AAAA,UAAlBX,WAAkB;AAAA,UAALY,IAAK;;AAClE,UAAIroB,KAAK,IAAI,IAAb,EAAmB;AACjB,eAAO,KAAP;AACD,OAFD,MAEO,IAAIooB,UAAU,CAACyB,UAAX,IAAyB,OAAO7pB,KAAP,KAAiB,QAA9C,EAAwD;AAC7D,eAAOA,KAAP;AACD,OAFM,MAEA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AACpC,eAAOA,KAAP,CADoC,CAEpC;AACA;AACD;;AACD,UAAM0b,SAAS,GAAG0M,UAAU,CAAC0B,wBAAX,GAAsCpa,IAAI,CAACC,GAAL,CAAS3P,KAAT,EAAgB2b,OAAhB,CAAwBF,OAAxB,CAAtC,GAAyE/L,IAAI,CAACC,GAAL,CAAS3P,KAAK,GAAG,OAAjB,EAA0B2b,OAA1B,CAAkCF,OAAlC,CAA3F,CAVkE,CAWlE;AACA;;AACA,UAAIzb,KAAK,GAAG,CAAZ,EAAe;AACb,eAAOqoB,IAAI,KAAK,UAAT,cAA0B3M,SAA1B,oBAA6CA,SAA7C,QAAP;AACD;;AACD,aAAO2M,IAAI,KAAK,UAAT,aAAyB3M,SAAzB,cAA0CA,SAA1C,OAAP;AACD;AAnMH;AAAA;AAAA,WAqME,iCAAwB1b,KAAxB,EAA6B;AAC3B,aAAO,KAAK8mB,iBAAL,CAAuBiD,SAAvB,CAAiC/pB,KAAjC,EAAwC,EAAxC,EAA4C,EAA5C,EAAgD,EAAhD,EAAoD,CAApD,IAAyD,GAAhE;AACD;AAvMH;AAAA;AAAA,WAyME,uBAAcA,KAAd,EAAqBgqB,QAArB,EAA6B;AAC3B,UAAMC,UAAU,GAAG,KAAKnD,iBAAL,CAAuBiD,SAAvB,CAAiC/pB,KAAjC,EAAwC,EAAxC,EAA4C,EAA5C,EAAgD,EAAhD,EAAoD,CAApD,CAAnB;AACA,aAAOiqB,UAAU,GAAG,GAApB;AACD;AA5MH;AAAA;AAAA,WA8ME,0BAAiBzP,KAAjB,EAAwB5K,cAAxB,EAAwCJ,UAAxC,EAAkD;AAChD,UAAMxP,KAAK,GAAG,KAAKkqB,aAAL,CAAmB1P,KAAnB,EAA0BhL,UAA1B,CAAd;AACA,UAAMqQ,QAAQ,GAAG,6CAA2C,KAAKsK,uBAAL,CAA6B3P,KAA7B,CAA3C,cAAqFxa,KAArF,WAAjB;;AACA,UAAI,CAACwP,UAAL,EAAiB;AACf,yBAAUqQ,QAAV;AACD,OAFD,MAEO;AACL,yBAAUA,QAAV;AACD;AACF;AAtNH;AAAA;AAAA,WAwNE,gCAAuBrF,KAAvB,EAA8B5K,cAA9B,EAA8ChL,IAA9C,EAAkD;AAChD,UAAIA,IAAI,IAAIA,IAAI,CAAC,uBAAD,CAAJ,KAAkC,KAA9C,EAAqD;AACnD,4EAA0D4V,KAA1D,gBAAoE5K,cAApE;AACD,OAFD,MAEO;AACL,mEAAiD4K,KAAjD,gBAA2D5K,cAA3D;AACD;AACF;AA9NH;AAAA;AAAA,WAgOE,4BAAmB4K,KAAnB,EAA0BkB,SAA1B,EAAqClM,UAArC,EAA+C;AAC7C,UAAMxP,KAAK,GAAG,KAAK8mB,iBAAL,CAAuBiD,SAAvB,CAAiCvP,KAAjC,EAAwC,GAAxC,CAAd;AACA,aAAO,6CAA2C,KAAK2P,uBAAL,CAA6B3P,KAA7B,CAA3C,cAAqFxa,KAArF,WAAP;AACD;AAnOH;;AAAA;AAAA;;;mBAAa6mB,cAAYxmB,sDAAAA,CAAAA,yEAAAA;AAAA;;;SAAZwmB;AAAY5Z,WAAZ4Z,YAAY;AAAAhV,cAFX;;;;;;;;;;;;;;;;;;;;;;;;ACLd;;;AAIO,IAAM7P,UAAb,mKAkCE,oBAAoBsoB,SAApB,EAAwC;AAAA;;AAApB;AAhCpB,cAAO/sB,MAAM,CAACL,SAAP,CAAiBC,SAAjB,CAA2BC,OAA3B,CAAmC,OAAnC,IAA8C,CAAC,CAA/C,IAAoDG,MAAM,CAACL,SAAP,CAAiBC,SAAjB,CAA2BC,OAA3B,CAAmC,UAAnC,IAAiD,CAAC,CAA7G;AAEA,oBAA4B;AAC1BmtB,QAAI,EAAE;AACJC,cAAQ,EAAE,KAAKF,SAAL,CAAe1pB,SAAf,CAAyB4pB,QAD/B;AAEJC,eAAS,EAAE,KAAKH,SAAL,CAAe1pB,SAAf,CAAyB6pB,SAFhC;AAGJC,iBAAW,EAAE,KAAKJ,SAAL,CAAe1pB,SAAf,CAAyB8pB;AAHlC,KADoB;AAM1BC,SAAK,EAAE;AACLC,mBAAa,EAAEP,kFADV;AAELS,4BAAsB,EAAE,KAAKC,IAFxB,CAE8B;;AAF9B,KANmB;AAU1BC,UAAM,EAAE;AACNC,mBAAa,EAAE;AACbC,sBADa,0BACEC,QADF,EACsB/W,OADtB,EACqC,CAChD;AACD,SAHY;AAIb+W,gBAAQ,EAAEf,iEAJG;AAKbiB,yBAAiB,EAAE;AALN;AADT;AAVkB,GAA5B;AAoBA,4BAAqB;AACnB3oB,OAAG,EAAE;AACHC,cAAQ,EAAE,KAAK2nB,SAAL,CAAepY,MADtB;AAEHtP,YAAM,EAAE,CAAC,KAAK0nB,SAAL,CAAe1pB,SAAf,CAAyB0qB,QAA1B;AAFL;AADc,GAArB;AAMA,sBAAe;AACb1oB,UAAM,EAAE;AADK,GAAf;AAI6C,CAlC/C;;;mBAAaZ,YAAU3B,sDAAAA,CAAAA,0DAAAA;AAAA;;;SAAV2B;AAAUiL,WAAVjL,UAAU;;;;;;;;;;;;;;;;;;ACLvB;AAGA;AACA;AAEAwpB,KAAK,CAAC,wBAAD,EAA2B;AAAEC,QAAM,EAAE;AAAV,CAA3B,CAAL,CAAmD7xB,IAAnD,CAAwD,kBAAQ,EAAG;AACjEyZ,UAAQ,CACLqY,IADH,GAEG9xB,IAFH,CAEQ,kBAAQ,EAAG;AACf,QAAM+xB,iBAAiB,GAAG,CAAC,aAAD,EAAgB,YAAhB,CAA1B;AACAA,qBAAiB,CAAClJ,OAAlB,CAA0B,UAACziB,KAAD,EAAQ+K,KAAR,EAAe6gB,KAAf,EAAwB;AAChDC,cAAQ,CAACD,KAAK,CAAC7gB,KAAD,CAAN,CAAR,GAAyB8gB,QAAQ,CAACD,KAAK,CAAC7gB,KAAD,CAAN,CAAR,IAA0B,MAAnD;AACD,KAFD;;AAGA,QAAI8gB,QAAQ,CAACC,UAAb,EAAyB;AACvBP,MAAAA,6DAAc;AACf;;AACDQ,IAAAA,sEAAAA,CAAuB,CACrB;AACE1oB,aAAO,EAAE3C,sDADX;AAEE+C,cAAQ,EAAEooB;AAFZ,KADqB,CAAvB,EAKGG,eALH,CAKmB9oB,sDALnB;AAMD,GAhBH,EAiBG+oB,KAjBH,CAiBS,aAAG;AAAA,WAAI7mB,OAAO,CAACC,GAAR,CAAYkN,GAAZ,CAAJ;AAAA,GAjBZ;AAkBD,CAnBD;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.config.ts","./src/app/app.module.ts","./src/app/pages/export-excel/export-excel.component.html","./src/app/pages/export-excel/export-excel.component.ts","./src/app/pages/unauthorised/unauthorised.component.ts","./src/app/pages/unauthorised/unauthorised.component.html","./src/app/shared/components/note-template/note-template.component.ts","./src/app/shared/components/note-template/note-template.component.html","./src/app/shared/components/session-time-out-dialog/session-time-out-dialog.component.ts","./src/app/shared/components/session-time-out-dialog/session-time-out-dialog.component.html","./src/app/shared/components/terms-and-conditions/terms-and-conditions.component.ts","./src/app/shared/components/terms-and-conditions/terms-and-conditions.component.html","./src/app/shared/constants/common-constants.ts","./src/app/shared/constants/filters-config.ts","./src/app/shared/constants/levels-config.ts","./src/app/shared/constants/url-list.ts","./src/app/shared/guards/auth.gaurd.ts","./src/app/shared/models/access-level.model.ts","./src/app/shared/models/filters.model.ts","./src/app/shared/models/saved-filters.model.ts","./src/app/shared/pipes/negative-value.pipe.ts","./src/app/shared/pipes/start-and-end-date.pipe.ts","./src/app/shared/services/analytics.service.ts","./src/app/shared/services/api.service.ts","./src/app/shared/services/app-insights.service.ts","./src/app/shared/services/auth.service.ts","./src/app/shared/services/base/base.service.ts","./src/app/shared/services/dashlet/dashlet.service.ts","./src/app/shared/services/filter/filter.service.ts","./src/app/shared/services/notes/note.service.ts","./src/app/shared/services/table/table.service.ts","./src/assets/auth-config.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\nimport { CallbackGuard } from './shared/guards/callback.guard';\r\nimport { AuthGuard } from './shared/guards/auth.gaurd';\r\nimport { UnauthorisedComponent } from './pages/unauthorised/unauthorised.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { TermsAndConditionsComponent } from './shared/components/terms-and-conditions/terms-and-conditions.component';\r\nimport { ExportExcelComponent } from './pages/export-excel/export-excel.component';\r\n\r\nexport function onAuthRequired({ oktaAuth, router }) {\r\n // Redirect the user to your custom login page\r\n router.navigate(['/login']);\r\n}\r\nconst routes: Routes = [\r\n { path: '', canActivate: [MsalGuard], loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule) },\r\n { path: 'excelExport', component: ExportExcelComponent, canActivate: [MsalGuard] },\r\n { path: 'unauthorised', component: UnauthorisedComponent },\r\n { path: 'terms-and-conditions', component: TermsAndConditionsComponent },\r\n { path: '**', redirectTo: '', pathMatch: 'full' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { AppConfig } from './app.config';\r\nimport { NoteService } from './shared/services/notes/note.service';\r\nimport { AnalyticsService } from './shared/services/analytics.service';\r\nimport { GoogleAnalytics, Hotjar } from '@JFrogPackage/analytics-lib';\r\nimport { BaseService } from './shared/services/base/base.service';\r\nimport { PAGES_INFO } from './shared/constants/common-constants';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { EventMessage, EventType, AuthenticationResult, InteractionStatus } from '@azure/msal-browser';\r\nimport { AppInsightsService } from './shared/services/app-insights.service';\r\n\r\n/* eslint-disable */\r\ndeclare let gtag: Function;\r\n/* eslint-enable */\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'Market Intelligence';\r\n dashboardRoutes: any;\r\n private readonly _destroying$ = new Subject();\r\n\r\n constructor(\r\n private noteService: NoteService,\r\n private router: Router,\r\n private appConfig: AppConfig,\r\n private analyticsService: AnalyticsService,\r\n private baseService: BaseService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private authService: MsalService,\r\n private appInsights: AppInsightsService,\r\n\r\n\r\n ) {\r\n this.dashboardRoutes = PAGES_INFO;\r\n // Adding google analytics\r\n if (this.parseToBoolean(this.appConfig.googleAnalytics.trackingOn)) {\r\n GoogleAnalytics.addGA(this.appConfig.googleAnalytics.trackingCode, [\r\n 'userId',\r\n 'isExternal',\r\n 'pageName',\r\n 'exportType',\r\n 'exportedAt',\r\n 'dashlets'\r\n ]);\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n if (localStorage.getItem('userId')) {\r\n this.baseService.isDefaultPageView.next(true);\r\n GoogleAnalytics.addCustomGAEvents('page_view', {\r\n page_title: event.urlAfterRedirects,\r\n page_location: event.urlAfterRedirects,\r\n userId: localStorage.getItem('userId'),\r\n pageName: event.urlAfterRedirects,\r\n userEmail: localStorage.getItem('userEmail')\r\n });\r\n } else {\r\n const invalidRoutes = this.dashboardRoutes.filter(item => item === event.urlAfterRedirects);\r\n if (invalidRoutes.length) {\r\n return;\r\n } else {\r\n GoogleAnalytics.addCustomGAEvents('page_view', {\r\n page_title: event.urlAfterRedirects,\r\n page_location: event.urlAfterRedirects,\r\n pageName: event.urlAfterRedirects,\r\n userEmail: localStorage.getItem('userEmail')\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Adding Hotjar\r\n if (this.parseToBoolean(this.appConfig['hotJar'].trackingOn)) {\r\n Hotjar.addHotJar(this.appConfig['hotJar'].trackingCode);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n // show notifications for the browsers\r\n\r\n const isChrome = navigator.userAgent.indexOf('Edg') === -1 && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (isChrome && window.outerWidth < 1920) {\r\n this.noteService.showResolutionNotification();\r\n }\r\n if (!isChrome) {\r\n this.noteService.showBrowserNotification();\r\n }\r\n\r\n this.performAADCode()\r\n }\r\n\r\n performAADCode() {\r\n\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS || msg.eventType === EventType.ACQUIRE_TOKEN_NETWORK_START),\r\n takeUntil(this._destroying$))\r\n .subscribe((result: EventMessage) => {\r\n const payload = result.payload as AuthenticationResult;\r\n if (payload.account) {\r\n var localStorageMail = \"\";\r\n if (localStorage.getItem('userEmail') !== null && localStorage.getItem('userEmail') !== undefined) {\r\n localStorageMail = localStorage.getItem('userEmail');\r\n }\r\n\r\n var emailFromPayload = payload.account.username;\r\n localStorage.setItem('userEmail', payload.account.username);\r\n localStorage.setItem('userProfile', JSON.stringify({\r\n \"firstName\": payload.account.name,\r\n \"lastName\": \"\",\r\n \"email\": payload.account.username,\r\n \"login\": payload.account.username\r\n }));\r\n\r\n\r\n var dateNowMilliseconds = new Date().getTime();\r\n if (localStorage.getItem(\"lastEventDate\") !== null && localStorage.getItem(\"lastEventDate\") !== undefined) {\r\n if (emailFromPayload === localStorageMail) {\r\n var lastEventDateMilliseconds = parseInt(localStorage.getItem(\"lastEventDate\"));\r\n if ((dateNowMilliseconds - lastEventDateMilliseconds) > 1000) {\r\n this.handleTracking();\r\n }\r\n } else {\r\n this.handleTracking();\r\n }\r\n localStorage.setItem(\"lastEventDate\", dateNowMilliseconds.toString());\r\n } else {\r\n this.handleTracking();\r\n localStorage.setItem(\"lastEventDate\", dateNowMilliseconds.toString());\r\n }\r\n this.baseService.isLoginSuccess.next(true);\r\n }\r\n this.authService.instance.setActiveAccount(payload.account);\r\n });\r\n\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None)\r\n )\r\n .subscribe(() => {\r\n this.checkAndSetActiveAccount();\r\n });\r\n }\r\n\r\n checkAndSetActiveAccount() {\r\n /**\r\n * If no active account set but there are accounts signed in, sets first account to active account\r\n * To use active account set here, subscribe to inProgress$ first in your component\r\n * Note: Basic usage demonstrated. Your app may require more complicated account selection logic\r\n */\r\n let activeAccount = this.authService.instance.getActiveAccount();\r\n if (!activeAccount && this.authService.instance.getAllAccounts().length > 0) {\r\n let accounts = this.authService.instance.getAllAccounts();\r\n this.authService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n\r\n parseToBoolean(value) {\r\n if (value) {\r\n return value.toString().toLowerCase() === 'true';\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n handleTracking() {\r\n let email = localStorage.getItem(\"userEmail\");\r\n this.appInsights.setAuthenticatedUserContext(email);\r\n localStorage.setItem('loggedIn', 'DONE');\r\n this.appInsights.logPageView(\"Login\", \"/login\");\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n","// import { OktaConfig } from '@okta/okta-angular/esm2015/src/okta/models/okta.config'\r\n\r\nexport class AppConfig {\r\n production: boolean;\r\n apiUrl: string;\r\n useMockData: boolean;\r\n appInsights: AppInsight;\r\n googleAnalytics: GoogleAnalytics;\r\n AADConfig: AADConfig;\r\n}\r\n\r\nexport class AppInsight {\r\n instrumentationKey: string;\r\n}\r\n\r\nexport class GoogleAnalytics {\r\n trackingCode: string;\r\n trackingOn: boolean;\r\n}\r\n\r\n\r\nexport class AADConfig {\r\n clientId: string;\r\n authority: string;\r\n redirectUri: string;\r\n apiScope: string;\r\n}\r\n\r\nexport class countryNames {\r\n US: string;\r\n\r\n}","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { UnauthorisedComponent } from './pages/unauthorised/unauthorised.component';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { AuthGuard } from './shared/guards/auth.gaurd';\r\nimport { AppInsightsService } from './shared/services/app-insights.service';\r\nimport { NegativeValuePipe } from './shared/pipes/negative-value.pipe';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\r\nimport { IPublicClientApplication, PublicClientApplication, InteractionType } from '@azure/msal-browser';\r\nimport {\r\n MsalGuard,\r\n MsalInterceptor,\r\n MsalBroadcastService,\r\n MsalInterceptorConfiguration,\r\n MsalService,\r\n MSAL_GUARD_CONFIG,\r\n MSAL_INSTANCE,\r\n MSAL_INTERCEPTOR_CONFIG,\r\n MsalGuardConfiguration,\r\n} from '@azure/msal-angular';\r\nimport { AuthConfig } from 'src/assets/auth-config';\r\nimport { ExportExcelComponent } from './pages/export-excel/export-excel.component';\r\nimport { ClientLocationMapComponent } from './pages/producers/client-location-map/client-location-map.component';\r\nimport { StartAndEndDatePipe } from './shared/pipes/start-and-end-date.pipe';\r\n\r\nvar authConfig;\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication(authConfig.msalConfig);\r\n}\r\n\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n\r\n protectedResourceMap.set(authConfig.protectedResources.api.endpoint, authConfig.protectedResources.api.scopes);\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: authConfig.loginRequest\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [AppComponent, UnauthorisedComponent, ExportExcelComponent],\r\n imports: [BrowserModule, HttpClientModule, AppRoutingModule, BrowserAnimationsModule, MatSnackBarModule, MatDialogModule],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n {\r\n provide: MAT_DIALOG_DEFAULT_OPTIONS,\r\n useValue: { hasBackdrop: true }\r\n },\r\n MsalService,\r\n MsalGuard,\r\n AuthGuard,\r\n MsalBroadcastService,\r\n AppInsightsService,\r\n AuthConfig,\r\n NegativeValuePipe,\r\n StartAndEndDatePipe\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n constructor(private authConfiguration: AuthConfig) {\r\n authConfig = authConfiguration;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n

Download in progress

\r\n

Excel downloaded

\r\n

\r\n The Link has expired.
\r\n Please generate a new export file.\r\n

\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n ","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DashletService } from 'src/app/shared/services/dashlet/dashlet.service';\r\n\r\n@Component({\r\n selector: 'app-export-excel',\r\n templateUrl: './export-excel.component.html',\r\n styleUrls: ['./export-excel.component.scss']\r\n})\r\nexport class ExportExcelComponent implements OnInit {\r\n\r\n downloadStatus: 'INPROGRESS' | 'COMPLETED' | 'ERROR' = 'INPROGRESS';\r\n fileName;\r\n sasUri\r\n constructor(private dashletService: DashletService, private route: ActivatedRoute, private router: Router) {\r\n this.route.queryParamMap.subscribe(params => {\r\n this.fileName = params.get('fileName')\r\n this.sasUri = params.get('sasUri')\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dashletService.mockExportToExcelService(this.fileName, this.sasUri).subscribe(\r\n res => {\r\n this.downloadStatus = 'COMPLETED';\r\n },\r\n err => {\r\n this.downloadStatus = 'ERROR';\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LOGIN_PARTICLE_PARAMS } from 'src/app/shared/constants/common-constants';\r\nimport { MsalService } from '@azure/msal-angular';\r\ndeclare var particlesJS: any;\r\n\r\n@Component({\r\n selector: 'app-unauthorised',\r\n templateUrl: './unauthorised.component.html',\r\n styleUrls: ['./unauthorised.component.scss']\r\n})\r\nexport class UnauthorisedComponent implements OnInit {\r\n constructor(private router: Router,\r\n private authService: MsalService) { }\r\n\r\n ngOnInit() {\r\n particlesJS('particles-js', LOGIN_PARTICLE_PARAMS);\r\n }\r\n\r\n async logout() {\r\n await this.authService.logoutRedirect();\r\n this.router.navigate(['/login']);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n

Access Denied

\r\n

It seems you do not have the necessary
\r\n permissions to access this dashboard.

\r\n \r\n

To gain access please contact:
\r\n support@hyperion-x.com

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-note-template',\r\n templateUrl: './note-template.component.html',\r\n styleUrls: ['./note-template.component.scss']\r\n})\r\nexport class NoteTemplateComponent {\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any, private snackRef: MatSnackBarRef) {}\r\n\r\n closeInfo() {\r\n this.snackRef.dismissWithAction();\r\n }\r\n}\r\n","
\r\n

\r\n \r\n {{data.message}}\r\n \r\n \r\n \r\n

\r\n
","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\nexport interface MatDialogData {\r\n authService: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-session-time-out-dialog',\r\n templateUrl: './session-time-out-dialog.component.html',\r\n styleUrls: ['./session-time-out-dialog.component.scss']\r\n})\r\nexport class SessionTimeOutDialogComponent {\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: MatDialogData) {}\r\n\r\n refreshSession(status) {\r\n if (status === 'cancel') {\r\n this.data.authService.doLogout();\r\n this.dialogRef.close();\r\n // this.data.idle.stop();\r\n } else {\r\n // this.data.authService.refreshSession();\r\n // this.data.authService.setSessionTimer();\r\n this.dialogRef.close();\r\n // this.data.idle.stop().reset().start();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n

Session is going to Expire

\r\n

Click on OK to continue in this session

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-terms-and-conditions',\r\n templateUrl: './terms-and-conditions.component.html',\r\n styleUrls: ['./terms-and-conditions.component.scss']\r\n})\r\nexport class TermsAndConditionsComponent implements OnInit {\r\n\r\n constructor() { }\r\n cookiePolicyLink = '';\r\n ngOnInit(): void {\r\n console.log(\"\");\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \"Full\r\n
\r\n
\r\n

Howden Markets Terms and Conditions

\r\n
    \r\n
  1. Introduction\r\n
      \r\n
    1. \r\n

      These terms and conditions (“Site Terms”) and the terms of the\r\n master agreement between the parties (“Master Agreement”) (together the \"Agreement\")\r\n set\r\n out the basis on which Howden Group Holdings Limited (“HGHL”) agrees to allow you (the “Insurer”)\r\n the\r\n ability to view your data within the broking group through a range of infographics.\r\n The\r\n information presented is, inter alia, gross written premium split by various\r\n categories\r\n including relevant business units, products, upcoming renewals (together the\r\n \"Services\")\r\n through the https://howden-markets.com/ web site (the \"Site\").

      \r\n
    2. \r\n
    3. \r\n

      By using the Site the Insurer is deemed to have accepted the\r\n Agreement in its entirety and agrees to use the Site solely in accordance with this\r\n Agreement.

      \r\n
    4. \r\n
    5. \r\n

      The site is owned and operated by HGHL.

      \r\n
    6. \r\n
    \r\n
  2. \r\n
  3. Registration and Rights of Utilisation of the Site\r\n
      \r\n
    1. \r\n

      The Insurer will provide HGHL with such personal information as\r\n HGHL may reasonably request relating to those of the Insurer's employees whom HGHL\r\n has\r\n approved in writing will be permitted to access and use the Site. Following receipt\r\n of\r\n such details, HGHL shall provide the Insurer with details of its usernames for use\r\n via\r\n the Site.

      \r\n
    2. \r\n
    3. \r\n

      Following receipt of its usernames and passwords in accordance\r\n with clause 2.1 above, the Insurer may access and use the services provided on the\r\n Site.

      \r\n
    4. \r\n
    5. \r\n

      Use of the Site is provided to the Insurer in accordance with\r\n the charges set out in the Master Agreement.

      \r\n
    6. \r\n
    7. \r\n

      HGHL reserves the right, at any time and without prior notice or\r\n reason, to reject, suspend or cancel the registration of an Insurer, and its access,\r\n to\r\n the Site and terminate this Agreement. In the event that such rejection, suspension,\r\n cancellation or termination occurs, HGHL shall not be liable to the Insurer in any\r\n way\r\n whatsoever for such rejection, suspension, cancellation or termination.

      \r\n
    8. \r\n
    \r\n
  4. \r\n
  5. User IDs and Passwords\r\n
      \r\n
    1. \r\n

      The Insurer is solely responsible in all respects for all use of\r\n and for protecting the confidentiality of all usernames and passwords which may be\r\n given\r\n to the Insurer by HGHL or selected by the Insurer for use via the Site. The Insurer\r\n is\r\n fully responsible for all activities which occur under such usernames and passwords.\r\n The\r\n Insurer may not share these with or transfer them to any third parties. The Insurer\r\n must\r\n immediately notify HGHL of any unauthorised use of them or any other breach of\r\n security\r\n regarding the Site.

      \r\n
    2. \r\n
    3. \r\n

      When an individual employee of the Insurer leaves its employment\r\n or is otherwise no longer to be granted access to the Site, the Insurer shall notify\r\n HGHL immediately in writing so that HGHL can disable and/or re-assign the\r\n corresponding\r\n username and password.

      \r\n
    4. \r\n
    5. \r\n

      The Insurer will indemnify HGHL for any loss or damage resulting\r\n from misuse of the assigned or chosen username or password.

      \r\n
    6. \r\n
    \r\n
  6. \r\n
  7. Disclaimers\r\n
      \r\n
    1. \r\n

      HGHL is providing the Site on an \"as is\" and \"as available\"\r\n basis and makes no representations or warranties of any kind with respect to the\r\n Site or\r\n the content contained in the Site (including any text, graphics, advertisements,\r\n links\r\n or other items) and disclaims all such representations and warranties. In addition,\r\n HGHL\r\n does not warrant that use of the Site will be free from viruses, uninterrupted,\r\n error-free or secure. Use of the Site and the Services are entirely at the Insurer’s\r\n own\r\n risk.

      \r\n
    2. \r\n
    3. \r\n

      HGHL makes no representation nor gives any warranty, condition,\r\n undertaking or term either express or implied as to the condition, quality,\r\n performance,\r\n suitability, fitness for purpose, or completeness of the content contained on the\r\n Site\r\n or that such content will be accurate and up to date.

      \r\n
    4. \r\n
    5. \r\n

      The Insurer acknowledges that it is solely responsible for the\r\n use to which it puts the Site and all the results and information it obtains from it\r\n and\r\n that all warranties, conditions, undertakings, representations and terms whether\r\n expressed or implied, statutory or otherwise are hereby excluded to the fullest\r\n extent\r\n permitted by law (save that nothing in this Agreement shall waive or exclude the\r\n normal\r\n pre-contractual duty of disclosure applicable to contracts of insurance and any\r\n other\r\n specific terms or warranties that may apply to any contract of insurance which is\r\n concluded through the Site).

      \r\n
    6. \r\n
    7. \r\n

      Save in respect of liability for death or personal injury\r\n arising out of negligence, HGHL hereby disclaims and excludes to the fullest extent\r\n permitted by law all liability for any loss or damage whatsoever and howsoever\r\n incurred\r\n including any consequential, special, secondary or indirect loss or damage or any\r\n damage\r\n to goodwill or profits or any loss of anticipated savings incurred by the Insurer,\r\n whether arising in tort, contract or otherwise, and arising out of or in relation to\r\n or\r\n in connection with the Insurer's access to or use of or inability to use the Site,\r\n or in\r\n connection with any failure of performance, error, omission, interruption, defect,\r\n delay\r\n in operation or transmission, computer virus or line or system failure even if HGHL\r\n or\r\n its employees or agents are advised of the possibility of such damages, losses or\r\n expenses.

      \r\n
    8. \r\n
    9. \r\n

      Whilst HGHL takes care to ensure that the standard of the Site\r\n remains high and to maintain the continuity of it, the Internet is not always a\r\n stable\r\n medium, and errors, omissions, interruptions of service and delays may occur at any\r\n time. As a result, HGHL does not accept any ongoing obligation or responsibility to\r\n operate the Site (or any particular part of it).

      \r\n
    10. \r\n
    \r\n
  8. \r\n
  9. Variation of Content\r\n
      \r\n
    1. \r\n

      HGHL reserves the right in its absolute discretion at any time\r\n and without notice to remove, amend or vary any of the content which appears on any\r\n page\r\n of the Site.

      \r\n
    2. \r\n
    \r\n
  10. \r\n
  11. Contribution of your Content\r\n
      \r\n
    1. \r\n

      Where the Insurer contributes, without limitation, any data,\r\n databases, graphics, logos, research, information, opinions, statements or other\r\n material (together “Insurer Content”) to HGHL for inclusion through the Site, the\r\n Insurer shall contribute Insurer Content:

      \r\n
    2. \r\n
    3. \r\n

      in any of the formats HGHL has communicated to the Insurer; and

      \r\n
    4. \r\n
    5. \r\n

      using such technology as HGHL approves in writing.\r\n

      \r\n
    6. \r\n
    7. \r\n

      The Insurer warrants and represents to HGHL that:\r\n

      \r\n
    8. \r\n
    9. \r\n

      it is the owner of or otherwise has the right to provide the\r\n Insurer Content to HGHL for distribution through the Site;\r\n

      \r\n
    10. \r\n
    11. \r\n

      HGHL's use of the Insurer Content in accordance with this\r\n Agreement shall not infringe the intellectual property rights of any third party;\r\n

      \r\n
    12. \r\n
    13. \r\n

      the Insurer Content shall not contain any libellous or\r\n slanderous statements; and\r\n

      \r\n
    14. \r\n
    15. \r\n

      it has obtained all relevant authorisations and complied with\r\n all applicable laws, government rules and regulations and industry codes necessary\r\n for\r\n it to distribute the Insurer Content through the Site including, without limitation,\r\n those with respect to the provision of financial services.\r\n

      \r\n
    16. \r\n
    17. \r\n

      Additionally, the Insurer grants HGHL an exclusive,\r\n royalty-free, worldwide licence to receive, store, copy and distribute the Insurer\r\n Content.\r\n

      \r\n
    18. \r\n
    19. \r\n

      HGHL shall take reasonable steps to put appropriate security\r\n measures in place to safeguard the integrity of the Insurer Content however, the\r\n Insurer\r\n acknowledges that HGHL shall not under any circumstances be liable to the Insurer\r\n for\r\n any breach of security in relation to the Insurer Content.\r\n

      \r\n
    20. \r\n
    \r\n
  12. \r\n
  13. Copyright\r\n
      \r\n
    1. \r\n

      All design, text, graphics and the selection or arrangement\r\n thereof in the pages of the Site and the screens displaying the pages of the Site\r\n are the copyright of HGHL unless otherwise indicated.\r\n

      \r\n
    2. \r\n
    \r\n
  14. \r\n
  15. Trademarks\r\n
      \r\n
    1. \r\n

      The trade marks, logos and services marks (\"Marks\") displayed on\r\n the Site are the property of HGHL or other third parties. The Insurer is not\r\n permitted\r\n to use these Marks without the prior written consent of HGHL or the relevant third\r\n party\r\n proprietor of the Marks and the Insurer acknowledges that any such use may\r\n constitute an\r\n infringement of the relevant proprietor's rights.\r\n

      \r\n
    2. \r\n
    \r\n
  16. \r\n
  17. Links\r\n
      \r\n
    1. \r\n

      The Site may contain links to third party web sites. Access to\r\n any other web site linked to the Site is at the Insurer's own risk and HGHL is not\r\n responsible for the accuracy or reliability of any information, data, opinions,\r\n advice\r\n or statements made on any such third party web site or the security of any link or\r\n communication with such sites. HGHL reserves the right to terminate a link to a\r\n third\r\n party site at any time. The fact that HGHL provides a link to a third party web site\r\n does not mean that HGHL endorses, authorises or sponsors that web site nor does it\r\n mean\r\n that HGHL is affiliated with the third party web site's owners or sponsors. HGHL\r\n provides these links merely as a convenience for those using the Site.\r\n

      \r\n
    2. \r\n
    \r\n
  18. \r\n
  19. Privacy of Personal Data\r\n
      \r\n
    1. \r\n

      The Insurer acknowledges that HGHL is entitled to handle any\r\n personal information the Insurer supplies to HGHL. HGHL only uses the Insurer's\r\n personal\r\n data for the initial registration process, to allow HGHL to process and respond to\r\n any\r\n enquiries the Insurer may have and to contact the Insurer.\r\n

    2. \r\n
    3. \r\n

      HGHL may also collect information automatically about the\r\n Insurer's visit to the Site. The information obtained in this way is used purely in\r\n an\r\n aggregate form. HGHL uses this type of information for statistical purposes in order\r\n to\r\n help HGHL administer, develop and improve the Site and HGHL may provide such\r\n aggregate\r\n information to third parties. Such types of information will not include personal\r\n information that can be used to identify or locate an individual.\r\n

    4. \r\n
    5. \r\n

      HGHL may disclose the Insurer's personal data to third parties\r\n for the purpose of providing services the Insurer has requested, as part of the\r\n process\r\n of sale of HGHL's business, or where legitimately requested for legal or regulatory\r\n purposes, as part of legal proceedings or prospective legal proceedings. From time\r\n to\r\n time, these third parties may be located outside the European Economic Area in\r\n countries\r\n which do not have the same standards of protection for personal data as the United\r\n Kingdom.\r\n

      \r\n
    6. \r\n
    \r\n
  20. \r\n
  21. Entire agreement\r\n
      \r\n
    1. \r\n

      Save in the case of fraud or fraudulent concealment, each party\r\n acknowledges that:\r\n

      \r\n
        \r\n
      1. \r\n

        this Agreement together with any other documents expressly referred to in it\r\n (together the \"Contract\") constitutes the entire and only agreement between\r\n the\r\n parties relating to the subject matter of the Contract; and

        \r\n
      2. \r\n
      3. \r\n

        it has not been induced to enter into the Contract in reliance on, nor has it\r\n been given, any representation or other statement of any nature whatsoever\r\n other\r\n than those set out in the Contract.

        \r\n
      4. \r\n
      \r\n
    2. \r\n
    \r\n
  22. \r\n
  23. Variation\r\n
      \r\n
    1. \r\n

      This Agreement may be varied only by a document signed by HGHL.\r\n

      \r\n
    2. \r\n
    \r\n
  24. \r\n
  25. Waiver\r\n
      \r\n
    1. \r\n

      No breach of any provision of this Agreement shall be waived or\r\n discharged except with the express written consent of the parties.\r\n

    2. \r\n
    3. \r\n

      \r\n No failure or delay by a party to exercise any of its rights under this Agreement\r\n shall\r\n operate as a waiver thereof and no single or partial exercise of any such right\r\n shall\r\n prevent any other or further exercise of that or any other right.\r\n

      \r\n
    4. \r\n
    \r\n
  26. \r\n
  27. Invalidity\r\n
      \r\n
    1. \r\n

      If any provision of this Agreement is or becomes for any reason\r\n whatsoever invalid, illegal or unenforceable it shall be divisible from this\r\n Agreement\r\n and shall be deemed to be deleted from it and the validity of the remaining\r\n provisions\r\n shall not be affected in any way.\r\n

      \r\n
    2. \r\n
    \r\n
  28. \r\n
  29. Notices\r\n
      \r\n
    1. \r\n

      Notices shall be deemed to be served in the case of HGHL\r\n communicating with the Insurer, when HGHL sends an e-mail to the e-mail address\r\n specified by the Insurer during the registration process and in the case of the\r\n Insurer\r\n communicating with HGHL, when delivered or posted to HGHL's offices at One\r\n Creechurch\r\n Place, London, EC3A 5AF for the attention of the Managing Director.\r\n

      \r\n
    2. \r\n
    \r\n
  30. \r\n
  31. Rights of Third Parties\r\n
      \r\n
    1. \r\n

      Save for any rights or benefits expressly conferred on HGHL, its\r\n affiliates or any of HGHL's contributors to the Site under this Agreement, nothing\r\n in\r\n this Agreement confers or purports to confer on any third party any benefit or right\r\n to\r\n enforce any term of this Agreement and the provisions of the Contracts (Rights of\r\n Third\r\n Parties) Act 1999 (as amended or modified from time to time) are expressly excluded.\r\n

      \r\n
    2. \r\n
    \r\n
  32. \r\n
  33. Governing Law\r\n
      \r\n
    1. \r\n

      HGHL makes no representation that the content or materials on\r\n the Site are appropriate or available for use in other jurisdictions outside of the\r\n United Kingdom. Access to the Site's content or its materials from jurisdictions\r\n where\r\n such access is illegal is prohibited. If the Insurer chooses to access the Site from\r\n other jurisdictions, the Insurer does so at its own initiative and risk and the\r\n Insurer\r\n is responsible for compliance with all relevant local laws.\r\n

    2. \r\n
    3. \r\n

      \r\n This Agreement and any dispute or claim whatsoever relating to its formation shall\r\n be\r\n governed by and interpreted in accordance with English law and the parties\r\n irrevocably\r\n agree that the English courts shall have exclusive jurisdiction.\r\n

      \r\n
    4. \r\n
    \r\n
  34. \r\n
\r\n
\r\n
\r\n
\r\n \r\n
","export const COPYRIGHTTEXT =\r\n 'Copyright © 2019 Howden UK Group\\\r\n Limited.All rights reserved.Registered\\\r\n in England & Wales under company registration\\\r\n number 725875.Registered address: One\\\r\n Creechurch Place, London, EC3A 5AF.Authorised \\\r\n and regulated by the Financial Conduct Authority.';\r\n\r\nexport const DASHBOARD_NAME = 'Market Intelligence';\r\n\r\n// export const PAGES_INFO = ['/summary', '/market', '/risk-details', '/renewal'];\r\nexport const PAGES_INFO = ['/'];\r\nexport const PAGES_TAB = [\r\n {\r\n name: 'Market Intelligence',\r\n pageName: 'Producers&Markets',\r\n route: '/'\r\n }\r\n];\r\n\r\n\r\n\r\nexport const PAGING_OPTIONS = [\r\n { displayName: 25, value: 25 },\r\n { displayName: 50, value: 50 },\r\n { displayName: 100, value: 100 }\r\n];\r\n\r\nexport const LOGIN_PARTICLE_PARAMS = {\r\n particles: {\r\n number: {\r\n value: 100,\r\n density: {\r\n enable: true,\r\n value_area: 800\r\n }\r\n },\r\n color: {\r\n value: '#ffffff'\r\n },\r\n shape: {\r\n type: 'circle',\r\n stroke: {\r\n width: 0,\r\n color: '#000000'\r\n },\r\n polygon: {\r\n nb_sides: 5\r\n },\r\n image: {\r\n src: 'img/github.svg',\r\n width: 100,\r\n height: 100\r\n }\r\n },\r\n opacity: {\r\n value: 0.5,\r\n random: false,\r\n anim: {\r\n enable: false,\r\n speed: 1,\r\n opacity_min: 0.1,\r\n sync: false\r\n }\r\n },\r\n size: {\r\n value: 2,\r\n random: true,\r\n anim: {\r\n enable: false,\r\n speed: 20,\r\n size_min: 0.1,\r\n sync: false\r\n }\r\n },\r\n line_linked: {\r\n enable: true,\r\n distance: 150,\r\n color: '#ffffff',\r\n opacity: 0.1,\r\n width: 1\r\n },\r\n move: {\r\n enable: true,\r\n speed: 1,\r\n direction: 'none',\r\n random: false,\r\n straight: false,\r\n out_mode: 'out',\r\n bounce: false,\r\n attract: {\r\n enable: false,\r\n rotateX: 600,\r\n rotateY: 1200\r\n }\r\n }\r\n },\r\n interactivity: {\r\n detect_on: 'canvas',\r\n events: {\r\n onhover: {\r\n enable: false,\r\n mode: 'grab'\r\n },\r\n onclick: {\r\n enable: false,\r\n mode: 'push'\r\n },\r\n resize: true\r\n },\r\n modes: {\r\n grab: {\r\n distance: 140,\r\n line_linked: {\r\n opacity: 1\r\n }\r\n },\r\n bubble: {\r\n distance: 400,\r\n size: 40,\r\n duration: 2,\r\n opacity: 8,\r\n speed: 3\r\n },\r\n repulse: {\r\n distance: 200,\r\n duration: 0.4\r\n },\r\n push: {\r\n particles_nb: 4\r\n },\r\n remove: {\r\n particles_nb: 2\r\n }\r\n }\r\n },\r\n retina_detect: true\r\n};\r\n","interface FilterMap {\r\n name: string;\r\n className?: string;\r\n child: FilterItemMap[];\r\n count: number;\r\n}\r\ninterface FilterItemMap {\r\n key: string;\r\n displayName: string;\r\n isSingleSelect: boolean;\r\n fixedValues: boolean;\r\n type: string;\r\n filterKey?: string;\r\n singleSelectDropdown?: boolean\r\n\r\n}\r\nexport const FILTERS_CONFIG: Array = [\r\n {\r\n name: 'Defaults',\r\n className: 'col0',\r\n child: [\r\n { key: 'StrongerTogetherReason', displayName: 'Stronger Together Reason', isSingleSelect: false, fixedValues: false, type: 'MULTI_SELECTION_REASON' },\r\n { key: 'StrongerTogether', displayName: 'Stronger Together', isSingleSelect: true, fixedValues: true, type: 'SINGLE_SELECT' },\r\n {\r\n key: 'ReportingCurrency',\r\n filterKey: 'Currency',\r\n displayName: 'Currency',\r\n isSingleSelect: true,\r\n fixedValues: true,\r\n type: 'CUSTOM_CURRENCY'\r\n },\r\n { key: 'RateType', displayName: 'Rate of Exchange', isSingleSelect: true, fixedValues: true, type: 'SINGLE_SELECT' },\r\n { key: 'DateType', displayName: 'Date Type', isSingleSelect: true, fixedValues: true, type: 'SINGLE_SELECT' },\r\n { key: 'TimePeriod', displayName: 'Time Period', isSingleSelect: true, fixedValues: true, type: 'CUSTOM_DATE_RANGE' }\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Business Units',\r\n className: 'col1',\r\n child: [\r\n { key: 'Region', displayName: 'Howden Pillar', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'Company', displayName: 'Howden Division', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'Division', displayName: 'Howden Business Unit Level 1', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'Team', displayName: 'Howden Business Unit Level 2', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'SubTeam', displayName: 'Howden Business Unit Level 3', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'Base', displayName: 'Howden Business Unit Level 4', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' }\r\n\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Stronger Together Recipients',\r\n className: 'col1',\r\n child: [\r\n { key: 'PolicyRegion', displayName: 'Recipients Pillar', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'PolicyCompany', displayName: 'Recipients Division', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'PolicyDivision', displayName: 'Recipients Business Unit Level 1', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'PolicyTeam', displayName: 'Recipients Business Unit Level 2', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'PolicySubTeam', displayName: 'Recipients Business Unit Level 3', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'PolicyBase', displayName: 'Recipients Business Unit Level 4', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' }\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Stronger Together Producers',\r\n className: 'col1',\r\n child: [\r\n { key: 'DisplayLevel1', displayName: 'Level 1', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'DisplayLevel2', displayName: 'Level 2', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'DisplayLevel3', displayName: 'Level 3', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Products',\r\n className: 'col1',\r\n child: [\r\n { key: 'Product', displayName: 'Product', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'SubProduct', displayName: 'Sub-Product', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' }\r\n ],\r\n count: 0\r\n },\r\n\r\n\r\n {\r\n name: 'Producer',\r\n className: 'col2',\r\n child: [\r\n { key: 'ProducerGroupName', displayName: 'Producer Group', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n {\r\n key: 'ProducerSubGroupName',\r\n displayName: 'Producer Sub Group',\r\n isSingleSelect: false,\r\n fixedValues: false,\r\n type: 'AUTOCOMPLETE_DIV'\r\n }\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Industry',\r\n className: 'col2',\r\n child: [\r\n { key: 'IndustrySector', displayName: 'Industry Sector', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'IndustryType', displayName: 'Industry Type', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' }\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Producer Location',\r\n className: 'col2',\r\n child: [\r\n { key: 'ProducerRegion', displayName: 'Producer Region', isSingleSelect: false, singleSelectDropdown: true, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'ProducerCountry', displayName: 'Producer Country', isSingleSelect: false, singleSelectDropdown: true, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'ProducerState', displayName: 'Producer State (Canada & USA)', isSingleSelect: false, singleSelectDropdown: true, fixedValues: false, type: 'AUTOCOMPLETE_DIV' }\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Market',\r\n className: 'col3',\r\n child: [\r\n { key: 'PlacingMarket', displayName: 'Placing Market', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n {\r\n key: 'PlacingSubMarket',\r\n displayName: 'Placing Sub-market',\r\n isSingleSelect: false,\r\n fixedValues: false,\r\n type: 'AUTOCOMPLETE_DIV'\r\n }\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Insured Location',\r\n className: 'col3',\r\n child: [\r\n { key: 'InsuredContinent', displayName: 'Insured Region', isSingleSelect: false, singleSelectDropdown: true, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'InsuredCountry', displayName: 'Insured Country', isSingleSelect: false, singleSelectDropdown: true, fixedValues: false, type: 'AUTOCOMPLETE_DIV' }\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Client Location',\r\n className: 'col3',\r\n child: [\r\n { key: 'ClientRegion', displayName: 'Client Region', isSingleSelect: false, singleSelectDropdown: true, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'ClientCountry', displayName: 'Client Country', isSingleSelect: false, singleSelectDropdown: true, fixedValues: false, type: 'AUTOCOMPLETE_DIV' }\r\n ],\r\n count: 0\r\n },\r\n {\r\n name: 'Capacity Markets',\r\n className: 'col3',\r\n child: [\r\n { key: 'CapacityMarket', displayName: 'Capacity Market', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' },\r\n { key: 'CapacitySubMarket', displayName: 'Capacity Sub Market', isSingleSelect: false, fixedValues: false, type: 'AUTOCOMPLETE_DIV' }\r\n ],\r\n count: 0\r\n }\r\n];\r\n\r\nexport const FILTER_COUNT_DASHLET_CONFIG = [\r\n 'CrossFilterAllCountBU',\r\n 'CrossFilterAllCountProducerState',\r\n 'CrossFilterAllCountOther',\r\n 'CrossFilterAllCountProducer',\r\n 'CrossFilterAllCountProdRegion',\r\n 'CrossFilterCountClientRegion'\r\n];\r\n\r\nexport const RENEWAL_FILTERS = {\r\n DateType: {\r\n IsSingleSelect: true,\r\n DisplayName: 'Time Period',\r\n Key: 'DateType',\r\n Data: [\r\n {\r\n Name: 'Renewal Date',\r\n Key: 'RenewalDate',\r\n IsDefault: true\r\n }\r\n ]\r\n },\r\n TimePeriod: {\r\n IsSingleSelect: true,\r\n DisplayName: 'Date Range',\r\n Key: 'TimePeriod',\r\n Data: [\r\n {\r\n Name: 'Next days',\r\n Key: 'Next days',\r\n IsDefault: true\r\n },\r\n {\r\n Name: 'Last 365 Days',\r\n Key: 'Last 365 Days',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Calendar Year',\r\n Key: 'CY',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Financial Year',\r\n Key: 'FY',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Custom',\r\n Key: 'Custom',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Months',\r\n Key: 'Months',\r\n IsDefault: false\r\n }\r\n ]\r\n }\r\n};\r\n\r\nexport const OTHER_PAGE_FILTERS = {\r\n TimePeriod: {\r\n IsSingleSelect: true,\r\n DisplayName: 'Date Range',\r\n Key: 'TimePeriod',\r\n Data: [\r\n {\r\n Name: 'Last 12 months',\r\n Key: 'Last 365 Days',\r\n IsDefault: true\r\n },\r\n {\r\n Name: 'Calendar Year',\r\n Key: 'CY',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Financial Year',\r\n Key: 'FY',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Fin. Year To Date',\r\n Key: 'FYTD',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Custom',\r\n Key: 'Custom',\r\n IsDefault: false\r\n }\r\n // {\r\n // Name: 'All Values',\r\n // Key: 'All Values',\r\n // IsDefault: false\r\n // }\r\n ]\r\n },\r\n DateType: {\r\n IsSingleSelect: true,\r\n DisplayName: 'Date Type',\r\n Key: 'DateType',\r\n Data: [\r\n {\r\n Name: 'Brokerage Date',\r\n Key: 'BrokerageDate',\r\n IsDefault: true\r\n },\r\n {\r\n Name: 'Inception Date',\r\n Key: 'InceptionDate',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Entry Date',\r\n Key: 'EntryDate',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Renewal Date',\r\n Key: 'RenewalDate',\r\n IsDefault: false\r\n }\r\n ]\r\n },\r\n StrongerTogether: {\r\n IsSingleSelect: true,\r\n DisplayName: 'Stronger Together',\r\n Key: 'StrongerTogether',\r\n Data: [\r\n {\r\n Name: 'Off',\r\n Key: 'Off',\r\n IsDefault: true\r\n },\r\n {\r\n Name: 'On',\r\n Key: 'On',\r\n IsDefault: false\r\n },\r\n ]\r\n },\r\n StrongerTogetherReason: {\r\n IsSingleSelect: false,\r\n DisplayName: 'Stronger Together Reason',\r\n Key: 'StrongerTogetherReason',\r\n Data: [\r\n {\r\n Name: 'Total',\r\n Key: 'Total',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'DiffBU',\r\n Key: 'DiffBU',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Howden Client/TP',\r\n Key: 'HowdenClientTP',\r\n IsDefault: false\r\n },\r\n ]\r\n }\r\n};\r\n\r\nconst date = new Date();\r\nconst month = date.getMonth() + 1;\r\nconst year = date.getFullYear();\r\nconst fullFinancialYear = (month >= 10 && month <= 12) ? year + 1 : year;\r\nconst financialYear = Number(fullFinancialYear.toString().slice(-2));\r\nconst previousFinancialYear = financialYear - 1;\r\n\r\nexport const FIXED_FILTERVALUES_MOCK = {\r\n RateType: {\r\n IsSingleSelect: true,\r\n DisplayName: 'Rate of Exchange',\r\n Key: 'RateType',\r\n Data: (month === 10 || month === 11) ? \r\n [\r\n {\r\n Name: 'Month End',\r\n Key: 'Month End',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'HIBL Annual Budget FY' + previousFinancialYear,\r\n Key: 'HIBL Annual Budget FY' + previousFinancialYear,\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Group Annual Budget FY' + previousFinancialYear,\r\n Key: 'Group Annual Budget FY' + previousFinancialYear,\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'HIBL Annual Budget FY' + financialYear,\r\n Key: 'HIBL Annual Budget FY' + financialYear,\r\n IsDefault: true\r\n },\r\n {\r\n Name: 'Group Annual Budget FY' + financialYear,\r\n Key: 'Group Annual Budget FY' + financialYear,\r\n IsDefault: false\r\n }\r\n // {\r\n // Name: 'Project',\r\n // Key: 'Project',\r\n // IsDefault: false\r\n // }\r\n ] : \r\n [\r\n {\r\n Name: 'Month End',\r\n Key: 'Month End',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'HIBL Annual Budget FY' + financialYear,\r\n Key: 'HIBL Annual Budget FY' + financialYear,\r\n IsDefault: true\r\n },\r\n {\r\n Name: 'Group Annual Budget FY' + financialYear,\r\n Key: 'Group Annual Budget FY' + financialYear,\r\n IsDefault: false\r\n }\r\n ]\r\n },\r\n ReportingCurrency: {\r\n IsSingleSelect: true,\r\n DisplayName: 'Currency',\r\n Key: 'ReportingCurrency',\r\n Data: [\r\n {\r\n Name: 'USD',\r\n Key: 'USD',\r\n IsDefault: true\r\n },\r\n {\r\n Name: 'GBP',\r\n Key: 'GBP',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'EUR',\r\n Key: 'EUR',\r\n IsDefault: false\r\n },\r\n {\r\n Name: 'Other',\r\n Key: 'Other',\r\n IsDefault: false\r\n }\r\n ]\r\n },\r\n // IsLuxTransaction: {\r\n // IsSingleSelect: true,\r\n // DisplayName: 'Is Howden Specialty Luxembourg Transaction',\r\n // Key: 'IsLuxTransaction',\r\n // Data: [\r\n // {\r\n // Name: 'Default',\r\n // Key: 'Default',\r\n // IsDefault: true\r\n // },\r\n // {\r\n // Name: 'No',\r\n // Key: 0,\r\n // IsDefault: false\r\n // },\r\n // {\r\n // Name: 'Yes',\r\n // Key: -1,\r\n // IsDefault: false\r\n // }\r\n // ]\r\n // },\r\n ...OTHER_PAGE_FILTERS\r\n};\r\n","export const levelsConfigs = [\r\n {name:'PlacingMarket', index: 0, item: 'Placing Markets', dashlet: 'Placing Markets'},\r\n {name:'PlacingSubMarket', index: 1, item: 'Placing Sub Markets', dashlet: 'Placing Markets'},\r\n {name:'ProducerGroupName', index: 0, item: 'Producer Name', dashlet: 'Producers'},\r\n {name:'ProducerSubGroupName', index: 1, item: 'Sub Producer Name', dashlet: 'Producers'},\r\n {name:'CapacityMarket', index: 0, item: 'Capacity Markets', dashlet: 'Capacity Markets'},\r\n {name:'CapacitySubMarket', index: 1, item: 'Capacity Sub Markets', dashlet: 'Capacity Markets'},\r\n {name:'IndustrySector', index: 0, item: 'Insured Industry Sector', dashlet: 'Industry'},\r\n {name:'Product', index: 0, item: 'Products', dashlet: 'Products'},\r\n {name:'Region', index: 0, item: 'Pillar', dashlet: 'Howden Business Units'},\r\n {name:'Company', index: 1, item: 'Division', dashlet: 'Howden Business Units'},\r\n {name:'Division', index: 2, item: 'Level 1', dashlet: 'Howden Business Units'},\r\n {name:'Team', index: 3, item: 'Level 2', dashlet: 'Howden Business Units'},\r\n {name:'SubTeam', index: 4, item: 'Level 3', dashlet: 'Howden Business Units'},\r\n {name:'DisplayLevel1', index: 0, item: 'Level 1', dashlet: 'Stronger Together Producers'},\r\n {name:'DisplayLevel2', index: 1, item: 'Level 2', dashlet: 'Stronger Together Producers'},\r\n {name:'DisplayLevel3', index: 2, item: 'Level 3', dashlet: 'Stronger Together Producers'},\r\n {name:'PolicyRegion', index: 0, item: 'Pillar', dashlet: 'Stronger Together'},\r\n {name:'PolicyCompany', index: 1, item: 'Division', dashlet: 'Stronger Together'},\r\n {name:'PolicyDivision', index: 2, item: 'Level 1', dashlet: 'Stronger Together'},\r\n {name:'PolicyTeam', index: 3, item: 'Level 2', dashlet: 'Stronger Together'},\r\n {name:'PolicySubTeam', index: 4, item: 'Level 3', dashlet: 'Stronger Together'}\r\n];\r\n\r\nexport const drillUpsLevelsConfigs = [\r\n {index: 0, item: 'Placing Markets', name: 'PlacingMarket', displayName: 'Placing Market', dashletName: 'Placing Markets'},\r\n {index: 1, item: 'Placing Sub Markets', name: 'PlacingSubMarket', displayName: 'Placing Sub-market', dashletName: 'Placing Markets'},\r\n {index: 0, item: 'Producer Name', name: 'ProducerGroupName', displayName: 'Producer Group', dashletName: 'Producers'},\r\n {index: 1, item: 'Sub Producer Name', name: 'ProducerSubGroupName', displayName: 'Producer Sub Group', dashletName: 'Producers'},\r\n {index: 0, item: 'Insured Industry Sector', name: 'IndustrySector', displayName: 'Industry Sector', dashletName: 'Industry'},\r\n {index: 1, item: 'Insured Industry Sector', name: 'IndustrySector', displayName: 'Industry Sector', dashletName: 'Industry'},\r\n {index: 0, item: 'Capacity Markets', name: 'CapacityMarket', displayName: 'Capacity Market', dashletName: 'Capacity Markets'},\r\n {index: 1, item: 'Capacity Sub Markets', name: 'CapacitySubMarket', displayName: 'Capacity Sub Market', dashletName: 'Capacity Markets'},\r\n {index: 0, item: 'Products', name: 'Product', displayName: 'Product', dashletName: 'Products'},\r\n {index: 0, item: 'Pillar', name: 'Region', displayName: 'Howden Pillar', dashletName: 'Howden Business Units'},\r\n {index: 1, item: 'Division', name: 'Company', displayName: 'Howden Division', dashletName: 'Howden Business Units'},\r\n {index: 2, item: 'Level 1', name: 'Division', displayName: 'Howden Business Unit Level 1', dashletName: 'Howden Business Units'},\r\n {index: 3, item: 'Level 2', name: 'Team', displayName: 'Howden Business Unit Level 2', dashletName: 'Howden Business Units'},\r\n {index: 4, item: 'Level 3', name: 'SubTeam', displayName: 'Howden Business Unit Level 3', dashletName: 'Howden Business Units'},\r\n {index: 0, item: 'Pillar', name: 'PolicyRegion', displayName: 'Recipients Pillar', dashletName: 'Stronger Together'},\r\n {index: 1, item: 'Division', name: 'PolicyCompany', displayName: 'Recipients Division', dashletName: 'Stronger Together'},\r\n {index: 2, item: 'Level 1', name: 'PolicyDivision', displayName: 'Recipients Business Unit Level 1', dashletName: 'Stronger Together'},\r\n {index: 3, item: 'Level 2', name: 'PolicyTeam', displayName: 'Recipients Howden Business Unit Level 2', dashletName: 'Stronger Together'},\r\n {index: 4, item: 'Level 3', name: 'PolicySubTeam', displayName: 'Recipients Howden Business Unit Level 3', dashletName: 'Stronger Together'},\r\n {index: 0, item: 'Level 1', name: 'DisplayLevel1', displayName: 'Level 1', dashletName: 'Stronger Together Producers'},\r\n {index: 1, item: 'Level 2', name: 'DisplayLevel2', displayName: 'Level 2', dashletName: 'Stronger Together Producers'},\r\n {index: 2, item: 'Level 3', name: 'DisplayLevel3', displayName: 'Level 3', dashletName: 'Stronger Together Producers'}\r\n];","/*\r\nBelow JSON object will have the api address that will be used across the project\r\nIt should be a key value pair\r\nwith key being used in api methods\r\nand value being used for api service to make relevant calls\r\nE.g: \"userDetails\": \"UserConfig/GetUserAccess\"\r\n*/\r\n\r\nexport const URL_LIST = {\r\n fixedFilters: 'Filters/GetFiltersForUser',\r\n defaultFilters: 'Filters/GetDefaultFilters?dashboard=RKH%20Insights',\r\n filterConfig: 'Filters/GetUIFilterConfiguration?dashboard=RKH%20Insights',\r\n dashlet: 'MI/GetDashboardData',\r\n riskDetailsData: 'RiskDetails/GetRiskDetailsData',\r\n riskDetailsColumns: 'RiskDetails/GetRiskDetailsFields?page=RiskDetails',\r\n exportToExcel: 'MI/ExportToExcel',\r\n exportGlobalExcel: 'MI/GlobalExportExcel',\r\n riskDetailsExportToExcel: 'RiskDetails/ExportToExcel',\r\n footerInfo: 'MI/GetFooterInformation',\r\n reportIssue: '/User/ReportIssue',\r\n loginTime: 'User/GetUserInfo',\r\n accessLevel: 'User/GetUserBUAccess',\r\n savedFiltersList: 'Filters/GetFilterSetsForUser',\r\n saveNewFilter: 'Filters/SaveOrUpdateFilterSetForUser',\r\n deleteSavedFilter: 'Filters/DeleteFilterSetForUser',\r\n submitFeedback: 'User/SubmitFeedback',\r\n monthsListForRenewal: 'Filters/GetMonthsListForRenewal',\r\n filterCount: 'Filters/GetGroupedFiltersCount',\r\n yearList: 'Filters/GetYearsList',\r\n userMDSDetails: 'User/GetUserMDSId',\r\n emailGlobalExcel: 'MI/ExportExcelToEmail',\r\n exportDatabaseExcelChunks: 'MI/DownloadBlobAsync',\r\n\r\n};\r\n","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router, ActivatedRoute, Route } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { BaseService } from '../services/base/base.service';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(private authService: AuthService, private router: Router, private currentRoute: ActivatedRoute) {}\r\n\r\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n // If the user is authenticated, then continue\r\n if (await this.authService.checkSessionAuth()) {\r\n return true;\r\n }\r\n // if()\r\n\r\n // Else redirect to login with return url\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n }\r\n\r\n async canLoad(route: Route) {\r\n // if (await this.authService.checkSessionAuth()) {\r\n // return true;\r\n // }\r\n const returnUrl = this.currentRoute.snapshot.queryParams['returnUrl'];\r\n this.router.navigate(['/login'], { queryParams: { returnUrl } });\r\n }\r\n}\r\n","export class AccessLevel {\r\n levels: Array;\r\n constructor(obj) {\r\n this.levels = obj.map(i => new NestedItem(i));\r\n }\r\n}\r\n\r\nclass NestedItem {\r\n name: string;\r\n type: string;\r\n data: Array;\r\n constructor(nestedObj) {\r\n this.name = nestedObj.Name;\r\n this.type = nestedObj.Type;\r\n this.data = nestedObj.Data ? nestedObj.Data.map(i => new NestedItem(i)) : null;\r\n }\r\n}\r\n","export class FilterItem {\r\n public key;\r\n public displayName;\r\n public chipName;\r\n public filtervalue;\r\n public filterkey;\r\n public filterChipName\r\n constructor(value, public disabled: boolean = false, public singleSelect: boolean = false, isCurrencyFilter: boolean = false) {\r\n if (typeof value === 'string') {\r\n this.key = this.displayName = value;\r\n } else {\r\n this.key = value.Key;\r\n if (isCurrencyFilter) {\r\n this.displayName = `${value.Key} - ${value.Description}`;\r\n } else {\r\n this.displayName = value.Name;\r\n }\r\n }\r\n\r\n if (isCurrencyFilter) {\r\n this.chipName = this.key;\r\n } else {\r\n this.chipName = this.key === 'Next days' ? 'Next days - 180' : this.displayName;\r\n }\r\n this.filtervalue = this.displayName;\r\n this.filterkey = this.key;\r\n this.filterChipName = this.chipName;\r\n }\r\n}\r\n\r\nexport class FilterChip {\r\n public selected: boolean;\r\n public value: Array;\r\n constructor(\r\n public name: string,\r\n public displayName: string,\r\n public isSingleSelect: boolean,\r\n value: string | object,\r\n private totalRecords: number = 0,\r\n public removable: boolean = true\r\n ) {\r\n this.selected = !this.removable;\r\n this.value = value == undefined ? null : [new FilterItem(value)];\r\n }\r\n}\r\n\r\nexport class FilterConfigItem {\r\n public type: string;\r\n constructor(public key: string, public displayName: string, public isSingleSelect: boolean, public fixedValues: boolean) {\r\n if (key === 'TimePeriod') {\r\n this.type = 'CUSTOM_DATE_RANGE';\r\n } else if (isSingleSelect) {\r\n this.type = 'SINGLE_SELECT';\r\n } else {\r\n this.type = 'AUTOCOMPLETE_DIV';\r\n }\r\n }\r\n}\r\n","export class SavedFilters {\r\n public renewalFilters: Array;\r\n public nonRenewalFilters: Array;\r\n constructor(obj) {\r\n this.renewalFilters = [];\r\n this.nonRenewalFilters = [];\r\n for (const item of obj) {\r\n if (item['PageName'] === 'Renewal') {\r\n this.renewalFilters.push(new SavedFilterItem(item));\r\n } else if (item['PageName'] === 'Producers&Markets') {\r\n this.nonRenewalFilters.push(new SavedFilterItem(item));\r\n }\r\n }\r\n }\r\n}\r\n\r\nclass SavedFilterItem {\r\n public setName: string;\r\n public filterList: string;\r\n public filterDisplayList: string;\r\n public isDefault: boolean;\r\n constructor(obj) {\r\n this.setName = obj.FilterSetName;\r\n this.filterDisplayList = '';\r\n this.filterList = JSON.parse(obj.FilterSet);\r\n this.isDefault = obj.IsDefault;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'negativeValue'\r\n})\r\nexport class NegativeValuePipe implements PipeTransform {\r\n transform(value: number | string, suffix: string = '', prefix: string = '', type: string = '', decimalFormat: number = 2): string {\r\n if (value === null) {\r\n return 'TBC';\r\n }\r\n const tempValue = typeof value == 'number' ? value : parseFloat(value);\r\n const isNegative = tempValue < 0;\r\n const absValue = Math.abs(tempValue);\r\n let formattedValue;\r\n let divisionFormat = 0;\r\n let extension = '';\r\n\r\n if (suffix === '%') {\r\n formattedValue = Math.round(absValue);\r\n decimalFormat = 0;\r\n } else if (type.toLowerCase() === 'm') {\r\n divisionFormat = 2;\r\n decimalFormat = 2; // For all explicit millions, 2 decimal values\r\n extension = 'm';\r\n } else if (type.toLowerCase() === 'k') {\r\n divisionFormat = 1;\r\n extension = 'k';\r\n } else if (absValue >= 1e6) {\r\n divisionFormat = 2;\r\n extension = 'm';\r\n } else if (absValue > 1e3) {\r\n divisionFormat = 1;\r\n extension = 'k';\r\n }\r\n\r\n const dividend = Math.pow(10, 3 * divisionFormat);\r\n const decimalSeparator = Math.pow(10, decimalFormat);\r\n formattedValue = Math.round((absValue * decimalSeparator) / dividend) / decimalSeparator + '';\r\n\r\n // check for only 1 decimal digit present in million type (0.9 => 0.90, 0 => 0.0, 0.1 => 0.1)\r\n if (decimalFormat > 0) {\r\n formattedValue = formattedValue + (formattedValue.indexOf('.') === -1 ? '.' : '');\r\n const diff = decimalFormat - formattedValue.split('.')[1].length;\r\n formattedValue = formattedValue + '0'.repeat(diff);\r\n }\r\n\r\n formattedValue = formattedValue.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n\r\n // let returnValue = tempValue > 0 ? `${prefix}${tempValue}${suffix}` : `(${prefix}${tempValue * -1}${suffix})`\r\n return `${prefix}${formattedValue}${extension}${suffix}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { FilterService } from '../services/filter/filter.service';\r\nimport * as moment from 'moment';\r\nimport { DashletService } from '../services/dashlet/dashlet.service';\r\n@Pipe({\r\n name: 'startAndEndDate'\r\n})\r\nexport class StartAndEndDatePipe implements PipeTransform {\r\n constructor(private filterService: FilterService, private dashletService: DashletService) { }\r\n transform(value: any, chipData: any, ...args: unknown[]): unknown {\r\n let formattedText = ''\r\n if (chipData.name == \"TimePeriod\") {\r\n let globalPayload = this.dashletService.globalPayload;\r\n let sortedyearList = globalPayload.timePeriodValues != null ? globalPayload.timePeriodValues.split(\",\").sort() : [];\r\n if (globalPayload.TimePeriod == 'Last 365 Days') {\r\n return formattedText = `${moment(globalPayload.startDate).format(\"MMM YYYY\")} - ${moment(globalPayload.endDate).format(\"MMM YYYY\")}`\r\n } else if (globalPayload.TimePeriod == 'FY') {\r\n if (sortedyearList.length == 1 && globalPayload.startDate == '' && globalPayload.endDate == '') {\r\n return formattedText = `Oct ${sortedyearList[0] - 1} - Sept ${sortedyearList[sortedyearList.length - 1]}`\r\n } else if (sortedyearList.length > 1 && globalPayload.startDate == '' && globalPayload.endDate == '') {\r\n return formattedText = `FY - ${sortedyearList.map(item => { return item.slice(-2) }).join(\",\")}`\r\n } else if (globalPayload.timePeriodValues == null) {\r\n return formattedText = `${moment(globalPayload.startDate).format(\"MMM YYYY\")} - ${moment(globalPayload.endDate).format(\"MMM YYYY\")}`\r\n } else if (sortedyearList.length > 0 && globalPayload.endDate !== '') {\r\n return formattedText = `FY - ${sortedyearList.map(item => { return item.slice(-2) }).join(\",\")},${this.filterService.yearList[0].toString().slice(-2)}`\r\n }\r\n }\r\n else if (globalPayload.TimePeriod == 'CY') {\r\n if (sortedyearList.length == 1 && globalPayload.startDate == '' && globalPayload.endDate == '') {\r\n return formattedText = `Jan ${sortedyearList[0]} - Dec ${sortedyearList[sortedyearList.length - 1]}`\r\n } else if (sortedyearList.length > 1 && globalPayload.startDate == '' && globalPayload.endDate == '') {\r\n return formattedText = `CY - ${sortedyearList.map(item => { return item.slice(-2) }).join(\",\")}`\r\n } else if (globalPayload.timePeriodValues == null) {\r\n return formattedText = `${moment(globalPayload.startDate).format(\"MMM YYYY\")} - ${moment(globalPayload.endDate).format(\"MMM YYYY\")}`\r\n } else if (sortedyearList.length > 0 && globalPayload.endDate !== '') {\r\n return formattedText = `CY - ${sortedyearList.map(item => { return item.slice(-2) }).join(\",\")},${this.filterService.yearList[0].toString().slice(-2)}`\r\n }\r\n }\r\n else {\r\n return formattedText = `${moment(globalPayload.startDate).format(\"MMM YYYY\")} - ${moment(globalPayload.endDate).format(\"MMM YYYY\")}`\r\n }\r\n } else {\r\n return formattedText = value;\r\n }\r\n return formattedText;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalyticsService {\r\n constructor() {}\r\n\r\n addGoogleAnalytics(trackingCode) {\r\n // Global site tag (gtag.js) - Google Analytics\r\n const analyticsScript = document.createElement('script');\r\n analyticsScript.src = 'https://www.googletagmanager.com/gtag/js?id=' + trackingCode;\r\n document.head.appendChild(analyticsScript);\r\n\r\n const script = document.createElement('script');\r\n script.innerHTML = `//const profile = JSON.parse(localStorage.getItem('userProfile'));\r\n //const customUserId = profile.firstName + profile.lastName;\r\n window.dataLayer = window.dataLayer || [];\r\n function gtag(){dataLayer.push(arguments);}\r\n gtag('js', new Date());\r\n gtag('config', '${trackingCode}');`;\r\n document.head.appendChild(script);\r\n }\r\n\r\n addHotJar(trackingCode) {\r\n const hotJarScript = document.createElement('script');\r\n hotJarScript.innerHTML = `(function(h,o,t,j,a,r){\r\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\r\n h._hjSettings={hjid:'${trackingCode}',hjsv:6};\r\n a=o.getElementsByTagName('head')[0];\r\n r=o.createElement('script');r.async=1;\r\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\r\n a.appendChild(r);\r\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');`;\r\n document.head.appendChild(hotJarScript);\r\n\r\n // Install this snippet AFTER the Hotjar tracking code.\r\n // const userDataScript = document.createElement('script');\r\n // userDataScript.innerHTML =\r\n // `var userId = 'Test user' || null; // Replace your_user_id with your own if available.\r\n // window.hj('identify', userId, {\r\n // Role: 'Admin'\r\n // // Add your own custom attributes here. Some EXAMPLES:\r\n // // 'Signed up': '2019—06-20Z', // Signup date in ISO-8601 format.\r\n // // 'Last purchase category': 'Electronics', // Send strings with quotes around them.\r\n // // 'Total purchases': 15, // Send numbers without quotes.\r\n // // 'Last purchase date': '2019-06-20Z', // Send dates in ISO-8601 format.\r\n // // 'Last refund date': null, // Send null when no value exists for a user.\r\n // });`;\r\n // document.head.appendChild(userDataScript);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { URL_LIST } from '../constants/url-list';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { AppConfig } from 'src/app/app.config';\r\nimport { AuthService } from './auth.service';\r\nimport * as moment from 'moment';\r\ndeclare global {\r\n interface Navigator {\r\n msSaveBlob?: (blob: any, defaultName?: string) => boolean;\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiService {\r\n constructor(private http: HttpClient, private router: Router, private appConfig: AppConfig, private authService: AuthService) { }\r\n\r\n private ENV_URL = this.appConfig.apiUrl;\r\n private urlList = URL_LIST;\r\n\r\n get(type, payload?): Observable {\r\n return this.http.get(this.getUrl(type, payload)).pipe(\r\n map(res => this.handleResponse(res)),\r\n catchError(err => this.handleError(err))\r\n );\r\n }\r\n\r\n post(type, req): Observable {\r\n return this.http.post(this.getUrl(type), req).pipe(\r\n map(res => this.handleResponse(res)),\r\n catchError(err => this.handleError(err))\r\n );\r\n }\r\n\r\n put(type, req): Observable {\r\n return this.http.put(this.getUrl(type), req).pipe(\r\n map(res => this.handleResponse(res)),\r\n catchError(err => this.handleError(err))\r\n );\r\n }\r\n\r\n downloadFile(type, fileName, req, params?): Observable {\r\n return this.http.post(this.getUrl(type, params), req, { responseType: 'blob' }).pipe(\r\n map(res => this.handleFileResponse(res, type === 'exportDatabaseExcelChunks' ? `${moment().format('DD-MM-YYYY')}_Dashlets_Data` : fileName)),\r\n catchError(err => this.handleError(err))\r\n );\r\n }\r\n\r\n getUrl(type, payload?) {\r\n let url = this.ENV_URL + this.urlList[type];\r\n if (payload) {\r\n url += this.getQueryString(payload);\r\n }\r\n return url;\r\n }\r\n\r\n getQueryString(payload) {\r\n let query = Object.keys(payload)\r\n .map(k => {\r\n return encodeURIComponent(k) + '=' + encodeURIComponent(payload[k]);\r\n })\r\n .join('&');\r\n query = `?${query}`;\r\n return query;\r\n }\r\n\r\n // Handle Response for Download File\r\n handleFileResponse(response, fileName) {\r\n // this.authService.setSessionTimer();\r\n // For Custom Server Error\r\n if (response.error) {\r\n this.handleCustomServerError(response);\r\n } else {\r\n const file = new Blob([response], { type: response.type });\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(file, fileName);\r\n } else {\r\n const a = document.createElement('a');\r\n document.body.appendChild(a);\r\n const fileURL = URL.createObjectURL(file);\r\n a.href = fileURL;\r\n a.download = fileName;\r\n a.click();\r\n }\r\n }\r\n }\r\n\r\n // Handle Response from the API\r\n handleResponse(response) {\r\n // this.authService.setSessionTimer();\r\n // For Custom Server Error\r\n if (response && response.error) {\r\n this.handleCustomServerError(response);\r\n } else {\r\n return response;\r\n }\r\n }\r\n\r\n // Handle Error from the API\r\n handleError(error) {\r\n // this.authService.setSessionTimer();\r\n // For Authorised Error when Session Timed Out\r\n if (error.status === 401) {\r\n this.authService.doLogout();\r\n return [];\r\n } else {\r\n const errMsg = error.message || 'Server Error';\r\n return throwError(errMsg);\r\n }\r\n }\r\n\r\n // Handle Custom Server Error\r\n handleCustomServerError(response) {\r\n // TODO: Format the Custom Error as per requirement Later\r\n // const error = { error: response.error, message: response.message };\r\n throw new Error(response.message);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { AppConfig } from 'src/app/app.config';\r\n\r\n@Injectable()\r\nexport class AppInsightsService {\r\n private config: AppInsights.IConfig = {\r\n instrumentationKey: this.appConfig.appInsights.instrumentationKey\r\n };\r\n\r\n constructor(private appConfig: AppConfig) {\r\n this.setAppInsightsData();\r\n }\r\n\r\n public logPageView(\r\n name: string,\r\n url?: string,\r\n properties?: { [key: string]: string },\r\n measurements?: { [key: string]: number },\r\n duration?: number\r\n ) {\r\n AppInsights.trackPageView(name, url, this.AddGlobalProperties(properties), measurements, duration);\r\n }\r\n\r\n public logEvent(name: string, properties?: { [key: string]: string }, measurements?: { [key: string]: number }) {\r\n AppInsights.trackEvent(name, this.AddGlobalProperties(properties), measurements);\r\n }\r\n\r\n public logError(error: Error, properties?: { [key: string]: string }, measurements?: { [key: string]: number }) {\r\n AppInsights.trackException(error, null, this.AddGlobalProperties(properties), measurements);\r\n }\r\n\r\n private AddGlobalProperties(properties?: { [key: string]: string }): { [key: string]: string } {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n\r\n // add your custom properties such as app version\r\n\r\n return properties;\r\n }\r\n\r\n public setAppInsightsData() {\r\n if (!AppInsights.config) {\r\n AppInsights.downloadAndSetup(this.config);\r\n AppInsights.clearAuthenticatedUserContext();\r\n this.setAuthenticatedUserContext(localStorage.getItem('userEmail'));\r\n }\r\n }\r\n\r\n public setAuthenticatedUserContext(userId) {\r\n AppInsights.setAuthenticatedUserContext(userId);\r\n }\r\n}\r\n","// This service to handle authentication services for the application\r\nimport { Injectable } from '@angular/core';\r\n// import { OktaAuthService } from '@okta/okta-angular';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SessionTimeOutDialogComponent } from 'src/app/shared/components/session-time-out-dialog/session-time-out-dialog.component';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AuthConfig } from 'src/assets/auth-config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n constructor(private router: Router, private dialog: MatDialog, private authService: MsalService, private authConfig: AuthConfig) {}\r\n\r\n sessionTimer;\r\n sessionTime = 3000000;\r\n\r\n // Reset the settings, logout from okta if not logged out, redirect to login\r\n async doLogout() {\r\n localStorage.setItem('userProfile', JSON.stringify({}));\r\n localStorage.setItem('userEmail', '');\r\n localStorage.setItem('userId', '');\r\n localStorage.setItem('renewalNoteVisible', null);\r\n localStorage.setItem('browserNoteVisible', null);\r\n localStorage.setItem('resolutionNoteVisible', null);\r\n // const auth = await this.oktaAuth.isAuthenticated();\r\n // if (auth) {\r\n // await this.oktaAuth.logout();\r\n // await this.authService.logoutRedirect();\r\n // }\r\n await this.authService.logoutRedirect();\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n getLoginUserDetails() {\r\n return this.authService.instance.getAllAccounts();\r\n }\r\n\r\n async checkSessionAuth() {\r\n // return (await this.oktaAuth['oktaAuth'].session.exists()) && (await this.oktaAuth.isAuthenticated());\r\n // this.authService.instance.getAllAccounts();\r\n return this.authService.instance.getAllAccounts().length > 0;\r\n }\r\n\r\n async refreshSession() {\r\n // await this.oktaAuth['oktaAuth'].session.refresh();\r\n }\r\n\r\n setSessionTimer() {\r\n if (this.sessionTimer) {\r\n clearTimeout(this.sessionTimer);\r\n }\r\n this.sessionTimer = setTimeout(() => {\r\n const dialogRef = this.dialog.open(SessionTimeOutDialogComponent, {\r\n width: '340px',\r\n disableClose: true,\r\n data: {}\r\n });\r\n }, this.sessionTime);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiService } from '../api.service';\r\nimport { DASHBOARD_NAME } from '../../constants/common-constants';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccessLevel } from '../../models/access-level.model';\r\nimport { GoogleAnalytics } from '@JFrogPackage/analytics-lib';\r\nimport { AppConfig } from 'src/app/app.config';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseService {\r\n constructor(private apiService: ApiService, private appConfig: AppConfig, private router: Router) { }\r\n public lastLoggedInTime: BehaviorSubject = new BehaviorSubject(null);\r\n public isMDOrAboveSub: BehaviorSubject = new BehaviorSubject(null);\r\n public isDefaultPageView: BehaviorSubject = new BehaviorSubject(null);\r\n public isLoginSuccess: BehaviorSubject = new BehaviorSubject(false);\r\n public matTabChange: BehaviorSubject = new BehaviorSubject(null);\r\n IsMDOrAbove;\r\n\r\n\r\n\r\n reportAnIssue(formData) {\r\n const payload = {\r\n dashboard: DASHBOARD_NAME,\r\n userEmail: localStorage.userEmail,\r\n ...formData\r\n };\r\n return this.apiService.post('reportIssue', payload);\r\n }\r\n\r\n async setLoggedInTime(updateLastLogin) {\r\n return new Promise((resolve, reject) => {\r\n const profile = JSON.parse(localStorage.getItem('userProfile'));\r\n const payload = {\r\n firstName: profile.firstName,\r\n lastName: profile.lastName ? profile.lastName : '\"\"',\r\n middleName: '\"\"',\r\n emailID: profile.email,\r\n loginID: profile.login,\r\n updateLastLogin\r\n };\r\n this.apiService.get('loginTime', payload).subscribe(\r\n data => {\r\n this.setLastLoggedInTime(data);\r\n resolve();\r\n },\r\n err => {\r\n console.log('error getting time', err);\r\n resolve();\r\n }\r\n );\r\n });\r\n }\r\n\r\n private setLastLoggedInTime(dateTimeData) {\r\n const datetime = new Date(dateTimeData);\r\n const date = datetime.toLocaleDateString('en-GB');\r\n const time = datetime.toLocaleTimeString('en-GB');\r\n const newFormat = `${date} ${time}`;\r\n this.lastLoggedInTime.next(newFormat);\r\n }\r\n\r\n getBUAccessLevelInfo() {\r\n const payload = {\r\n email: localStorage.getItem('userEmail'),\r\n dashboard: DASHBOARD_NAME,\r\n page: 'UserBUAccessLevel',\r\n dashlet: 'UserBUAccessLevel',\r\n dashletTypeId: 1\r\n };\r\n return this.apiService.get('accessLevel', payload).pipe(\r\n map(data => {\r\n if (!data) {\r\n this.IsMDOrAbove = false;\r\n } else {\r\n this.IsMDOrAbove = data['IsMDOrAbove'];\r\n }\r\n this.isMDOrAboveSub.next(this.IsMDOrAbove);\r\n return new AccessLevel(data.Data);\r\n }),\r\n map(data => data.levels)\r\n );\r\n }\r\n\r\n submitFeedback(rating, comments) {\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n rating,\r\n comments\r\n };\r\n return this.apiService.post('submitFeedback', payload);\r\n }\r\n parseToBoolean(value) {\r\n if (value) {\r\n return value.toString().toLowerCase() === 'true';\r\n }\r\n return false;\r\n }\r\n\r\n getUserMDSDetails() {\r\n const profile = JSON.parse(localStorage.getItem('userProfile'));\r\n const payload = {\r\n email: profile.email,\r\n page: 'UserMDSInformation',\r\n dashlet: 'UserMDSInformation',\r\n dashletTypeId: 1\r\n };\r\n\r\n this.apiService.get('userMDSDetails', payload).subscribe(data => {\r\n if (data) {\r\n localStorage.setItem('userId', data);\r\n if (this.parseToBoolean(this.appConfig.googleAnalytics.trackingOn)) {\r\n if (!this.isDefaultPageView.getValue()) {\r\n GoogleAnalytics.addCustomGAEvents('page_view', {\r\n page_title: this.router.url,\r\n page_location: this.router.url,\r\n userId: data,\r\n pageName: this.router.url\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiService } from '../api.service';\r\nimport { FilterService } from '../filter/filter.service';\r\nimport { PAGES_TAB, DASHBOARD_NAME } from '../../constants/common-constants';\r\nimport { forkJoin, BehaviorSubject } from 'rxjs';\r\nimport { TableService } from '../table/table.service';\r\nimport { BaseService } from '../base/base.service';\r\nimport * as moment from 'moment';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashletService {\r\n private _pageName = 'Producers&Markets';\r\n private _dashboardName = DASHBOARD_NAME;\r\n private menuTabs = [...PAGES_TAB];\r\n chartInstanceSubject: BehaviorSubject = new BehaviorSubject(null);\r\n dashletDataSubject: BehaviorSubject = new BehaviorSubject([]);\r\n selectedPage: BehaviorSubject = new BehaviorSubject(null);\r\n exhibitGwpValue: BehaviorSubject = new BehaviorSubject(0);\r\n firstYearGwpValue: BehaviorSubject = new BehaviorSubject(0);\r\n secondYearGwpValue: BehaviorSubject = new BehaviorSubject(0);\r\n thirdYearGwpValue: BehaviorSubject = new BehaviorSubject(0);\r\n fourthYearGwpValue: BehaviorSubject = new BehaviorSubject(0);\r\n fifthYearGwpValue: BehaviorSubject = new BehaviorSubject(0);\r\n public dataFormat: BehaviorSubject = new BehaviorSubject('chart');\r\n // Variable to store all active dashlet info -> name, title, tableData, chartinstance\r\n private _activeDashletTypes = {};\r\n\r\n isPDFDisable = new BehaviorSubject(false);\r\n globalPayload;\r\n constructor(\r\n private apiService: ApiService,\r\n private filterService: FilterService,\r\n private tableService: TableService,\r\n private baseService: BaseService\r\n ) {\r\n // let selection = this.menuTabs.find(item => item.route === this.router.url);\r\n // if (this.router.url === this.renewalTab.route) {\r\n // selection = this.renewalTab;\r\n // } else\r\n // if (!selection) {\r\n // selection = this.menuTabs[0];\r\n // }\r\n // this.setPageName(selection.pageName);\r\n }\r\n setPageName(name) {\r\n this._pageName = name;\r\n this.selectedPage.next(name.toLowerCase());\r\n // if (name === this.riskDetailsTab.pageName) {\r\n // this.isPDFDisable.next(true);\r\n // } else {\r\n this.isPDFDisable.next(false);\r\n // }\r\n // this.dashletDataSubject.next([]);\r\n }\r\n getPageName() {\r\n return this._pageName;\r\n }\r\n\r\n getDashletData(payloadConfig, pageName, queryTypeId = 1, isTotalRequired?, applyStaticFilters?, removedPayload?) {\r\n const rangeData = this.filterService.getDateRangeValues();\r\n let appliedFilters = this.filterService.getSelectedFilters();\r\n appliedFilters = this.filterService.getFYRate(appliedFilters);\r\n // let StaticFilters = applyStaticFilters ? true : false;\r\n\r\n if (!applyStaticFilters) {\r\n appliedFilters.appliedFilters.find(filter => {\r\n // Check if any of the producer related filters is applied \r\n if (['ProducerGroupName', 'ProducerSubGroupName', 'ProducerRegion', 'ProducerCountry',\r\n 'ProducerState'].indexOf(filter.key) > -1 || payloadConfig.dashlet == 'Producers') {\r\n if (payloadConfig.dashlet !== 'GWPExhibit' || ['IndustrySector', 'IndustryType'].indexOf(filter.key) < 0){\r\n applyStaticFilters = true;\r\n }\r\n }\r\n });\r\n }\r\n //Apply Static Payload when we select any of the producer filters and also for Producer Location Map & Producer Office Map\r\n if (applyStaticFilters && removedPayload !== 'Producer') {\r\n let producerPayload = [\r\n { key: 'ClientIndustrySector', value: '\"Insurance\"', operator: 'IN' },\r\n {\r\n key: 'ClientIndustryType',\r\n value:\r\n '\"Insurance\",\"Insurance Broker\",\"Insurance Intermediary\",\"MGA\",\"Property Program\",\"Risk Management\",\"Risk Retention Group\"',\r\n operator: 'IN'\r\n }\r\n ];\r\n appliedFilters.appliedFilters = [...appliedFilters.appliedFilters, ...producerPayload];\r\n }\r\n\r\n\r\n if (removedPayload === \"Insured\") {\r\n //remove Insured Location Country, Insured Region Client Region , Client Country and Producer State Filter For Producer Location Map\r\n removedPayload = appliedFilters.appliedFilters.filter(filterObj => {\r\n return ![\"InsuredCountry\", \"InsuredContinent\", \"ProducerState\", \"ClientRegion\", \"ClientCountry\"].includes(filterObj.key);\r\n })\r\n appliedFilters.appliedFilters = [...removedPayload]\r\n } else if (removedPayload === \"Producer\") {\r\n //remove Producer Location Country, Producer Region and Producer State Filters For Insured Location Map\r\n removedPayload = appliedFilters.appliedFilters.filter(filterObj => {\r\n return ![\"ProducerRegion\", \"ProducerCountry\", \"ProducerState\", \"ClientRegion\", \"ClientCountry\", \"ClientIndustrySector\", \"ClientIndustryType\"].includes(filterObj.key);\r\n })\r\n appliedFilters.appliedFilters = [...removedPayload]\r\n } else if (removedPayload === 'Client') {\r\n //remove Producer Location Country, Producer Region and Producer State Filters For Client Location Map\r\n removedPayload = appliedFilters.appliedFilters.filter(filterObj => {\r\n return ![\"ProducerRegion\", \"ProducerCountry\", \"ProducerState\", \"InsuredCountry\", \"InsuredContinent\", \"ClientIndustrySector\", \"ClientIndustryType\"].includes(filterObj.key);\r\n })\r\n appliedFilters.appliedFilters = [...removedPayload]\r\n } else if (removedPayload === \"ProducerOffice\") {\r\n removedPayload = appliedFilters.appliedFilters.filter(filterObj => {\r\n return ![\"InsuredCountry\", \"InsuredContinent\", \"ClientRegion\", \"ClientCountry\"].includes(filterObj.key);\r\n })\r\n appliedFilters.appliedFilters = [...removedPayload]\r\n }\r\n // const dateRange = this.filterService.getSelectedFilterDateRange()\r\n if (appliedFilters['TimePeriod'] == 'CY') {\r\n appliedFilters['startDate'] = this.filterService.FYCYDates.startDate\r\n appliedFilters['endDate'] = this.filterService.FYCYDates.endDate\r\n if (appliedFilters['timePeriodValues'] && appliedFilters['timePeriodValues'].includes(moment().format('YYYY'))) {\r\n appliedFilters['timePeriodValues'] = appliedFilters['timePeriodValues'].split(',').filter(item => item != moment().format('YYYY')).join()\r\n }\r\n } else if (appliedFilters['TimePeriod'] == 'FY') {\r\n appliedFilters['startDate'] = this.filterService.FYCYDates.startDate\r\n appliedFilters['endDate'] = this.filterService.FYCYDates.endDate\r\n if (appliedFilters['timePeriodValues'] && appliedFilters['timePeriodValues'].includes(moment().add(1, 'years').format('YYYY'))) {\r\n appliedFilters['timePeriodValues'] = appliedFilters['timePeriodValues'].split(',').filter(item => item != moment().add(1, 'years').format('YYYY')).join();\r\n }\r\n }\r\n\r\n let callsList = [\r\n {\r\n userEmail: localStorage.getItem('userEmail'),\r\n userMDSId: localStorage.getItem('userId'),\r\n firstName: localStorage.getItem('userProfile') && JSON.parse(localStorage.getItem('userProfile')).firstName,\r\n lastName: localStorage.getItem('userProfile') && JSON.parse(localStorage.getItem('userProfile')).lastName,\r\n isExternal: 'false',\r\n dashboard: this._dashboardName,\r\n page: pageName ? pageName : this._pageName,\r\n queryTypeId,\r\n IsMDOrAbove: this.baseService.IsMDOrAbove,\r\n ...rangeData,\r\n ...payloadConfig,\r\n ...appliedFilters\r\n }\r\n ];\r\n\r\n if (isTotalRequired) {\r\n callsList.push({ ...callsList[0], queryTypeId: 5 });\r\n }\r\n this.globalPayload = callsList[0]\r\n callsList = callsList.map(call => this.apiService.post('dashlet', call));\r\n return forkJoin(callsList);\r\n }\r\n\r\n exportToExcelService(payloadConfig, fileName, queryTypeId = 1, exportType = 'excel') {\r\n const rangeData = this.filterService.getDateRangeValues();\r\n let appliedFilters = this.filterService.getSelectedFilters();\r\n appliedFilters = this.filterService.getFYRate(appliedFilters);\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n userMDSId: localStorage.getItem('userId'),\r\n firstName: localStorage.getItem('userProfile') && JSON.parse(localStorage.getItem('userProfile')).firstName,\r\n lastName: localStorage.getItem('userProfile') && JSON.parse(localStorage.getItem('userProfile')).lastName,\r\n isExternal: 'false',\r\n dashboard: this._dashboardName,\r\n page: this._pageName,\r\n toCurrency: 'GBP',\r\n IsMDOrAbove: this.baseService.IsMDOrAbove,\r\n queryTypeId,\r\n exportType,\r\n ...rangeData,\r\n ...payloadConfig,\r\n ...appliedFilters,\r\n timePeriodNextDays: this.filterService.nextDaysValue.value\r\n };\r\n if (payload.dashlet !== 'BusinessUnits' && payload.dashlet !== 'StrongerTogether' && payload.dashlet !== 'StrongerTogetherProducers') {\r\n delete payload['startDate'];\r\n delete payload['endDate'];\r\n }\r\n let applyStaticFilters;\r\n payload.appliedFilters.find(filter => {\r\n // Added Static Payload when we select any of the producer filters\r\n if (['ProducerGroupName', 'ProducerSubGroupName', 'ProducerRegion', 'ProducerCountry', 'IndustrySector', 'IndustryType', 'ProducerState'].indexOf(filter.key) > -1 || payload.dashlet == 'Producers') {\r\n if (payload.dashlet !== 'GWPExhibit' || ['IndustrySector', 'IndustryType', 'ProducerState'].indexOf(filter.key) < 0){\r\n applyStaticFilters = true;\r\n }\r\n }\r\n });\r\n if (applyStaticFilters) {\r\n let producerPayload = [\r\n { key: 'ClientIndustrySector', value: '\"Insurance\"', operator: 'IN' },\r\n {\r\n key: 'ClientIndustryType',\r\n value:\r\n '\"Insurance\",\"Insurance Broker\",\"Insurance Intermediary\",\"MGA\",\"Property Program\",\"Risk Management\",\"Risk Retention Group\"',\r\n operator: 'IN'\r\n }\r\n ];\r\n payload.appliedFilters = [...payload.appliedFilters, ...producerPayload];\r\n }\r\n return this.apiService.downloadFile('exportToExcel', fileName, payload);\r\n }\r\n\r\n exportToExcelGlobalService(dashletArr, fileName) {\r\n const rangeData = this.filterService.getDateRangeValues();\r\n let appliedFilters = this.filterService.getSelectedFilters();\r\n appliedFilters = this.filterService.getFYRate(appliedFilters);\r\n const dashlets = dashletArr.map(item => {\r\n // const dashletData = this.getSingleDashletData(item);\r\n const payload = {\r\n dashletName: item,\r\n sortColumnKey: '',\r\n sortDirection: 0,\r\n selectedEntity: ''\r\n };\r\n\r\n // if (dashletData.name === 'GWPbyYear' || dashletData.name === 'RRbyYear') {\r\n // payload['selectedEntity'] = dashletData.selectedEntity;\r\n // }\r\n return payload;\r\n });\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n userMDSId: localStorage.getItem('userId'),\r\n firstName: localStorage.getItem('userProfile') && JSON.parse(localStorage.getItem('userProfile')).firstName,\r\n lastName: localStorage.getItem('userProfile') && JSON.parse(localStorage.getItem('userProfile')).lastName,\r\n isExternal: 'false',\r\n dashboard: this._dashboardName,\r\n page: this._pageName,\r\n queryTypeId: 3,\r\n startDate: rangeData.startDate,\r\n endDate: rangeData.endDate,\r\n pageIndex: 1,\r\n pageSize: 15,\r\n toCurrency: 'GBP',\r\n exportType: 'excel',\r\n IsMDOrAbove: this.baseService.IsMDOrAbove,\r\n dashlets,\r\n ...appliedFilters\r\n };\r\n\r\n let applyStaticFilters;\r\n payload.appliedFilters.find(filter => {\r\n // Added Static Payload when we select any of the producer filters\r\n if (['ProducerGroupName', 'ProducerSubGroupName', 'ProducerRegion', 'ProducerCountry', 'ProducerState'].indexOf(filter.key) > -1 || payload.dashlet == 'Producers') {\r\n if (payload.dashlet !== 'GWPExhibit' || ['IndustrySector', 'IndustryType'].indexOf(filter.key) < 0){\r\n applyStaticFilters = true;\r\n }\r\n }\r\n });\r\n if (applyStaticFilters) {\r\n let producerPayload = [\r\n { key: 'ClientIndustrySector', value: '\"Insurance\"', operator: 'IN' },\r\n {\r\n key: 'ClientIndustryType',\r\n value:\r\n '\"Insurance\",\"Insurance Broker\",\"Insurance Intermediary\",\"MGA\",\"Property Program\",\"Risk Management\",\"Risk Retention Group\"',\r\n operator: 'IN'\r\n }\r\n ];\r\n payload.appliedFilters = [...payload.appliedFilters, ...producerPayload];\r\n }\r\n\r\n\r\n return this.apiService.downloadFile('exportGlobalExcel', fileName, payload);\r\n }\r\n\r\n\r\n\r\n databaseExportService(dashletArr, fileName, sendEmail) {\r\n const rangeData = this.filterService.getDateRangeValues();\r\n let appliedFilters = this.filterService.getSelectedFilters();\r\n appliedFilters = this.filterService.getFYRate(appliedFilters);\r\n const dashlets = dashletArr.map(item => {\r\n const dashletData = this.getSingleDashletData(item);\r\n const payload = {\r\n dashletName: item,\r\n sortColumnKey: '',\r\n sortDirection: 0,\r\n selectedEntity: dashletData.selectedEntity\r\n };\r\n\r\n if (dashletData.name === 'GWPByYear' || dashletData.name === 'GWPExhibit') {\r\n payload['selectedEntity'] = '';\r\n }\r\n return payload;\r\n });\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n userMDSId: localStorage.getItem('userId'),\r\n firstName: localStorage.getItem('userProfile') && JSON.parse(localStorage.getItem('userProfile')).firstName,\r\n lastName: localStorage.getItem('userProfile') && JSON.parse(localStorage.getItem('userProfile')).lastName,\r\n isExternal: 'false',\r\n dashboard: this._dashboardName,\r\n page: this._pageName,\r\n queryTypeId: 3,\r\n startDate: rangeData.startDate,\r\n endDate: rangeData.endDate,\r\n pageIndex: 1,\r\n pageSize: 15,\r\n toCurrency: 'GBP',\r\n exportType: 'excel',\r\n IsMDOrAbove: this.baseService.IsMDOrAbove,\r\n dashlets,\r\n ...appliedFilters,\r\n fileName: 'Global Export'\r\n };\r\n let applyStaticFilters;\r\n payload.appliedFilters.find(filter => {\r\n // Added Static Payload when we select any of the producer filters\r\n if (['ProducerGroupName', 'ProducerSubGroupName', 'ProducerRegion', 'ProducerCountry', 'ProducerState'].indexOf(filter.key) > -1 || payload.dashlet == 'Producers') {\r\n if (payload.dashlet !== 'GWPExhibit' || ['IndustrySector', 'IndustryType'].indexOf(filter.key) < 0){\r\n applyStaticFilters = true;\r\n }\r\n }\r\n });\r\n if (applyStaticFilters) {\r\n let producerPayload = [\r\n { key: 'ClientIndustrySector', value: '\"Insurance\"', operator: 'IN' },\r\n {\r\n key: 'ClientIndustryType',\r\n value:\r\n '\"Insurance\",\"Insurance Broker\",\"Insurance Intermediary\",\"MGA\",\"Property Program\",\"Risk Management\",\"Risk Retention Group\"',\r\n operator: 'IN'\r\n }\r\n ];\r\n payload.appliedFilters = [...payload.appliedFilters, ...producerPayload];\r\n }\r\n\r\n //SOP and Ranking dashlets Payload if any of the producerGroup/SubGroup or Market/SubMarket filter is applied\r\n let marketOrProducer = payload.appliedFilters.filter(filter => {\r\n return ['ProducerGroupName', 'ProducerSubGroupName', 'PlacingMarket', 'PlacingSubMarket'].indexOf(filter.key) > -1;\r\n });\r\n\r\n if (marketOrProducer.length) {\r\n payload.dashlets = [...payload.dashlets,\r\n ...[{ dashletName: \"MSWExhibit\", sortColumnKey: \"\", sortDirection: 0, selectedEntity: \"\" },\r\n { dashletName: \"RankExhibit\", sortColumnKey: \"\", sortDirection: 0, selectedEntity: \"\" }]]\r\n }\r\n return this.apiService.post('emailGlobalExcel', payload);\r\n }\r\n\r\n mockExportToExcelService(fileName, sasUri) {\r\n const payload = {\r\n fileName,\r\n sasUri,\r\n UserName: localStorage.getItem('userEmail')\r\n };\r\n return this.apiService.downloadFile('exportDatabaseExcelChunks', fileName, {}, payload);\r\n }\r\n\r\n\r\n exportFullScreenService(dashlet, fileName, exportType) {\r\n const rangeData = this.filterService.getDateRangeValues();\r\n let appliedFilters = this.filterService.getSelectedFilters();\r\n appliedFilters = this.filterService.getFYRate(appliedFilters);\r\n const dashletData = this.getSingleDashletData(dashlet);\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n dashboard: this._dashboardName,\r\n page: this._pageName,\r\n dashlet,\r\n queryTypeId: 3,\r\n startDate: rangeData.startDate,\r\n endDate: rangeData.endDate,\r\n pageIndex: 0,\r\n pageSize: 0,\r\n toCurrency: 'GBP',\r\n exportType,\r\n IsMDOrAbove: this.baseService.IsMDOrAbove,\r\n selectedEntity: dashletData.selectedEntity,\r\n sortColumnKey: dashletData.sortColumnName,\r\n sortDirection: dashletData.sortOrder,\r\n ...appliedFilters,\r\n timePeriodNextDays: this.filterService.nextDaysValue.value\r\n };\r\n return this.apiService.downloadFile('exportToExcel', fileName, payload);\r\n }\r\n\r\n getFooterSummaryData() {\r\n let appliedFilters = this.filterService.getSelectedFilters();\r\n appliedFilters = this.filterService.getFYRate(appliedFilters);\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n dashboard: this._dashboardName,\r\n toCurrency: 'GBP',\r\n ...appliedFilters\r\n };\r\n return this.apiService.post('footerInfo', payload);\r\n }\r\n\r\n /* Refactored code for dashlet export logic */\r\n\r\n // Register the dashlet when it is initialised\r\n setDashletActivation(name, title, type, selectedEntity?) {\r\n this._activeDashletTypes[name] = {\r\n name,\r\n title,\r\n type,\r\n chartInstance: null,\r\n tableData: null,\r\n selectedEntity\r\n };\r\n }\r\n // Update the type of dashlet when we toggle\r\n updateDashletType(name, type) {\r\n this._activeDashletTypes[name].type = type;\r\n this.dataFormat.next(type)\r\n }\r\n // Update the dashlet data when dashlet data updated\r\n updateDashletTableData(name, data, sortData, selectedEntity = '') {\r\n this._activeDashletTypes[name].tableData = data;\r\n this._activeDashletTypes[name] = { ...this._activeDashletTypes[name], ...sortData, selectedEntity };\r\n }\r\n // Update the chart instancce when chart instance updated\r\n updateDashletChartData(name, data) {\r\n this._activeDashletTypes[name].chartInstance = data;\r\n }\r\n // Deactivate the dashlet from store when dashlet destroyed\r\n setDashletDeactivation(name) {\r\n delete this._activeDashletTypes[name];\r\n }\r\n // Get names of all the active dashlets\r\n getDashletsNames() {\r\n return Object.keys(this._activeDashletTypes);\r\n }\r\n // Get the info of the dashlet type\r\n getSingleDashletData(type) {\r\n return { ...this._activeDashletTypes[type] };\r\n }\r\n\r\n // Create the pdf table from the displayed table data\r\n createPDFTableData(tableData) {\r\n const tableHead = [];\r\n tableHead.push(tableData.Headers.map(item => item.headerName));\r\n\r\n const tableKeys = tableData.Headers.map(item => item.field);\r\n const tableBody = tableData.Data.map(data => tableKeys.map(key => this.getFormattedPDFTableValue(data[key])));\r\n\r\n let totalData = Object.values(tableData.TotalData);\r\n totalData.shift();\r\n // formatting total data\r\n totalData = totalData.map(item => this.getFormattedPDFTableValue(item));\r\n tableBody.push(totalData);\r\n\r\n return { head: tableHead, body: tableBody };\r\n }\r\n\r\n // Format the number of the table\r\n getFormattedPDFTableValue(value, decimal = 0) {\r\n if (value == null) {\r\n return 'N/A';\r\n } else if (typeof value !== 'number') {\r\n return value;\r\n }\r\n const formatted = Math.abs(value)\r\n .toFixed(decimal)\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n return value < 0 ? `(${formatted})` : formatted;\r\n }\r\n\r\n // Get all dashlets pdf data\r\n getAllDashletPDFData(dashlets) {\r\n const allDashletsData = dashlets.map(dashlet => {\r\n const dashletData = this.getSingleDashletData(dashlet);\r\n if (dashletData.type === 'table') {\r\n dashletData.tableData = this.createPDFTableData(dashletData.tableData);\r\n }\r\n return dashletData;\r\n });\r\n return allDashletsData;\r\n }\r\n\r\n // Get the current filters table data\r\n createPDFFiltersTable() {\r\n const appliedFilters = this.filterService.getFiltersForPDF();\r\n return {\r\n head: [['Filter Name', 'Filter Value']],\r\n body: Object.entries(appliedFilters)\r\n };\r\n }\r\n\r\n getExhibitGwpValue(value) {\r\n this.exhibitGwpValue.next(value);\r\n return value;\r\n }\r\n\r\n getFirstYearGwpValue(value) {\r\n this.firstYearGwpValue.next(value);\r\n return value;\r\n }\r\n\r\n getSecondYearGwpValue(value) {\r\n this.secondYearGwpValue.next(value);\r\n return value;\r\n }\r\n\r\n getThirdYearGwpValue(value) {\r\n this.thirdYearGwpValue.next(value);\r\n return value;\r\n }\r\n\r\n getFourthYearGwpValue(value) {\r\n this.fourthYearGwpValue.next(value);\r\n return value;\r\n }\r\n\r\n getFifthYearGwpValue(value) {\r\n this.fifthYearGwpValue.next(value);\r\n return value;\r\n }\r\n /* Refactored code for dashlet export logic */\r\n\r\n // Old code for export\r\n\r\n // getChartInstance() {\r\n // return this.chartInstanceSubject.value;\r\n // }\r\n\r\n // setChartInstance(chartInstance) {\r\n // this.chartInstanceSubject.next(chartInstance);\r\n // }\r\n\r\n // getPdfData() {\r\n // return this.dashletDataSubject.value;\r\n // }\r\n\r\n // updatePdfData(data) {\r\n // this.dashletDataSubject.next(data);\r\n // }\r\n\r\n // setPdfData(data) {\r\n // const currentValue = this.dashletDataSubject.value;\r\n // const updatedValue = [...currentValue, data];\r\n // this.dashletDataSubject.next(updatedValue);\r\n // }\r\n\r\n // resetPdfData() {\r\n // this.dashletDataSubject.next([]);\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiService } from '../api.service';\r\nimport { FilterChip, FilterConfigItem, FilterItem } from '../../models/filters.model';\r\nimport * as moment from 'moment';\r\nimport { BehaviorSubject, forkJoin } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport {\r\n FIXED_FILTERVALUES_MOCK,\r\n OTHER_PAGE_FILTERS,\r\n RENEWAL_FILTERS,\r\n FILTERS_CONFIG,\r\n FILTER_COUNT_DASHLET_CONFIG\r\n} from '../../constants/filters-config';\r\nimport { Router } from '@angular/router';\r\nimport { PAGES_TAB, DASHBOARD_NAME } from '../../constants/common-constants';\r\nimport { SavedFilters } from '../../models/saved-filters.model';\r\nimport { AppConfig } from 'src/app/app.config';\r\nimport { levelsConfigs } from '../../constants/levels-config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FilterService {\r\n constructor(private apiService: ApiService, private route: Router, private http: HttpClient,\r\n private appConfig: AppConfig,\r\n ) {\r\n // this.setFilterValuesAndSelections(FILTERS_CONFIG);\r\n // this.getFixedFiltersValues();\r\n }\r\n\r\n // * Getter and Setter functions for the filters */\r\n\r\n // To store all filters dropdown data in filter panel\r\n private _filtersData = {};\r\n private set filtersData(val) {\r\n this._filtersData = val;\r\n this.filterValues.next(this._filtersData);\r\n }\r\n private get filtersData() {\r\n return JSON.parse(JSON.stringify(this._filtersData));\r\n }\r\n\r\n public yearValuesListForCYAndFY = '';\r\n public FYCYDates = {\r\n startDate: '',\r\n endDate: ''\r\n }\r\n // To set all the filter selection in the filter panel\r\n private _filterSelection = null;\r\n private set filterSelection(val) {\r\n this._filterSelection = val;\r\n this.selectedFilter.next(JSON.parse(JSON.stringify(this._filterSelection)));\r\n }\r\n private get filterSelection() {\r\n return JSON.parse(JSON.stringify(this._filterSelection));\r\n }\r\n\r\n // To set the renewal page is active or not\r\n private _isRenewalPage = false;\r\n set isRenewalPage(val: boolean) {\r\n this._isRenewalPage = val;\r\n }\r\n get isRenewalPage() {\r\n return this._isRenewalPage;\r\n }\r\n\r\n // To keep all the saved filters list for current page\r\n private _savedFilters;\r\n set savedFilters(filters) {\r\n this._savedFilters = JSON.parse(JSON.stringify(filters));\r\n this.savedFilterList.next(JSON.parse(JSON.stringify(filters)));\r\n }\r\n get savedFilters() {\r\n return JSON.parse(JSON.stringify(this._savedFilters));\r\n }\r\n\r\n // To keep the current selected filter set\r\n private _selectedFilterSetName;\r\n set selectedFilterSetName(name) {\r\n this._selectedFilterSetName = name;\r\n this.selectedSavedFilter.next(name);\r\n if (this.savedFilters) {\r\n this.savedFilters = this._savedFilters;\r\n }\r\n }\r\n get selectedFilterSetName() {\r\n return this._selectedFilterSetName;\r\n }\r\n\r\n // To keep filter groups updated\r\n private _filterGroups = FILTERS_CONFIG;\r\n set filterGroups(groups) {\r\n this._filterGroups = groups;\r\n this.updatedFilterGroups.next(groups);\r\n }\r\n get filterGroups() {\r\n return this._filterGroups;\r\n }\r\n\r\n // * Getter and Setter functions for the filters */\r\n\r\n // Private variables to be used in payload\r\n public _dashboardName = DASHBOARD_NAME;\r\n public _pageName = 'Filters';\r\n public _dashletType = 'CrossFilter';\r\n\r\n // Other private variable\r\n private _initialFilters = {}; // For keeping initial filters when resetting values\r\n private _selectedFilters = {}; // Selected filters set to be used in API payload\r\n private _renewalSavedList = []; // Saved list for renewal page\r\n private _nonRenewalSavedList = []; // Saved list for non renewal page\r\n public _dateRangeEndDate; // Date range start\r\n public _dateRangeStartDate; // Date range end\r\n dateData;\r\n yearList;\r\n // Observables to be used to update the data in components\r\n /*\r\n filterOpened - open and close filter panel\r\n selectedFilter - the selected filter for filter section\r\n savedFilterList - list of saved filters sets for current page\r\n selectedSavedFilter - selected saved set from saved filter set\r\n appliedFilter - applied filters for chips section\r\n updatedFilterGroups - filter groups in filter panel\r\n filterValues - filter values to be showed in filters dropdown\r\n filtersLoaded - boolean to show filter panels\r\n filterType -\r\n updateDashletData - flag to update the dashlet data when filters are applied\r\n globalSearchKey - for global seearch\r\n filterCountLoading - for showing loader when filter count is loading\r\n renewalMonthssList - to get months list to be showed in renewals\r\n */\r\n public filterOpened: BehaviorSubject = new BehaviorSubject(false);\r\n public savedFilterSelectionChanged: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n public selectedFilter: BehaviorSubject = new BehaviorSubject(null);\r\n public savedFilterList: BehaviorSubject = new BehaviorSubject(null);\r\n public selectedSavedFilter: BehaviorSubject = new BehaviorSubject(null);\r\n public appliedFilter: BehaviorSubject = new BehaviorSubject(null);\r\n public updatedFilterGroups: BehaviorSubject = new BehaviorSubject(FILTERS_CONFIG);\r\n public filterValues: BehaviorSubject = new BehaviorSubject({});\r\n public filtersLoaded: BehaviorSubject<{ status: boolean }> = new BehaviorSubject({ status: false });\r\n // public filterType: BehaviorSubject = new BehaviorSubject([]);\r\n public updateDashletData: BehaviorSubject = new BehaviorSubject({ type: false });\r\n public globalSearchKey: BehaviorSubject = new BehaviorSubject('');\r\n public filterCountLoading: BehaviorSubject<{ status: boolean }> = new BehaviorSubject({ status: false });\r\n public renewalMonthsList: BehaviorSubject = new BehaviorSubject([]);\r\n public filterCountSub: BehaviorSubject = new BehaviorSubject(null);\r\n public nextDaysValue: BehaviorSubject = new BehaviorSubject(null);\r\n public currencyUpdated: BehaviorSubject = new BehaviorSubject(null);\r\n public chipsUpdated: BehaviorSubject = new BehaviorSubject(null);\r\n public strongerTogetherValueChanged: BehaviorSubject = new BehaviorSubject(null);\r\n public isSaveFilterTriggered = false;\r\n public strongerTogetherReasonChanged: BehaviorSubject = new BehaviorSubject(null);\r\n public resetBreadCrumbForAllDashlets: BehaviorSubject = new BehaviorSubject(null);\r\n public goBackLevelForDashlet: BehaviorSubject = new BehaviorSubject(null);\r\n \r\n private levelConfigs = levelsConfigs;\r\n\r\n // Get the optional filters values for optional filter\r\n getOptionalFiltersValues(config, entityType) {\r\n let appliedFilters = this.getAppliedFilters(entityType);\r\n appliedFilters = this.getFYRate(appliedFilters);\r\n let payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n dashboard: this._dashboardName,\r\n page: this._pageName,\r\n dashlet: this._dashletType,\r\n queryTypeId: 4,\r\n startDate: this._dateRangeStartDate,\r\n endDate: this._dateRangeEndDate,\r\n entityType,\r\n ...appliedFilters\r\n };\r\n payload = { ...config, ...payload };\r\n // Below condition is added to check if dropdown specific searchKey isnt there, then to use global key\r\n if (!payload['searchKey'] && this.globalSearchKey.value && this.globalSearchKey.value.length) {\r\n payload['searchKey'] = this.globalSearchKey.value;\r\n }\r\n\r\n //For Producer State Filter, we need pass the producer country value\r\n if (entityType === 'ProducerState') {\r\n let staticPayload = [\r\n { key: 'ProducerCountry', value: `\"${this.appConfig['countryNames'].US}\",\"Canada\"`, operator: 'IN' },\r\n\r\n ];\r\n payload.appliedFilters = [...payload.appliedFilters, ...staticPayload];\r\n }\r\n\r\n //Remove Producer Filter for Client Filter\r\n if (entityType === 'ClientRegion' || entityType === 'ClientCountry') {\r\n\r\n let removedPayload = payload.appliedFilters.filter(filterObj => {\r\n return ![\"ProducerRegion\", \"ProducerCountry\", \"ProducerState\"].includes(filterObj.key);\r\n })\r\n payload.appliedFilters = [...removedPayload];\r\n //Remove Client Filters from the payload when the user selected the Producer related filters\r\n } else if (entityType === 'ProducerRegion' || entityType === 'ProducerCountry' || entityType === 'ProducerState') {\r\n let removedPayload = payload.appliedFilters.filter(filterObj => {\r\n return ![\"ClientRegion\", \"ClientCountry\",].includes(filterObj.key);\r\n })\r\n payload.appliedFilters = [...removedPayload];\r\n }\r\n\r\n this.apiService.post('fixedFilters', payload).subscribe(data => this.setOptionalFilterValues(entityType, data));\r\n }\r\n\r\n setSavedFilterSelectionChanged(value) {\r\n this.savedFilterSelectionChanged.next(value);\r\n }\r\n\r\n getSavedFilterSelectionChanged() {\r\n return this.savedFilterSelectionChanged.asObservable();\r\n }\r\n\r\n getCurrencyValues() {\r\n const entityType = 'ReportingCurrency';\r\n const { startDate, endDate } = this.getLastDaysYearConfig();\r\n const initialFilters = JSON.parse(JSON.stringify(this._initialFilters));\r\n const payload = {\r\n DateType: initialFilters.DateType.value[0].key,\r\n TimePeriod: initialFilters.TimePeriod.value[0].key,\r\n appliedFilters: {\r\n RateType: `\"${initialFilters.RateType.value[0].key}\"`\r\n },\r\n userEmail: localStorage.getItem('userEmail'),\r\n dashboard: this._dashboardName,\r\n page: this._pageName,\r\n dashlet: this._dashletType,\r\n queryTypeId: 6,\r\n startDate,\r\n endDate,\r\n pageIndex: 1,\r\n pageSize: 500,\r\n entityType\r\n };\r\n\r\n //API Issue\r\n return this.apiService.post('fixedFilters', payload);\r\n //.subscribe(data => this.setCurrencyValues(data));\r\n }\r\n\r\n setCurrencyValues(data) {\r\n const filterData = this.filtersData;\r\n data.Data = data.Data && data.Data.length ? data.Data.filter(i => i != null) : [];\r\n filterData['ReportingCurrency'] = data.Data.map(i => new FilterItem(i, undefined, undefined, true));\r\n this.filtersData = filterData;\r\n this.currencyUpdated.next(true);\r\n this._initialFilters['ReportingCurrency'].totalRecords = data.TotalRecords;\r\n if (this.filterSelection) {\r\n const filterSelection = this.filterSelection;\r\n filterSelection['ReportingCurrency'].totalRecords = data.TotalRecords;\r\n this.filterSelection = filterSelection;\r\n }\r\n }\r\n\r\n // Set filters formatted value for the entity depending on single select or mult-select\r\n getFiltersValue(filter) {\r\n let filterValue = '';\r\n let values: Array;\r\n if (filter.name === 'TimePeriod' || filter.name === 'DateType') {\r\n values = filter.value.map(i => (i.key ? i.key : i));\r\n filterValue = values[0];\r\n } else if (filter.name === 'IsLuxTransaction') {\r\n filterValue = filter.value[0].key;\r\n } else if (filter.name === 'ReportingCurrency') {\r\n filterValue = `\"${filter.value[0].key}\"`;\r\n } else {\r\n values = filter.value.map(i => (i.chipName ? i.chipName : i));\r\n filterValue = `\"${values.join('\",\"')}\"`;\r\n }\r\n // if (singleSelect) {\r\n // filterValue = `\"${values[0]}\"`;\r\n // } else {\r\n // filterValue = `\"${values.join('\",\"')}\"`;\r\n // }\r\n return filterValue;\r\n }\r\n\r\n // Function to set selected filters values to get dashlet data\r\n setSelectedFilters() {\r\n const selectedFilters = {\r\n TimePeriod: null,\r\n DateType: null,\r\n timePeriodValues: null,\r\n appliedFilters: []\r\n };\r\n const filterSelection = this.filterSelection;\r\n for (const filterName in filterSelection) {\r\n const filter = filterSelection[filterName];\r\n if (filter.selected && filter.value && filter.value.length) {\r\n // selectedFilters[filterName] = this.getFiltersValue(filter);\r\n const filterValue = this.getFiltersValue(filter);\r\n if (filterName === 'StrongerTogether'){\r\n if (filterValue === '\"On\"'){\r\n this.strongerTogetherValueChanged.next('On');\r\n } else {\r\n this.strongerTogetherValueChanged.next('Off');\r\n }\r\n }\r\n if (filterName === 'StrongerTogetherReason'){\r\n this.strongerTogetherReasonChanged.next(filterValue);\r\n }\r\n if (selectedFilters[filterName] === null) {\r\n selectedFilters[filterName] = filterValue;\r\n } else {\r\n if (filterName === 'IsLuxTransaction' && filterValue === 'Default') {\r\n continue;\r\n }\r\n\r\n const appliedFilter = {\r\n key: filterName,\r\n value: filterValue,\r\n operator: filter.isExclude ? 'NotIN' : 'IN'\r\n };\r\n selectedFilters.appliedFilters.push(appliedFilter);\r\n }\r\n }\r\n }\r\n\r\n const dateRangeValue = filterSelection.TimePeriod.value[0];\r\n if (dateRangeValue.monthsList) {\r\n selectedFilters.timePeriodValues = dateRangeValue.monthsList;\r\n } else if (dateRangeValue.yearsList) {\r\n selectedFilters.timePeriodValues = dateRangeValue.yearsList;\r\n }\r\n this._selectedFilters = selectedFilters ? selectedFilters : {};\r\n }\r\n\r\n // Function to get the selected filters while API call\r\n getSelectedFilters() {\r\n return JSON.parse(JSON.stringify(this._selectedFilters));\r\n }\r\n\r\n getFiltersForPDF() {\r\n const appliedFilter = {};\r\n const filterSelection = this.filterSelection;\r\n for (const filterName in filterSelection) {\r\n const filter = filterSelection[filterName];\r\n if (filter.value && filter.value.length) {\r\n let values = this.getFiltersValue(filter);\r\n if (values == 'CY' || values == 'FY' || values == 'FYTD') {\r\n values = filter.value[0].chipName;\r\n }\r\n appliedFilter[filter.displayName] = values.replace(/\\\"/g, '');\r\n }\r\n }\r\n const dateRangeValue = filterSelection.DateType.value[0];\r\n if (dateRangeValue.monthsList) {\r\n appliedFilter['Months'] = dateRangeValue.monthsList.map(month => {\r\n month = month.toString();\r\n return month.slice(0, 4) + '-' + month.slice(4, 6);\r\n });\r\n } else if (dateRangeValue.yearsList) {\r\n appliedFilter['Years'] = dateRangeValue.yearsList;\r\n } else {\r\n appliedFilter['Start Date'] = this.getFormattedDate(this._dateRangeStartDate);\r\n appliedFilter['End Date'] = this.getFormattedDate(this._dateRangeEndDate);\r\n }\r\n return appliedFilter;\r\n }\r\n\r\n // returning date format equal to dd/mm/yyyy\r\n getFormattedDate(date: string) {\r\n const day = date.substr(3, 2);\r\n const month = date.substr(0, 2);\r\n const year = date.substr(6, date.length);\r\n\r\n return day + '/' + month + '/' + year;\r\n }\r\n\r\n // Function to get applied filters to get values for filter dropdown\r\n getAppliedFilters(key = '') {\r\n const filters = {\r\n TimePeriod: null,\r\n DateType: null,\r\n timePeriodValues: null,\r\n appliedFilters: []\r\n };\r\n const filterSelection = this.filterSelection;\r\n for (const filterName in filterSelection) {\r\n const filter = filterSelection[filterName];\r\n if (filter.name !== key && filter.value && filter.value.length) {\r\n const filterValue = this.getFiltersValue(filter);\r\n if (filters[filter.name] === null) {\r\n filters[filter.name] = filterValue;\r\n } else {\r\n if (filterName === 'IsLuxTransaction' && filterValue === 'Default') {\r\n continue;\r\n }\r\n\r\n filters.appliedFilters.push({\r\n key: filterName,\r\n value: filterValue,\r\n operator: filter.isExclude ? 'NotIN' : 'IN'\r\n });\r\n }\r\n }\r\n }\r\n\r\n //Add the payload set if the user selects any of the below filters\r\n if (['ProducerGroupName', 'ProducerSubGroupName', 'ProducerRegion', 'ProducerCountry', 'ProducerState', 'ProducerState'].indexOf(key) > -1) {\r\n let producerPayload = [\r\n { key: 'ClientIndustrySector', value: '\"Insurance\"', operator: 'IN' },\r\n {\r\n key: 'ClientIndustryType',\r\n value:\r\n '\"Insurance\",\"Insurance Broker\",\"Insurance Intermediary\",\"MGA\",\"Property Program\",\"Risk Management\",\"Risk Retention Group\"',\r\n operator: 'IN'\r\n }\r\n ];\r\n filters.appliedFilters = [...filters.appliedFilters, ...producerPayload];\r\n }\r\n\r\n if (filterSelection && filterSelection.TimePeriod) {\r\n const dateRangeValue = filterSelection.TimePeriod.value[0];\r\n if (dateRangeValue.monthsList) {\r\n filters.timePeriodValues = dateRangeValue.monthsList;\r\n } else if (dateRangeValue.yearsList) {\r\n filters.timePeriodValues = dateRangeValue.yearsList;\r\n }\r\n }\r\n return filters;\r\n }\r\n\r\n // Set the optional filter dropdown data\r\n setOptionalFilterValues(key, data) {\r\n const filterData = this.filtersData;\r\n data.Data = data.Data && data.Data.length ? data.Data.filter(i => i != null) : [];\r\n filterData[key] = data;\r\n this.filtersData = filterData;\r\n }\r\n\r\n // Set filter when drilling down\r\n setDrilldownFilter(filter, value) {\r\n const filterSelection = this.filterSelection;\r\n if (filterSelection[filter]) {\r\n filterSelection[filter].value = [value];\r\n filterSelection[filter].selected = true;\r\n }\r\n this.filterSelection = filterSelection;\r\n }\r\n\r\n // Set mandatory filters selection\r\n updateMandatoryFilter(filter, value) {\r\n const filterSelection = this.filterSelection;\r\n if (filter === 'StrongerTogetherReason'){\r\n filterSelection[filter].value = [value];\r\n } else {\r\n filterSelection[filter].value[0] = value;\r\n }\r\n this.filterSelection = filterSelection;\r\n }\r\n\r\n // Set optional filter selection\r\n updateOptionalFilter(filter, value, isSelected = true) {\r\n const filterSelection = this.filterSelection;\r\n if (value.length > 0) {\r\n if (filter === 'ClientRegion' || filter === 'ClientCountry') {\r\n this.removeFilters(['ProducerRegion', 'ProducerState', 'ProducerCountry'], filterSelection);\r\n } else if (filter === 'ProducerRegion' || filter === \"ProducerState\" || filter === \"ProducerCountry\") {\r\n this.removeFilters([\"ClientRegion\", \"ClientCountry\"], filterSelection);\r\n }\r\n }\r\n setTimeout(() => {\r\n if (this.checkIfValueUpdated(value, filterSelection[filter].value)) {\r\n filterSelection[filter].value = value;\r\n filterSelection[filter].selected = true;\r\n this.filterSelection = filterSelection;\r\n // Reset global search key upon selection of filter value\r\n this.updateGlobalSearchKey('');\r\n }\r\n }, 1000);\r\n\r\n }\r\n\r\n removeFilters(filters, filterSelections) {\r\n const filterSelection = this.filterSelection;\r\n filters.map(filter => {\r\n filterSelections[filter].value = null;\r\n filterSelections[filter].selected = false;\r\n })\r\n\r\n this.filterSelection = filterSelections;\r\n }\r\n\r\n checkIfValueUpdated(newValue, presentValue) {\r\n if (!presentValue && newValue.length == 0) return false;\r\n if (!presentValue && !newValue) {\r\n return false;\r\n }\r\n if (\r\n (!presentValue && newValue && newValue.length) ||\r\n (!newValue && presentValue && presentValue.length) ||\r\n newValue.length !== presentValue.length\r\n ) {\r\n return true;\r\n }\r\n for (const item of presentValue) {\r\n if (newValue.indexOf(item) < 0) {\r\n return true;\r\n }\r\n }\r\n // presentValue.forEach(item => {\r\n // });\r\n return false;\r\n }\r\n\r\n // Set the selected status of the filter\r\n filterStatusChanged(filter, status) {\r\n const filterSelection = this.filterSelection;\r\n filterSelection[filter].selected = status;\r\n this.filterSelection = filterSelection;\r\n }\r\n\r\n // Save filters is basically apply filter selections to chips and update dashlets\r\n saveFilters(updateDashlets = true) {\r\n const filters = this.filterSelection;\r\n const appliedFilter = [];\r\n for (const key in filters) {\r\n if (filters[key].selected && filters[key].value && filters[key].value.length) {\r\n const item = { ...filters[key] };\r\n if (item.name === 'TimePeriod'){\r\n if (item.value[0].chipName === 'CY'){\r\n item.value[0].chipName = 'Calendar Year';\r\n }\r\n }\r\n item.value = item.value.map(i => (i.chipName ? i.chipName : i));\r\n appliedFilter.push(item);\r\n }\r\n }\r\n\r\n this.appliedFilter.next(appliedFilter);\r\n this.setSelectedFilters();\r\n this.setFilterGroupCount();\r\n if (!updateDashlets) {\r\n return;\r\n }\r\n setTimeout(() => {\r\n this.updateDashletData.next({ type: true, filters: appliedFilter });\r\n this.updateGlobalSearchKey('');\r\n });\r\n }\r\n\r\n removeStrongerTogeteherPolicyFilters(updateDashlets = true){\r\n const filters = this.filterSelection;\r\n const appliedFilter = [];\r\n for (const key in filters) {\r\n if (filters[key].selected && filters[key].value && filters[key].value.length) {\r\n const item = { ...filters[key] };\r\n let strongerTogetherFilters :string[] = ['PolicyRegion', 'PolicyCompany', 'PolicyDivision', 'PolicyTeam', 'PolicySubTeam', 'PolicyBase', 'DisplayLevel1', 'DisplayLevel2', 'DisplayLevel3']\r\n if (strongerTogetherFilters.indexOf(item.name) < 0){\r\n item.value = item.value.map(i => (i.chipName ? i.chipName : i));\r\n appliedFilter.push(item);\r\n }else {\r\n this.chipsUpdated.next({ filterName: item.name })\r\n this.updateOptionalFilter(item.name, []);\r\n this.filterStatusChanged(item.name, false);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n removeStrongerTogeteherReason(updateDashlets = true){\r\n const filters = this.filterSelection;\r\n const appliedFilter = [];\r\n for (const key in filters) {\r\n if (filters[key].selected && filters[key].value && filters[key].value.length) {\r\n const item = { ...filters[key] };\r\n let strongerTogetherFilters :string[] = ['StrongerTogetherReason']\r\n if (strongerTogetherFilters.indexOf(item.name) < 0){\r\n item.value = item.value.map(i => (i.chipName ? i.chipName : i));\r\n appliedFilter.push(item);\r\n }else {\r\n this.chipsUpdated.next({ filterName: item.name })\r\n this.updateOptionalFilter(item.name, []);\r\n this.filterStatusChanged(item.name, false);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n getseletedFilterFromChips(keyList, triggerDashletsData = true) {\r\n const filterSelection = this.filterSelection;\r\n keyList.map((list, index) => {\r\n if (index < keyList.length - 1)\r\n this.removeChip(filterSelection[list.key], true, list.index)\r\n })\r\n }\r\n\r\n changeStrongerTogetherValue(value, strongerTogetherReason){\r\n var obj = {};\r\n if (value === 'Off'){\r\n obj = {chipName: \"On\", disabled: false, displayName: \"On\", filterChipName: \"On\", filterkey: \"On\", filtervalue: \"On\", key: \"On\",singleSelect: false}\r\n const strongerTogetherReasonChip = this.changeChipForStrongerTogetherReason(strongerTogetherReason);\r\n this.updateMandatoryFilter('StrongerTogetherReason', strongerTogetherReasonChip);\r\n } else {\r\n obj = {chipName: \"Off\", disabled: false, displayName: \"Off\", filterChipName: \"Off\", filterkey: \"Off\", filtervalue: \"Off\", key: \"Off\",singleSelect: false}\r\n }\r\n this.updateMandatoryFilter('StrongerTogether', obj);\r\n this.strongerTogetherValueChanged.next(obj['displayName']);\r\n if(obj['displayName'] === 'Off'){\r\n this.removeStrongerTogeteherPolicyFilters(true);\r\n this.removeStrongerTogeteherReason(true);\r\n this.saveFilters(true);\r\n } else{\r\n this.saveFilters(true);\r\n }\r\n }\r\n\r\n changeStrongerTogetherReasonValue(value){\r\n const obj = this.changeChipForStrongerTogetherReason(value);\r\n this.updateMandatoryFilter('StrongerTogetherReason', obj);\r\n const filterSelection = this.filterSelection;\r\n this.filterSelection = filterSelection;\r\n this.saveFilters(true);\r\n }\r\n\r\n changeChipForStrongerTogetherReason(value) {\r\n var obj = {};\r\n if (value === 'DiffBU') {\r\n obj = {\r\n chipName: \"DiffBU\", disabled: false, displayName: \"DiffBU\", filterChipName: \"DiffBU\",\r\n filterkey: \"DiffBU\", filtervalue: \"DiffBU\", key: \"DiffBU\", singleSelect: false\r\n };\r\n } else if (value === 'Howden Client/TP') {\r\n obj = {\r\n chipName: \"Howden Client/TP\", disabled: false, displayName: \"Howden Client/TP\", filterChipName: \"Howden Client/TP\",\r\n filterkey: \"Total\", filtervalue: \"Howden Client/TP\", key: \"HowdenClientTP\", singleSelect: false\r\n };\r\n } else {\r\n obj = {\r\n chipName: \"Total\", disabled: false, displayName: \"Total\", filterChipName: \"Total\",\r\n filterkey: \"Total\", filtervalue: \"Total\", key: \"Total\", singleSelect: false\r\n };\r\n }\r\n return obj;\r\n }\r\n\r\n // Remove the the chip for the chips set, filter panel as well as update dashlet\r\n removeChip(data, triggerDashletsData = true, index?) {\r\n this.chipsUpdated.next({ filterName: data.displayName })\r\n this.updateOptionalFilter(data.name, []);\r\n this.filterStatusChanged(data.name, false);\r\n this.saveFilters(triggerDashletsData);\r\n const levelConfig = this.levelConfigs.filter(level => level.name === data.name)[0];\r\n if (levelConfig){\r\n this.goBackLevelForDashlet.next(levelConfig);\r\n }\r\n }\r\n\r\n removeFilterValueWithDrillUp(data) {\r\n this.chipsUpdated.next({ filterName: data.displayName })\r\n this.updateOptionalFilter(data.name, []);\r\n this.filterStatusChanged(data.name, false);\r\n }\r\n\r\n // Function to get config for last year\r\n getLastDaysYearConfig() {\r\n // const startDate = moment().subtract(1, 'years').format('MM/DD/YYYY');\r\n // const endDate = moment().subtract(1, 'days').format('MM/DD/YYYY');\r\n\r\n const startDate = moment().subtract(1, 'years').startOf('month').format('MM/DD/YYYY');\r\n const endDate = moment().subtract(1, 'months').endOf('month').format('MM/DD/YYYY');\r\n return { startDate, endDate };\r\n }\r\n getAllValuesConfig() {\r\n const startDate = moment('1900-01-01').format('MM/DD/YYYY');\r\n const endDate = moment()\r\n .add(1, 'days')\r\n .format('MM/DD/YYYY');\r\n return { startDate, endDate };\r\n }\r\n\r\n // Function to get x days data\r\n getNextDaysConfig(days = 180) {\r\n const today = moment();\r\n const startDate = today.add(1, 'days').format('MM/DD/YYYY');\r\n const endDate = moment()\r\n .add(days, 'days')\r\n .format('MM/DD/YYYY');\r\n return { startDate, endDate };\r\n }\r\n\r\n // Set the date range type and value\r\n setDateRangeValues(filter, dateData) {\r\n let filterValue;\r\n if (typeof dateData.value === 'string') {\r\n filterValue = {\r\n disabled: false,\r\n singleSelect: false,\r\n key: dateData.value,\r\n displayName: dateData.value,\r\n chipName: dateData.displayName\r\n };\r\n if (dateData.monthValue) {\r\n filterValue.monthsList = dateData.monthValue;\r\n }\r\n if (dateData.yearValue) {\r\n filterValue.yearsList = dateData.yearValue;\r\n }\r\n }\r\n this.dateData=dateData;\r\n this.updateMandatoryFilter(filter, filterValue);\r\n this._dateRangeEndDate = dateData.endDate;\r\n this._dateRangeStartDate = dateData.startDate;\r\n }\r\n\r\n // Function to get current date range values\r\n getDateRangeValues() {\r\n return {\r\n startDate: this._dateRangeStartDate,\r\n endDate: this._dateRangeEndDate\r\n };\r\n }\r\n\r\n getSelectedFilterDateRange() {\r\n return {\r\n startDate: this._selectedFilterSetName.filterList.startDate,\r\n endDate: this._selectedFilterSetName.filterList.endDate\r\n };\r\n }\r\n\r\n toggelFilterPanel() {\r\n this.filterOpened.next(!this.filterOpened.value);\r\n }\r\n\r\n closeFilterPanel() {\r\n this.filterOpened.next(false);\r\n }\r\n\r\n openFilterPanel() {\r\n this.filterOpened.next(true);\r\n }\r\n\r\n /* Refactored Code for Filters */\r\n\r\n // Initialise all the data\r\n setInitialValues() {\r\n this.initFilterSelectionAndValues();\r\n let filters = FIXED_FILTERVALUES_MOCK;\r\n if (this.isRenewalPage) {\r\n filters = { ...FIXED_FILTERVALUES_MOCK, ...RENEWAL_FILTERS };\r\n }\r\n this.setFixedFiltersData(filters);\r\n }\r\n\r\n // Create filter selection data and filters value object mapping\r\n initFilterSelectionAndValues() {\r\n // Get the config from file\r\n const filterConfigArr = FILTERS_CONFIG.map(item => item.child);\r\n const filterConfig = [].concat(...filterConfigArr);\r\n // Create the initial data mapping\r\n const filterSelection = {};\r\n const filtersData = {};\r\n filterConfig.map(item => {\r\n filtersData[item.key] = null;\r\n filterSelection[item.key] = new FilterChip(item.key, item.displayName, item.isSingleSelect, null);\r\n });\r\n this._initialFilters = filterSelection;\r\n this.filtersData = filtersData;\r\n }\r\n\r\n // Set fixed filters data for dropdown\r\n setFixedFiltersData(fixedFilterValues) {\r\n const filtersData = this.filtersData;\r\n const filterSelection = this.filterSelection;\r\n for (const filterKey in fixedFilterValues) {\r\n const filterItem = fixedFilterValues[filterKey];\r\n // Set fixed filters dropdown data\r\n filtersData[filterKey] = filterItem.Data.map(i => new FilterItem(i));\r\n // Set fixed filters mandatory data value\r\n const defaultSelection = filterItem.Data.find(i => i.IsDefault);\r\n const name = this._initialFilters[filterKey].displayName;\r\n this._initialFilters[filterKey] = new FilterChip(\r\n filterKey,\r\n name,\r\n filterItem.IsSingleSelect,\r\n defaultSelection,\r\n filterItem.Data.length,\r\n false\r\n );\r\n this._initialFilters[filterKey].displayName = name;\r\n // Set filter selection if its present\r\n if (filterSelection && filterSelection[filterKey]) {\r\n filterSelection[filterKey] = JSON.parse(JSON.stringify(this._initialFilters[filterKey]));\r\n }\r\n }\r\n this.filtersData = filtersData;\r\n this.filterSelection = filterSelection;\r\n }\r\n\r\n clearFilterSelection() {\r\n this.filterSelection = JSON.parse(JSON.stringify(this._initialFilters));\r\n this.saveFilters();\r\n this.resetBreadCrumbForAllDashlets.next(true);\r\n }\r\n\r\n setFilterGroupCount() {\r\n const groups = this.filterGroups;\r\n groups.forEach(groupItem => {\r\n groupItem.count = groupItem.child.reduce((acc, childItem1) => {\r\n if (this.filterSelection && this.filterSelection[childItem1.key] && this.filterSelection[childItem1.key].selected) {\r\n return acc + 1;\r\n } else {\r\n return acc;\r\n }\r\n }, 0);\r\n });\r\n this.filterGroups = groups;\r\n }\r\n\r\n updateFilterGroupStatus(filter: any, status: any, index: number) {\r\n const groups = this.filterGroups;\r\n if (status) {\r\n groups[index].count++;\r\n } else {\r\n groups[index].count--;\r\n }\r\n this.filterGroups = groups;\r\n this.filterStatusChanged(filter, status);\r\n }\r\n\r\n /* Logic for global search with count */\r\n updateGlobalSearchKey(searchKey) {\r\n this.globalSearchKey.next(searchKey);\r\n this.filterCountSub.next(searchKey);\r\n }\r\n\r\n // API to get filters count\r\n getFiltersCount(searchKey) {\r\n if (searchKey == null || !this._initialFilters || !Object.keys(this._initialFilters).length) {\r\n return;\r\n }\r\n this.filterCountLoading.next({ status: true });\r\n const entitiesList = FILTER_COUNT_DASHLET_CONFIG;\r\n let appliedFilter = this.getAppliedFilters();\r\n appliedFilter = this.getFYRate(appliedFilter);\r\n const entitiesListAPI = entitiesList.map(entity => this.getSeperateFilterCount(searchKey, entity, appliedFilter));\r\n const entitiesJoin = forkJoin(entitiesListAPI).subscribe(data => {\r\n this.updateFilterCount(data);\r\n entitiesJoin.unsubscribe();\r\n });\r\n }\r\n\r\n // Function to get payloads for all entity breakups\r\n getSeperateFilterCount(searchKey, dashlet, appliedFilters) {\r\n const payload = {\r\n searchKey,\r\n userEmail: localStorage.getItem('userEmail'),\r\n dashboard: this._dashboardName,\r\n page: 'Filters',\r\n dashlet,\r\n queryTypeId: 1,\r\n pageIndex: 1,\r\n pageSize: 500,\r\n startDate: this._dateRangeStartDate,\r\n endDate: this._dateRangeEndDate,\r\n entityType: '',\r\n ...appliedFilters\r\n };\r\n\r\n if (payload['TimePeriod'] == 'CY') {\r\n appliedFilters['startDate'] = this.FYCYDates.startDate\r\n appliedFilters['endDate'] = this.FYCYDates.endDate\r\n if (payload['timePeriodValues'] != null && payload['timePeriodValues'].includes(moment().format('YYYY'))) {\r\n payload['timePeriodValues'] = payload['timePeriodValues'].split(',').filter(item => item != moment().format('YYYY')).join()\r\n }\r\n } else if (payload['TimePeriod'] == 'FY') {\r\n appliedFilters['startDate'] = this.FYCYDates.startDate\r\n appliedFilters['endDate'] = this.FYCYDates.endDate\r\n if (payload['timePeriodValues'] != null && payload['timePeriodValues'].includes(moment().add(1, 'years').format('YYYY'))) {\r\n payload['timePeriodValues'] = payload['timePeriodValues'].split(',').filter(item => item != moment().add(1, 'years').format('YYYY')).join();\r\n }\r\n }\r\n else {\r\n payload['timePeriodValues'] = null;\r\n }\r\n\r\n\r\n // Remove Producer Region, Producer Country and Producer State while getting count for Client Region and Client Country dropdowns\r\n if (payload.dashlet === 'CrossFilterCountClientRegion') {\r\n let removedPayload = payload.appliedFilters.filter(filterObj => {\r\n return ![\"ProducerRegion\", \"ProducerCountry\", \"ProducerState\"].includes(filterObj.key);\r\n })\r\n payload.appliedFilters = [...removedPayload]\r\n // Remove Client Country and Client State while getting count for Producer Region,Producer Country and Producer state dropdowns\r\n } else if (payload.dashlet === 'CrossFilterAllCountProdRegion' || payload.dashlet === 'CrossFilterAllCountProducerState') {\r\n let removedPayload = payload.appliedFilters.filter(filterObj => {\r\n return ![\"ClientRegion\", \"ClientCountry\"].includes(filterObj.key);\r\n })\r\n payload.appliedFilters = [...removedPayload]\r\n }\r\n return this.apiService.post('filterCount', payload);\r\n }\r\n\r\n // function to update the count\r\n updateFilterCount(countData) {\r\n const filterSelection = this.filterSelection;\r\n countData.forEach(data => {\r\n if (!data) {\r\n return;\r\n }\r\n const separateCountData = data[0];\r\n for (const key in separateCountData) {\r\n if (filterSelection[key]) {\r\n filterSelection[key].totalRecords = separateCountData[key];\r\n }\r\n }\r\n });\r\n this.filterSelection = filterSelection;\r\n this.filterCountLoading.next({ status: false });\r\n }\r\n\r\n /* Logic for global search with count */\r\n\r\n // Function to reset few filters when route is changed\r\n /*\r\n Update\r\n Date Range, Filter dropdown data, initial value, filter selection, saved filters\r\n */\r\n resetTimeDateFilter(isRenewalPage) {\r\n this.updateDashletData.next({ type: false });\r\n this.isRenewalPage = isRenewalPage;\r\n const resetFilter = isRenewalPage ? RENEWAL_FILTERS : OTHER_PAGE_FILTERS;\r\n if (!this._initialFilters || !Object.keys(this._initialFilters).length) {\r\n return;\r\n }\r\n this.setFixedFiltersData(resetFilter);\r\n this.savedFilters = isRenewalPage ? this._renewalSavedList : this._nonRenewalSavedList;\r\n if (this.selectedFilter.value) {\r\n this.saveFilters();\r\n }\r\n this.filtersLoaded.next({ status: true });\r\n }\r\n\r\n /* Refactored Code for Filters */\r\n\r\n /* Save Selected Filters Logic */\r\n\r\n // Function to get the pageNames to be used in saved filters API\r\n getRelevantPageName() {\r\n let pageNames;\r\n pageNames = PAGES_TAB.map(i => i.pageName).join(',');\r\n return pageNames;\r\n }\r\n\r\n // Function to get list of all Saved Filters for User\r\n getSavedFiltersList() {\r\n const payload = {\r\n userName: localStorage.getItem('userEmail'),\r\n pageNames: ''\r\n };\r\n this.apiService\r\n .get('savedFiltersList', payload)\r\n .pipe(\r\n map(data => new SavedFilters(data)),\r\n map(data => this.updateSavedListForPages(data))\r\n )\r\n .subscribe(data => this.handleUpdatedSavedFilters(data));\r\n }\r\n\r\n setAsDefaultSavedFilter(filter) {\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n filterSetName: filter.setName,\r\n filterSet: JSON.stringify(filter.filterList),\r\n isDefault: filter.isDefault,\r\n pageNames: 'Producers&Markets'\r\n };\r\n this.apiService\r\n .post('saveNewFilter', payload)\r\n .pipe(\r\n map(data => new SavedFilters(data)),\r\n map(data => this.updateSavedListForPages(data))\r\n )\r\n // Update the selection, if the new filter set is saved\r\n .subscribe(data => console.log('saved set as default'));\r\n }\r\n\r\n // Function to Add filter Selection to Saved Filters List\r\n addSelectionToSavedFilters(filter) {\r\n const financialYear = this.GetCurrentFinancialYear();\r\n const selectedRateType = filter?.filterList?.appliedFilters.filter(item => item.key === 'RateType')[0]?.value;\r\n if (selectedRateType.includes('Group Annual')){\r\n filter.filterList.appliedFilters.filter(item => item.key === 'RateType')[0].value = 'Group Annual Budget FY' + financialYear;\r\n } else if (selectedRateType.includes('HIBL Annual')){\r\n filter.filterList.appliedFilters.filter(item => item.key === 'RateType')[0].value = 'HIBL Annual Budget FY' + financialYear;\r\n }\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n filterSetName: filter.setName,\r\n filterSet: JSON.stringify(filter.filterList),\r\n isDefault: filter.isDefault,\r\n pageNames: 'Producers&Markets'\r\n };\r\n this.apiService\r\n .post('saveNewFilter', payload)\r\n .pipe(\r\n map(data => new SavedFilters(data)),\r\n map(data => this.updateSavedListForPages(data))\r\n )\r\n // Update the selection, if the new filter set is saved\r\n .subscribe(data => (this.selectedFilterSetName = filter));\r\n }\r\n\r\n // Delete the filter selection from Saved Filters List\r\n deleteFilterFromSavedFilters(filter) {\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n filterSetName: filter.setName,\r\n filterSet: JSON.stringify(filter.filterList),\r\n isDefault: filter.isDefault,\r\n pageNames: 'Producers&Markets'\r\n };\r\n this.apiService\r\n .post('deleteSavedFilter', payload)\r\n .pipe(\r\n map(data => new SavedFilters(data)),\r\n map(data => this.updateSavedListForPages(data))\r\n )\r\n .subscribe(data => {\r\n // This for the case if we delete the existing applied filter\r\n // if (this.selectedFilterSetName.setName === filter.setName) {\r\n this.handleUpdatedSavedFilters(data);\r\n // }\r\n });\r\n }\r\n\r\n getFYRate(filters) {\r\n if (filters.appliedFilters !== null && filters.appliedFilters !== undefined){\r\n const financialYear = this.GetCurrentFinancialYear();\r\n const selectedRateType = filters.appliedFilters.filter(item => item.key === 'RateType')[0].value;\r\n if (selectedRateType.includes('Group Annual') || selectedRateType.includes('HIBL Annual')) {\r\n filters.appliedFilters = filters.appliedFilters.map(item => {\r\n if (item.key === 'RateType') {\r\n if (item.value.includes('Group Annual Budget')){\r\n if (item.value.includes(financialYear)){\r\n filters['financialYear'] = financialYear;\r\n item.value = '\"Group Annual Budget Current FY\"';\r\n } else {\r\n filters['financialYear'] = financialYear - 1;\r\n item.value = '\"Group Annual Budget Previous FY\"';\r\n }\r\n }\r\n if (item.value.includes('HIBL Annual Budget')){\r\n if (item.value.includes(financialYear)){\r\n filters['financialYear'] = financialYear;\r\n item.value = '\"HIBL Annual Budget Current FY\"';\r\n } else {\r\n filters['financialYear'] = financialYear - 1;\r\n item.value = '\"HIBL Annual Budget Previous FY\"';\r\n }\r\n }\r\n }\r\n return item;\r\n });\r\n }\r\n }\r\n return filters;\r\n }\r\n\r\n applyFilterSet(filterSet) {\r\n if (filterSet.filterList.appliedFilters !== null && filterSet.filterList.appliedFilters !== undefined){\r\n const financialYear = this.GetCurrentFinancialYear();\r\n let selectedRateType = filterSet.filterList.appliedFilters.filter(item => item.key === 'RateType')[0].value;\r\n if (selectedRateType.includes('Group Annual') ){\r\n filterSet.filterList['financialYear'] = financialYear;\r\n filterSet.filterList.appliedFilters.filter(item => item.key === 'RateType')[0].value = 'Group Annual Budget FY' + financialYear;\r\n } else if (selectedRateType.includes('HIBL Annual')){\r\n filterSet.filterList['financialYear'] = financialYear;\r\n filterSet.filterList.appliedFilters.filter(item => item.key === 'RateType')[0].value = 'HIBL Annual Budget FY' + financialYear;\r\n }\r\n }\r\n this.selectedFilterSetName = filterSet;\r\n this.setSelectedFilterSet(filterSet);\r\n this.saveFilters();\r\n this.filtersLoaded.next({ status: true });\r\n }\r\n\r\n updateSavedListForPages(filterSet) {\r\n this._renewalSavedList = filterSet.renewalFilters.map(i => this.formatDisplayList(i));\r\n this._nonRenewalSavedList = filterSet.nonRenewalFilters.map(i => this.formatDisplayList(i));\r\n this.savedFilters = this.isRenewalPage ? this._renewalSavedList : this._nonRenewalSavedList;\r\n return this.savedFilters;\r\n }\r\n\r\n // Handle the recieved list of filters\r\n handleUpdatedSavedFilters(filtersList) {\r\n let defaultFilterSet;\r\n if (filtersList && filtersList.length) {\r\n defaultFilterSet = filtersList.find(i => i.isDefault);\r\n }\r\n // If default set present then set default\r\n if (defaultFilterSet) {\r\n this.selectedFilterSetName = defaultFilterSet;\r\n const financialYear = this.GetCurrentFinancialYear();\r\n const selectedRateType = defaultFilterSet?.filterList?.appliedFilters.filter(item => item.key === 'RateType')[0]?.value;\r\n if (selectedRateType.includes('Group Annual')){\r\n defaultFilterSet.filterList.appliedFilters.filter(item => item.key === 'RateType')[0].value = 'Group Annual Budget FY' + financialYear;\r\n } else if (selectedRateType.includes('HIBL Annual')){\r\n defaultFilterSet.filterList.appliedFilters.filter(item => item.key === 'RateType')[0].value = 'HIBL Annual Budget FY' + financialYear;\r\n }\r\n this.setSelectedFilterSet(defaultFilterSet);\r\n } else {\r\n this.selectedFilterSetName = null;\r\n this.setMandatoryFilterSet();\r\n }\r\n const savedFilterSet = filtersList.find(filterSetItem=> {\r\n return filterSetItem.isDefault;\r\n })\r\n if (savedFilterSet !== undefined){\r\n const strongerTogetherAppliedFilter = savedFilterSet.filterList?.appliedFilters.find(appliedFilterItem=> {\r\n return appliedFilterItem.key === 'StrongerTogether';\r\n });\r\n if (strongerTogetherAppliedFilter !== undefined){\r\n if (strongerTogetherAppliedFilter.value === '\"On\"'){\r\n this.strongerTogetherValueChanged.next('On');\r\n const strongerTogetherReasonAppliedFilter = savedFilterSet.filterList?.appliedFilters.find(appliedFilterItem=> {\r\n return appliedFilterItem.key === 'StrongerTogetherReason';\r\n });\r\n this.strongerTogetherReasonChanged.next(strongerTogetherReasonAppliedFilter.value);\r\n }\r\n }\r\n }\r\n this.saveFilters();\r\n this.getCurrencyValues();\r\n this.filtersLoaded.next({ status: true });\r\n }\r\n\r\n private GetCurrentFinancialYear() {\r\n const date = new Date();\r\n const month = date.getMonth() + 1;\r\n const year = date.getFullYear();\r\n const fullFinancialYear = (month >= 10 && month <= 12) ? year + 1 : year;\r\n const financialYear = Number(fullFinancialYear.toString().slice(-2));\r\n return financialYear;\r\n }\r\n\r\n // Set Mandatory Filters\r\n setMandatoryFilterSet() {\r\n this.filterSelection = JSON.parse(JSON.stringify(this._initialFilters));\r\n }\r\n\r\n // Set the filter Selection provided as input\r\n setSelectedFilterSet(filtersList) {\r\n const filters = filtersList.filterList;\r\n const filterSelection = JSON.parse(JSON.stringify(this._initialFilters));\r\n for (const filterKey in filters) {\r\n const filterValue = filters[filterKey];\r\n let newValue;\r\n if (filterKey === 'appliedFilters') {\r\n filterValue.forEach(item => {\r\n const value = item.value.replace(/\"/g, '');\r\n if (!filterSelection[item.key].isSingleSelect) {\r\n filterSelection[item.key].selected = true;\r\n filterSelection[item.key].value = value.split(',');\r\n } else {\r\n filterSelection[item.key].value = [new FilterItem(value)];\r\n }\r\n });\r\n continue;\r\n } else if (filterKey === 'TimePeriod' && /(FY|CY|Next days)/i.test(filterValue)) {\r\n newValue = new FilterItem(filterValue.split(' - ')[0]);\r\n if (filterValue === 'CY'){\r\n newValue.chipName = 'Calendar Year';\r\n } else {\r\n newValue.chipName = filterValue;\r\n }\r\n filterSelection[filterKey].value = [newValue];\r\n } else if (filterValue && filterSelection[filterKey]) {\r\n filterSelection[filterKey].value = [new FilterItem(filterValue)];\r\n }\r\n }\r\n if (filters.TimePeriod === 'Months' && filters.MonthsOrYears) {\r\n filterSelection.TimePeriod.value[0].monthsList = filters.timePeriodValues;\r\n }\r\n if ((filters.TimePeriod === 'CY' || filters.TimePeriod === 'FY') && filters.timePeriodValues) {\r\n filterSelection.TimePeriod.value[0].yearsList = filters.timePeriodValues;\r\n }\r\n this.filterSelection = filterSelection;\r\n }\r\n\r\n // Function to convert the filter set sent into the display format\r\n formatDisplayList(filter) {\r\n const selections = filter.filterList;\r\n const selectionList = this._initialFilters;\r\n let displayFormat = '';\r\n for (const key in selections) {\r\n if (key === 'appliedFilters') {\r\n const appliedDisplay = selections[key].map(i => `${selectionList[i.key].displayName}: ${i.value}`).join('; ');\r\n displayFormat += appliedDisplay;\r\n } else if (selectionList[key]) {\r\n displayFormat += `${selectionList[key].displayName}: ${selections[key] =='Last 365 Days'?'Last 12 months':selections[key]}; `;\r\n }\r\n }\r\n filter.filterDisplayList = displayFormat.replace(/\\\"/g, '');\r\n return filter;\r\n }\r\n\r\n // Filters format for saved selection needs to be applied filters with date ranges\r\n getFilterFormatForSavedFilters() {\r\n let filters = this.getAppliedFilters();\r\n filters = this.getFYRate(filters);\r\n const dateRange = this.getDateRangeValues();\r\n filters = { ...filters, ...dateRange };\r\n return filters;\r\n }\r\n\r\n // Initial format for the save filter set\r\n initSaveFilterFormat() {\r\n const filterObj = {\r\n setName: null,\r\n filterList: this.getFilterFormatForSavedFilters(),\r\n filterDisplayList: '',\r\n isDefault: false\r\n };\r\n return this.formatDisplayList(filterObj);\r\n }\r\n\r\n // Check if the name of the filter is valid\r\n checkIfNameIsValid(name) {\r\n const filtersList = this.savedFilters;\r\n const findDuplicateName = filtersList.find(item => item.setName === name);\r\n return findDuplicateName == null && name.length > 0;\r\n }\r\n\r\n // Function to get the months list for renewals\r\n getMonthsListForRenewal() {\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n dashboard: DASHBOARD_NAME,\r\n page: 'Filters',\r\n dashlet: 'MonthYear',\r\n dashletTypeId: 1\r\n };\r\n this.apiService.get('monthsListForRenewal', payload).subscribe(\r\n data => this.renewalMonthsList.next(data),\r\n err => console.log('Error in getting renewal months list', err)\r\n );\r\n }\r\n\r\n getYearList(dashlet) {\r\n const selectedTimePeriodFilter = this.selectedFilter.value['DateType'].value[0].key;\r\n const payload = {\r\n userEmail: localStorage.getItem('userEmail'),\r\n dashboard: DASHBOARD_NAME,\r\n page: 'Filters',\r\n dashlet,\r\n queryTypeId: 1,\r\n dateType: selectedTimePeriodFilter\r\n };\r\n return this.apiService.get('yearList', payload);\r\n }\r\n\r\n /* Save Selected Filters Logic */\r\n\r\n /* Commented old code */\r\n\r\n // setFilterValuesAndSelections(configData) {\r\n // const filterSelection = {};\r\n // const filtersData = {};\r\n // configData.map(item => {\r\n // filtersData[item.key] = null;\r\n // filterSelection[item.key] = new FilterChip(item.key, item.displayName, item.isSingleSelect, null);\r\n // });\r\n // this.filterSelection = filterSelection;\r\n // this.filtersData = filtersData;\r\n // }\r\n\r\n // Function to get fixed filters values\r\n // getFixedFiltersValues() {\r\n // let filters = FIXED_FILTERVALUES_MOCK;\r\n // if (this.isRenewalPage) {\r\n // filters = { ...FIXED_FILTERVALUES_MOCK, ...RENEWAL_FILTERS };\r\n // }\r\n // this.setDateRange();\r\n // this.setFixedFiltersValues(filters);\r\n // }\r\n\r\n // setFixedFiltersValues(newFilterData) {\r\n // const filterSelection = this.filterSelection;\r\n // const filtersData = this.filtersData;\r\n // const config = [];\r\n\r\n // // For all the filters in the config, intialize the filters data and selection\r\n // for (const filterKey in newFilterData) {\r\n // const filterItem = newFilterData[filterKey];\r\n // const defaultSelection = filterItem.Data.find(i => i.IsDefault);\r\n // filtersData[filterKey] = filterItem.Data.map(i => new FilterItem(i));\r\n // filterSelection[filterKey] =\r\n // new FilterChip(filterKey, filterItem.DisplayName, filterItem.IsSingleSelect, defaultSelection, 0, false);\r\n // }\r\n\r\n // // Set the filters data and selection to be updated everywhere and save initial filters\r\n // this.filtersData = filtersData;\r\n // this.filterSelection = filterSelection;\r\n // this._initialFilters = JSON.parse(JSON.stringify(filterSelection));\r\n // this.saveFilters();\r\n // this.filtersLoaded.next(true);\r\n // // return config;\r\n // }\r\n\r\n // Function to reset few filters when route is changed\r\n // resetTimeDateFilter(isRenewalPage) {\r\n // this.isRenewalPage = isRenewalPage;\r\n // const resetFilter = isRenewalPage ? RENEWAL_FILTERS : OTHER_PAGE_FILTERS;\r\n // this.setDateRange();\r\n // const filterSelection = this.filterSelection;\r\n // const filtersData = this.filtersData;\r\n // for (const filterKey in resetFilter) {\r\n // const filterItem = resetFilter[filterKey];\r\n // const defaultSelection = filterItem.Data.find(i => i.IsDefault);\r\n // filtersData[filterKey] = filterItem.Data.map(i => new FilterItem(i));\r\n // filterSelection[filterKey]\r\n // = new FilterChip(filterKey, filterItem.DisplayName, filterItem.IsSingleSelect, defaultSelection, 0, false);\r\n // this._initialFilters[filterKey] = new FilterChip(\r\n // filterKey,\r\n // filterItem.DisplayName,\r\n // filterItem.IsSingleSelect,\r\n // defaultSelection,\r\n // 0,\r\n // false\r\n // );\r\n // }\r\n // this.filtersData = filtersData;\r\n // this.filterSelection = filterSelection;\r\n // this.saveFilters();\r\n // this.filtersLoaded.next(true);\r\n // }\r\n\r\n // resetFilters() {\r\n // this.filterSelection = JSON.parse(JSON.stringify(this._initialFilters));\r\n // }\r\n\r\n // Function to set initial date range values\r\n // setDateRange() {\r\n // const dateConfig = this.isRenewalPage ? this.getNextDaysConfig() : this.getLastDaysYearConfig();\r\n // this._dateRangeStartDate = dateConfig.startDate;\r\n // this._dateRangeEndDate = dateConfig.endDate;\r\n // }\r\n\r\n /* Commented old code */\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NoteTemplateComponent } from '../../components/note-template/note-template.component';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NoteService {\r\n isLowResolution = false;\r\n constructor(private _snackBar: MatSnackBar) {\r\n if (window.outerWidth < 1920) {\r\n this.isLowResolution = true;\r\n }\r\n }\r\n\r\n showResolutionNotification() {\r\n if (localStorage.getItem('resolutionNoteVisible') === 'TRUE') {\r\n return;\r\n }\r\n this.showNote('Please note that 1920x1080 is the recommended resolution for this application', 'top', 'browser-snackbar', 15).subscribe(\r\n data => {\r\n if (!data.dismissedByAction) {\r\n return;\r\n }\r\n localStorage.setItem('resolutionNoteVisible', 'TRUE');\r\n }\r\n );\r\n }\r\n\r\n showBrowserNotification() {\r\n if (localStorage.getItem('browserNoteVisible') === 'TRUE') {\r\n return;\r\n }\r\n this.showNote(\r\n 'Please note that Google Chrome is the recommended browser for this application' +\r\n (this.isLowResolution ? ' and recommended resolution is 1920' : ''),\r\n 'top',\r\n 'browser-snackbar',\r\n 15\r\n ).subscribe(data => {\r\n if (!data.dismissedByAction) {\r\n return;\r\n }\r\n localStorage.setItem('browserNoteVisible', 'TRUE');\r\n });\r\n }\r\n\r\n showRenewalNote() {\r\n if (localStorage.getItem('renewalNoteVisible') === 'TRUE') {\r\n return;\r\n }\r\n this.showNote(\r\n `Please note: The renewal list use a different filtering on the Date, it has changed from Brokerage Date to Renewal Date,\r\n also the date range has changed from 'last 365 days' to 'next 180 days' by default.`,\r\n 'top',\r\n 'renewal-snackbar'\r\n ).subscribe(data => {\r\n if (!data.dismissedByAction) {\r\n return;\r\n }\r\n localStorage.setItem('renewalNoteVisible', 'TRUE');\r\n });\r\n }\r\n\r\n showNote(message, position, parentClass, time = 3) {\r\n const snackRef = this._snackBar.openFromComponent(NoteTemplateComponent, {\r\n panelClass: parentClass,\r\n verticalPosition: position,\r\n horizontalPosition: 'center',\r\n data: { message }\r\n });\r\n return snackRef.afterDismissed();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NegativeValuePipe } from '../../pipes/negative-value.pipe';\r\nimport * as moment from 'moment';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TableService {\r\n constructor(private negativeValuePipe: NegativeValuePipe) { }\r\n\r\n numberKeys = ['Risk Reference', 'Retained Revenue(GBP)', 'Retained Revenue(Orig Ccy)', 'Retained Revenue(Sett Ccy)'];\r\n\r\n // Function to create dashlet table (without pagination)\r\n createTableData(tab, data, showMoreRecords = false, isRenewalPdf = false) {\r\n const keys = tab.headersList.filter(i => i.isPresentInDashlet);\r\n const dashletTableData = this.initTableData(data);\r\n dashletTableData.Headers = keys.map(key => this.createColumnHeaderConfig(data ? data[0] : {}, key, 12));\r\n // Commenting below line as total for dashlet is not required now\r\n if (showMoreRecords) {\r\n dashletTableData.TotalData = this.addTableTotalData(data, keys);\r\n }\r\n if (isRenewalPdf) {\r\n dashletTableData.Data = data[0];\r\n dashletTableData.TotalData = this.addTableGrandTotal(data[1], keys);\r\n }\r\n return dashletTableData;\r\n }\r\n\r\n // Function to create table with pagination\r\n createPaginatedTableData(tab, pageSize, data, valueLength = 12, totalData?) {\r\n const keys = tab.headersList ? tab.headersList.filter(i => !i.keyNotPresentOnFullView) : tab;\r\n const pages = Math.ceil(data.TotalRecords / pageSize);\r\n const fullScreenDashletData = this.initTableData(data.Data, pages);\r\n fullScreenDashletData.Headers = keys.map(key => this.createColumnHeaderConfig(data.Data[0], key, valueLength, \"fullView\"));\r\n if (totalData) {\r\n fullScreenDashletData.TotalData = this.addTableGrandTotal(totalData, keys);\r\n }\r\n return fullScreenDashletData;\r\n }\r\n\r\n // Function to initialise the table data\r\n initTableData(data, pages = 1) {\r\n return {\r\n Data: data,\r\n Headers: [],\r\n totalPages: pages,\r\n TotalData: {\r\n cellClass: 'total-table-cell'\r\n }\r\n };\r\n }\r\n\r\n // Function to calculate dashlet total from the records\r\n addTableTotalData(data, headersInfo) {\r\n const totalData = {\r\n cellClass: 'total-table-cell'\r\n };\r\n for (let i = 0; i < headersInfo.length; i++) {\r\n let value = '';\r\n const header = headersInfo[i];\r\n const key = header.key;\r\n if (i === 0) {\r\n value = 'Total';\r\n } else if (header.isTotal && data && data[0] && typeof data[0][key] === 'number') {\r\n value = data.reduce((a, b) => a + b[key], 0);\r\n }\r\n totalData[key] = value;\r\n }\r\n return totalData;\r\n }\r\n\r\n // Function to add grand total to the table\r\n addTableGrandTotal(data, headersInfo) {\r\n const totalData = {\r\n cellClass: 'total-table-cell'\r\n };\r\n for (let i = 0; i < headersInfo.length; i++) {\r\n const value = '';\r\n const header = headersInfo[i];\r\n const key = header.key ? header.key : header.field;\r\n if (i === 0) {\r\n totalData[key] = 'Grand Total';\r\n } else if (!data[0][key] || !header.isTotal) {\r\n totalData[key] = '';\r\n } else {\r\n totalData[key] = data[0][key];\r\n }\r\n }\r\n return totalData;\r\n }\r\n\r\n createColumnHeaderConfig(data, headerInfo, valueLength, view?) {\r\n if (!data) {\r\n return;\r\n }\r\n const type = typeof data[headerInfo.key];\r\n let cellClass = type === 'number' ? `table-cell values` : 'table-cell';\r\n\r\n // if(headerInfo.displayKey===\"Renewal Status\" && headerInfo.key===\"BusinessStatus\"){\r\n // cellClass = \"table-cell renValue\"\r\n // }\r\n // adding class for null values\r\n if (data[headerInfo.key] == null && headerInfo.isNumberKey) {\r\n cellClass += ' null-value';\r\n }\r\n\r\n // Need to remove\r\n // Condition for number columns in risk details\r\n if (this.numberKeys.indexOf(headerInfo.key) > -1) {\r\n cellClass += ' values';\r\n }\r\n\r\n const headerParams = {\r\n enableSort: false,\r\n field: headerInfo.key || headerInfo.field\r\n };\r\n\r\n const cellDefData = {\r\n headerName: headerInfo.displayKey,\r\n field: headerInfo.key,\r\n cellClass,\r\n cellRenderer: params => this.cellRendererForColumn(headerInfo, params, valueLength, view),\r\n // tooltipField: headerInfo.displayKey,\r\n headerComponentParams: {\r\n ...headerParams,\r\n cellClass\r\n },\r\n headerTooltip: headerInfo.tooltipDisplayKey ? headerInfo.tooltipDisplayKey : headerInfo.displayKey,\r\n lockPosition: true\r\n };\r\n if (!headerInfo.isTotal) {\r\n cellDefData['cellClass'] += ' number-cell';\r\n }\r\n if (headerInfo.width) {\r\n cellDefData['width'] = headerInfo.width;\r\n }\r\n // Condition when we have column defs created earlier (for ex as in risk details)\r\n if (headerInfo.headerName) {\r\n headerInfo.cellRenderer = cellDefData.cellRenderer;\r\n return { ...headerInfo };\r\n }\r\n return cellDefData;\r\n }\r\n\r\n displayToolTip(value) {\r\n if (value == null) {\r\n return 'N/A';\r\n } else if (typeof value === 'number') {\r\n return value;\r\n } else {\r\n return value.replace(/[ ]/g, '\\u00a0');\r\n }\r\n }\r\n\r\n getTooltipFormattedValue(value) {\r\n const tooltipValue = value.toFixed(2);\r\n return tooltipValue.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n }\r\n\r\n cellRendererForColumn(headerInfo, params, valueLength, view?) {\r\n const key = headerInfo.displayKey;\r\n const title = this.displayToolTip(params.value);\r\n const decimal = headerInfo.hasTrendsArrow ? 2 : 1;\r\n const formattedValue = this.getFormattedValue(params.value, decimal, headerInfo, valueLength, view);\r\n if (headerInfo.hasTrendsArrow && typeof params.value === 'number') {\r\n return this.addArrowRenderer(title, formattedValue, params.value < 0);\r\n } else if (headerInfo.hasPercentageValue && typeof params.value === 'number') {\r\n return this.percentageRenderer(title, formattedValue, params.value < 0);\r\n } else if (headerInfo.hasStatusColor) {\r\n return this.addStatusColorRenderer(title, formattedValue, params['data']);\r\n } else {\r\n let tooltipValue;\r\n if (typeof title === 'number') {\r\n tooltipValue = this.getTooltipFormattedValue(title);\r\n } else {\r\n tooltipValue = title;\r\n }\r\n if (params && params.data && params.data.IsTotals) {\r\n return `${formattedValue}`;\r\n } else {\r\n return `${formattedValue}`;\r\n }\r\n }\r\n }\r\n\r\n getFormattedValue(value, decimal = 0, headerInfo, valueLength, view?) {\r\n if (value == null) {\r\n return 'N/A';\r\n } else if (headerInfo.isDateType && typeof value !== 'number') {\r\n return value;\r\n } else if (typeof value !== 'number') {\r\n return value;\r\n // return value.length > valueLength\r\n // ? value.substr(0, valueLength - 6) + '...' + value.substr(value.length - 3, value.length) : value;\r\n }\r\n const formatted = headerInfo.disableMillionConversion ? Math.abs(value).toFixed(decimal) : Math.abs(value / 1000000).toFixed(decimal);\r\n // .toString()\r\n // .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n if (value < 0) {\r\n return view === \"fullView\" ? `(${formatted})` : `(${formatted} m)`;\r\n }\r\n return view === \"fullView\" ? `${formatted}` : `${formatted} m`;\r\n }\r\n\r\n formatPercentageDecimal(value) {\r\n return this.negativeValuePipe.transform(value, '', '', '', 2) + '%';\r\n }\r\n\r\n formatPercent(value, negative) {\r\n const tableValue = this.negativeValuePipe.transform(value, '', '', '', 0);\r\n return tableValue + '%';\r\n }\r\n\r\n addArrowRenderer(title, formattedValue, isNegative) {\r\n const value = this.formatPercent(title, isNegative);\r\n const newValue = `
${value}
`;\r\n if (!isNegative) {\r\n return `${newValue}`;\r\n } else {\r\n return `${newValue}`;\r\n }\r\n }\r\n\r\n addStatusColorRenderer(title, formattedValue, data) {\r\n if (data && data['LastUpdatedColourCode'] === 'Red') {\r\n return `
${formattedValue}
`;\r\n } else {\r\n return `
${formattedValue}
`;\r\n }\r\n }\r\n\r\n percentageRenderer(title, formatted, isNegative) {\r\n const value = this.negativeValuePipe.transform(title, '%');\r\n return `
${value}
`;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LogLevel, Configuration, BrowserCacheLocation } from '@azure/msal-browser';\r\nimport { AppConfig } from '../../src/app/app.config';\r\n\r\n@Injectable()\r\nexport class AuthConfig {\r\n\r\n isIE = window.navigator.userAgent.indexOf(\"MSIE \") > -1 || window.navigator.userAgent.indexOf(\"Trident/\") > -1;\r\n\r\n msalConfig: Configuration = {\r\n auth: {\r\n clientId: this.appconfig.AADConfig.clientId,\r\n authority: this.appconfig.AADConfig.authority,\r\n redirectUri: this.appconfig.AADConfig.redirectUri\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage, // Configures cache location. \"sessionStorage\" is more secure, but \"localStorage\" gives you SSO between tabs.\r\n storeAuthStateInCookie: this.isIE, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback(logLevel: LogLevel, message: string) {\r\n //put logger to check logs if required\r\n },\r\n logLevel: LogLevel.Verbose,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n }\r\n protectedResources = {\r\n api: {\r\n endpoint: this.appconfig.apiUrl,\r\n scopes: [this.appconfig.AADConfig.apiScope],\r\n },\r\n }\r\n loginRequest = {\r\n scopes: []\r\n };\r\n\r\n constructor(private appconfig: AppConfig) { }\r\n}","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { AppConfig } from './app/app.config';\r\n\r\nfetch('/assets/appconfig.json', { method: 'get' }).then(response => {\r\n response\r\n .json()\r\n .then(settings => {\r\n const booleanProperties = ['useMockData', 'production'];\r\n booleanProperties.forEach((value, index, array) => {\r\n settings[array[index]] = settings[array[index]] == 'true';\r\n });\r\n if (settings.production) {\r\n enableProdMode();\r\n }\r\n platformBrowserDynamic([\r\n {\r\n provide: AppConfig,\r\n useValue: settings\r\n },\r\n ]).bootstrapModule(AppModule);\r\n })\r\n .catch(err => console.log(err));\r\n});\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-SG\": 28661,\n\t\"./en-SG.js\": 28661,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["RouterModule","PreloadAllModules","UnauthorisedComponent","MsalGuard","TermsAndConditionsComponent","ExportExcelComponent","onAuthRequired","oktaAuth","router","navigate","routes","path","canActivate","loadChildren","then","m","HomeModule","component","redirectTo","pathMatch","AppRoutingModule","forRoot","preloadingStrategy","relativeLinkResolution","imports","exports","NavigationEnd","GoogleAnalytics","Hotjar","PAGES_INFO","filter","takeUntil","Subject","EventType","InteractionStatus","AppComponent","noteService","appConfig","analyticsService","baseService","msalBroadcastService","authService","appInsights","dashboardRoutes","parseToBoolean","googleAnalytics","trackingOn","addGA","trackingCode","events","subscribe","event","localStorage","getItem","isDefaultPageView","next","addCustomGAEvents","page_title","urlAfterRedirects","page_location","userId","pageName","userEmail","invalidRoutes","item","length","addHotJar","isChrome","navigator","userAgent","indexOf","test","vendor","window","outerWidth","showResolutionNotification","showBrowserNotification","performAADCode","msalSubject$","pipe","msg","eventType","LOGIN_SUCCESS","ACQUIRE_TOKEN_NETWORK_START","_destroying$","result","payload","account","localStorageMail","undefined","emailFromPayload","username","setItem","JSON","stringify","name","dateNowMilliseconds","Date","getTime","lastEventDateMilliseconds","parseInt","handleTracking","toString","isLoginSuccess","instance","setActiveAccount","inProgress$","status","None","checkAndSetActiveAccount","activeAccount","getActiveAccount","getAllAccounts","accounts","value","toLowerCase","email","setAuthenticatedUserContext","logPageView","i0","selectors","decls","vars","template","AppConfig","AppInsight","AADConfig","countryNames","BrowserModule","BrowserAnimationsModule","HTTP_INTERCEPTORS","HttpClientModule","AuthGuard","AppInsightsService","NegativeValuePipe","MatSnackBarModule","MatDialogModule","MAT_DIALOG_DEFAULT_OPTIONS","PublicClientApplication","InteractionType","MsalInterceptor","MsalBroadcastService","MsalService","MSAL_GUARD_CONFIG","MSAL_INSTANCE","MSAL_INTERCEPTOR_CONFIG","AuthConfig","StartAndEndDatePipe","authConfig","MSALInstanceFactory","msalConfig","MSALInterceptorConfigFactory","protectedResourceMap","Map","set","protectedResources","api","endpoint","scopes","interactionType","Redirect","MSALGuardConfigFactory","authRequest","loginRequest","AppModule","authConfiguration","bootstrap","provide","useClass","multi","useFactory","useValue","hasBackdrop","declarations","dashletService","route","queryParamMap","fileName","params","get","sasUri","mockExportToExcelService","downloadStatus","consts","LOGIN_PARTICLE_PARAMS","particlesJS","logoutRedirect","ctx","MAT_SNACK_BAR_DATA","NoteTemplateComponent","data","snackRef","dismissWithAction","MAT_DIALOG_DATA","SessionTimeOutDialogComponent","dialogRef","doLogout","close","console","log","COPYRIGHTTEXT","DASHBOARD_NAME","PAGES_TAB","PAGING_OPTIONS","displayName","particles","number","density","enable","value_area","color","shape","type","stroke","width","polygon","nb_sides","image","src","height","opacity","random","anim","speed","opacity_min","sync","size","size_min","line_linked","distance","move","direction","straight","out_mode","bounce","attract","rotateX","rotateY","interactivity","detect_on","onhover","mode","onclick","resize","modes","grab","bubble","duration","repulse","push","particles_nb","remove","retina_detect","FILTERS_CONFIG","className","child","key","isSingleSelect","fixedValues","filterKey","count","singleSelectDropdown","FILTER_COUNT_DASHLET_CONFIG","RENEWAL_FILTERS","DateType","IsSingleSelect","DisplayName","Key","Data","Name","IsDefault","TimePeriod","OTHER_PAGE_FILTERS","StrongerTogether","StrongerTogetherReason","date","month","getMonth","year","getFullYear","fullFinancialYear","financialYear","Number","slice","previousFinancialYear","FIXED_FILTERVALUES_MOCK","RateType","ReportingCurrency","levelsConfigs","index","dashlet","drillUpsLevelsConfigs","dashletName","URL_LIST","fixedFilters","defaultFilters","filterConfig","riskDetailsData","riskDetailsColumns","exportToExcel","exportGlobalExcel","riskDetailsExportToExcel","footerInfo","reportIssue","loginTime","accessLevel","savedFiltersList","saveNewFilter","deleteSavedFilter","submitFeedback","monthsListForRenewal","filterCount","yearList","userMDSDetails","emailGlobalExcel","exportDatabaseExcelChunks","currentRoute","state","checkSessionAuth","queryParams","returnUrl","url","snapshot","factory","AccessLevel","obj","levels","map","NestedItem","i","nestedObj","Type","FilterItem","disabled","singleSelect","isCurrencyFilter","Description","chipName","filtervalue","filterkey","filterChipName","FilterChip","totalRecords","removable","selected","FilterConfigItem","SavedFilters","renewalFilters","nonRenewalFilters","SavedFilterItem","setName","FilterSetName","filterDisplayList","filterList","parse","FilterSet","isDefault","suffix","prefix","decimalFormat","tempValue","parseFloat","isNegative","absValue","Math","abs","formattedValue","divisionFormat","extension","round","dividend","pow","decimalSeparator","diff","split","repeat","replace","pure","moment","filterService","chipData","formattedText","globalPayload","sortedyearList","timePeriodValues","sort","startDate","format","endDate","join","AnalyticsService","analyticsScript","document","createElement","head","appendChild","script","innerHTML","hotJarScript","providedIn","catchError","throwError","ApiService","http","apiUrl","getUrl","handleResponse","res","handleError","err","req","post","put","responseType","handleFileResponse","ENV_URL","urlList","getQueryString","query","Object","keys","encodeURIComponent","k","response","error","handleCustomServerError","file","Blob","msSaveBlob","a","body","fileURL","URL","createObjectURL","href","download","click","errMsg","message","Error","AppInsights","instrumentationKey","setAppInsightsData","properties","measurements","trackPageView","AddGlobalProperties","trackEvent","trackException","config","downloadAndSetup","clearAuthenticatedUserContext","AuthService","dialog","sessionTimer","clearTimeout","setTimeout","open","disableClose","sessionTime","BehaviorSubject","BaseService","apiService","formData","dashboard","updateLastLogin","Promise","resolve","reject","profile","firstName","lastName","middleName","emailID","loginID","login","setLastLoggedInTime","dateTimeData","datetime","toLocaleDateString","time","toLocaleTimeString","newFormat","lastLoggedInTime","page","dashletTypeId","IsMDOrAbove","isMDOrAboveSub","rating","comments","getValue","forkJoin","DashletService","tableService","_pageName","selectedPage","isPDFDisable","payloadConfig","queryTypeId","isTotalRequired","applyStaticFilters","removedPayload","rangeData","getDateRangeValues","appliedFilters","getSelectedFilters","getFYRate","find","producerPayload","operator","includes","filterObj","FYCYDates","add","callsList","userMDSId","isExternal","_dashboardName","call","exportType","toCurrency","timePeriodNextDays","nextDaysValue","downloadFile","dashletArr","dashlets","sortColumnKey","sortDirection","selectedEntity","pageIndex","pageSize","sendEmail","dashletData","getSingleDashletData","marketOrProducer","UserName","sortColumnName","sortOrder","title","_activeDashletTypes","chartInstance","tableData","dataFormat","sortData","tableHead","Headers","headerName","tableKeys","field","tableBody","getFormattedPDFTableValue","totalData","values","TotalData","shift","decimal","formatted","toFixed","allDashletsData","createPDFTableData","getFiltersForPDF","entries","exhibitGwpValue","firstYearGwpValue","secondYearGwpValue","thirdYearGwpValue","fourthYearGwpValue","fifthYearGwpValue","FilterService","_filtersData","val","filterValues","_filterSelection","selectedFilter","_isRenewalPage","_savedFilters","filters","savedFilterList","_selectedFilterSetName","selectedSavedFilter","savedFilters","_filterGroups","groups","updatedFilterGroups","entityType","getAppliedFilters","_dashletType","_dateRangeStartDate","_dateRangeEndDate","globalSearchKey","staticPayload","US","setOptionalFilterValues","savedFilterSelectionChanged","asObservable","getLastDaysYearConfig","initialFilters","_initialFilters","filterData","filtersData","currencyUpdated","TotalRecords","filterSelection","filterValue","selectedFilters","filterName","getFiltersValue","strongerTogetherValueChanged","strongerTogetherReasonChanged","appliedFilter","isExclude","dateRangeValue","monthsList","yearsList","_selectedFilters","getFormattedDate","day","substr","isSelected","removeFilters","checkIfValueUpdated","updateGlobalSearchKey","filterSelections","newValue","presentValue","updateDashlets","setSelectedFilters","setFilterGroupCount","updateDashletData","strongerTogetherFilters","chipsUpdated","updateOptionalFilter","filterStatusChanged","keyList","triggerDashletsData","list","removeChip","strongerTogetherReason","strongerTogetherReasonChip","changeChipForStrongerTogetherReason","updateMandatoryFilter","removeStrongerTogeteherPolicyFilters","removeStrongerTogeteherReason","saveFilters","levelConfig","levelConfigs","level","goBackLevelForDashlet","subtract","startOf","endOf","days","today","dateData","monthValue","yearValue","filterOpened","initFilterSelectionAndValues","isRenewalPage","setFixedFiltersData","filterConfigArr","concat","fixedFilterValues","filterItem","defaultSelection","resetBreadCrumbForAllDashlets","filterGroups","forEach","groupItem","reduce","acc","childItem1","searchKey","filterCountSub","filterCountLoading","entitiesList","entitiesListAPI","getSeperateFilterCount","entity","entitiesJoin","updateFilterCount","unsubscribe","countData","separateCountData","resetFilter","_renewalSavedList","_nonRenewalSavedList","filtersLoaded","pageNames","userName","updateSavedListForPages","handleUpdatedSavedFilters","filterSetName","filterSet","GetCurrentFinancialYear","selectedRateType","_a","_b","selectedFilterSetName","setSelectedFilterSet","formatDisplayList","filtersList","defaultFilterSet","setMandatoryFilterSet","savedFilterSet","filterSetItem","strongerTogetherAppliedFilter","_c","appliedFilterItem","strongerTogetherReasonAppliedFilter","_d","getCurrencyValues","MonthsOrYears","selections","selectionList","displayFormat","appliedDisplay","dateRange","getFilterFormatForSavedFilters","findDuplicateName","renewalMonthsList","selectedTimePeriodFilter","dateType","NoteService","_snackBar","isLowResolution","showNote","dismissedByAction","position","parentClass","openFromComponent","panelClass","verticalPosition","horizontalPosition","afterDismissed","TableService","negativeValuePipe","tab","showMoreRecords","isRenewalPdf","headersList","isPresentInDashlet","dashletTableData","initTableData","createColumnHeaderConfig","addTableTotalData","addTableGrandTotal","valueLength","keyNotPresentOnFullView","pages","ceil","fullScreenDashletData","totalPages","cellClass","headersInfo","header","isTotal","b","headerInfo","view","isNumberKey","numberKeys","headerParams","enableSort","cellDefData","displayKey","cellRenderer","cellRendererForColumn","headerComponentParams","headerTooltip","tooltipDisplayKey","lockPosition","tooltipValue","displayToolTip","hasTrendsArrow","getFormattedValue","addArrowRenderer","hasPercentageValue","percentageRenderer","hasStatusColor","addStatusColorRenderer","getTooltipFormattedValue","IsTotals","isDateType","disableMillionConversion","transform","negative","tableValue","formatPercent","formatPercentageDecimal","LogLevel","BrowserCacheLocation","appconfig","auth","clientId","authority","redirectUri","cache","cacheLocation","LocalStorage","storeAuthStateInCookie","isIE","system","loggerOptions","loggerCallback","logLevel","Verbose","piiLoggingEnabled","apiScope","enableProdMode","fetch","method","json","booleanProperties","array","settings","production","__NgCli_bootstrap_1","bootstrapModule","catch"],"sourceRoot":"webpack:///"}