{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAA0H;AAC3E;AACR;AAEgC;AACQ;AACD;AACA;AAEP;AACjB;AAC8C;AAC7C;;;;;;;;;;ICZvDW,qEAAA,GAA8C;IAE1CA,4DADF,aAAwB,aACQ;IAC5BA,uDAAA,kBAA2B;IAE/BA,0DADE,EAAM,EACF;;;;;;;IAGNA,4DAAA,+BAA8E;IAAjCA,wDAAA,2BAAAM,mFAAA;MAAAN,2DAAA,CAAAQ,GAAA;MAAA,MAAAC,MAAA,GAAAT,2DAAA;MAAA,OAAAA,yDAAA,CAAiBS,MAAA,CAAAG,YAAA,EAAc;IAAA,EAAC;IAC3EZ,4DAAA,wBAAyF;IAAlDA,wDAAA,4BAAAa,0EAAA;MAAAb,2DAAA,CAAAQ,GAAA;MAAA,MAAAC,MAAA,GAAAT,2DAAA;MAAA,OAAAA,yDAAA,CAAkBS,MAAA,CAAAG,YAAA,EAAc;IAAA,EAAC;IACtEZ,uDAAA,qBAAkB;IACpBA,0DAAA,EAAc;IAGRA,4DAFN,mCAA8B,aAClB,aACwB;IAC5BA,uDAAA,iBAAyB;IAE7BA,0DADE,EAAM,EACC;IAEPA,4DADF,WAAM,cAC4B;IAC9BA,uDAAA,qBAA+B;IACjCA,0DAAA,EAAM;IAEJA,4DADF,eAA+B,kBACoB;IAAxBA,wDAAA,mBAAAc,6DAAA;MAAAd,2DAAA,CAAAQ,GAAA;MAAA,MAAAC,MAAA,GAAAT,2DAAA;MAAA,OAAAA,yDAAA,CAASS,MAAA,CAAAM,WAAA,EAAa;IAAA,EAAC;IAACf,uDAAA,oBAAgG;IAC/IA,oDAAA,oBAAW;IAAAA,0DAAA,EAAS;IACtBA,uDAAA,qBAA+B;IAIzCA,0DAHQ,EAAM,EACD,EACW,EACA;;;ADCpB,MAAOiB,YAAY;EAUvBC,YACUC,IAAiB,EACjBC,MAAyB,EACzBC,OAAuB;IAFvB,KAAAF,IAAI,GAAJA,IAAI;IACJ,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,OAAO,GAAPA,OAAO;IAZjB,KAAAC,KAAK,GAAG,wBAAwB;IAEhC,KAAAC,GAAG,GAAWC,YAAY,CAACC,OAAO,CAAC,KAAK,CAAE;IAGlC,KAAAC,eAAe,GAAG,KAAK;IAC/B,KAAAC,WAAW,GAAGtC,qDAAM,CAACQ,+DAAW,CAAC;IACjC,KAAA+B,eAAe,GAAG,IAAI;IACtB,KAAAC,qBAAqB,GAAG,EAAE;IAMxB,IAAI,CAACC,SAAS,GAAG,IAAI;IACrBT,OAAO,CAACS,SAAS,GAAG,IAAI;IACxB,IAAI,CAACH,WAAW,CAACI,wBAAwB,EAAE,CAACC,SAAS,CAAEC,MAAe,IAAI;MACxEA,MAAM,GAAG,IAAI,CAACC,OAAO,EAAEC,IAAI,EAAE,GAAG,IAAI,CAACD,OAAO,EAAEE,KAAK,EAAE;IACvD,CAAC,CAAC;EACJ;EAEAC,QAAQA,CAAA;IACN1C,wFAAmB,CAAC2C,IAAI,CAAC,OAAO,CAAC;IACjC,MAAMC,KAAK,GAAGf,YAAY,CAACC,OAAO,CAAC,cAAc,CAAC;IAClD,IAAIc,KAAK,EAAE;MACT,IAAI,CAACC,UAAU,EAAE;IACnB;IAEA,IAAI,CAACnB,OAAO,CAACoB,UAAU,CAACT,SAAS,CAAEU,KAAK,IAAI;MAC1C,IAAI,CAACZ,SAAS,GAAGY,KAAK;MACtB,IAAI,CAACtB,MAAM,CAACuB,YAAY,EAAE;IAC5B,CAAC,CAAC;EACJ;EAEAC,eAAeA,CAAA;IACb,IAAI,CAACC,iBAAiB,EAAE;EAC1B;EAEAC,kBAAkBA,CAAA;IAChB,IAAI,CAACD,iBAAiB,EAAE;EAC1B;EAEQA,iBAAiBA,CAAA;IACvB,IAAI,IAAI,CAACE,OAAO,IAAI,CAAC,IAAI,CAACrB,eAAe,EAAE;MACzC,IAAI,CAACqB,OAAO,CAACC,UAAU,CAACC,aAAa,CAACC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACC,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;MAC1F,IAAI,CAAC1B,eAAe,GAAG,IAAI;IAC7B;EACF;EAEAyB,QAAQA,CAACE,KAAY;IACnB,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CAAC,aAAa,CAAC;IACrD,MAAMC,MAAM,GAAGJ,KAAK,CAACI,MAAqB;IAC1C,IAAIH,MAAM,EAAE;MACV,IAAIG,MAAM,CAACC,SAAS,GAAG,GAAG,EAAE;QAC1BJ,MAAM,CAACK,KAAK,CAACC,OAAO,GAAG,MAAM;MAC/B,CAAC,MAAM;QACLN,MAAM,CAACK,KAAK,CAACC,OAAO,GAAG,MAAM;MAC/B;IACF;EACF;EAEA7C,WAAWA,CAAA;IACT,IAAI,CAACgC,OAAO,EAAEC,UAAU,CAACC,aAAa,CAACY,QAAQ,CAAC;MAAEC,GAAG,EAAE,CAAC;MAAEC,QAAQ,EAAE;IAAQ,CAAE,CAAC;EACjF;EAEA;;EAEMvB,UAAUA,CAAA;IAAA,IAAAwB,KAAA;IAAA,OAAAC,0IAAA;MACd,MAAMC,KAAK,SAASF,KAAI,CAAC7C,IAAI,CAACgD,aAAa,EAAE;MAC7C,IAAID,KAAK,EAAE;QACTF,KAAI,CAAClC,SAAS,GAAG,KAAK;QACtBkC,KAAI,CAAC3C,OAAO,CAACS,SAAS,GAAG,KAAK;MAChC,CAAC,MAAM;QACLkC,KAAI,CAAC7C,IAAI,CAACiD,MAAM,EAAE;QAClBJ,KAAI,CAAC7C,IAAI,CAACkD,KAAK,EAAE;MACnB;IAAC;EACH;EAEAzD,YAAYA,CAAA;IACV,IAAI,CAACsB,OAAO,EAAEE,KAAK,EAAE;EACvB;;;uBAjFWnB,YAAY,EAAAjB,+DAAA,CAAAuE,oEAAA,GAAAvE,+DAAA,CAAAA,4DAAA,GAAAA,+DAAA,CAAA0E,6EAAA;IAAA;EAAA;;;YAAZzD,YAAY;MAAA2D,SAAA;MAAAC,SAAA,WAAAC,mBAAAC,EAAA,EAAAC,GAAA;QAAA,IAAAD,EAAA;;;;;;;;;;;;;;;;;UCvBzB/E,wDAPA,IAAAkF,oCAAA,0BAA8C,IAAAC,mCAAA,iCAAAnF,oEAAA,CAOxB;;;;UAPUA,wDAAjB,SAAAgF,GAAA,CAAAlD,SAAA,CAAiB,aAAAwD,UAAA,CAAY;;;qBDoBxC/F,iDAAI,EACJD,0DAAY,EACZE,gFAAe,EACfC,wFAAiB,EACjBC,wFAAmB,EACnBE,wEAAgB,EAAA2F,kEAAA,EAAAA,2EAAA,EAAAA,yEAAA,EAChBzF,6GAAkB,EAClBC,kEAAa,EAAA4F,4DAAA;MAAAE,MAAA;IAAA;EAAA;;;;;;;;;;;;;;;;;;AE1B+C;AACqB;AAE9E,MAAMG,MAAM,GAAW,CAC5B;EACEC,IAAI,EAAE,WAAW;EACjBC,aAAa,EAAEA,CAAA,KAAM,yMAAoD,CAACC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,kBAAkB,CAAC;EAC/GC,WAAW,EAAE,CAACR,yEAAY;CAC3B,EACD;EACEG,IAAI,EAAE,QAAQ;EACdC,aAAa,EAAEA,CAAA,KAAM,6LAA8C,CAACC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACG,eAAe,CAAC;EACtGD,WAAW,EAAE,CAACR,yEAAY;CAC3B,EACD;EACEG,IAAI,EAAE,gBAAgB;EACtBC,aAAa,EAAEA,CAAA,KACb,qXAAiG,CAACC,IAAI,CACnGC,GAAG,IAAKA,GAAG,CAACI,iCAAiC,CAC/C;EACHF,WAAW,EAAE,CAACR,yEAAY;CAC3B;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,IAAI,EAAE,2BAA2B;EACjCC,aAAa,EAAEA,CAAA,KACb,wcAA6E,CAACC,IAAI,CAC/EC,GAAG,IAAKA,GAAG,CAACK,yBAAyB,CACvC;EACHH,WAAW,EAAE,CAACR,yEAAY,CAAC;EAC3BY,aAAa,EAAE,CAACX,8FAAmB;CACpC,EACD;EACEE,IAAI,EAAE,gCAAgC;EACtCC,aAAa,EAAEA,CAAA,KACb,4dAAuF,CAACC,IAAI,CACzFC,GAAG,IAAKA,GAAG,CAACO,6BAA6B,CAC3C;EACHL,WAAW,EAAE,CAACR,yEAAY;CAC3B,EACD;EACEG,IAAI,EAAE,UAAU;EAChBC,aAAa,EAAEA,CAAA,KAAM,oPAAkD,CAACC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACQ,iBAAiB,CAAC;EAC5GN,WAAW,EAAE,CAACR,yEAAY,CAAC;EAC3Be,QAAQ,EAAE,CACR;IACEZ,IAAI,EAAE,KAAK;IACXC,aAAa,EAAEA,CAAA,KACb,ieAAyE,CAACC,IAAI,CAC3EC,GAAG,IAAKA,GAAG,CAACU,uBAAuB,CACrC;IACHJ,aAAa,EAAE,CAACX,8FAAmB;GACpC;CAEJ,EACD;EACEE,IAAI,EAAE,eAAe;EACrBC,aAAa,EAAEA,CAAA,KACb,yNAA4D,CAACC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACW,qBAAqB,CAAC;EACvGT,WAAW,EAAE,CAACR,yEAAY;CAC3B,EACD;EACEG,IAAI,EAAE,QAAQ;EACdC,aAAa,EAAEA,CAAA,KAAM,6LAA8C,CAACC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACY,eAAe;CACtG,EACD;EACEf,IAAI,EAAE,OAAO;EACbC,aAAa,EAAEA,CAAA,KAAM,yLAA4C,CAACC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACa,cAAc,CAAC;EACnGX,WAAW,EAAE,CAACR,yEAAY;CAC3B,EACD;EACEG,IAAI,EAAE,EAAE;EACRiB,SAAS,EAAE,MAAM;EACjBC,UAAU,EAAE;CACb,EACD;EACElB,IAAI,EAAE,IAAI;EACViB,SAAS,EAAE,MAAM;EACjBC,UAAU,EAAE;CACb,CACF;;;;;;;;;;;;;;;;;;;;;;;;ACrF8C;AAC6C;AAEvC;;;;AAU/C,MAAO3H,eAAe;EAG1B0B,YAAoBsG,UAAsB,EAAUC,MAAc,EAAUC,UAA8B;IAAtF,KAAAF,UAAU,GAAVA,UAAU;IAAsB,KAAAC,MAAM,GAANA,MAAM;IAAkB,KAAAC,UAAU,GAAVA,UAAU;IAFtF,KAAAnG,GAAG,GAAGC,YAAY,CAACC,OAAO,CAAC,KAAK,CAAC;IACjC,KAAAkG,aAAa,GAAkB,IAAI;IAsBnC,KAAAC,OAAO,GAAG,KAAK;IAEf,KAAAC,OAAO,GAAmB,CACxB;MAAEC,EAAE,EAAE,QAAQ;MAAEC,IAAI,EAAE,mBAAmB;MAAEC,OAAO,EAAE;IAAQ,CAAE,EAC9D;MAAEF,EAAE,EAAE,QAAQ;MAAEC,IAAI,EAAE,QAAQ;MAAEC,OAAO,EAAE;IAAQ,CAAE,EACnD;MAAEF,EAAE,EAAE,QAAQ;MAAEC,IAAI,EAAE;IAAM,CAAE,CAC/B;IAED,KAAAE,cAAc,GAAG,QAAQ;IACzB,KAAAC,gBAAgB,GAAG,QAAQ;IAC3B,KAAAC,gBAAgB,GAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,SAAS,CAAC;IAoBjF,KAAAC,aAAa,GAAIC,KAAsD,IAAkB;MACvF,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,aAAa,IAAIA,KAAK,EAAE;QACvDA,KAAK,GAAGA,KAAK,CAACC,WAAW;MAC3B;MACA,IAAID,KAAK,IAAIA,KAAK,CAACE,MAAM,GAAG,CAAC,EAAE;QAC7B;QACA,QAAQ,IAAI,CAACL,gBAAgB;UAC3B,KAAK,KAAK;YACR,OAAOM,OAAO,CAACC,OAAO,CAAC,CAAC;cAAE/F,KAAK,EAAE,GAAG;cAAE4F,WAAW,EAAE,oCAAoC;cAAEI,QAAQ,EAAE;YAAI,CAAE,CAAC,CAAC;UAC7G,KAAK,QAAQ;YACX,OAAO,IAAI,CAACC,gBAAgB,CAACN,KAAK,CAAC;UACrC,KAAK,sBAAsB;YACzB,OAAOG,OAAO,CAACC,OAAO,CAAC,CAAC;cAAE/F,KAAK,EAAE,GAAG;cAAE4F,WAAW,EAAE,oCAAoC;cAAEI,QAAQ,EAAE;YAAI,CAAE,CAAC,CAAC;UAC7G,KAAK,SAAS;YACZ,OAAOF,OAAO,CAACC,OAAO,CAAC,CAAC;cAAE/F,KAAK,EAAE,GAAG;cAAE4F,WAAW,EAAE,oCAAoC;cAAEI,QAAQ,EAAE;YAAI,CAAE,CAAC,CAAC;UAC7G;YACE,OAAOF,OAAO,CAACC,OAAO,CAAC,CAAC;cAAE/F,KAAK,EAAE,GAAG;cAAE4F,WAAW,EAAE,oCAAoC;cAAEI,QAAQ,EAAE;YAAI,CAAE,CAAC,CAAC;QAC/G;MACF,CAAC,MAAM,OAAOF,OAAO,CAACC,OAAO,CAAC,CAAC;QAAE/F,KAAK,EAAE,GAAG;QAAE4F,WAAW,EAAE,oCAAoC;QAAEI,QAAQ,EAAE;MAAI,CAAE,CAAC,CAAC;IACpH,CAAC;IArEC;EACF;EAEME,kBAAkBA,CAAA;IAAA,IAAA5E,KAAA;IAAA,OAAAC,0IAAA;MACtB,IAAID,KAAI,CAACzC,GAAG,EAAE;QACZ,IAAI;UACF,MAAMsH,MAAM,SAActB,mDAAa,CAACvD,KAAI,CAACwD,UAAU,CAACsB,uBAAuB,CAAC9E,KAAI,CAACzC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;UAC7G,IAAIsH,MAAM,IAAIA,MAAM,CAAC,CAAC,CAAC,CAACE,SAAS,EAAE;YACjC/E,KAAI,CAAC2D,aAAa,GAAGkB,MAAM,CAAC,CAAC,CAAC,CAACE,SAAS;UAC1C,CAAC,MAAM;YACL;YACA/E,KAAI,CAAC2D,aAAa,GAAG,UAAU;UACjC;QACF,CAAC,CAAC,OAAOqB,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;QACxD;MACF;IAAC;EACH;EAeAE,oBAAoBA,CAACC,SAAiB,EAAE9F,KAAU;IAChD,IAAI,CAAC6E,gBAAgB,GAAG7E,KAAK;EAC/B;EAEA;EACM+F,mBAAmBA,CAACD,SAAiB,EAAE9F,KAAU;IAAA,IAAAgG,MAAA;IAAA,OAAApF,0IAAA;MACrD,MAAMoF,MAAI,CAACT,kBAAkB,EAAE;MAC/BS,MAAI,CAACC,MAAM,CAACC,WAAW,EAAE;MACzBF,MAAI,CAAC5B,MAAM,CAAC+B,aAAa,CAAC,WAAWH,MAAI,CAAC1B,aAAa,IAAItE,KAAK,CAACX,KAAK,EAAE,CAAC;IAAC;EAC5E;EAEAiG,gBAAgBA,CAACN,KAAa;IAC5B,OAAOf,oDAAc,CAAC,IAAI,CAACE,UAAU,CAACiC,uBAAuB,CAACpB,KAAK,CAACqB,WAAW,EAAE,CAAC,CAAC,CAACvD,IAAI,CAAEwD,QAAQ,IAAI;MACpG,IAAI,CAACA,QAAQ,IAAIA,QAAQ,CAACpB,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC;QAAE7F,KAAK,EAAE,GAAG;QAAE4F,WAAW,EAAE,kBAAkB;QAAEI,QAAQ,EAAE;MAAI,CAAE,CAAC,CAAC,KAC5G,OAAOiB,QAAQ;IACtB,CAAC,CAAC;EACJ;;;uBApDWnK,eAAe,EAAAQ,+DAAA,CAAAuE,wEAAA,GAAAvE,+DAAA,CAAA0E,mDAAA,GAAA1E,+DAAA,CAAA0E,+DAAA;IAAA;EAAA;;;YAAflF,eAAe;MAAAoF,SAAA;MAAAC,SAAA,WAAAkF,sBAAAhF,EAAA,EAAAC,GAAA;QAAA,IAAAD,EAAA;oEAuBfsC,wFAAmB;;;;;;;;;;;;;;UCrChCrH,4DAAA,sBAUqE;UAAnEA,wDADA,iCAAAgK,qEAAAC,MAAA;YAAA,OAAuBjF,GAAA,CAAAoE,mBAAA,CAAoB,SAAS,EAAAa,MAAA,CAAS;UAAA,EAAC,kCAAAC,sEAAAD,MAAA;YAAA,OACtCjF,GAAA,CAAAkE,oBAAA,CAAqB,SAAS,EAAAe,MAAA,CAAS;UAAA,EAAC;UAVlEjK,0DAAA,EAUqE;;;UAFnEA,wDAJA,YAAAgF,GAAA,CAAA4C,OAAA,CAAmB,YAAA5C,GAAA,CAAA6C,OAAA,CACA,mBAAA7C,GAAA,CAAAiD,cAAA,CACc,qBAAAjD,GAAA,CAAAmD,gBAAA,CACI,kBAAAnD,GAAA,CAAAoD,aAAA,CACN;;;qBDErBhB,yDAAY,EAAEC,wFAAmB;MAAAxB,MAAA;IAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;AETE;AACiD;;;;;;ICFhG7F,qEAAA,GAAkC;IAChCA,uDAAA,sBAA0C;;;;;IAA5BA,uDAAA,EAAS;IAACA,wDAAV,OAAAqK,MAAA,CAAAvC,EAAA,CAAS,UAAAuC,MAAA,CAAAC,KAAA,CAAgB;;;ADWnC,MAAO7K,iBAAiB;EAK5ByB,YAAoBsG,UAAsB;IAAtB,KAAAA,UAAU,GAAVA,UAAU;IAJ9B,KAAAM,EAAE,GAAG,eAAe;IACpB,KAAAvG,GAAG,GAAWC,YAAY,CAACC,OAAO,CAAC,KAAK,CAAE;IAC1C,KAAA8I,IAAI,GAAW,EAAE;IAMjB,KAAAD,KAAK,GAAsB,CACzB;MACExC,EAAE,EAAE,WAAW;MACf0C,UAAU,EAAE,YAAY;MACxBzC,IAAI,EAAE,MAAM;MACZ0C,KAAK,EAAE,WAAW;MAClBC,aAAa,EAAE,CAAC;MAChB1C,OAAO,EAAE,WAAW;MACpB2C,MAAM,EAAE;KACT,EACD;MACE7C,EAAE,EAAE,QAAQ;MACZ0C,UAAU,EAAE,SAAS;MACrBzC,IAAI,EAAE,UAAU;MAChB0C,KAAK,EAAE,QAAQ;MACfzC,OAAO,EAAE,QAAQ;MACjB2C,MAAM,EAAE;KACT,EACD;MACE7C,EAAE,EAAE,UAAU;MACd0C,UAAU,EAAE,WAAW;MACvBzC,IAAI,EAAE,aAAa;MACnB0C,KAAK,EAAE,IAAI,CAACF,IAAI,CAAChC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,WAAW;MACtDP,OAAO,EAAE,gBAAgB;MACzB2C,MAAM,EAAE;KACT,EACD;MACE7C,EAAE,EAAE,OAAO;MACX0C,UAAU,EAAE,QAAQ;MACpBzC,IAAI,EAAE,QAAQ;MACd0C,KAAK,EAAE,OAAO;MACdzC,OAAO,EAAE,OAAO;MAChB2C,MAAM,EAAE;KACT,EACD;MACE7C,EAAE,EAAE,UAAU;MACd0C,UAAU,EAAE,WAAW;MACvBzC,IAAI,EAAE,UAAU;MAChB0C,KAAK,EAAE,UAAU;MACjBzC,OAAO,EAAE,UAAU;MACnB2C,MAAM,EAAE;KACT,EACD;MACE7C,EAAE,EAAE,QAAQ;MACZ0C,UAAU,EAAE,SAAS;MACrBzC,IAAI,EAAE,QAAQ;MACd0C,KAAK,EAAE,QAAQ;MACfG,WAAW,EAAE,IAAI;MACjB5C,OAAO,EAAE,aAAa;MACtB2C,MAAM,EAAE;KACT,CACF;IAtDC,IAAI,CAACE,cAAc,EAAE;EACvB;EAsDA;EACAA,cAAcA,CAAA;IACZC,UAAU,CAAC,MAAK;MACd,IAAI,IAAI,CAACvJ,GAAG,EAAE;QACZ,IAAI,CAACwJ,WAAW,CAAC,IAAI,CAACxJ,GAAG,CAAC;MAC5B,CAAC,MAAM;QACL,IAAI,CAACsJ,cAAc,EAAE,CAAC,CAAC;MACzB;IACF,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;EACX;EAEME,WAAWA,CAACxJ,GAAW;IAAA,IAAAyC,KAAA;IAAA,OAAAC,0IAAA;MAC3BD,KAAI,CAACwD,UAAU,CAACuD,WAAW,CAACxJ,GAAG,CAAC,CAACS,SAAS,CAAEgJ,IAAS,IAAI;QACvDhH,KAAI,CAACuG,IAAI,GAAGS,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAACR,KAAK;QAC/BzG,KAAI,CAACsG,KAAK,CAAC,CAAC,CAAC,CAACG,KAAK,GAAGzG,KAAI,CAACuG,IAAI,CAACW,QAAQ,CAAC,WAAW,CAAC,GAAG,UAAU,GAAG,WAAW;MAClF,CAAC,CAAC;IAAC;EACL;;;uBA7EWzL,iBAAiB,EAAAO,+DAAA,CAAAuE,wEAAA;IAAA;EAAA;;;YAAjB9E,iBAAiB;MAAAmF,SAAA;MAAAuG,UAAA;MAAAC,QAAA,GAAApL,iEAAA;MAAAsL,KAAA;MAAAC,IAAA;MAAAC,MAAA;MAAAC,QAAA,WAAAC,2BAAA3G,EAAA,EAAAC,GAAA;QAAA,IAAAD,EAAA;UCZ9B/E,wDAAA,IAAA2L,yCAAA,0BAAkC;;;UAAnB3L,wDAAA,SAAAgF,GAAA,CAAAuF,IAAA,QAAiB;;;qBDQpBnD,yDAAY,EAAA1C,iDAAA,EAAEyF,yFAAoB;MAAAtE,MAAA;IAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AER2C;AAC9C;AACU;AACQ;AAEC;AAS9B;AAKiB;AACW;AACgD;AAChD;;;;;;;ICMxB7F,4DAFR,cAAkC,cACG,eACgC;IACzDA,oDAAA,oBACJ;IAAAA,0DAAA,EAAO;IACPA,4DAAA,eAAgC;IAC5BA,oDAAA,GACJ;IACJA,0DADI,EAAO,EACL;IAEFA,4DADJ,UAAK,wBAKI;IADDA,wDAAA,oBAAA4M,yEAAA;MAAA,MAAAC,QAAA,GAAA7M,2DAAA,CAAA8M,GAAA,EAAAC,SAAA;MAAA,OAAA/M,yDAAA,CAAA6M,QAAA,CAAAG,IAAA,IAAAH,QAAA,CAAAG,IAAA;IAAA,EAAmC;IAE3ChN,0DADS,EAAgB,EACnB;IAEFA,4DADJ,UAAK,wBAKI;IADDA,wDAAA,oBAAAiN,yEAAA;MAAA,MAAAJ,QAAA,GAAA7M,2DAAA,CAAA8M,GAAA,EAAAC,SAAA;MAAA,OAAA/M,yDAAA,CAAA6M,QAAA,CAAA5K,MAAA,IAAA4K,QAAA,CAAA5K,MAAA;IAAA,EAAuC;IAGnDjC,0DAFa,EAAgB,EACnB,EACJ;;;;IAjBMA,uDAAA,GACJ;IADIA,gEAAA,MAAA6M,QAAA,CAAAvE,WAAA,MACJ;IAKItI,uDAAA,GAAsB;IAAtBA,wDAAA,YAAA6M,QAAA,CAAAG,IAAA,CAAsB;IAOtBhN,uDAAA,GAAwB;IAAxBA,wDAAA,YAAA6M,QAAA,CAAA5K,MAAA,CAAwB;;;;;;IAlCxCjC,4DAFR,UAAM,aACmC,aACV;IAAAA,oDAAA,GAAgB;IAC3CA,0DAD2C,EAAM,EAC3C;IAEFA,4DADJ,aAA+B,WACrB;IACFA,oDAAA,gBACJ;IAAAA,0DAAA,EAAO;IACPA,4DAAA,WAAM;IACFA,oDAAA,aACJ;IAAAA,0DAAA,EAAO;IACPA,4DAAA,WAAM;IACFA,oDAAA,gBACJ;IACJA,0DADI,EAAO,EACL;IACNA,4DAAA,cAAwG;IAArCA,wDAAA,gCAAAmN,qEAAAlD,MAAA;MAAAjK,2DAAA,CAAAQ,GAAA;MAAA,MAAAC,MAAA,GAAAT,2DAAA;MAAA,OAAAA,yDAAA,CAAsBS,MAAA,CAAA2M,IAAA,CAAAnD,MAAA,CAAY;IAAA,EAAC;IAClGjK,8DAAA,KAAAsN,wCAAA,oBAAAC,UAAA,CAyBC;IAETvN,0DADI,EAAM,EACJ;;;;IAzCyBA,uDAAA,GAAgB;IAAhBA,+DAAA,CAAAyN,MAAA,CAAAC,QAAA,CAAgB;IAa1B1N,uDAAA,GAA8B;IAA9BA,wDAAA,oBAAAyN,MAAA,CAAAE,MAAA,CAA8B;IAC3C3N,uDAAA,EAyBC;IAzBDA,wDAAA,CAAAyN,MAAA,CAAAE,MAAA,CAyBC;;;ADdnB,MAAO7N,kBAAkB;EAS7BoB,YAAA;IARS,KAAA2M,OAAO,GAAGjC,oDAAK,CAAC,KAAK,CAAC;IAC/B,KAAAZ,IAAI,GAAQ,EAAE;IACd,KAAA8C,cAAc,GAAG,KAAK;IAEd,KAAAtG,UAAU,GAAGnI,qDAAM,CAACuK,wEAAU,CAAC;IAC/B,KAAAjI,WAAW,GAAGtC,qDAAM,CAACQ,sEAAW,CAAC;IACjC,KAAAkO,WAAW,GAAG1O,qDAAM,CAACsN,sEAAW,CAAC;IAGvC,IAAI,CAAChL,WAAW,CAACqM,kBAAkB,EAAE,CAAChM,SAAS,CAAEgJ,IAAS,IAAI;MAC5D,IAAI,CAACA,IAAI,GAAGA,IAAI;IAClB,CAAC,CAAC;EACJ;EAEAoC,IAAIA,CAAC/J,KAAyB;IAC5B,IAAIA,KAAK,CAAC4K,iBAAiB,KAAK5K,KAAK,CAAC6K,SAAS,EAAE;MAC/C/B,uEAAe,CAAC9I,KAAK,CAAC6K,SAAS,CAAClD,IAAI,EAAE3H,KAAK,CAAC8K,aAAa,EAAE9K,KAAK,CAAC+K,YAAY,CAAC;MAC9E/K,KAAK,CAAC6K,SAAS,CAAClD,IAAI,CAACqD,OAAO,CAAC,CAACC,CAAC,EAACC,KAAK,KAAG;QACtCD,CAAC,CAACE,cAAc,GAACD,KAAK,GAAC,CAAC;MAC5B,CAAC,CAAC;IACF,CAAC,MAAM;MACLnC,yEAAiB,CACf/I,KAAK,CAAC4K,iBAAiB,CAACjD,IAAI,EAC5B3H,KAAK,CAAC6K,SAAS,CAAClD,IAAI,EACpB3H,KAAK,CAAC8K,aAAa,EACnB9K,KAAK,CAAC+K,YAAY,CACnB;IACH;EACF;EAEMK,eAAeA,CAAA;IAAA,IAAAzK,KAAA;IAAA,OAAAC,0IAAA;MACnB,MAAMyK,OAAO,GAAGC,MAAM,CAACnN,YAAY,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;MACnD,MAAMmN,MAAM,GAAED,MAAM,CAACnN,YAAY,CAACC,OAAO,CAAC,SAAS,CAAC,CAAC;MACrD,MAAMkG,aAAa,GAAG,OAAO3D,KAAI,CAAC+J,WAAW,CAACc,gBAAgB,EAAE,KAAKnC,2EAAc,CAACoC,QAAQ;MAC5F,MAAMC,QAAQ,GAAGtC,+EAAkB,CAAC9E,aAAa,CAAC;MAClD,MAAMqH,IAAI,GAAG;QACXC,OAAO,EAAEL,MAAM;QACfM,SAAS,EAAEH,QAAQ;QACnBlG,MAAM,EAAE7E,KAAI,CAACgH;OACd;MACD,MAAMmE,UAAU,GAAGC,IAAI,CAACC,SAAS,CAACL,IAAI,CAAC;MACvChL,KAAI,CAACwD,UAAU,CAAC8H,mBAAmB,CAACZ,OAAO,EAAEK,QAAQ,EAAEI,UAAU,CAAC,CAAChJ,IAAI,CACrE,MAAK;QACHnC,KAAI,CAACrC,WAAW,CAAC4N,kBAAkB,CAACvL,KAAI,CAACgH,IAAI,CAAC;QAC9ChH,KAAI,CAACrC,WAAW,CAAC6N,YAAY,CAACjD,oEAAO,CAACkD,SAAS,CAACC,OAAO,EAAElD,yEAAY,CAACmD,IAAI,CAACD,OAAO,EAAElD,yEAAY,CAACoD,aAAa,CAAC;QAC/G5L,KAAI,CAAC6L,gBAAgB,EAAE;MAC3B,CAAC,CAAC;IAAC;EACL;EAEAA,gBAAgBA,CAAA;IACd,IAAI,CAAClO,WAAW,CAACmO,wBAAwB,CAAC,KAAK,CAAC;EAClD;;;uBApDWhQ,kBAAkB;IAAA;EAAA;;;YAAlBA,kBAAkB;MAAA8E,SAAA;MAAAmL,MAAA;QAAAlC,OAAA,GAAA7N,0DAAA,CAAAiQ,WAAA;MAAA;MAAAC,OAAA;QAAArC,OAAA;MAAA;MAAA1C,UAAA;MAAAC,QAAA,GAAApL,iEAAA;MAAAsL,KAAA;MAAAC,IAAA;MAAAC,MAAA;MAAAC,QAAA,WAAA0E,4BAAApL,EAAA,EAAAC,GAAA;QAAA,IAAAD,EAAA;UClCvB/E,4DAFR,aAA0B,aACd,WACE;UAAAA,oDAAA,gBAAS;UAAAA,0DAAA,EAAO;UACtBA,4DAAA,cAAgE;UAA7BA,wDAAA,mBAAAoQ,kDAAA;YAAA,OAASpL,GAAA,CAAA6K,gBAAA,EAAkB;UAAA,EAAC;UAAC7P,oDAAA,YAAK;UACzEA,0DADyE,EAAO,EACvE;UAGLA,4DADJ,aAA2B,aACE;UACrBA,8DAAA,IAAAqQ,iCAAA,sBAAAC,UAAA,CA8CC;UAETtQ,0DADI,EAAM,EACJ;UAEFA,4DADJ,iBAA+B,gCACmF;UAAnCA,wDAAA,yBAAAuQ,0EAAA;YAAA,OAAevL,GAAA,CAAAyJ,eAAA,EAAiB;UAAA,EAAC;UAEpHzO,0DAFQ,EAA8G,EACzG,EACP;;;UApDMA,uDAAA,GA8CC;UA9CDA,wDAAA,CAAAgF,GAAA,CAAAgG,IAAA,CA8CC;;;qBD1BDc,iEAAa,EAAEC,yEAAiB,EAAEF,wDAAW,EAAEK,+DAAW,EAAEF,2DAAO,EAACC,iEAAa,EACzFI,iGAA4B,EAC5BC,0FAAqB;MAAAzG,MAAA;IAAA;EAAA;;;;;;;;;;;;;;;;;;AE7BsC;AACxB;AAEhC,MAAMC,YAAY,GAAmB0K,KAAK,IAAI;EACnD,MAAMjO,KAAK,GAAGf,YAAY,CAACC,OAAO,CAAC,cAAc,CAAC;EAClD,MAAMgP,IAAI,GAAGD,KAAK,CAACE,WAAW,CAAC,MAAM,CAAC;EACtC,MAAMC,YAAY,GAAgBtR,qDAAM,CAACmF,oEAAW,CAAC;EACrD,IAAIjC,KAAK,IAAI,IAAI,EAAE;IACjB,OAAOoO,YAAY,CAACC,WAAW,EAAE;EACnC,CAAC,MAAM,IAAIH,IAAI,EAAE;IACf,OAAOE,YAAY,CAACE,UAAU,CAACJ,IAAI,CAAC;EACtC,CAAC,MAAM;IACLE,YAAY,CAACtM,KAAK,EAAE;IACpB,OAAO,KAAK;EACd;AACF,CAAC;;;;;;;;;;;;;;;ACdM,MAAM0B,mBAAmB,GAA0B+K,SAAS,IAAI;EACrE,IAAIA,SAAS,CAACpK,aAAa,EAAE,EAAE;IAC7B,OAAOqK,MAAM,CAACC,OAAO,CAAC,2DAA2D,CAAC;EACpF,CAAC,MAAM,OAAO,IAAI;AACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACL6F;AACuB;AAC1D;AAEW;;;AAKhE,MAAOpH,UAAU;EA+BrB1I,YAAoB0Q,IAAgB;IAAhB,KAAAA,IAAI,GAAJA,IAAI;IA9BhB,KAAAC,MAAM,GAAGH,qEAAW,CAACI,aAAa;IAClC,KAAAC,cAAc,GAAG,eAAe;IAChC,KAAAC,MAAM,GAAG,SAAS;IAClB,KAAAC,aAAa,GAAG,oCAAoC;IACpD,KAAAC,oBAAoB,GAAG,oCAAoC;IAC3D,KAAAC,aAAa,GAAG,kBAAkB;IAClC,KAAAC,kBAAkB,GAAG,wBAAwB;IAC7C,KAAAC,qBAAqB,GAAG,yBAAyB;IACjD,KAAAC,QAAQ,GAAG,aAAa;IACxB,KAAAC,sBAAsB,GAAG,uBAAuB;IAChD,KAAAC,2BAA2B,GAAG,gCAAgC;IAC9D,KAAAC,uBAAuB,GAAG,8BAA8B;IACxD,KAAAC,eAAe,GAAG,iBAAiB;IACnC,KAAAC,gBAAgB,GAAG,sBAAsB;IACzC,KAAAC,KAAK,GAAG,oBAAoB;IAC5B,KAAAC,2BAA2B,GAAG,qCAAqC;IACnE,KAAAC,SAAS,GAAG,4BAA4B;IACxC,KAAAC,QAAQ,GAAG,WAAW;IACtB,KAAAC,kBAAkB,GAAG,uBAAuB;IAC5C,KAAAC,YAAY,GAAG,2BAA2B;IAC1C,KAAAC,YAAY,GAAG,gBAAgB;IACvC;IACQ,KAAAC,eAAe,GAAG,6BAA6B;IAC/C,KAAAC,uBAAuB,GAAG,sCAAsC;IAChE,KAAAC,QAAQ,GAAG,4BAA4B;IACvC,KAAAC,SAAS,GAAG,6BAA6B;IAEzC,KAAA/Q,KAAK,GAAkB,IAAI;IAC3B,KAAAgR,WAAW,GAAgB,IAAI;EAEA;EAE/BC,WAAWA,CAACxK,KAAwB;IAC1C,IAAIA,KAAK,CAACyK,MAAM,KAAK,CAAC,EAAE;MACtB;MACAxK,OAAO,CAACD,KAAK,CAAC,oBAAoB,EAAEA,KAAK,CAACA,KAAK,CAAC;IAClD,CAAC,MAAM;MACL;MACAC,OAAO,CAACD,KAAK,CAAC,UAAUA,KAAK,CAACyK,MAAM,cAAc,EAAEzK,KAAK,CAAC0K,OAAO,CAAC;IACpE;IACA;IACA,OAAOtC,gDAAU,CAAC,MAAM,IAAIuC,KAAK,CAAC3K,KAAK,CAACA,KAAK,CAACA,KAAK,IAAI,kBAAkB,CAAC,CAAC;EAC7E;EAEA;EACQ4K,aAAaA,CAACC,UAAA,GAAqB,CAAC,EAAEC,YAAA,GAAuB,IAAI;IACvE,OAAQC,QAAuC,IAAI;MACjD,OAAOA,QAAQ,CAACC,IAAI,CAClB1C,8CAAQ,CAAC,CAACtI,KAAwB,EAAEiL,UAAkB,KAAI;QACxD,IAAIjL,KAAK,CAACyK,MAAM,KAAK,GAAG,EAAE;UACxB,OAAOrC,gDAAU,CAAC,MAAMpI,KAAK,CAAC;QAChC,CAAC,MAAM,IAAIiL,UAAU,IAAIJ,UAAU,EAAE;UACnC,OAAOzC,gDAAU,CAAC,MAAMpI,KAAK,CAAC;QAChC,CAAC,MAAM,OAAOuI,wCAAE,CAACvI,KAAK,CAAC,CAACgL,IAAI,CAACxC,2CAAK,CAACsC,YAAY,GAAGI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEF,UAAU,CAAC,CAAC,CAAC;MAC7E,CAAC,CAAC,CACH;IACH,CAAC;EACH;EAEQG,YAAYA,CAAA;IAClB,IAAI,CAAC,IAAI,CAAC7R,KAAK,IAAI,CAAC,IAAI,CAACgR,WAAW,EAAE;MACpC,OAAO,KAAK;IACd;IACA,OAAO,IAAIc,IAAI,EAAE,CAACC,OAAO,EAAE,GAAG,IAAID,IAAI,CAAC,IAAI,CAACd,WAAW,CAAC,CAACe,OAAO,EAAE;EACpE;EAEOC,cAAcA,CAAChS,KAAa,EAAEiS,YAAkB;IACrD,IAAI,CAACjS,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACgR,WAAW,GAAGiB,YAAY;EACjC;EAEQC,aAAaA,CAAIC,OAA4B;IACnD,IAAI,CAAC,IAAI,CAACN,YAAY,EAAE,EAAE;MACxB,OAAO,IAAI,CAACO,iBAAiB,CAACnT,YAAY,CAACC,OAAO,CAAC,cAAc,CAAE,CAAC,CAACuS,IAAI,CACvE3C,+CAAS,CAAEuD,aAAa,IAAI;QAC1B,IAAI,CAACrS,KAAK,GAAGqS,aAAa,CAACC,SAAS;QACpC,IAAI,CAACtB,WAAW,GAAGqB,aAAa,CAACE,gBAAgB,CAAC,CAAC;QACnD;QACA,OAAOJ,OAAO,EAAE;MAClB,CAAC,CAAC,EACFvD,gDAAU,CAAC,IAAI,CAACqC,WAAW,CAAC,CAC7B;IACH;IAEA,OAAOkB,OAAO,EAAE;EAClB;EAEOK,SAASA,CAACtE,IAAY,EAAEuE,YAAoB;IACjD,MAAMC,KAAK,GAAG,mBAAmBxE,IAAI,iBAAiBuE,YAAY,EAAE;IACpE,MAAMN,OAAO,GAAGA,CAAA,KACd,IAAI,CAAC9C,IAAI,CACNsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACE,cAAc,GAAGkD,KAAK,EAAE,EAAE;MACzDE,OAAO,EAAE,IAAIlE,6DAAW,EAAE;MAC1BmE,OAAO,EAAE,MAAM;MACfC,YAAY,EAAE;KACf,CAAC,CACDrB,IAAI,CAACvC,gDAAS,CAAC,IAAI,CAACmC,aAAa,EAAE,CAAC,EAAEzC,gDAAU,CAAC,IAAI,CAACqC,WAAW,CAAC,CAAC;IACxE,OAAOkB,OAAO,EAAE;EAClB;EAEOC,iBAAiBA,CAACpS,KAAa;IACpC,MAAM0S,KAAK,GAAG,qBAAqB1S,KAAK,EAAE;IAC1C,MAAMmS,OAAO,GAAGA,CAAA,KACd,IAAI,CAAC9C,IAAI,CACNsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACE,cAAc,GAAGkD,KAAK,EAAE,EAAE;MACzDE,OAAO,EAAE,IAAIlE,6DAAW,EAAE;MAC1BmE,OAAO,EAAE,MAAM;MACfC,YAAY,EAAE;KACf,CAAC,CACDrB,IAAI,CAACvC,gDAAS,CAAC,IAAI,CAACmC,aAAa,EAAE,CAAC,EAAEzC,gDAAU,CAAC,IAAI,CAACqC,WAAW,CAAC,CAAC;IACxE,OAAOkB,OAAO,EAAE;EAClB;EAEOY,aAAaA,CAAA;IAClB,MAAMZ,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACG,MAAM,EAAE,EAAE,EAAE,CAAC;IAE5E,OAAO,IAAI,CAACyC,aAAa,CAACC,OAAO,CAAC;EACpC;EAEO5L,uBAAuBA,CAACvH,GAAW,EAAEiU,aAAqB,EAAEC,UAAkB;IACnF,MAAMR,KAAK,GAAG,QAAQ1T,GAAG,kBAAkBiU,aAAa,eAAeC,UAAU,EAAE;IAEnF,MAAMf,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACI,aAAa,GAAGgD,KAAK,EAAE,EAAE,EAAE,CAAC;IAE3F,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOgB,uBAAuBA,CAACC,eAAqB;IAClD,MAAMjB,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACgE,GAAG,CAAM,GAAG,IAAI,CAAC/D,MAAM,GAAG,IAAI,CAACI,aAAa,EAAE,EAAE0D,eAAe,EAAE,EAAE,CAAC;IAEpG,OAAO,IAAI,CAAClB,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOjL,uBAAuBA,CAACoM,MAAc;IAC3C,MAAMZ,KAAK,GAAG,cAAca,kBAAkB,CAACD,MAAM,CAAC,EAAE;IACxD,MAAMnB,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACK,oBAAoB,GAAG+C,KAAK,EAAE,EAAE,EAAE,CAAC;IAClG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOqB,gBAAgBA,CAACC,QAAgB;IACtC,MAAMf,KAAK,GAAG,aAAae,QAAQ,EAAE;IACrC,MAAMtB,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACM,aAAa,GAAG8C,KAAK,EAAE,EAAE,EAAE,CAAC;IAC3F,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEAuB,yBAAyBA,CAAC1U,GAAW;IACnC,MAAM0T,KAAK,GAAG,QAAQ1T,GAAG,EAAE;IAC3B,MAAMmT,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACO,kBAAkB,GAAG6C,KAAK,EAAE,EAAE,EAAE,CAAC;IAChG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEAwB,cAAcA,CAACC,KAAU;IACvB,MAAMlB,KAAK,GAAG,eAAekB,KAAK,EAAE;IACpC,MAAMzB,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACoB,YAAY,GAAGgC,KAAK,EAAE,CAAC;IACtF,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA0B,YAAYA,CAACpH,IAAS;IACpB,MAAM0F,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACgE,GAAG,CAAO,GAAG,IAAI,CAAC/D,MAAM,GAAG,IAAI,CAACqB,YAAY,EAAE,EAAE9D,IAAI,CAACC,SAAS,CAACL,IAAI,CAAC,CAAC;IACrG,OAAO,IAAI,CAACyF,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA2B,4BAA4BA,CAACC,YAAoB;IAC/C,MAAMrB,KAAK,GAAG,iBAAiBqB,YAAY,EAAE;IAC7C,MAAM5B,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACQ,qBAAqB,GAAG4C,KAAK,EAAE,EAAE,EAAE,CAAC;IACnG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA3J,WAAWA,CAACxJ,GAAW;IACrB,MAAM0T,KAAK,GAAG,QAAQ1T,GAAG,EAAE;IAC3B,MAAMmT,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAmB,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACS,QAAQ,GAAG2C,KAAK,EAAE,EAAE,EAAE,CAAC;IACnG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA6B,yBAAyBA,CAACC,WAAmB;IAC3C,MAAMvB,KAAK,GAAG,gBAAgBuB,WAAW,EAAE;IAC3C,MAAM9B,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACU,sBAAsB,GAAG0C,KAAK,EAAE,EAAE,EAAE,CAAC;IACpG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA;EACA+B,6BAA6BA,CAACC,IAAY;IACxC,MAAMzB,KAAK,GAAG,UAAUyB,IAAI,kBAAkB;IAC9C,MAAMhC,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACW,2BAA2B,GAAGyC,KAAK,EAAE,EAAE,EAAE,CAAC;IACzG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEAiC,8BAA8BA,CAACrV,KAAa;IAC1C,MAAM2T,KAAK,GAAG,UAAU3T,KAAK,mBAAmB;IAChD,MAAMoT,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACW,2BAA2B,GAAGyC,KAAK,EAAE,EAAE,EAAE,CAAC;IACzG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEAkC,cAAcA,CAAC9O,EAAU;IACvB,MAAMmN,KAAK,GAAG,qBAAqBnN,EAAE,EAAE;IACvC,MAAM4M,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACa,eAAe,GAAGuC,KAAK,EAAE,EAAE,EAAE,CAAC;IAC7F,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA;EACA;;;;;;;;EAQA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEAmC,oBAAoBA,CAACC,QAAgB;IACnC,MAAM7B,KAAK,GAAG,aAAa6B,QAAQ,EAAE;IACrC,MAAMpC,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACY,uBAAuB,GAAGwC,KAAK,EAAE,EAAE,EAAE,CAAC;IACrG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEAqC,gBAAgBA,CAACC,YAAiB;IAChC,MAAMtC,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACc,gBAAgB,EAAE,EAAEqE,YAAY,EAAE,EAAE,CAAC;IACrG,OAAO,IAAI,CAACvC,aAAa,CAACC,OAAO,CAAC;EACpC;EAEAuC,SAASA,CAACC,WAAgB;IACxB,MAAMxC,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACe,KAAK,EAAE,EAAEsE,WAAW,EAAE,EAAE,CAAC;IACzF,OAAO,IAAI,CAACzC,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA;;;;;EAKOyC,WAAWA,CAACnB,QAAgB,EAAEoB,aAAqB,EAAEC,SAAiB,EAAE9V,GAAW;IACxF,MAAM+V,MAAM,GAAG,CAACtB,QAAQ,EAAEoB,aAAa,EAAEC,SAAS,EAAE9V,GAAG,CAAC;IACxD,MAAMyN,IAAI,GAAGI,IAAI,CAACC,SAAS,CAAC;MAC1BkI,OAAO,EAAE,oBAAoB;MAC7BD,MAAM,EAAEA;KACT,CAAC;IAEF,MAAM5C,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACiB,SAAS,EAAE,EAAE9D,IAAI,EAAE,EAAE,CAAC;IACtF,OAAO,IAAI,CAACyF,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA;;;;;EAKO8C,mBAAmBA,CAACxB,QAAgB;IACzC,MAAMtB,OAAO,GAAGA,CAAA,KACd,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACgB,2BAA2B,aAAamD,QAAQ,EAAE,EAAE,EAAE,CAAC;IAClG,OAAO,IAAI,CAACvB,aAAa,CAACC,OAAO,CAAC;EACpC;EAEO+C,cAAcA,CACnBC,SAAiB,EACjBC,YAAoB,EACpBC,WAAmB,EACnBC,gBAAwB;IAExB,MAAM7I,IAAI,GAAGI,IAAI,CAACC,SAAS,CAAC;MAC1ByI,UAAU,EAAEJ,SAAS;MACrBK,eAAe,EAAEJ,YAAY;MAC7BK,YAAY,EAAEJ,WAAW;MACzBK,iBAAiB,EAAEJ;KACpB,CAAC;IACF,MAAMnD,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,yBAAyB,EAAE7C,IAAI,EAAE,EAAE,CAAC;IAC5F,OAAO,IAAI,CAACyF,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOwD,sBAAsBA,CAC3BC,gBAAyB,EACzBC,SAAkB,EAClBC,OAAgB,EAChBC,cAAuB,EACvBC,YAAqB,EACrBC,aAAsB,EACtBC,UAAmB;IAEnB,IAAIxD,KAAK,GAAG,IAAI/D,4DAAU,EAAE;IAC5B,MAAMoG,MAAM,GAAG,CACb;MAAEoB,GAAG,EAAE,kBAAkB;MAAEhW,KAAK,EAAEyV;IAAgB,CAAE,EACpD;MAAEO,GAAG,EAAE,WAAW;MAAEhW,KAAK,EAAE0V;IAAS,CAAE,EACtC;MAAEM,GAAG,EAAE,SAAS;MAAEhW,KAAK,EAAE2V;IAAO,CAAE,EAClC;MAAEK,GAAG,EAAE,gBAAgB;MAAEhW,KAAK,EAAE4V;IAAc,CAAE,EAChD;MAAEI,GAAG,EAAE,cAAc;MAAEhW,KAAK,EAAE6V;IAAY,CAAE,EAC5C;MAAEG,GAAG,EAAE,eAAe;MAAEhW,KAAK,EAAE8V;IAAa,CAAE,EAE9C;MAAEE,GAAG,EAAE,kBAAkB;MAAEhW,KAAK,EAAE+V;IAAU,CAAE,CAC/C;IAED,KAAK,MAAME,KAAK,IAAIrB,MAAM,EAAE;MAC1B,IAAIqB,KAAK,CAACjW,KAAK,EAAE;QACfuS,KAAK,GAAGA,KAAK,CAAC2D,GAAG,CAACD,KAAK,CAACD,GAAG,EAAEC,KAAK,CAACjW,KAAK,CAAC;MAC3C;IACF;IACA,MAAMgS,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACkB,QAAQ,EAAE,EAAE;MAAEuE,MAAM,EAAErC;IAAK,CAAE,CAAC;IAC7F,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEA;;;;;;EAMOmE,mBAAmBA,CAACf,UAAkB,EAAEvW,GAAW;IACxD,MAAM+V,MAAM,GAAG,CAACQ,UAAU,EAAEvW,GAAG,CAAC;IAChC,MAAMyN,IAAI,GAAGI,IAAI,CAACC,SAAS,CAAC;MAC1BkI,OAAO,EAAE,sCAAsC;MAC/CD,MAAM,EAAEA;KACT,CAAC;IAEF,MAAM5C,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACiB,SAAS,EAAE,EAAE9D,IAAI,EAAE,EAAE,CAAC;IACtF,OAAO,IAAI,CAACyF,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOoE,oBAAoBA,CACzBC,WAAyB,EACzBxX,GAAW,EACXyX,MAAc,EACdnB,gBAAyB;IAEzB,MAAM7I,IAAI,GAAGI,IAAI,CAACC,SAAS,CAAC;MAC1B0J,WAAW,EAAEA,WAAW;MACxBxX,GAAG,EAAEA,GAAG;MACRyX,MAAM,EAAEA,MAAM;MACdnB,gBAAgB,EAAEA,gBAAgB,IAAI;KACvC,CAAC;IAEF,MAAMnD,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACmB,kBAAkB,EAAE,EAAEhE,IAAI,EAAE,EAAE,CAAC;IAC/F,OAAO,IAAI,CAACyF,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOuE,aAAaA,CAACC,OAAe;IAClC,MAAMlK,IAAI,GAAGI,IAAI,CAACC,SAAS,CAAC;MAAE2G,QAAQ,EAAEkD;IAAO,CAAE,CAAC;IAElD,MAAMxE,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAACsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACwB,QAAQ,EAAE,EAAErE,IAAI,EAAE,EAAE,CAAC;IACrF,OAAO,IAAI,CAACyF,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOyE,kBAAkBA,CAACC,IAAY,EAAEpD,QAAgB,EAAEjN,SAAiB;IACzE,MAAMkM,KAAK,GAAG,SAASmE,IAAI,aAAapD,QAAQ,EAAE;IAClD,MAAMtB,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACsB,eAAe,IAAIpK,SAAS,GAAGkM,KAAK,EAAE,EAAE,EAAE,CAAC;IAC1G,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEO2E,yBAAyBA,CAACrD,QAAgB,EAAEsD,UAAkB,EAAEC,WAAmB;IACxF,MAAMtE,KAAK,GAAG,aAAae,QAAQ,eAAesD,UAAU,gBAAgBC,WAAW,EAAE;IACzF,MAAM7E,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACuB,uBAAuB,GAAG6B,KAAK,EAAE,EAAE,EAAE,CAAC;IACrG,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEa1G,kBAAkBA,CAACY,MAAc,EAAEG,QAAgB;IAAA,IAAA/K,KAAA;IAAA,OAAAC,0IAAA;MAC9D,MAAMyQ,OAAO,GAAGA,CAAA,KACd1Q,KAAI,CAAC4N,IAAI,CAAC2D,GAAG,CACX,GAAGvR,KAAI,CAAC6N,MAAM,GAAGF,gFAAY,CAAC6H,oBAAoB,aAAa5K,MAAM,cAAcG,QAAQ,EAAE,EAC7F,EAAE,CACH;MACH,MAAMpF,QAAQ,SAASrC,qDAAc,CAACtD,KAAI,CAACyQ,aAAa,CAACC,OAAO,CAAC,CAAC;MAElE,OAAO/K,QAAQ,CAACqF,IAAI;IAAC;EACvB;EAEaM,mBAAmBA,CAACV,MAAc,EAAEG,QAAgB,EAAE/D,IAAS;IAAA,IAAA3B,MAAA;IAAA,OAAApF,0IAAA;MAC1E,MAAMyQ,OAAO,GAAGA,CAAA,KACdrL,MAAI,CAACuI,IAAI,CAACgE,GAAG,CACX,GAAGvM,MAAI,CAACwI,MAAM,GAAGF,gFAAY,CAAC8H,qBAAqB,aAAa7K,MAAM,cAAcG,QAAQ,EAAE,EAC9F/D,IAAI,CACL;MACH,MAAMrB,QAAQ,SAASrC,qDAAc,CAAC+B,MAAI,CAACoL,aAAa,CAACC,OAAO,CAAC,CAAC;MAClE,OAAO/K,QAAQ;IAAC;EAClB;EAEO+P,mBAAmBA,CAACC,KAAa;IACtC,MAAMjF,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAGF,gFAAY,CAACiI,iBAAiB,SAASD,KAAK,EAAE,EAAE,EAAE,CAAC;IAC7G,OAAO,IAAI,CAAClF,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOmF,yBAAyBA,CAACF,KAAa;IAC5C,MAAM1E,KAAK,GAAG,UAAU0E,KAAK,EAAE;IAC/B,MAAMjF,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAG,IAAI,CAACyB,SAAS,GAAG2B,KAAK,EAAE,EAAE,EAAE,CAAC;IACvF,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOoF,wBAAwBA,CAACV,IAAY,EAAEpD,QAAgB;IAC5D,MAAMf,KAAK,GAAG,SAASmE,IAAI,aAAapD,QAAQ,EAAE;IAClD,MAAM+D,OAAO,GAAG,2CAA2C;IAC3D,MAAMrF,OAAO,GAAGA,CAAA,KAAM,IAAI,CAAC9C,IAAI,CAAC2D,GAAG,CAAM,GAAG,IAAI,CAAC1D,MAAM,GAAGkI,OAAO,GAAG9E,KAAK,EAAE,EAAE,EAAE,CAAC;IAChF,OAAO,IAAI,CAACR,aAAa,CAACC,OAAO,CAAC;EACpC;EAEOsF,oBAAoBA,CACzBC,IAAS,EACTjE,QAAgB,EAChBjN,SAAiB,EACjBmR,SAAc,EACdC,SAAc;IAEd,MAAMnL,IAAI,GAAGI,IAAI,CAACC,SAAS,CAAC;MAC1B2G,QAAQ,EAAEA,QAAQ;MAClBjN,SAAS,EAAEA,SAAS;MACpBkR,IAAI,EAAEA,IAAI;MACVC,SAAS,EAAEA,SAAS;MACpBE,SAAS,EAAED;KACZ,CAAC;IAEF,MAAMzF,OAAO,GAAGA,CAAA,KACd,IAAI,CAAC9C,IAAI,CAACsD,IAAI,CAAM,GAAG,IAAI,CAACrD,MAAM,GAAG,IAAI,CAACsB,eAAe,IAAIpK,SAAS,CAACsR,WAAW,EAAE,EAAE,EAAErL,IAAI,EAAE,EAAE,CAAC;IACnG,OAAO,IAAI,CAACyF,aAAa,CAACC,OAAO,CAAC;EACpC;;;uBA9aW9K,UAAU,EAAA5J,uDAAA,CAAAuE,4DAAA;IAAA;EAAA;;;aAAVqF,UAAU;MAAA4Q,OAAA,EAAV5Q,UAAU,CAAA6Q,IAAA;MAAAC,UAAA,EAFT;IAAM;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACPyB;AAGc;;;;;;AAcrD,MAAOlW,WAAW;EAKtBtD,YACUsG,UAAsB,EACtBC,MAAc,EACdmT,KAAmB,EACnBvZ,OAAuB;IAHvB,KAAAmG,UAAU,GAAVA,UAAU;IACV,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAmT,KAAK,GAALA,KAAK;IACL,KAAAvZ,OAAO,GAAPA,OAAO;IART,KAAAwZ,SAAS,GAAGnJ,qEAAW,CAACoJ,QAAQ;IAChC,KAAAC,WAAW,GAAGrJ,qEAAW,CAACsJ,eAAe;IACzC,KAAAC,OAAO,GAAGvJ,qEAAW,CAACuJ,OAAO;EAQrC;EAEA5W,KAAKA,CAAA;IACH6W,cAAc,CAACC,OAAO,CAAC,kBAAkB,EAAEpK,MAAM,CAACqK,QAAQ,CAACC,IAAI,CAAC;IAChEtK,MAAM,CAACqK,QAAQ,CAACE,OAAO,CACrB,GAAG,IAAI,CAACL,OAAO,cAAc,IAAI,CAACJ,SAAS,oCAAoC,IAAI,CAACE,WAAW,EAAE,CAClG;EACH;EAEA3W,MAAMA,CAAA;IACJ5C,YAAY,CAAC+Z,KAAK,EAAE;EACtB;EAEA3K,WAAWA,CAAA;IACT,MAAM4K,IAAI,GAAGnH,IAAI,CAACoH,GAAG,EAAE;IACvB,IAAID,IAAI,IAAI7M,MAAM,CAACnN,YAAY,CAACC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE;MACtD,OAAO+G,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;IAC9B,CAAC,MAAM;MACL,IAAI,CAACrE,MAAM,EAAE;MACb,IAAI,CAACC,KAAK,EAAE;MACZ,OAAOmE,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;IAC/B;EACF;EAEMoI,UAAUA,CAACJ,IAAY;IAAA,IAAAzM,KAAA;IAAA,OAAAC,0IAAA;MAC3B,MAAM+G,IAAI,SAAS1D,oDAAc,CAACtD,KAAI,CAACwD,UAAU,CAACuN,SAAS,CAACtE,IAAI,EAAEzM,KAAI,CAAC+W,WAAW,CAAC,CAAC;MAEpF,IAAI/P,IAAI,IAAI2P,uCAAK,IAAI,CAAC3P,IAAI,CAAC0Q,YAAY,EAAE;QACvC1X,KAAI,CAACI,MAAM,EAAE;QACbJ,KAAI,CAACK,KAAK,EAAE;QACZ,OAAOmE,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;MAC/B;MAEA,MAAM+S,IAAI,GAAGnH,IAAI,CAACoH,GAAG,EAAE;MACvBja,YAAY,CAAC2Z,OAAO,CAAC,cAAc,EAAEnQ,IAAI,CAAC0Q,YAAY,CAAC;MACvDla,YAAY,CAAC2Z,OAAO,CAAC,eAAe,EAAEnQ,IAAI,CAAC2Q,aAAa,CAAC;MACzDna,YAAY,CAAC2Z,OAAO,CAAC,YAAY,EAAES,MAAM,CAACJ,IAAI,GAAGxQ,IAAI,CAAC6Q,UAAU,GAAG,IAAI,CAAC,CAAC;MACzE7X,KAAI,CAACG,aAAa,EAAE;MAEpB,MAAM2X,QAAQ,GAAGZ,cAAc,CAACzZ,OAAO,CAAC,kBAAkB,CAAC;MAC3D,IAAIqa,QAAQ,EAAE;QACZ,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACF,QAAQ,CAAC;QAC7B9X,KAAI,CAACyD,MAAM,CAAC+B,aAAa,CAACuS,GAAG,CAACE,QAAQ,GAAGF,GAAG,CAAClG,MAAM,CAAC;MACtD,CAAC,MAAM7R,KAAI,CAACyD,MAAM,CAACyU,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;MAClC,OAAO1T,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;IAAC;EAC/B;EAEMtE,aAAaA,CAAA;IAAA,IAAAkF,MAAA;IAAA,OAAApF,0IAAA;MACjB,MAAMkY,WAAW,GAAG3a,YAAY,CAACC,OAAO,CAAC,cAAc,CAAC;MACxD,IAAI,CAAC0a,WAAW,IAAIA,WAAW,IAAI,IAAI,IAAIA,WAAW,IAAI,EAAE,EAAE;QAC5DlT,OAAO,CAACD,KAAK,CAAC,gCAAgC,CAAC;QAC/CK,MAAI,CAAChF,KAAK,EAAE;QACZ,OAAOmE,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;MAC/B;MAEA,MAAM2T,QAAQ,SAAS9U,oDAAc,CAAC+B,MAAI,CAAC7B,UAAU,CAACmN,iBAAiB,CAACwH,WAAW,CAAC,CAAC;MACrF,IAAI,CAACC,QAAQ,CAACV,YAAY,EAAE;QAC1BrS,MAAI,CAACjF,MAAM,EAAE;QACbiF,MAAI,CAAChF,KAAK,EAAE;QACZ,OAAOmE,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;MAC/B;MAEAjH,YAAY,CAAC2Z,OAAO,CAAC,WAAW,EAAEiB,QAAQ,CAACvH,SAAS,CAAC;MACrDrT,YAAY,CAAC2Z,OAAO,CAAC,kBAAkB,EAAEiB,QAAQ,CAACtH,gBAAgB,CAAC;MACnEtT,YAAY,CAAC2Z,OAAO,CAAC,KAAK,EAAEiB,QAAQ,CAACV,YAAY,CAACW,GAAG,CAAC;MACtD7a,YAAY,CAAC2Z,OAAO,CAAC,WAAW,EAAEiB,QAAQ,CAACV,YAAY,CAACY,SAAS,CAAC;MAClE9a,YAAY,CAAC2Z,OAAO,CAAC,UAAU,EAAEiB,QAAQ,CAACV,YAAY,CAACa,QAAQ,CAAC;MAChE/a,YAAY,CAAC2Z,OAAO,CAAC,OAAO,EAAEiB,QAAQ,CAACV,YAAY,CAACc,KAAK,CAAC;MAE1Dhb,YAAY,CAAC2Z,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;MAC1C9R,MAAI,CAAChI,OAAO,CAACS,SAAS,GAAG,KAAK;MAE9BuH,MAAI,CAAC7B,UAAU,CAAC+M,cAAc,CAAC6H,QAAQ,CAACvH,SAAS,EAAEuH,QAAQ,CAACtH,gBAAgB,CAAC;MAE7EzL,MAAI,CAACuR,KAAK,CAAC6B,SAAS,CAClBL,QAAQ,CAACV,YAAY,CAACW,GAAG,EACzBD,QAAQ,CAACV,YAAY,CAACc,KAAK,EAC3BJ,QAAQ,CAACV,YAAY,CAACY,SAAS,GAAGF,QAAQ,CAACV,YAAY,CAACa,QAAQ,CACjE;MACD,OAAO/T,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;IAAC;EAC/B;;;uBA3FWjE,WAAW,EAAAxE,sDAAA,CAAAuE,wDAAA,GAAAvE,sDAAA,CAAA0E,mDAAA,GAAA1E,sDAAA,CAAAuF,8DAAA,GAAAvF,sDAAA,CAAA2F,oEAAA;IAAA;EAAA;;;aAAXnB,WAAW;MAAAgW,OAAA,EAAXhW,WAAW,CAAAiW,IAAA;MAAAC,UAAA,EAFV;IAAM;EAAA;;;;;;;;;;;;;;;;;;;;AChB+B;AACO;AACnB;AAEiB;;AAKlD,MAAO7a,WAAW;EAHxBqB,YAAA;IAIU,KAAA6b,eAAe,GAAG,IAAIH,iDAAe,CAAM,IAAI,CAAC;IAChD,KAAAI,MAAM,GAAG,IAAIJ,iDAAe,CAAS,EAAE,CAAC;IACxC,KAAAK,aAAa,GAAG,IAAIL,iDAAe,CAAC,KAAK,CAAC;IAC1C,KAAAM,QAAQ,GAAG7d,qDAAM,CAACsd,oEAAW,CAAC;IAC9B,KAAAQ,YAAY,GAAG,IAAIP,iDAAe,CAAsB,EAAE,CAAC;IAC3D,KAAAQ,eAAe,GAAG,IAAIR,iDAAe,CAAU,KAAK,CAAC;IACtD,KAAAS,SAAS,GAAG,IAAI,CAACD,eAAe,CAACE,YAAY,EAAE;IAC9C,KAAAC,SAAS,GAAG,EAAE;IACd,KAAAC,WAAW,GAAG,IAAIV,qDAAS,CAAM,EAAE,CAAC;IAEpC,KAAAW,UAAU,GAAG,IAAIb,iDAAe,CAAM;MAC5Cc,UAAU,EAAE,EAAE;MACdC,cAAc,EAAE,EAAE;MAClBC,QAAQ,EAAE;KACX,CAAC;IAEM,KAAAC,SAAS,GAAG,IAAIC,GAAG,EAA+C;IAClE,KAAAC,YAAY,GAAG,IAAInB,iDAAe,CAAmD,IAAI,CAACiB,SAAS,CAAC;IACrG,KAAAG,MAAM,GAAG,IAAI,CAACD,YAAY,CAACT,YAAY,EAAE;;EAEzCW,iBAAiBA,CAACC,QAAgB;IACvC,IAAI,CAAC,IAAI,CAACL,SAAS,CAACM,GAAG,CAACD,QAAQ,CAAC,EAAE;MACjC,IAAI,CAACL,SAAS,CAACjF,GAAG,CAACsF,QAAQ,EAAE;QAAEE,MAAM,EAAE,KAAK;QAAEC,KAAK,EAAE;MAAK,CAAE,CAAC;MAC7D,IAAI,CAACN,YAAY,CAACzb,IAAI,CAAC,IAAI,CAACub,SAAS,CAAC;MACtC;IACF;EACF;EAEOS,eAAeA,CAACJ,QAAgB,EAAEK,IAAe;IACtD,IAAI,CAACf,WAAW,CAACgB,UAAU,CAACN,QAAQ,EAAE,IAAIrB,uDAAW,CAAC4B,eAAe,CAACF,IAAI,CAACG,WAAW,EAAE,CAAC,CAAC,CAAC;IAC3F,IAAIR,QAAQ,KAAK,OAAO,IAAI,IAAI,CAACX,SAAS,EAAE;MAC1C,MAAMoB,UAAU,GAAG,IAAI,CAACnB,WAAW,CAACjI,GAAG,CAAC,OAAO,CAAC,EAAE7S,KAAK,IAAI,EAAE;MAC7Dic,UAAU,CAACC,OAAO,GAAG,8BAA8B,IAAI,CAACrB,SAAS,EAAE;MACnE,IAAI,CAACC,WAAW,CAACjI,GAAG,CAAC,OAAO,CAAC,EAAEsJ,QAAQ,CAACF,UAAU,CAAC;IACrD;EACF;EAEOG,cAAcA,CAAA;IACnB,OAAO,IAAI,CAACtB,WAAW;EACzB;EAEOuB,SAASA,CAACb,QAAgB,EAAEE,MAAe;IAChD,MAAMY,KAAK,GAAG,IAAI,CAACnB,SAAS,CAACtI,GAAG,CAAC2I,QAAQ,CAAC;IAC1C,IAAIc,KAAK,EAAE;MACTA,KAAK,CAACZ,MAAM,GAAGA,MAAM;MACrB,IAAI,CAACL,YAAY,CAACzb,IAAI,CAAC,IAAI,CAACub,SAAS,CAAC;MACtC;IACF;EACF;EAEOoB,QAAQA,CAACf,QAAgB,EAAEG,KAAc;IAC9C,MAAMW,KAAK,GAAG,IAAI,CAACnB,SAAS,CAACtI,GAAG,CAAC2I,QAAQ,CAAC;IAC1C,IAAIc,KAAK,EAAE;MACTA,KAAK,CAACX,KAAK,GAAGA,KAAK;MACnB,IAAI,CAACN,YAAY,CAACzb,IAAI,CAAC,IAAI,CAACub,SAAS,CAAC;MACtC;IACF;EACF;EAEOqB,WAAWA,CAACC,QAAiB;IAClC,IAAI,IAAI,CAAC/B,eAAe,CAAC1a,KAAK,KAAKyc,QAAQ,EAAE;MAC3C,IAAI,CAAC/B,eAAe,CAAC9a,IAAI,CAAC6c,QAAQ,CAAC;IACrC;EACF;EAEOC,UAAUA,CAAA;IACf,IAAI,CAAC5B,WAAW,GAAG,IAAIV,qDAAS,CAAM,EAAE,CAAC;IACzC,IAAI,CAACS,SAAS,GAAG,EAAE;IACnB,IAAI,CAACM,SAAS,GAAG,IAAIC,GAAG,EAA+C;IACvE,IAAI,CAACC,YAAY,CAACzb,IAAI,CAAC,IAAI,CAACub,SAAS,CAAC;IACtC;EACF;EAEQwB,SAASA,CAAA;IACf,IAAI,CAACtB,YAAY,CAACzb,IAAI,CAAC,IAAI,CAACub,SAAS,CAAC;EACxC;EAEA/N,wBAAwBA,CAAC9E,IAAa;IACpC,IAAI,CAACiS,aAAa,CAAC3a,IAAI,CAAC0I,IAAI,CAAC;EAC/B;EAEAjJ,wBAAwBA,CAAA;IACtB,OAAO,IAAI,CAACkb,aAAa,CAACK,YAAY,EAAE;EAC1C;EAEA/N,kBAAkBA,CAACvE,IAAS;IAC1B,IAAI,CAAC+R,eAAe,CAACza,IAAI,CAAC0I,IAAI,CAAC;EACjC;EAEAgD,kBAAkBA,CAAA;IAChB,OAAO,IAAI,CAAC+O,eAAe,CAACO,YAAY,EAAE;EAC5C;EAEAgC,SAASA,CAACtU,IAAY;IACpB,IAAI,CAACgS,MAAM,CAAC1a,IAAI,CAAC0I,IAAI,CAAC;EACxB;EAEAuU,SAASA,CAAA;IACP,OAAO,IAAI,CAACvC,MAAM,CAACM,YAAY,EAAE;EACnC;EAEAkC,cAAcA,CAAC1X,EAAU;IACvB;IACA,IAAI,CAACyV,SAAS,GAAGzV,EAAE;IACnB,MAAM6W,UAAU,GAAG,IAAI,CAACnB,WAAW,CAACjI,GAAG,CAAC,OAAO,CAAC,EAAE7S,KAAK,IAAI,EAAE;IAC7Dic,UAAU,CAACC,OAAO,GAAG,8BAA8B9W,EAAE,EAAE;IACvD,IAAI,CAAC0V,WAAW,CAACjI,GAAG,CAAC,OAAO,CAAC,EAAEsJ,QAAQ,CAACF,UAAU,CAAC;EACrD;EAEAc,eAAeA,CAACzU,IAAyB;IACvC,IAAI,CAACmS,YAAY,CAAC7a,IAAI,CAAC0I,IAAI,CAAC;EAC9B;EAEA0U,eAAeA,CAAA;IACb,OAAO,IAAI,CAACvC,YAAY,CAACG,YAAY,EAAE;EACzC;EAEAqC,aAAaA,CAAC3U,IAAsE;IAClF,IAAI,CAACyS,UAAU,CAACnb,IAAI,CAAC0I,IAAI,CAAC;EAC5B;EAEA4U,aAAaA,CAAA;IACX,OAAO,IAAI,CAACnC,UAAU,CAACH,YAAY,EAAE;EACvC;EAEA9N,YAAYA,CAACkE,OAAe,EAAEsF,MAAc,EAAE6G,SAAiB;IAC7D,IAAI,CAAC3C,QAAQ,CAAC/a,IAAI,CAACuR,OAAO,EAAEsF,MAAM,EAAE;MAClC8G,QAAQ,EAAE,IAAI;MACdC,gBAAgB,EAAE,KAAK;MACvBC,kBAAkB,EAAE,OAAO;MAC3BC,UAAU,EAAE,CAACJ,SAAS;KACvB,CAAC;EACJ;;;uBArIWhgB,WAAW;IAAA;EAAA;;;aAAXA,WAAW;MAAA2a,OAAA,EAAX3a,WAAW,CAAA4a,IAAA;MAAAC,UAAA,EAFV;IAAM;EAAA;;;;;;;;;;;;;;;;;;;;;;;;ACN2F;AAC7D;AACsB;;AAGlE,MAAOyF,eAAe;EAC1BC,SAASA,CAACC,GAAqB,EAAE/d,IAAiB;IAChD,MAAMuR,UAAU,GAAG,CAAC;IACpB,MAAMC,YAAY,GAAG,IAAI;IAEzB,MAAMF,aAAa,GAAGA,CAAA,KAAOG,QAAyB,IAAI;MACxD,OAAOA,QAAQ,CAACC,IAAI,CAClB1C,wDAAQ,CAAC,CAACtI,KAAK,EAAEiL,UAAU,KAAI;QAC7B,IAAIjL,KAAK,CAACyK,MAAM,KAAK,GAAG,EAAE;UACxB,OAAOrC,gDAAU,CAAC,MAAMpI,KAAK,CAAC;QAChC,CAAC,MAAM,IAAIiL,UAAU,IAAIJ,UAAU,EAAE;UACnC,OAAOzC,gDAAU,CAAC,MAAMpI,KAAK,CAAC;QAChC,CAAC,MAAM;UACL,OAAOuI,wCAAE,CAACvI,KAAK,CAAC,CAACgL,IAAI,CAACxC,qDAAK,CAACsC,YAAY,GAAGI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEF,UAAU,CAAC,CAAC,CAAC;QACtE;MACF,CAAC,CAAC,CACH;IACH,CAAC;IAED,MAAM1R,KAAK,GAAGf,YAAY,CAACC,OAAO,CAAC,WAAW,CAAC;IAC/C,MAAM4a,GAAG,GAAG7a,YAAY,CAACC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;IAC7C,IAAIc,KAAK,EAAE;MACT8d,GAAG,GAAGA,GAAG,CAACC,KAAK,CAAC;QACdC,UAAU,EAAE;UACVC,aAAa,EAAE,UAAUje,KAAK,EAAE;UAChC,sBAAsB,EAAE8Z;SACzB;QACDhH,YAAY,EAAE,MAAM;QACpBrG,IAAI,EAAEqR,GAAG,CAACrR;OACX,CAAC;IACJ;IAEA;IACA,OAAO1M,IAAI,CAACme,MAAM,CAACJ,GAAG,CAAC,CAACrM,IAAI,CAC1B7C,0DAAU,CAAEuP,GAAQ,IAAI;MACtB,IAAIA,GAAG,YAAYR,mEAAiB,EAAE;QACpC;QACA,IAAIQ,GAAG,CAACjN,MAAM,KAAK,CAAC,EAAE;UACpB;UACAxK,OAAO,CAACD,KAAK,CAAC,oBAAoB,EAAE0X,GAAG,CAAC1X,KAAK,CAAC;UAC9C;QACF,CAAC,MAAM,IAAI0X,GAAG,CAACjN,MAAM,KAAK,GAAG,EAAE;UAC7B;UACAxK,OAAO,CAACD,KAAK,CAAC,eAAe,EAAE0X,GAAG,CAAC1X,KAAK,CAAC;UACzC;QACF,CAAC,MAAM;UACL;UACAC,OAAO,CAACD,KAAK,CAAC,UAAU0X,GAAG,CAACjN,MAAM,cAAc,EAAEiN,GAAG,CAAChN,OAAO,CAAC;QAChE;MACF,CAAC,MAAM;QACL;QACAzK,OAAO,CAACD,KAAK,CAAC,oBAAoB,EAAE0X,GAAG,CAAC;MAC1C;MACA;MACA,OAAOtP,gDAAU,CAAC,MAAM,IAAIuC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC,CAAC,EACFlC,yDAAS,CAACmC,aAAa,EAAE,CAAC,CAC3B;EACH;;;uBA1DWuM,eAAe;IAAA;EAAA;;;aAAfA,eAAe;MAAA3F,OAAA,EAAf2F,eAAe,CAAA1F;IAAA;EAAA;;;;;;;;;;;;;;;;;;ACLW;;AAKjC,MAAO9V,cAAc;EAGzBzD,YAAA;IAFA,KAAAuB,UAAU,GAAG,IAAIma,iDAAe,CAAC,IAAI,CAAC;EAEvB;EAEf,IAAI9a,SAASA,CAACY,KAAc;IAC1BlB,YAAY,CAAC2Z,OAAO,CAAC,WAAW,EAAE/L,IAAI,CAACC,SAAS,CAAC3M,KAAK,CAAC,CAAC;IACxD,IAAI,CAACD,UAAU,CAACH,IAAI,CAACI,KAAK,CAAC;EAC7B;EAEA,IAAIZ,SAASA,CAAA;IACX,OAAO,IAAI,CAACW,UAAU,CAACC,KAAK;EAC9B;;;uBAZWiC,cAAc;IAAA;EAAA;;;aAAdA,cAAc;MAAA6V,OAAA,EAAd7V,cAAc,CAAA8V,IAAA;MAAAC,UAAA,EAFb;IAAM;EAAA;;;;;;;;;;;;;;;;;;ACHuC;;AAKrD,MAAOgC,YAAY;EACvBxb,YAAA,GAAe;EAEfub,SAASA,CAACJ,GAAW,EAAEzJ,KAAa,EAAE+N,SAAiB;IACrD;IACA;IACA;IACC5P,MAAc,CAAC6J,KAAK,CAACgG,UAAU,CAAC;MAC/BC,OAAO,EAAE;QACP/Y,EAAE,EAAEuU,GAAG;QAAE;QACTzJ,KAAK,EAAEA,KAAK;QAAE;QACd+N,SAAS,EAAEA,SAAS,CAAE;QACtB;QAEA;QACA;OACD;MAEDG,OAAO,EAAE;QACPhZ,EAAE,EAAE4J,qEAAW,CAACqP,OAAO,CAAE;QACzB;QACA;QACA;QACA;QACA;QACA;QAEA;QACA;;KAEH,CAAC;EACJ;;;uBA/BWrE,YAAY;IAAA;EAAA;;;aAAZA,YAAY;MAAAlC,OAAA,EAAZkC,YAAY,CAAAjC,IAAA;MAAAC,UAAA,EAFX;IAAM;EAAA;;;;;;;;;;;;;;;;;;;;;ACJ+B;AACA;AACJ;;AAMzC,MAAO/N,WAAW;EAJxBzL,YAAA;IAKU,KAAAsG,UAAU,GAAGnI,qDAAM,CAACuK,wDAAU,CAAC;IAC/B,KAAArI,GAAG,GAAGC,YAAY,CAACC,OAAO,CAAC,KAAK,CAAE;;EAE1CoN,gBAAgBA,CAAA;IACd,OAAOvH,oDAAc,CAAC,IAAI,CAACE,UAAU,CAACsB,uBAAuB,CAAC,IAAI,CAACvH,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAACyS,IAAI,CAC3FiN,yCAAG,CAAEtX,QAAe,IAAKA,QAAQ,CAACuX,IAAI,CAACC,IAAI,IAAI,OAAOA,IAAK,IAAI,QAAQ,IAAIA,IAAI,CAACpY,SAAS,CAAC,CAAC,EAC3FiY,4CAAM,CAACG,IAAI,IAAIA,IAAI,IAAIA,IAAI,CAACpY,SAAS,CAAC,EACtCkY,yCAAG,CAACE,IAAI,IAAIA,IAAI,CAACpY,SAAS,CAAC,CAC9B,CAAC;EACJ;;;uBAVW4D,WAAW;IAAA;EAAA;;;aAAXA,WAAW;MAAA6N,OAAA,EAAX7N,WAAW,CAAA8N,IAAA;MAAAC,UAAA,EAHV;IAAM;EAAA;;;;;;;;;;;;;;;;ACLb,MAAM/I,YAAY,GAAG;EACxB6H,oBAAoB,EAAE,4BAA4B;EAClDC,qBAAqB,EAAC,4BAA4B;EAElDG,iBAAiB,EAAE;CACtB;;;;;;;;;;;;;;;;;;;;;ACLM,MAAMpN,YAAY,GAAG;EACxBmD,IAAI,EAAE;IACFD,OAAO,EAAE,SAAS;IAClB0R,KAAK,EAAE;GACV;EACDxR,aAAa,EAAE,kBAAkB;EACjCyR,WAAW,EAAE;CAChB;AAEM,MAAM9U,OAAO,GAAG;EACnBkD,SAAS,EAAE;IACPC,OAAO,EAAE;;CAEhB;AAEM,MAAM4R,IAAI,GAAG;EAChBC,iBAAiB,EAAE;IACfC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;GACjB;EACDC,kBAAkB,EAAE;IAChBF,IAAI,EAAE,SAAS;IACfG,qBAAqB,EAAE;GAC1B;EACDC,cAAc,EAAE;IACZC,WAAW,EAAE;MACTC,eAAe,EAAE,0CAA0C;MAC3DC,OAAO,EAAE,4DAA4D;MACrEC,gBAAgB,EAAE,iGAAiG;MACnHC,cAAc,EAAE,6FAA6F;MAC7GC,aAAa,EAAE;;GAEtB;EACDC,KAAK,EAAE;IACHN,WAAW,EAAE;MACTO,eAAe,EAAE,yDAAyD;MAC1EC,aAAa,EAAE,mBAAmB;MAClCC,uBAAuB,EAAE,6BAA6B;MACtDC,uBAAuB,EAAE;;GAEhC;EACDC,kBAAkB,EAAE;IAChBX,WAAW,EAAE;MACTO,eAAe,EAAE,yDAAyD;MAC1EK,mBAAmB,EAAE,yBAAyB;MAC9CC,iBAAiB,EAAE,uBAAuB;MAC1CC,aAAa,EAAC,sBAAsB;MACpCZ,OAAO,EAAE;;;CAGpB;AAEM,MAAMrV,cAAc,GAAG;EAC1BoC,QAAQ,EAAE,UAAU;EACpB8T,aAAa,EAAE;CAClB;AAEM,MAAMC,IAAI,GAAG;EAChBC,cAAc,EAAE,EAAE;EAClBC,cAAc,EAAE,EAAE;EAClBC,kBAAkB,EAAE,EAAE;EACtBC,oBAAoB,EAAE,CAAC,EAAE;EACzBC,oBAAoB,EAAE;CACzB;AAEM,MAAMzW,kBAAkB,GAAG;EAC9B,CAACC,cAAc,CAACoC,QAAQ,GAAG,4BAA4B;EACvD,CAACpC,cAAc,CAACkW,aAAa,GAAG;CACnC;AAEM,MAAMO,wBAAwB,GAAG,CACpC,WAAW,EACX,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,MAAM,CACT;;;;;;;;;;;;;;;ACjFD;;;;AAIM,MAAOC,mBAAmB;EAC9B;;;;;;EAMAC,YAAYA,CAAC7S,KAA6B;IACxC,OAAO,KAAK;EACd;EAEA;;;;;;EAMA8S,KAAKA,CAAC9S,KAA6B,EAAEiQ,MAAkC,GAAS;EAEhF;;;;;;EAMA8C,YAAYA,CAAC/S,KAA6B;IACxC,OAAO,KAAK;EACd;EAEA;;;;;;EAMAgT,QAAQA,CAAChT,KAA6B;IACpC,OAAO,IAAI;EACb;EAEA;;;;;;;;;EASAiT,gBAAgBA,CAACC,MAA8B,EAAEC,IAA4B;IAC3E,IAAID,MAAM,CAACE,WAAW,KAAKD,IAAI,CAACC,WAAW,EAAE;MAC3C,OAAO,KAAK;IACd;IAEA;IACA,IACEF,MAAM,CAACE,WAAW,EAAE3d,IAAI,EAAEiF,QAAQ,CAAC,2BAA2B,CAAC,IAC/DwY,MAAM,CAACE,WAAW,EAAE3d,IAAI,EAAEiF,QAAQ,CAAC,gCAAgC,CAAC,EACpE;MACA,OAAOwY,MAAM,CAACG,QAAQ,CAACtO,GAAG,CAAC,UAAU,CAAC,KAAKoO,IAAI,CAACE,QAAQ,CAACtO,GAAG,CAAC,UAAU,CAAC;IAC1E;IAEA,OAAO,IAAI;EACb;;;;;;;;;;;;;;;;ACpEK,MAAM7D,WAAW,GAAG;EACzBqP,OAAO,EAAE,KAAK;EACd+C,UAAU,EAAE,IAAI;EAChBhJ,QAAQ,EAAE,QAAQ;EAClBG,OAAO,EAAE,uDAAuD;EAChEnJ,aAAa,EAAE,mCAAmC;EAClDkJ,eAAe,EAAE,0CAA0C;EAC3D+I,OAAO,EAAE,4BAA4B;EACrCC,YAAY,EAAE,kCAAkC;EAChDC,sBAAsB,EAAE,kCAAkC;EAC1DC,yBAAyB,EAAE;CAC5B;;;;;;;;;;;;;;;;;;;;;;;ACXmD;AACD;AAC6B;AACP;AACqB;AACyB;AAC7E;AACoC;AACd;AACe;AAC1B;AACkB;AAEvEG,+EAAoB,CAACpjB,4DAAY,EAAE;EACjC+jB,SAAS,EAAE,CACT;IAAEC,OAAO,EAAEH,wFAA8B;IAAEI,QAAQ,EAAE;MAAEC,UAAU,EAAE,QAAQ;MAAEC,eAAe,EAAE;IAAS;EAAE,CAAE,EAC3GjB,kEAAmB,CAACC,oEAAa,EAAEG,kEAAgB,EAAEQ,0EAAiB,CAAC,EACvEN,uEAAiB,EAAE,EACnB;IAAEQ,OAAO,EAAET,mEAAiB;IAAEa,QAAQ,EAAElF,wFAAe;IAAEmF,KAAK,EAAE;EAAI,CAAE,EACtEX,8DAAa,CAAC3e,mDAAM,EAAE6e,iEAAgB,CAAC;IAAEU,mBAAmB,EAAE;EAAQ,CAAE,CAAC,EAAEX,+DAAc,CAACF,8DAAiB,CAAC,CAAC,EAC7GJ,wFAAiB,EAAE,EACnB;IAAEW,OAAO,EAAEnb,+DAAkB;IAAEub,QAAQ,EAAEjC,gFAAmBA;EAAA,CAAE;CAEjE,CAAC,CAACoC,KAAK,CAAE9E,GAAG,IAAKzX,OAAO,CAACD,KAAK,CAAC0X,GAAG,CAAC,CAAC;;;;;;;;;;ACvBrC","sources":["./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.routes.ts","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/side-menu/side-menu.component.ts","./src/app/components/side-menu/side-menu.component.html","./src/app/components/title-maintenance/tab-config/tab-config.component.ts","./src/app/components/title-maintenance/tab-config/tab-config.component.html","./src/app/guards/sso-auth/sso-auth.guard.ts","./src/app/guards/unsaved-changes/unsaved-changes.guard.ts","./src/app/services/api/api.service.ts","./src/app/services/auth/auth.service.ts","./src/app/services/data.service.ts","./src/app/services/interceptors/auth.interceptor.ts","./src/app/services/loading/loading.service.ts","./src/app/services/pendo/pendo.service.ts","./src/app/services/util.service.ts","./src/app/shared/constants/api-endpoints.ts","./src/app/shared/constants/common.ts","./src/app/shared/route.reuseStrategy.ts","./src/environments/environment.development.ts","./src/main.ts","ignored|C:\\actions-runner\\_work\\ERM-UI\\ERM-UI\\node_modules\\global|min-document"],"sourcesContent":["import { ChangeDetectorRef, Component, OnInit, ViewChild, inject, AfterViewInit, AfterViewChecked } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\nimport { NgIf } from '@angular/common';\r\nimport { AuthService } from './services/auth/auth.service';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { SideMenuComponent } from './components/side-menu/side-menu.component';\r\nimport { NbcuLoaderComponent } from '@NBCUniversalOTS/tl-shared-storybook-ng';\r\nimport { darkModePreference$ } from '@NBCUniversalOTS/tl-shared-storybook-ng';\r\nimport { LoadingService } from './services/loading/loading.service';\r\nimport {MatSidenav, MatSidenavModule} from '@angular/material/sidenav';\r\nimport { DataService } from './services/data.service';\r\nimport { TabConfigComponent } from './components/title-maintenance/tab-config/tab-config.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n standalone: true,\r\n imports: [\r\n NgIf,\r\n RouterOutlet,\r\n HeaderComponent,\r\n SideMenuComponent,\r\n NbcuLoaderComponent,\r\n MatSidenavModule,\r\n TabConfigComponent,\r\n MatIconModule,\r\n],\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit, AfterViewChecked {\r\n title = 'Release-Management-POC';\r\n isLoading: boolean;\r\n sso: string = localStorage.getItem('uid')!;\r\n @ViewChild('sidenav') sidenav: MatSidenav | undefined;\r\n @ViewChild('content') content: any;\r\n private isListenerAdded = false;\r\n dataService = inject(DataService);\r\n customComponent = null;\r\n customComponentInputs = {}\r\n constructor(\r\n private auth: AuthService,\r\n private change: ChangeDetectorRef,\r\n private loading: LoadingService,\r\n ) {\r\n this.isLoading = true;\r\n loading.isLoading = true;\r\n this.dataService.getConfigPanelVisibility().subscribe((isOpen: boolean) => {\r\n isOpen ? this.sidenav?.open() : this.sidenav?.close();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n darkModePreference$.next('light');\r\n const token = localStorage.getItem('access_token');\r\n if (token) {\r\n this.authorized();\r\n }\r\n\r\n this.loading._isLoading.subscribe((value) => {\r\n this.isLoading = value;\r\n this.change.markForCheck();\r\n });\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n this.addScrollListener();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.addScrollListener();\r\n }\r\n\r\n private addScrollListener(): void {\r\n if (this.content && !this.isListenerAdded) {\r\n this.content.elementRef.nativeElement.addEventListener('scroll', this.onScroll.bind(this));\r\n this.isListenerAdded = true;\r\n }\r\n }\r\n\r\n onScroll(event: Event): void {\r\n const button = document.getElementById('back-to-top');\r\n const target = event.target as HTMLElement;\r\n if (button) {\r\n if (target.scrollTop > 500) {\r\n button.style.display = 'flex';\r\n } else {\r\n button.style.display = 'none';\r\n }\r\n }\r\n }\r\n\r\n scrollToTop() {\r\n this.content?.elementRef.nativeElement.scrollTo({ top: 0, behavior: 'smooth' });\r\n }\r\n\r\n /* When the app.component is initialized (happens only once)\r\n checks the validity of the token if it already exists (ex. from not logging out) */\r\n async authorized() {\r\n const valid = await this.auth.validateToken();\r\n if (valid) {\r\n this.isLoading = false;\r\n this.loading.isLoading = false;\r\n } else {\r\n this.auth.logout();\r\n this.auth.login();\r\n }\r\n }\r\n\r\n closeSideNav() {\r\n this.sidenav?.close();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Routes } from '@angular/router';\r\nimport { SSOAuthGuard } from './guards/sso-auth/sso-auth.guard';\r\nimport { unsavedChangesGuard } from './guards/unsaved-changes/unsaved-changes.guard';\r\n\r\nexport const routes: Routes = [\r\n {\r\n path: 'dashboard',\r\n loadComponent: () => import('./components/dashboard/dashboard.component').then((mod) => mod.DashboardComponent),\r\n canActivate: [SSOAuthGuard],\r\n },\r\n {\r\n path: 'titles',\r\n loadComponent: () => import('./components/titles/titles.component').then((mod) => mod.TitlesComponent),\r\n canActivate: [SSOAuthGuard],\r\n },\r\n {\r\n path: 'titles/request',\r\n loadComponent: () =>\r\n import('./components/requests/title-creation-request-form/title-creation-request-form.component').then(\r\n (mod) => mod.TitleCreationRequestFormComponent,\r\n ),\r\n canActivate: [SSOAuthGuard],\r\n },\r\n // {\r\n // path: 'titles/:userTerritory/:title_id',\r\n // loadComponent: () =>\r\n // import('./components/title-maintenance/title-maintenance.component').then((mod) => mod.TitleMaintenanceComponent),\r\n // canActivate: [SSOAuthGuard],\r\n // },\r\n {\r\n path: 'titles/domestic/:title_id',\r\n loadComponent: () =>\r\n import('./components/title-maintenance/domestic/title-maintenance.component').then(\r\n (mod) => mod.TitleMaintenanceComponent,\r\n ),\r\n canActivate: [SSOAuthGuard],\r\n canDeactivate: [unsavedChangesGuard],\r\n },\r\n {\r\n path: 'titles/international/:title_id',\r\n loadComponent: () =>\r\n import('./components/title-maintenance/international/title-maintenance-intl.component').then(\r\n (mod) => mod.TitleMaintenanceIntlComponent,\r\n ),\r\n canActivate: [SSOAuthGuard],\r\n },\r\n {\r\n path: 'requests',\r\n loadComponent: () => import('./components/requests/requests.component').then((mod) => mod.RequestsComponent),\r\n canActivate: [SSOAuthGuard],\r\n children: [\r\n {\r\n path: ':id',\r\n loadComponent: () =>\r\n import('./components/requests/requests-detail/requests-detail.component').then(\r\n (mod) => mod.RequestsDetailComponent,\r\n ),\r\n canDeactivate: [unsavedChangesGuard],\r\n },\r\n ],\r\n },\r\n {\r\n path: 'auth-callback',\r\n loadComponent: () =>\r\n import('./components/auth-callback/auth-callback.component').then((mod) => mod.AuthCallbackComponent),\r\n canActivate: [SSOAuthGuard],\r\n },\r\n {\r\n path: 'logout',\r\n loadComponent: () => import('./components/logout/logout.component').then((mod) => mod.LogoutComponent),\r\n },\r\n {\r\n path: 'admin',\r\n loadComponent: () => import('./components/admin/admin.component').then((mod) => mod.AdminComponent),\r\n canActivate: [SSOAuthGuard],\r\n },\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: '/titles',\r\n },\r\n {\r\n path: '**',\r\n pathMatch: 'full',\r\n redirectTo: '/dashboard',\r\n },\r\n];\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NbcuAppBarComponent, AppBarAction } from '@NBCUniversalOTS/tl-shared-storybook-ng';\r\nimport { ApiService } from 'src/app/services/api/api.service';\r\nimport { firstValueFrom, lastValueFrom } from 'rxjs';\r\nimport { RouteReuseStrategy, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n standalone: true,\r\n imports: [CommonModule, NbcuAppBarComponent],\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n})\r\nexport class HeaderComponent {\r\n sso = localStorage.getItem('uid');\r\n userTerritory: string | null = null;\r\n constructor(private apiService: ApiService, private router: Router, private routeReuse: RouteReuseStrategy) {\r\n // routeReuse.shouldReuseRoute = () => false;\r\n }\r\n\r\n async checkUserTerritory(): Promise {\r\n if (this.sso) {\r\n try {\r\n const result: any = await lastValueFrom(this.apiService.getColumnCustomizations(this.sso, '/admin', 'admin'));\r\n if (result && result[4].territory) {\r\n this.userTerritory = result[4].territory;\r\n } else {\r\n //default to domestic if no user preference exists\r\n this.userTerritory = 'domestic';\r\n }\r\n } catch (error) {\r\n console.error('Error loading user preferences', error);\r\n }\r\n }\r\n }\r\n\r\n @ViewChild(NbcuAppBarComponent) appBar!: NbcuAppBarComponent;\r\n project = 'erm';\r\n\r\n actions: AppBarAction[] = [\r\n { id: 'menu-1', icon: 'notificationsNone', tooltip: 'Menu 1' },\r\n { id: 'menu-2', icon: 'person', tooltip: 'Menu 2' },\r\n { id: 'menu-3', icon: 'apps' },\r\n ];\r\n\r\n searchCategory = 'Titles';\r\n selectedCategory = 'Titles';\r\n searchCategories: string[] = ['All', 'Titles', 'Contribution Reports', 'Example'];\r\n\r\n searchCategoryChange(inputName: string, event: any) {\r\n this.selectedCategory = event;\r\n }\r\n\r\n //add domestic or international to route based on user preferences\r\n async searchOptionsChange(inputName: string, event: any) {\r\n await this.checkUserTerritory();\r\n this.appBar.clearSearch();\r\n this.router.navigateByUrl(`/titles/${this.userTerritory}/${event.value}`);\r\n }\r\n\r\n getOptionsTitles(match: string): Promise {\r\n return firstValueFrom(this.apiService.getTitleSearchSubstring(match.toUpperCase())).then((response) => {\r\n if (!response || response.length === 0) return [{ value: '-', description: 'No matches found', disabled: true }];\r\n else return response;\r\n });\r\n }\r\n\r\n searchOptions = (match: string | { value: string; description: string }): Promise => {\r\n if (typeof match === 'object' && 'description' in match) {\r\n match = match.description;\r\n }\r\n if (match && match.length > 2) {\r\n //Extras to demo how future search API functions should be added\r\n switch (this.selectedCategory) {\r\n case 'All':\r\n return Promise.resolve([{ value: '-', description: 'Please enter at least 3 characters', disabled: true }]);\r\n case 'Titles':\r\n return this.getOptionsTitles(match);\r\n case 'Contribution Reports':\r\n return Promise.resolve([{ value: '-', description: 'Please enter at least 3 characters', disabled: true }]);\r\n case 'Example':\r\n return Promise.resolve([{ value: '-', description: 'Please enter at least 3 characters', disabled: true }]);\r\n default:\r\n return Promise.resolve([{ value: '-', description: 'Please enter at least 3 characters', disabled: true }]);\r\n }\r\n } else return Promise.resolve([{ value: '-', description: 'Please enter at least 3 characters', disabled: true }]);\r\n };\r\n}\r\n","\r\n","import { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NbcuSidenavComponent, NbcuSidenavLink } from '@NBCUniversalOTS/tl-shared-storybook-ng';\r\nimport { ApiService } from 'src/app/services/api/api.service';\r\n\r\n@Component({\r\n selector: 'app-side-menu',\r\n standalone: true,\r\n imports: [CommonModule, NbcuSidenavComponent],\r\n templateUrl: './side-menu.component.html',\r\n styleUrls: ['./side-menu.component.scss'],\r\n})\r\nexport class SideMenuComponent {\r\n id = 'side-nav-test';\r\n sso: string = localStorage.getItem('uid')!;\r\n role: string = '';\r\n\r\n constructor(private apiService: ApiService) {\r\n this.checkSSOAndAct();\r\n }\r\n\r\n links: NbcuSidenavLink[] = [\r\n {\r\n id: 'dashboard',\r\n routerLink: '/dashboard',\r\n icon: 'home',\r\n label: 'Dashboard',\r\n notifications: 2,\r\n tooltip: 'Dashboard',\r\n active: false,\r\n },\r\n {\r\n id: 'titles',\r\n routerLink: '/titles',\r\n icon: 'theaters',\r\n label: 'Titles',\r\n tooltip: 'Titles',\r\n active: false,\r\n },\r\n {\r\n id: 'requests',\r\n routerLink: '/requests',\r\n icon: 'library_add',\r\n label: this.role.length > 0 ? 'Requests' : 'Approvals',\r\n tooltip: 'Title Requests',\r\n active: false,\r\n },\r\n {\r\n id: 'admin',\r\n routerLink: '/admin',\r\n icon: 'person',\r\n label: 'Admin',\r\n tooltip: 'Admin',\r\n active: false,\r\n },\r\n {\r\n id: 'settings',\r\n routerLink: '/settings',\r\n icon: 'settings',\r\n label: 'Settings',\r\n tooltip: 'Settings',\r\n active: false,\r\n },\r\n {\r\n id: 'logout',\r\n routerLink: '/logout',\r\n icon: 'logout',\r\n label: 'Logout',\r\n alignBottom: true,\r\n tooltip: 'Logout user',\r\n active: false,\r\n },\r\n ];\r\n // Function to check sso and perform action\r\n checkSSOAndAct() {\r\n setTimeout(() => {\r\n if (this.sso) {\r\n this.getUserRole(this.sso);\r\n } else {\r\n this.checkSSOAndAct(); // Call recursively until sso is true\r\n }\r\n }, 500); // Adjust the timeout as needed\r\n }\r\n\r\n async getUserRole(sso: string) {\r\n this.apiService.getUserRole(sso).subscribe((data: any) => {\r\n this.role = data.roles[0].label;\r\n this.links[2].label = this.role.includes('Territory') ? 'Requests' : 'Approvals';\r\n });\r\n }\r\n}\r\n","\r\n \r\n\r\n","import { Component, inject, Input, model, OnChanges, SimpleChanges} from '@angular/core';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {MatCardModule} from '@angular/material/card';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ApiService } from 'src/app/services/api/api.service';\r\nimport { Tab } from 'src/app/models/panel.model';\r\nimport {\r\n CdkDragDrop,\r\n CdkDrag,\r\n CdkDragHandle,\r\n CdkDropList,\r\n moveItemInArray,\r\n transferArrayItem,\r\n} from '@angular/cdk/drag-drop';\r\n\r\nimport {\r\n NbcuContainedButtonComponent,\r\n NbcuCheckboxComponent\r\n} from '@NBCUniversalOTS/tl-shared-storybook-ng';\r\nimport { DataService } from 'src/app/services/data.service';\r\nimport { MESSAGE, NOTIFICATION, TITLE_DETAILS_PAGE, USER_TERRITORY } from 'src/app/shared/constants/common';\r\nimport { UtilService } from 'src/app/services/util.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-tab-config',\r\n standalone: true,\r\n imports: [MatCardModule, MatCheckboxModule, FormsModule, CdkDropList, CdkDrag,CdkDragHandle,\r\n NbcuContainedButtonComponent,\r\n NbcuCheckboxComponent,\r\n ],\r\n templateUrl: './tab-config.component.html',\r\n styleUrl: './tab-config.component.scss'\r\n})\r\n\r\nexport class TabConfigComponent {\r\n readonly checked = model(false);\r\n data: any = [];\r\n isPanelVisible = false;\r\n\r\n private apiService = inject(ApiService);\r\n private dataService = inject(DataService);\r\n private utilService = inject(UtilService);\r\n\r\n constructor() {\r\n this.dataService.getUserPreferences().subscribe((data: any) => {\r\n this.data = data;\r\n });\r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n event.container.data.forEach((x,index)=>{\r\n x.sequenceNumber=index+1;\r\n });\r\n } else {\r\n transferArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex,\r\n );\r\n }\r\n }\r\n\r\n async updatePanelView() {\r\n const userSso = Number(localStorage.getItem('uid'));\r\n const userId= Number(localStorage.getItem('user_id'));\r\n const userTerritory = (await this.utilService.getUserTerritory()) || USER_TERRITORY.DOMESTIC;\r\n const pageName = TITLE_DETAILS_PAGE[userTerritory];\r\n const body = {\r\n user_id: userId,\r\n page_name: pageName,\r\n result: this.data\r\n }\r\n const reqPayload = JSON.stringify(body);\r\n this.apiService.saveUserPreferences(userSso, pageName, reqPayload).then(\r\n () => {\r\n this.dataService.setUserPreferences(this.data);\r\n this.dataService.openSnackBar(MESSAGE.USER_PREF.SUCCESS, NOTIFICATION.TYPE.SUCCESS, NOTIFICATION.SUCCESS_CLASS);\r\n this.closeConfigPanel();\r\n });\r\n }\r\n\r\n closeConfigPanel() {\r\n this.dataService.setConfigPanelVisibility(false);\r\n }\r\n}\r\n","
\r\n
\r\n Configure\r\n close\r\n
\r\n\r\n
\r\n
\r\n @for (tab of data; track tab.tabId) {\r\n
\r\n
\r\n
{{tab.tabTitle}}
\r\n
\r\n
\r\n \r\n Content\r\n \r\n \r\n Show\r\n \r\n \r\n Expand\r\n \r\n
\r\n
\r\n @for (panel of tab.panels; track panel.id) {\r\n
\r\n
\r\n \r\n drag_handle\r\n \r\n \r\n {{panel.description}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n } \r\n
\r\n
\r\n\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { CanActivateFn } from '@angular/router';\r\nimport { AuthService } from '../../services/auth/auth.service';\r\nimport { inject } from '@angular/core';\r\n\r\nexport const SSOAuthGuard: CanActivateFn = (route) => {\r\n const token = localStorage.getItem('access_token');\r\n const code = route.queryParams['code'];\r\n const authenticate: AuthService = inject(AuthService);\r\n if (token != null) {\r\n return authenticate.checkExpiry();\r\n } else if (code) {\r\n return authenticate.fetchToken(code);\r\n } else {\r\n authenticate.login();\r\n return false;\r\n }\r\n};\r\n","import { CanDeactivateFn } from '@angular/router';\r\n\r\nexport const unsavedChangesGuard: CanDeactivateFn = (component) => {\r\n if (component.canDeactivate()) {\r\n return window.confirm('You have unsaved changes. Are you sure you want to leave?');\r\n } else return true;\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable, catchError, throwError, switchMap, mergeMap, of, delay, retryWhen, firstValueFrom } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { List } from 'lodash';\r\nimport { API_ENDPOINT } from 'src/app/shared/constants/api-endpoints';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiService {\r\n private apiURL = environment.backendApiUrl;\r\n private authentication = '/common/token';\r\n private titles = '/titles';\r\n private columnsCustom = '/user/tables/columns/customization';\r\n private titleSearchSubstring = '/titles/request/talent-name/search';\r\n private titleMetadata = '/titles/metadata';\r\n private titleRequestCommon = '/titles/request/common';\r\n private titleRequestTerritory = '/titles/request/ratings';\r\n private userRole = '/user/roles';\r\n private titleRequestNameSearch = '/talents/names/search';\r\n private titleRequestTitleValidation = '/titles/request/validate/title';\r\n private titleRequestTagsByGenre = '/titles/request/tags/top-ten';\r\n private getTitleRequest = '/titles/request';\r\n private saveTitleRequest = '/titles/request/save';\r\n private email = '/common/email/send';\r\n private titleDeleteValidationMethod = '/titles/maintenance/delete/validate';\r\n private executeSP = '/common/stored-proc-runner';\r\n private requests = '/requests';\r\n private requestsMassUpdate = '/requests/mass-update';\r\n private imageControl = '/common/poster/signed-url';\r\n private posterUpload = '/common/poster';\r\n // private titleSummaryTab = '/titles/maintenance/summary/domestic';\r\n private titleSummaryTab = '/titles/maintenance/summary';\r\n private validateTitleSummaryTab = '/titles/maintenance/summary/validate';\r\n private sfDelete = '/titles/maintenance/delete';\r\n private dropdowns = '/titles/maintenance/common/';\r\n\r\n private token: string | null = null;\r\n private tokenExpiry: Date | null = null;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 0) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n console.error(`Status ${error.status}, body was: `, error.message);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error(error.error.error ?? 'Connection Error'));\r\n }\r\n\r\n // Custom retry strategy that does not retry on 400 errors and stops after exponential backoff maxRetries\r\n private retryStrategy(maxRetries: number = 3, scalingDelay: number = 1000) {\r\n return (attempts: Observable) => {\r\n return attempts.pipe(\r\n mergeMap((error: HttpErrorResponse, retryCount: number) => {\r\n if (error.status === 400) {\r\n return throwError(() => error);\r\n } else if (retryCount >= maxRetries) {\r\n return throwError(() => error);\r\n } else return of(error).pipe(delay(scalingDelay * Math.pow(2, retryCount)));\r\n }),\r\n );\r\n };\r\n }\r\n\r\n private isTokenValid(): boolean {\r\n if (!this.token || !this.tokenExpiry) {\r\n return false;\r\n }\r\n return new Date().getTime() < new Date(this.tokenExpiry).getTime();\r\n }\r\n\r\n public updateApiToken(token: string, token_expiry: Date) {\r\n this.token = token;\r\n this.tokenExpiry = token_expiry;\r\n }\r\n\r\n private handleApiCall(apiCall: () => Observable): Observable {\r\n if (!this.isTokenValid()) {\r\n return this.validateAuthToken(localStorage.getItem('access_token')!).pipe(\r\n switchMap((tokenResponse) => {\r\n this.token = tokenResponse.api_token;\r\n this.tokenExpiry = tokenResponse.api_token_expiry; // Setting token expiry to 2 hours from now\r\n // No need to call http.get again, just reissue apiCall with updated token\r\n return apiCall();\r\n }),\r\n catchError(this.handleError),\r\n );\r\n }\r\n\r\n return apiCall();\r\n }\r\n\r\n public authToken(code: string, redirect_uri: string): Observable {\r\n const query = `?auth=code&code=${code}&redirect_uri=${redirect_uri}`;\r\n const apiCall = () =>\r\n this.http\r\n .post(`${this.apiURL}${this.authentication}${query}`, {\r\n headers: new HttpHeaders(),\r\n observe: 'body',\r\n responseType: 'json',\r\n })\r\n .pipe(retryWhen(this.retryStrategy()), catchError(this.handleError));\r\n return apiCall();\r\n }\r\n\r\n public validateAuthToken(token: string): Observable {\r\n const query = `?auth=token&token=${token}`;\r\n const apiCall = () =>\r\n this.http\r\n .post(`${this.apiURL}${this.authentication}${query}`, {\r\n headers: new HttpHeaders(),\r\n observe: 'body',\r\n responseType: 'json',\r\n })\r\n .pipe(retryWhen(this.retryStrategy()), catchError(this.handleError));\r\n return apiCall();\r\n }\r\n\r\n public getTitlesList(): Observable {\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titles}`, {});\r\n\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public getColumnCustomizations(sso: string, control_route: string, control_id: string): Observable {\r\n const query = `?sso=${sso}&control_route=${control_route}&control_id=${control_id}`;\r\n\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.columnsCustom}${query}`, {});\r\n\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public putColumnCustomizations(personalization: JSON): Observable {\r\n const apiCall = () => this.http.put(`${this.apiURL}${this.columnsCustom}`, personalization, {});\r\n\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public getTitleSearchSubstring(search: string): Observable {\r\n const query = `?substring=${encodeURIComponent(search)}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleSearchSubstring}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public getTitleMetadata(title_id: string): Observable {\r\n const query = `?title_id=${title_id}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleMetadata}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n getTitleRequestCommonData(sso: string): Observable {\r\n const query = `?sso=${sso}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleRequestCommon}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n getPosterImage(image: any): Observable {\r\n const query = `?object_key=${image}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.imageControl}${query}`);\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n uploadPoster(body: any): Observable {\r\n const apiCall = () => this.http.put(`${this.apiURL}${this.posterUpload}`, JSON.stringify(body));\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n getTitleRequestTerritoryData(territory_id: string): Observable {\r\n const query = `?territory_id=${territory_id}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleRequestTerritory}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n getUserRole(sso: string): Observable<{ role: string }> {\r\n const query = `?sso=${sso}`;\r\n const apiCall = () => this.http.get<{ role: string }>(`${this.apiURL}${this.userRole}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n getTitleRequestNameSearch(talent_name: string): Observable {\r\n const query = `?talent_name=${talent_name}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleRequestNameSearch}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n //TODO: Fix CORS issues on this endpoint? Might just keep using the title validate endpoint instead\r\n getTitleRequestImdbValidation(imdb: string): Observable {\r\n const query = `?value=${imdb}&validation=imdb`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleRequestTitleValidation}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n getTitleRequestTitleValidation(title: string): Observable {\r\n const query = `?value=${title}&validation=title`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleRequestTitleValidation}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n getRequestByID(id: string): Observable {\r\n const query = `?request_queue_id=${id}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.getTitleRequest}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n //TODO: Implement this endpoint\r\n /*\r\n request_queue_id = parameters.get(\"request_queue_id\")\r\n from_date = parameters.get(\"from_date\")\r\n to_date = parameters.get(\"to_date\")\r\n request_status = parameters.get(\"request_status\", \"Pending\")\r\n request_type = parameters.get(\"request_type\", \"title\")\r\n search_string = parameters.get(\"search_string\")\r\n */\r\n // getFilteredRequests(\r\n // request_queue_id?: Number,\r\n // from_date?: string,\r\n // to_date?: string,\r\n // request_status?: string,\r\n // request_type?: string,\r\n // search_string?: string\r\n // ): Observable {\r\n // const apiCall = () =>\r\n // this.http\r\n // .get(`${this.apiURL}${this.getRequests}${query}`, {\r\n // headers: new HttpHeaders({\r\n // Authorization: `Bearer ${this.token}`,\r\n // }),\r\n // observe: 'body',\r\n // responseType: 'json',\r\n // })\r\n // .pipe(retryWhen(this.retryStrategy()), catchError(this.handleError));\r\n // var results = apiCall();\r\n // return this.handleApiCall(apiCall);\r\n // }\r\n\r\n getTopTenTagsByGenre(genre_id: number): Observable {\r\n const query = `?genre_id=${genre_id}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleRequestTagsByGenre}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n postTitleRequest(titleRequest: any): Observable {\r\n const apiCall = () => this.http.post(`${this.apiURL}${this.saveTitleRequest}`, titleRequest, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n sendEmail(emailConfig: any): Observable {\r\n const apiCall = () => this.http.post(`${this.apiURL}${this.email}`, emailConfig, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n /**\r\n * Deletes a title.\r\n * @param title_id - The ID of the title to be deleted.\r\n * @returns An Observable that emits the deletion result.\r\n */\r\n public deleteTitle(title_id: string, delete_reason: string, user_name: string, sso: string): Observable {\r\n const params = [title_id, delete_reason, user_name, sso];\r\n const body = JSON.stringify({\r\n sp_name: 'title.delete_title',\r\n params: params,\r\n });\r\n\r\n const apiCall = () => this.http.post(`${this.apiURL}${this.executeSP}`, body, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n /**\r\n * Validates the deletion of a title.\r\n * @param title_id - The ID of the title to be deleted.\r\n * @returns An Observable that emits the validation result.\r\n */\r\n public validateTitleDelete(title_id: string): Observable {\r\n const apiCall = () =>\r\n this.http.get(`${this.apiURL}${this.titleDeleteValidationMethod}?title_id=${title_id}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public declineRequest(\r\n requestId: number,\r\n reviewerName: string,\r\n reviewerSSO: string,\r\n reviewerComments: string,\r\n ): Observable {\r\n const body = JSON.stringify({\r\n request_id: requestId,\r\n updated_by_name: reviewerName,\r\n reviewer_sso: reviewerSSO,\r\n reviewer_comments: reviewerComments,\r\n });\r\n const apiCall = () => this.http.post(`${this.apiURL}/titles/request/decline`, body, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public getFilteredRequestList(\r\n request_queue_id?: string,\r\n from_date?: string,\r\n to_date?: string,\r\n request_status?: string,\r\n request_type?: string,\r\n search_string?: string,\r\n sort_order?: string,\r\n ): Observable {\r\n let query = new HttpParams();\r\n const params = [\r\n { key: 'request_queue_id', value: request_queue_id },\r\n { key: 'from_date', value: from_date },\r\n { key: 'to_date', value: to_date },\r\n { key: 'request_status', value: request_status },\r\n { key: 'request_type', value: request_type },\r\n { key: 'search_string', value: search_string },\r\n\r\n { key: 'sort_by_date_asc', value: sort_order },\r\n ];\r\n\r\n for (const param of params) {\r\n if (param.value) {\r\n query = query.set(param.key, param.value);\r\n }\r\n }\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.requests}`, { params: query });\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n /**\r\n * approves request and creates title\r\n * @param Request ID - The ID of the request\r\n * @param user ID - approvers sso\r\n * @returns An Observable that emits the title id.\r\n */\r\n public approveTitleRequest(request_id: number, sso: string): Observable {\r\n const params = [request_id, sso];\r\n const body = JSON.stringify({\r\n sp_name: 'suspense.approve_local_title_request',\r\n params: params,\r\n });\r\n\r\n const apiCall = () => this.http.post(`${this.apiURL}${this.executeSP}`, body, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public doRequestsMassUpdate(\r\n request_ids: List,\r\n sso: string,\r\n action: string,\r\n reviewerComments?: string,\r\n ): Observable {\r\n const body = JSON.stringify({\r\n request_ids: request_ids,\r\n sso: sso,\r\n action: action,\r\n reviewerComments: reviewerComments || '',\r\n });\r\n\r\n const apiCall = () => this.http.post(`${this.apiURL}${this.requestsMassUpdate}`, body, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public deleteTitleSF(titleId: string): Observable {\r\n const body = JSON.stringify({ title_id: titleId });\r\n\r\n const apiCall = () => this.http.post(`${this.apiURL}${this.sfDelete}`, body, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public getTitleSummaryTab(card: string, title_id: string, territory: string): Observable {\r\n const query = `?card=${card}&title_id=${title_id}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.titleSummaryTab}/${territory}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public titleSummaryTabValidation(title_id: string, field_name: string, field_value: string): Observable {\r\n const query = `?title_id=${title_id}&field_name=${field_name}&field_value=${field_value}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.validateTitleSummaryTab}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public async getUserPreferences(userId: number, pageName: string): Promise {\r\n const apiCall = () =>\r\n this.http.get(\r\n `${this.apiURL}${API_ENDPOINT.GET_USER_PREFERENCES}?user_sso=${userId}&page_name=${pageName}`,\r\n {},\r\n );\r\n const response = await firstValueFrom(this.handleApiCall(apiCall));\r\n\r\n return response.body;\r\n }\r\n\r\n public async saveUserPreferences(userId: number, pageName: string, data: any): Promise {\r\n const apiCall = () =>\r\n this.http.put(\r\n `${this.apiURL}${API_ENDPOINT.SAVE_USER_PREFERENCES}?user_sso=${userId}&page_name=${pageName}`,\r\n data,\r\n );\r\n const response = await firstValueFrom(this.handleApiCall(apiCall));\r\n return response;\r\n }\r\n\r\n public getCardDropdownData(field: string): Observable {\r\n const apiCall = () => this.http.get(`${this.apiURL}${API_ENDPOINT.GET_DROPDOWN_DATA}field=${field}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public getTagsAndGenresDropdowns(field: string): Observable {\r\n const query = `?field=${field}`;\r\n const apiCall = () => this.http.get(`${this.apiURL}${this.dropdowns}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public getInternationalCardData(card: string, title_id: string) {\r\n const query = `?card=${card}&title_id=${title_id}`;\r\n const intlURL = '/titles/maintenance/summary/international';\r\n const apiCall = () => this.http.get(`${this.apiURL}${intlURL}${query}`, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n\r\n public saveTitleMaintenance(\r\n user: any,\r\n title_id: string,\r\n territory: string,\r\n old_value: any,\r\n new_Value: any,\r\n ): Observable {\r\n const body = JSON.stringify({\r\n title_id: title_id,\r\n territory: territory,\r\n user: user,\r\n old_value: old_value,\r\n new_value: new_Value,\r\n });\r\n\r\n const apiCall = () =>\r\n this.http.post(`${this.apiURL}${this.titleSummaryTab}/${territory.toLowerCase()}`, body, {});\r\n return this.handleApiCall(apiCall);\r\n }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { NEVER, firstValueFrom } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { ApiService } from '../api/api.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { PendoService } from '../pendo/pendo.service';\r\nimport { LoadingService } from '../loading/loading.service';\r\n\r\nexport interface TokenResponse {\r\n access_token: string;\r\n refresh_token?: string; // Include other expected properties as needed\r\n expires_in: number;\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n private client_id = environment.clientId;\r\n private redirectUri = environment.authRedirectUri;\r\n private authUrl = environment.authUrl;\r\n\r\n constructor(\r\n private apiService: ApiService,\r\n private router: Router,\r\n private pendo: PendoService,\r\n private loading: LoadingService,\r\n ) {\r\n }\r\n\r\n login() {\r\n sessionStorage.setItem('redirectLocation', window.location.href);\r\n window.location.replace(\r\n `${this.authUrl}?client_id=${this.client_id}&response_type=code&redirect_uri=${this.redirectUri}`,\r\n );\r\n }\r\n\r\n logout() {\r\n localStorage.clear();\r\n }\r\n\r\n checkExpiry(): Promise {\r\n const time = Date.now();\r\n if (time <= Number(localStorage.getItem('expires_in'))) {\r\n return Promise.resolve(true);\r\n } else {\r\n this.logout();\r\n this.login();\r\n return Promise.resolve(false);\r\n }\r\n }\r\n\r\n async fetchToken(code: string): Promise {\r\n const data = await firstValueFrom(this.apiService.authToken(code, this.redirectUri));\r\n\r\n if (data == NEVER || !data.access_token) {\r\n this.logout();\r\n this.login();\r\n return Promise.resolve(false);\r\n }\r\n\r\n const time = Date.now();\r\n localStorage.setItem('access_token', data.access_token);\r\n localStorage.setItem('refresh_token', data.refresh_token);\r\n localStorage.setItem('expires_in', String(time + data.expires_in * 1000));\r\n this.validateToken();\r\n\r\n const redirect = sessionStorage.getItem('redirectLocation');\r\n if (redirect) {\r\n const url = new URL(redirect);\r\n this.router.navigateByUrl(url.pathname + url.search);\r\n } else this.router.navigate(['/']);\r\n return Promise.resolve(true);\r\n }\r\n\r\n async validateToken(): Promise {\r\n const accessToken = localStorage.getItem('access_token');\r\n if (!accessToken || accessToken == null || accessToken == '') {\r\n console.error('Access Token is not available.');\r\n this.login();\r\n return Promise.resolve(false);\r\n }\r\n\r\n const userInfo = await firstValueFrom(this.apiService.validateAuthToken(accessToken));\r\n if (!userInfo.access_token) {\r\n this.logout();\r\n this.login();\r\n return Promise.resolve(false);\r\n }\r\n\r\n localStorage.setItem('api_token', userInfo.api_token);\r\n localStorage.setItem('api_token_expiry', userInfo.api_token_expiry);\r\n localStorage.setItem('uid', userInfo.access_token.uid);\r\n localStorage.setItem('firstname', userInfo.access_token.FirstName);\r\n localStorage.setItem('lastname', userInfo.access_token.LastName);\r\n localStorage.setItem('email', userInfo.access_token.Email);\r\n\r\n localStorage.setItem('isLoading', 'false');\r\n this.loading.isLoading = false;\r\n\r\n this.apiService.updateApiToken(userInfo.api_token, userInfo.api_token_expiry);\r\n\r\n this.pendo.initPendo(\r\n userInfo.access_token.uid,\r\n userInfo.access_token.Email,\r\n userInfo.access_token.FirstName + userInfo.access_token.LastName,\r\n );\r\n return Promise.resolve(true);\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { TheatricalRelease } from '../models/theatrical-release.model';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DataService {\r\n private userPreferences = new BehaviorSubject(null);\r\n private imdbId = new BehaviorSubject('');\r\n private isSideNavOpen = new BehaviorSubject(false);\r\n private snackbar = inject(MatSnackBar);\r\n private releaseDates = new BehaviorSubject([]);\r\n private editableSubject = new BehaviorSubject(false);\r\n public editable$ = this.editableSubject.asObservable();\r\n private imdbValue = '';\r\n private initialForm = new FormGroup({});\r\n\r\n private posterInfo = new BehaviorSubject({\r\n posterName: '',\r\n posterLanguage: '',\r\n imageSrc: '',\r\n });\r\n\r\n private cardState = new Map();\r\n private stateSubject = new BehaviorSubject>(this.cardState);\r\n public state$ = this.stateSubject.asObservable();\r\n\r\n public registerCardState(cardName: string) {\r\n if (!this.cardState.has(cardName)) {\r\n this.cardState.set(cardName, { loaded: false, dirty: false });\r\n this.stateSubject.next(this.cardState);\r\n // this.emitState();\r\n }\r\n }\r\n\r\n public initialCardData(cardName: string, form: FormGroup) {\r\n this.initialForm.setControl(cardName, new FormControl(structuredClone(form.getRawValue())));\r\n if (cardName === 'links' && this.imdbValue) {\r\n const linksValue = this.initialForm.get('links')?.value || {};\r\n linksValue.imdbUrl = `https://www.imdb.com/title/${this.imdbValue}`;\r\n this.initialForm.get('links')?.setValue(linksValue);\r\n }\r\n }\r\n\r\n public getInitialForm() {\r\n return this.initialForm;\r\n }\r\n\r\n public setLoaded(cardName: string, loaded: boolean) {\r\n const state = this.cardState.get(cardName);\r\n if (state) {\r\n state.loaded = loaded;\r\n this.stateSubject.next(this.cardState);\r\n // this.emitState();\r\n }\r\n }\r\n\r\n public setDirty(cardName: string, dirty: boolean) {\r\n const state = this.cardState.get(cardName);\r\n if (state) {\r\n state.dirty = dirty;\r\n this.stateSubject.next(this.cardState);\r\n // this.emitState();\r\n }\r\n }\r\n\r\n public setEditable(editable: boolean) {\r\n if (this.editableSubject.value !== editable) {\r\n this.editableSubject.next(editable);\r\n }\r\n }\r\n\r\n public resetCards() {\r\n this.initialForm = new FormGroup({});\r\n this.imdbValue = '';\r\n this.cardState = new Map();\r\n this.stateSubject.next(this.cardState);\r\n // this.emitState();\r\n }\r\n\r\n private emitState() {\r\n this.stateSubject.next(this.cardState);\r\n }\r\n\r\n setConfigPanelVisibility(data: boolean) {\r\n this.isSideNavOpen.next(data);\r\n }\r\n\r\n getConfigPanelVisibility() {\r\n return this.isSideNavOpen.asObservable();\r\n }\r\n\r\n setUserPreferences(data: any) {\r\n this.userPreferences.next(data);\r\n }\r\n\r\n getUserPreferences() {\r\n return this.userPreferences.asObservable();\r\n }\r\n\r\n setIMDBId(data: string) {\r\n this.imdbId.next(data);\r\n }\r\n\r\n getIMDBId() {\r\n return this.imdbId.asObservable();\r\n }\r\n\r\n updateIMDBLink(id: string) {\r\n // Ensure the links FormControl exists in initialForm\r\n this.imdbValue = id;\r\n const linksValue = this.initialForm.get('links')?.value || {};\r\n linksValue.imdbUrl = `https://www.imdb.com/title/${id}`;\r\n this.initialForm.get('links')?.setValue(linksValue);\r\n }\r\n\r\n setReleaseDates(data: TheatricalRelease[]) {\r\n this.releaseDates.next(data);\r\n }\r\n\r\n getReleaseDates() {\r\n return this.releaseDates.asObservable();\r\n }\r\n\r\n setPosterInfo(data: { posterName: string; imageSrc: string; posterLanguage: string }) {\r\n this.posterInfo.next(data);\r\n }\r\n\r\n getPosterInfo() {\r\n return this.posterInfo.asObservable();\r\n }\r\n\r\n openSnackBar(message: string, action: string, className: string) {\r\n this.snackbar.open(message, action, {\r\n duration: 9000,\r\n verticalPosition: 'top',\r\n horizontalPosition: 'right',\r\n panelClass: [className],\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError, of } from 'rxjs';\r\nimport { catchError, retryWhen, delay, mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const maxRetries = 3;\r\n const scalingDelay = 1000;\r\n\r\n const retryStrategy = () => (attempts: Observable) => {\r\n return attempts.pipe(\r\n mergeMap((error, retryCount) => {\r\n if (error.status === 400) {\r\n return throwError(() => error);\r\n } else if (retryCount >= maxRetries) {\r\n return throwError(() => error);\r\n } else {\r\n return of(error).pipe(delay(scalingDelay * Math.pow(2, retryCount)));\r\n }\r\n })\r\n );\r\n };\r\n\r\n const token = localStorage.getItem('api_token');\r\n const uid = localStorage.getItem('uid') || '';\r\n if (token) {\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n 'X-Amz-Security-Token': uid, \r\n },\r\n responseType: 'json',\r\n body: req.body,\r\n });\r\n }\r\n\r\n // Pass the cloned request with the updated header to the next handler and with error handling & retry pipe\r\n return next.handle(req).pipe(\r\n catchError((err: any) => {\r\n if (err instanceof HttpErrorResponse) {\r\n // Handle HTTP errors\r\n if (err.status === 0) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', err.error);\r\n // You might trigger a re-authentication flow or redirect the user here\r\n } else if (err.status === 401) {\r\n // Unauthorized error\r\n console.error('Unauthorized:', err.error);\r\n // You might trigger a re-authentication flow or redirect the user here\r\n } else {\r\n // Handle other HTTP error codes\r\n console.error(`Status ${err.status}, body was: `, err.message);\r\n }\r\n } else {\r\n // Handle non-HTTP errors\r\n console.error('An error occurred:', err);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Connection Error'));\r\n }),\r\n retryWhen(retryStrategy())\r\n );\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LoadingService {\r\n _isLoading = new BehaviorSubject(true);\r\n\r\n constructor() {}\r\n\r\n set isLoading(value: boolean) {\r\n localStorage.setItem('isLoading', JSON.stringify(value));\r\n this._isLoading.next(value);\r\n }\r\n\r\n get isLoading(): boolean {\r\n return this._isLoading.value;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PendoService {\r\n constructor() {}\r\n\r\n initPendo(uid: string, email: string, full_name: string) {\r\n // This function creates visitors and accounts in Pendo\r\n // You will need to replace and with values you use in your app\r\n // Please use Strings, Numbers, or Bools for value types.\r\n (window as any).pendo.initialize({\r\n visitor: {\r\n id: uid, // Required if user is logged in\r\n email: email, // Recommended if using Pendo Feedback, or NPS Email\r\n full_name: full_name, // Recommended if using Pendo Feedback\r\n // role: // Optional\r\n\r\n // You can add any additional visitor level key-values here,\r\n // as long as it's not one of the above reserved names.\r\n },\r\n\r\n account: {\r\n id: environment.envName, // Highly recommended, required if using Pendo Feedback\r\n // name: // Optional\r\n // is_paying: // Recommended if using Pendo Feedback\r\n // monthly_value:// Recommended if using Pendo Feedback\r\n // planLevel: // Optional\r\n // planPrice: // Optional\r\n // creationDate: // Optional\r\n\r\n // You can add any additional account level key-values here,\r\n // as long as it's not one of the above reserved names.\r\n },\r\n });\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { filter, firstValueFrom, map } from 'rxjs';\r\nimport { ApiService } from './api/api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class UtilService {\r\n private apiService = inject(ApiService);\r\n private sso = localStorage.getItem('uid')!;\r\n\r\n getUserTerritory() {\r\n return firstValueFrom(this.apiService.getColumnCustomizations(this.sso, '/admin', 'admin').pipe(\r\n map((response: any[]) => response.find(item => typeof(item) == 'object' && item.territory)),\r\n filter(item => item && item.territory),\r\n map(item => item.territory)\r\n ));\r\n }\r\n}","export const API_ENDPOINT = {\r\n GET_USER_PREFERENCES: '/user/screen/customization',\r\n SAVE_USER_PREFERENCES:'/user/screen/customization',\r\n\r\n GET_DROPDOWN_DATA: '/titles/maintenance/common?',\r\n}","export const NOTIFICATION = {\r\n TYPE: {\r\n SUCCESS: 'success',\r\n ERROR: 'error'\r\n },\r\n SUCCESS_CLASS: 'success-snackbar',\r\n ERROR_CLASS: ''\r\n}\r\n\r\nexport const MESSAGE = {\r\n USER_PREF: {\r\n SUCCESS: 'User preferences saved successfully!'\r\n }\r\n}\r\n\r\nexport const CARD = {\r\n PRODUCTION_BUDGET: {\r\n NAME: 'budget',\r\n SOURCE_FIELD: 'production_budget_source'\r\n },\r\n THEATRICAL_RELEASE: {\r\n NAME: 'release',\r\n RELEASE_PATTERN_FIELD: 'release_pattern'\r\n },\r\n TITLE_TRACKING: {\r\n FORM_ERRORS: {\r\n END_DATE_LESSER: 'End Date cannot be less than Start Date.',\r\n OVERLAP: 'Overlapping history.Kindly adjust the other period, first.',\r\n START_DATE_BLANK: 'Start Date cannot be blank when there are additional tracking records with a valid Start Dates.',\r\n END_DATE_BLANK: 'End Date cannot be blank when there are additional tracking records with a valid End Dates.',\r\n NO_BLANK_DATE: 'Existing dates cannot be blank when adding new tracking record.'\r\n }\r\n },\r\n AWARD: {\r\n FORM_ERRORS: {\r\n NO_BLANK_FIELDS: 'Required fields cannot be blank when adding new Awards.',\r\n YEAR_REQUIRED: 'Year is required.',\r\n AWARD_CEREMONY_REQUIRED: 'Award ceremony is required.',\r\n AWARD_CATEGORY_REQUIRED: 'Award category is required.',\r\n }\r\n },\r\n AVAILABILITY_DATES: {\r\n FORM_ERRORS: {\r\n NO_BLANK_FIELDS: 'Required fields cannot be blank when adding new record.',\r\n MEDIA_TYPE_REQUIRED: 'Media Type is required.',\r\n PROVIDER_REQUIRED: 'Provider is required.',\r\n ENTER_NUMBERS:'Enter a valid number',\r\n OVERLAP: 'Overlapping history.Kindly adjust the other period, first.',\r\n }\r\n }\r\n}\r\n\r\nexport const USER_TERRITORY = {\r\n DOMESTIC: 'domestic',\r\n INTERNATIONAL: 'international'\r\n}\r\n\r\nexport const GRID = {\r\n MIN_ROW_HEIGHT: 25,\r\n MAX_ROW_HEIGHT: 80,\r\n DEFAULT_ROW_HEIGHT: 41,\r\n MIN_VERTICAL_PADDING: -15,\r\n MAX_VERTICAL_PADDING: 30,\r\n}\r\n\r\nexport const TITLE_DETAILS_PAGE = {\r\n [USER_TERRITORY.DOMESTIC]: 'Domestic Title Maintenance',\r\n [USER_TERRITORY.INTERNATIONAL]: 'International Title Maintenance'\r\n}\r\n\r\nexport const PRODUCTION_BUDGET_SOURCE = [\r\n 'Gracenote',\r\n 'The Numbers',\r\n 'Variety',\r\n 'Hollywood Reporter',\r\n 'Deadline',\r\n 'Studio System',\r\n 'Box Office Mojo',\r\n 'LA Times',\r\n 'Other',\r\n 'The Wrap',\r\n 'Indiewire',\r\n 'IMDB'\r\n]","import { RouteReuseStrategy, DetachedRouteHandle, ActivatedRouteSnapshot } from '@angular/router';\r\n\r\n/**\r\n * Custom route reuse strategy for Angular Router.\r\n * This strategy determines when a route should be reused or not.\r\n */\r\nexport class CustomReuseStrategy implements RouteReuseStrategy {\r\n /**\r\n * Determines if a route should be detached and stored for later reuse.\r\n *\r\n * @param route - The route to be checked.\r\n * @returns Always returns false, meaning no route will be detached.\r\n */\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n\r\n /**\r\n * Stores the detached route.\r\n *\r\n * @param route - The route to be stored.\r\n * @param handle - The handle of the detached route.\r\n */\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void {}\r\n\r\n /**\r\n * Determines if a stored route should be reattached.\r\n *\r\n * @param route - The route to be checked.\r\n * @returns Always returns false, meaning no route will be reattached.\r\n */\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n\r\n /**\r\n * Retrieves the stored route.\r\n *\r\n * @param route - The route to be retrieved.\r\n * @returns Always returns null, meaning no route will be retrieved.\r\n */\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\r\n return null;\r\n }\r\n\r\n /**\r\n * Determines if a route should be reused.\r\n *\r\n * @param future - The future route to be checked.\r\n * @param curr - The current route to be checked.\r\n * @returns Returns true if the routes should be reused, false otherwise.\r\n * Specifically, it checks if the route configuration is the same and\r\n * if the `title_id` parameter is the same for `TitleMaintenanceComponent` routes.\r\n */\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n if (future.routeConfig !== curr.routeConfig) {\r\n return false;\r\n }\r\n\r\n // Only reuse the route if the title_id parameter is the same for TitleMaintenanceComponent\r\n if (\r\n future.routeConfig?.path?.includes('titles/domestic/:title_id') ||\r\n future.routeConfig?.path?.includes('titles/international/:title_id')\r\n ) {\r\n return future.paramMap.get('title_id') === curr.paramMap.get('title_id');\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","export const environment = {\r\n envName: 'dev',\r\n production: true,\r\n clientId: 'ermdev',\r\n authUrl: 'https://fss.stg.inbcu.com/fss/as/authorization.oauth2',\r\n backendApiUrl: 'https://api.dev.erm.nbcuni.com/v1',\r\n authRedirectUri: 'https://dev.erm.nbcuni.com/auth-callback',\r\n siteUrl: 'https://dev.erm.nbcuni.com',\r\n supportEmail: 'ermengineeringsupport@nbcuni.com',\r\n titleRequestApproverdl: 'ermengineeringsupport@nbcuni.com',\r\n titleTerritoryRequesterdl: 'ermengineeringsupport@nbcuni.com'\r\n};\r\n","import { importProvidersFrom } from '@angular/core';\r\nimport { AppComponent } from './app/app.component';\r\nimport { BrowserModule, bootstrapApplication } from '@angular/platform-browser';\r\nimport { provideAnimations } from '@angular/platform-browser/animations';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS, provideHttpClient } from '@angular/common/http';\r\nimport { PreloadAllModules, provideRouter, withDebugTracing, withPreloading, withRouterConfig } from '@angular/router';\r\nimport { routes } from './app/app.routes';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { AuthInterceptor } from './app/services/interceptors/auth.interceptor';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\nimport { CustomReuseStrategy } from './app/shared/route.reuseStrategy';\r\n\r\nbootstrapApplication(AppComponent, {\r\n providers: [\r\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { floatLabel: 'always', subscriptSizing: 'dynamic' } },\r\n importProvidersFrom(BrowserModule, HttpClientModule, MatSnackBarModule),\r\n provideHttpClient(),\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n provideRouter(routes, withRouterConfig({ onSameUrlNavigation: 'reload' }), withPreloading(PreloadAllModules)),\r\n provideAnimations(),\r\n { provide: RouteReuseStrategy, useClass: CustomReuseStrategy },\r\n ],\r\n}).catch((err) => console.error(err));\r\n","/* (ignored) */"],"names":["inject","RouterOutlet","NgIf","HeaderComponent","SideMenuComponent","NbcuLoaderComponent","darkModePreference$","MatSidenavModule","DataService","TabConfigComponent","MatIconModule","i0","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","AppComponent_ng_template_1_Template_mat_sidenav_container_backdropClick_0_listener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","closeSideNav","AppComponent_ng_template_1_Template_mat_sidenav_keydown_escape_1_listener","AppComponent_ng_template_1_Template_button_click_13_listener","scrollToTop","ɵɵtext","AppComponent","constructor","auth","change","loading","title","sso","localStorage","getItem","isListenerAdded","dataService","customComponent","customComponentInputs","isLoading","getConfigPanelVisibility","subscribe","isOpen","sidenav","open","close","ngOnInit","next","token","authorized","_isLoading","value","markForCheck","ngAfterViewInit","addScrollListener","ngAfterViewChecked","content","elementRef","nativeElement","addEventListener","onScroll","bind","event","button","document","getElementById","target","scrollTop","style","display","scrollTo","top","behavior","_this","_asyncToGenerator","valid","validateToken","logout","login","ɵɵdirectiveInject","i1","AuthService","ChangeDetectorRef","i2","LoadingService","selectors","viewQuery","AppComponent_Query","rf","ctx","ɵɵtemplate","AppComponent_ng_container_0_Template","AppComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","ɵɵproperty","display_r3","i3","MatSidenav","MatSidenavContainer","MatSidenavContent","i4","MatIcon","styles","SSOAuthGuard","unsavedChangesGuard","routes","path","loadComponent","then","mod","DashboardComponent","canActivate","TitlesComponent","TitleCreationRequestFormComponent","TitleMaintenanceComponent","canDeactivate","TitleMaintenanceIntlComponent","RequestsComponent","children","RequestsDetailComponent","AuthCallbackComponent","LogoutComponent","AdminComponent","pathMatch","redirectTo","CommonModule","NbcuAppBarComponent","firstValueFrom","lastValueFrom","apiService","router","routeReuse","userTerritory","project","actions","id","icon","tooltip","searchCategory","selectedCategory","searchCategories","searchOptions","match","description","length","Promise","resolve","disabled","getOptionsTitles","checkUserTerritory","result","getColumnCustomizations","territory","error","console","searchCategoryChange","inputName","searchOptionsChange","_this2","appBar","clearSearch","navigateByUrl","getTitleSearchSubstring","toUpperCase","response","ApiService","Router","RouteReuseStrategy","HeaderComponent_Query","HeaderComponent_Template_nbcu_app_bar_searchOptionsChange_0_listener","$event","HeaderComponent_Template_nbcu_app_bar_searchCategoryChange_0_listener","NbcuSidenavComponent","ɵɵadvance","ctx_r0","links","role","routerLink","label","notifications","active","alignBottom","checkSSOAndAct","setTimeout","getUserRole","data","roles","includes","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","SideMenuComponent_Template","SideMenuComponent_ng_container_0_Template","model","FormsModule","MatCardModule","MatCheckboxModule","CdkDrag","CdkDragHandle","CdkDropList","moveItemInArray","transferArrayItem","NbcuContainedButtonComponent","NbcuCheckboxComponent","MESSAGE","NOTIFICATION","TITLE_DETAILS_PAGE","USER_TERRITORY","UtilService","TabConfigComponent_For_9_For_13_Template_nbcu_checkbox_change_7_listener","panel_r4","_r3","$implicit","show","TabConfigComponent_For_9_For_13_Template_nbcu_checkbox_change_9_listener","ɵɵtextInterpolate1","TabConfigComponent_For_9_Template_div_cdkDropListDropped_11_listener","drop","ɵɵrepeaterCreate","TabConfigComponent_For_9_For_13_Template","_forTrack1","ɵɵtextInterpolate","tab_r5","tabTitle","panels","ɵɵrepeater","checked","isPanelVisible","utilService","getUserPreferences","previousContainer","container","previousIndex","currentIndex","forEach","x","index","sequenceNumber","updatePanelView","userSso","Number","userId","getUserTerritory","DOMESTIC","pageName","body","user_id","page_name","reqPayload","JSON","stringify","saveUserPreferences","setUserPreferences","openSnackBar","USER_PREF","SUCCESS","TYPE","SUCCESS_CLASS","closeConfigPanel","setConfigPanelVisibility","inputs","ɵɵInputFlags","SignalBased","outputs","TabConfigComponent_Template","TabConfigComponent_Template_span_click_4_listener","TabConfigComponent_For_9_Template","_forTrack0","TabConfigComponent_Template_nbcu_contained_button_buttonClick_11_listener","route","code","queryParams","authenticate","checkExpiry","fetchToken","component","window","confirm","HttpHeaders","HttpParams","catchError","throwError","switchMap","mergeMap","of","delay","retryWhen","environment","API_ENDPOINT","http","apiURL","backendApiUrl","authentication","titles","columnsCustom","titleSearchSubstring","titleMetadata","titleRequestCommon","titleRequestTerritory","userRole","titleRequestNameSearch","titleRequestTitleValidation","titleRequestTagsByGenre","getTitleRequest","saveTitleRequest","email","titleDeleteValidationMethod","executeSP","requests","requestsMassUpdate","imageControl","posterUpload","titleSummaryTab","validateTitleSummaryTab","sfDelete","dropdowns","tokenExpiry","handleError","status","message","Error","retryStrategy","maxRetries","scalingDelay","attempts","pipe","retryCount","Math","pow","isTokenValid","Date","getTime","updateApiToken","token_expiry","handleApiCall","apiCall","validateAuthToken","tokenResponse","api_token","api_token_expiry","authToken","redirect_uri","query","post","headers","observe","responseType","getTitlesList","get","control_route","control_id","putColumnCustomizations","personalization","put","search","encodeURIComponent","getTitleMetadata","title_id","getTitleRequestCommonData","getPosterImage","image","uploadPoster","getTitleRequestTerritoryData","territory_id","getTitleRequestNameSearch","talent_name","getTitleRequestImdbValidation","imdb","getTitleRequestTitleValidation","getRequestByID","getTopTenTagsByGenre","genre_id","postTitleRequest","titleRequest","sendEmail","emailConfig","deleteTitle","delete_reason","user_name","params","sp_name","validateTitleDelete","declineRequest","requestId","reviewerName","reviewerSSO","reviewerComments","request_id","updated_by_name","reviewer_sso","reviewer_comments","getFilteredRequestList","request_queue_id","from_date","to_date","request_status","request_type","search_string","sort_order","key","param","set","approveTitleRequest","doRequestsMassUpdate","request_ids","action","deleteTitleSF","titleId","getTitleSummaryTab","card","titleSummaryTabValidation","field_name","field_value","GET_USER_PREFERENCES","SAVE_USER_PREFERENCES","getCardDropdownData","field","GET_DROPDOWN_DATA","getTagsAndGenresDropdowns","getInternationalCardData","intlURL","saveTitleMaintenance","user","old_value","new_Value","new_value","toLowerCase","ɵɵinject","HttpClient","factory","ɵfac","providedIn","NEVER","pendo","client_id","clientId","redirectUri","authRedirectUri","authUrl","sessionStorage","setItem","location","href","replace","clear","time","now","access_token","refresh_token","String","expires_in","redirect","url","URL","pathname","navigate","accessToken","userInfo","uid","FirstName","LastName","Email","initPendo","PendoService","MatSnackBar","BehaviorSubject","FormControl","FormGroup","userPreferences","imdbId","isSideNavOpen","snackbar","releaseDates","editableSubject","editable$","asObservable","imdbValue","initialForm","posterInfo","posterName","posterLanguage","imageSrc","cardState","Map","stateSubject","state$","registerCardState","cardName","has","loaded","dirty","initialCardData","form","setControl","structuredClone","getRawValue","linksValue","imdbUrl","setValue","getInitialForm","setLoaded","state","setDirty","setEditable","editable","resetCards","emitState","setIMDBId","getIMDBId","updateIMDBLink","setReleaseDates","getReleaseDates","setPosterInfo","getPosterInfo","className","duration","verticalPosition","horizontalPosition","panelClass","HttpErrorResponse","AuthInterceptor","intercept","req","clone","setHeaders","Authorization","handle","err","full_name","initialize","visitor","account","envName","filter","map","find","item","ERROR","ERROR_CLASS","CARD","PRODUCTION_BUDGET","NAME","SOURCE_FIELD","THEATRICAL_RELEASE","RELEASE_PATTERN_FIELD","TITLE_TRACKING","FORM_ERRORS","END_DATE_LESSER","OVERLAP","START_DATE_BLANK","END_DATE_BLANK","NO_BLANK_DATE","AWARD","NO_BLANK_FIELDS","YEAR_REQUIRED","AWARD_CEREMONY_REQUIRED","AWARD_CATEGORY_REQUIRED","AVAILABILITY_DATES","MEDIA_TYPE_REQUIRED","PROVIDER_REQUIRED","ENTER_NUMBERS","INTERNATIONAL","GRID","MIN_ROW_HEIGHT","MAX_ROW_HEIGHT","DEFAULT_ROW_HEIGHT","MIN_VERTICAL_PADDING","MAX_VERTICAL_PADDING","PRODUCTION_BUDGET_SOURCE","CustomReuseStrategy","shouldDetach","store","shouldAttach","retrieve","shouldReuseRoute","future","curr","routeConfig","paramMap","production","siteUrl","supportEmail","titleRequestApproverdl","titleTerritoryRequesterdl","importProvidersFrom","BrowserModule","bootstrapApplication","provideAnimations","HttpClientModule","HTTP_INTERCEPTORS","provideHttpClient","PreloadAllModules","provideRouter","withPreloading","withRouterConfig","MAT_FORM_FIELD_DEFAULT_OPTIONS","MatSnackBarModule","providers","provide","useValue","floatLabel","subscriptSizing","useClass","multi","onSameUrlNavigation","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}