{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;AACsE;AAET;AACQ;;;AAErE,MAAM,MAAM,GAAW;IACnB,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE;IAC3E,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE;IAC5D,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE;IACtE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE;IAClE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE;IACtE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE;IACtE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE;IAChE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE;IAC5D,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE;CAClE,CAAC;AAYK,MAAM,gBAAgB;;gFAAhB,gBAAgB;6GAAhB,gBAAgB;kHANd;QACP,EAAE,OAAO,EAAE,0DAAa,EAAE,QAAQ,EAAE,8EAAsB,EAAE;QAC5D,sEAAkB;KACrB,YANQ;YACL,iEAAoB,CAAC,MAAM,EAAE,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC;SACrE,EAKS,yDAAY;mIAEb,gBAAgB,oFAFf,yDAAY;;;;;;;;;;;;;;;;;;;;;;;;;ACnBnB,MAAM,YAAY;;wEAAZ,YAAY;0GAAZ,YAAY;QCPzB,sEAAK;QAEG,qEAAmB;QACvB,4DAAM;QACN,yEAAsB;QAClB,uEAA8C;QAGlD,4DAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRiE;AAET;AACD;AACc;AAClC;AACgB;AACD;AACuB;AAClC;AAC8B;AAEvB;AACT;AACU;AACW;AAClB;AACL;AACG;AACS;AACH;AACG;AACA;AACA;AACJ;AACF;AACQ;AACN;AACA;AACmC;AACd;AACpB;AACM;AACH;AACY;;;;AAErE,MAAM,mBAAmB,GAA4B;IACjD,MAAM,EAAE;QACJ,MAAM,EAAE,WAAW,CAAC,iBAAiB;KACxC;IACD,OAAO,EAAE;QACL,KAAK,EAAE;YACH,UAAU,EAAE,MAAM;SACrB;QACD,MAAM,EAAE;YACJ,UAAU,EAAE,SAAS;SACxB;KACJ;IACD,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,MAAM;CACf,CAAC;AA8DK,MAAM,SAAS;;kEAAT,SAAS;uGAAT,SAAS,cAFN,wDAAY;4GAjBb;QACP,6DAAK;QACL,8DAAU;QACV,sEAAc;QACd,oEAAa;QACb,gEAAW;QACX,oEAAa;QACb,oEAAa;QACb,2DAAa;QACb,gEAAW;QACX,wEAAuB;QACvB;YACI,OAAO,EAAE,oEAAiB;YAC1B,QAAQ,EAAE,gFAAe;YACzB,KAAK,EAAE,IAAI;SACd;KACJ,YAjDQ;YACL,qEAAa;YACb,wDAAW;YACX,gEAAmB;YACnB,mEAAgB;YAChB,gEAAY;YACZ,yDAAU;YACV,kEAAa;YACb,kEAAa;YACb,sDAAS;YACT,+DAAY;YACZ,iEAAgB;YAChB,0FAAuB;YACvB,wDAAe;YACf,sEAAc;YACd,wEAAgB;YAChB,mEAAa;YACb,6EAA8B,CAAC,mBAAmB,CAAC;YACnD,oEAAkB,CAAC,IAAI,yEAAuB,CAAC;gBAC3C,IAAI,EAAE;oBACF,QAAQ,EAAE,sCAAsC;oBAChD,SAAS,EAAE,wDAAwD;oBACnE,uCAAuC;oBACvC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO;iBAChD;gBACD,KAAK,EAAE;oBACH,aAAa,EAAE,cAAc;iBAChC;aACJ,CAAC,EACF;gBACI,eAAe,EAAE,uEAAqB;aACzC,EAAE,IAAI,CAAC;SACX;oIAoBQ,SAAS,mBA1Dd,wDAAY;QACZ,6EAAe;QACf,kGAAqB;QACrB,oFAAmB;QACnB,gEAAa,aAGb,qEAAa;QACb,wDAAW;QACX,gEAAmB;QACnB,mEAAgB;QAChB,gEAAY;QACZ,yDAAU;QACV,kEAAa;QACb,kEAAa;QACb,sDAAS;QACT,+DAAY;QACZ,iEAAgB;QAChB,0FAAuB;QACvB,wDAAe;QACf,sEAAc;QACd,wEAAgB;QAChB,mEAAa;;;;;;;;;;;;;;;;;ACpEd,MAAM,aAAa;IAGtB;QAFU,kBAAa,GAAmB,EAAE,CAAC;IAE9B,CAAC;IAEhB,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,CAAC;IAES,WAAW,CAAC,KAAU;QAC5B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;0EAXQ,aAAa;2GAAb,aAAa;;;;;;;;;;;;;;;;;;;ACNiB;;;;;ICG/B,0EAAmD;IAAA,uDAAS;IAAA,gEAAM;IAAA,4DAAO;;;IAAtB,0DAAS;IAAT,6EAAS;;;IAC5D,0EAAiD;IAAA,uDAAS;IAAA,gEAAM;IAAA,4DAAO;;;IAAtB,0DAAS;IAAT,6EAAS;;;IAC1D,0EAAmD;IAAA,uDAAe;IAAA,gEAAM;IAAA,4DAAO;;;IAA5B,0DAAe;IAAf,mFAAe;;;;ADEvE,MAAM,8BAA8B;IAL3C;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KAUrD;;4GAXY,8BAA8B;4HAA9B,8BAA8B;QCT3C,oEAAgC;QAChC,uEAAqH;QAE7G,oEAAmG;QACnG,sEAAK;QACD,4HAAyE;QACzE,4HAAuE;QACvE,4HAA+E;QACnF,4DAAM;QACN,oEAAgC;QACpC,4DAAM;;QATP,0DAAwD;QAAxD,mLAAwD;QAEX,0DAAwC;QAAxC,0LAAwC;QAAC,qFAAe;QAErF,0DAAkB;QAAlB,kFAAkB;QAClB,0DAAkB;QAAlB,kFAAkB;QAClB,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;;ACLA;;;;;ICInC,oEAA8B;IAAA,uDAA4B;IAAA,4DAAI;;;IAAhC,0DAA4B;IAA5B,yGAA4B;;;;;ADG3D,MAAM,2BAA2B;IALxC;QAMI,uBAAkB,GAAW,wEAA8B,CAAC;KAO/D;;sGARY,2BAA2B;yHAA3B,2BAA2B;QCTxC,yEAA6B;QAErB,oEAAuE;QAC3E,4DAAI;QACJ,yEAAyB;QAC0E,uDAAS;QAAA,4DAAI;QAC5G,mHAA8D;QAClE,4DAAM;;QANH,0DAAkD;QAAlD,6KAAkD;QAC5C,0DAAgD;QAAhD,4LAAgD;QAAC,qFAAe;QAGlE,0DAA6C;QAA7C,wKAA6C;QAA+C,0DAAS;QAAT,0EAAS;QACpG,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;;ACE7B,MAAM,kCAAkC;IAG3C,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;;oHAPQ,kCAAkC;gIAAlC,kCAAkC;QCR/C,oEAA4E;QAC5E,uEAAyB;QACrB,qEAAmC;QACvC,4DAAI;;QADM,0DAAqB;QAArB,gJAAqB;;;;;;;;;;;;;;;;;;;;;;;IEA3B,0EAA2D;IAAA,gEAAM;IAAK,4DAAO;;;IAA5C,uJAAyB;;;IAC1D,qEAAsD;;;IAA3B,iJAAmB;;;IAHlD,uEAAyG;IACrG,qEAA2D;IAAA,kEAC3D;IAAA,6HAA6E;IAC7E,6HAAsD;IAC1D,4DAAI;;;IAHgC,0DAAmB;IAAnB,iJAAmB;IAC5C,0DAAwB;IAAxB,2FAAwB;IACxB,0DAAkB;IAAlB,qFAAkB;;;IAE7B,0EAA4G;IACxG,qEAA2D;IAC/D,4DAAO;;;IAD6B,0DAAmB;IAAnB,iJAAmB;;;IAEvD,uEAAkH;IAAA,gEAAM;IAAK,4DAAI;;;IAAlF,uJAAyB;;;IACxE,qEAAuE;;;IAA3B,iJAAmB;;ADDxD,MAAM,2BAA2B;IAQpC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAI,CAAC;IAEhD,cAAc,CAAC,WAAmB;QAC9B,IAAI,WAAW,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACnC;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;IACL,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,KAAK,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,KAAK,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;;sGAnCQ,2BAA2B;yHAA3B,2BAA2B;QCRxC,mHAII;QACJ,yHAEO;QACP,mHAAiI;QACjI,yHAAuE;;QATnE,kIAA0D;QAKvD,0DAA0D;QAA1D,kIAA0D;QAG7D,0DAAyC;QAAzC,6GAAyC;QACtC,0DAAmC;QAAnC,uGAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQgF;AACvB;AACA;AAClB;AACA;AACA;AACM;AACuB;AACT;AACN;AACG;AACA;;;;;AAO3F,MAAM,sBAAsB;IAK/B,YACY,aAA4B,EAC5B,cAA8B,EAC9B,KAAqB,EACrB,wBAAkD,EAClD,gBAAkC;QAJlC,kBAAa,GAAb,aAAa,CAAe;QAC5B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,UAAK,GAAL,KAAK,CAAgB;QACrB,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAE1C,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,WAAW;QACP,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,OAAsB;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,cAAc;QAClB,MAAM,YAAY,GAAW,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAClE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC/B,IAAI,MAAM,CAAC,SAAS,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAClC;qBAAM;oBACH,QAAQ,MAAM,CAAC,UAAU,EAAE;wBAC3B,KAAK,aAAa;4BACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;4BAC7B,MAAM;wBACV,KAAK,mBAAmB,CAAC;wBACzB,KAAK,oBAAoB,CAAC;wBAC1B,KAAK,qBAAqB;4BACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACvB,MAAM;wBACV,KAAK,SAAS;4BACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACzB,MAAM;wBACV,KAAK,iBAAiB,EAAE,4DAA4D;4BAChF,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;4BAC9C,MAAM;wBACV,KAAK,cAAc,EAAE,4DAA4D;4BAC7E,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;4BAC3C,MAAM;wBACV,KAAK,OAAO;4BACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACvB,MAAM;wBACV,KAAK,kBAAkB,CAAC;wBACxB,KAAK,mBAAmB;4BACpB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;4BAC7B,MAAM;wBACV,KAAK,aAAa;4BACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAC5B,MAAM;wBACV,KAAK,YAAY;4BACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BAC3B,MAAM;wBACV,KAAK,cAAc;4BACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACvB,MAAM;wBACV,KAAK,cAAc;4BACf,MAAM;wBACV,KAAK,SAAS;4BACV,MAAM;wBACV,KAAK,UAAU;4BACX,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;4BAC3C,MAAM;qBACT;iBACJ;aACJ;SACJ;IACL,CAAC;IAEO,WAAW,CAAC,OAAe;QAC/B,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,kIAAkC,CAAC,CAAC;QAC9F,MAAM,GAAG,GAAqD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE7G,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,MAAqB;QACzC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,2GAA2B,CAAC,CAAC;QACvF,MAAM,GAAG,GAA8C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEtG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,MAAqB;QACzC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,2GAA2B,CAAC,CAAC;QACvF,MAAM,GAAG,GAA8C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEtG,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,SAAS,CAAC,MAAqB;QACnC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,yFAAqB,CAAC,CAAC;QACjF,MAAM,GAAG,GAAwC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhG,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC/C,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,SAAS,CAAC,MAAqB;QACnC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,yFAAqB,CAAC,CAAC;QACjF,MAAM,GAAG,GAAwC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhG,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,SAAS,CAAC,MAAqB;QACnC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,yFAAqB,CAAC,CAAC;QACjF,MAAM,GAAG,GAAwC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhG,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,WAAW,CAAC,MAAqB;QACrC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,+FAAuB,CAAC,CAAC;QACnF,MAAM,GAAG,GAA0C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAElG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,kBAAkB,CAAC,MAAqB,EAAE,YAAoB;QAClE,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,sHAA8B,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAiD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAClD,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;QAC/C,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,MAAqB,EAAE,YAAoB;QAC/D,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,6GAA2B,CAAC,CAAC;QACvF,MAAM,GAAG,GAA8C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEtG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,aAAa,CAAC,MAAqB;QACvC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,uGAAyB,CAAC,CAAC;QACrF,MAAM,GAAG,GAA4C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEpG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAClD,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,cAAc,CAAC,MAAqB;QACxC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,2GAA0B,CAAC,CAAC;QACtF,MAAM,GAAG,GAA6C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAErG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,MAAqB,EAAE,YAAoB;QAC/D,MAAM,OAAO,GACL,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,2GAA0B,CAAC,CAAC;QAC1F,MAAM,GAAG,GAA6C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAErG,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;;4FA3MQ,sBAAsB;qHAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;IElC/B,oEAAyB;IAAA,uDAAe;IAAA,4DAAI;;;IAAnB,0DAAe;IAAf,4FAAe;;;IACxC,qEAAkE;;;IAAlC,wJAA0B;;ADMvD,MAAM,uBAAuB;IAIhC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC;;8FARQ,uBAAuB;qHAAvB,uBAAuB;QCRpC,wEAAmB;QACf,+GAA4C;QAC5C,qHAAkE;QACtE,4DAAK;;QAFG,0DAAkB;QAAlB,kFAAkB;QACf,0DAAuB;QAAvB,wFAAuB;;;;;;;;;;;;;;;;;;;;ACCS;;;;;ICE/B,oEAAqF;IAAA,qEAAyC;IAAA,4DAAI;;;IAAvC,0DAA2B;IAA3B,yJAA2B;;;IAE1H,oEAAqF;IAAA,qEAAyC;IAAA,4DAAI;;;IAAvC,0DAA2B;IAA3B,yJAA2B;;;IAL1H,wEAAgE;IAC5D,uEAA2B;IACvB,oEAA0G;IAC1G,4HAAkI;IACtI,4DAAI;IACJ,4HAAkI;IACtI,qEAAe;;;IAJF,0DAA+C;IAA/C,uMAA+C;IAAC,qGAA4B;IAAC,sFAAsB;IACpG,0DAA+E;IAA/E,yJAA+E;IAEnF,0DAA+E;IAA/E,yJAA+E;;;IAK/E,oEAAqF;IAAA,qEAAyC;IAAA,4DAAI;;;IAAvC,0DAA2B;IAA3B,yJAA2B;;;;IAH9H,wEAAgE;IAC5D,uEAAgJ;IAC5I,oEAA0G;IAC1G,4HAAkI;IACtI,4DAAI;IACR,qEAAe;;;IAJR,0DAA4I;IAA5I,iPAA4I;IACtI,0DAA+C;IAA/C,uMAA+C;IAAC,qGAA4B;IAAC,sFAAsB;IACpG,0DAA+E;IAA/E,yJAA+E;;;ADDxF,MAAM,qBAAqB;IAK9B,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAJ3C,kBAAa,GAAW,mEAAyB,CAAC;IAIH,CAAC;IAExC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,mBAAmB,CAAC;YACnG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC9E;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,WAAW;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjH,CAAC;;0FAlBQ,qBAAqB;mHAArB,qBAAqB;QCXlC,oEAAgC;QAChC,yEAAwF;QACpF,mIAMe;QACf,mIAKe;QACnB,4DAAM;;QAdD,0DAAkF;QAAlF,2LAAkF;QACpE,0DAA+C;QAA/C,+GAA+C;QAO/C,0DAA+C;QAA/C,+GAA+C;;;;;;;;;;;;;;;;;;;;;;ACRT;AAGd;;;;;;ICFvC,uEAAgD;IACtC,uDAAa;IAAA,4DAAO;;;IAApB,0DAAa;IAAb,6EAAa;;;IAQf,uEAAwD;IAAA,uDAAgD;IAAA,4DAAO;;;;IAAvD,0DAAgD;IAAhD,gIAAgD;;;IACxG,uEAAyD;IAAA,iEAAM;IAAA,4DAAO;;;;;IAP9E,yEAAgD;IAExC,oEAA8D;IAC9D,yEAAyB;IAAA,uDAAa;IAAA,4DAAM;IAEhD,uEAAgC;IAC5B,8IAA+G;IAC/G,8IAAsE;IAC1E,4DAAI;;;;IAPD,0DAAkD;IAAlD,mLAAkD;IAC5C,0DAAgD;IAAhD,+LAAgD;IAC5B,0DAAa;IAAb,6EAAa;IAG/B,0DAA+C;IAA/C,iHAA+C;IAC/C,0DAAgD;IAAhD,kHAAgD;;;IAXnE,wEAA2C;IACvC,iIAEI;IACJ,sIASM;IACN,oEAAgC;IACpC,qEAAe;;;IAdP,0DAAmB;IAAnB,kFAAmB;IAGjB,0DAAoB;IAApB,mFAAoB;;ADQvB,MAAM,0BAA0B;IAQrC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAN1C,uBAAkB,GAAW,wEAA8B,CAAC;IAMd,CAAC;IAE/C,QAAQ;QACJ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CACjD,CAAC,QAAsB,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,EACzD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC;IACN,CAAC;IAEO,cAAc,CAAC,WAAmB;QACtC,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE;YAC1B,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;SAChD;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAEO,WAAW,CAAC,KAAU;QAC1B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1C,gDAAoB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;;oGA5BU,0BAA0B;wHAA1B,0BAA0B;QCbvC,oEAAgC;QAChC,wIAee;;QAfe,0DAAW;QAAX,iFAAW;;;;;;;;;;;;;;;;;;;;;IECrC,uEAAiC;IAAA,uDAA4B;IAAA,4DAAO;;;IAAnC,0DAA4B;IAA5B,yGAA4B;;ADK1D,MAAM,0BAA0B;;oGAA1B,0BAA0B;wHAA1B,0BAA0B;QCPvC,oEAAG;QACyC,uDAAS;QAAA,4DAAI;QACrD,wHAAoE;QACxE,4DAAI;;QAFG,0DAAc;QAAd,wIAAc;QAAuB,0DAAS;QAAT,0EAAS;QAC1C,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;ACAQ;;;;ICAvC,uEAAiC;IAAA,uDAA4B;IAAA,4DAAO;;;IAAnC,0DAA4B;IAA5B,yGAA4B;;ADO1D,MAAM,yBAAyB;IALtC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KAMrD;;kGAPY,yBAAyB;uHAAzB,yBAAyB;QCTtC,oEAAG;QACgF,uDAAS;QAAA,4DAAI;QAC5F,uHAAoE;QACxE,4DAAI;;QAFG,0DAAyC;QAAzC,2LAAyC;QAAmC,0DAAS;QAAT,0EAAS;QACjF,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IEA3B,qEAAkC;IAI4C,uDAAkB;IAAA,4DAAO;;;;IAH/F,0DAA8B;IAA9B,iGAA8B;IAC3B,0DAAwF;IAAxF,mOAAwF;IAEjF,0DAA2D;IAA3D,wKAA2D;IAAC,0DAAkB;IAAlB,kFAAkB;;ADOjG,MAAM,oBAAoB;IAU7B,YAAoB,aAA4B,EAAU,cAA8B,EAAU,KAAqB;QAAnG,kBAAa,GAAb,aAAa,CAAe;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAgB;QACnH,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IACzF,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;YACf,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBACpC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;oBACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;iBAChG;YACL,CAAC,CAAC,CAAC;QACX,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;IACL,CAAC;IAED,QAAQ,CAAC,IAAiB;QACtB,IAAI,QAAa,CAAC;QAElB,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;YAC9D,QAAQ,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC7C,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC7C,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,EAAK,yCAAyC;YACjD,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACtG;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,gBAAgB;QACZ,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE,EAAE;YACJ,OAAO,EAAE,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC1C;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;;wFAxEQ,oBAAoB;kHAApB,oBAAoB;QCbjC,yEAA2B;QAEnB,+GAOK;QACT,4DAAQ;;QARqB,0DAAO;QAAP,6EAAO;;;;;;;;;;;;;;;;;;;;;;;;ACMjC,MAAM,sBAAsB;IAC/B,YAAoB,cAA8B,EAAU,aAA4B,EAAU,MAAc;QAA5F,mBAAc,GAAd,cAAc,CAAgB;QAAU,kBAAa,GAAb,aAAa,CAAe;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAErH,OAAO,CAAC,KAA6B,EAAE,KAA0B;QAC7D,MAAM,EAAE,GAAW,KAAK,CAAC,MAAM,CAAC,IAAI,CAAW,CAAC;QAChD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACnI;QAED,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC9C;aAAM;YACH,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE;gBACb,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC3C;SACJ;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAEO,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;aACpC,SAAS,EAAE;aACX,IAAI,CAAC,OAAO,CAAC,EAAE;YACZ,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;gBAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;gBACzG,OAAO,IAAI,CAAC;aACf;YAED,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACX,CAAC;;4FAjCQ,sBAAsB;uHAAtB,sBAAsB,WAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;ACPoB;AAEJ;AACY;AACK;;;AAEpE,MAAM,MAAM,GAAW;IACnB;QACI,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,wEAAgB;QAC3B,OAAO,EAAE,EAAE,OAAO,EAAE,6EAAsB,EAAE;QAC5C,WAAW,EAAE,CAAE,2DAAa,CAAE;KACjC;CACJ,CAAC;AAMK,MAAM,oBAAoB;;wFAApB,oBAAoB;iHAApB,oBAAoB;qHAHpB,CAAC,kEAAqB,CAAC,MAAM,CAAC,CAAC,EAC9B,yDAAY;mIAEb,oBAAoB,oFAFnB,yDAAY;;;;;;;;;;;;;;;;;;;;;;IEhBlB,oEAA6N;;;;IAAxI,6FAAmC;IAAyD,uKAAsC;IAA9F,4FAA8B;;;IACvJ,oEAAgM;;;;IAA5C,uKAAsC;IAApG,4FAAoC;;;IAC1H,oEAA0N;;;;IAAvI,2FAAiC;IAAC,0GAAuC;;;IAC5J,oEAAyL;;;;IAArG,0GAAuC;;;;IAC3H,wEAA0I;IAAA,iEAAM;IAAA,4DAAK;;;IAArE,2KAAyD;;;IACzI,oEAA6M;;;;IAAxH,6FAAmC;IAAC,0GAAuC;;;IAChK,oEAA0K;;;;IAApF,0GAAuC;;;IAC7H,wEAA4I;IAAA,iEAAM;IAAA,4DAAK;;;IAArE,2KAAyD;;;IAC3I,oEAA6M;;;;IAAxH,6FAAmC;IAAC,2GAAuC;;;IAChK,oEAA0K;;;;IAApF,2GAAuC;;;IAC7H,wEAA4I;IAAA,iEAAM;IAAA,4DAAK;;;IAArE,2KAAyD;;;IAC3I,oEAA6M;;;;IAAxH,6FAAmC;IAAC,2GAAuC;;;IAChK,oEAA0K;;;;IAApF,2GAAuC;;;IAC7H,wEAA4I;IAAA,iEAAM;IAAA,4DAAK;;;IAArE,2KAAyD;;;IAC3I,oEAA6M;;;;IAAxH,6FAAmC;IAAC,2GAAuC;;;IAChK,oEAA0K;;;;IAApF,2GAAuC;;;IAC7H,wEAA4I;IAAA,iEAAM;IAAA,4DAAK;;;IAArE,2KAAyD;;;IAC3I,oEAA6M;;;;IAAxH,6FAAmC;IAAC,2GAAuC;;;IAChK,oEAA0K;;;;IAApF,2GAAuC;;;IAC7H,wEAA4I;IAAA,iEAAM;IAAA,4DAAK;;;IAArE,2KAAyD;;;;IApB/I,wEAA4F;IACxF,oHAA6N;IAC7N,oHAAgM;IAChM,oHAA0N;IAC1N,oHAAyL;IACzL,oHAAqJ;IACrJ,oHAA6M;IAC7M,oHAA0K;IAC1K,oHAAuJ;IACvJ,oHAA6M;IAC7M,sHAA0K;IAC1K,sHAAuJ;IACvJ,sHAA6M;IAC7M,sHAA0K;IAC1K,sHAAuJ;IACvJ,sHAA6M;IAC7M,sHAA0K;IAC1K,sHAAuJ;IACvJ,sHAA6M;IAC7M,sHAA0K;IAC1K,sHAAuJ;IAC3J,4DAAK;;;;IArBwB,4KAA8D;IAClF,0DAA8E;IAA9E,yJAA8E;IAC9E,0DAA+E;IAA/E,0JAA+E;IAC/E,0DAA4E;IAA5E,uJAA4E;IAC5E,0DAA6E;IAA7E,wJAA6E;IAC7E,0DAAyE;IAAzE,oJAAyE;IACzE,0DAA8E;IAA9E,yJAA8E;IAC9E,0DAA+E;IAA/E,0JAA+E;IAC/E,0DAA2E;IAA3E,sJAA2E;IAC3E,0DAA8E;IAA9E,yJAA8E;IAC9E,0DAA+E;IAA/E,0JAA+E;IAC/E,0DAA2E;IAA3E,sJAA2E;IAC3E,0DAA8E;IAA9E,yJAA8E;IAC9E,0DAA+E;IAA/E,0JAA+E;IAC/E,0DAA2E;IAA3E,sJAA2E;IAC3E,0DAA8E;IAA9E,yJAA8E;IAC9E,0DAA+E;IAA/E,0JAA+E;IAC/E,0DAA2E;IAA3E,sJAA2E;IAC3E,0DAA8E;IAA9E,yJAA8E;IAC9E,0DAA+E;IAA/E,0JAA+E;IAC/E,0DAA2E;IAA3E,sJAA2E;;ADXjF,MAAM,qBAAqB;IAK9B,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,YAAY;QACR,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,IAAI,UAAU,GAAW,CAAC,CAAC;YAE3B,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACtC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACxC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACxC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACxC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACxC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAExC,IAAI,CAAC,mBAAmB,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;YAE/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;SACvD;IACL,CAAC;IAEO,WAAW,CAAC,IAAY;QAC5B,IAAI,IAAI,KAAK,UAAU,EAAE;YACrB,OAAO,aAAa,CAAC;SACxB;QACD,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,cAAc,CAAC;SACzB;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,WAAW,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;;0FArCQ,qBAAqB;mHAArB,qBAAqB;QCVlC,2EAA4B;QACxB,iHAqBK;QACT,4DAAQ;;QAtBgB,0DAAO;QAAP,6EAAO;;;;;;;;;;;;;;;;;;;ACCY;;;;ICAnC,0EAAuG;IACnG,qEAA4F;IAChG,4DAAM;;;IADG,0DAA+C;IAA/C,uMAA+C;IAAC,+FAAsB;;;IAKvE,uEAAwC;IAAG,uDAAsB;IAAA,4DAAI;IAAA,gEAAM;IAAA,4DAAO;;;IAAvC,0DAAsB;IAAtB,0FAAsB;;;IAE7D,uEAAkC;IAAA,uDAAgB;IAAA,gEAAM;IAAA,4DAAO;;;IAA7B,0DAAgB;IAAhB,oFAAgB;;;IAClD,uEAAkC;IAAA,uDAAgB;IAAA,4DAAO;;;IAAvB,0DAAgB;IAAhB,oFAAgB;;;IAXtE,yEAAqF;IAE7E,6HAEM;IACN,yEAA8C;IAC1C,oEAAiD;IACjD,yEAAqC;IACjC,+HAAkF;IAClF,yEAA2C;IACvC,+HAA+D;IAC/D,+HAAyD;IAC7D,4DAAM;;;IAVR,0DAAyD;IAAzD,mIAAyD;IAMhD,0DAA+B;IAA/B,kGAA+B;IAE3B,0DAAyB;IAAzB,4FAAyB;IACzB,0DAAyB;IAAzB,4FAAyB;;;IAQ5C,0EAAuG;IACnG,qEAA4F;IAChG,4DAAM;;;IADG,0DAA+C;IAA/C,uMAA+C;IAAC,+FAAsB;;;IAKvE,uEAAwC;IAAG,uDAAsB;IAAA,4DAAI;IAAA,gEAAM;IAAA,4DAAO;;;IAAvC,0DAAsB;IAAtB,0FAAsB;;;IAE7D,uEAAkC;IAAA,uDAAgB;IAAA,gEAAM;IAAA,4DAAO;;;IAA7B,0DAAgB;IAAhB,oFAAgB;;;IAClD,uEAAkC;IAAA,uDAAgB;IAAA,4DAAO;;;IAAvB,0DAAgB;IAAhB,oFAAgB;;;IAXtE,0EAAsF;IAE9E,6HAEM;IACN,yEAA8C;IAC1C,oEAAiD;IACjD,yEAAqC;IACjC,+HAAkF;IAClF,yEAA2C;IACvC,+HAA+D;IAC/D,+HAAyD;IAC7D,4DAAM;;;IAVR,0DAAyD;IAAzD,mIAAyD;IAMhD,0DAA+B;IAA/B,kGAA+B;IAE3B,0DAAyB;IAAzB,4FAAyB;IACzB,0DAAyB;IAAzB,4FAAyB;;ADlB7C,MAAM,2BAA2B;IALxC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KAGrD;;sGAJY,2BAA2B;yHAA3B,2BAA2B;QCVxC,wHAgBM;QACN,wHAgBM;;QAjCA,8GAA8C;QAiB9C,0DAA8C;QAA9C,8GAA8C;;;;;;;;;;;;;;;;;;;;;ACbT;;;;;;ICHvC,yEAA0H;IAElH,oEAAoE;IACxE,4DAAI;;;IAH+D,2FAA2B;IAC3F,0DAAgC;IAAhC,6JAAgC;IAC1B,0DAA8C;IAA9C,2KAA8C;;;;IAH/D,yEAAoN;IAA7E,0SAAc,wBAAiB,IAAI,CAAC,IAAC,kPAAe,wBAAiB,KAAK,CAAC,IAAtC;IACxK,uHAIM;IACN,gFAAgH;IACpH,4DAAM;;;IAPqD,oGAAsC;IACvF,0DAA+D;IAA/D,yIAA+D;IAKpD,0DAA2B;IAA3B,2FAA2B;;ADKzC,MAAM,qBAAqB;IAM9B,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAJ3C,uBAAkB,GAAW,wEAA8B,CAAC;QAE5D,oBAAe,GAAY,KAAK,CAAC;IAEa,CAAC;IAEvC,QAAQ;QACZ,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YACnD,IAAI,GAAG,GAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gBACvB,GAAG,IAAI,aAAa,CAAC;aACxB;iBAAM;gBACH,GAAG,IAAI,aAAa,CAAC;aACxB;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;SAC7D;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,IAAa;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,CAAC;;0FAxBQ,qBAAqB;mHAArB,qBAAqB;QCXlC,iHAOM;;QAPA,4FAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCa;AAEiB;AACD;AACV;AACwB;AACM;AACxB;AAC8D;AACrD;AAC8B;AACA;AAClB;AACA;AACA;AACM;AACuB;AACT;AACN;AACG;AACA;;AA8B1F,MAAM,aAAa;;0EAAb,aAAa;2GAAb,aAAa;gHAtBX;QACP,qEAAc;QACd,6EAAsB;KACzB,YARQ;YACL,0DAAY;YACZ,yEAAoB;YACpB,+DAAY;SACf;oIAuBQ,aAAa,mBAjBlB,wEAAgB;QAChB,sFAAoB;QACpB,4FAAsB;QACtB,kIAAkC;QAClC,2GAA2B;QAC3B,2GAA2B;QAC3B,0FAAqB;QACrB,0FAAqB;QACrB,0FAAqB;QACrB,gGAAuB;QACvB,uHAA8B;QAC9B,8GAA2B;QAC3B,wGAAyB;QACzB,2GAA0B;QAC1B,2GAA0B,aAvB1B,0DAAY;QACZ,yEAAoB;QACpB,+DAAY;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BoD;;;;;;;;;;;AAejE,MAAM,gBAAgB;IAMzB,YACY,aAA4B,EAC5B,cAA8B,EAC9B,KAAqB;QAFrB,kBAAa,GAAb,aAAa,CAAe;QAC5B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,UAAK,GAAL,KAAK,CAAgB;QALjC,YAAO,GAAoB,EAAE,CAAC;QAO1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CACxD,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAC/B,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,KAAK,CAAC,IAAI;aACV,SAAS,CAAC,CAAC,IAAkC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SAC1C;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE;YACrC,qBAAqB,EAAE,CAAC;SAC3B;IACL,CAAC;IAEO,UAAU;QACd,MAAM,MAAM,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CACvE,CAAC,OAAwB,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EACzD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC;IACN,CAAC;IAEO,WAAW,CAAC,KAAU;QAC1B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1C,gDAAoB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;;gFAnDQ,gBAAgB;8GAAhB,gBAAgB;QCf7B,iFAA2C;QAE3C,yEAAyB;QACrB,0EAA6B;QAEjC,4DAAM;QACN,yEAA2B;QAEnB,+EAAqD;QACzD,4DAAM;QAEV,yEAA6B;QACzB,+EAAuC;QAC3C,4DAAM;;QALkB,0DAAmB;QAAnB,gFAAmB;;;;;;;;;;;;;;;;;;;;ACNA;AAC0B;;;;ICArE,oEAA8F;;;IAA5E,0LAA2C;;ADOtD,MAAM,eAAgB,SAAQ,6EAAiB;IAQlD,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC;IAJ1B,IAAI,kBAAkB;QAClB,OAAO,wEAA8B,CAAC;IAC1C,CAAC;;8EANQ,eAAe;6GAAf,eAAe;QCV5B,uEAA+B;QACG,kIAAS,aAAS,IAAC;QAAoD,uDAAS;QAAA,4DAAI;QAEtH,2GAA8F;;QAHxF,mFAAwB;QAC2E,0DAAS;QAAT,0EAAS;QAE5G,0DAAU;QAAV,0EAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHhB;AACA;AACA;AACA;AAGA;AAIA;AAWA;;;;;;;;;;;;;;;;;;;;;ACfYS,IAAAA,6DAAAA;AACIA,IAAAA,qDAAAA;AACJA,IAAAA,2DAAAA;;;;;;;AAFoDA,IAAAA,0DAAAA,2CAAqC,YAArC,EAAqCC,mBAArC;AAChDD,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA;;;;;;AAWYA,IAAAA,sEAAAA;AACIA,IAAAA,wDAAAA;AACJA,IAAAA,oEAAAA;;;;;;;AADiBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,4BAAsB,MAAtB,EAAsBE,qBAAtB,EAAsB,IAAtB,EAAsBA,+BAAtB,EAAsB,UAAtB,EAAsBA,6CAAtB;;;;;;AAEjBF,IAAAA,sEAAAA;AACIA,IAAAA,6DAAAA;AAAMA,IAAAA,qDAAAA;AAAgBA,IAAAA,2DAAAA;AAC1BA,IAAAA,oEAAAA;;;;;AADUA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAEVA,IAAAA,sEAAAA;AACIA,IAAAA,wDAAAA;AACJA,IAAAA,oEAAAA;;;;;;AADcA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,qGAA6E,OAA7E,EAA6EE,qBAA7E;;;;;;;;AAGVF,IAAAA,6DAAAA;AAAoJA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUG,gDAAV;AAA0C,KAA1C;AAAmEH,IAAAA,2DAAAA;;;;;;AAAlKA,IAAAA,yDAAAA,kDAAoC,OAApC,EAAoCE,qBAApC,EAAoC,QAApC,EAAoCA,sBAApC,EAAoC,WAApC,EAAoCE,gBAApC;;;;;;;;AACrDJ,IAAAA,6DAAAA;AAAuJA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUK,gDAAV;AAA0C,KAA1C;AAAmEL,IAAAA,2DAAAA;;;;;;AAAlKA,IAAAA,yDAAAA,kDAAoC,OAApC,EAAoCE,qBAApC,EAAoC,QAApC,EAAoCA,sBAApC,EAAoC,WAApC,EAAoCI,gBAApC;;;;;;;;AAExDN,IAAAA,6DAAAA;AAAyEA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUO,gDAAV;AAA0C,KAA1C;AAA0FP,IAAAA,2DAAAA;;;;;;AAAjHA,IAAAA,yDAAAA,4BAAsB,OAAtB,EAAsBE,gBAAtB,EAAsB,WAAtB,EAAsBM,gBAAtB;;;;;;;;AAClDR,IAAAA,6DAAAA;AAA4EA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUS,gDAAV;AAA0C,KAA1C;AAA0FT,IAAAA,2DAAAA;;;;;;AAAjHA,IAAAA,yDAAAA,4BAAsB,OAAtB,EAAsBE,gBAAtB,EAAsB,WAAtB,EAAsBQ,gBAAtB;;;;;;;;AAErDV,IAAAA,6DAAAA;AAAoFA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUW,gDAAV;AAA0C,KAA1C;AAA0FX,IAAAA,2DAAAA;;;;;;AAAjHA,IAAAA,yDAAAA,4BAAsB,OAAtB,EAAsBE,gBAAtB,EAAsB,WAAtB,EAAsBU,gBAAtB;;;;;;;;AAC7DZ,IAAAA,6DAAAA;AAAmFA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUa,gDAAV;AAA0C,KAA1C;AAA0Fb,IAAAA,2DAAAA;;;;;;AAAjHA,IAAAA,yDAAAA,4BAAsB,OAAtB,EAAsBE,gBAAtB,EAAsB,WAAtB,EAAsBY,gBAAtB;;;;;;;;AAE5Dd,IAAAA,6DAAAA;AAAgIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUe,gDAAV;AAA0C,KAA1C;AAAmEf,IAAAA,2DAAAA;;;;;;AAApIA,IAAAA,yDAAAA,kDAAoC,OAApC,EAAoCE,qBAApC,EAAoC,WAApC,EAAoCc,gBAApC;;;;;;;;AAC/DhB,IAAAA,6DAAAA;AAAiIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUiB,gDAAV;AAA0C,KAA1C;AAAmEjB,IAAAA,2DAAAA;;;;;;AAApIA,IAAAA,yDAAAA,kDAAoC,OAApC,EAAoCE,qBAApC,EAAoC,WAApC,EAAoCgB,gBAApC;;;;;;AAXpElB,IAAAA,sEAAAA;AACIA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AACJA,IAAAA,oEAAAA;;;;;AAXoBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEJA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEIA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AArBxBA,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAaRA,IAAAA,2DAAAA;;;;;;;;AAvB6DA,IAAAA,0DAAAA,iDAAqC,YAArC,EAAqCmB,+BAArC;AACtCnB,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAfnCA,IAAAA,6DAAAA,yBAA4D,CAA5D,EAA4D,IAA5D,EAA4D,EAA5D;AAEQA,IAAAA,wDAAAA;AACAA,IAAAA,6DAAAA,aAAO,CAAP,EAAO,IAAP;AAEQA,IAAAA,yDAAAA;AAwBJA,IAAAA,2DAAAA;;;;;AAxB2BA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAuCfA,IAAAA,sEAAAA;AACIA,IAAAA,wDAAAA;AACJA,IAAAA,oEAAAA;;;;;;;AADiBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,4BAAsB,MAAtB,EAAsBoB,qBAAtB,EAAsB,IAAtB,EAAsBA,+BAAtB,EAAsB,UAAtB,EAAsBA,6CAAtB;;;;;;AAEjBpB,IAAAA,sEAAAA;AACIA,IAAAA,6DAAAA;AAAMA,IAAAA,qDAAAA;AAAgBA,IAAAA,2DAAAA;AAC1BA,IAAAA,oEAAAA;;;;;AADUA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAEVA,IAAAA,sEAAAA;AACIA,IAAAA,wDAAAA;AACJA,IAAAA,oEAAAA;;;;;;AADcA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,qGAA6E,OAA7E,EAA6EoB,qBAA7E;;;;;;;;AAGVpB,IAAAA,6DAAAA;AAAoJA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUqB,gDAAV;AAA0C,KAA1C;AAAmErB,IAAAA,2DAAAA;;;;;;AAAlKA,IAAAA,yDAAAA,kDAAoC,OAApC,EAAoCoB,qBAApC,EAAoC,QAApC,EAAoCA,sBAApC,EAAoC,WAApC,EAAoCE,gBAApC;;;;;;;;AACrDtB,IAAAA,6DAAAA;AAAuJA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUuB,gDAAV;AAA0C,KAA1C;AAAmEvB,IAAAA,2DAAAA;;;;;;AAAlKA,IAAAA,yDAAAA,kDAAoC,OAApC,EAAoCoB,qBAApC,EAAoC,QAApC,EAAoCA,sBAApC,EAAoC,WAApC,EAAoCI,gBAApC;;;;;;;;AAExDxB,IAAAA,6DAAAA;AAAyEA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUyB,gDAAV;AAA0C,KAA1C;AAA0FzB,IAAAA,2DAAAA;;;;;;AAAjHA,IAAAA,yDAAAA,4BAAsB,OAAtB,EAAsBoB,gBAAtB,EAAsB,WAAtB,EAAsBM,gBAAtB;;;;;;;;AAClD1B,IAAAA,6DAAAA;AAA4EA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAU2B,gDAAV;AAA0C,KAA1C;AAA0F3B,IAAAA,2DAAAA;;;;;;AAAjHA,IAAAA,yDAAAA,4BAAsB,OAAtB,EAAsBoB,gBAAtB,EAAsB,WAAtB,EAAsBQ,gBAAtB;;;;;;;;AAErD5B,IAAAA,6DAAAA;AAAoFA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAU6B,gDAAV;AAA0C,KAA1C;AAA0F7B,IAAAA,2DAAAA;;;;;;AAAjHA,IAAAA,yDAAAA,4BAAsB,OAAtB,EAAsBoB,gBAAtB,EAAsB,WAAtB,EAAsBU,gBAAtB;;;;;;;;AAC7D9B,IAAAA,6DAAAA;AAAmFA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAU+B,iDAAV;AAA0C,KAA1C;AAA0F/B,IAAAA,2DAAAA;;;;;;AAAjHA,IAAAA,yDAAAA,4BAAsB,OAAtB,EAAsBoB,gBAAtB,EAAsB,WAAtB,EAAsBY,gBAAtB;;;;;;;;AAE5DhC,IAAAA,6DAAAA;AAAgIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUiC,iDAAV;AAA0C,KAA1C;AAAmEjC,IAAAA,2DAAAA;;;;;;AAApIA,IAAAA,yDAAAA,kDAAoC,OAApC,EAAoCoB,qBAApC,EAAoC,WAApC,EAAoCc,gBAApC;;;;;;;;AAC/DlC,IAAAA,6DAAAA;AAAiIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAUmC,iDAAV;AAA0C,KAA1C;AAAmEnC,IAAAA,2DAAAA;;;;;;AAApIA,IAAAA,yDAAAA,kDAAoC,OAApC,EAAoCoB,qBAApC,EAAoC,WAApC,EAAoCgB,gBAApC;;;;;;AAXpEpC,IAAAA,sEAAAA;AACIA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AACJA,IAAAA,oEAAAA;;;;;AAXoBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEJA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEIA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AArBxBA,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAaJA,IAAAA,2DAAAA;;;;;;;;AAvByDA,IAAAA,0DAAAA,iDAAqC,YAArC,EAAqCqC,+BAArC;AACtCrC,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AApBvCA,IAAAA,6DAAAA,4BAAwE,CAAxE,EAAwE,IAAxE,EAAwE,CAAxE,EAAwE,KAAxE,EAAwE,EAAxE,EAAwE,CAAxE,EAAwE,QAAxE,EAAwE,EAAxE,EAAwE,CAAxE,EAAwE,UAAxE,EAAwE,EAAxE;AAKoBA,IAAAA,qDAAAA;AACJA,IAAAA,2DAAAA;AAEJA,IAAAA,6DAAAA,aAAO,CAAP,EAAO,IAAP;AAEQA,IAAAA,yDAAAA;AAwBJA,IAAAA,2DAAAA;AAGRA,IAAAA,6DAAAA;AACIA,IAAAA,iEAAAA;AACJA,IAAAA,2DAAAA;;;;;;AAlCYA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA;AAKuBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AA2B/BA,IAAAA,wDAAAA;AAAAA,IAAAA,0DAAAA;;;;;;AAvEhBA,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AAiCAA,IAAAA,yDAAAA;AA0CJA,IAAAA,2DAAAA;;;;;AA5E4CA,IAAAA,yDAAAA,sCAA6B,aAA7B,EAA6BsC,kBAA7B;AAkCStC,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AA3CzDA,IAAAA,sEAAAA;AACIA,IAAAA,6DAAAA,gBAAmD,CAAnD,EAAmD,OAAnD,EAAmD,CAAnD,EAAmD,CAAnD,EAAmD,IAAnD,EAAmD,CAAnD;AAEgCA,IAAAA,qDAAAA;AAAMA,IAAAA,2DAAAA;AAC9BA,IAAAA,yDAAAA;AAGJA,IAAAA,2DAAAA;AAEJA,IAAAA,yDAAAA;AA6EJA,IAAAA,oEAAAA;;;;;AAlFmCA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAKpBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAoFwBA,IAAAA,6DAAAA;AAA6DA,IAAAA,qDAAAA;AAACA,IAAAA,2DAAAA;;;;;;AADjFA,IAAAA,6DAAAA;AACIA,IAAAA,qDAAAA;AAAeA,IAAAA,yDAAAA;AACnBA,IAAAA,2DAAAA;;;;;;;;AAF6FA,IAAAA,0DAAAA,mCAA+B,YAA/B,EAA+BuC,qBAA/B;AAAjEvC,IAAAA,yDAAAA,gCAAyB,UAAzB,EAAyBwC,kBAAzB,EAAyB,UAAzB,EAAyBA,WAAzB;AACxBxC,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA;AAAsBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAGPA,IAAAA,6DAAAA;AAA6DA,IAAAA,qDAAAA;AAACA,IAAAA,2DAAAA;;;;;;AADjFA,IAAAA,6DAAAA;AACIA,IAAAA,qDAAAA;AAAeA,IAAAA,yDAAAA;AACnBA,IAAAA,2DAAAA;;;;;AAF6BA,IAAAA,0DAAAA,mCAA+B,YAA/B,EAA+BuC,qBAA/B,EAA+B,SAA/B,EAA+B,KAA/B;AACzBvC,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA;AAAsBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AALlCA,IAAAA,sEAAAA;AACQA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGRA,IAAAA,oEAAAA;;;;;AANaA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AALjBA,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AAQJA,IAAAA,2DAAAA;;;;;AARqCA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;;;;;;;;AAa7BA,IAAAA,sEAAAA;AACIA,IAAAA,wDAAAA;AAGJA,IAAAA,oEAAAA;;;;;AAHSA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,sDAAAA,4DAAAA,EAA+C,SAA/C,EAA+CA,8DAAAA,4IAA/C;;;;;;AAKLA,IAAAA,sEAAAA;AACIA,IAAAA,wDAAAA;AACJA,IAAAA,oEAAAA;;;;;;AADiBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,6BAAsB,MAAtB,EAAsByC,sBAAtB,EAAsB,IAAtB,EAAsBA,iCAAtB,EAAsB,UAAtB,EAAsBA,8CAAtB;;;;;;AAEjBzC,IAAAA,sEAAAA;AACIA,IAAAA,6DAAAA;AAAMA,IAAAA,qDAAAA;AAAgBA,IAAAA,2DAAAA;AAC1BA,IAAAA,oEAAAA;;;;;AADUA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAEVA,IAAAA,sEAAAA;AACIA,IAAAA,wDAAAA;AACJA,IAAAA,oEAAAA;;;;;;AADcA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,yGAA6E,OAA7E,EAA6EyC,sBAA7E;;;;;;;;AAGVzC,IAAAA,6DAAAA;AAAoJA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA,aAAS0C,2CAAT;AAAiC,KAAjC;AAAmC1C,IAAAA,2DAAAA;;;;;;AAAlIA,IAAAA,yDAAAA,oDAAoC,OAApC,EAAoCyC,sBAApC,EAAoC,QAApC,EAAoCA,uBAApC;;;;;;;;AACrDzC,IAAAA,6DAAAA;AAAuJA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA,aAAS2C,2CAAT;AAAiC,KAAjC;AAAmC3C,IAAAA,2DAAAA;;;;;;AAAlIA,IAAAA,yDAAAA,oDAAoC,OAApC,EAAoCyC,sBAApC,EAAoC,QAApC,EAAoCA,uBAApC;;;;;;;;AAExDzC,IAAAA,6DAAAA;AAAyEA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA,aAAS4C,2CAAT;AAAiC,KAAjC;AAA0D5C,IAAAA,2DAAAA;;;;;AAAjFA,IAAAA,yDAAAA,6BAAsB,OAAtB,EAAsByC,iBAAtB;;;;;;;;AAClDzC,IAAAA,6DAAAA;AAA4EA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA,aAAS6C,2CAAT;AAAiC,KAAjC;AAA0D7C,IAAAA,2DAAAA;;;;;AAAjFA,IAAAA,yDAAAA,6BAAsB,OAAtB,EAAsByC,iBAAtB;;;;;;;;AAErDzC,IAAAA,6DAAAA;AAAoFA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA,aAAS8C,2CAAT;AAAiC,KAAjC;AAA0D9C,IAAAA,2DAAAA;;;;;AAAjFA,IAAAA,yDAAAA,6BAAsB,OAAtB,EAAsByC,iBAAtB;;;;;;;;AAC7DzC,IAAAA,6DAAAA;AAAmFA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA,aAAS+C,2CAAT;AAAiC,KAAjC;AAA0D/C,IAAAA,2DAAAA;;;;;AAAjFA,IAAAA,yDAAAA,6BAAsB,OAAtB,EAAsByC,iBAAtB;;;;;;;;AAE5DzC,IAAAA,6DAAAA;AAAgIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA,aAASgD,2CAAT;AAAiC,KAAjC;AAAmChD,IAAAA,2DAAAA;;;;;;AAApGA,IAAAA,yDAAAA,oDAAoC,OAApC,EAAoCyC,sBAApC;;;;;;;;AAC/DzC,IAAAA,6DAAAA;AAAiIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAAA,aAASiD,2CAAT;AAAiC,KAAjC;AAAmCjD,IAAAA,2DAAAA;;;;;;AAApGA,IAAAA,yDAAAA,oDAAoC,OAApC,EAAoCyC,sBAApC;;;;;;AAXpEzC,IAAAA,sEAAAA;AACIA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AACJA,IAAAA,oEAAAA;;;;;AAXoBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEJA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAEIA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AApBpBA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;;;;;AATeA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAjBvBA,IAAAA,6DAAAA;AAEIA,IAAAA,yDAAAA;AAKAA,IAAAA,yDAAAA,0HAAAA,qEAAAA;AAwBJA,IAAAA,2DAAAA;;;;;;;;;;;;AA/B+FA,IAAAA,0DAAAA;AACvFA,IAAAA,0DAAAA,4DAAkD,iBAAlD,EAAkDkD,qCAAlD,EAAkD,gBAAlD,EAAkDC,mCAAlD;AACWnD,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,8CAAsC,UAAtC,EAAsCoD,KAAtC;;;;;;AAHvBpD,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AAgCJA,IAAAA,2DAAAA;;;;;;;AAjCgEA,IAAAA,0DAAAA;AACrCA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAkCvBA,IAAAA,6DAAAA;AAA4FA,IAAAA,wDAAAA;AAA8CA,IAAAA,2DAAAA;;;;;AAA1FA,IAAAA,0DAAAA;AAAkDA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,uCAAAA,6DAAAA;;;;;;AADtGA,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AACJA,IAAAA,2DAAAA;;;;;AADiCA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;;;AA/CrCA,IAAAA,6DAAAA;AAA4DA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA,aAAUqD,0DAAV;AAAyC,KAAzC;AACxDrD,IAAAA,yDAAAA;AAWAA,IAAAA,yDAAAA;AAkCAA,IAAAA,yDAAAA;AAGJA,IAAAA,2DAAAA;;;;;AAhDYA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAWYA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAkCZA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AA/ChBA,IAAAA,sEAAAA;AACIA,IAAAA,yDAAAA;AAkDJA,IAAAA,oEAAAA;;;;;AAlDYA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAmDZA,IAAAA,sEAAAA;AACIA,IAAAA,6DAAAA;AAAMA,IAAAA,qDAAAA;AAAiBA,IAAAA,2DAAAA;AAC3BA,IAAAA,oEAAAA;;;;;AADUA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;;;;ADlHJ,MAAOsD,6BAAP,CAAoC;AAmEtCC,cACYC,cADZ,EAEYC,YAFZ,EAGYC,WAHZ,EAIYC,SAJZ,EAKYC,OALZ,EAMYC,YANZ,EAOYC,cAPZ,EAQYC,YARZ,EAQqC;AAPzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1EF,uBAAqC,IAAIxE,wDAAJ,EAArC;AACA,4BAAwD,IAAIA,wDAAJ,EAAxD;AAcV,mBAAiB,EAAjB;AACA,gBAA6B,EAA7B;AAOA,yBAAwBI,mEAAxB;AACA,8BAA6BA,wEAA7B;AAIA,uBAA2C,IAAIF,iEAAJ,CAAiCyE,IAAD,IAAUA,IAAI,CAACC,QAA/C,CAA3C;AACA,0BAAoD,IAAIzE,4EAAJ,EAApD;AAEA,uBAAuB,KAAvB;;AAiCA,4BAAmB,CAAC0E,CAAD,EAAYF,IAAZ,KAA+B,CAAC,CAACA,IAAI,CAACC,QAAP,IAAmBD,IAAI,CAACC,QAAL,CAAcE,MAAd,GAAuB,CAA5F;;AAYI,SAAKC,cAAL,GAAsB,IAAIC,IAAI,CAACC,YAAT,CAAsB,KAAKhB,cAAL,CAAoBiB,WAApB,EAAtB,EAAyD;AAC3E;AACA;AACA;AACAC,2BAAqB,EAAE,CAJoD;AAK3EC,2BAAqB,EAAE;AALoD,KAAzD,CAAtB;AAQA,SAAKC,UAAL,GAAkB,IAAIL,IAAI,CAACM,cAAT,CAAwB,KAAKrB,cAAL,CAAoBiB,WAApB,EAAxB,EAA2D;AACzEK,WAAK,EAAE,SADkE;AAEzEC,SAAG,EAAE,SAFoE;AAGzEC,UAAI,EAAE;AAHmE,KAA3D,CAAlB;AAMA,SAAKC,UAAL,GAAkB,IAAIV,IAAI,CAACM,cAAT,CAAwB,KAAKrB,cAAL,CAAoBiB,WAApB,EAAxB,EAA2D;AACzES,YAAM,EAAE,IADiE;AAEzEC,UAAI,EAAE,SAFmE;AAGzEC,YAAM,EAAE;AAHiE,KAA3D,CAAlB;AAMA,SAAKC,cAAL,GAAsB,IAAId,IAAI,CAACM,cAAT,CAAwB,KAAKrB,cAAL,CAAoBiB,WAApB,EAAxB,EAA2D;AAC7ES,YAAM,EAAE,IADqE;AAE7EJ,WAAK,EAAE,SAFsE;AAG7EC,SAAG,EAAE,SAHwE;AAI7EC,UAAI,EAAE,SAJuE;AAK7EG,UAAI,EAAE,SALuE;AAM7EC,YAAM,EAAE;AANqE,KAA3D,CAAtB;AAQH;;AAxEa,MAAVE,UAAU;AACV,WAAO,KAAKC,cAAL,KAAwB,IAA/B;AACH;;AAEDC,YAAU,CAACC,GAAD,EAAcvB,IAAd,EAA4B;AAClC,QAAI,KAAKwB,OAAL,CAAaD,GAAb,EAAkBE,KAAlB,GAA0B,CAA9B,EAAiC;AAC7B,aAAO,KAAKD,OAAL,CAAaD,GAAb,EAAkBE,KAAlB,GAA0B,IAAjC;AACH;;AAED,QAAIC,gBAAgB,GAAW,CAA/B;AACA,SAAKF,OAAL,CAAaG,OAAb,CAAsBC,CAAD,IAAM;AACvBF,sBAAgB,IAAIE,CAAC,CAACH,KAAtB;AACH,KAFD;AAIA,QAAII,KAAK,GAAW,CAApB;;AACA,QAAI7B,IAAJ,EAAU;AACN6B,WAAK,GAAG7B,IAAI,CAAC8B,KAAb;AACH;;AAED,UAAMC,cAAc,GAAW,MAAM,EAAN,GAAW,KAAKF,KAA/C;AAEA,WAAOH,gBAAgB,GAAGK,cAAnB,GAAoCA,cAAc,GAAGL,gBAAjB,GAAoC,IAAxE,GAA+E,GAAtF;AACH;;AAEDM,gBAAc,CAACT,GAAD,EAAY;AACtB,QAAI,KAAKC,OAAL,CAAaD,GAAb,EAAkBU,SAAlB,IAA+B,KAAKT,OAAL,CAAaD,GAAb,EAAkBU,SAAlB,KAAgC,EAAnE,EAAuE;AACnE,aAAO,KAAKT,OAAL,CAAaD,GAAb,EAAkBU,SAAzB;AACH;;AAED,WAAO,MAAP;AACH;;AA4CDC,kBAAgB,CAACC,SAAD,EAA2B;AACvC,SAAKC,YAAL,GAAoB,KAAK9C,cAAL,CAAoB+C,eAApB,EAApB;AACA,SAAKC,UAAL,GAAkBH,SAAS,CAACI,SAA5B;AACA,SAAKC,SAAL,GAAiBL,SAAS,CAACM,QAA3B;AACA,SAAKC,cAAL,GAAsBP,SAAS,CAACQ,WAAhC;AACA,SAAKC,aAAL,GAAqBT,SAAS,CAACU,UAA/B;AACA,SAAKC,UAAL,GAAkBX,SAAS,CAACY,UAA5B;AACA,SAAKC,aAAL,GAAqBb,SAAS,CAACc,aAA/B;AACA,SAAKC,EAAL,GAAUf,SAAS,CAACgB,EAApB;AACA,SAAKC,SAAL,GAAiBjB,SAAS,CAACkB,YAA3B;AACA,SAAKC,oBAAL,GAA4BnB,SAAS,CAACoB,oBAAtC;AACA,SAAKC,aAAL,GAAqBrB,SAAS,CAACsB,aAA/B;;AAEA,QAAItB,SAAS,CAACuB,YAAV,CAAuBvD,MAAvB,KAAkC,CAAlC,IAAuC,CAACgC,SAAS,CAACwB,gBAAtD,EAAwE;AACpE,UAAIxB,SAAS,CAACyB,uBAAd,EAAuC;AACnC,aAAKC,YAAL,CAAkB1B,SAAS,CAAC2B,OAA5B;AACH,OAFD,MAEO;AACH,aAAKxB,UAAL,GAAkB,KAAlB;AACH;AACJ,KAND,MAMO;AACH,WAAKuB,YAAL,CAAkB1B,SAAS,CAAC2B,OAA5B;AACH;;AAED,QAAI3B,SAAS,CAACwB,gBAAd,EAAgC;AAC5B,WAAKtC,cAAL,CAAoB0C,IAApB,GAA2B,CAAC5B,SAAS,CAACwB,gBAAX,CAA3B;AAEA,UAAIK,KAAK,GAAW,CAApB;;AACA,UAAI7B,SAAS,CAACuB,YAAV,CAAuBvD,MAAvB,GAAgC,CAApC,EAAuC;AACnC6D,aAAK,GAAG7B,SAAS,CAACuB,YAAV,CAAuB,CAAvB,EAA0BO,WAA1B,CAAsC9D,MAA9C;AACH;;AACD,WAAK+D,cAAL,CAAoB/B,SAAS,CAACwB,gBAA9B,EAAgDxB,SAAhD,EAA2D6B,KAA3D;AAEA,WAAKG,WAAL,GAAmB,IAAnB;AACH,KAVD,MAUO;AACH,WAAK9C,cAAL,GAAsB,IAAtB;AACH;;AAED,QAAI+C,WAAW,GAAW,CAA1B;;AACA,QAAIjC,SAAS,CAACuB,YAAV,CAAuBvD,MAAvB,GAAgC,CAApC,EAAuC;AACnCiE,iBAAW,GAAGjC,SAAS,CAACuB,YAAV,CAAuB,CAAvB,EAA0BO,WAA1B,CAAsC9D,MAApD;AACH;;AAED,SAAK,MAAM4D,IAAX,IAAmB5B,SAAS,CAACuB,YAA7B,EAA2C;AACvC,YAAMW,UAAU,GAAuB,IAAIzI,yEAAJ,EAAvC;AACAyI,gBAAU,CAACC,OAAX,GAAqB,EAArB;;AACA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,WAApB,EAAiC,EAAEG,CAAnC,EAAsC;AAClC,cAAMC,aAAa,GAA0B,IAAI9I,4EAAJ,EAA7C;AACA8I,qBAAa,CAACC,UAAd,GAA2B,CAAC,CAA5B;AACAD,qBAAa,CAACE,WAAd,GAA4B,CAAC,CAA7B;;AACA,gBAAQvC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBI,UAA7B;AACI,eAAK,UAAL;AACIH,yBAAa,CAACI,KAAd,GAAsBb,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAACM,IAAd,GAAqB3C,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBQ,UAA1C;AACAP,yBAAa,CAACQ,WAAd,GAA4B,UAA5B;AACAR,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,kBAAL;AACIA,yBAAa,CAACI,KAAd,GAAsBb,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAACM,IAAd,GAAqB3C,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBQ,UAA1C;AACAP,yBAAa,CAACQ,WAAd,GAA4B,kBAA5B;AACAR,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,YAAL;AACIA,yBAAa,CAACI,KAAd,GAAsB,KAAKxE,cAAL,CAAoB+E,MAApB,CAA2BpB,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAA3B,CAAtB;AACAC,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,aAAL;AACI,gBAAIrC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBa,kBAArB,GAA0C,CAA9C,EAAiD;AAC7C,oBAAMC,MAAM,GAA8B,KAAKC,gBAAL,CAAsBvB,IAAI,CAACE,WAA3B,EAAwC9B,SAAS,CAAC2B,OAAlD,EAA2DS,CAA3D,CAA1C;AACAC,2BAAa,CAACe,OAAd,GAAwBF,MAAM,CAACE,OAA/B;;AACA,kBAAIF,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,CAA1B,MAAiC,MAArC,EAA6C;AACzCjB,6BAAa,CAACkB,gBAAd,GAAiCL,MAAM,CAACG,KAAxC;AACAhB,6BAAa,CAACmB,UAAd,GAA2B,WAA3B;AACH,eAHD,MAGO,IAAIN,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,EAA1B,MAAkC,aAAtC,EAAqD;AACxDjB,6BAAa,CAACkB,gBAAd,GAAiCL,MAAM,CAACO,MAAxC;AACApB,6BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuBJ,MAAM,CAACG,KAAP,CAAaM,OAAb,CAAqB,GAArB,IAA4B,CAAnD,CAAvC;AACAtB,6BAAa,CAACQ,WAAd,GAA4BK,MAAM,CAACU,UAAnC;AACAvB,6BAAa,CAACmB,UAAd,GAA2B,mBAA3B;AACH,eALM,MAKA,IAAIN,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,EAA1B,MAAkC,YAAtC,EAAoD;AACvDjB,6BAAa,CAACkB,gBAAd,GAAiC,GAAjC;AACAlB,6BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACO,MAA9C;AACApB,6BAAa,CAACmB,UAAd,GAA2B,kBAA3B;AACH,eAJM,MAIA;AACHnB,6BAAa,CAACkB,gBAAd,GAAiC,IAAI,KAAKtD,YAAY,IAAIiD,MAAM,CAACG,KAAP,CAAaQ,WAAb,EAA0B,EAApF;AACAxB,6BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACO,MAA9C;AACApB,6BAAa,CAACmB,UAAd,GAA2B,QAA3B;AACH;AACJ;;AACDnB,yBAAa,CAACI,KAAd,GAAsBb,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,WAAL;AACI,kBAAMyB,CAAC,GAAS,IAAIC,IAAJ,CAASnC,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAT,CAAhB;;AACA,gBAAI0B,CAAC,CAACE,WAAF,KAAkB,IAAtB,EAA4B;AACxB3B,2BAAa,CAACI,KAAd,GAAsB,KAAKlE,UAAL,CAAgByE,MAAhB,CAAuBc,CAAvB,CAAtB;AACH,aAFD,MAEO;AACHzB,2BAAa,CAACI,KAAd,GAAsB,EAAtB;AACH;;AACDJ,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,WAAL;AACI,kBAAM4B,CAAC,GAAS,IAAIF,IAAJ,CAASnC,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAT,CAAhB;AACAC,yBAAa,CAACI,KAAd,GAAsB,KAAK7D,UAAL,CAAgBoE,MAAhB,CAAuBiB,CAAvB,CAAtB;AACA5B,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,eAAL;AACI,kBAAM6B,EAAE,GAAS,IAAIH,IAAJ,CAASnC,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAT,CAAjB;;AACA,gBAAI8B,EAAE,CAACF,WAAH,KAAmB,IAAvB,EAA6B;AACzB3B,2BAAa,CAACI,KAAd,GAAsB,KAAKzD,cAAL,CAAoBgE,MAApB,CAA2BkB,EAA3B,CAAtB;AACH,aAFD,MAEO;AACH7B,2BAAa,CAACI,KAAd,GAAsB,EAAtB;AACH;;AACDJ,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,aAAL;AACIA,yBAAa,CAACI,KAAd,GAAsBb,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,kBAAL;AACA,eAAK,mBAAL;AACA,eAAK,WAAL;AACA,eAAK,iBAAL;AACI;;AACJ,eAAK,YAAL;AACI,gBAAIrC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBa,kBAArB,GAA0C,CAA9C,EAAiD;AAC7C,oBAAMC,MAAM,GAA8B,KAAKC,gBAAL,CAAsBvB,IAAI,CAACE,WAA3B,EAAwC9B,SAAS,CAAC2B,OAAlD,EAA2DS,CAA3D,CAA1C;AACAC,2BAAa,CAACe,OAAd,GAAwBF,MAAM,CAACE,OAA/B;;AACA,kBAAIF,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,CAA1B,MAAiC,MAArC,EAA6C;AACzCjB,6BAAa,CAACkB,gBAAd,GAAiCL,MAAM,CAACG,KAAxC;AACAhB,6BAAa,CAACmB,UAAd,GAA2B,UAA3B;AACH,eAHD,MAGO,IAAIN,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,EAA1B,MAAkC,aAAtC,EAAqD;AACxDjB,6BAAa,CAACkB,gBAAd,GAAiCL,MAAM,CAACO,MAAxC;AACApB,6BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuBJ,MAAM,CAACG,KAAP,CAAaM,OAAb,CAAqB,GAArB,IAA4B,CAAnD,CAAvC;AACAtB,6BAAa,CAACQ,WAAd,GAA4BK,MAAM,CAACU,UAAnC;AACAvB,6BAAa,CAACmB,UAAd,GAA2B,kBAA3B;AACH,eALM,MAKA,IAAIN,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,EAA1B,MAAkC,YAAtC,EAAoD;AACvDjB,6BAAa,CAACkB,gBAAd,GAAiC,GAAjC;AACAlB,6BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACO,MAA9C;AACApB,6BAAa,CAACmB,UAAd,GAA2B,iBAA3B;AACH,eAJM,MAIA;AACHnB,6BAAa,CAACkB,gBAAd,GAAiC,IAAI,KAAKtD,YAAY,IAAIiD,MAAM,CAACG,KAAP,CAAaQ,WAAb,EAA0B,EAApF;AACAxB,6BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACO,MAA9C;AACApB,6BAAa,CAACmB,UAAd,GAA2B,OAA3B;AACH;AACJ;;AACDnB,yBAAa,CAACI,KAAd,GAAsBb,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAACC,UAAd,GAA2BtC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAAhD;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ,eAAK,iBAAL;AACIA,yBAAa,CAACQ,WAAd,GAA4B7C,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqB+B,cAArB,CAAoCN,WAApC,EAA5B;AACAxB,yBAAa,CAACI,KAAd,GAAsBb,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAACC,UAAd,GAA2BtC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBgC,UAAhD;AACA/B,yBAAa,CAACE,WAAd,GAA4BvC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBiC,WAAjD;AACAnC,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AACA;;AACJ;AACIA,yBAAa,CAACI,KAAd,GAAsBb,IAAI,CAACE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,yBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,yBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAZ,sBAAU,CAACC,OAAX,CAAmBY,IAAnB,CAAwBV,aAAxB;AA/HR;AAiIH;;AAED,WAAKiC,IAAL,CAAUvB,IAAV,CAAeb,UAAf;AACH;;AAED,QAAI,KAAK7B,SAAL,IAAkB,KAAKiE,IAAL,CAAUtG,MAAV,GAAmB,CAAzC,EAA4C;AACxC,WAAKuG,MAAL,GAAc,KAAKD,IAAL,CAAUE,GAAV,EAAd;AACH;AACJ;;AAEDC,aAAW,CAACC,MAAD,EAAgCC,aAA4B,IAA5D,EAAkEC,UAA6B,IAA/F,EAAmG;AAC1G,QAAIF,MAAM,CAACtB,OAAX,EAAoB;AAChB,UAAIwB,OAAJ,EAAa;AACTA,eAAO,CAACC,IAAR,GAAe,IAAf;AACH;;AACD,cAAQH,MAAM,CAAClB,UAAf;AACI,aAAK,QAAL;AACA,aAAK,OAAL;AACI,eAAKsB,SAAL,CAAeJ,MAAM,CAACnB,gBAAtB,EAAwCmB,MAAM,CAAChB,sBAA/C,EAAuEkB,OAAvE;AACA;;AACJ,aAAK,WAAL;AACA,aAAK,UAAL;AACI,eAAKrH,OAAL,CAAawH,aAAb,CAA2BL,MAAM,CAACnB,gBAAlC;;AACA;;AACJ,aAAK,mBAAL;AACA,aAAK,kBAAL;AACI,eAAKyB,aAAL,CAAmBN,MAAM,CAACnB,gBAA1B,EAA4CmB,MAAM,CAAChB,sBAAnD,EAA2EgB,MAAM,CAAC7B,WAAlF;AACA;;AACJ,aAAK,iBAAL;AACA,aAAK,kBAAL;AACI,eAAKiC,SAAL,CAAeJ,MAAM,CAACnB,gBAAtB,EAAwCmB,MAAM,CAAChB,sBAA/C,EAAuEkB,OAAvE;AACA;AAhBR;AAkBH,KAtBD,MAsBO;AACH,cAAQF,MAAM,CAAClB,UAAf;AACI,aAAK,QAAL;AACA,aAAK,OAAL;AACI,eAAKjG,OAAL,CAAa0H,QAAb,CAAsB,CAACP,MAAM,CAACnB,gBAAR,CAAtB,EAAiD;AAC7C2B,uBAAW,EAAER,MAAM,CAAChB;AADyB,WAAjD;;AAGA;;AACJ,aAAK,WAAL;AACA,aAAK,UAAL;AACI,eAAKnG,OAAL,CAAawH,aAAb,CAA2BL,MAAM,CAACnB,gBAAlC;;AACA;;AACJ,aAAK,mBAAL;AACA,aAAK,kBAAL;AACI,eAAKyB,aAAL,CAAmBN,MAAM,CAACnB,gBAA1B,EAA4CmB,MAAM,CAAChB,sBAAnD,EAA2EgB,MAAM,CAAC7B,WAAlF;AACA;;AACJ,aAAK,iBAAL;AACA,aAAK,kBAAL;AACI,eAAKsC,gBAAL,CAAsBT,MAAM,CAAChB,sBAA7B,EAAqDiB,UAArD;AACA;AAlBR;AAoBH;AACJ;;AAEDQ,kBAAgB,CAACC,EAAD,EAAahG,GAAb,EAAwB;AACpC,QAAI,CAACgG,EAAD,IAAOA,EAAE,KAAK,EAAlB,EAAsB;AAClB;AACH;;AAED,QAAIC,YAAY,GAAY,KAA5B;AACA,UAAMC,GAAG,GAAuB,KAAKhB,IAAL,CAAU,CAAV,CAAhC;AACAgB,OAAG,CAACnD,OAAJ,CAAY3C,OAAZ,CAAqB+F,GAAD,IAA+B;AAC/C,UAAIA,GAAG,CAAC5C,IAAJ,IAAY4C,GAAG,CAAC5C,IAAJ,KAAa,EAA7B,EAAiC;AAC7B,cAAM6C,KAAK,GAAG,KAAKnI,WAAL,CAAiBoI,aAAjB,CAA+BC,aAA/B,CAA6C,IAAIH,GAAG,CAAC5C,IAAI,IAAIvD,GAAG,EAAhE,CAAd;;AACA,YAAIoG,KAAJ,EAAW;AACP,cAAIA,KAAK,CAACG,QAAN,IAAkBH,KAAK,CAAC/C,KAAN,KAAgB,EAAtC,EAA0C;AACtC4C,wBAAY,GAAG,IAAf;;AACA,iBAAK/H,SAAL,CAAesI,QAAf,CAAwBJ,KAAxB,EAA+B,cAA/B,EAA+C,KAA/C;;AACA,iBAAKlI,SAAL,CAAesI,QAAf,CAAwBJ,KAAxB,EAA+B,cAA/B,EAA+C,OAA/C;;AACA;AACH;;AACD,eAAKlI,SAAL,CAAesI,QAAf,CAAwBJ,KAAxB,EAA+B,cAA/B,EAA+C,EAA/C;;AACA,eAAKlI,SAAL,CAAesI,QAAf,CAAwBJ,KAAxB,EAA+B,cAA/B,EAA+C,EAA/C;;AAEAJ,YAAE,GAAGA,EAAE,CAACS,OAAH,CAAW,MAAMN,GAAG,CAAC5C,IAAV,GAAiB,GAA5B,EAAiC6C,KAAK,CAAC/C,KAAvC,CAAL;AACH;AACJ;AACJ,KAhBD;;AAkBA,QAAI,CAAC4C,YAAL,EAAmB;AACf,WAAKjI,YAAL,CAAkB+H,gBAAlB,CAAmCC,EAAnC,EAAuC,EAAvC,EAA2CU,SAA3C,CAAqD,MAAK;AACtD,aAAKC,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB;AACH,OAFD;AAGH;AACJ;;AAEOC,WAAS,CAACC,GAAD,EAAY;AACzB,UAAMC,QAAQ,GAAWD,GAAG,CAACvC,OAAJ,CAAY,QAAZ,CAAzB;;AACA,QAAIwC,QAAQ,GAAG,CAAf,EAAkB;AACd,YAAMC,MAAM,GAAWF,GAAG,CAACvC,OAAJ,CAAY,GAAZ,CAAvB;;AACA,UAAIyC,MAAM,GAAG,CAAb,EAAgB;AACZ,eAAOF,GAAG,CAAC5C,SAAJ,CAAc6C,QAAQ,GAAG,CAAzB,EAA4BC,MAAM,GAAGD,QAArC,CAAP;AACH,OAFD,MAEO;AACH,eAAOD,GAAG,CAAC5C,SAAJ,CAAc6C,QAAQ,GAAG,CAAzB,CAAP;AACH;AACJ;;AACD,WAAO,EAAP;AACH;;AAEOE,mBAAiB,CAACC,MAAD,EAAiB7C,MAAjB,EAA+B;AACpD,UAAM8C,QAAQ,GAA6B,EAA3C;AACAA,YAAQ,CAAC,UAAD,CAAR,GAAuBD,MAAvB;AACAC,YAAQ,CAAC,YAAD,CAAR,GAAyB,MAAzB;AACAA,YAAQ,CAAC,YAAD,CAAR,GAAyB,KAAKpJ,cAAL,CAAoBiB,WAApB,EAAzB;AAEAoI,UAAM,CAACC,IAAP,CAAYhD,MAAZ,EAAoBjE,OAApB,CAA6BkH,GAAD,IAAgB;AACxCH,cAAQ,CAAC,iBAAiBG,GAAG,CAAC7C,WAAJ,EAAlB,CAAR,GAA+CJ,MAAM,CAACiD,GAAD,CAArD;AACH,KAFD;;AAIA,UAAMC,IAAI,GAAkB,KAAKjJ,YAAL,CAAkBkJ,cAAlB,EAA5B;;AACA,QAAID,IAAJ,EAAU;AACNJ,cAAQ,CAAC,cAAD,CAAR,GAA2BI,IAAI,CAACE,MAAhC;AACH;;AAED,WAAON,QAAP;AACH;;AAEKzB,WAAS,CAACgC,WAAD,EAAsBrD,MAAtB,EAAsCsD,iBAAoC,IAA1E,EAA8E;AAAA;;AAAA;AACzF,YAAMT,MAAM,GAAW,KAAI,CAACL,SAAL,CAAea,WAAf,CAAvB;;AACA,YAAMP,QAAQ,GAAG,KAAI,CAACF,iBAAL,CAAuBC,MAAvB,EAA+B7C,MAA/B,CAAjB;;AACA,YAAMuD,UAAU,SACNtN,oDAAa,CAAC,KAAI,CAAC+D,cAAL,CAAoBwJ,SAApB,CAA8BX,MAA9B,CAAD,CAAb,CAAqDY,IAArD,CAA2DC,MAAD,IAA0BA,MAApF,CADV;AAEA,YAAMC,WAAW,SACP1N,oDAAa,CAAC,KAAI,CAAC8D,YAAL,CAAkB6J,UAAlB,CAA6Bf,MAA7B,CAAD,CAAb,CAAoDY,IAApD,CAA0DI,OAAD,IAA0BA,OAAO,CAAC3F,OAA3F,CADV;AAEA,YAAM4F,WAAW,GAAWH,WAAW,CAAC,CAAD,CAAX,CAAeI,WAA3C;AACA,YAAMC,MAAM,GAAWL,WAAW,CAAC,CAAD,CAAX,CAAeM,MAAtC;AAEA,YAAMC,OAAO,SACHjO,oDAAa,CAAC,KAAI,CAAC0D,YAAL,CAAkBwK,eAAlB,CAAkCH,MAAlC,EAA0CF,WAA1C,EAAuDhB,QAAvD,CAAD,CAAb,CAAgFW,IAAhF,CAAsFW,CAAD,IAA0BA,CAA/G,CADV;;AAEA,UAAId,cAAJ,EAAoB;AAChBA,sBAAc,CAAClC,IAAf,GAAsB,KAAtB;AACH;;AAED,WAAI,CAACiD,gBAAL,CAAsB9B,IAAtB,CAA2B;AACvB+B,aAAK,EAAEf,UAAU,CAACgB,KADK;AAEvBC,wBAAgB,EAAEN;AAFK,OAA3B;AAhByF;AAoB5F;;AAED3C,eAAa,CAACkD,QAAD,EAAmBtE,UAAnB,EAAuCuE,QAAvC,EAAuD;AAChE,UAAMC,OAAO,GAAYF,QAAQ,CAACrE,WAAT,GAAuBwE,QAAvB,CAAgC,MAAhC,CAAzB;;AACA,SAAKjL,YAAL,CAAkB4H,aAAlB,CAAgCkD,QAAhC,EAA0CC,QAA1C,EAAoDvE,UAApD,EAAgEwE,OAAhE,EAAyEtC,SAAzE,CACKwC,QAAD,IAAkB;AACd,UAAI,CAACA,QAAL,EAAe;AACXC,aAAK,CAAC,sBAAD,CAAL;AACH;;AAED,UAAIH,OAAJ,EAAa;AACT;AACA;AACA;AACA;AAEA,cAAMI,YAAY,GAAS,KAAKC,SAAL,CAAeH,QAAf,EAAyB,0BAAzB,EAAqD,GAArD,CAA3B;AACAnP,QAAAA,kDAAM,CAACqP,YAAD,EAAeN,QAAf,CAAN;AACH,OARD,MAQO;AACH/O,QAAAA,kDAAM,CAACmP,QAAD,EAAWJ,QAAX,CAAN;AACH;AACJ,KAjBL,EAkBKQ,KAAD,IAAe;AACXH,WAAK,CAAC,sBAAD,CAAL;AACH,KApBL;AAsBH;;AAEDE,WAAS,CAACE,OAAD,EAAkBC,WAAlB,EAAuCC,SAAvC,EAAwD;AAC7DD,eAAW,GAAGA,WAAW,IAAI,EAA7B;AACAC,aAAS,GAAGA,SAAS,IAAI,GAAzB;AAEA,UAAMC,cAAc,GAAWC,IAAI,CAACJ,OAAD,CAAnC;AACA,UAAMK,UAAU,GAAG,EAAnB;;AAEA,SAAK,IAAIC,MAAM,GAAG,CAAlB,EAAqBA,MAAM,GAAGH,cAAc,CAAC9K,MAA7C,EAAqDiL,MAAM,IAAIJ,SAA/D,EAA0E;AACtE,YAAMK,KAAK,GAAWJ,cAAc,CAACI,KAAf,CAAqBD,MAArB,EAA6BA,MAAM,GAAGJ,SAAtC,CAAtB;AAEA,YAAMM,WAAW,GAAG,IAAIC,KAAJ,CAAUF,KAAK,CAAClL,MAAhB,CAApB;;AACA,WAAK,IAAIoE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8G,KAAK,CAAClL,MAA1B,EAAkCoE,CAAC,EAAnC,EAAuC;AACnC+G,mBAAW,CAAC/G,CAAD,CAAX,GAAiB8G,KAAK,CAACG,UAAN,CAAiBjH,CAAjB,CAAjB;AACH;;AAED,YAAMkH,SAAS,GAAe,IAAIC,UAAJ,CAAeJ,WAAf,CAA9B;AAEAH,gBAAU,CAACjG,IAAX,CAAgBuG,SAAhB;AACH;;AAED,UAAME,IAAI,GAAS,IAAIC,IAAJ,CAAST,UAAT,EAAqB;AAAEU,UAAI,EAAEd;AAAR,KAArB,CAAnB;AACA,WAAOY,IAAP;AACH;;AAEO9H,cAAY,CAACiI,OAAD,EAA2B;AAC3C,SAAK,MAAMC,MAAX,IAAqBD,OAArB,EAA8B;AAC1B,UAAI,CAACC,MAAM,CAACpH,UAAP,CAAkBqH,UAAlB,CAA6B,QAA7B,CAAL,EAA6C;AACzC,YAAID,MAAM,CAACpH,UAAP,CAAkBqB,WAAlB,OAAoC,WAApC,IAAmD+F,MAAM,CAACpH,UAAP,CAAkBqB,WAAlB,OAAoC,iBAA3F,EAA8G;AAC1G,eAAKxE,OAAL,CAAa0D,IAAb,CAAkB;AACd+G,gBAAI,EAAEF,MAAM,CAAC5B,KADC;AAEdlI,qBAAS,EAAE8J,MAAM,CAAClH,SAFJ;AAGdpD,iBAAK,EAAEsK,MAAM,CAAC9G,KAHA;AAIdiH,oBAAQ,EAAEH,MAAM,CAACI,QAJH;AAKdC,oBAAQ,EAAEL,MAAM,CAACM,QALH;AAMdC,yBAAa,EAAEP,MAAM,CAACpH,UAAP,CAAkBqB,WAAlB,OAAoC;AANrC,WAAlB;AAQH;AACJ;AACJ;AACJ;;AAEOV,kBAAgB,CAACiH,WAAD,EAAqBC,iBAArB,EAA2DC,WAA3D,EAA8E;AAClG,UAAMC,YAAY,GAAWF,iBAAiB,CAACC,WAAD,CAAjB,CAA+BrH,kBAA5D;;AACA,QAAIsH,YAAY,KAAK,CAArB,EAAwB;AACpB,aAAO,IAAP;AACH,KAFD,MAEO;AACH,WAAK,IAAInI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiI,iBAAiB,CAACrM,MAAtC,EAA8C,EAAEoE,CAAhD,EAAmD;AAC/C,YAAIiI,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBoI,SAArB,KAAmCD,YAAvC,EAAqD;AACjD,cAAIF,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBI,UAArB,KAAoC,mBAAxC,EAA6D;AACzD,kBAAMU,MAAM,GAA8B,KAAKuH,QAAL,CAAcL,WAAW,CAAChI,CAAD,CAAzB,CAA1C;AACAc,kBAAM,CAACO,MAAP,CAAc,IAAd,IAAsB,CAAtB;AACAP,kBAAM,CAACE,OAAP,GAAiBiH,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBsI,OAAtC;AACA,mBAAOxH,MAAP;AACH,WALD,MAKO,IAAImH,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBI,UAArB,KAAoC,WAAxC,EAAqD;AACxD,kBAAMU,MAAM,GAA8B,KAAKuH,QAAL,CAAcL,WAAW,CAAChI,CAAD,CAAzB,CAA1C;AACAc,kBAAM,CAACE,OAAP,GAAiBiH,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBsI,OAAtC;AACA,mBAAOxH,MAAP;AACH,WAJM,MAIA,IAAImH,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBI,UAArB,KAAoC,iBAAxC,EAA2D;AAC9D,mBAAO;AACHa,mBAAK,EAAE,YADJ;AAEHI,oBAAM,EAAE2G,WAAW,CAAChI,CAAD,CAFhB;AAGHwB,wBAAU,EAAE,EAHT;AAIHR,qBAAO,EAAEiH,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBsI;AAJ3B,aAAP;AAMH,WAPM,MAOA;AACH,mBAAO;AACHrH,mBAAK,EAAE,gBAAgBgH,iBAAiB,CAACjI,CAAD,CAAjB,CAAqB+B,cADzC;AAEHV,oBAAM,EAAE2G,WAAW,CAAChI,CAAD,CAFhB;AAGHwB,wBAAU,EAAEyG,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBuI,gBAH9B;AAIHvH,qBAAO,EAAEiH,iBAAiB,CAACjI,CAAD,CAAjB,CAAqBsI;AAJ3B,aAAP;AAMH;AACJ;AACJ;;AACD,aAAO,IAAP;AACH;AACJ;;AAEOD,UAAQ,CAACvE,GAAD,EAAY;AACxB,QAAI9G,GAAJ;AAEA,UAAMoE,UAAU,GAA8B,IAAIhK,gFAAJ,EAA9C;;AAEA,QAAI0M,GAAG,CAAC2D,UAAJ,CAAe,MAAf,CAAJ,EAA4B;AACxBrG,gBAAU,CAACH,KAAX,GAAmB6C,GAAnB;AACA1C,gBAAU,CAACC,MAAX,GAAoB,EAApB;AACA,aAAOD,UAAP;AACH;;AAEDpE,OAAG,GAAG8G,GAAG,CAACvC,OAAJ,CAAY,GAAZ,CAAN;;AACA,QAAIvE,GAAG,GAAG,CAAV,EAAa;AACToE,gBAAU,CAACH,KAAX,GAAmB6C,GAAG,CAAC5C,SAAJ,CAAc,CAAd,EAAiBlE,GAAjB,CAAnB;AACA8G,SAAG,GAAGA,GAAG,CAAC5C,SAAJ,CAAclE,GAAG,GAAG,CAApB,CAAN;AACH,KAHD,MAGO;AACHoE,gBAAU,CAACH,KAAX,GAAmB6C,GAAnB;AACA1C,gBAAU,CAACC,MAAX,GAAoB,EAApB;AACA,aAAOD,UAAP;AACH;;AAEDA,cAAU,CAACC,MAAX,GAAoB,EAApB;AACA,UAAMA,MAAM,GAAayC,GAAG,CAAC0E,KAAJ,CAAU,GAAV,CAAzB;AACAnH,UAAM,CAACjE,OAAP,CAAgBqL,KAAD,IAAkB;AAC7BzL,SAAG,GAAGyL,KAAK,CAAClH,OAAN,CAAc,GAAd,CAAN;AACAH,gBAAU,CAACC,MAAX,CAAkBoH,KAAK,CAACvH,SAAN,CAAgB,CAAhB,EAAmBlE,GAAnB,CAAlB,IAA6CyL,KAAK,CAACvH,SAAN,CAAgBlE,GAAG,GAAG,CAAtB,CAA7C;AACH,KAHD;AAKA,WAAOoE,UAAP;AACH;;AAEDsH,UAAQ,CAAC/J,EAAD,EAAaE,SAAb,EAAgC8J,MAAhC,EAAyD;AAC7D,QAAI,KAAKhK,EAAL,KAAYA,EAAZ,IAAkB,KAAKE,SAAL,KAAmB8J,MAAM,CAACC,OAA5C,IAAuD,KAAKjK,EAAL,KAAYgK,MAAM,CAACE,OAA9E,EAAuF;AACnF,WAAK3G,IAAL,CAAU4G,IAAV,CAAe,CAACC,CAAD,EAAwBC,CAAxB,KAAiD;AAC5D,YAAIL,MAAM,CAACM,aAAP,KAAyB,MAA7B,EAAqC;AACjC,cAAIF,CAAC,CAAChJ,OAAF,CAAU4I,MAAM,CAACO,UAAjB,EAA6B7I,KAA7B,GAAqC2I,CAAC,CAACjJ,OAAF,CAAU4I,MAAM,CAACO,UAAjB,EAA6B7I,KAAtE,EAA6E;AACzE,mBAAO,CAAC,CAAR;AACH;;AACD,cAAI0I,CAAC,CAAChJ,OAAF,CAAU4I,MAAM,CAACO,UAAjB,EAA6B7I,KAA7B,GAAqC2I,CAAC,CAACjJ,OAAF,CAAU4I,MAAM,CAACO,UAAjB,EAA6B7I,KAAtE,EAA6E;AACzE,mBAAO,CAAP;AACH;;AACD,iBAAO,CAAP;AACH,SARD,MAQO;AACH,cAAI0I,CAAC,CAAChJ,OAAF,CAAU4I,MAAM,CAACO,UAAjB,EAA6B7I,KAA7B,GAAqC2I,CAAC,CAACjJ,OAAF,CAAU4I,MAAM,CAACO,UAAjB,EAA6B7I,KAAtE,EAA6E;AACzE,mBAAO,CAAC,CAAR;AACH;;AACD,cAAI0I,CAAC,CAAChJ,OAAF,CAAU4I,MAAM,CAACO,UAAjB,EAA6B7I,KAA7B,GAAqC2I,CAAC,CAACjJ,OAAF,CAAU4I,MAAM,CAACO,UAAjB,EAA6B7I,KAAtE,EAA6E;AACzE,mBAAO,CAAP;AACH;;AACD,iBAAO,CAAP;AACH;AACJ,OAlBD;AAmBH;AACJ;;AAEOV,gBAAc,CAACwJ,IAAD,EAAiBvL,SAAjB,EAA6CiC,WAA7C,EAAgE;AAClF,SAAKuJ,mBAAL,CAAyBD,IAAzB,EAA+BvL,SAA/B,EAA0CiC,WAA1C;AACAsJ,QAAI,CAACzN,QAAL,CAAc0B,OAAd,CAAuB3B,IAAD,IAAmB;AACrC,WAAKkE,cAAL,CAAoBlE,IAApB,EAA0BmC,SAA1B,EAAqCiC,WAArC;AACH,KAFD;AAGH;;AAEOuJ,qBAAmB,CAAC3N,IAAD,EAAiBmC,SAAjB,EAA6CiC,WAA7C,EAAgE;AACvFpE,QAAI,CAAC,SAAD,CAAJ,GAAkB,EAAlB;;AACA,SAAK,IAAIuE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,WAApB,EAAiC,EAAEG,CAAnC,EAAsC;AAClC,YAAMC,aAAa,GAA0B,IAAI9I,4EAAJ,EAA7C;AACA8I,mBAAa,CAACC,UAAd,GAA2B,CAAC,CAA5B;AACAD,mBAAa,CAACE,WAAd,GAA4B,CAAC,CAA7B;;AACA,cAAQvC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBI,UAA7B;AACI,aAAK,UAAL;AACIH,uBAAa,CAACI,KAAd,GAAsB5E,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAACM,IAAd,GAAqB3C,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBQ,UAA1C;AACAP,uBAAa,CAACQ,WAAd,GAA4B,UAA5B;AACAR,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,kBAAL;AACIA,uBAAa,CAACI,KAAd,GAAsB5E,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAACM,IAAd,GAAqB3C,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBQ,UAA1C;AACAP,uBAAa,CAACQ,WAAd,GAA4B,kBAA5B;AACAR,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,YAAL;AACIA,uBAAa,CAACI,KAAd,GAAsB,KAAKxE,cAAL,CAAoB+E,MAApB,CAA2BnF,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAA3B,CAAtB;AACAC,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,aAAL;AACI,cAAIrC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBa,kBAArB,GAA0C,CAA9C,EAAiD;AAC7C,kBAAMC,MAAM,GAA8B,KAAKC,gBAAL,CAAsBtF,IAAI,CAACiE,WAA3B,EAAwC9B,SAAS,CAAC2B,OAAlD,EAA2DS,CAA3D,CAA1C;AACAC,yBAAa,CAACe,OAAd,GAAwBF,MAAM,CAACE,OAA/B;;AACA,gBAAIF,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,CAA1B,MAAiC,MAArC,EAA6C;AACzCjB,2BAAa,CAACkB,gBAAd,GAAiCL,MAAM,CAACG,KAAxC;AACAhB,2BAAa,CAACmB,UAAd,GAA2B,WAA3B;AACH,aAHD,MAGO,IAAIN,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,EAA1B,MAAkC,aAAtC,EAAqD;AACxDjB,2BAAa,CAACkB,gBAAd,GAAiCL,MAAM,CAACO,MAAxC;AACApB,2BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuBJ,MAAM,CAACG,KAAP,CAAaM,OAAb,CAAqB,GAArB,IAA4B,CAAnD,CAAvC;AACAtB,2BAAa,CAACQ,WAAd,GAA4BK,MAAM,CAACU,UAAnC;AACAvB,2BAAa,CAACmB,UAAd,GAA2B,mBAA3B;AACH,aALM,MAKA,IAAIN,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,EAA1B,MAAkC,YAAtC,EAAoD;AACvDjB,2BAAa,CAACkB,gBAAd,GAAiC,GAAjC;AACAlB,2BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACO,MAA9C;AACApB,2BAAa,CAACmB,UAAd,GAA2B,kBAA3B;AACH,aAJM,MAIA;AACHnB,2BAAa,CAACkB,gBAAd,GAAiC,IAAI,KAAKtD,YAAY,IAAIiD,MAAM,CAACG,KAAP,CAAaQ,WAAb,EAA0B,EAApF;AACAxB,2BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACO,MAA9C;AACApB,2BAAa,CAACmB,UAAd,GAA2B,QAA3B;AACH;AACJ;;AACDnB,uBAAa,CAACI,KAAd,GAAsB5E,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,WAAL;AACI,gBAAMyB,CAAC,GAAS,IAAIC,IAAJ,CAASlG,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAT,CAAhB;;AACA,cAAI0B,CAAC,CAACE,WAAF,KAAkB,IAAtB,EAA4B;AACxB3B,yBAAa,CAACI,KAAd,GAAsB,KAAKlE,UAAL,CAAgByE,MAAhB,CAAuBc,CAAvB,CAAtB;AACH,WAFD,MAEO;AACHzB,yBAAa,CAACI,KAAd,GAAsB,EAAtB;AACH;;AACDJ,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,WAAL;AACI,gBAAM4B,CAAC,GAAS,IAAIF,IAAJ,CAASlG,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAT,CAAhB;AACAC,uBAAa,CAACI,KAAd,GAAsB,KAAK7D,UAAL,CAAgBoE,MAAhB,CAAuBiB,CAAvB,CAAtB;AACA5B,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,eAAL;AACI,gBAAM6B,EAAE,GAAS,IAAIH,IAAJ,CAASlG,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAT,CAAjB;;AACA,cAAI8B,EAAE,CAACF,WAAH,KAAmB,IAAvB,EAA6B;AACzB3B,yBAAa,CAACI,KAAd,GAAsB,KAAKzD,cAAL,CAAoBgE,MAApB,CAA2BkB,EAA3B,CAAtB;AACH,WAFD,MAEO;AACH7B,yBAAa,CAACI,KAAd,GAAsB,EAAtB;AACH;;AACDJ,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,aAAL;AACIA,uBAAa,CAACI,KAAd,GAAsB5E,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,kBAAL;AACA,aAAK,mBAAL;AACA,aAAK,WAAL;AACA,aAAK,iBAAL;AACA,aAAK,WAAL;AACA,aAAK,iBAAL;AACI;;AACJ,aAAK,YAAL;AACI,cAAIrC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBa,kBAArB,GAA0C,CAA9C,EAAiD;AAC7C,kBAAMC,MAAM,GAA8B,KAAKC,gBAAL,CAAsBtF,IAAI,CAACiE,WAA3B,EAAwC9B,SAAS,CAAC2B,OAAlD,EAA2DS,CAA3D,CAA1C;AACAC,yBAAa,CAACe,OAAd,GAAwBF,MAAM,CAACE,OAA/B;;AACA,gBAAIF,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,CAA1B,MAAiC,MAArC,EAA6C;AACzCjB,2BAAa,CAACkB,gBAAd,GAAiCL,MAAM,CAACG,KAAxC;AACAhB,2BAAa,CAACmB,UAAd,GAA2B,UAA3B;AACH,aAHD,MAGO,IAAIN,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,EAA1B,MAAkC,aAAtC,EAAqD;AACxDjB,2BAAa,CAACkB,gBAAd,GAAiCL,MAAM,CAACO,MAAxC;AACApB,2BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuBJ,MAAM,CAACG,KAAP,CAAaM,OAAb,CAAqB,GAArB,IAA4B,CAAnD,CAAvC;AACAtB,2BAAa,CAACQ,WAAd,GAA4BK,MAAM,CAACU,UAAnC;AACAvB,2BAAa,CAACmB,UAAd,GAA2B,kBAA3B;AACH,aALM,MAKA,IAAIN,MAAM,CAACG,KAAP,CAAaC,SAAb,CAAuB,CAAvB,EAA0B,EAA1B,MAAkC,YAAtC,EAAoD;AACvDjB,2BAAa,CAACkB,gBAAd,GAAiC,GAAjC;AACAlB,2BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACO,MAA9C;AACApB,2BAAa,CAACmB,UAAd,GAA2B,iBAA3B;AACH,aAJM,MAIA;AACHnB,2BAAa,CAACkB,gBAAd,GAAiC,IAAI,KAAKtD,YAAY,IAAIiD,MAAM,CAACG,KAAP,CAAaQ,WAAb,EAA0B,EAApF;AACAxB,2BAAa,CAACqB,sBAAd,GAAuCR,MAAM,CAACO,MAA9C;AACApB,2BAAa,CAACmB,UAAd,GAA2B,OAA3B;AACH;AACJ;;AACDnB,uBAAa,CAACI,KAAd,GAAsB5E,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAACC,UAAd,GAA2BtC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAAhD;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ,aAAK,iBAAL;AACIA,uBAAa,CAACQ,WAAd,GAA4B7C,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqB+B,cAArB,CAAoCN,WAApC,EAA5B;AACAxB,uBAAa,CAACI,KAAd,GAAsB5E,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAACC,UAAd,GAA2BtC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBgC,UAAhD;AACA/B,uBAAa,CAACE,WAAd,GAA4BvC,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBiC,WAAjD;AACAxG,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AACA;;AACJ;AACIA,uBAAa,CAACI,KAAd,GAAsB5E,IAAI,CAACiE,WAAL,CAAiBM,CAAjB,CAAtB;AACAC,uBAAa,CAACvC,SAAd,GAA0BE,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBM,SAA/C;AACAL,uBAAa,CAAC/C,KAAd,GAAsBU,SAAS,CAAC2B,OAAV,CAAkBS,CAAlB,EAAqBU,KAA3C;AACAjF,cAAI,CAAC,SAAD,CAAJ,CAAgBkF,IAAhB,CAAqBV,aAArB;AAjIR;AAmIH;AACJ;;AA3tBqC;;;mBAA7BpF,+BAA6BtD,gEAAAA,CAAAA,mEAAAA,GAAAA,gEAAAA,CAAAA,+DAAAA,GAAAA,gEAAAA,CAAAA,sDAAAA,GAAAA,gEAAAA,CAAAA,qDAAAA,GAAAA,gEAAAA,CAAAA,oDAAAA,GAAAA,gEAAAA,CAAAA,+DAAAA,GAAAA,gEAAAA,CAAAA,mEAAAA,GAAAA,gEAAAA,CAAAA,+DAAAA;AAAA;;;QAA7BsD;AAA6BwO;AAAAC;AAAA3F;AAAA+B;AAAA;AAAA6D;AAAAC;AAAAC;AAAAC;AAAA;AC7B1CnS,MAAAA,wDAAAA;AAEAA,MAAAA,yDAAAA;AAwFAA,MAAAA,yDAAAA;AAoDAA,MAAAA,yDAAAA;;;;AA5IeA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAwFAA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAoDAA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;;;;;;;;;;;;;;;;;;;;;;;ACtIR,MAAM,gCAAgC;IAGzC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAI,CAAC;IAEhD,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;;gHAPQ,gCAAgC;8HAAhC,gCAAgC;QCR7C,oEAA4E;QAC5E,uEAA0B;QACtB,qEAAmC;QACvC,4DAAI;;QADM,0DAAqB;QAArB,gJAAqB;;;;;;;;;;;;;;;;;;;;;;;;;ACFwD;AACnD;AAGO;;;;;;;;ICJ3C,oEAAgE;IAAA,uDAAiB;IAAA,4DAAI;;;IAArB,0DAAiB;IAAjB,qFAAiB;;;;IAiB7D,oEACiE;;;IADtB,qKAA4C;;;IAD3F,wEAAsE;IAClE,4JACiE;IACrE,qEAAe;;;IAFL,0DAAmC;IAAnC,qGAAmC;;;IAKrC,uEAA+B;IAAA,uDAAa;IAAA,4DAAO;;;IAApB,0DAAa;IAAb,6EAAa;;;IAC5C,uEAAkF;;;IAApC,iFAAqB;;;IAFvE,wEAAqD;IACjD,4KAAmD;IACnD,8KAAkF;IACtF,qEAAe;;;IAFJ,0DAAsB;IAAtB,qFAAsB;IACrB,0DAAoC;IAApC,sGAAoC;;;IAEhD,wEAA4H;IACxH,uEAAM;IAAA,uDAAa;IAAA,4DAAO;IAC9B,qEAAe;;;IADL,0DAAa;IAAb,6EAAa;;;IAGnB,uEAA8C;IAC1C,qEAAgD;IACpD,4DAAO;;;;IADE,0DAAiC;IAAjC,kKAAiC;;;IAF9C,wEAA0H;IACtH,4KAEO;IACX,qEAAe;;;IAHJ,0DAAmC;IAAnC,qGAAmC;;;;IAK1C,uEAAyC;IAEjC,qEAAgD;IACpD,4DAAI;;;;IAFD,0DAAuC;IAAvC,sKAAuC;IACjC,0DAAiC;IAAjC,kKAAiC;;;IAG9C,uEAA4C;IAEpC,qEAAgD;IACpD,4DAAI;;;;IAFD,0DAA6B;IAA7B,sJAA6B;IACvB,0DAAiC;IAAjC,kKAAiC;;;IAG9C,uEAA0C;IACgD,uDAAa;IAAA,4DAAI;;;IAApG,0DAAuC;IAAvC,sKAAuC;IAA4C,0DAAa;IAAb,6EAAa;;;IAEvG,uEAA6C;IACR,uDAAa;IAAA,4DAAI;;;IAA/C,0DAA6B;IAA7B,sJAA6B;IAAC,0DAAa;IAAb,6EAAa;;;;IAElD,uEAAmD;IACjB,0eAAS,+DAAiD,IAAC;IACrF,qEAAgD;IACpD,4DAAI;;;;IADK,0DAAiC;IAAjC,kKAAiC;;;;IAG9C,uEAAoD;IAClB,0eAAS,+DAAiD,IAAC;IACrF,uDACJ;IAAA,4DAAI;;;IADA,0DACJ;IADI,wFACJ;;;;IAEJ,uEAAqD;IACnB,mbAAS,iGAAgF,IAAC;IACpH,uDACJ;IAAA,4DAAI;;;IADA,0DACJ;IADI,wFACJ;;;IAEJ,uEAAoD;IAE5C,qEAA0E;IAC9E,4DAAI;;;;IADK,0DAA2D;IAA3D,4LAA2D;;;IAlC5E,wEAA8D;IAC1D,4KAIO;IACP,4KAIO;IACP,4KAEO;IACP,4KAEO;IACP,4KAIO;IACP,4KAIO;IACP,4KAIO;IACP,4KAIO;IACX,qEAAe;;;IApCJ,0DAAgC;IAAhC,+FAAgC;IAKhC,0DAAmC;IAAnC,kGAAmC;IAKnC,0DAAiC;IAAjC,gGAAiC;IAGjC,0DAAoC;IAApC,mGAAoC;IAGpC,0DAA0C;IAA1C,yGAA0C;IAK1C,0DAA2C;IAA3C,0GAA2C;IAK3C,0DAA4C;IAA5C,2GAA4C;IAK5C,0DAA2C;IAA3C,0GAA2C;;;IA5CtD,6KAGe;IACf,6KAEe;IACf,6KAIe;IACf,6KAqCe;;;IAjDA,mGAAoC;IAIpC,0DAA2G;IAA3G,mLAA2G;IAG3G,0DAAyG;IAAzG,iLAAyG;IAKzG,0DAA6C;IAA7C,+GAA6C;;;;IA9BxE,wEAA0C;IACtC,wEAA6F;IACzF,uDACJ;IAAA,4DAAK;IACL,wEAAkG;IAS9F,+JAGe;IACf,yOAmDc;IAClB,4DAAK;IACT,qEAAe;;;;;IArEuB,0DAA0D;IAA1D,uKAA0D;IACxF,0DACJ;IADI,wFACJ;IACI,0DAAkC;IAAlC,yFAAkC;IAAC,uKAA0D;IAS9E,0DAAmC;IAAnC,gGAAmC;;;IAqElD,wEAAsE;IAClE,oEACqG;IACzG,qEAAe;;;IAFN,0DAA4C;IAA5C,qKAA4C;;;IAIjD,wEAA+D;IAC3D,uEAAM;IAAA,uDAAa;IAAA,4DAAO;IAC9B,qEAAe;;;IADL,0DAAa;IAAb,6EAAa;;;IAGnB,uEAAyC;IAEjC,qEAAgD;IACpD,4DAAI;;;;IAFD,0DAAuC;IAAvC,sKAAuC;IACjC,0DAAiC;IAAjC,kKAAiC;;;IAG9C,uEAA4C;IAEpC,qEAAgD;IACpD,4DAAI;;;;IAFD,0DAA6B;IAA7B,sJAA6B;IACvB,0DAAiC;IAAjC,kKAAiC;;;IAG9C,uEAA0C;IACgD,uDAAa;IAAA,4DAAI;;;IAApG,0DAAuC;IAAvC,sKAAuC;IAA4C,0DAAa;IAAb,6EAAa;;;IAEvG,uEAA6C;IACR,uDAAa;IAAA,4DAAI;;;IAA/C,0DAA6B;IAA7B,sJAA6B;IAAC,0DAAa;IAAb,6EAAa;;;;IAElD,uEAAqD;IACnB,mbAAS,iGAAgF,IAAC;IACpH,uDACJ;IAAA,4DAAI;;;IADA,0DACJ;IADI,wFACJ;;;;IAEJ,uEAAoD;IAClB,mbAAS,iGAAgF,IAAC;IACpH,qEAA0E;IAC9E,4DAAI;;;;IADK,0DAA2D;IAA3D,4LAA2D;;;IAxB5E,wEAA8D;IAC1D,4KAIO;IACP,4KAIO;IACP,4KAEO;IACP,4KAEO;IACP,4KAIO;IACP,4KAIO;IACX,qEAAe;;;IA1BJ,0DAAgC;IAAhC,+FAAgC;IAKhC,0DAAmC;IAAnC,kGAAmC;IAKnC,0DAAiC;IAAjC,gGAAiC;IAGjC,0DAAoC;IAApC,mGAAoC;IAGpC,0DAA4C;IAA5C,2GAA4C;IAK5C,0DAA2C;IAA3C,0GAA2C;;;IAzBtD,6KAEe;IACf,6KA2Be;;;IA9BA,gHAA8C;IAG9C,0DAA6C;IAA7C,+GAA6C;;;IAnBxE,wEAA0C;IACtC,qEAAI;IACoC,uDAAa;IAAA,4DAAQ;IASzD,+JAGe;IACf,yOAgCc;IAClB,4DAAK;IACT,qEAAe;;;;IA/C6B,0DAAa;IAAb,6EAAa;IASlC,0DAAmC;IAAnC,gGAAmC;;;IAnF9D,qEAA+C;IAC3C,iJAsEe;IACf,gJAiDe;IACnB,4DAAK;;;IAzHc,0DAAyB;IAAzB,4FAAyB;IAuEzB,0DAAyB;IAAzB,4FAAyB;;AD9DhD,MAAM,SAAS;CAad;AAED,MAAM,UAAU;CAIf;AAOM,MAAM,6BAA6B;IAkBtC,YACY,aAA4B,EAC5B,UAAsB,EACtB,WAAwB,EACxB,QAAmB,EACpB,SAAuB;QAJtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,eAAU,GAAV,UAAU,CAAY;QACtB,gBAAW,GAAX,WAAW,CAAa;QACxB,aAAQ,GAAR,QAAQ,CAAW;QACpB,cAAS,GAAT,SAAS,CAAc;QAtBxB,gBAAW,GAAG,IAAI,uDAAY,EAAW,CAAC;QAC1C,qBAAgB,GAAwC,IAAI,uDAAY,EAAyB,CAAC;QAM5G,SAAI,GAAgB,EAAE,CAAC;QAIvB,kBAAa,GAAW,mEAAyB,CAAC;QAClD,uBAAkB,GAAW,wEAA8B,CAAC;QAYxD,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE;YAC1E,qBAAqB;YACrB,iBAAiB;YACjB,4BAA4B;YAC5B,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE;YACxE,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE;YACxE,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE;YAC5E,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,SAA0B;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAEnC,IAAI,UAAU,GAAW,CAAC,CAAC;QAC3B,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;SAC7D;QAED,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,oBAAoB,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACvC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/C,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YACpB,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAErB,MAAM,IAAI,GAAuB,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE3D,QAAQ,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;gBACrC,KAAK,UAAU;oBACX,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAChC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC/C,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC3C,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC;oBAC7B,MAAM;gBACV,KAAK,kBAAkB;oBACnB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAChC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC/C,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC3C,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC;oBACrC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,MAAM;gBACV,KAAK,YAAY;oBACb,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,MAAM;gBACV,KAAK,aAAa;oBACd,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,EAAE;wBAC7C,MAAM,MAAM,GAAe,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC7E,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE;4BACrB,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;yBACvB;6BAAM;4BACH,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;gCACzC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;gCACpC,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;6BAChC;iCAAM,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,aAAa,EAAE;gCACxD,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;gCACrC,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gCACnF,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;gCACpC,GAAG,CAAC,UAAU,GAAG,mBAAmB,CAAC;6BACxC;iCAAM,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,YAAY,EAAE;gCACvD,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC;gCAC3B,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;gCAC3C,GAAG,CAAC,UAAU,GAAG,kBAAkB,CAAC;6BACvC;iCAAM;gCACH,GAAG,CAAC,gBAAgB,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gCAC7E,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;gCAC3C,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC;6BAC7B;yBACJ;qBACJ;oBACD,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM;gBACV,KAAK,WAAW;oBACZ,MAAM,CAAC,GAAS,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE;wBACxB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;qBACzC;yBAAM;wBACH,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;qBAClB;oBACD,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,MAAM;gBACV,KAAK,WAAW;oBACZ,MAAM,CAAC,GAAS,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9C,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,MAAM;gBACV,KAAK,eAAe;oBAChB,MAAM,EAAE,GAAS,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE;wBACzB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;qBAC9C;yBAAM;wBACH,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;qBAClB;oBACD,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,MAAM;gBACV,KAAK,aAAa;oBACd,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM;gBACV,KAAK,kBAAkB,CAAC;gBACxB,KAAK,mBAAmB,CAAC;gBACzB,KAAK,WAAW,CAAC;gBACjB,KAAK,iBAAiB;oBAClB,MAAM;gBACV,KAAK,YAAY;oBACb,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,EAAE;wBAC7C,MAAM,MAAM,GAAe,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC7E,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE;4BACrB,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;yBACvB;6BAAM;4BACH,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;gCACzC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;gCACpC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;6BAC/B;iCAAM,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,aAAa,EAAE;gCACxD,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;gCACrC,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gCACnF,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;gCACpC,GAAG,CAAC,UAAU,GAAG,kBAAkB,CAAC;6BACvC;iCAAM,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,YAAY,EAAE;gCACvD,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC;gCAC3B,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;gCAC3C,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAAC;6BACtC;iCAAM;gCACH,GAAG,CAAC,gBAAgB,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gCAC7E,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;gCAC3C,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;6BAC5B;yBACJ;qBACJ;oBACD,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC5C,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM;gBACV,KAAK,iBAAiB;oBAClB,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;oBACpE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAChC,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACjD,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACnD,MAAM;gBACV;oBACI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aACvC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvB;IACL,CAAC;IAED,gBAAgB,CAAC,EAAU,EAAE,GAAW;QACpC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAClB,OAAO,CAAC,oBAAoB;SAC/B;QAED,IAAI,YAAY,GAAY,KAAK,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAc,EAAE,EAAE;YACjC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;gBACjF,IAAI,KAAK,EAAE;oBACP,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;wBACtC,YAAY,GAAG,IAAI,CAAC;wBACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;wBACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;wBACvD,OAAO;qBACV;oBACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;oBAGlD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;iBACtD;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;gBACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,gBAAgB,CAAC,IAAwB,EAAE,iBAAoC,EAAE,WAAmB;QACxG,MAAM,YAAY,GAAW,iBAAiB,CAAC,WAAW,CAAC,CAAC,kBAAkB,CAAC;QAC/E,IAAI,YAAY,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC;SACf;aAAM;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBAC/C,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,EAAE;oBACjD,gDAAgD;oBAChD,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,mBAAmB,EAAE;wBACzD,MAAM,MAAM,GAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxB,OAAO,MAAM,CAAC;qBACjB;yBAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,WAAW,EAAE;wBACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC7C;yBAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,iBAAiB,EAAE;wBAC9D,OAAO;4BACH,KAAK,EAAE,YAAY;4BACnB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;4BAC3B,UAAU,EAAE,EAAE;yBACjB,CAAC;qBACL;yBAAM;wBACH,OAAO;4BACH,KAAK,EAAE,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,cAAc;4BAC1D,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;4BAC3B,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,gBAAgB;yBACpD,CAAC;qBACL;iBACJ;aACJ;YACD,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAEO,QAAQ,CAAC,GAAW;QACxB,IAAI,GAAW,CAAC;QAEhB,MAAM,UAAU,GAAe,IAAI,UAAU,EAAE,CAAC;QAEhD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACxB,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;YACvB,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;YACvB,OAAO,UAAU,CAAC;SACrB;QAED,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,GAAG,GAAG,CAAC,EAAE;YACT,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SAChC;aAAM;YACH,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;YACvB,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;YACvB,OAAO,UAAU,CAAC;SACrB;QAED,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAa,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;YAC7B,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAAgB;QAChE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,CACpE,CAAC,QAAa,EAAE,EAAE;YACd,IAAI,CAAC,QAAQ,EAAE;gBACX,KAAK,CAAC,sBAAsB,CAAC,CAAC;aACjC;YAED,kDAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACX,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAClC,CAAC,CACJ,CAAC;IACN,CAAC;;0GAlTQ,6BAA6B;2HAA7B,6BAA6B;QCtC1C,qHAAqF;QACrF,2EAA2B;QACvB,uHA0HK;QACT,4DAAQ;;QA7HJ,kIAA0D;QAEtC,0DAAS;QAAT,6EAAS;;;;;;;;;;;;;;;;;;;;ACQV;AAGsF;AACS;AACT;;AAQtG,MAAM,yBAAyB;IAKlC,YACY,wBAAkD,EAClD,gBAAkC;QADlC,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,qBAAgB,GAAhB,gBAAgB,CAAkB;QANrC,SAAI,GAAsB,EAAE,CAAC;QAC5B,gBAAW,GAA0B,IAAI,uDAAY,EAAW,CAAC;QACjE,qBAAgB,GAAwC,IAAI,uDAAY,EAAyB,CAAC;IAM5G,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC/B,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,KAAK,EAAE,EAAE;oBAC/C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;iBACvC;gBAED,IAAI,SAAS,CAAC,UAAU,KAAK,MAAM,EAAE;oBACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBAC5B;qBAAM,IAAI,SAAS,CAAC,UAAU,KAAK,MAAM,EAAE;oBACxC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBAC5B;aACJ;SACJ;IACL,CAAC;IAEO,WAAW,CAAC,OAAe;QAC/B,MAAM,OAAO,GACb,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,8HAAgC,CAAC,CAAC;QACxF,MAAM,GAAG,GAAmD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE3G,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,QAAQ,CAAC,SAA0B;QACvC,MAAM,OAAO,GACb,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,qHAA6B,CAAC,CAAC;QACrF,MAAM,GAAG,GAAgD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAExG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,WAAoB,EAAE,EAAE;YACxD,IAAI,WAAW,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;iBAAM;gBACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAA8B,EAAE,EAAE;YACvE,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACvC;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,QAAQ,CAAC,SAA0B;QACvC,MAAM,OAAO,GACb,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,qHAA6B,CAAC,CAAC;QACrF,MAAM,GAAG,GAAgD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAExG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,WAAoB,EAAE,EAAE;YACxD,IAAI,WAAW,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;iBAAM;gBACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAA8B,EAAE,EAAE;YACvE,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACvC;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;;kGAnFQ,yBAAyB;uHAAzB,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBS;AACY;AACJ;AACI;AACJ;AACR;AAE0B;AACmC;AACS;AACT;AACd;AACR;AACF;AACb;AACd;AACS;AACN;AACQ;;AA+B7D,MAAM,eAAe;;8EAAf,eAAe;6GAAf,eAAe;kHAJb;QACP,iFAAW;KACd,YAbQ;YACL,0DAAY;YACZ,0DAAY;YACZ,sEAAe;YACf,sEAAe;YACf,kEAAa;YACb,kEAAa;SAChB;oIAQQ,eAAe,mBA3BpB,uGAAyB;QACzB,8HAAgC;QAChC,qHAA6B;QAC7B,qHAA6B;QAC7B,+FAAuB;QACvB,6FAAsB;QACtB,2EAAiB;QACjB,kEAAc;QACd,gFAAkB;QAClB,sEAAe;QACf,8EAAiB,aAGjB,0DAAY;QACZ,0DAAY;QACZ,sEAAe;QACf,sEAAe;QACf,kEAAa;QACb,kEAAa,aAGb,uGAAyB;;;;;;;;;;;;;;;;;;;AC1CU;AAC0B;;;;ICD7D,oEAAgG;;;IAAnD,sFAAwB;IAA3C,wIAAW;;;IAG7C,oEAA8F;;;IAA5E,0LAA2C;;ADKtD,MAAM,kBAAmB,SAAQ,6EAAiB;IAWrD,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC;IAN1B,IAAI,YAAY;QACZ,OAAQ,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE;YAC3B,IAAI,CAAC,GAAG,KAAK,mEAAyB;YACtC,IAAI,CAAC,GAAG,KAAK,wEAA8B,CAAC;IACxD,CAAC;IAID,QAAQ;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACvB,CAAC;;oFAfQ,kBAAkB;gHAAlB,kBAAkB;QCV/B,uEAAM;QAC2B,qIAAS,aAAS,IAAC;QAC5C,8GAAgG;QACpG,4DAAI;QAER,8GAA8F;;QAHhF,0DAAkB;QAAlB,kFAAkB;QAG1B,0DAAU;QAAV,0EAAU;;;;;;;;;;;;;;;;;;;;;IELhB,uEAAgC;IAC5B,oEAAwG;IAC5G,4DAAO;;;IADqB,0DAAwB;IAAxB,sFAAwB;IAA3C,wIAAW;;ADMb,MAAM,cAAc;IAKvB,gBAAgB,CAAC;;4EALR,cAAc;4GAAd,cAAc;QCP3B,4GAEO;;QAFA,2FAAuB;;;;;;;;;;;;;;;;;;;;;IEA9B,uEAA2B;IAAA,uDAAS;IAAA,4DAAO;;;IAAhB,0DAAS;IAAT,6EAAS;;;IACpC,sEAAkG;;;IAA5D,6EAAa;;ADM5C,MAAM,iBAAiB;IAO1B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;kFAVQ,iBAAiB;+GAAjB,iBAAiB;QCP9B,+GAA2C;QAC3C,iHAAkG;;QAD3F,kFAAkB;QACjB,0DAA4B;QAA5B,gGAA4B;;;;;;;;;;;;;;;;;;ACDmC;AAE5B;;AAOpC,MAAM,iBAAiB;IAgB1B;QAfS,cAAS,GAAY,IAAI,CAAC;QACzB,WAAM,GAAoC,IAAI,uDAAY,EAAqB,CAAC;IAc1E,CAAC;IAXjB,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,CAAC,CAAU;QACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,kBAAkB;QAClB,OAAO,wEAA8B,CAAC;IAC1C,CAAC;IAID,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;IACL,CAAC;;kFAvBQ,iBAAiB;+GAAjB,iBAAiB;;;;;;;;;;;;;;;;;ACRe;;AAGtC,MAAM,WAAW;IADxB;QAEY,uBAAkB,GAA+B,IAAI,yCAAO,EAAqB,CAAC;QAE1F,kBAAa,GAAkC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KAKzF;IAHG,YAAY,CAAC,KAAwB;QACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;;sEAPQ,WAAW;4GAAX,WAAW,WAAX,WAAW;;;;;;;;;;;;;;;;;;;;;;;IEHxB,kEAAgE;;;IAChE,kEAAmE;;;ADO5D,MAAM,uBAAuB;IAehC,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAN5C,uDAAuD;QACvD,kBAAa,GAAW,EAAE,CAAC;IAKoB,CAAC;IAGhD,IAAI;QACA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa;YAClH,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC7E,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,UAAU,EAAE;gBACzE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;aAC3B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;SAC/C;IACL,CAAC;;8FApCQ,uBAAuB;qHAAvB,uBAAuB;+IAAvB,UAAM;;;QCTnB,6DAAyB;QACzB,+GAAgE;QAChE,+GAAmE;;QAD/D,0DAA6B;QAA7B,6FAA6B;QAC7B,0DAA8B;QAA9B,8FAA8B;;;;;;;;;;;;;;;;;;ACFiD;;;AAS5E,MAAM,sBAAsB;IAC/B,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAIlC,WAAM,GAAoC,IAAI,uDAAY,EAAqB,CAAC;IAJ3C,CAAC;IAMhD,QAAQ;QACJ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;SAC/C;IACL,CAAC;;4FAjBQ,sBAAsB;oHAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;ACAQ;;;;;;AAGpC,MAAM,kBAAkB;IAC3B,YACY,gBAAkC,EAClC,MAAc,EACd,aAA4B,EAC5B,WAAwB;QAHxB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,WAAM,GAAN,MAAM,CAAQ;QACd,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;IAAI,CAAC;IAE3C,WAAW,CACT,IAA4B,EAC5B,KAA0B;QACtB,MAAM,WAAW,GAAkB,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QACrE,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;SACrD;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;YAC3C,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC;SAC1C;QAED,kBAAkB;QAClB,+DAA+D;QAC/D,4DAA4D;QAC5D,8CAA8C;QAC9C,0EAA0E;QAC1E,2CAA2C;QAC3C,IAAI;QAEJ,IAAI,gEAAsB,EAAE;YACxB,IAAI,SAAS,GAAY,IAAI,CAAC,gBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC;YACvE,kDAAkD;YAClD,yDAAyD;YACzD,mDAAmD;YACnD,sDAAsD;YACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;gBACf,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;aACjD;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC;iBACzC,SAAS,EAAE;iBACX,IAAI,CAAC,CAAC,MAAkB,EAAE,EAAE;gBACzB,IAAI,MAAM,EAAE;oBACR,0FAA0F;oBAC1F,4CAA4C;oBAC5C,kCAAkC;oBAClC,yDAAyD;oBACzD,IAAI;oBAEJ,IAAI,MAAM,CAAC,UAAU,KAAK,EAAE,EAAE;wBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;4BACjB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;4BACpC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;4BAC/B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;yBAC9B,EACD,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;qBAC9B;iBACJ;gBAED,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACV;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;;oFA5DQ,kBAAkB;mHAAlB,kBAAkB,WAAlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;ACTY;;;;;;;;;;ICC/B,0EAAgF;IAExE,qEAAsE;IAC1E,4DAAI;IACJ,uEAAyG;IAAA,uDAAiB;IAAA,4DAAI;;;;IAH3H,0DAA2E;IAA3E,sNAA2E;IACrE,0DAAsC;IAAtC,qLAAsC;IAAC,4FAAuB;IAEpE,0DAA2E;IAA3E,uNAA2E;IAA2B,0DAAiB;IAAjB,iFAAiB;;;IANlI,yEAA+D;IACwC,uDAAc;IAAA,4DAAI;IACrH,kHAKM;IACV,4DAAM;;;;IAPC,0DAAqE;IAArE,gNAAqE;IAA2B,0DAAc;IAAd,8EAAc;IACxF,0DAAa;IAAb,kFAAa;;;IAQtC,uEAAyB;IAAA,uDAAiC;IAAA,4DAAO;;;IAAxC,0DAAiC;IAAjC,qGAAiC;;;;IAC1D,0EAAgF;IAC/C,wVAAS,oCAA0B,IAAC;IAAC,qEAA6E;IAAA,4DAAI;IACnJ,wEAAkE;IAArC,yVAAS,qCAA0B,IAAC;IAAC,uDAAwB;IAAA,4DAAI;;;;IADvB,0DAAsC;IAAtC,qLAAsC;IAAC,mGAA8B;IAC1E,0DAAwB;IAAxB,wFAAwB;;;IAK9F,uEAAyB;IAAA,uDAAwB;IAAA,4DAAO;;;IAA/B,0DAAwB;IAAxB,4FAAwB;;;IAGjD,qEAA+G;;;IAAvF,6MAAqD;IAAC,uGAA8B;;ADPjH,MAAM,eAAe;IAWxB,YACY,aAA4B,EAC5B,aAA4B,EAC5B,WAAwB;QAFxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QAXpC,kBAAa,GAAW,mEAAyB,CAAC;QAClD,uBAAkB,GAAW,wEAA8B,CAAC;QAYxD,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CACjE,IAAI,CAAC,QAAQ,EAAE,CAClB,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CACjE,IAAI,CAAC,QAAQ,EAAE,CAClB,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CACpC,CAAC,MAAkB,EAAE,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QAC7B,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CACvC,CAAC,SAAqB,EAAE,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAC3C,CAAC,IAAoB,EAAE,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;YACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACvC;IACL,CAAC;IAES,gBAAgB,CAAC,QAAkB;QACzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,WAAW,CAAC,KAAU;QAC1B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;8EAvEQ,eAAe;6GAAf,eAAe;QChB5B,sEAAK;QAEG,2GAQM;QACN,yEAAgC;QAC5B,6GAAiE;QACjE,2GAGM;QACV,4DAAM;QACN,oEAAgC;QAChC,yEAA6B;QACzB,6GAAwD;QAC5D,4DAAM;QACN,yEAAyB;QACrB,6GAA+G;QACnH,4DAAM;;QAtB2C,0DAAY;QAAZ,kFAAY;QAUlD,0DAAgB;QAAhB,gFAAgB;QACG,0DAAY;QAAZ,kFAAY;QAO/B,0DAAgB;QAAhB,gFAAgB;QAGjB,0DAAgB;QAAhB,gFAAgB;;;;;;;;;;;;;;;;;;;;;;ACtBa;AACY;AACZ;AAEa;AACoB;;AAczE,MAAM,aAAa;;0EAAb,aAAa;0GAAb,aAAa;8GAVb;YACL,yDAAY;YACZ,qEAAe;YACf,yDAAY;SACf;mIAMQ,aAAa,mBAXP,qEAAe,EAAE,yFAAqB,aAEjD,yDAAY;QACZ,qEAAe;QACf,yDAAY,aAGZ,qEAAe;QACf,yFAAqB;;;;;;;;;;;;;;;;;;;;;;;;ACbgF;AAKjD;AAGjB;;;;;;;AA2CpC,MAAM,qBAAsB,SAAQ,sEAAa;IAgBpD,YACY,WAAwB,EACxB,aAA4B,EAC5B,KAAqB,EACrB,MAAc,EACd,SAAuB,EACvB,aAA4B;QAEpC,KAAK,EAAE,CAAC;QAPA,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAc;QACvB,kBAAa,GAAb,aAAa,CAAe;QAbxC,aAAQ,GAAsB,EAAE,CAAC;QACjC,sBAAiB,GAAsB,EAAE,CAAC;QAE1C,kBAAa,GAAW,mEAAyB,CAAC;QAElD,iBAAY,GAAW,UAAU,CAAC;QAY9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CACjE,IAAI,CAAC,QAAQ,EAAE,CAClB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAC5D,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CACxB,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC;YAC7D,IAAI,EAAE,CAAC,IAAgB,EAAE,EAAE;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;YACjE,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACJ,CAAC,CACL,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAEzD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;YACf,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE;oBAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBAC5B;qBAAM;oBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,OAAO;iBACV;aACJ;YAED,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAC3D,CAAC,QAA2B,EAAE,EAAE;gBAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9B,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC,CACJ,CAAC;QACN,CAAC,CACJ,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SAC3C;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAED,YAAY;QACR,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,cAAc;QACV,IAAI,CAAC,iBAAiB,CAAC,MAAM;YACzB,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;YACrB,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;IAES,YAAY,CAAC,OAAwB;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAChB,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAC7D;YACI,WAAW,EAAE;gBACT,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBACtC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE;aAC3C;SACJ,CACJ,CAAC;IACN,CAAC;IAES,YAAY,CAAC,OAAwB;QAC3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAES,QAAQ,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAEO,gBAAgB;QACpB,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE,EAAE;YACJ,OAAO,EAAE,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,kBAAkB;QACtB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC1C;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,kBAAkB;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAwB,EAAE,EAAE;gBAC/C,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;YAChD,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;0FAlJQ,qBAAqB;mHAArB,qBAAqB,mwNArClB;YACR,4DAAO,CAAC,eAAe,EAAE;gBACrB,0DAAK,CAAC,UAAU,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvD,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBACvD,+DAAU,CAAC,MAAM,EAAE,4DAAO,CAAC,sCAAsC,CAAC,CAAC;aACtE,CAAC;YACF,4DAAO,CAAC,kBAAkB,EAAE;gBACxB,+DAAU,CAAC,MAAM,EAAE;oBACf,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oBAC1D,0DAAK,CACD,QAAQ,EACR,4DAAO,CAAC,MAAM,EAAE;wBACZ,4DAAO,CACH,sCAAsC,EACtC,8DAAS,CAAC;4BACN,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;4BACpD,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;yBACpD,CAAC,CACL;qBACJ,CAAC,EACF,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB;oBACD,0DAAK,CACD,QAAQ,EACR,4DAAO,CACH,sCAAsC,EACtC,8DAAS,CAAC;wBACN,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;wBACrB,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;qBACxB,CAAC,CACL,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB;iBACJ,CAAC;aACL,CAAC;SACL;;;;;;;;;;;;;;;;;;;;;;;ACjDsC;;;;;;;;;ICD/B,oEAA8E;;;IAA5D,uMAA+C;;;;;IASrD,uEAA6B;IACuG,uDAAqB;IAAA,4DAAI;IAAA,uDAC7J;IAAA,4DAAO;;;IADA,0DAAgE;IAAhE,oMAAgE;IAA6D,0DAAqB;IAArB,yFAAqB;IAAI,0DAC7J;IAD6J,2LAC7J;;;;IAPR,sEAAiC;IACvB,uDAA8B;IAAA,uEAA6H;IAAA,uDAAoB;IAAA,4DAAI;IACrL,qFAAyB;IAAA,2EAAwD;IAAlD,2RAAS,oBAAa,IAAC;IAA2B,uDAAoB;IAAA,4DAAO;IAEhH,0EAA+B;IAC3B,mHAEO;IACX,4DAAM;;;IAPA,0DAA8B;IAA9B,2GAA8B;IAAG,0DAAkE;IAAlE,sMAAkE;IAAwD,0DAAoB;IAApB,wFAAoB;IAChG,0DAAoB;IAApB,wFAAoB;IAG9F,0DAAoB;IAApB,uFAAoB;;;;IAWvB,qEAAuC;IACsE,uDAAiB;IAAA,4DAAI;;;;IAA3H,0DAA2E;IAA3E,sNAA2E;IAA2B,0DAAiB;IAAjB,iFAAiB;;;IAJtI,qEAAmC;IAC+F,uDAAc;IAAA,4DAAI;IAChJ,qEAAI;IACA,8GAEK;IACT,4DAAK;;;;IALF,0DAAqE;IAArE,gNAAqE;IAAsD,0DAAc;IAAd,8EAAc;IAEhH,0DAAa;IAAb,kFAAa;;;ADJ1D,MAAM,eAAe;IAcxB,YACY,aAA4B,EAC5B,WAAwB,EACxB,aAA4B,EAC5B,MAAc,EACd,GAAe;QAJf,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAAY;QAd3B,kBAAa,GAAW,mEAAyB,CAAC;QAGlD,gBAAW,GAAkB,IAAI,CAAC;QAa9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE;YACtE,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,EAAE;QACnB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAC3D,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CACxB,CAAC;QAEF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CACjE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CACxB,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC;YAC5C,IAAI,EAAE,CAAC,KAAqB,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;YAC5D,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,CAAC,IAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;YACjD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;SACjC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SAC1C;IACL,CAAC;IAEO,WAAW;QACf,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;YACpC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;SAClC;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;SACxF;IACL,CAAC;IAEO,WAAW,CAAC,KAAU;QAC1B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;8EAjFQ,eAAe;6GAAf,eAAe;QCnB5B,sEAAK;QAGO,2GAA8E;QAClF,4DAAI;QACJ,yEAAiC;QAEzB,6GASM;QACV,4DAAM;QACN,yEAA2B;QAEnB,yGAOK;QACT,4DAAK;;QA1BV,0DAAmD;QAAnD,qKAAmD;QAC5C,0DAAU;QAAV,0EAAU;QAIN,0DAAyB;QAAzB,6FAAyB;QAaN,0DAAY;QAAZ,kFAAY;;;;;;;;;;;;;;;;;;ACb9C,MAAM,qBAAqB;IAEhC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;0FALU,qBAAqB;mHAArB,qBAAqB;QCPlC,oEAAG;QAAA,+EAAoB;QAAA,4DAAI;;;;;;;;;;;;;;;;;ACA2B;;AAK/C,MAAM,aAAa;IACxB,WAAW,CAAC,IAA4B,EAAE,KAA0B;QAClE,IAAI,CAAC,CAAC,wDAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE;YAChD,QAAQ,CAAC,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3F,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;;0EARQ,aAAa;8GAAb,aAAa,WAAb,aAAa;;;;;;;;;;;;;;;;;;;;;;IEL1B,oEAAuB;IACa,gEAAM;IAAK,4DAAO;;;IAA5C,0DAAyB;IAAzB,uJAAyB;;ADO5B,MAAM,uBAAuB;IAGhC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAI,CAAC;IAEhD,cAAc,CAAC,WAAmB;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC3E,CAAC;;8FAPQ,uBAAuB;qHAAvB,uBAAuB;QCRpC,+GAEI;;QAFA,iFAAiB;;;;;;;;;;;;;;;;;;;;ACQd,MAAM,sBAAsB;IAG/B,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,OAAO,CAAC,IAAY;QAChB,IAAI,IAAI,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;SAC5D;IACL,CAAC;;4FATQ,sBAAsB;oHAAtB,sBAAsB;QCRnC,wEAA8B;QAAA,qEAAgC;QAAA,4DAAK;;QAA/B,0DAAkB;QAAlB,6IAAkB;;;;;;;;;;;;;;;;;;;;;;;;;ACiB4C;AACX;AACA;AACD;AACR;;;;;AAOvE,MAAM,kBAAkB;IAI3B,YACY,aAA4B,EAC5B,UAAsB,EACtB,KAAqB,EACrB,wBAAkD,EAClD,gBAAkC;QAJlC,kBAAa,GAAb,aAAa,CAAe;QAC5B,eAAU,GAAV,UAAU,CAAY;QACtB,UAAK,GAAL,KAAK,CAAgB;QACrB,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAE1C,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CACnD,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;IACL,CAAC;IAED,WAAW,CAAC,OAAsB;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAW,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC/B,IAAI,MAAM,CAAC,SAAS,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBACjC;qBAAM;oBACH,QAAQ,MAAM,CAAC,UAAU,EAAE;wBAC3B,KAAK,aAAa;4BACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAClC,MAAM;wBACV,KAAK,aAAa;4BACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAClC,MAAM;wBACV,KAAK,WAAW;4BACZ,MAAM;wBACV,KAAK,eAAe,CAAC;wBACrB,KAAK,gBAAgB;4BACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BACjC,MAAM;wBACV,KAAK,UAAU;4BACX,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;4BAC/D,MAAM;qBACT;iBACJ;aACJ;SACJ;IACL,CAAC;IAEO,WAAW,CAAC,IAAY;QAC5B,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,0GAA0B,CAAC,CAAC;QACtF,MAAM,GAAG,GAA6C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAErG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,WAAmB;QACvC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,+FAAuB,CAAC,CAAC;QACnF,MAAM,GAAG,GAA0C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAElG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,IAAY;QAChC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,+FAAuB,CAAC,CAAC;QACnF,MAAM,GAAG,GAA0C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAElG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,cAAc,CAAC,IAAY;QAC/B,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,8FAAsB,CAAC,CAAC;QAClF,MAAM,GAAG,GAAyC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,YAAY,CAAC,KAAa,EAAE,IAAY,EAAE,YAAoB;QAClE,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,sFAAoB,CAAC,CAAC;QAChF,MAAM,GAAG,GAAuC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/F,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;;oFArGQ,kBAAkB;gHAAlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;IE5B/B,oEAAgB;IACa,gEAAM;IAAK,4DAAO;;;IAArC,0DAAkB;IAAlB,gJAAkB;;ADOrB,MAAM,uBAAuB;IAGhC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAI,CAAC;IAEhD,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;;8FAPQ,uBAAuB;qHAAvB,uBAAuB;QCRpC,+GAEI;;QAFA,0EAAU;;;;;;;;;;;;;;;;;;;ACE6B;;;;;AAOpC,MAAM,oBAAoB;IALjC;QAMI,uBAAkB,GAAW,wEAA8B,CAAC;KAM/D;;wFAPY,oBAAoB;kHAApB,oBAAoB;QCTjC,yEAA0B;QAElB,oEAAsE;QAC1E,4DAAI;QACJ,yEAAsB;QACsF,uDAAQ;QAAA,4DAAI;;QAJrH,0DAAqD;QAArD,gLAAqD;QAC/C,0DAAgD;QAAhD,4LAAgD;QAAC,oFAAc;QAGjE,0DAAqD;QAArD,iLAAqD;QAAgD,0DAAQ;QAAR,yEAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IEHhH,qEAAkC;IAI4C,uDAAkB;IAAA,4DAAO;;;;IAH/F,0DAA8B;IAA9B,iGAA8B;IAC3B,0DAAwF;IAAxF,mOAAwF;IAEjF,0DAA2D;IAA3D,wKAA2D;IAAC,0DAAkB;IAAlB,kFAAkB;;ADOjG,MAAM,gBAAgB;IASzB,YAAoB,aAA4B,EAAU,UAAsB,EAAU,KAAqB;QAA3F,kBAAa,GAAb,aAAa,CAAe;QAAU,eAAU,GAAV,UAAU,CAAY;QAAU,UAAK,GAAL,KAAK,CAAgB;QAC3G,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC,IAAe,EAAE,EAAE;gBAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,YAAY;oBACb,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC;wBACjC,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACpF,CAAC,CACJ,CAAC;QACN,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;IACL,CAAC;IAED,QAAQ,CAAC,IAAa;QAClB,IAAI,QAAa,CAAC;QAElB,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;YAC9D,QAAQ,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC7C,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC7C,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,EAAK,yCAAyC;YACjD,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACtG;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,gBAAgB;QACZ,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE,EAAE;YACJ,OAAO,EAAE,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC1C;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;;gFAzEQ,gBAAgB;8GAAhB,gBAAgB;QCb7B,yEAA2B;QAEnB,2GAOK;QACT,4DAAQ;;QARqB,0DAAO;QAAP,6EAAO;;;;;;;;;;;;;;;;;;;;;;;;ACMjC,MAAM,kBAAkB;IAC3B,YAAoB,UAAsB,EAAU,aAA4B,EAAU,MAAc;QAApF,eAAU,GAAV,UAAU,CAAY;QAAU,kBAAa,GAAb,aAAa,CAAe;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAE7G,OAAO,CAAC,KAA6B,EAAE,KAA0B;QAC7D,MAAM,EAAE,GAAW,KAAK,CAAC,MAAM,CAAC,IAAI,CAAW,CAAC;QAChD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACnI;QAED,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC9C;aAAM;YACH,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE;gBACb,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC3C;SACJ;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEO,UAAU,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;aAChC,SAAS,EAAE;aACX,IAAI,CAAC,OAAO,CAAC,EAAE;YACZ,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,EAAE,KAAK,OAAO,EAAE;gBAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;gBACzG,OAAO,IAAI,CAAC;aACf;YAED,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACX,CAAC;;oFAhCQ,kBAAkB;mHAAlB,kBAAkB,WAAlB,kBAAkB;;;;;;;;;;;;;;;;;;;;ACPwB;AAEK;AACT;AACA;;;AAEnD,MAAM,MAAM,GAAW;IACnB,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,4DAAY,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,qEAAkB,EAAE,EAAE,WAAW,EAAE,CAAE,2DAAa,CAAE,EAAG;CACtI,CAAC;AAMK,MAAM,gBAAgB;;gFAAhB,gBAAgB;6GAAhB,gBAAgB;iHAHhB,CAAC,kEAAqB,CAAC,MAAM,CAAC,CAAC,EAC9B,yDAAY;mIAEb,gBAAgB,oFAFf,yDAAY;;;;;;;;;;;;;;;;;;;ACLnB,MAAM,0BAA0B;IAGnC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAI,CAAC;IAEhD,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;;oGAPQ,0BAA0B;wHAA1B,0BAA0B;QCRvC,oEAA4E;QAC5E,uEAA0B;QACtB,qEAAgC;QACpC,4DAAI;;QADM,0DAAkB;QAAlB,6IAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDmB;AAES;AACH;AACO;AACT;AACc;AACM;AAC0B;AACX;AACA;AACD;AACR;;AAsBtE,MAAM,SAAS;;kEAAT,SAAS;uGAAT,SAAS;4GAdP;QACP,qEAAkB;KACrB,YAPQ;YACL,0DAAY;YACZ,+DAAY;YACZ,iEAAgB;SACnB;oIAeQ,SAAS,mBAVd,4DAAY;QACZ,0EAAgB;QAChB,gFAAkB;QAClB,0GAA0B;QAC1B,+FAAuB;QACvB,+FAAuB;QACvB,8FAAsB;QACtB,uFAAoB,aAfpB,0DAAY;QACZ,+DAAY;QACZ,iEAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLjB,MAAM,YAAY;IAKrB,YAAoB,KAAqB,EAAU,aAA4B;QAA3D,UAAK,GAAL,KAAK,CAAgB;QAAU,kBAAa,GAAb,aAAa,CAAe;QAF/E,YAAO,GAAgB,EAAE,CAAC;QAGtB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAChE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;aACnC,SAAS,CAAC,CAAC,IAA8B,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE;YACrC,qBAAqB,EAAE,CAAC;SAC3B;IACL,CAAC;;wEA7BQ,YAAY;0GAAZ,YAAY;QCdzB,iFAA2C;QAE3C,yEAAqB;QACjB,sEAAqB;QAEzB,4DAAM;QACN,yEAAuB;QAEf,2EAA6C;QACjD,4DAAM;QAEV,yEAAyB;QACrB,+EAAuC;QAC3C,4DAAM;;QALc,0DAAmB;QAAnB,gFAAmB;;;;;;;;;;;;;;;;;;ACRyB;;AAIzD,MAAM,sBAAuB,SAAQ,iEAAoB;IAC5D,KAAK,CAAC,GAAW;QACb,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,CAAC;;iTAHQ,sBAAsB,SAAtB,sBAAsB;uHAAtB,sBAAsB,WAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;ACCQ;;;;;;;;AAYpC,MAAM,mBAAmB;IAiB5B,YACc,aAA4B,EAC5B,aAA4B,EAC5B,WAAwB,EACxB,MAAc,EACd,KAAqB,EACrB,aAA4B;QAL5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QACrB,kBAAa,GAAb,aAAa,CAAe;QAb1C,kBAAa,GAAW,mEAAyB,CAAC;QAClD,uBAAkB,GAAW,wEAA8B,CAAC;QAI5D,gBAAW,GAAY,IAAI,CAAC;QAUxB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAChE,GAAG,EAAE;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;YACf,IAAI,CAAC,aAAa;iBACb,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC7B,SAAS,CAAC,CAAC,MAAoB,EAAE,EAAE,CAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CACjC,CAAC;QACV,CAAC,CACJ,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC;IAES,WAAW,CAAC,YAA0B;QAC5C,IAAI,YAAY,EAAE;YACd,YAAY,CAAC,WAAW,EAAE,CAAC;SAC9B;IACL,CAAC;IAES,WAAW,KAAU,CAAC;IAEtB,YAAY;QAClB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC;YACnE,IAAI,EAAE,CAAC,IAAsB,EAAE,EAAE;gBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACR,CAAC,CAAC;QAEC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QACzD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAES,iBAAiB,CAAC,MAAoB;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACzB;aAAM;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAES,WAAW,CAAC,KAAU;QAC5B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;sFApGQ,mBAAmB;iHAAnB,mBAAmB;;;;;;;;;;;;;;;;;;;;ACjBzB,MAAM,YAAY;CASxB;;;;;;;;;;;;;;;;;;ACLM,MAAM,eAAe;CAqB3B;AAEM,MAAM,kBAAkB;CAE9B;AAEM,MAAM,qBAAqB;IAAlC;QAMI,YAAO,GAAY,KAAK,CAAC;IAM7B,CAAC;CAAA;AAEM,MAAM,yBAAyB;CAKrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClDM,MAAM,aAAa;IAmBtB,YACI,UAeI,EAAG;QAvBX,YAAO,GAAqC,EAAE,CAAC;QAyB3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IACvD,CAAC;IAED,cAAc,KAAU,CAAC;CAC5B;AAEM,MAAM,yBAA0B,SAAQ,aAAqB;IAIhE,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,kBAAkB,CAAC;QACzC,SAAI,GAAW,MAAM,CAAC;IAItB,CAAC;CACJ;AAEM,MAAM,0BAA2B,SAAQ,aAAqB;IAIjE,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,mBAAmB,CAAC;QAC1C,SAAI,GAAW,MAAM,CAAC;IAItB,CAAC;CACJ;AAEM,MAAM,gBAAiB,SAAQ,aAAqB;IAGvD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,gBAAW,GAAW,SAAS,CAAC;IAIhC,CAAC;CACJ;AAEM,MAAM,eAAgB,SAAQ,aAAqB;IAItD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,YAAO,GAAqC,EAAE,CAAC;QAI3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,cAAc;QACV,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACtC;IACL,CAAC;CACJ;AAEM,MAAM,oBAAqB,SAAQ,aAAqB;IAI3D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,aAAa,CAAC;QACpC,SAAI,GAAW,OAAO,CAAC;IAIvB,CAAC;CACJ;AAEM,MAAM,aAAc,SAAQ,aAAqB;IAIpD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,MAAM,CAAC;QAKzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,oBAAqB,SAAQ,aAAqB;IAI3D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,aAAa,CAAC;QAKhC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,cAAe,SAAQ,aAAqB;IAIrD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,OAAO,CAAC;QAK1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,uBAAwB,SAAQ,aAAqB;IAK9D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QALnB,gBAAW,GAAW,YAAY,CAAC;QAM/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,gBAAiB,SAAQ,aAAqB;IAIvD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,SAAS,CAAC;QAK5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,eAAgB,SAAQ,aAAqB;IAItD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,SAAI,GAAW,QAAQ,CAAC;IAIxB,CAAC;CACJ;AAEM,MAAM,sBAAuB,SAAQ,aAAqB;IAI7D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,eAAe,CAAC;QAKlC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,eAAgB,SAAQ,aAAqB;IAGtD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,gBAAW,GAAW,QAAQ,CAAC;QAI3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,iBAAkB,SAAQ,aAAqB;IAIxD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,UAAU,CAAC;QACjC,SAAI,GAAW,UAAU,CAAC;IAI1B,CAAC;CACJ;AAEM,MAAM,4BAA6B,SAAQ,aAAqB;IAInE,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,qBAAqB,CAAC;QAC5C,SAAI,GAAW,QAAQ,CAAC;IAIxB,CAAC;CACJ;AAEM,MAAM,8BAA+B,SAAQ,aAAqB;IAIrE,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,sBAAsB,CAAC;QAKzC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;CACJ;AAEM,MAAM,qBAAsB,SAAQ,aAAqB;IAK5D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QALnB,gBAAW,GAAW,cAAc,CAAC;QACrC,SAAI,GAAW,QAAQ,CAAC;QAKpB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;CACJ;AAEM,MAAM,4BAA6B,SAAQ,aAAqB;IAMnE,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QANnB,gBAAW,GAAW,qBAAqB,CAAC;QAC5C,SAAI,GAAW,QAAQ,CAAC;QAExB,QAAG,GAAW,eAAe,CAAC;QAI1B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;CACJ;AAEM,MAAM,6BAA8B,SAAQ,aAAqB;IAMpE,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QANnB,gBAAW,GAAW,qBAAqB,CAAC;QAC5C,SAAI,GAAW,QAAQ,CAAC;QAExB,QAAG,GAAW,gBAAgB,CAAC;QAI3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;CACJ;AAEM,MAAM,2BAA4B,SAAQ,aAAqB;IAMlE,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QANnB,gBAAW,GAAW,gBAAgB,CAAC;QAGvC,2BAAsB,GAAW,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAIxD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,uBAAwB,SAAQ,aAAqB;IAM9D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QANnB,gBAAW,GAAW,gBAAgB,CAAC;QAGvC,2BAAsB,GAAW,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAIxD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,gBAAiB,SAAQ,aAAqB;IAGvD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,gBAAW,GAAW,SAAS,CAAC;IAIhC,CAAC;CACJ;AAEM,MAAM,uBAAwB,SAAQ,aAAqB;IAI9D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,YAAY,CAAC;QAK/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,uBAAwB,SAAQ,aAAqB;IAI9D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,mBAAmB,CAAC;QAKtC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,qBAAsB,SAAQ,aAAqB;IAI5D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,iBAAiB,CAAC;QAKpC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,qBAAsB,SAAQ,aAAqB;IAI5D,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,gBAAW,GAAW,iBAAiB,CAAC;QAKpC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ;AAEM,MAAM,cAAe,SAAQ,aAAqB;IAGrD,YAAY,UAAc,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,gBAAW,GAAW,OAAO,CAAC;IAI9B,CAAC;CACJ;;;;;;;;;;;;;;;;AChTsB;AAGhB,MAAM,IAAI;IACb,mBAAmB,CAAC,WAAkC;QAClD,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,IAAI,oBAAoB,GAAY,KAAK,CAAC;QAE1C,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC7B,QAAQ,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;gBAC7C,KAAK,mBAAmB;oBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,mEAAyB,CAAC;wBACtC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,KAAK,EAAE,UAAU,CAAC,WAAW;wBAC7B,cAAc,EAAE,UAAU,CAAC,UAAU;wBACrC,GAAG,EAAE,uBAAuB;qBAC/B,CAAC,CAAC,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,yDAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClH,MAAM,CAAC,IAAI,CAAC,IAAI,yDAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;oBAC7F,MAAM,CAAC,IAAI,CAAC,IAAI,yDAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;oBACrF,MAAM;gBACV,KAAK,oBAAoB;oBACrB,MAAM,CAAC,IAAI,CAAC,IAAI,oEAA0B,CAAC;wBACvC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,KAAK,EAAE,UAAU,CAAC,WAAW;wBAC7B,cAAc,EAAE,UAAU,CAAC,UAAU;wBACrC,GAAG,EAAE,wBAAwB;qBAChC,CAAC,CAAC,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,yDAAe,CAAC;wBAC5B,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,UAAU;qBAAE,CAAC,CAAC,CAAC;oBAC3H,MAAM,CAAC,IAAI,CAAC,IAAI,yDAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;oBAC7F,MAAM,CAAC,IAAI,CAAC,IAAI,yDAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;oBACrF,MAAM;gBACV,KAAK,sBAAsB;oBACvB,MAAM,CAAC,IAAI,CAAC,IAAI,sEAA4B,CAAC;wBACzC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,KAAK,EAAE,UAAU,CAAC,WAAW;wBAC7B,YAAY,EAAE,UAAU,CAAC,QAAQ;qBACpC,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,cAAc;oBACf,IAAI,CAAC,oBAAoB,EAAE;wBACvB,MAAM,CAAC,IAAI,CAAC,IAAI,8DAAoB,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBACnG;oBACD,MAAM;gBACV,KAAK,sBAAsB;oBACvB,MAAM,CAAC,IAAI,CAAC,IAAI,sEAA4B,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBACxG,MAAM;gBACV,KAAK,eAAe;oBAChB;wBACI,MAAM,WAAW,GAAwB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC;wBAChG,IAAI,WAAW,KAAK,SAAS,EAAE;4BAC3B,oBAAoB,GAAG,IAAI,CAAC;4BAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,wEAA8B,CAAC;gCAC3C,MAAM,EAAE,UAAU,CAAC,EAAE;gCACrB,KAAK,EAAE,UAAU,CAAC,WAAW;gCAC7B,KAAK,EAAE,WAAW,CAAC,WAAW;gCAC9B,YAAY,EAAE,UAAU,CAAC,QAAQ;6BACpC,CAAC,CAAC,CAAC;yBACP;6BAAM;4BACH,MAAM,CAAC,IAAI,CAAC,IAAI,+DAAqB,CAAC;gCAC9B,MAAM,EAAE,UAAU,CAAC,EAAE;gCACrB,KAAK,EAAE,UAAU,CAAC,WAAW;gCAC7B,YAAY,EAAE,UAAU,CAAC,QAAQ;6BACpC,CAAC,CAAC,CAAC;yBACX;qBACJ;oBACD,MAAM;gBACV,KAAK,SAAS;oBACV,MAAM,CAAC,IAAI,CACP,IAAI,0DAAgB,CAAC;wBACjB,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,SAAS;wBACd,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,QAAQ,EAAE,IAAI;qBACjB,CAAC,CACL,CAAC;oBACF,MAAM;gBACV,KAAK,aAAa;oBACd,IAAI,UAAU,CAAC,SAAS,EAAE;wBACtB,MAAM,CAAC,IAAI,CAAC,IAAI,0DAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBACpH;yBAAM;wBACH,MAAM,CAAC,IAAI,CAAC,IAAI,8DAAoB,CAAC;4BACjC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,UAAU;yBACnH,CAAC,CAAC,CAAC;qBACP;oBACD,MAAM;gBACV,KAAK,cAAc,CAAC,CAAC;oBACb,MAAM,UAAU,GAAa,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjE,MAAM,eAAe,GAAU,EAAE,CAAC;oBAClC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;oBACjG,MAAM,CAAC,IAAI,CAAC,IAAI,yDAAe,CAAC;wBAC5B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,OAAO,EAAE,eAAe;wBACxB,cAAc,EAAE,UAAU,CAAC,UAAU;qBACxC,CAAC,CAAC,CAAC;oBACJ,MAAM;iBACT;gBACL,KAAK,YAAY;oBACb,MAAM,CAAC,IAAI,CAAC,IAAI,uDAAa,CAAC;wBAC1B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;wBAC7D,cAAc,EAAE,UAAU,CAAC,UAAU;qBACxC,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,aAAa;oBACd,MAAM,CAAC,IAAI,CAAC,IAAI,wDAAc,CAAC;wBAC3B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,OAAO,EAAE,qDAAqD;wBAC9D,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;wBAC7D,cAAc,EAAE,UAAU,CAAC,UAAU;wBACrC,IAAI,EAAE,OAAO;qBAChB,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,oBAAoB;oBACrB,MAAM,CAAC,IAAI,CAAC,IAAI,wDAAc,CAAC;wBAC3B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,OAAO,EAAE,qDAAqD;wBAC9D,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;wBAC7D,cAAc,EAAE,UAAU,CAAC,UAAU;wBACrC,IAAI,EAAE,OAAO;qBAChB,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,gBAAgB;oBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,wDAAc,CAAC;wBAC3B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,OAAO,EAAE,qDAAqD;wBAC9D,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;wBAC7D,cAAc,EAAE,UAAU,CAAC,UAAU;wBACrC,IAAI,EAAE,OAAO;qBAChB,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,qBAAqB;oBACtB;wBACI,MAAM,kBAAkB,GAA2B,IAAI,gEAAsB,CACzE;4BACI,MAAM,EAAE,UAAU,CAAC,EAAE;4BACrB,GAAG,EAAE,UAAU,CAAC,SAAS;4BACzB,KAAK,EAAE,UAAU,CAAC,KAAK;4BACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;4BAC/B,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;4BAC7D,cAAc,EAAE,UAAU,CAAC,UAAU;yBACxC,CAAC,CAAC;wBACP,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE;4BACtB,kBAAkB,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;yBAC/C;wBACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvB,kBAAkB,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;yBACjD;wBACD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;qBACnC;oBACD,MAAM;gBACV,KAAK,mBAAmB;oBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,2DAAiB,CAAC;wBAC9B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,cAAc,EAAE,UAAU,CAAC,UAAU;qBACxC,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,cAAc;oBACf,MAAM,CAAC,IAAI,CAAC,IAAI,yDAAe,CAC3B;wBACI,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;wBAC7D,OAAO,EAAE,gBAAgB;wBACzB,cAAc,EAAE,UAAU,CAAC,UAAU;qBACxC,CAAC,CAAC,CAAC;oBACR,MAAM;gBACV,KAAK,gBAAgB;oBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,2DAAiB,CAAC;wBAC9B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,cAAc,EAAE,UAAU,CAAC,UAAU;qBACxC,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,aAAa;oBACd,MAAM,CAAC,IAAI,CAAC,IAAI,0DAAgB,CAAC;wBAC7B,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,cAAc,EAAE,UAAU,CAAC,UAAU;qBACxC,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,sBAAsB;oBACvB,MAAM,CAAC,IAAI,CAAC,IAAI,iEAAuB,CACnC;wBACI,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;wBAC7D,cAAc,EAAE,UAAU,CAAC,UAAU;qBACxC,CAAC,CAAC,CAAC;oBACR,MAAM;gBACV,KAAK,aAAa;oBACd,MAAM,CAAC,IAAI,CAAC,IAAI,wDAAc,CAC1B;wBACI,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,GAAG,EAAE,UAAU,CAAC,SAAS;wBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;wBAC7D,cAAc,EAAE,UAAU,CAAC,UAAU;qBACxC,CAAC,CAAC,CAAC;oBACR,MAAM;gBACV,KAAK,aAAa;oBACd,MAAM,CAAC,IAAI,CAAC,IAAI,iEAAuB,CAAC;wBACpC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,KAAK,EAAE,UAAU,CAAC,WAAW;wBAC7B,YAAY,EAAE,UAAU,CAAC,QAAQ;qBACpC,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,cAAc;oBACf,MAAM;gBACV,KAAK,aAAa;oBACd,MAAM,CAAC,IAAI,CAAC,IAAI,iEAAuB,CAAC;wBACpC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,KAAK,EAAE,UAAU,CAAC,WAAW;qBAChC,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACV,KAAK,kBAAkB;oBACf,MAAM,CAAC,IAAI,CAAC,IAAI,+DAAqB,CAAC;wBAClC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;qBAC1B,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACd,KAAK,kBAAkB;oBACf,MAAM,CAAC,IAAI,CAAC,IAAI,+DAAqB,CAAC;wBAClC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,KAAK,EAAE,UAAU,CAAC,WAAW;qBAChC,CAAC,CAAC,CAAC;oBACJ,MAAM;gBACd,KAAK,oBAAoB;oBACrB,MAAM,CAAC,IAAI,CAAC,IAAI,iEAAuB,CAAC;wBACpC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;qBAC1B,CAAC,CAAC,CAAC;oBACR,MAAM;aACL;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,WAAW,CAAC,KAAK;QACb,MAAM,QAAQ,GAAa,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;IACL,CAAC;CACJ;;;;;;;;;;;;;;;ACjTM,MAAM,cAAc;IAoBvB,YAAY,IAAgB;QACxB,IAAI,IAAI,EAAE;YACN,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7B;IACL,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;IACrD,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;IACnD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IACpD,CAAC;CACJ;;;;;;;;;;;;;;;AClCM,MAAM,cAAc;IAWvB,MAAM,CAAC,sBAAsB,CAAC,IAA0B;QACpD,MAAM,OAAO,GAAmB,IAAI,cAAc,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;QAChC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACrC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,IAA0B;QAChD,MAAM,OAAO,GAAmB,IAAI,cAAc,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/C,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QAEvB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAyB;QAC9C,MAAM,OAAO,GAAmB,IAAI,cAAc,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/C,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QAEvB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,IAA2B;QACnD,MAAM,OAAO,GAAmB,IAAI,cAAc,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/C,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QAEvB,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;;;;;;;;;;;;;;;AC7DM,MAAM,aAAa;CAqBzB;;;;;;;;;;;;;;;ACtBM,MAAM,cAAc;CAI1B;;;;;;;;;;;;;;;ACJM,MAAM,eAAe;IAiBxB,YAAY,IAAgB;QACxB,IAAI,IAAI,EAAE;YACN,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7B;IACL,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;IACrD,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;IACnD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IACpD,CAAC;CACJ;;;;;;;;;;;;;;;;;;;;;;;AC7B0C;AACiB;;;;;;;;ICR5D,oEAA+F;;;IAA7E,2LAA4C;;;;IAE1D,yEAAuD;IAChC,4WAA4B,wQAAqE,uBAAgB,IAArF;IAA/C,4DAAwI;IAAA,uEAAY;IAAA,4EAAmC;IAA3B,qTAAS,uBAAgB,IAAC;IAAC,uDAAqB;IAAA,4DAAS;;;IAAlM,0DAA4B;IAA5B,0FAA4B;IAAwI,0DAAqB;IAArB,yFAAqB;;;;IAIxM,qEAA4H;IACvF,+WAAS,mCAAwB,IAAC;IAAC,uDAAc;IAAA,4DAAI;IACtF,qEAAI;IAAA,uDAAgB;IAAA,4DAAK;IACzB,qEAAI;IAAA,uDAAoB;IAAA,4DAAK;;;;IAHoC,8GAAsD;IACnD,0DAAc;IAAd,8EAAc;IAC9E,0DAAgB;IAAhB,gFAAgB;IAChB,0DAAoB;IAApB,oFAAoB;;;;IAIpC,sEAA0B;IAEgC,oTAAS,gBAAQ,CAAC,CAAC,IAAC;IAAtE,4DAAqF;IACrF,0EAAkG;IAA7C,oTAAS,uBAAe,CAAC,CAAC,IAAC;IAAhF,4DAAkG;IAClG,uEAAM;IAAA,uDAAwD;IAAA,4DAAO;IACrE,0EAAyF;IAAxC,oTAAS,sBAAc,CAAC,CAAC,IAAC;IAA3E,4DAAyF;IACzF,0EAA8F;IAA7C,oTAAS,mCAAmB,CAAC,CAAC,IAAC;IAAhF,4DAA8F;;;IAJzF,0DAA4C;IAA5C,2LAA4C;IAC5C,0DAA+C;IAA/C,8LAA+C;IAC9C,0DAAwD;IAAxD,8IAAwD;IACzD,0DAA2C;IAA3C,0LAA2C;IAC3C,0DAA2C;IAA3C,0LAA2C;;;IAnB5D,sEAA0B;IACtB,kIAEM;IACN,sEAAK;IAEG,gIAIK;IACT,4DAAQ;IAEZ,kIAQM;IACV,4DAAM;;;IArBI,0DAAyB;IAAzB,4FAAyB;IAKC,0DAA+B;IAA/B,6GAA+B;IAOzD,0DAAkB;IAAlB,qFAAkB;;ADCrB,MAAM,gCAAiC,SAAQ,sEAAa;IA0B/D,YACY,WAAwB,EACxB,aAA4B,EAC5B,MAAc;QAEtB,KAAK,EAAE,CAAC;QAJA,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAQ;QA3BhB,wBAAmB,GAAW,wEAA8B,CAAC;QAEvE,SAAI,GAAY,KAAK,CAAC;QAiBtB,mBAAc,GAAW,EAAE,CAAC;QAE5B,gBAAW,GAAW,CAAC,CAAC;QACxB,aAAQ,GAAW,CAAC,CAAC;QASjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IA5BD,IAAI,YAAY;QACZ,OAAO,CACH,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,QAAQ,CAAC,QAAQ;YACtB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAC9B,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAChC,IAAI,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CACvC,CAAC;IACN,CAAC;IAsBD,QAAQ;QACJ,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,cAAc;QACV,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW;aACX,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC;aAC9C,SAAS,CAAC;YACP,IAAI,EAAE,CAAC,QAA8B,EAAE,EAAE;gBACrC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAEzB,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAG;oBAChE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,EAAE,EAAE;wBAC9D,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;wBACxB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC9C;yBAAM;wBACH,IAAI,QAAQ,GAAW,CAAC,CAAC;wBACzB,IAAI,IAAI,GAAW,CAAC,CAAC;wBACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;wBACxB,GAAG;4BACC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC;4BAC5E,QAAQ,IAAI,EAAE,CAAC;4BACf,IAAI,EAAE,CAAC;yBACV,QAAQ,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE;wBAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;qBACxB;iBACJ;YACL,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACJ,CAAC,CAAC;IACX,CAAC;IAED,eAAe,CAAC,OAAwB;QACpC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAChB,CAAE,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAE,CAChG,CAAC;IACN,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,SAAiB;QAC3B,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;SACxC;aAAM,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;SACxB;IACL,CAAC;;gHA5FQ,gCAAgC;8HAAhC,gCAAgC;QCf7C,4HAA+F;QAC/F,4HAsBM;;QAvBA,0EAAU;QACV,0DAAkB;QAAlB,kFAAkB;;;;;;;;;;;;;;;;;;;;;;;;;IEChB,wEAAmE;IAA2C,iEAAM;IAAA,4DAAK;;;IAErH,wEAAwC;IAAA,sEAAiD;IAAA,4DAAK;;;;IAAhD,0DAAmC;IAAnC,oKAAmC;;;IADrF,wEAAiD;IAC7C,qIAA8F;IAClG,4DAAK;;;IADI,0DAAqB;IAArB,oFAAqB;;;IAatB,uEAAuC;IAAA,uDAAqC;;IAAA,4DAAO;;;IAA5C,0DAAqC;IAArC,gKAAqC;;;IAC5E,uEAAqC;IAAA,uDAAgD;;IAAA,4DAAO;;;IAAvD,0DAAgD;IAAhD,oLAAgD;;;;;IAZ7F,yEAAiD;IAEsE,uDAAe;IAAA,4DAAI;IAEtI,qEAAI;IACA,sEAAgD;IACpD,4DAAK;IACL,qEAAI;IACA,uDAAkB;IAAA,gEAAK;IAC3B,4DAAK;IACL,yEAAoB;IAChB,4IAAmF;IACnF,4IAA4F;IAChG,4DAAK;;;;IAXE,0DAA+D;IAA/D,4LAA+D;IAA6C,0DAAe;IAAf,+EAAe;IAGxH,0DAAkC;IAAlC,mKAAkC;IAGxC,0DAAkB;IAAlB,4FAAkB;IAGX,0DAA8B;IAA9B,6FAA8B;IAC9B,0DAA4B;IAA5B,2FAA4B;;;IAjB/C,wEAAkD;IAC9C,gIAA8H;IAC9H,gIAEK;IACL,kIAcK;IACT,qEAAe;;;IAnBN,0DAAqB;IAArB,oFAAqB;IACrB,0DAAqB;IAArB,oFAAqB;IAGrB,0DAAsB;IAAtB,qFAAsB;;;IANnC,2EAAuD;IACnD,qIAoBe;IACnB,4DAAQ;;;IArB4B,0DAAgB;IAAhB,yFAAgB;;ADS7C,MAAM,eAAe;IAIxB,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAErC,QAAQ,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;;8EARQ,eAAe;6GAAf,eAAe;QCV5B,+GAsBQ;;QAtBmB,0FAA0B;;;;;;;;;;;;;;;;;;;;ACGV;AAGiB;;;AAOrD,MAAM,mBAAoB,SAAQ,sEAAa;IAMlD,YAAoB,UAAsB;QACtC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAY;QAL1C,uBAAkB,GAAW,wEAA8B,CAAC;IAO5D,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;YACpC,IAAI,EAAE,CAAC,QAAsB,EAAE,EAAE;gBAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC7B,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAES,cAAc,CAAC,WAAmB;QACxC,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE;YAC1B,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;SAChD;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,cAAc;QACV,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;;sFA/BQ,mBAAmB;iHAAnB,mBAAmB;QCbhC,oEAAgC;QAgBhC,uEAAyE;QAA3B,sIAAS,oBAAgB,IAAC;QACpE,sEAAK;QAAkC,wEAAa;QAAA,4DAAO;QAE/D,oEAA8B;;;;;;;;;;;;;;;;;;;;ACjBa;;;;;ICG/B,0EAAmD;IAAA,uDAAS;IAAA,gEAAM;IAAA,4DAAO;;;IAAtB,0DAAS;IAAT,6EAAS;;;IAC5D,0EAAiD;IAAA,uDAAS;IAAA,gEAAM;IAAA,4DAAO;;;IAAtB,0DAAS;IAAT,6EAAS;;;IAC1D,0EAAmD;IAAA,uDAAe;IAAA,gEAAM;IAAA,4DAAO;;;IAA5B,0DAAe;IAAf,mFAAe;;;ADEvE,MAAM,2BAA2B;IALxC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KASrD;;sGAVY,2BAA2B;yHAA3B,2BAA2B;QCTxC,oEAAgC;QAChC,uEAAqF;QAE7E,oEAAmG;QACnG,sEAAK;QACD,yHAAyE;QACzE,yHAAuE;QACvE,yHAA+E;QACnF,4DAAM;QACN,oEAAgC;QACpC,4DAAM;;QATP,0DAAkD;QAAlD,6KAAkD;QAEL,0DAAwC;QAAxC,0LAAwC;QAAC,qFAAe;QAErF,0DAAkB;QAAlB,kFAAkB;QAClB,0DAAkB;QAAlB,kFAAkB;QAClB,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;;ACLA;;;;;ICInC,oEAA8B;IAAA,uDAA4B;IAAA,4DAAI;;;IAAhC,0DAA4B;IAA5B,yGAA4B;;;ADG3D,MAAM,wBAAwB;IALrC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KAOrD;;gGARY,wBAAwB;sHAAxB,wBAAwB;QCTrC,yEAA6B;QAErB,oEAAkE;QACtE,4DAAI;QACJ,yEAAyB;QACqD,uDAAS;QAAA,4DAAI;QACvF,gHAA8D;QAClE,4DAAM;;QANH,0DAAkD;QAAlD,6KAAkD;QAC5C,0DAA2C;QAA3C,uLAA2C;QAAC,qFAAe;QAG7D,0DAAkD;QAAlD,6KAAkD;QAAqB,0DAAS;QAAT,0EAAS;QAC/E,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;;ACE7B,MAAM,+BAA+B;IAGxC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;;8GAPQ,+BAA+B;6HAA/B,+BAA+B;QCR5C,oEAAqC;QACrC,uEAAyB;QACrB,qEAAmC;QACvC,4DAAI;;QADM,0DAAqB;QAArB,gJAAqB;;;;;;;;;;;;;;;;;;;;;;;IEA3B,0EAA2D;IAAA,gEAAM;IAAK,4DAAO;;;IAA5C,uJAAyB;;;IAC1D,qEAAsD;;;IAA3B,iJAAmB;;;IAHlD,uEAAyG;IACrG,qEAA2D;IAAA,kEAC3D;IAAA,0HAA6E;IAC7E,0HAAsD;IAC1D,4DAAI;;;IAHgC,0DAAmB;IAAnB,iJAAmB;IAC5C,0DAAwB;IAAxB,2FAAwB;IACxB,0DAAkB;IAAlB,qFAAkB;;;IAE7B,0EAA4G;IACxG,qEAA2D;IAC/D,4DAAO;;;IAD6B,0DAAmB;IAAnB,iJAAmB;;;IAEvD,uEAAkH;IAAA,gEAAM;IAAK,4DAAI;;;IAAlF,uJAAyB;;;IACxE,qEAAuE;;;IAA3B,iJAAmB;;ADDxD,MAAM,wBAAwB;IAQjC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,cAAc,CAAC,WAAmB;QAC9B,IAAI,WAAW,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACnC;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;IACL,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,KAAK,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,KAAK,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;;gGAnCQ,wBAAwB;sHAAxB,wBAAwB;QCRrC,gHAII;QACJ,sHAEO;QACP,gHAAiI;QACjI,sHAAuE;;QATnE,kIAA0D;QAKvD,0DAA0D;QAA1D,kIAA0D;QAG7D,0DAAyC;QAAzC,6GAAyC;QACtC,0DAAmC;QAAnC,uGAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGsC;AAC5C;AAC6E;AACvB;AAClB;AACA;AACM;AACuB;AACT;AACH;AACH;AACX;AACd;AACuD;AAC5C;AACZ;;;;AAOrD,MAAM,mBAAoB,SAAQ,uEAAa;IAKlD,YACY,aAA4B,EAC5B,KAAqB,EACrB,gBAAkC;QAE1C,KAAK,EAAE,CAAC;QAJA,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAPrC,YAAO,GAAiB,EAAE,CAAC;QAE5B,cAAS,GAAW,EAAE,CAAC;QAS3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,IAAI,GAAG,CAAC;QAClE,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE;YACxB,MAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,IAAI,EAAE,CAAC;YAC5E,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC;YACxE,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;SAC1C;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE;YAC7D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,WAAW,CAAC,CAAgB;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAW,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC/B,IAAI,MAAM,CAAC,SAAS,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAClC;qBAAM;oBACH,QAAQ,MAAM,CAAC,UAAU,EAAE;wBACvB,KAAK,iBAAiB;4BAClB,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;4BAC9C,MAAM;wBACV,KAAK,cAAc;4BACf,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;4BAC3C,MAAM;wBACV,KAAK,sBAAsB;4BACvB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;4BACzC,MAAM;wBACV,KAAK,aAAa;4BACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;4BAC7B,MAAM;wBACV,KAAK,YAAY;4BACb,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;4BACtC,MAAM;wBACV,KAAK,SAAS;4BACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACzB,MAAM;wBACV,KAAK,MAAM;4BACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BACtB,MAAM;wBACV,KAAK,cAAc;4BACf,MAAM;wBACV,KAAK,mBAAmB,CAAC;wBACzB,KAAK,oBAAoB,CAAC;wBAC1B,KAAK,qBAAqB;4BACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACvB,MAAM;wBACV,KAAK,cAAc;4BACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACvB,MAAM;wBACV,KAAK,UAAU;4BACX,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;4BAC3C,MAAM;wBACV,KAAK,aAAa;4BACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAC5B,MAAM;wBACV,KAAK,YAAY;4BACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BAC3B,MAAM;wBACV,KAAK,SAAS;4BACV,MAAM;wBACV,KAAK,OAAO;4BACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACvB,MAAM;qBACb;iBACJ;aACJ;SACJ;IACL,CAAC;IAEO,QAAQ,CAAC,MAAkB;QAC/B,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,0FAAmB,CAAC,CAAC;QAE/D,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,8CAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAClF,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAChE,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,2BAA2B,CAAC,MAAkB;QAClD,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,6HAAgC,CAAC,CAAC;QAE5E,GAAG,CAAC,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3C,GAAG,CAAC,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9C,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,yHAA+B,CAAC,CAAC;QAE3E,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,MAAkB;QAC9B,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,kGAAwB,CAAC,CAAC;QAEpE,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,CAAC,MAAkB;QACxB,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gFAAkB,CAAC,CAAC;QAE9D,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC/C,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,CAAC,MAAkB;QACxB,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gFAAkB,CAAC,CAAC;QAE9D,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,MAAkB;QAC1B,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,sFAAoB,CAAC,CAAC;QAEhE,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,SAAS,CAAC,MAAkB;QAChC,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,iFAAkB,CAAC,CAAC;QAE9D,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,MAAkB,EAAE,YAAoB;QACvD,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,6GAA2B,CAAC,CAAC;QAEvE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAClD,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,MAAkB,EAAE,YAAoB;QACpD,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,oGAAwB,CAAC,CAAC;QAEpE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,cAAc,CAAC,MAAkB;QAC7B,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,iGAAuB,CAAC,CAAC;QAEnE,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,MAAkB;QAC5B,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,+FAAsB,CAAC,CAAC;QAElE,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAClD,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,MAAkB,EAAE,YAAoB;QAC5D,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,oFAAmB,CAAC,CAAC;QAE/D,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,UAAU,CAAC,MAAkB,EAAE,YAAoB;QACvD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;YACvD,MAAM,GAAG,GACL,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,sEAAe,CAAC,CAAC;YAE3D,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;YAC7B,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;YACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACzC;IACL,CAAC;;sFAjOQ,mBAAmB;kHAAnB,mBAAmB;;;;;;;;;;;;;;;;;;;;IEjC5B,oEAAyB;IAAA,uDAAS;IAAA,4DAAI;;;IAAb,0DAAS;IAAT,6EAAS;;;IAClC,uEAAgC;IAAA,uDAAe;IAAA,4DAAO;;;IAAtB,0DAAe;IAAf,mFAAe;;ADK5C,MAAM,oBAAoB;;wFAApB,oBAAoB;kHAApB,oBAAoB;QCPjC,wEAAiC;QAC7B,4GAAsC;QAAA,kEACtC;QAAA,kHAAsD;QAC1D,4DAAK;;QAFG,0DAAkB;QAAlB,kFAAkB;QACf,0DAAuB;QAAvB,wFAAuB;;;;;;;;;;;;;;;;;;;;ACCS;;;;;ICE/B,oEAAqF;IAAA,qEAAyC;IAAA,4DAAI;;;IAAvC,0DAA2B;IAA3B,yJAA2B;;;IAE1H,oEAAqF;IAAA,qEAAyC;IAAA,4DAAI;;;IAAvC,0DAA2B;IAA3B,yJAA2B;;;IAL1H,wEAAgE;IAC5D,uEAA2B;IACvB,oEAA0G;IAC1G,yHAAkI;IACtI,4DAAI;IACJ,yHAAkI;IACtI,qEAAe;;;IAJF,0DAA+C;IAA/C,uMAA+C;IAAC,qGAA4B;IAAC,sFAAsB;IACpG,0DAA+E;IAA/E,yJAA+E;IAEnF,0DAA+E;IAA/E,yJAA+E;;;IAK/E,oEAAqF;IAAA,qEAAyC;IAAA,4DAAI;;;IAAvC,0DAA2B;IAA3B,yJAA2B;;;;IAH9H,wEAAgE;IAC5D,uEAAgJ;IAC5I,oEAA0G;IAC1G,yHAAkI;IACtI,4DAAI;IACR,qEAAe;;;IAJR,0DAA4I;IAA5I,iPAA4I;IACtI,0DAA+C;IAA/C,uMAA+C;IAAC,qGAA4B;IAAC,sFAAsB;IACpG,0DAA+E;IAA/E,yJAA+E;;;ADDxF,MAAM,kBAAkB;IAK3B,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAJ3C,kBAAa,GAAW,mEAAyB,CAAC;IAIJ,CAAC;IAErC,UAAU;QAChB,IACI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,oBAAoB;YAC5C,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,mBAAmB,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,EACtB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC9E;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAES,WAAW;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjH,CAAC;;oFArBQ,kBAAkB;gHAAlB,kBAAkB;QCX/B,oEAAgC;QAChC,yEAAwF;QACpF,gIAMe;QACf,gIAKe;QACnB,4DAAM;;QAdD,0DAAkF;QAAlF,2LAAkF;QACpE,0DAA+C;QAA/C,+GAA+C;QAO/C,0DAA+C;QAA/C,+GAA+C;;;;;;;;;;;;;;;;;;;;;IEP9D,uEAAiC;IAAA,uDAA4B;IAAA,4DAAO;;;IAAnC,0DAA4B;IAA5B,yGAA4B;;ADK1D,MAAM,uBAAuB;;8FAAvB,uBAAuB;qHAAvB,uBAAuB;QCPpC,oEAAG;QACsC,uDAAS;QAAA,4DAAI;QAClD,qHAAoE;QACxE,4DAAI;;QAFG,0DAAc;QAAd,wIAAc;QAAoB,0DAAS;QAAT,0EAAS;QACvC,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;ACAQ;;;;ICAvC,uEAAiC;IAAA,uDAA4B;IAAA,4DAAO;;;IAAnC,0DAA4B;IAA5B,yGAA4B;;ADO1D,MAAM,sBAAsB;IALnC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KAiBrD;IAVa,OAAO;QACb,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;YACnB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;aACxC;SACJ;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;;4FAjBQ,sBAAsB;oHAAtB,sBAAsB;QCTnC,oEAAG;QACgF,uDAAS;QAAA,4DAAI;QAC5F,oHAAoE;QACxE,4DAAI;;QAFG,0DAAyC;QAAzC,2LAAyC;QAAmC,0DAAS;QAAT,0EAAS;QACjF,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;;;;ACIyB;;;;;;;;;;ICJpD,qEAAkC;IAI4C,uDAAkB;IAAA,4DAAO;;;;IAH/F,0DAA8B;IAA9B,iGAA8B;IAC3B,0DAAwF;IAAxF,mOAAwF;IAEjF,0DAA2D;IAA3D,wKAA2D;IAAC,0DAAkB;IAAlB,kFAAkB;;ADOjG,MAAM,iBAAkB,SAAQ,sEAAa;IAMhD,YACY,aAA4B,EAC5B,WAAwB,EACxB,KAAqB;QAE7B,KAAK,EAAE,CAAC;QAJA,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,UAAK,GAAL,KAAK,CAAgB;QARjC,SAAI,GAAe,EAAE,CAAC;QAYlB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE;YAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAC/C,CAAC,MAAc,EAAE,EAAE;YACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAE3B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAgB,EAAE,EAAE;gBAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;oBACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CACzB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAChE,CAAC;iBACL;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CACJ,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,QAAQ,CAAC,IAAc;QACnB,IAAI,QAAa,CAAC;QAElB,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;YAC9D,QAAQ,GAAG;gBACP,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,KAAK;aACrB,CAAC;SACL;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC7C,QAAQ,GAAG;gBACP,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,KAAK;aACrB,CAAC;SACL;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC7C,QAAQ,GAAG;gBACP,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,KAAK;aACrB,CAAC;SACL;aAAM;YACH,QAAQ,GAAG;gBACP,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,IAAI;aACpB,CAAC;SACL;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,gBAAgB;QACZ,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE,EAAE;YACJ,OAAO,EAAE,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC1C;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;;kFAxFQ,iBAAiB;+GAAjB,iBAAiB;QCb9B,yEAA2B;QAEnB,4GAOK;QACT,4DAAQ;;QARqB,0DAAO;QAAP,6EAAO;;;;;;;;;;;;;;;;;;;;;;;;ACKxC;;;;;;AAIM,MAAOqS,mBAAP,CAA0B;AAC5B9O,cACY+O,WADZ,EAEYC,aAFZ,EAGYC,MAHZ,EAIYC,WAJZ,EAIoC;AAHxB;AACA;AACA;AACA;AACR;;AAEJC,SAAO,CACHhJ,KADG,EAEHiJ,KAFG,EAEuB;AAE1B;AAEA,UAAMhG,MAAM,GAAWjD,KAAK,CAACI,MAAN,CAAa,IAAb,CAAvB;;AACA,QAAI6C,MAAM,KAAK,IAAf,EAAqB;AACjB,WAAK6F,MAAL,CAAYlH,QAAZ,CACI,CAAC,KAAKiH,aAAL,CAAmBhM,eAAnB,EAAD,EAAuC,MAAvC,EAA+C,OAA/C,CADJ,EAEI;AAAEgF,mBAAW,EAAE;AAAEqH,mBAAS,EAAED,KAAK,CAACpG;AAAnB;AAAf,OAFJ;AAIH;;AAED,QAAIsG,UAAU,GAAGnJ,KAAK,CAACoJ,QAAN,CAAeC,GAAf,CAAmB,YAAnB,CAAjB;;AACA,QAAIF,UAAU,IAAIA,UAAU,KAAK,EAAjC,EAAqC;AACjC,WAAKN,aAAL,CAAmBS,WAAnB,CAA+BH,UAA/B;AACH,KAFD,MAEO;AACHA,gBAAU,GAAG,KAAKN,aAAL,CAAmB9N,WAAnB,EAAb;;AACA,UAAI,CAACoO,UAAL,EAAiB;AACb,aAAKN,aAAL,CAAmBS,WAAnB,CAA+B,OAA/B;AACH;AACJ;;AACD,WAAO,KAAKC,WAAL,CAAiBtG,MAAjB,EAAyBgG,KAAzB,CAAP;AACH;;AAEKM,aAAW,CACbtG,MADa,EAEbgG,KAFa,EAEa;AAAA;;AAAA;AAE1B,UAAIA,KAAK,CAACpG,GAAN,CAAU2D,UAAV,CAAqB,OAArB,CAAJ,EAAmC;AAC/B,aAAI,CAACsC,MAAL,CAAYlH,QAAZ,CAAqB,CAAC,KAAI,CAACiH,aAAL,CAAmBhM,eAAnB,EAAD,EAAuC,MAAvC,EAA+C,eAA/C,CAArB,EAAsF;AAAEgF,qBAAW,EAAE;AAAE2H,kBAAM,EAAEvG;AAAV;AAAf,SAAtF;;AACA;AACH;;AACD,mBAAayF,oDAAc,CAAC,KAAI,CAACE,WAAL,CACvB5E,UADuB,CACZf,MADY,CAAD,CAAd,CAERY,IAFQ,CAEFI,OAAD,IAAyB;AAC3B,cAAMrH,YAAY,GAAW,KAAI,CAACiM,aAAL,CAAmBhM,eAAnB,EAA7B;;AAEA,YAAIoH,OAAO,CAACwF,aAAZ,EAA2B;AACvB,cAAIxF,OAAO,CAAC3F,OAAR,IAAmB2F,OAAO,CAAC3F,OAAR,CAAgB3D,MAAhB,GAAyB,CAAhD,EAAmD;AAC/C,mBAAOsJ,OAAO,CAAC3F,OAAf;AACH,WAFD,MAEO;AACHoL,0BAAc,CAACC,OAAf,CAAuB,WAAvB,EAAoCV,KAAK,CAACpG,GAA1C;;AACA,iBAAI,CAACiG,MAAL,CAAYlH,QAAZ,CAAqB,CAAChF,YAAD,EAAe,MAAf,EAAuB,OAAvB,CAArB;AACH;AACJ,SAPD,MAOO;AACH,cAAIqH,OAAO,CAAC3F,OAAR,IAAmB2F,OAAO,CAAC3F,OAAR,CAAgB3D,MAAhB,GAAyB,CAAhD,EAAmD;AAC/C,mBAAOsJ,OAAO,CAAC3F,OAAf;AACH,WAFD,MAEO;AACH,iBAAI,CAACwK,MAAL,CAAYlH,QAAZ,CAAqB,CAAChF,YAAD,EAAe,MAAf,EAAuB,OAAvB,CAArB;AACH;AACJ;AACJ,OAnBQ,CAAb;AAN0B;AA0B7B;;AA9D2B;;;mBAAnB+L,qBAAmBrS,sDAAAA,CAAAA,+DAAAA,GAAAA,sDAAAA,CAAAA,mEAAAA,GAAAA,sDAAAA,CAAAA,mDAAAA,GAAAA,sDAAAA,CAAAA,+DAAAA;AAAA;;;SAAnBqS;AAAmBiB,WAAnBjB,mBAAmB;;;;;;;;;;;;;;;;;;;;;ACVuB;AAED;AACQ;AACX;AACW;;;AAE9D,MAAM,MAAM,GAAW;IACnB;QACI,IAAI,EAAE,sBAAsB;QAC5B,SAAS,EAAE,+DAAa;QACxB,OAAO,EAAE,EAAE,OAAO,EAAE,uEAAmB,EAAE;QACzC,WAAW,EAAE,CAAC,2DAAa,EAAE,sEAAkB,CAAC;KACnD;IACD;QACI,IAAI,EAAE,6BAA6B;QACnC,SAAS,EAAE,+DAAa;QACxB,OAAO,EAAE,EAAE,OAAO,EAAE,uEAAmB,EAAE;QACzC,WAAW,EAAE,CAAC,2DAAa,EAAE,sEAAkB,CAAC;KACnD;IACD;QACI,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,+DAAa;QACxB,OAAO,EAAE,EAAE,OAAO,EAAE,uEAAmB,EAAE;QACzC,WAAW,EAAE,CAAC,2DAAa,EAAE,sEAAkB,CAAC;KACnD;CACJ,CAAC;AAMK,MAAM,iBAAiB;;kFAAjB,iBAAiB;8GAAjB,iBAAiB;kHAHjB,CAAC,kEAAqB,CAAC,MAAM,CAAC,CAAC,EAC9B,yDAAY;mIAEb,iBAAiB,oFAFhB,yDAAY;;;;;;;;;;;;;;;;;;;;IE7BlB,qEAIqF;IACjF,uDACJ;IAAA,4DAAK;;;;IAHG,sEAAmB;IAFnB,8FAAuC;IAGvC,uIAA4E;IAChF,0DACJ;IADI,2FACJ;;;;IAPJ,wEAA4F;IACxF,iHAMK;IACT,4DAAK;;;IARwB,2KAA8D;IAChE,0DAAgB;IAAhB,mFAAgB;;ADOxC,MAAM,kBAAkB;IAK3B,YAAY;QACR,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACtC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACxC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACxC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACxC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACxC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAExC,IAAI,CAAC,mBAAmB,GAAG,UAAU,IAAI,GAAG,CAAC;YAE7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;YAEpD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpB,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;gBAEf,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE;oBAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnD,UAAU,EACN,CAAC,CAAC,UAAU,KAAK,UAAU;4BAC3B,CAAC,CAAC,UAAU,KAAK,SAAS;4BACtB,CAAC,CAAC,MAAM;4BACR,CAAC,CAAC,QAAQ;qBACrB,CAAC,CAAC;iBACN;gBAED,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE;oBAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,CAAC,CAAC,OAAO;wBAChB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnD,UAAU,EAAE,QAAQ;qBACvB,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrD,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;yBAC7D,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrD,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;yBAC7D,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrD,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;yBAC7D,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrD,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;yBAC7D,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrD,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;yBAC7D,CAAC,CAAC;qBACN;iBACJ;gBAED,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,IAAI,IAAI,KAAK,UAAU,EAAE;YACrB,OAAO,aAAa,CAAC;SACxB;QACD,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,cAAc,CAAC;SACzB;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;;oFA7FQ,kBAAkB;gHAAlB,kBAAkB;QCT/B,2EAAyB;QACrB,4GAQK;QACT,4DAAQ;;QATgB,0DAAO;QAAP,6EAAO;;;;;;;;;;;;;;;;;;;;;ACGY;;;;;;ICFnC,yEAA0H;IAElH,oEAAoE;IACxE,4DAAI;;;IAH+D,2FAA2B;IAC3F,0DAAgC;IAAhC,6JAAgC;IAC1B,0DAA8C;IAA9C,2KAA8C;;;;IAH/D,yEAAoN;IAA7E,uSAAc,wBAAiB,IAAI,CAAC,IAAC,+OAAe,wBAAiB,KAAK,CAAC,IAAtC;IACxK,oHAIM;IACN,gFAAgH;IACpH,4DAAM;;;IAPqD,oGAAsC;IACvF,0DAA+D;IAA/D,yIAA+D;IAKpD,0DAA2B;IAA3B,2FAA2B;;;IAIhD,0EAAiE;IAC7D,wEAES;IACX,4DAAM;;;IAH6B,0DAA2B;IAA3B,2FAA2B;;ADD7D,MAAM,kBAAkB;IAM3B,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAJ3C,uBAAkB,GAAW,wEAA8B,CAAC;QAE5D,oBAAe,GAAY,KAAK,CAAC;IAEa,CAAC;IAErC,QAAQ;QACd,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,GAAG,GAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gBACvB,GAAG,IAAI,aAAa,CAAC;aACxB;iBAAM;gBACH,GAAG,IAAI,aAAa,CAAC;aACxB;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;SAC7D;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,IAAa;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,CAAC;;oFAxBQ,kBAAkB;gHAAlB,kBAAkB;QCX/B,yEAAkC;QAC9B,8GAOM;QACV,4DAAM;QACN,yEAAkC;QAC9B,8GAIQ;QACZ,4DAAM;;QAfI,0DAA4B;QAA5B,4FAA4B;QAUC,0DAA4B;QAA5B,4FAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVpB;AACmB;AACL;AAEH;AACL;AACQ;AACH;AAEJ;AACD;AACe;AACM;AACZ;AACkD;AACvB;AAClB;AACA;AACM;AACuB;AACT;AACH;AACH;AACX;AACvB;AACS;AACuD;AAC5C;;AAsChE,MAAM,UAAU;;oEAAV,UAAU;wGAAV,UAAU;6GAxBR;QACP,+DAAW;QACX,uEAAmB;QACnB,8DAAU;KACb,YAfQ;YACL,0DAAY;YACZ,mEAAiB;YACjB,+DAAY;YACZ,wDAAW;YACX,gEAAmB;YACnB,qEAAc;YACd,wEAAgB;YAChB,kEAAa;SAChB;oIA0BQ,UAAU,mBAlBf,+DAAa;QACb,6EAAiB;QACjB,mFAAmB;QACnB,yHAA+B;QAC/B,mGAAwB;QACxB,iFAAkB;QAClB,iFAAkB;QAClB,uFAAoB;QACpB,8GAA2B;QAC3B,qGAAwB;QACxB,kGAAuB;QACvB,+FAAsB;QACtB,oFAAmB;QACnB,sEAAe;QACf,6HAAgC;QAChC,iFAAkB,aA/BlB,0DAAY;QACZ,mEAAiB;QACjB,+DAAY;QACZ,wDAAW;QACX,gEAAmB;QACnB,qEAAc;QACd,wEAAgB;QAChB,kEAAa,aAEP,mFAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;ACjC2B;;;;;;;;;;;;AAUrD,MAAM,aAAc,SAAQ,sEAAa;IAQ5C,YACY,aAA4B,EAC5B,WAAwB,EACxB,KAAqB,EACrB,MAAc;QAEtB,KAAK,EAAE,CAAC;QALA,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QAV1B,YAAO,GAAiB,EAAE,CAAC;QAE3B,SAAI,GAAe,EAAE,CAAC;QAYlB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE;YAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CACL,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAc,EAAE,EAAE;YAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAE3B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAgB,EAAE,EAAE;gBAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACrB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAC7C,CAAC,IAA+B,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CACnE,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE;YACrC,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;YAC1C,2BAA2B;SAC9B;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;aACzB;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACxB;SACJ;IACL,CAAC;IAEO,UAAU;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;YAC1C,IAAI,EAAE,CAAC,OAAoB,EAAE,EAAE;gBAC3B,IAAI,OAAO,CAAC,aAAa,EAAE;oBACvB,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;qBAClC;yBAAM;wBACH,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;qBAC9D;iBACJ;qBAAM;oBACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;iBAClC;YACL,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;;0EA5EQ,aAAa;2GAAb,aAAa;;;;;;QClB1B,yEAAyC;QACrC,iFAA2C;QAE3C,yEAAsB;QAClB,uEAAuB;QAE3B,4DAAM;QACN,yEAAwB;QAEhB,4EAA+C;QACnD,4DAAM;QAEV,yEAA0B;QACtB,gFAAuC;QAC3C,4DAAM;;QALe,0DAAmB;QAAnB,gFAAmB;;;;;;;;;;;;;;;;;;ACJrC,MAAM,cAAc;IAGvB,YAAoB,EAAc,EAAU,QAAmB;QAA3C,OAAE,GAAF,EAAE,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAW;IAAI,CAAC;IAEpE,QAAQ;QACJ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACtB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACP,CAAC;;4EATQ,cAAc;4GAAd,cAAc;;;;;;;;;;;;;;;;;;ACL8D;AAG9C;;;AAOpC,MAAM,2BAA2B;IALxC;QAMc,mBAAc,GAA0B,IAAI,uDAAY,EAAW,CAAC;QAC9E,0BAAqB,GAA0B,IAAI,uDAAY,EAAW,CAAC;QAI3E,kBAAa,GAAW,mEAAyB,CAAC;KAarD;IAXG,kBAAkB;QACd,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,OAAe;QAClB,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;;sGAlBQ,2BAA2B;yHAA3B,2BAA2B;QCVxC,sEAAK;QAEmC,oJAAW,wBAAoB,IAAC,wFAAU,wBAAoB,IAA9B;QADpE,4DACiH;;QADnD,0DAAwB;QAAxB,wHAAwB;QAAjF,oNAAwD;;;;;;;;;;;;;;;;;;;;;ACDc;AACE;AAEtC;AAEe;;;;;ICHlD,yEAAgJ;IAAhF,oSAAS,iBAAU,CAAC,CAAC,IAAC;IAClF,oEAAiC;IACrC,4DAAM;;;IAFiF,oIAAwD;;;;IAI3I,0EACsI;IAA/B,oSAAS,2BAAoB,IAAC;IACrI,4DAAM;;;;IADD,sKAAiG;IADb,oFAA6B;IAAhF,4FAAgC;;;;IAI1E,0EAAgL;IAA/E,sSAAS,iBAAS,CAAC,CAAC,IAAC;IAClH,qEAA6B;IACjC,4DAAM;;;IAFiH,oIAAwD;;;IAInL,wEAAwD;IAAA,uDAA8C;IAAA,4DAAI;;;IAAlD,0DAA8C;IAA9C,yHAA8C;;;IAd1G,sEAAiC;IAEzB,oHAEM;IACN,yEAAyC;IACrC,oHAEM;IACV,4DAAM;IACN,oHAEM;IACV,4DAAM;IACN,gHAA0G;IAAA,gEAAK;IAEnH,4DAAM;;;IAdwC,0DAAwB;IAAxB,2FAAwB;IAInC,0DAAa;IAAb,sFAAa;IAIN,0DAA6D;IAA7D,8IAA6D;IAItE,0DAAyB;IAAzB,4FAAyB;;ADUnD,MAAM,kBAAkB;IAjB/B;QAkBI,kBAAa,GAAW,mEAAyB,CAAC;QAExC,sBAAiB,GAAyB,IAAI,uDAAY,EAAU,CAAC;QACrE,kBAAa,GAA0B,IAAI,uDAAY,EAAW,CAAC;QACpE,WAAM,GAAuB,EAAE,CAAC;QAChC,kBAAa,GAAW,CAAC,CAAC;QAmBnC,eAAU,GAAqB,EAAE,CAAC;KA0ErC;IA5FG,IACI,kBAAkB,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;YAC/B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;oBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;iBAC/C;gBACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;IACL,CAAC;IACD,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAKD,QAAQ;QACJ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,MAAM,UAAU,GAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,oEAAc,EAAE,CAAC;gBAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC;aAC7C;YAED,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAEjC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;SAC3B;IACL,CAAC;IAEO,QAAQ,CAAC,SAAiB;QAC9B,IAAI,QAAQ,GAAW,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QACvD,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SACrC;QAED,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAChC,QAAQ,GAAG,CAAC,CAAC;SAChB;QAED,IAAI,QAAQ,KAAK,IAAI,CAAC,cAAc,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;IACL,CAAC;IAEO,WAAW;QACf,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9B,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBAChD,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;iBACxB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,UAAkB,EAAE,UAAkB;QAC5C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,UAAkB,EAAE,UAAkB;QAC5C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC;IACxD,CAAC;IAEO,aAAa,CAAC,KAAuB;QACzC,MAAM,iBAAiB,GAAW,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACtG,IAAI,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE;YACxC,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SAC5D;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,MAAM,CAAC,OAAe;QAC1B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAEO,kBAAkB;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;;oFAlGQ,kBAAkB;gHAAlB,kBAAkB;QCxB/B,8GAgBM;;QAhBA,yFAAyB;09JDWf;YACR,4DAAO,CAAC,YAAY,EAAE;gBAClB,0DAAK,CAAC,MAAM,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpC,0DAAK,CAAC,MAAM,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpC,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC7D,0DAAK,CAAC,SAAS,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC9D,+DAAU,CAAC,WAAW,EAAE,CAAC,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,4DAAO,CAAC,OAAO,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzF,+DAAU,CAAC,WAAW,EAAE,CAAC,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,4DAAO,CAAC,aAAa,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/F,+DAAU,CAAC,aAAa,EAAE,CAAC,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,4DAAO,CAAC,aAAa,CAAC,CAAC,CAAC;gBACjG,+DAAU,CAAC,cAAc,EAAE,CAAC,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,4DAAO,CAAC,OAAO,CAAC,CAAC,CAAC;aAC/F,CAAC;SACL;;;;;;;;;;;;;;;;;;;;;AEtB4F;AAGtD;;;;;;;;ICH3C,sEAAkB;IACqB,+RAAS,0BAAmB,IAAC;IAAC,4DAAM;IACvE,yEAGuE;IAEnC,uDAAgB;IAAA,4DAAK;IACjD,yEAA8B;IACiC,6SAAgB,KAAK,IAAE;IAAlF,4DAAoF;IAG5F,oEAA+B;IAC/B,yEAAuB;IACqF,qUAAqB,kCAA2B,IAAC,qQAAkB,mCAA4B,IAA9C;IAAgD,4DAAa;IAE1N,0EAA2B;IAC+E,+UAAwB,qCAA8B,IAAC;IAAC,4DAAiB;IAGvL,2EAA2F;IACxC,yUAAkB,mCAA4B,IAAC;IAAC,4DAAuB;;;IAnBzF,0DAAoD;IAApD,+GAAoD;IAKjD,0DAAgB;IAAhB,oFAAgB;IAEnC,0DAAyC;IAAzC,wLAAyC;IAKtC,0DAAyC;IAAzC,yGAAyC;IAGrC,0DAAiB;IAAjB,iFAAiB;IAGF,0DAAmD;IAAnD,8GAAmD;IAChE,0DAAwB;IAAxB,wFAAwB;;ADX/C,MAAM,oBAAoB;IALjC;QAMc,sBAAiB,GAA0B,IAAI,uDAAY,EAAW,CAAC;QAuBjF,uBAAkB,GAAW,wEAA8B,CAAC;QAE5D,mBAAc,GAAY,KAAK,CAAC;KAkEnC;IAvFG,IACI,IAAI,CAAC,KAAc;QACnB,IAAI,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;YAChC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE;gBACR,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC;iBAAM;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAChD;SACJ;IACL,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAWD,QAAQ;QACJ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACxC;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;YAC3E,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YACrE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;SAC5B;IACL,CAAC;IAED,sBAAsB,CAAC,KAAa;QAChC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,kBAAkB,KAAK,KAAK,EAAE;YACnC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACnC;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IACjC,CAAC;IAEO,gBAAgB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,iBAAiB,GAAW,CAAC,CAAC;YAClC,IAAI,QAAQ,GAAW,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAuB,EAAE,EAAE;gBAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtD,iBAAiB,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACvE,IAAI,iBAAiB,GAAG,QAAQ,EAAE;wBAC9B,QAAQ,GAAG,iBAAiB,CAAC;qBAChC;iBACJ;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;SACpC;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAEO,oBAAoB,CAAC,SAAkB;QAC3C,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IACpC,CAAC;IAEO,SAAS,CAAC,GAAQ;QACtB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;IACL,CAAC;;wFA3FQ,oBAAoB;kHAApB,oBAAoB;QCVjC,kHAuBM;;QAvBA,0EAAU;;;;;;;;;;;;;;;;;;;;;;;;;ACCoB;AAEO;AACY;;;;;;;;ICAvD,yEAAqD;IAC+D,uSAAU,0BAAmB,IAAC;IAA9I,4DAAgJ;IAChJ,2EAAiF;IAAzB,+RAAS,mBAAY,IAAC;IAA9E,4DAAiF;IACjF,yEAA+B;IAC3B,wEAAY;IAAA,4EAAmF;IAA1C,kWAAuC;IAAhF,4DAAmF;;;IAA1C,0DAAuC;IAAvC,qGAAuC;;;IAgBpF,uEAAuC;IAAA,uDAA+C;;IAAA,4DAAO;;;IAAtD,0DAA+C;IAA/C,gKAA+C;;;;IAH9F,yEAAuK;IAAzG,0VAAS,mDAAsC,IAAC;IAC1G,qEAAI;IAAA,uDAA4B;;IAAA,4DAAK;IACrC,qEAAI;IAAA,uDAAgB;IAAA,4DAAK;IACzB,qEAAI;IAAA,uHAA6F;IAAA,4DAAK;IACtG,qEAAI;IAAA,uDAAuC;;IAAA,4DAAK;;;IAJ2D,+GAAuD;IAC9J,0DAA4B;IAA5B,iJAA4B;IAC5B,0DAAgB;IAAhB,gFAAgB;IACT,0DAA8B;IAA9B,6FAA8B;IACrC,0DAAuC;IAAvC,6JAAuC;;ADXhD,MAAM,kBAAkB;IAiB3B,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAhBlD,qBAAgB,GAAW,sEAA4B,CAAC;IAgBF,CAAC;IAEvD,QAAQ;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAChE;IACL,CAAC;IAED,OAAO,CAAC,YAAoB,EAAE,QAAkB;QAC5C,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CACjF,CAAC,IAAU,EAAE,EAAE,GAAG,kDAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;SACL;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,QAAQ,GAAa,IAAI,QAAQ,EAAE,CAAC;YAC1C,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAC9C,CAAC,QAAa,EAAE,EAAE;gBACd,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;YAC9D,CAAC,CACJ,CAAC;SACL;IACL,CAAC;IAED,UAAU;QACN,MAAM,QAAQ,GAAmB;YAC7B,UAAU,EAAG,IAAI;YACjB,YAAY,EAAE,EAAE;YAChB,mBAAmB,EAAE,IAAI,CAAC,yBAAyB;YACnD,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,gBAAgB,EAAE,IAAI,CAAC,wBAAwB;SAClD,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,SAAS,CACnE,GAAG,EAAE;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,6BAA6B;YAC7B,MAAM,MAAM,GAAkB,IAAI,iEAAa,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC9C,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAE7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1B,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CACJ,CAAC;IACN,CAAC;;oFAtFQ,kBAAkB;gHAAlB,kBAAkB;QCd/B,uEAA0B;QAChB,uDAAuB;QAAA,4DAAO;QACpC,uEAAiH;QAAzB,qIAAS,kBAAc,IAAC;QAAC,iEAAM;QAAA,4DAAI;QAE/H,8GAMM;QACN,2EAAkG;QAGlF,gEAAI;QAAA,4DAAK;QACb,sEAAI;QAAA,gEAAI;QAAA,4DAAK;QACb,sEAAI;QAAA,gEAAI;QAAA,4DAAK;QACb,sEAAI;QAAA,oEAAQ;QAAA,4DAAK;QAGzB,yEAAO;QACH,gHAKK;QACT,4DAAQ;;QA1BF,0DAAuB;QAAvB,wFAAuB;QAG3B,0DAAgB;QAAhB,gFAAgB;QAiBS,2DAAiB;QAAjB,uFAAiB;;;;;;;;;;;;;;;;;;;;AClBL;;;;;ICInB,oEAA8J;;;;IAA3D,4MAAwD;;;;;IAHnK,uEAA2H;IAEnH,oEAA2F;IAC3F,6HAA8J;IAClK,4DAAM;IACN,sEAAK;IAAkC,uDAAgB;IAAA,4DAAO;;;;IALxC,mMAAsE;IAEtE,0DAA+C;IAA/C,mMAA+C;IAAC,2FAAsB;IAClF,0DAAyE;IAAzE,6IAAyE;IAE5C,0DAAgB;IAAhB,gFAAgB;;;IAOnD,oEAA+J;;;;IAA5D,4MAAwD;;;IAHnK,uEAA2H;IAEnH,oEAA2F;IAC3F,6HAA+J;IACnK,4DAAM;IACN,sEAAK;IAAkC,uDAAgB;IAAA,4DAAO;;;;IALxC,mMAAsE;IAEtE,0DAA+C;IAA/C,mMAA+C;IAAC,2FAAsB;IAClF,0DAAyE;IAAzE,6IAAyE;IAE5C,0DAAgB;IAAhB,gFAAgB;;;IAOnD,oEAA8J;;;;IAA3D,6MAAwD;;;IAHnK,uEAA2H;IAEnH,oEAA2F;IAC3F,6HAA8J;IAClK,4DAAM;IACN,sEAAK;IAAkC,uDAAgB;IAAA,4DAAO;;;;IALxC,mMAAsE;IAEtE,0DAA+C;IAA/C,mMAA+C;IAAC,2FAAsB;IAClF,0DAAyE;IAAzE,6IAAyE;IAE5C,0DAAgB;IAAhB,gFAAgB;;;IAOnD,oEAA8J;;;;IAA3D,6MAAwD;;;IAHnK,uEAA2H;IAEnH,oEAA2F;IAC3F,6HAA8J;IAClK,4DAAM;IACN,sEAAK;IAAkC,uDAAgB;IAAA,4DAAO;;;;IALxC,mMAAsE;IAEtE,0DAA+C;IAA/C,mMAA+C;IAAC,2FAAsB;IAClF,0DAAyE;IAAzE,6IAAyE;IAE5C,0DAAgB;IAAhB,gFAAgB;;;IAlCnE,qEAAkC;IAE1B,sHAMI;IACR,4DAAK;IACL,qEAAI;IACA,sHAMI;IACR,4DAAK;IACL,qEAAI;IACA,sHAMI;IACR,4DAAK;IACL,qEAAI;IACA,sHAMI;IACR,4DAAK;;;IAlCG,0DAAoB;IAApB,mFAAoB;IASpB,0DAAoB;IAApB,mFAAoB;IASpB,0DAAoB;IAApB,mFAAoB;IASpB,0DAAoB;IAApB,mFAAoB;;ADrBjC,MAAM,wBAAwB;IALrC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KA2BrD;IAtBG,WAAW,CAAC,QAAyB;QACjC,MAAM,QAAQ,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;gBACxB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE;oBAChC,MAAM;iBACT;gBAED,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;oBACjC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;iBAC1B;gBAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAChD;SACJ;IACL,CAAC;;gGA3BQ,wBAAwB;sHAAxB,wBAAwB;QCVrC,sEAAK;QAEG,kHAqCK;QACT,4DAAQ;;QAtCgB,0DAAY;QAAZ,kFAAY;;;;;;;;;;;;;;;;;;;;;;;IEApC,0EAA2D;IAAA,gEAAM;IAAK,4DAAO;;;IAA5C,uJAAyB;;;IAF9D,uEAAyE;IACrE,qEAA2D;IAAA,kEAC3D;IAAA,6HAA6E;IACjF,4DAAI;;;IAFgC,0DAAmB;IAAnB,iJAAmB;IAC5C,0DAAwB;IAAxB,2FAAwB;;;IAEnC,0EAA6E;IACzE,qEAA2D;IAC/D,4DAAO;;;IAD6B,0DAAmB;IAAnB,iJAAmB;;;IAEvD,uEAAoG;IAAA,gEAAM;IAAK,4DAAI;;;IAApE,uJAAyB;;ADCjE,MAAM,2BAA2B;IAMpC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAI,CAAC;IAEhD,cAAc,CAAC,WAAmB;QAC9B,IAAI,WAAW,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACnC;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;IACL,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,KAAK,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;;sGAxBQ,2BAA2B;yHAA3B,2BAA2B;QCRxC,mHAGI;QACJ,yHAEO;QACP,mHAAmH;;QAP/G,4GAAwC;QAIrC,0DAAyC;QAAzC,6GAAyC;QAG5C,0DAAyC;QAAzC,6GAAyC;;;;;;;;;;;;;;;;;;;;ACCtC,MAAM,6BAA6B;IAGtC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAI,CAAC;IAEhD,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;;0GAPQ,6BAA6B;2HAA7B,6BAA6B;QCR1C,oEAA4E;QAC5E,uEAAyB;QACrB,qEAAmC;QACvC,4DAAI;;QADM,0DAAqB;QAArB,gJAAqB;;;;;;;;;;;;;;;;;;;;;;;ACOxB,MAAM,kCAAkC;IAL/C;QAQI,cAAS,GAAW,MAAM,CAAC;KAS9B;IAPG,IAAI;QACA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI;QACA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAC5B,CAAC;;oHAXQ,kCAAkC;gIAAlC,kCAAkC;QCT/C,yEAAsF;QAClF,mFAAkF;QACtF,4DAAM;;QAFD,qFAAe;QAA6B,yJAAoC;QAC7D,0DAAgB;QAAhB,6EAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgBmE;AACjB;AACH;AACA;AACY;AACZ;AACY;AAClB;AACoB;AACM;AACnC;AACuB;;;;AAOxF,MAAM,yBAAyB;IASlC,YACY,cAA8B,EAC9B,aAA4B,EAC5B,wBAAkD,EAClD,gBAAkC;QAHlC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAe;QAC5B,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,qBAAgB,GAAhB,gBAAgB,CAAkB;IAC1C,CAAC;IAEL,QAAQ;QACJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAC9E,CAAC,QAAyB,EAAE,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;SAC5C;IACL,CAAC;IAEO,cAAc,CAAC,OAAwB;QAC3C,MAAM,YAAY,GAAW,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAClE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;YAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC3E,QAAQ,MAAM,CAAC,UAAU,EAAE;oBAC3B,KAAK,SAAS;wBACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBACzB,MAAM;oBACV,KAAK,aAAa;wBACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;wBAC7B,MAAM;oBACV,KAAK,SAAS;wBACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBACzB,MAAM;oBACV,KAAK,aAAa;wBACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;wBAC7B,MAAM;oBACV,KAAK,OAAO;wBACR,MAAM;oBACV,KAAK,eAAe;wBAChB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBACvB,MAAM;oBACV,KAAK,YAAY;wBACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;wBAC3B,MAAM;oBACV,KAAK,eAAe;wBAChB,MAAM;oBACV,KAAK,aAAa;wBACd,MAAM;oBACV,KAAK,YAAY;wBACb,MAAM;oBACV;wBACI,MAAM;iBACT;aACJ;SACJ;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CACjF,CAAC,QAAyB,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CACnF,CAAC;QAEF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAC/E,CAAC,QAAyB,EAAE,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAClF,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CACzF,CAAC,QAAgC,EAAE,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACnF,CAAC;IACN,CAAC;IAEO,sBAAsB,CAAC,eAAuC;QAClE,IAAI,eAAe,EAAE;YACjB,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;oBACtE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;iBAC1D;aACJ;YACD,IAAI,eAAe,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,IAAI,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;oBACrE,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;iBAC3D;aACJ;YACD,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,IAAI,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;oBAC1D,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;iBACrC;aACJ;SACJ;IACL,CAAC;IAEO,eAAe,CAAC,QAAyB,EAAE,YAAoB;QACnE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;gBAC/C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;aAC7C;SACJ;IACL,CAAC;IAEO,cAAc,CAAC,eAAgC,EAAE,YAAoB;QACzE,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACzF,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9D,OAAO;aACV;YAED,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;gBACtD,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5D,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mHAA6B,CAAC,CAAC;oBACzF,MAAM,GAAG,GAAgD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBAExG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAClD,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;oBAEtC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAChC;gBAED,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;aACnD;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,QAAyB,EAAE,YAAoB;QAChE,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,kGAAwB,CAAC,CAAC;QACpF,MAAM,GAAG,GAA2C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEnG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,WAAW,CAAC,eAAgC,EAAE,YAAoB;QACtE,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,+FAAuB,CAAC,CAAC;QACnF,MAAM,GAAG,GAA0C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAElG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACzC,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,WAAW,CAAC,MAAqB;QACrC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,+FAAuB,CAAC,CAAC;QACnF,MAAM,GAAG,GAA0C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAElG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,MAAqB;QACzC,IAAI,MAAM,CAAC,SAAS,EAAE;YAClB,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mHAA6B,CAAC,CAAC;YACzF,MAAM,GAAG,GAAgD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAExG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACzC;aAAM;YACH,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,2GAA2B,CAAC,CAAC;YACvF,MAAM,GAAG,GAA8C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEtG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAChD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACzC;IACL,CAAC;IAEO,WAAW,CAAC,MAAqB;QACrC,IAAI,MAAM,CAAC,SAAS,EAAE;YAClB,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mHAA6B,CAAC,CAAC;YACzF,MAAM,GAAG,GAAgD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAExG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACzC;aAAM;YACH,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,+FAAuB,CAAC,CAAC;YACnF,MAAM,GAAG,GAA0C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAElG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAC9C,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACzC;IACL,CAAC;IAEO,eAAe,CAAC,MAAqB;QACzC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,2GAA2B,CAAC,CAAC;QACvF,MAAM,GAAG,GAA8C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEtG,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,CAAC,MAAqB;QAC3B,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,yFAAqB,CAAC,CAAC;QACjF,MAAM,GAAG,GAAwC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhG,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC/C,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,MAAqB;QAC/B,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,wGAAyB,CAAC,CAAC;QACrF,MAAM,GAAG,GAA4C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEpG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAClD,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,gBAAgB,CAAC,OAAwB;QAC7C,MAAM,OAAO,GACb,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,6GAA2B,CAAC,CAAC;QACnF,MAAM,GAAG,GAA8C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEtG,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,kBAAkB,CAAC,OAAwB;QAC/C,MAAM,OAAO,GACb,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mHAA6B,CAAC,CAAC;QACrF,MAAM,GAAG,GAAgD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAExG,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,OAAO,CAAC,OAAwB;QACpC,MAAM,OAAO,GACb,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,iFAAkB,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAqC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE7F,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;;kGArQQ,yBAAyB;wHAAzB,yBAAyB;;;;;;;;;;;;;;;;;;;;AChB4D;;;;;AAO3F,MAAM,sBAAsB;IAM/B,YACY,aAA4B,EAC5B,cAA8B,EAC9B,KAAqB,EACrB,wBAAkD,EAClD,gBAAkC;QAJlC,kBAAa,GAAb,aAAa,CAAe;QAC5B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,UAAK,GAAL,KAAK,CAAgB;QACrB,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAE1C,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CACnD,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;IACL,CAAC;IAED,WAAW,CAAC,OAAsB;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC;IACL,CAAC;IAEO,cAAc,CAAC,IAA0B;QAC7C,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,0GAA0B,CAAC,CAAC;QACtF,MAAM,GAAG,GAA6C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAErG,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACzB,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;;4FA1CQ,sBAAsB;oHAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;ACzBC;AAEO;AACY;;;;;;;;ICAvD,yEAAqD;IAC+D,kTAAU,0BAAmB,IAAC;IAA9I,4DAAgJ;IAChJ,2EAAiF;IAAzB,0SAAS,mBAAY,IAAC;IAA9E,4DAAiF;IACjF,yEAA+B;IAC3B,wEAAY;IAAA,4EAAmF;IAA1C,6WAAuC;IAAhF,4DAAmF;;;IAA1C,0DAAuC;IAAvC,qGAAuC;;;IAgBpF,uEAAuC;IAAA,uDAA+C;;IAAA,4DAAO;;;IAAtD,0DAA+C;IAA/C,gKAA+C;;;;IAH9F,yEAAuK;IAAzG,qWAAS,mDAAsC,IAAC;IAC1G,qEAAI;IAAA,uDAA4B;;IAAA,4DAAK;IACrC,qEAAI;IAAA,uDAAgB;IAAA,4DAAK;IACzB,qEAAI;IAAA,kIAA6F;IAAA,4DAAK;IACtG,qEAAI;IAAA,uDAAuC;;IAAA,4DAAK;;;IAJ2D,+GAAuD;IAC9J,0DAA4B;IAA5B,iJAA4B;IAC5B,0DAAgB;IAAhB,gFAAgB;IACT,0DAA8B;IAA9B,6FAA8B;IACrC,0DAAuC;IAAvC,6JAAuC;;ADXhD,MAAM,6BAA6B;IAiBtC,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAhBlD,qBAAgB,GAAW,sEAA4B,CAAC;QAQxD,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAChC,8BAAyB,GAAW,EAAE,CAAC;QAEvC,qBAAgB,GAAW,EAAE,CAAC;QAC9B,qBAAgB,GAAW,EAAE,CAAC;QAC9B,6BAAwB,GAAW,EAAE,CAAC;IAEgB,CAAC;IAEvD,QAAQ;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAChE;IACL,CAAC;IAED,OAAO,CAAC,YAAoB,EAAE,QAAkB;QAC5C,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CACjF,CAAC,IAAU,EAAE,EAAE,GAAG,kDAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;SACL;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,QAAQ,GAAa,IAAI,QAAQ,EAAE,CAAC;YAC1C,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAC9C,CAAC,QAAa,EAAE,EAAE;gBACd,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;YAC9D,CAAC,CACJ,CAAC;SACL;IACL,CAAC;IAED,UAAU;QACN,MAAM,QAAQ,GAAmB;YAC7B,UAAU,EAAG,aAAa;YAC1B,YAAY,EAAE,EAAE;YAChB,mBAAmB,EAAE,IAAI,CAAC,yBAAyB;YACnD,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,gBAAgB,EAAE,IAAI,CAAC,wBAAwB;SAClD,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,SAAS,CACnE,GAAG,EAAE;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,6BAA6B;YAC7B,MAAM,MAAM,GAAkB,IAAI,iEAAa,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC9C,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAE7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1B,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CACJ,CAAC;IACN,CAAC;;0GAtFQ,6BAA6B;2HAA7B,6BAA6B;QCd1C,uEAA0B;QAChB,uDAAuB;QAAA,4DAAO;QACpC,uEAAiH;QAAzB,gJAAS,kBAAc,IAAC;QAAC,iEAAM;QAAA,4DAAI;QAE/H,yHAMM;QACN,2EAAkG;QAGlF,gEAAI;QAAA,4DAAK;QACb,sEAAI;QAAA,gEAAI;QAAA,4DAAK;QACb,sEAAI;QAAA,gEAAI;QAAA,4DAAK;QACb,sEAAI;QAAA,oEAAQ;QAAA,4DAAK;QAGzB,yEAAO;QACH,2HAKK;QACT,4DAAQ;;QA1BF,0DAAuB;QAAvB,wFAAuB;QAG3B,0DAAgB;QAAhB,gFAAgB;QAiBS,2DAAiB;QAAjB,uFAAiB;;;;;;;;;;;;;;;;;;;;;IEpB5C,oEAAyB;IAAA,uDAAe;IAAA,4DAAI;;;IAAnB,0DAAe;IAAf,4FAAe;;;IACxC,uEAAgC;IAAA,uDAAe;IAAA,4DAAO;;;IAAtB,0DAAe;IAAf,mFAAe;;ADK5C,MAAM,uBAAuB;;8FAAvB,uBAAuB;qHAAvB,uBAAuB;QCPpC,wEAAoC;QAChC,+GAA4C;QAC5C,qHAAsD;QAC1D,4DAAK;;QAFG,0DAAkB;QAAlB,kFAAkB;QACf,0DAAuB;QAAvB,wFAAuB;;;;;;;;;;;;;;;;;;;;;;;;;ACDE;AAEO;AACY;;;;;;;ICCI,yEAA8C;IAAA,uDAAwB;IAAA,4DAAS;;;IAAjC,0DAAwB;IAAxB,wFAAwB;;;;IADjI,yEAAqD;IACjD,0EAAc;IAAA,4EAAyC;IAAjC,qWAAgC;IAAC,mIAA+E;IAAA,4DAAS;IAC/I,yEACA;IAAA,2EAAgJ;IAAhC,gTAAU,0BAAmB,IAAC;IAA9I,4DAAgJ;IAChJ,4EAAiF;IAAzB,wSAAS,mBAAY,IAAC;IAA9E,4DAAiF;IACjF,0EAA+B;IAC3B,wEAAY;IAAA,4EAAmF;IAA1C,2WAAuC;IAAhF,4DAAmF;;;IAL7E,0DAAgC;IAAhC,8FAAgC;IAA6B,0DAAgB;IAAhB,yFAAgB;IAK1C,0DAAuC;IAAvC,qGAAuC;;;IAiBpF,uEAA8B;IAAA,uDAA+C;;IAAA,4DAAO;;;IAAtD,0DAA+C;IAA/C,gKAA+C;;;;IAJrF,yEAAuK;IAAzG,oWAAS,oDAAsC,IAAC;IAC1G,qEAAI;IAAA,uDAA4B;;IAAA,4DAAK;IACrC,qEAAI;IAAA,uDAAuB;IAAA,4DAAK;IAChC,qEAAI;IAAA,uDAAgB;IAAA,4DAAK;IACzB,qEAAI;IAAA,gIAAoF;IAAA,4DAAK;;;IAJc,+GAAuD;IAC9J,0DAA4B;IAA5B,iJAA4B;IAC5B,0DAAuB;IAAvB,uFAAuB;IACvB,0DAAgB;IAAhB,gFAAgB;IACT,0DAAqB;IAArB,oFAAqB;;ADZrC,MAAM,2BAA2B;IAkBpC,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAflD,qBAAgB,GAAW,sEAA4B,CAAC;IAeF,CAAC;IAEvD,QAAQ;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAChE;IACL,CAAC;IAED,OAAO,CAAC,YAAoB,EAAE,QAAkB;QAC5C,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CACjF,CAAC,IAAU,EAAE,EAAE,GAAG,kDAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;SACL;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,SAAS,CACpD,CAAC,QAAuC,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAClF,CAAC;IACN,CAAC;IAED,YAAY;QACR,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,QAAQ,GAAa,IAAI,QAAQ,EAAE,CAAC;YAC1C,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAC9C,CAAC,QAAa,EAAE,EAAE;gBACd,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;YAC9D,CAAC,CACJ,CAAC;SACL;IACL,CAAC;IAED,UAAU;QACN,MAAM,QAAQ,GAAmB;YAC7B,UAAU,EAAG,aAAa;YAC1B,YAAY,EAAE,IAAI,CAAC,kBAAkB;YACrC,mBAAmB,EAAE,IAAI,CAAC,yBAAyB;YACnD,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,gBAAgB,EAAE,IAAI,CAAC,wBAAwB;SAClD,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,SAAS,CACnE,GAAG,EAAE;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,6BAA6B;YAC7B,MAAM,MAAM,GAAkB,IAAI,iEAAa,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC9C,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC;YAE9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1B,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CACJ,CAAC;IACN,CAAC;;sGA9FQ,2BAA2B;yHAA3B,2BAA2B;QCfxC,uEAA0B;QAChB,uDAAuB;QAAA,4DAAO;QACpC,uEAAiH;QAAzB,8IAAS,kBAAc,IAAC;QAAC,iEAAM;QAAA,4DAAI;QAE/H,wHAQM;QACN,2EAAkG;QAGlF,gEAAI;QAAA,4DAAK;QACb,sEAAI;QAAA,uEAAW;QAAA,4DAAK;QACpB,sEAAI;QAAA,gEAAI;QAAA,4DAAK;QACb,sEAAI;QAAA,gEAAI;QAAA,4DAAK;QAGrB,yEAAO;QACH,wHAKK;QACT,4DAAQ;;QA5BF,0DAAuB;QAAvB,wFAAuB;QAG3B,0DAAgB;QAAhB,gFAAgB;QAmBS,2DAAiB;QAAjB,uFAAiB;;;;;;;;;;;;;;;;;;;ACrBL;;;;ICAvC,uEAAiC;IAAA,uDAA4B;IAAA,4DAAO;;;IAAnC,0DAA4B;IAA5B,yGAA4B;;ADO1D,MAAM,yBAAyB;IALtC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KAiBrD;;kGAlBY,yBAAyB;uHAAzB,yBAAyB;QCTtC,oEAAG;QACgF,uDAAS;QAAA,4DAAI;QAC5F,uHAAoE;QACxE,4DAAI;;QAFG,0DAAyC;QAAzC,2LAAyC;QAAmC,0DAAS;QAAT,0EAAS;QACjF,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IEA3B,qEAAkC;IAG4C,uDAAkB;IAAA,4DAAO;;;;IAF/F,0DAA8B;IAA9B,iGAA8B;IAC3B,0DAAwF;IAAxF,mOAAwF;IACjF,0DAA2D;IAA3D,wKAA2D;IAAC,0DAAkB;IAAlB,kFAAkB;;ADQjG,MAAM,oBAAoB;IAU7B,YAAoB,aAA4B,EAAU,cAA8B,EAAU,KAAqB;QAAnG,kBAAa,GAAb,aAAa,CAAe;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAgB;QACnH,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CACnD,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;YACf,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAC/C,CAAC,IAAmB,EAAE,EAAE;gBACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;iBACvG;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CACJ,CAAC;QAEN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;IACL,CAAC;IAED,QAAQ,CAAC,IAAiB;QACtB,IAAI,QAAa,CAAC;QAElB,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;YAC9D,QAAQ,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC7C,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC7C,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACtG;aAAM,EAAK,yCAAyC;YACjD,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACtG;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;;wFAzDQ,oBAAoB;kHAApB,oBAAoB;QCbjC,yEAA2B;QAEnB,+GAMK;QACT,4DAAQ;;QAPqB,0DAAO;QAAP,6EAAO;;;;;;;;;;;;;;;;;;;;;;;;;ACKG;;;;;;;;;;;ICNvC,yEAAoL;IAC1G,iTAAa,aAAM,OAAO,CAAC,IAAC,uPAAa,aAAM,OAAO,CAAC,IAA3B,iPAAgE,qBAAc,IAA9E;IAAgF,4DAAI;;;IAA5J,0DAA2C;IAA3C,uGAA2C;;;;IAEzE,yEAAoL;IAC1G,iTAAa,aAAM,OAAO,CAAC,IAAC,uPAAa,aAAM,OAAO,CAAC,IAA3B,kPAAgE,sBAAc,IAA9E;IAAgF,4DAAI;;;IAA5J,0DAA2C;IAA3C,uGAA2C;;;IAL7E,yEAAyD;IACrD,2HAEM;IACN,2HAEM;IACV,4DAAM;;;IANI,0DAAuB;IAAvB,0FAAuB;IAGvB,0DAAuB;IAAvB,0FAAuB;;ADY1B,MAAM,yBAAyB;IAqBlC,YACY,cAA8B,EAC9B,aAA4B,EAC5B,aAA4B,EAC5B,KAAqB;QAHrB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QAxBjC,kBAAa,GAAW,mEAAyB,CAAC;QAKlD,UAAK,GAAuB,EAAE,CAAC;QAE/B,eAAU,GAAY,KAAK,CAAC;QAC5B,eAAU,GAAY,KAAK,CAAC;QAC5B,sBAAiB,GAAW,EAAE,CAAC;QAC/B,2BAAsB,GAAW,EAAE,CAAC;QACpC,sBAAiB,GAAW,EAAE,CAAC;QAC/B,2BAAsB,GAAW,EAAE,CAAC;QAEpC,sBAAiB,GAAW,EAAE,CAAC;QAC/B,sBAAiB,GAAW,EAAE,CAAC;QAE/B,WAAM,GAAuB,EAAE,CAAC;QAChC,WAAM,GAAuB,EAAE,CAAC;QAQ5B,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CACnD,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;YACf,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC,KAAyB,EAAE,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC,CACJ,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC,MAAoB,EAAE,EAAE;gBACrB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;YACrC,CAAC,CACJ,CAAC;QACN,CAAC,CACJ,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;IACL,CAAC;IAED,KAAK,CAAC,IAAY;QACd,IAAI,IAAI,KAAK,OAAO,EAAE;YAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC;SACxD;aAAM,EAAE,0BAA0B;YAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC;SACxD;IACL,CAAC;IAED,KAAK,CAAC,IAAY;QACd,IAAI,IAAI,KAAK,OAAO,EAAE;YAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;SACnD;aAAM,EAAE,0BAA0B;YAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;SACnD;IACL,CAAC;IAEO,YAAY,CAAC,KAAyB;QAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACvC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnB,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;oBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC1B;qBAAM,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;oBACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,+BAA+B;iBAClC;qBAAM,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;oBAClD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE;wBAChD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,mEAAyB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC;wBACxF,IAAI,CAAC,sBAAsB,GAAG,QAAQ,mEAAyB,GAAG,IAAI,CAAC,kBAAkB,IAAI,CAAC;qBACjG;yBAAM,EAAK,kBAAkB;wBAC1B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,mEAAyB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC;wBACxF,IAAI,CAAC,sBAAsB,GAAG,QAAQ,mEAAyB,GAAG,IAAI,CAAC,kBAAkB,IAAI,CAAC;qBACjG;iBACJ;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAChD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;SACnD;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAEzC,MAAM,UAAU,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,OAAO,EAAE;YACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;aAAM,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,OAAO,EAAE;YAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;IACL,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,YAAY;QACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,YAAY;QACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,mBAAmB,CAAC,MAAe;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,mBAAmB,CAAC,MAAe;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,kBAAkB,CAAC,OAAe;QAC9B,OAAO,GAAG,SAAS,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CACrD,CAAC,IAAY,EAAE,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CACJ,CAAC;IACN,CAAC;;kGA7IQ,yBAAyB;uHAAzB,yBAAyB;QChBtC,qHAOM;QACN,kFAAoI;QAAlD,qLAAqB,+BAA2B,IAAC;QAAC,4DAAe;QACnJ,kFAAoI;QAAlD,qLAAqB,+BAA2B,IAAC;QAAC,4DAAe;;QATlH,sFAAsB;QAQzC,0DAA6B;QAA7B,0FAA6B;QAC7B,0DAA6B;QAA7B,0FAA6B;;;;;;;;;;;;;;;;;;;;ACPA;;;;;ICMnB,oEAA8J;;;;IAA3D,4MAAwD;;;;;IAHnK,uEAA2H;IAEnH,oEAA2F;IAC3F,4HAA8J;IAClK,4DAAM;IACN,sEAAK;IAAkC,uDAAgB;IAAA,4DAAO;;;;IALxC,mMAAsE;IAEtE,0DAA+C;IAA/C,mMAA+C;IAAC,2FAAsB;IAClF,0DAAyE;IAAzE,6IAAyE;IAE5C,0DAAgB;IAAhB,gFAAgB;;;IAOnD,oEAA+J;;;;IAA5D,4MAAwD;;;IAHnK,uEAA2H;IAEnH,oEAA2F;IAC3F,4HAA+J;IACnK,4DAAM;IACN,sEAAK;IAAkC,uDAAgB;IAAA,4DAAO;;;;IALxC,mMAAsE;IAEtE,0DAA+C;IAA/C,mMAA+C;IAAC,2FAAsB;IAClF,0DAAyE;IAAzE,6IAAyE;IAE5C,0DAAgB;IAAhB,gFAAgB;;;IAOnD,oEAA8J;;;;IAA3D,6MAAwD;;;IAHnK,uEAA2H;IAEnH,oEAA2F;IAC3F,4HAA8J;IAClK,4DAAM;IACN,sEAAK;IAAkC,uDAAgB;IAAA,4DAAO;;;;IALxC,mMAAsE;IAEtE,0DAA+C;IAA/C,mMAA+C;IAAC,2FAAsB;IAClF,0DAAyE;IAAzE,6IAAyE;IAE5C,0DAAgB;IAAhB,gFAAgB;;;IAzBnE,qEAAoC;IAE5B,qHAMI;IACR,4DAAK;IACL,qEAAI;IACA,qHAMI;IACR,4DAAK;IACL,qEAAI;IACA,qHAMI;IACR,4DAAK;;;IAzBG,0DAAoB;IAApB,mFAAoB;IASpB,0DAAoB;IAApB,mFAAoB;IASpB,0DAAoB;IAApB,mFAAoB;;ADbjC,MAAM,uBAAuB;IALpC;QAMY,iBAAY,GAAW,CAAC,CAAC;QACjC,kBAAa,GAAW,mEAAyB,CAAC;KA4BrD;IAtBG,UAAU,CAAC,eAAgC;QACvC,MAAM,QAAQ,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5G,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE;YACvC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;gBAChD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE;oBACvD,MAAM;iBACT;gBAED,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;oBACnC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;iBAC5B;gBAED,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aACzE;SACJ;IACL,CAAC;;8FA7BQ,uBAAuB;qHAAvB,uBAAuB;QCVpC,oEAA+C;QAC/C,sEAAK;QAEG,iHA4BK;QACT,4DAAQ;;QA7BgB,0DAAc;QAAd,oFAAc;;;;;;;;;;;;;;;;;;;;;;;;ACKnC,MAAM,sBAAsB;IAC/B,YAAoB,cAA8B,EAAU,aAA4B,EAAU,MAAc;QAA5F,mBAAc,GAAd,cAAc,CAAgB;QAAU,kBAAa,GAAb,aAAa,CAAe;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAErH,OAAO,CAAC,KAA6B,EAAE,KAA0B;QAC7D,MAAM,SAAS,GAAW,KAAK,CAAC,MAAM,CAAC,IAAI,CAAW,CAAC;QACvD,IAAI,SAAS,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACnI;QAED,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC9C;aAAM;YACH,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE;gBACb,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC3C;SACJ;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEO,cAAc,CAAC,SAAiB;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;aACxC,SAAS,EAAE;aACX,IAAI,CAAC,IAAI,CAAC,EAAE;YACT,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;aAC3G;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACX,CAAC;;4FAhCQ,sBAAsB;uHAAtB,sBAAsB,WAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;ACPoB;AAEQ;AACK;AACjB;;;AAEnD,MAAM,MAAM,GAAW;IACnB;QACI,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,wEAAgB;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,6EAAsB,EAAE;QACzC,WAAW,EAAE,CAAE,2DAAa,CAAE;KACjC;IACD;QACI,IAAI,EAAE,gCAAgC;QACtC,SAAS,EAAE,wEAAgB;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,6EAAsB,EAAE;QACzC,WAAW,EAAE,CAAE,2DAAa,CAAE;KACjC;IACD;QACI,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,wEAAgB;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,6EAAsB,EAAE;QACzC,WAAW,EAAE,CAAC,2DAAa,CAAC;KAC/B;IACD;QACI,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,wEAAgB;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,6EAAsB,EAAE;QACzC,WAAW,EAAE,CAAC,2DAAa,CAAC;KAC/B;IACD;QACI,IAAI,EAAE,gCAAgC;QACtC,SAAS,EAAE,wEAAgB;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,6EAAsB,EAAC;QACxC,WAAW,EAAE,CAAE,2DAAa,CAAE;KACjC;CACJ,CAAC;AAMK,MAAM,oBAAoB;;wFAApB,oBAAoB;iHAApB,oBAAoB;qHAHpB,CAAC,kEAAqB,CAAC,MAAM,CAAC,CAAC,EAC9B,yDAAY;mIAEb,oBAAoB,oFAFnB,yDAAY;;;;;;;;;;;;;;;;;;;;;;IE1C1B,kEAA4D;;;IAA9B,uJAAyB;;ADQhD,MAAM,uBAAuB;IAIhC,YAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAI,CAAC;IAEhD,cAAc,CAAC,WAAmB;QAC9B,IAAI,WAAW,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACnC;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;IACL,CAAC;;8FAbQ,uBAAuB;qHAAvB,uBAAuB;QCRpC,+GAA4D;;QAAxD,wFAAwB;;;;;;;;;;;;;;;;;;;;ACcgG;;;;;;;ICXhH,wEAAqH;IACpE,qWAAS,yBAAe,IAAC;IAAC,uDAAa;IAAA,4DAAI;;;;IAD/D,8MAAuF;IAC7G,0DAAe;IAAf,oFAAe;IAAqD,0DAAa;IAAb,6EAAa;;;IAHhG,2EAAoD;IAE5C,4HAEK;IACT,4DAAK;;;IAHmB,0DAAO;IAAP,gFAAO;;ADkBhC,MAAM,0BAA0B;IAMnC,YACY,wBAAkD,EAClD,gBAAkC,EAClC,KAAqB,EACrB,UAAsB;QAHtB,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,UAAK,GAAL,KAAK,CAAgB;QACrB,eAAU,GAAV,UAAU,CAAY;QATlC,SAAI,GAAyB,EAAE,CAAC;QAChC,YAAO,GAAoB,EAAE,CAAC;QAC9B,kBAAa,GAAyC,EAAE,CAAC;IAQrD,CAAC;IAEL,QAAQ;QACJ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACvB;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAChC;IACL,CAAC;IAED,eAAe;QACX,2BAA2B;QAC3B,8DAA8D;QAC9D,8CAA8C;QAC9C,gCAAgC;QAChC,gDAAgD;QAChD,gGAAgG;QAChG,mEAAmE;QACnE,iDAAiD;QACjD,0GAA0G;QAC1G,qCAAqC;QACrC,gEAAgE;IACpE,CAAC;IAEO,SAAS,CAAC,GAAuB;QACrC,MAAM,OAAO,GACT,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,oIAAkC,CAAC,CAAC;QAC9F,MAAM,GAAG,GAAqD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE7G,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;QACvB,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAEO,OAAO,CAAC,EAAU;QACtB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE;YACxC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;gBACzB,SAAS,CAAC,IAAI,EAAE,CAAC;aACpB;iBAAM;gBACH,SAAS,CAAC,IAAI,EAAE,CAAC;aACpB;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;;oGA5DQ,0BAA0B;wHAA1B,0BAA0B;QCrBvC,yEAA8B;QAC1B,0HAMQ;QACZ,4DAAM;;QAP2B,0DAAqB;QAArB,qFAAqB;;;;;;;;;;;;;;;;;;;;;IEC9C,qEAIqF;IACjF,uDACJ;IAAA,4DAAK;;;;IAHG,sEAAmB;IAFnB,8FAAuC;IAGvC,uIAA4E;IAChF,0DACJ;IADI,2FACJ;;;;IAPJ,wEAAyH;IACrH,oHAMK;IACT,4DAAK;;;IARwB,2KAA8D;IAChE,0DAAgB;IAAhB,mFAAgB;;ADOxC,MAAM,qBAAqB;IAK9B,YAAY;QACR,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,IAAI,UAAU,GAAW,CAAC,CAAC;YAE3B,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACxE,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5E,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5E,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5E,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5E,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAE5E,IAAI,CAAC,mBAAmB,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;YAE/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAEhD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpB,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;gBAEf,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE;oBAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,KAAK,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrD,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;qBAC9F,CAAC,CAAC;iBACN;gBAED,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE;oBAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,CAAC,CAAC,OAAO;wBAChB,KAAK,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrD,UAAU,EAAE,QAAQ;qBACvB,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvD,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;yBAC/D,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvD,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;yBAC/D,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvD,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;yBAC/D,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvD,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;yBAC/D,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;wBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,OAAO;4BAChB,KAAK,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvD,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;yBAC/D,CAAC,CAAC;qBACN;iBACJ;gBAED,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,IAAI,IAAI,KAAK,UAAU,EAAE;YACrB,OAAO,aAAa,CAAC;SACxB;QACD,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,cAAc,CAAC;SACzB;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;;0FAzFQ,qBAAqB;mHAArB,qBAAqB;QCTlC,2EAA4B;QACxB,+GAQK;QACT,4DAAQ;;QATgB,0DAAO;QAAP,6EAAO;;;;;;;;;;;;;;;;;;;ACCY;;;;ICM3B,uEAAwC;IAAG,uDAAsB;IAAA,4DAAI;IAAA,gEAAM;IAAA,4DAAO;;;IAAvC,0DAAsB;IAAtB,0FAAsB;;;IAE7D,uEAAkC;IAAA,uDAAgB;IAAA,gEAAM;IAAA,4DAAO;;;IAA7B,0DAAgB;IAAhB,oFAAgB;;;IAClD,uEAAkC;IAAA,uDAAgB;IAAA,4DAAO;;;IAAvB,0DAAgB;IAAhB,oFAAgB;;ADD/D,MAAM,2BAA2B;IALxC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;KAGrD;;sGAJY,2BAA2B;yHAA3B,2BAA2B;QCVxC,yEAAkC;QAGtB,oEAA4F;QAChG,4DAAM;QACN,yEAAuC;QACnC,oEAA0C;QAC1C,yEAA8B;QAC1B,yHAAkF;QAClF,yEAAoC;QAChC,yHAA+D;QAC/D,2HAAyD;QAC7D,4DAAM;;QATL,0DAA+C;QAA/C,iMAA+C;QAAC,4FAAsB;QAKhE,0DAA+B;QAA/B,+FAA+B;QAE3B,0DAAyB;QAAzB,yFAAyB;QACzB,0DAAyB;QAAzB,yFAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVP;AACE;AAEiB;AACD;AACV;AACwB;AACM;AACwC;AAC1B;AACH;AACjB;AACN;AACY;AACiB;AACjD;AAC2C;AACY;AACjB;AACH;AACA;AACY;AACZ;AACY;AAClB;AACoB;AACM;AACnC;AACM;AACN;AACX;AACD;AACS;AAC0B;;AA2CvF,MAAM,aAAa;;0EAAb,aAAa;2GAAb,aAAa;gHAlCX;QACP,sEAAc;QACd,8EAAsB;KACzB,YATQ;YACL,0DAAY;YACZ,yEAAoB;YACpB,wDAAW;YACX,+DAAY;SACf;oIAmCQ,aAAa,mBA7BlB,wEAAgB;QAChB,sFAAoB;QACpB,4FAAsB;QACtB,0GAA0B;QAC1B,oIAAkC;QAClC,uGAAyB;QACzB,sFAAoB;QACpB,gFAAkB;QAClB,6FAAsB;QACtB,8GAA2B;QAC3B,6DAAc;QACd,wGAAyB;QACzB,oHAA6B;QAC7B,mGAAwB;QACxB,gGAAuB;QACvB,gGAAuB;QACvB,4GAA2B;QAC3B,gGAAuB;QACvB,4GAA2B;QAC3B,0FAAqB;QACrB,8GAA2B;QAC3B,oHAA6B;QAC7B,iFAAkB;QAClB,uFAAoB;QACpB,iFAAkB;QAClB,sEAAkB;QAClB,wGAAyB,aApCzB,0DAAY;QACZ,yEAAoB;QACpB,wDAAW;QACX,+DAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1Bb,MAAM,gBAAgB;IAMzB,YACY,cAA8B,EAC9B,aAA4B,EAC5B,KAAqB;QAFrB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QALjC,SAAI,GAAyB,EAAE,CAAC;QAO5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CACxD,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAC5B,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAoC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;SACtC;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE;YACrC,qBAAqB,EAAE,CAAC;SAC3B;IACL,CAAC;IAEO,OAAO;QACX,MAAM,SAAS,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,IAA0B,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE,CAAC,CAAC,CAAC,CAAC;IACpI,CAAC;;gFAtCQ,gBAAgB;8GAAhB,gBAAgB;QCf7B,iFAA2C;QAE3C,yEAAyB;QACrB,0EAA6B;QAEjC,4DAAM;QACN,yEAA2B;QAEnB,+EAA+C;QACnD,4DAAM;QAEV,yEAA6B;QACzB,gFAAyC;QAE7C,4DAAM;;QANkB,0DAAa;QAAb,0EAAa;;;;;;;;;;;;;;;;;;ACH9B,MAAM,kBAAkB;IAK3B,SAAS,CAAC,KAAa,EAAE,aAAsB;QAC3C,IAAI,KAAK,GAAG,kBAAkB,CAAC,EAAE,EAAE;YAC/B,IAAI,KAAK,GAAG,kBAAkB,CAAC,EAAE,EAAE;gBAC/B,IAAI,KAAK,GAAG,kBAAkB,CAAC,EAAE,EAAE;oBAC/B,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;iBACzE;gBAED,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;aACzE;YAED,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;SACzE;QAED,OAAO,EAAE,CAAC;IACd,CAAC;;AAlBM,qBAAE,GAAW,IAAK;AAClB,qBAAE,GAAW,OAAQ,EAAC,aAAa;AACnC,qBAAE,GAAW,UAAW,EAAC,aAAa;oFAHpC,kBAAkB;oIAAlB,kBAAkB;;;;;;;;;;;;;;;;;;ACL0E;AAE9D;;;;;ICC/B,yEACqC;IADgC,iSAAS,sBAAe,CAAC,CAAC,IAAC;IAAhG,4DACqC;;;IADR,sLAAuC;;;;;IAIxE,yEAAuF;IACH,qVAAS,wBAAc,IAAC;IAAxG,4DACwF;;;;;IADnF,0DAAkD;IAAlD,sMAAkD;IAAC,4FAAuB;IAC3E,0NAAiF;;;;IAIrF,0EAC4D;IAAxD,kSAAS,qBAAc,CAAC,CAAC,IAAC;IAD9B,4DAC4D;;;IADhB,sLAAuC;;ADHxF,MAAM,sBAAsB;IALnC;QAMI,kBAAa,GAAW,mEAAyB,CAAC;QAClD,uBAAkB,GAAW,wEAA8B,CAAC;QACpD,kBAAa,GAAW,CAAC,CAAC;QAC1B,uBAAkB,GAAW,CAAC,CAAC;QACvC,gBAAW,GAAW,CAAC,CAAC;QAEf,WAAM,GAAuB,EAAE,CAAC;QAChC,kBAAa,GAAW,CAAC,CAAC;QAEzB,yBAAoB,GAAyB,IAAI,uDAAY,EAAU,CAAC;QAE1E,gBAAW,GAAuB,EAAE,CAAC;QAC7C,UAAK,GAAyB,EAAE,CAAC;KAsEpC;IApEG,QAAQ;QACJ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAErB,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;SACpE;QAED,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE;YACxC,MAAM,cAAc,GAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;SAC1F;IACL,CAAC;IAEO,YAAY;QAChB,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;YAC7C,OAAO,SAAS,GAAG,CAAC,CAAC;SACxB;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,UAAkB;QAC1B,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;QAC/E,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC5D,CAAC;IAEO,YAAY,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,SAAiB;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,OAAO;SACV;QAED,MAAM,OAAO,GAAW,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QACrD,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5C;aAAM,IAAI,OAAO,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;SACxB;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;SAC9B;QAED,IAAI,SAAS,GAAG,CAAC,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACvB;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;SAC5C;IACL,CAAC;IAED,WAAW,CAAC,OAAsB;QAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;aAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE;YACjD,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,kBAAkB,EAAE;gBAClD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;aAClD;YAED,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE;gBAC9B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;aAC9B;SACJ;IACL,CAAC;;4FAlFQ,sBAAsB;oHAAtB,sBAAsB;QCVnC,yEAA2B;QAGf,kHACqC;QACzC,4DAAM;QAEN,kHAGM;QAEN,yEAA8D;QAC1D,kHAC4D;QAChE,4DAAM;;QAZI,0DAAqB;QAArB,qFAAqB;QAIkB,0DAAuB;QAAvB,+FAAuB;QAM9D,0DAAoC;QAApC,wGAAoC;;;;;;;;;;;;;;;;;;;;ACTX;;;;;;ICFnC,0EAAmF;IAAvB,oSAAS,iBAAU,CAAC,CAAC,IAAC;IAC9E,qEAAiC;IACrC,4DAAM;;;;IAUN,0EAAmH;IAAtB,oSAAS,gBAAS,CAAC,CAAC,IAAC;IAC9G,qEAA6B;IACjC,4DAAM;;;IAEV,wEAAsD;IAAA,uDAA8B;IAAA,4DAAI;;;IAAlC,0DAA8B;IAA9B,yGAA8B;;;IACpF,0EAA8E;IAEtE,qEAAiE;IACrE,4DAAI;;;IAFD,0DAA4C;IAA5C,gLAA4C;IACtC,0DAA2C;IAA3C,wKAA2C;;;IAGxD,0EAAmD;IACvB,uDAAuC;IAAA,4DAAO;;;IAA9C,0DAAuC;IAAvC,6HAAuC;;;IAzBvE,sEAA6B;IAErB,oHAEM;IACN,yEAA4B;IAMxB,uEACS;IACb,4DAAM;IACN,oHAEM;IACV,4DAAM;IACN,gHAAwF;IAAA,gEAAM;IAC9F,oHAIM;IACN,oHAEM;IACN,qEAA+B;IACnC,4DAAM;;;IA1BwC,0DAAoB;IAApB,uFAAoB;IASrB,0DAAkB;IAAlB,uJAAkB;IAGrB,0DAAyD;IAAzD,0IAAyD;IAI3F,0DAAuB;IAAvB,0FAAuB;IACrB,0DAAgD;IAAhD,0HAAgD;IAKhD,0DAAuB;IAAvB,0FAAuB;;ADb1B,MAAM,kBAAkB;IAM3B,YAAoB,SAAuB,EAAU,iBAAoC;QAArE,cAAS,GAAT,SAAS,CAAc;QAAU,sBAAiB,GAAjB,iBAAiB,CAAmB;QALhF,WAAM,GAAuB,EAAE,CAAC;QAEzC,eAAU,GAAW,CAAC,CAAC;QACvB,uBAAkB,GAAW,wEAA8B,CAAC;IAG5D,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,QAAQ;QACJ,IAAI,GAAG,GAAW,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7D,GAAG,GAAG,EAAE,CAAC;SACZ;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9C,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;gBAC5B,GAAG,GAAG,EAAE,CAAC;aACZ;SACJ;QAED,OAAQ,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAEO,QAAQ,CAAC,SAAiB;QAE9B,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACvB;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5C;QAED,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAEO,WAAW,CAAC,KAAa;QAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;;oFA5CQ,kBAAkB;gHAAlB,kBAAkB;QCX/B,+GA4BM;;QA5BA,qFAAqB;;;;;;;;;;;;;;;;;;;;ACA4C;AAG5B;;;;;;ICH3C,yEAAsC;IAClC,oEAAyC;IACzC,yEAAgC;IAEI,uDAAgB;IAAA,4DAAK;IACjD,yEAA8B;IACiC,6SAAgB,KAAK,IAAE;IAAlF,4DAAqF;IAG7F,oEAA+B;IAC/B,yEAAuB;IACnB,6EAA2C;IAC/C,4DAAM;;;IAR0B,0DAAgB;IAAhB,oFAAgB;IAEnC,0DAAyC;IAAzC,wLAAyC;IAKtC,0DAAiB;IAAjB,iFAAiB;;ADDlC,MAAM,oBAAoB;IALjC;QAMc,sBAAiB,GAA0B,IAAI,uDAAY,EAAW,CAAC;QAExE,WAAM,GAAuB,EAAE,CAAC;QAezC,uBAAkB,GAAW,wEAA8B,CAAC;KAC/D;IAfG,IACI,IAAI,CAAC,KAAc;QACnB,IAAI,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;YAChC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE;gBACR,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;;wFAfQ,oBAAoB;kHAApB,oBAAoB;QCVjC,iHAcM;;QAdoB,0EAAU;;;;;;;;;;;;;;;;;;ACO7B,MAAM,oBAAoB;IAC7B,SAAS,CAAC,iBAAqC,EAAE,GAAW;QACxD,IAAI,OAA2B,CAAC;QAChC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;YACjD,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;SACzE;aAAM;YACH,OAAO,GAAG,iBAAiB,CAAC;SAC/B;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;;wFAVQ,oBAAoB;wIAApB,oBAAoB;;;;;;;;;;;;;;;;;ACPsC;;;;;;ICEnE,yEAA6E;IAC3C,8WAAS,iCAAuB,IAAC;IAAwD,uDAA0C;IAAA,4DAAI;;;;IAArG,0DAAsD;IAAtD,oLAAsD;IAAC,0DAA0C;IAA1C,wHAA0C;;;IAHzK,sEAAgF;IACjC,uDAA0B;IAAA,4DAAI;IACzE,iIAEM;IACV,4DAAM;;;IAJyC,0DAA0B;IAA1B,8FAA0B;IAC3C,0DAAoB;IAApB,6FAAoB;;ADQ3C,MAAM,+BAA+B;IAL5C;QAQc,oBAAe,GAAyB,IAAI,uDAAY,EAAU,CAAC;QAE7E,aAAQ,GAAW,EAAE,CAAC;KAWzB;IATG,aAAa,CAAC,QAA8B;QACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;YACrC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;SACrC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;;8GAfQ,+BAA+B;6HAA/B,+BAA+B;QCV5C,2HAKM;;QALA,gJAAwE;;;;;;;;;;;;;;;;;;;;;;ACGnC;;;;;;;ICH3C,sEAAoB;IACe,uDAAgG;IAAA,4DAAI;;;IAApG,0DAAgG;IAAhG,qLAAgG;;;;;IAI3H,wEAA+F;IAGnF,oEAAsG;IAC1G,4DAAI;IAER,wEAA6B;IAEU,uDAAc;IAAA,4DAAM;IAEvD,0EAAqC;IAAA,uDAAoB;IAAA,4DAAM;;;;IAR5D,0DAAiF;IAAjF,4NAAiF;IAC3E,0DAAiD;IAAjD,qMAAiD;IAAC,yFAAoB;IAI5E,0DAAiF;IAAjF,6NAAiF;IACjD,0DAAc;IAAd,8EAAc;IAEZ,0DAAoB;IAApB,oFAAoB;;;IAXrE,wEAAsB;IAClB,gIAYK;;IACT,4DAAQ;;;IAbiB,0DAA0C;IAA1C,wKAA0C;;;IAcnE,0EAA4E;IAAA,uDAAyB;IAAA,4DAAO;;;IAAhC,0DAAyB;IAAzB,6FAAyB;;ADRlG,MAAM,4BAA4B;IAQrC,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAFhD,kBAAa,GAAW,mEAAyB,CAAC;QAG9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;;wGAVQ,4BAA4B;0HAA5B,4BAA4B;QCXzC,wHAEM;QACN,yEAA2B;QACvB,4HAcQ;QACR,0HAA4G;QAChH,4DAAM;;QApBA,4EAAY;QAIN,0DAAY;QAAZ,4EAAY;QAeb,0DAA0C;QAA1C,8GAA0C;;;;;;;;;;;;;;;;;;;;;;;;ACX9C,MAAM,2BAA2B;IACpC,YAAoB,aAA4B,EAAU,MAAc,EAAU,aAA4B;QAA1F,kBAAa,GAAb,aAAa,CAAe;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,kBAAa,GAAb,aAAa,CAAe;IAAI,CAAC;IAEnH,OAAO,CAAC,KAA6B,EAAE,KAA0B;QAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEhD,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC9C;aAAM;YACH,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE;gBACb,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC3C;SACJ;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEO,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC;aACzC,SAAS,EAAE;aACX,IAAI,CAAC,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;;sGAvBQ,2BAA2B;4HAA3B,2BAA2B,WAA3B,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;ACPgC;;;;;;;;;;AAgBjE,MAAM,sBAAsB;IAQ/B,YACY,aAA4B,EAC5B,aAA4B,EAC5B,KAAqB,EACrB,MAAc,EACd,GAAe;QAJf,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAAY;QAP3B,aAAQ,GAAW,EAAE,CAAC;QASlB,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC9C;aAAM;YACH,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE;gBACb,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC3C;SACJ;QAED,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CACnD,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CACnD,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;aACnC,SAAS,CAAC,CAAC,IAAqC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACvG,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SAC1C;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE;YACrC,qBAAqB,EAAE,CAAC;SAC3B;IACL,CAAC;IAEO,UAAU;QACd,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,SAAS,CACnG,CAAC,OAAqB,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,EAC5D,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC;IACN,CAAC;IAED,eAAe,CAAC,QAAgB;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEO,WAAW,CAAC,KAAU;QAC1B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1C,gDAAoB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;;4FArEQ,sBAAsB;oHAAtB,sBAAsB;QCjBnC,8EAAiD;QACjD,yEAA8B;QACyB,0LAAmB,2BAAuB,IAAC;QAAC,4DAA2B;QAE9H,yEAA2B;QAEnB,sFAA4F;QAChG,4DAAM;QAEV,yEAA4B;QACxB,kFAAmD;QACvD,4DAAM;;QATwB,0DAAwB;QAAxB,qFAAwB;QAIvB,0DAAwB;QAAxB,qFAAwB;;;;;;;;;;;;;;;;;;;;;ACLA;AAEJ;AACgC;AACJ;;;AAE/E,MAAM,MAAM,GAAW;IACnB;QACI,IAAI,EAAE,oCAAoC;QAC1C,SAAS,EAAE,4FAAsB;QACjC,OAAO,EAAE,EAAE,aAAa,EAAE,wFAA2B,EAAE;QACvD,WAAW,EAAE,CAAE,2DAAa,CAAE;KACjC;CACJ,CAAC;AAMK,MAAM,mBAAmB;;sFAAnB,mBAAmB;gHAAnB,mBAAmB;oHAHnB,CAAC,kEAAqB,CAAC,MAAM,CAAC,CAAC,EAC9B,yDAAY;mIAEb,mBAAmB,oFAFlB,yDAAY;;;;;;;;;;;;;;;;;;;;;;;;;ACjBqB;AAEe;AACT;AAC8B;AAC6B;AACvD;AAC8C;AACtC;AACc;;AAmBxE,MAAM,YAAY;;wEAAZ,YAAY;yGAAZ,YAAY;8GAXV;QACP,mEAAa;QACb,wFAA2B;KAC9B,YARQ;YACL,yDAAY;YACZ,+DAAY;YACZ,uEAAmB;SACtB;mIAYQ,YAAY,mBANjB,4FAAsB;QACtB,yHAA+B;QAC/B,gHAA4B;QAC5B,0EAAoB,aAZpB,yDAAY;QACZ,+DAAY;QACZ,uEAAmB;;;;;;;;;;;;;;;;;ACXpB,MAAM,eAAe;IACxB,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAClD,MAAM,KAAK,GAAW,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;YACpB,UAAU,EAAE;gBACR,aAAa,EAAE,UAAU,KAAK,EAAE;aACnC;SACJ,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;;8EAVQ,eAAe;gHAAf,eAAe,WAAf,eAAe;;;;;;;;;;;;;;;;;;;ACJkC;AAGnB;;;;AAMpC,MAAM,cAAc;IAIvB,YAAoB,IAAgB,EAAU,aAA4B;QAAtD,SAAI,GAAJ,IAAI,CAAY;QAAU,kBAAa,GAAb,aAAa,CAAe;QAHlE,gBAAW,GAAW,6DAAmB,GAAG,OAAO,CAAC;QACpD,mBAAc,GAAW,6DAAmB,GAAG,UAAU,CAAC;IAEa,CAAC;IAEhF,UAAU,CAAC,EAAU;QACjB,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,IAAI,CAAC,cAAc,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,CAAC,EAAU;QACd,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,IAAI,CAAC,WAAW,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;;4EAhBQ,cAAc;+GAAd,cAAc,WAAd,cAAc;;;;;;;;;;;;;;;;;;;ACTmC;AAGnB;;;;AAKpC,MAAM,aAAa;IAGtB,YAAoB,IAAgB,EAAU,aAA4B;QAAtD,SAAI,GAAJ,IAAI,CAAY;QAAU,kBAAa,GAAb,aAAa,CAAe;QAFlE,YAAO,GAAW,6DAAmB,GAAG,SAAS,CAAC;IAEmB,CAAC;IAE9E,SAAS;QACL,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;;0EATQ,aAAa;8GAAb,aAAa,WAAb,aAAa;;;;;;;;;;;;;;;;;;;;;ACRiD;AAEP;AAEzB;;;;;AASpC,MAAM,WAAW;IAKpB,YAAoB,IAAgB,EAAU,WAAwB,EAAU,aAA4B;QAAxF,SAAI,GAAJ,IAAI,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,kBAAa,GAAb,aAAa,CAAe;QAJpG,YAAO,GAAW,6DAAmB,GAAG,OAAO,CAAC;QAChD,iBAAY,GAAW,6DAAmB,GAAG,YAAY,CAAC;QAC1D,YAAO,GAAW,6DAAmB,GAAG,MAAM,CAAC;IAEyD,CAAC;IAEjH,UAAU,CAAC,MAAc,EAAE,IAAS;QAChC,MAAM,OAAO,GAAgB,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,mBAAmB,CAAC,IAAS;QACzB,MAAM,OAAO,GAAgB,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,oBAAoB,CAAC,IAAS;QAC1B,MAAM,OAAO,GAAgB,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,WAAmB,EAAE,IAAS;QAC1D,MAAM,OAAO,GAAgB,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAErF,MAAM,OAAO,GAAoB,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACvE,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;SACpC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,gBAAgB,CAAC,eAAuB,EAAE,IAAS;QAC/C,MAAM,OAAO,GAAgB,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,GAAG,EAAE,CAAC;SACb;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;QAEjC,MAAM,OAAO,GAAoB,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACvE,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;SACpC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,IAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,aAAa,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,WAAW,CAAC,MAA4B;QACpC,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,GAAG,GAAW,CAAC,CAAC;QAEpB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,UAAU,GAAU,EAAE,CAAC;YAE7B,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAChB,UAAU,CAAC,IAAI,CAAC,+DAAmB,CAAC,CAAC;aACxC;YAED,IAAI,KAAK,CAAC,OAAO,EAAE;gBACf,UAAU,CAAC,IAAI,CAAC,8DAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;aACtD;YAED,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;gBAC9B,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;aAC5B;YAED,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,EAAE;gBAChC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;aAC7C;YAED,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAChD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;aAC7B;YAED,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;gBACpC,CAAC,CAAC,IAAI,uDAAW,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,IAAI,uDAAW,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAEzC,GAAG,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,qDAAS,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoB,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,CAAC;IAChF,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoB,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,CAAC;IAChF,CAAC;IAED,2DAA2D;IAC3D,aAAa,CAAC,QAAgB,EAAE,QAAgB,EAAE,UAAkB,EAAE,UAAmB,KAAK;QAC1F,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE;gBACpD,UAAU,EAAE,QAAQ;gBACpB,UAAU,EAAE,QAAQ;gBACpB,YAAY,EAAE,UAAU;aAC3B,EAAC,CAAC,CAAC;QAEJ,IAAI,OAAoB,CAAC;QACzB,IAAI,OAAO,EAAE;YACT,OAAO,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;SACjF;aAAM;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;SACrF;IACL,CAAC;;sEArHQ,WAAW;4GAAX,WAAW,WAAX,WAAW;AAwHxB,SAAS,oBAAoB,CAAC,OAAoB;IAC9C,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAC,CAAC;AACtG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvID;AAEA;AACA;AAGA;AAIA;AACA;;;;;;AAeM,MAAOuB,aAAP,CAAoB;AAStBrQ,cACYsQ,IADZ,EAEYC,WAFZ,EAGYC,YAHZ,EAIYC,cAJZ,EAIyC;AAH7B;AACA;AACA;AACA;AAXJ,mBAAkBrU,6DAAA,GAAsB,SAAxC;AAIA,wBAAgC,IAAI6T,yCAAJ,EAAhC;AACR,uBAAkC,KAAKU,YAAL,CAAkBC,YAAlB,EAAlC;AAOI;;AAEJC,UAAQ,CAACC,QAAD,EAAiB;AACrB,SAAKN,YAAL,CAAkBK,QAAlB,CAA2BC,QAA3B;AACH;;AAEDC,iBAAe,CAACC,QAAD,EAAuB;AAClC,QAAI5U,gEAAJ,EAA4B;AACxB,UAAI8U,OAAO,GAAW,EAAtB;AACAF,cAAQ,CAAC1O,OAAT,CAAkB6O,CAAD,IAAkB;AAC/BD,eAAO,IAAI,MAAMC,CAAjB;AACH,OAFD;AAIA,WAAKC,YAAL,GAAoBxI,SAApB,CAA+ByI,SAAD,IAA0B;AACpD,aAAKd,WAAL,CAAiBe,SAAjB,CAA2B,eAA3B;AACAD,iBAAS,CAAC/O,OAAV,CAAmBiP,CAAD,IAAgB;AAC9B,eAAKhB,WAAL,CAAiBiB,MAAjB,CAAwB;AAAEC,eAAG,EAAE,WAAP;AAAoBC,oBAAQ,EAAEH,CAAC,CAACI,OAAhC;AAAyCC,gBAAI,EAAE,wBAAwBL,CAAC,CAACI,OAAO,GAAGT,OAAO;AAA1F,WAAxB;AACH,SAFD;AAGH,OALD;AAMH;AACJ;;AAEDW,mBAAiB,CAACb,QAAD,EAAuB;AACpC,QAAI5U,gEAAJ,EAA4B;AACxB,UAAI8U,OAAO,GAAW,EAAtB;AACAF,cAAQ,CAAC1O,OAAT,CAAkB6O,CAAD,IAAkB;AAC/BD,eAAO,IAAI,MAAMC,CAAjB;AACH,OAFD;AAIA,WAAKZ,WAAL,CAAiBe,SAAjB,CAA2B,iBAA3B;AACA,WAAKf,WAAL,CAAiBiB,MAAjB,CAAwB;AAAEC,WAAG,EAAE,WAAP;AAAoBG,YAAI,EAAE,0BAA0BV,OAAO;AAA3D,OAAxB;AAEA,WAAKY,kBAAL,GAA0BlJ,SAA1B,CAAqCmJ,QAAD,IAA8B;AAC9D,aAAKxB,WAAL,CAAiBe,SAAjB,CAA2B,iBAA3B;AACAS,gBAAQ,CAACC,SAAT,CAAmB1P,OAAnB,CAA4BiP,CAAD,IAAgB;AACvC,eAAKhB,WAAL,CAAiBiB,MAAjB,CAAwB;AAAEC,eAAG,EAAE,WAAP;AAAoBC,oBAAQ,EAAEH,CAAC,CAACI,OAAhC;AAAyCC,gBAAI,EAAE,sBAAsBL,CAAC,CAACI,OAAO,GAAGT,OAAO;AAAxF,WAAxB;AACH,SAFD;AAGH,OALD;AAMH;AACJ;;AAEDzB,aAAW,CAACwC,WAAD,EAAoB;AAC3B,WAAO,KAAKb,YAAL,GAAoBxI,SAApB,CAA+B2I,CAAD,IAAkB;AACnD,WAAKW,YAAL,GAAoBX,CAApB;AACA,YAAMQ,QAAQ,GAAa,KAAKI,mBAAL,CAAyBF,WAAzB,CAA3B;AAEA,YAAMG,iBAAiB,GAAW,KAAKlR,WAAL,EAAlC;;AACA,UAAI6Q,QAAQ,CAACjO,EAAT,KAAgBsO,iBAApB,EAAuC;AACnCC,oBAAY,CAACvC,OAAb,CAAqB,mBAArB,EAA0CiC,QAAQ,CAACjO,EAAnD;AACAuO,oBAAY,CAACvC,OAAb,CAAqB,qBAArB,EAA4CiC,QAAQ,CAACJ,OAArD;AACA,aAAKhB,YAAL,CAAkB2B,IAAlB,CAAuBP,QAAQ,CAACjO,EAAhC;AACH;AACJ,KAVM,CAAP;AAWH;;AAEDqO,qBAAmB,CAACpP,YAAD,EAAqB;AACpC,UAAMsO,SAAS,GAAe,KAAKa,YAAL,CAAkBK,MAAlB,CAA0BhB,CAAD,IAAiBA,CAAC,CAACzN,EAAF,KAASf,YAAT,IAAyBwO,CAAC,CAACI,OAAF,KAAc5O,YAAjF,CAA9B;;AACA,QAAIsO,SAAS,IAAIA,SAAS,CAACvQ,MAAV,GAAmB,CAApC,EAAuC;AACnC,aAAOuQ,SAAS,CAAC,CAAD,CAAhB;AACH;;AAED,WAAO,IAAP;AACH;;AAEDnQ,aAAW;AACP,UAAM6Q,QAAQ,GAAGM,YAAY,CAACG,OAAb,CAAqB,mBAArB,CAAjB;AACA,WAAOT,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAKU,SAAlC,GAA8C,OAA9C,GAAwDV,QAA/D;AACH;;AAED/O,iBAAe;AACX,UAAM+O,QAAQ,GAAGM,YAAY,CAACG,OAAb,CAAqB,qBAArB,CAAjB;AACA,WAAOT,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAKU,SAAlC,GAA8C,IAA9C,GAAqDV,QAA5D;AACH;;AAEDX,cAAY;AACR,WAAO,KAAKd,IAAL,CAAUd,GAAV,CAA0B,KAAKkD,OAAL,GAAe,WAAzC,EAAsD;AAAEnM,YAAM,EAAE,KAAKoM,YAAL;AAAV,KAAtD,CAAP;AACH;;AAEDb,oBAAkB;AACd,WAAO,KAAKxB,IAAL,CAAUd,GAAV,CAA+B,KAAKkD,OAAL,GAAe,kBAA9C,EAAkE;AAAEnM,YAAM,EAAE,KAAKoM,YAAL;AAAV,KAAlE,CAAP;AACH;;AAEDC,sBAAoB;AAChB,WAAO,KAAKtC,IAAL,CAAUd,GAAV,CAAsB,KAAKkD,OAAL,GAAe,mBAArC,CAAP;AACH;;AAEDG,WAAS,CAACC,MAAD,EAAe;AACpBA,UAAM,GAAGA,MAAM,CAACnK,OAAP,CAAe,OAAf,EAAwB,EAAxB,EAA4BA,OAA5B,CAAoC,MAApC,EAA4C,EAA5C,EAAgDA,OAAhD,CAAwD,KAAxD,EAA+D,EAA/D,EAAmEA,OAAnE,CAA2E,MAA3E,EAAmF,EAAnF,CAAT;AAEA,UAAMpC,MAAM,GAAe,IAAIyJ,4DAAJ,CAAe;AACtC+C,gBAAU,EAAE;AACRlP,UAAE,EAAEiP;AADI;AAD0B,KAAf,CAA3B;AAMA,WAAO,KAAKxC,IAAL,CAAUd,GAAV,CAA0B,KAAKkD,OAAL,GAAe,QAAzC,EAAmD;AAAEnM,YAAM,EAAEA;AAAV,KAAnD,CAAP;AACH;;AAEDyM,eAAa;AACT,WAAO,KAAK1C,IAAL,CAAUd,GAAV,CAA4B,KAAKkD,OAAL,GAAe,SAA3C,CAAP;AACH;;AAEDO,kBAAgB;AACZ,WAAO,KAAK3C,IAAL,CAAUd,GAAV,CAA8B,KAAKkD,OAAL,GAAe,MAA7C,EAAqD;AAAEnM,YAAM,EAAE,KAAKoM,YAAL;AAAV,KAArD,CAAP;AACH;;AAEDO,mBAAiB;AACb,UAAM3M,MAAM,GAAe,IAAIyJ,4DAAJ,CAAe;AAAE+C,gBAAU,EAAE;AAAEhB,gBAAQ,EAAE,KAAK7Q,WAAL;AAAZ;AAAd,KAAf,CAA3B;AACA,WAAO,KAAKoP,IAAL,CAAUd,GAAV,CAAgC,KAAKkD,OAAL,GAAe,aAA/C,EAA8D;AAAEnM,YAAM,EAAEA;AAAV,KAA9D,CAAP;AACH;;AAED4M,qBAAmB,CAACtP,EAAD,EAAW;AAC1B,QAAI,CAACA,EAAD,IAAOA,EAAE,KAAK,EAAlB,EAAsB;AAClB,aAAO,IAAP;AACH;;AAED,WAAO,KAAKyM,IAAL,CAAUd,GAAV,CAAiC,GAAG,KAAKkD,OAAO,YAAY7O,EAAE,WAA9D,EAA2E;AAAE0C,YAAM,EAAE,KAAKoM,YAAL;AAAV,KAA3E,EAA4GS,IAA5G,CACHlD,mDAAG,CAAE9E,QAAD,IAAoB;AACpB,UAAIA,QAAJ,EAAc;AACV,eAAOA,QAAQ,CAAC8E,GAAT,CAAcxL,IAAD,IAAU,IAAI0L,qEAAJ,CAAoB1L,IAApB,CAAvB,CAAP;AACH,OAFD,MAEO;AACH,eAAO,IAAP;AACH;AACJ,KANE,CADA,CAAP;AASH;;AAED2O,oBAAkB,CAACxP,EAAD,EAAa2I,IAAb,EAAyB;AACvC,QAAI,CAAC3I,EAAD,IAAOA,EAAE,KAAK,EAAlB,EAAsB;AAClB,aAAO,IAAP;AACH;;AAED,UAAM0C,MAAM,GAAe,IAAIyJ,4DAAJ,CAAe;AACtC+C,gBAAU,EAAE;AACRhB,gBAAQ,EAAE,KAAK7Q,WAAL,EADF;AAERsL,YAAI,EAAEA;AAFE;AAD0B,KAAf,CAA3B;AAOA,UAAMxD,GAAG,GAAW,KAAK0J,OAAL,GAAe,WAAf,GAA6B7O,EAA7B,GAAkC,UAAtD;AAEA,WAAO,KAAKyM,IAAL,CAAUd,GAAV,CAAgCxG,GAAhC,EAAqC;AAAEzC,YAAM,EAAEA;AAAV,KAArC,EAAyD6M,IAAzD,CACHlD,mDAAG,CAAE9E,QAAD,IAAoB;AACpB,UAAIA,QAAJ,EAAc;AACV,eAAOA,QAAQ,CAAC8E,GAAT,CAAcxL,IAAD,IAAU,IAAIyL,mEAAJ,CAAmBzL,IAAnB,CAAvB,CAAP;AACH,OAFD,MAEO;AACH,eAAO,IAAP;AACH;AACJ,KANE,CADA,CAAP;AASH;;AAEK4O,uBAAqB;AAAA;;AAAA;AACvB,YAAMtK,GAAG,GAAW,KAAI,CAAC0J,OAAL,GAAe,kBAAnC;AACA,aAAOlW,mDAAa,CAAC,KAAI,CAAC8T,IAAL,CAAUd,GAAV,CAAkCxG,GAAlC,EAAuC;AAAEzC,cAAM,EAAE,KAAI,CAACoM,YAAL;AAAV,OAAvC,CAAD,CAApB;AAFuB;AAG1B;;AAEDY,sBAAoB;AAChBC,UAAM,CAACC,WAAP,GAAqB,IAAIC,eAAe,CAACC,SAApB,CAA8B,+BAA9B,CAArB;AACAH,UAAM,CAACC,WAAP,CAAmBG,aAAnB,CAAiC,wBAAjC;AACAJ,UAAM,CAACC,WAAP,CAAmBI,SAAnB,CAA6B,UAA7B;AACAL,UAAM,CAACC,WAAP,CAAmBK,QAAnB,CAA4B,OAAOC,OAAP,IAAmB,WAAnB,GAAiC,CAAjC,GAAsCA,OAAO,IAAI,CAAX,GAAe,IAAf,GAAsBA,OAAxF;AACAP,UAAM,CAACC,WAAP,CAAmBO,SAAnB;AACH;;AAEDC,gBAAc;AACV,WAAO,KAAKxD,cAAL,CAAoBjB,GAApB,CAAwBa,aAAa,CAAC6D,aAAtC,EAAqDvN,WAArD,OAAuE,GAA9E;AACH;;AAEDwN,eAAa;AACT,SAAK1D,cAAL,CAAoB2D,GAApB,CAAwB/D,aAAa,CAAC6D,aAAtC,EAAqD,GAArD,EACI,IAAIrN,IAAJ,GAAWwN,OAAX,KAAuB,GAD3B,EACgC,GADhC,EACqC,IADrC,EAC2C,IAD3C,EACiD,QADjD;AAEH;;AAEO1B,cAAY;AAChB,WAAO,IAAI3C,4DAAJ,CAAe;AAAE+C,gBAAU,EAAE;AAAEhB,gBAAQ,EAAE,KAAK7Q,WAAL;AAAZ;AAAd,KAAf,CAAP;AACH;;AA9LqB;AACfmP,8BAAwB,cAAxB;;;mBADEA,eAAa5T,sDAAAA,CAAAA,4DAAAA,GAAAA,sDAAAA,CAAAA,sDAAAA,GAAAA,sDAAAA,CAAAA,6DAAAA,GAAAA,sDAAAA,CAAAA,8DAAAA;AAAA;;;SAAb4T;AAAaN,WAAbM,aAAa;;;;;;;;;;;;;;;;;;;;AC1BoC;AACf;AAEJ;;;;AAKpC,MAAM,aAAa;IAKtB,YAAoB,IAAgB,EAAU,aAA4B;QAAtD,SAAI,GAAJ,IAAI,CAAY;QAAU,kBAAa,GAAb,aAAa,CAAe;QAJlE,QAAG,GAAW,6DAAmB,GAAG,SAAS,CAAC;IAIwB,CAAC;IAE/E,aAAa;QACT,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3G,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,IAAI,CAAC,GAAG,GAAG,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,iDAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SAChH;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,eAAe;QACX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;;0EAlBQ,aAAa;8GAAb,aAAa,WAAb,aAAa,mBADA,MAAM;;;;;;;;;;;;;;;;;;;ACP8B;AAGnB;;;;AAOpC,MAAM,UAAU;IAInB,YAAoB,IAAgB,EAAU,aAA4B;QAAtD,SAAI,GAAJ,IAAI,CAAY;QAAU,kBAAa,GAAb,aAAa,CAAe;QAHlE,gBAAW,GAAW,6DAAmB,GAAG,OAAO,CAAC;QACpD,eAAU,GAAW,6DAAmB,GAAG,MAAM,CAAC;IAEoB,CAAC;IAE/E,WAAW,CAAC,YAAoB,EAAE;QAC9B,MAAM,MAAM,GAAe,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,MAAM,MAAM,GAAe,IAAI,CAAC,WAAW,EAAE,CAAC;QAE9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAc,GAAG,IAAI,CAAC,UAAU,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,OAAO,CAAC,EAAU;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,GAAG,IAAI,CAAC,WAAW,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;IAEO,WAAW;QACf,OAAO,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1F,CAAC;;oEAvBQ,UAAU;2GAAV,UAAU,WAAV,UAAU;;;;;;;;;;;;;;;;;ACXvB;;;;;;GAMG;AAE+F;AACvD;;AAGpC,MAAM,WAAW;IACpB,YACY,eAAiC,EACf,QAAQ;QAD1B,oBAAe,GAAf,eAAe,CAAkB;QACf,aAAQ,GAAR,QAAQ;IACnC,CAAC;IAEJ;;OAEG;IACH,MAAM,CAAC,GAAmB,EAAE,aAAuB;QAC/C,IAAI;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChE,EAAE,EAAE,IAAI;gBACR,aAAa,EAAE,iEAAsB;gBACrC,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,EAAE;aACX,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAE1C,IAAI,IAAI,KAAK,IAAI,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACxD;YAED,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;gBACtC,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YAEH,+DAA+D;YAC/D,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAEpC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;SACnD;IACL,CAAC;IAED,SAAS,CAAC,YAAoB;QAC1B,IAAI,YAAY,EAAE;YACd,IAAI;gBACA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAChE,EAAE,EAAE,IAAI;oBACR,aAAa,EAAE,iEAAsB;oBACrC,MAAM,EAAE,EAAE;oBACV,IAAI,EAAE,EAAE;iBACX,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChC,IAAI,IAAI,KAAK,IAAI,EAAE;oBACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;iBACxD;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;gBAC9E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;oBACzB,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBACpC;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;aACxD;SACJ;IACL,CAAC;IAEO,cAAc,CAAC,GAAmB;QACtC,wBAAwB;QACxB,MAAM,IAAI,GAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QAClD,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;IACpC,CAAC;;sEAnEQ,WAAW,8KAGR,qDAAQ;4GAHX,WAAW,WAAX,WAAW;;;;;;;;;;;;;;;;;ACPjB,MAAM,YAAY;IAGrB;QACI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,QAAwB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/C,uCAAuC;QACvC,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,OAAe;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;SACvB;IACL,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,aAAa,GAAG,KAAK;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,KAAK,EAAE;YACP,IAAI,aAAa,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACjC,OAAO;aACV;YAED,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;SACxB;IACL,CAAC;IAEO,SAAS,CAAC,OAAe;QAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC7B,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;gBAC3B,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;wEA7CQ,YAAY;6GAAZ,YAAY,WAAZ,YAAY;;;;;;;;;;;;;;;;;;;;ACJqC;AAGnB;;;;;AASpC,MAAM,WAAW;IAGpB,YACY,IAAgB,EAChB,aAA4B,EAC5B,WAAwB;QAFxB,SAAI,GAAJ,IAAI,CAAY;QAChB,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QAL5B,YAAO,GAAW,6DAAmB,GAAG,OAAO,CAAC;IAMrD,CAAC;IAEJ,OAAO,CAAC,EAAU;QACd,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC;YACtC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE;SAC7D,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,GAAG,IAAI,CAAC,OAAO,QAAQ,EAAE,EAAE,EAAE;YAC1D,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,IAAI,MAAM,GAAe,IAAI,4DAAU,EAAE,CAAC;QAC1C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;QAErE,MAAM,WAAW,GAAkB,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QACrE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE;YACnD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,yCAAyC;SAClG;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAc,GAAG,IAAI,CAAC,OAAO,UAAU,EAAE,EAAE,EAAE;YAC7D,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;IACP,CAAC;;sEA9BQ,WAAW;4GAAX,WAAW,WAAX,WAAW;;;;;;;;;;;;;;;;;;;;ACZmD;AAEtC;AAEM;;;;AAWpC,MAAM,cAAc;IAGvB,YAAoB,IAAgB,EAAU,aAA4B;QAAtD,SAAI,GAAJ,IAAI,CAAY;QAAU,kBAAa,GAAb,aAAa,CAAe;QAFlE,YAAO,GAAW,6DAAmB,GAAG,UAAU,CAAC;IAEmB,CAAC;IAE/E,OAAO,CAAC,EAAU;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,IAAI,CAAC,OAAO,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACtH,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,OAAO,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC,CAAC;IAClG,CAAC;IAED,WAAW,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,OAAO,UAAU,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,OAAO,UAAU,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAClH,CAAC;IAED,kBAAkB,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,IAAI,CAAC,OAAO,UAAU,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC1H,CAAC;IAED,OAAO,CAAC,EAAU;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,IAAI,CAAC,OAAO,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,aAAa,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,GAAG,IAAI,CAAC,OAAO,cAAc,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,OAAO,CAAC,QAAgB,EAAE,eAAuB,EAAE,QAAgB;QAC/D,MAAM,MAAM,GAAgB,IAAI,6DAAW,CACvC,EAAE,cAAc,EAAE,0BAA0B,EAAE,CACjD,CAAC;QAEF,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC;YACtC,UAAU,EAAE;gBACR,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,QAAQ,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7G,CAAC;IAED,UAAU,CAAC,IAAc;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,QAAwB;QACnD,MAAM,OAAO,GAAgB,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,UAAU,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;IAEO,YAAY;QAChB,OAAO,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,kBAAkB,CAAC,OAAe;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC9F,OAAO,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;QAC9D,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;;4EArEQ,cAAc;+GAAd,cAAc,WAAd,cAAc;;;;;;;;;;;;;;;;;;;ACfmC;AAInB;;;;AAIpC,MAAM,aAAa;IAGtB,YAAoB,IAAgB,EAAU,aAA4B;QAAtD,SAAI,GAAJ,IAAI,CAAY;QAAU,kBAAa,GAAb,aAAa,CAAe;QAFlE,YAAO,GAAW,6DAAmB,GAAG,QAAQ,CAAC;IAEqB,CAAC;IAE/E,UAAU,CAAC,QAAgB;QACvB,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9H,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;;0EARQ,aAAa;8GAAb,aAAa,WAAb,aAAa;;;;;;;;;;;;;;;;;;;;ACP8B;AAChB;;;;;AAKjC,MAAM,UAAU;IACnB,YAAoB,WAAiB,EAAU,MAAc,EAAU,aAA4B;QAA/E,gBAAW,GAAX,WAAW,CAAM;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,kBAAa,GAAb,aAAa,CAAe;IAAI,CAAC;IAEjG,UAAU;QACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,YAAY,0DAAa,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3F,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjD,OAAO,IAAI,EAAE;gBACT,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACvC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC3B;qBAAM;oBACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,EAC1G,+BAA+B,CAAE,CAAC;oBACtC,OAAO;iBACV;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;oEAhBQ,UAAU;2GAAV,UAAU,WAAV,UAAU;;;;;;;;;;;;;;;;;;;ACPuC;AAKnB;;;;AAGpC,MAAM,aAAa;IACtB,YACY,IAAgB,EAChB,aAA4B;QAD5B,SAAI,GAAJ,IAAI,CAAY;QAChB,kBAAa,GAAb,aAAa,CAAe;IACrC,CAAC;IAEJ,SAAS,CAAC,EAAU;QAChB,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,GAAG,6DAAmB,wBAAwB,EAAE,EAAE,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,GAAG,6DAAmB,wBAAwB,EAAE,SAAS,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrH,CAAC;;0EAdQ,aAAa;8GAAb,aAAa,WAAb,aAAa;;;;;;;;;;;;;;;;;;;ACRoC;AAGnB;;;;AAKpC,MAAM,cAAc;IAGvB,YAAoB,IAAgB,EAAU,aAA4B;QAAtD,SAAI,GAAJ,IAAI,CAAY;QAAU,kBAAa,GAAb,aAAa,CAAe;QAFlE,YAAO,GAAW,6DAAmB,GAAG,gBAAgB,CAAC;IAEa,CAAC;IAE/E,UAAU;QACN,MAAM,MAAM,GAAe,IAAI,4DAAU,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;;4EARQ,cAAc;+GAAd,cAAc,WAAd,cAAc;;;;;;;;;;;;;;;;;;;;;;;ACR3B;AAEA;AAKA;;;;AAMM,MAAOkE,WAAP,CAAkB;AAWpBvU,cACYsQ,IADZ,EAEYkE,WAFZ,EAEoC;AADxB;AACA;AAVJ,uBAAsBpY,6DAAA,GAAsB,QAA5C;AAEA,uBAAsC,IAAI6T,yCAAJ,EAAtC;AACR,wBAA0C,KAAKwE,WAAL,CAAiB7D,YAAjB,EAA1C;AAEQ,0BAA2C,IAAIX,yCAAJ,EAA3C;AACR,2BAA+C,KAAKyE,cAAL,CAAoB9D,YAApB,EAA/C;AAKK;;AAEL+D,aAAW;AACP,QAAI,KAAKC,eAAL,EAAJ,EAA4B;AACxB,WAAKJ,WAAL,CAAiBK,WAAjB,GAA+BjM,SAA/B;AACH;;AACDkM,WAAO,CAACC,GAAR,CAAY,aAAZ;AACA,SAAKC,gBAAL;AACH;;AAEKC,WAAS,CAACvQ,IAAD,EAAU;AAAA;;AAAA;AACrB,YAAMvC,OAAO,GAAgB,IAAImS,6DAAJ,CAAgB;AAAE,wBAAgB;AAAlB,OAAhB,CAA7B;AAEA,mBAAazF,oDAAc,CAAC,KAAI,CAACyB,IAAL,CAAU4E,IAAV,CAA8B,KAAI,CAACC,WAAL,GAAmB,YAAjD,EAA+DzQ,IAA/D,EAAqE;AAAEvC,eAAO,EAAEA;AAAX,OAArE,CAAD,CAAd,CACR6H,IADQ,CACFoL,MAAD,IAA2B,KAAI,CAACC,cAAL,CAAoBD,MAApB,CADxB,CAAb;AAHqB;AAKxB;;AAEKE,eAAa;AAAA;;AAAA;AACf,UAAIC,GAAG,GAAiB;AACpBC,iBAAS,EAAE,wDADS;AAEpBC,cAAM,EAAE,EAFY;AAGpBC,cAAM,EAAE;AAHY,OAAxB;AAKA,YAAM7G,oDAAc,CAAC,MAAI,CAAC2F,WAAL,CAAiBmB,iBAAjB,CAAmCJ,GAAnC,CAAD,CAAd,CAAwDvL,IAAxD,CACDoB,QAAD,IAAmC;AAC/B,cAAI,CAACoJ,WAAL,CAAiBoB,QAAjB,CAA0BC,gBAA1B,CAA2CzK,QAAQ,CAAC0K,OAApD;;AACA,cAAI,CAACC,SAAL,GAAiB3K,QAAQ,CAAC4K,OAA1B;AACH,OAJC,CAAN;;AAMA,UAAI,MAAI,CAACD,SAAL,IAAkB,MAAI,CAACA,SAAL,KAAmB,EAAzC,EAA6C;AACzC,cAAM,MAAI,CAACE,mBAAL,EAAN;AACH;AAdc;AAelB;;AAEDrB,iBAAe;AACX,WAAO,KAAKJ,WAAL,CAAiBoB,QAAjB,CAA0BM,gBAA1B,OAAiD,IAAxD;AACH;;AAEKD,qBAAmB;AAAA;;AAAA;AACrB,YAAM,MAAI,CAACE,sBAAL,EAAN;AADqB;AAExB;;AAEDzM,gBAAc;AACV,UAAMD,IAAI,GAAW4I,YAAY,CAACG,OAAb,CAAqB,aAArB,CAArB;;AAEA,QAAI/I,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAKgJ,SAA1B,IAAuChJ,IAAI,KAAK,EAApD,EAAwD;AACpD,YAAM2M,aAAa,GAAkBC,IAAI,CAACC,KAAL,CAAW7M,IAAX,CAArC;AACA,aAAO2M,aAAP;AACH;;AAED,WAAO,IAAP;AACH;;AAEDG,qBAAmB,CAAC9M,IAAD,EAAoB;AACnC,QAAIA,IAAJ,EAAU;AACN,WAAK6G,IAAL,CAAUd,GAAV,CAA6B,KAAK2F,WAAL,GAAmB,eAAhD,EAAiEvM,SAAjE,CAA2E;AACvE0J,YAAI,EAAGlH,QAAD,IAAa;AACf,cAAI,CAACA,QAAL,EAAe;AACX0J,mBAAO,CAACC,GAAR,CAAY,qBAAZ;AACA,iBAAKC,gBAAL;AACH;AACJ,SANsE;AAOvExJ,aAAK,EAAGA,KAAD,IAAe;AAAGsJ,iBAAO,CAACtJ,KAAR,CAAcA,KAAd;AAAuB;AAPuB,OAA3E;AASH;AACJ;;AAEOwJ,kBAAgB;AACpBF,WAAO,CAACC,GAAR,CAAY,kBAAZ;AACA1C,gBAAY,CAACmE,UAAb,CAAwB,aAAxB;AACAnE,gBAAY,CAACmE,UAAb,CAAwB,OAAxB;AACAnE,gBAAY,CAACmE,UAAb,CAAwB,iBAAxB;AACA,SAAK/B,WAAL,CAAiBnC,IAAjB,CAAsB,IAAtB;AACA,SAAKoC,cAAL,CAAoBpC,IAApB,CAAyB,IAAzB;AACH;;AAEM+C,gBAAc,CAAC5L,IAAD,EAAoB;AACrC,QAAI,CAACA,IAAL,EAAW;AACP;AACA,WAAKuL,gBAAL;AACA,aAAO,KAAP;AACH,KALoC,CAOrC;;;AAEA,UAAMyB,UAAU,GAAWJ,IAAI,CAACK,SAAL,CAAe;AACtC/M,YAAM,EAAEF,IAAI,CAACE,MADyB;AAEtCgN,UAAI,EAAElN,IAAI,CAACkN;AAF2B,KAAf,CAA3B;AAIAtE,gBAAY,CAACvC,OAAb,CAAqB,aAArB,EAAoC2G,UAApC;AACApE,gBAAY,CAACvC,OAAb,CAAqB,OAArB,EAA8BrG,IAAI,CAACmN,KAAnC;AACAvE,gBAAY,CAACmE,UAAb,CAAwB,iBAAxB;AACA,SAAK/B,WAAL,CAAiBnC,IAAjB,CAAsB7I,IAAtB;AACA,SAAKiL,cAAL,CAAoBpC,IAApB,CAAyB,IAAzB;AACA,WAAO,IAAP;AACH;;AAEK6D,wBAAsB;AAAA;;AAAA;AACxB,UAAI,MAAI,CAAC3B,WAAL,CAAiBoB,QAArB,EAA+B;AAC3B,YAAIiB,WAAW,GAAgB,MAAI,CAACrC,WAAL,CAAiBoB,QAAjB,CAA0BM,gBAA1B,EAA/B;;AACA,YAAIW,WAAJ,EAAiB;AACb,cAAItB,GAAG,GAAkB;AACrBC,qBAAS,EAAE,wDADU;AAErBC,kBAAM,EAAE;AAFa,WAAzB;AAIA,gBAAM5G,oDAAc,CAAC,MAAI,CAAC2F,WAAL,CAAiBsC,kBAAjB,CAAoCvB,GAApC,CAAD,CAAd,CAAyDvL,IAAzD,CAA+D+M,UAAD,IAAsC,MAAI,CAAChB,SAAL,GAAiBgB,UAAU,CAACf,OAAhI,CAAN;AACH;;AACD,YAAIgB,SAAS,GAAW,MAAI,CAACjB,SAA7B;AACA,cAAMrR,IAAI,GAAG;AAAEuS,gBAAM,EAAEJ,WAAW,CAACK,QAAtB;AAAgCC,eAAK,EAAEH;AAAvC,SAAb;AAEA,qBAAanI,oDAAc,CAAC,MAAI,CAACyB,IAAL,CAAU4E,IAAV,CAA8B,MAAI,CAACC,WAAL,GAAmB,YAAjD,EAA+DzQ,IAA/D,CAAD,CAAd,CACRsF,IADQ,CACFP,IAAD,IAAwB;AAC1B,cAAIA,IAAI,CAACkN,IAAL,KAAc,EAAd,IAAoBlN,IAAI,CAACkN,IAAL,KAAc,IAAtC,EAA4C;AACxClN,gBAAI,CAACkN,IAAL,GAAYE,WAAW,CAACK,QAAxB;AACH;;AAED,iBAAO,MAAI,CAAC7B,cAAL,CAAoB5L,IAApB,CAAP;AACH,SAPQ,CAAb;AAQH;AArBuB;AAsB3B;;AAED2N,2BAAyB,CAACC,QAAD,EAAiB;AACtC,UAAM9Q,MAAM,GAAe,IAAIyJ,4DAAJ,CAAe;AAAE+C,gBAAU,EAAE;AAAEsE,gBAAQ,EAAEA;AAAZ;AAAd,KAAf,CAA3B;AACA,WAAO,KAAK/G,IAAL,CAAUd,GAAV,CAAoC,KAAK2F,WAAL,GAAmB,mBAAvD,EAA4E;AAAE5O,YAAM,EAAEA;AAAV,KAA5E,CAAP;AACH;;AAED+Q,oBAAkB,CAACxB,OAAD,EAA2ByB,WAA3B,EAA8C;AAC5DlF,gBAAY,CAACvC,OAAb,CAAqB,iBAArB,EAAwCuG,IAAI,CAACK,SAAL,CAAeZ,OAAf,CAAxC;AACAzD,gBAAY,CAACvC,OAAb,CAAqB,qBAArB,EAA4CyH,WAA5C;AACA,SAAK7C,cAAL,CAAoBpC,IAApB,CAAyBwD,OAAzB;AACH;;AAED0B,oBAAkB;AACd,UAAMC,eAAe,GAAWpF,YAAY,CAACG,OAAb,CAAqB,iBAArB,CAAhC;;AACA,QAAIiF,eAAe,IAAIA,eAAe,KAAK,EAA3C,EAA+C;AAC3C,aAAOpB,IAAI,CAACC,KAAL,CAAWmB,eAAX,CAAP;AACH;;AAED,WAAO,IAAP;AACH;;AAEDC,wBAAsB;AAClB,WAAOrF,YAAY,CAACG,OAAb,CAAqB,qBAArB,CAAP;AACH;;AA7JmB;;;mBAAX+B,aAAW9X,sDAAAA,CAAAA,4DAAAA,GAAAA,sDAAAA,CAAAA,4DAAAA;AAAA;;;SAAX8X;AAAWxE,WAAXwE,WAAW;;;;;;;;;;;;;;;;;;;;;ACPK;AAGc;;;;;;;;ICP/B,uEAA0L;IACtL,oEAAiD;IACrD,4DAAI;;;;IAFkC,8MAAoE;IACjG,0DAAsB;IAAtB,+IAAsB;;;IAE/B,wEAAmH;IAC/G,oEAAiD;IACrD,4DAAI;;;IAFkC,yJAAuB;IAAC,gHAAoD;IACzG,0DAAsB;IAAtB,+IAAsB;;;;IALnC,yEAAgM;IAAzE,sSAAc,sBAAe,IAAI,CAAC,IAAC,8OAAe,sBAAe,KAAK,CAAC,IAApC;IACtJ,gHAEI;IACJ,+GAEI;IACR,4DAAM;;;IAPmF,oFAA6B;IAApF,4FAAgC;IAC1D,0DAAgC;IAAhC,+FAAgC;IAGhC,0DAAgC;IAAhC,+FAAgC;;;;IAO5C,yEAA4H;IAAzD,mVAAS,4BAAgB,IAAC;IAA+B,4DAAK;;;IAAnC,qFAA6B;;ADaxH,MAAM,iBAAiB;IAY1B,YAAoB,GAAsB,EAAU,aAA4B;QAA5D,QAAG,GAAH,GAAG,CAAmB;QAAU,kBAAa,GAAb,aAAa,CAAe;QAXvE,WAAM,GAAmB,EAAE,CAAC;QAC5B,aAAQ,GAAW,IAAI,CAAC;QACxB,aAAQ,GAAY,IAAI,CAAC;QAE1B,iBAAY,GAAW,CAAC,CAAC;QACzB,cAAS,GAAY,KAAK,CAAC;QAC3B,kBAAa,GAAW,mEAAyB,CAAC;QAMtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;IACL,CAAC;IAEO,SAAS;QACb,IAAI,SAAS,GAAW,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAC9C,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACjC,SAAS,GAAG,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAEO,SAAS,CAAC,UAAkB,EAAE,eAAuB;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,eAAe,CAAC;SACxD;IACL,CAAC;IAEO,SAAS,CAAC,UAAkB,EAAE,eAAuB;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,eAAe,CAAC;SACxD;IACL,CAAC;IAEO,WAAW,CAAC,UAAkB;QAClC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAEO,QAAQ,CAAC,UAAkB;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB;QACpB,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;oBAC1C,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;iBACxB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,cAAc,CAAC,KAAc;QACzB,IAAI,KAAK,EAAE;YACP,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACvC;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvF;IACL,CAAC;;kFA9EQ,iBAAiB;+GAAjB,iBAAiB;QC1B9B,yEAA+B;QAEvB,6GAOM;QACV,4DAAM;QAEV,wEAAiC;QAC7B,2GAAiI;QACrI,4DAAK;;QAZ0B,0DAAS;QAAT,+EAAS;QAWd,0DAAW;QAAX,+EAAW;8+IDIrB;YACR,4DAAO,CAAC,YAAY,EAAE;gBAClB,0DAAK,CAAC,SAAS,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvC,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtC,+DAAU,CAAC,cAAc,EAAE,CAAC,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC,EAAE,4DAAO,CAAC,OAAO,EAAE,0DAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;gBACzF,+DAAU,CAAC,aAAa,EAAE,CAAC,0DAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,EAAE,4DAAO,CAAC,aAAa,EAAE,0DAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;aAChG,CAAC;SACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;AExBL;AACA;AAWA;;;;;;;;;;;;ACNgB9X,IAAAA,uDAAAA;;;;;AAA6BA,IAAAA,oEAAAA,2DAAAA,2DAAAA;;;;;;AAK7BA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;;;AAThEA,IAAAA,4DAAAA,WAAwC,CAAxC,EAAwC,OAAxC,EAAwC,CAAxC;AACiFA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC5FA,IAAAA,4DAAAA,cAAiC,CAAjC,EAAiC,OAAjC,EAAiC,CAAjC;AAC8EA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA,aAAUY,gCAAV;AAAkC,KAAlC;AAA1EZ,IAAAA,0DAAAA;AACAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,gBAA8E,CAA9E,EAA8E,OAA9E,EAA8E,CAA9E,EAA8E,CAA9E,EAA8E,OAA9E,EAA8E,CAA9E,EAA8E,CAA9E,EAA8E,MAA9E,EAA8E,CAA9E;AAIAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,gBAAgC,EAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AAXOA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAsEA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AAElEA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sCAA6B,IAA7B,EAA6Bob,gBAA7B,EAA6B,MAA7B,EAA6BA,iBAA7B;AACDpb,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AACCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,oCAAkC,IAAlC,EAAkC,cAAlC;AACAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,wCAAsC,IAAtC,EAAsC,kBAAtC;AACAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,gDAA8C,IAA9C,EAA8C,0BAA9C;AACDA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,wCAAAA,4DAAAA;AACCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAQrBA,IAAAA,uDAAAA;;;;;AAA6BA,IAAAA,oEAAAA,2DAAAA,2DAAAA;;;;;;AAK7BA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;;;AAThEA,IAAAA,4DAAAA,WAAyC,CAAzC,EAAyC,OAAzC,EAAyC,CAAzC;AACiFA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC5FA,IAAAA,4DAAAA,cAAiC,CAAjC,EAAiC,OAAjC,EAAiC,EAAjC;AAC8EA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA,aAAUG,iCAAV;AAAmC,KAAnC;AAA1EH,IAAAA,0DAAAA;AACAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,gBAA8E,CAA9E,EAA8E,OAA9E,EAA8E,CAA9E,EAA8E,CAA9E,EAA8E,OAA9E,EAA8E,CAA9E,EAA8E,CAA9E,EAA8E,MAA9E,EAA8E,CAA9E;AAIAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,gBAAgC,EAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AAXOA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAsEA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AAElEA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sCAA6B,IAA7B,EAA6Bqb,gBAA7B,EAA6B,MAA7B,EAA6BA,iBAA7B;AACDrb,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AACCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,oCAAkC,IAAlC,EAAkC,cAAlC;AACAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,wCAAsC,IAAtC,EAAsC,kBAAtC;AACAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,gDAA8C,IAA9C,EAA8C,0BAA9C;AACDA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,wCAAAA,4DAAAA;AACCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAI7BA,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADWA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sCAA6B,MAA7B,EAA6Bsb,iBAA7B,EAA6B,OAA7B,EAA6BA,kBAA7B;;;;;;AAGXtb,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADWA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sCAA6B,MAA7B,EAA6Bub,iBAA7B,EAA6B,OAA7B,EAA6BA,kBAA7B;;;;;;AAGXvb,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADWA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sCAA6B,MAA7B,EAA6BsC,iBAA7B;;;;;;AAEXtC,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADWA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sCAA6B,MAA7B,EAA6Bwb,iBAA7B;;;;;;AAEXxb,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADWA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sCAA6B,MAA7B,EAA6Byb,iBAA7B;;;;;;;;AAGXzb,IAAAA,4DAAAA,WAA4C,CAA5C,EAA4C,KAA5C,EAA4C,EAA5C;AAC2BA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;AAC7BA,IAAAA,uDAAAA;AACAA,IAAAA,4DAAAA;AAA0CA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA,aAAS0b,qBAAT;AAAsB,KAAtB;AAA1C1b,IAAAA,0DAAAA;;;;;AADqBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,iCAAwB,OAAxB,EAAwB2b,kBAAxB;AACD3b,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAGxBA,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AAgBJA,IAAAA,0DAAAA;;;;;;AAKQA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;;;;;AAArCA,IAAAA,wDAAAA;AAAqBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAC7DA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAJrEA,IAAAA,4DAAAA,WAA8B,CAA9B,EAA8B,OAA9B,EAA8B,EAA9B;AACoDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,4DAAAA;AACIA,IAAAA,wDAAAA;AACJA,IAAAA,0DAAAA;AAASA,IAAAA,wDAAAA;AACTA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AANWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACxCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sCAA6B,IAA7B,EAA6B4b,gBAA7B;AACuB5b,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AACfA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAEkCA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAMrBA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAH5DA,IAAAA,4DAAAA,WAA4B,CAA5B,EAA4B,OAA5B,EAA4B,EAA5B;AACoDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,uDAAAA;AACAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AALWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACiBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAC1DA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAGzBA,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADsCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,mCAAAA,4DAAAA;;;;;;AAOlCA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAJ5DA,IAAAA,4DAAAA,WAA6B,CAA7B,EAA6B,OAA7B,EAA6B,EAA7B;AACoDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,uDAAAA;AAEAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AANWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACzCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6B6b,iBAA7B,EAA6B,MAA7B,EAA6BA,kBAA7B,EAA6B,OAA7B,EAA6BA,mBAA7B;AAEA7b,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAGzBA,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADUA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,mCAAAA,4DAAAA;;;;;;AAMNA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAH5DA,IAAAA,4DAAAA,WAAqC,CAArC,EAAqC,OAArC,EAAqC,EAArC;AACoDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,4DAAAA;AAA2IA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC1JA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AALWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACSA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA,qCAA8B,QAA9B,EAA8B8b,oBAA9B,EAA8B,IAA9B;AAA/C9b,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6B8b,iBAA7B;AAAiI9b,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACpIA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAMrBA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAH5DA,IAAAA,4DAAAA,WAA8B,CAA9B,EAA8B,OAA9B,EAA8B,EAA9B;AACoDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,uDAAAA;AACAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AALWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACzCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6B+b,iBAA7B,EAA6B,MAA7B,EAA6BA,kBAA7B,EAA6B,OAA7B,EAA6BA,mBAA7B;AACA/b,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAMrBA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAH5DA,IAAAA,4DAAAA,WAAgC,CAAhC,EAAgC,OAAhC,EAAgC,EAAhC;AACoDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,uDAAAA;AACAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AALWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACzCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6Bgc,iBAA7B,EAA6B,MAA7B,EAA6B,UAA7B;AACAhc,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAMrBA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAH5DA,IAAAA,4DAAAA,WAAsC,CAAtC,EAAsC,OAAtC,EAAsC,EAAtC;AACoDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,uDAAAA;AACAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AALWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACzCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6Bic,iBAA7B,EAA6B,MAA7B,EAA6BA,kBAA7B,EAA6B,OAA7B,EAA6BA,mBAA7B;AACAjc,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAObA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;AAAjCA,IAAAA,wDAAAA;AAAoBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AAH1EA,IAAAA,qEAAAA;AACIA,IAAAA,4DAAAA;AAAgDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,4DAAAA;AAAyEA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AACrEA,IAAAA,wDAAAA;AACJA,IAAAA,0DAAAA;AACJA,IAAAA,mEAAAA;;;;;AAJWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACxCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6Bkc,iBAA7B,EAA6B,SAA7B,EAA6BA,8BAA7B;AACuBlc,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAM3BA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;AAAnCA,IAAAA,wDAAAA;AAAoBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAH1EA,IAAAA,qEAAAA;AACIA,IAAAA,4DAAAA;AAAgDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,4DAAAA;AACIA,IAAAA,wDAAAA;AACJA,IAAAA,0DAAAA;AACJA,IAAAA,mEAAAA;;;;;AAJWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACxCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6Bmc,iBAA7B;AACuBnc,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAGnCA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAb5DA,IAAAA,4DAAAA;AACIA,IAAAA,wDAAAA;AAMAA,IAAAA,wDAAAA;AAMAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AAfmBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAMAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAMRA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAMrBA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;;;;;;AAH5DA,IAAAA,4DAAAA,WAA6B,CAA7B,EAA6B,OAA7B,EAA6B,EAA7B;AACoDA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAC/DA,IAAAA,uDAAAA;AACAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA,eAAgC,CAAhC,EAAgC,qBAAhC,EAAgC,EAAhC;AAEJA,IAAAA,0DAAAA;;;;;AALWA,IAAAA,uDAAAA;AAAAA,IAAAA,yDAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACzCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6Boc,iBAA7B,EAA6B,MAA7B,EAA6B,UAA7B;AACApc,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAE2CA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA7BA,IAAAA,wDAAAA;;;;;;AAGzBA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADWA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6BI,iBAA7B,EAA6B,OAA7B,EAA6BA,mBAA7B;;;;;;AAEXJ,IAAAA,4DAAAA;AACIA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;;;;;AADWA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,uCAA6B,IAA7B,EAA6BM,iBAA7B,EAA6B,OAA7B,EAA6BA,mBAA7B;;;;ADxJb,MAAO+b,yBAAP,CAAgC;AAsBlC9Y,cACY+Y,WADZ,EAEY/J,aAFZ,EAGYE,WAHZ,EAIY8J,YAJZ,CAKI;AALJ;AACY;AACA;AACA;AACA;AArBJ,wBAAwB,KAAxB;AACA,sBAA2B,EAA3B;AAEE,qBAAgC,IAAIhd,uDAAJ,EAAhC;AAEA,yBAAuC,IAAIA,uDAAJ,EAAvC;AACF,0BAA0B,KAA1B;AAOR,kCAAiC,KAAjC;AAEA,8BAA6BI,wEAA7B;AASC;;AAjBkB,MAAf6c,eAAe;AACf,WAAO,KAAKC,cAAZ;AACH;;AAiBDC,UAAQ;AACJ,QAAI,KAAK7Q,KAAL,CAAWiC,MAAX,CAAkB5D,WAAlB,OAAoC,aAAxC,EAAuD;AACnD,UAAI,KAAK2B,KAAL,CAAWkB,GAAX,CAAe7C,WAAf,OAAiC,UAArC,EAAiD;AAC7C,aAAKoS,WAAL,CAAiBK,oBAAjB,GAAwCxQ,SAAxC,CACKyQ,UAAD,IAAkC;AAAG,eAAKC,cAAL,GAAsBD,UAAtB;AAAmC,SAD5E,EAEK7N,KAAD,IAAe;AAAG,eAAK+N,WAAL,CAAiB/N,KAAjB;AAA0B,SAFhD;AAIH,OALD,MAKO,IAAI,KAAKlD,KAAL,CAAWkB,GAAX,CAAe7C,WAAf,OAAiC,UAArC,EAAiD;AACpD,aAAKoS,WAAL,CAAiBS,oBAAjB,GAAwC5Q,SAAxC,CACK6Q,UAAD,IAAkC;AAAG,eAAKH,cAAL,GAAsBG,UAAtB;AAAmC,SAD5E,EAEKjO,KAAD,IAAe;AAAG,eAAK+N,WAAL,CAAiB/N,KAAjB;AAA0B,SAFhD;AAIH;AACJ;;AAED,QAAI,KAAKlD,KAAL,CAAWkE,IAAX,KAAoB,MAAxB,EAAgC;AAC5B,WAAKkN,WAAL,GAAmB,KAAKpR,KAAL,CAAWG,QAA9B;AACH;;AAED,SAAKkR,aAAL,CAAmB7Q,IAAnB,CAAwB,KAAxB;AACA,SAAKoQ,cAAL,GAAsB,KAAtB;AACH;;AAEDU,iBAAe;AACX,SAAKC,YAAL,GAAoB,KAApB;AACH;;AAEDC,oBAAkB;AACd,SAAKD,YAAL,GAAoB,KAApB;AACH;;AAEDE,WAAS;AACL,UAAMrS,OAAO,GAAoB,KAAKsS,IAAL,CAAUxK,GAAV,CAAc,KAAKlH,KAAL,CAAWkB,GAAzB,CAAjC;AAEA,QAAIyQ,WAAJ;;AAEA,QAAI,KAAKf,cAAT,EAAyB;AACrBe,iBAAW,GAAG,IAAd;AACH,KAFD,MAEO,IAAI,KAAKP,WAAT,EAAsB;AACzBO,iBAAW,GAAG,KAAKC,aAAL,IAAuB,KAAKF,IAAL,CAAUG,QAAV,CAAmB,cAAnB,EAAmC5U,KAAnC,KAA6C,EAAlF;AACH,KAFM,MAEA;AACH0U,iBAAW,GAAI,CAACvS,OAAO,CAAC0S,KAAT,IAAkB,KAAKF,aAAtC;AACH;;AAED,WAAOD,WAAP;AACH;;AAEDI,WAAS,CAACxM,MAAD,EAAY;AACjB,SAAKmM,IAAL,CAAUG,QAAV,CAAmB,KAAK7R,KAAL,CAAWkB,GAA9B,EAAmC8Q,QAAnC,CAA4CzM,MAA5C;AACH;;AAED0M,aAAW;AACP,SAAKC,SAAL,CAAe1R,IAAf;AACH,GApFiC,CAsFlC;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;AAEckK,eAAa;AAAA;;AAAA;AACvB,YAAMnE,oDAAc,CAAC,KAAI,CAACG,aAAL,CAAmBgE,aAAnB,EAAD,CAAd,CAAmDhJ,IAAnD,CACDyQ,UAAD,IAA6B;AAAG,aAAI,CAACA,UAAL,GAAkBA,UAAlB;AAA+B,OAD7D,CAAN;AADuB;AAI1B;;AAEaC,cAAY,CAACC,YAAD,EAAqB;AAAA;;AAAA;AAC3C,UAAI,CAAC,MAAI,CAACF,UAAL,CAAgB3Z,MAArB,EAA6B;AACzB,cAAM,MAAI,CAACkS,aAAL,EAAN;AACH;;AAED,YAAMyH,UAAU,GAAiB,MAAI,CAACA,UAAL,CAAgBlI,MAAhB,CAAwBO,MAAD,IAAuB;AAC3E,YAAI6H,YAAY,CAACxP,QAAb,CAAsB,MAAM2H,MAAM,CAAChP,EAAnC,CAAJ,EAA4C;AACxC,iBAAOgP,MAAP;AACH;AACH,OAJ+B,CAAjC;;AAMC,aAAO2H,UAAU,CAAC3Z,MAAX,GAAoB,CAA3B;AAX0C;AAY9C;;AAED8Z,kBAAgB,CAAC/M,MAAD,EAAY;AACxB,UAAMgN,QAAQ,GAAahN,MAAM,CAAC7H,MAAP,CAAc8U,KAAzC;;AACA,QAAID,QAAQ,CAAC/Z,MAAT,GAAkB,CAAtB,EAAyB;AACrB,WAAK6Y,aAAL,CAAmB7Q,IAAnB,CAAwB,IAAxB;AACA,WAAKoQ,cAAL,GAAsB,IAAtB;AAEA,YAAM7P,QAAQ,GAAa,IAAI0R,QAAJ,EAA3B;AACA1R,cAAQ,CAAC2R,MAAT,CAAgB,QAAhB,EAA0BH,QAAQ,CAAC,CAAD,CAAlC;AAEA,WAAK9B,WAAL,CAAiBkC,UAAjB,CAA4B,EAA5B,EAAgC5R,QAAhC,EAA0CT,SAA1C,CACKsS,QAAD,IAAkB;AACd,aAAKlB,IAAL,CAAUG,QAAV,CAAmB,cAAnB,EAAmCG,QAAnC,CAA4CY,QAAQ,CAACC,QAArD;AACA,aAAKnB,IAAL,CAAUG,QAAV,CAAmB,0BAAnB,EAA+CG,QAA/C,CAAwDY,QAAQ,CAACE,gBAAjE;AACA,aAAKpB,IAAL,CAAUG,QAAV,CAAmB,kBAAnB,EAAuCG,QAAvC,CAAgDY,QAAQ,CAACG,QAAzD;AACA,aAAK1B,aAAL,CAAmB7Q,IAAnB,CAAwB,KAAxB;AACA,aAAKoQ,cAAL,GAAsB,KAAtB;AACH,OAPL,EAQK1N,KAAD,IAAe;AACX,aAAKmO,aAAL,CAAmB7Q,IAAnB,CAAwB,KAAxB;AACA,aAAKoQ,cAAL,GAAsB,KAAtB;AACA,aAAKK,WAAL,CAAiB/N,KAAjB;AACH,OAZL;AAcH;AACJ;;AAED8P,mBAAiB,CAACzN,MAAD,EAAY;AACzB,UAAMgN,QAAQ,GAAahN,MAAM,CAAC7H,MAAP,CAAc8U,KAAzC;AACA,QAAIS,QAAJ;;AACA,QAAIV,QAAQ,CAAC/Z,MAAT,GAAkB,CAAtB,EAAyB;AACrB,WAAK6Y,aAAL,CAAmB7Q,IAAnB,CAAwB,IAAxB;AACA,WAAKoQ,cAAL,GAAsB,IAAtB;AAEA,YAAMsC,IAAI,GAASX,QAAQ,CAAC,CAAD,CAA3B;AACA,YAAMY,MAAM,GAAe,IAAIC,UAAJ,EAA3B;;AACAD,YAAM,CAACE,MAAP,GAAkBC,KAAD,IAAe;AAC5BL,gBAAQ,GAAGK,KAAK,CAAC5V,MAAN,CAAaoP,MAAxB;AACH,OAFD;;AAGAqG,YAAM,CAACI,aAAP,CAAqBhO,MAAM,CAAC7H,MAAP,CAAc8U,KAAd,CAAoB,CAApB,CAArB;AAEA,YAAMgB,SAAS,GAAWN,IAAI,CAACO,IAA/B;;AACA,UAAID,SAAS,GAAI,OAAO,IAAxB,EAA+B;AAAK;AAChC,aAAKE,sBAAL,CAA4BT,QAA5B,EAAwC,OAAO,IAAR,GAAgBO,SAAjB,GAA8B,GAApE,EAAyEN,IAAzE;AACH,OAdoB,CAgBrB;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACH;AACJ;;AAEOQ,wBAAsB,CAACC,SAAD,EAAoBC,aAApB,EAA2CV,IAA3C,EAAqD;AAC/E,SAAKxC,YAAL,CAAkBmD,YAAlB,CAA+BF,SAA/B,EAA0C,CAAC,CAA3C,EAA8CC,aAA9C,EAA6DlS,IAA7D,CAAkEoL,MAAM,IAAG;AACvE;AACA;AACA,YAAMgH,cAAc,GAAS,IAAIC,IAAJ,CAAS,CAACjH,MAAD,CAAT,EAAmBoG,IAAI,CAAC/V,IAAxB,EAA8B;AAAE+G,YAAI,EAAEgP,IAAI,CAAChP;AAAb,OAA9B,CAA7B;AAEA,YAAMnD,QAAQ,GAAa,IAAI0R,QAAJ,EAA3B;AACA1R,cAAQ,CAAC2R,MAAT,CAAgB,QAAhB,EAA0BoB,cAA1B;AAEA,WAAKrD,WAAL,CAAiBkC,UAAjB,CAA4B,EAA5B,EAAgC5R,QAAhC,EAA0CT,SAA1C,CACKsS,QAAD,IAAkB;AACd,aAAKlB,IAAL,CAAUG,QAAV,CAAmB,cAAnB,EAAmCG,QAAnC,CAA4CY,QAAQ,CAACC,QAArD;AACA,aAAKnB,IAAL,CAAUG,QAAV,CAAmB,0BAAnB,EAA+CG,QAA/C,CAAwDkB,IAAI,CAAC/V,IAA7D;AACA,aAAKuU,IAAL,CAAUG,QAAV,CAAmB,kBAAnB,EAAuCG,QAAvC,CAAgDY,QAAQ,CAACG,QAAzD;AACA,aAAK1B,aAAL,CAAmB7Q,IAAnB,CAAwB,KAAxB;AACA,aAAKoQ,cAAL,GAAsB,KAAtB;AACH,OAPL,EAQKoD,aAAD,IAAuB;AAAG,aAAK/C,WAAL,CAAiB+C,aAAjB;AAAkC,OARhE;AAUH,KAlBD;AAmBH;;AAEOC,eAAa,CAACC,GAAD,EAAcvR,QAAd,EAA8B;AAC/C,UAAMwR,UAAU,GAAWjJ,MAAM,CAAC3H,IAAP,CAAY2Q,GAAZ,CAA3B;AACA,UAAME,MAAM,GAAgB,IAAIC,WAAJ,CAAgBF,UAAU,CAAC3b,MAA3B,CAA5B;AACA,UAAM8b,QAAQ,GAAe,IAAIvQ,UAAJ,CAAeqQ,MAAf,CAA7B;;AACA,SAAK,IAAIxX,CAAC,GAAW,CAArB,EAAwBA,CAAC,GAAGuX,UAAU,CAAC3b,MAAvC,EAA+C,EAAEoE,CAAjD,EAAoD;AAChD0X,cAAQ,CAAC1X,CAAD,CAAR,GAAcuX,UAAU,CAACtQ,UAAX,CAAsBjH,CAAtB,CAAd;AACH;;AACD,WAAO,IAAIqH,IAAJ,CAAS,CAACqQ,QAAD,CAAT,EAAqB;AAAEpQ,UAAI,EAAEvB;AAAR,KAArB,CAAP;AACH,GAxOiC,CA0OlC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEQsO,aAAW,CAAC/N,KAAD,EAAW;AAC1BsJ,WAAO,CAACtJ,KAAR,CAAc,mBAAd,EAAmCA,KAAnC;AACAoM,IAAAA,gDAAoB,CAACpM,KAAD,CAApB;AACH;;AArPiC;;;mBAAzBsN,2BAAyBrc,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,uEAAAA;AAAA;;;QAAzBqc;AAAyBvK;AAAAsO;AAAAvU;AAAA0R;AAAAE;AAAA;AAAA1L;AAAAgM;AAAAb;AAAA;AAAAlL;AAAAC;AAAAC;AAAAC;AAAA;ACpBtCnS,MAAAA,4DAAAA,cAAwB,CAAxB,EAAwB,KAAxB,EAAwB,CAAxB;AAEQA,MAAAA,wDAAAA;AAeAA,MAAAA,wDAAAA;AAeAA,MAAAA,wDAAAA;AAIAA,MAAAA,wDAAAA;AAIAA,MAAAA,wDAAAA;AAGAA,MAAAA,wDAAAA;AAGAA,MAAAA,wDAAAA;AAIAA,MAAAA,wDAAAA;AAMAA,MAAAA,wDAAAA;AAmBAA,MAAAA,wDAAAA;AASAA,MAAAA,wDAAAA;AAQAA,MAAAA,wDAAAA;AAIAA,MAAAA,wDAAAA;AASAA,MAAAA,wDAAAA;AAIAA,MAAAA,wDAAAA;AAQAA,MAAAA,wDAAAA;AAQAA,MAAAA,wDAAAA;AAQAA,MAAAA,wDAAAA;AAQAA,MAAAA,wDAAAA;AAkBAA,MAAAA,wDAAAA;AAQAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGAA,MAAAA,wDAAAA;AAGJA,MAAAA,0DAAAA;;;;AA9KCA,MAAAA,wDAAAA;AACIA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACKA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAeAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAeAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAIAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAIAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAGAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAGAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAIAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAMAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAmBAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AASAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAIAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AASAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAIAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAkBAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAGAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9Jd;AAEA;AAaA;;;;;;;;;;;;;;;;;;;;;;;;ACzBYA,IAAAA,6DAAAA,cAAkH,CAAlH,EAAkH,QAAlH;AACYA,IAAAA,qDAAAA;AAAmBA,IAAAA,2DAAAA;AAASA,IAAAA,wDAAAA;AACxCA,IAAAA,2DAAAA;;;;;AAFuEA,IAAAA,yDAAAA,YAAAA,8DAAAA;AAC3DA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;;;AAGRA,IAAAA,6DAAAA;AAAyIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA,aAAa2b,gBAAb;AAAsB,KAAtB;AAAwB3b,IAAAA,2DAAAA;;;;;;AAA1FA,IAAAA,yDAAAA,oBAAe,MAAf,EAAesC,WAAf,EAAe,eAAf,EAAeA,wBAAf;;;;;;;;AACvEtC,IAAAA,6DAAAA;AAAgLA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA,aAAiBsgB,2BAAjB;AAAoC,KAApC;AAAsCtgB,IAAAA,2DAAAA;;;;;;AAAxGA,IAAAA,yDAAAA,oBAAe,MAAf,EAAewb,WAAf,EAAe,eAAf,EAAeA,wBAAf;;;;;;AAC9Gxb,IAAAA,wDAAAA;;;;;;AACIA,IAAAA,yDAAAA,oBAAe,MAAf,EAAeyb,WAAf,EAAe,eAAf,EAAeA,wBAAf;;;;;;AAJRzb,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AACAA,IAAAA,yDAAAA;AAEJA,IAAAA,2DAAAA;;;;;AAJyBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AACAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAKjCA,IAAAA,wDAAAA;;;;;AAAkBA,IAAAA,qEAAAA,0DAAAA,4DAAAA;;;;AD2BhB,MAAOugB,oBAAP,CAA2B;AAoC7Bhd,cACY+Y,WADZ,EAEY7J,WAFZ,EAGYF,aAHZ,EAIYC,MAJZ,EAKY9I,KALZ,EAMY8W,EANZ,EAOYC,YAPZ,EAQYC,OARZ,EASYC,UATZ,EAUYC,gBAVZ,EAUgD;AATpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3CH,kBAA+B,EAA/B;AAGA,qBAAoB,EAApB;AACA,uBAAsB,EAAtB;AACA,4BAA4B,KAA5B;AACA,uBAAuB,KAAvB;AACA,gCAAgC,KAAhC;AAKT,mBAAkB,EAAlB;AACA,2BAA0B,EAA1B;AACA,4BAAsC,EAAtC;AACQ,4BAA4B,KAA5B;AAGA,2BAA2B,KAA3B;AACA,2BAA2B,KAA3B;AACA,gCAAgC,KAAhC;AACA,kCAAkC,KAAlC;AACA,sBAA2B,EAA3B;AACR,gBAAgB,KAAhB;AAMA,0BAAyB,cAAzB;AAEA,6BAA6B,KAA7B;AAaI;;AAnBkB,MAAlBC,kBAAkB;AAClB,WAAOlhB,wEAAP;AACH;;AAmBD+c,UAAQ;AACJ,SAAKa,IAAL,GAAY,KAAKjB,WAAL,CAAiBwE,WAAjB,CAA6B,KAAKC,MAAlC,CAAZ,CADI,CAEJ;AACA;AACA;;AAEA,QAAI,KAAKC,gBAAL,IAAyB,KAAKpT,WAAL,KAAqB,EAAlD,EAAsD;AAClD,WAAKqT,gBAAL;AACH;;AAED,QAAI,KAAKC,WAAT,EAAsB;AAClB,WAAK3K,aAAL;AACH;;AAED,UAAMvJ,IAAI,GAAkB,KAAKyF,WAAL,CAAiBxF,cAAjB,EAA5B;;AACA,QAAI,KAAKkU,oBAAL,IAA6BnU,IAAI,KAAK,IAA1C,EAAgD;AAC5CqL,aAAO,CAACC,GAAR,CAAY,mCAAZ;AACA,WAAK8I,oBAAL,CAA0B;AAAE7W,UAAE,EAAE,CAAN;AAASiQ,cAAM,EAAExN,IAAI,CAACE;AAAtB,OAA1B;AACH;AACJ;;AAEDiQ,iBAAe;AACX,SAAKkE,OAAL,GAAe,EAAf;AACH;;AAEDhE,oBAAkB;AACd,SAAKgE,OAAL,GAAe,EAAf;AACH;;AAEDC,oBAAkB;AACd,SAAKL,gBAAL;AACH;;AAEO1K,eAAa;AACjB,SAAKhE,aAAL,CAAmBgE,aAAnB,GAAmCpK,SAAnC,CAA8C6R,UAAD,IAA6B;AACtE,WAAKA,UAAL,GAAkBA,UAAlB;AACH,KAFD;AAGH;;AAEOiD,kBAAgB;AACpB,UAAMrU,QAAQ,GAA6B,EAA3C;AACAA,YAAQ,CAAC,UAAD,CAAR,GAAuB,KAAKD,MAA5B;AACAC,YAAQ,CAAC,YAAD,CAAR,GAAyB,MAAzB;AACAA,YAAQ,CAAC,YAAD,CAAR,GAAyB,KAAK2F,aAAL,CAAmB9N,WAAnB,EAAzB;AAEA,SAAKiF,KAAL,CAAW6X,QAAX,CAAoBC,aAApB,CAAkC1U,IAAlC,CAAuCjH,OAAvC,CAAgDkH,GAAD,IAAgB;AAC3DH,cAAQ,CAAC,iBAAiBG,GAAG,CAAC7C,WAAJ,EAAlB,CAAR,GAA+C,KAAKR,KAAL,CAAW6X,QAAX,CAAoBC,aAApB,CAAkCzO,GAAlC,CAAsChG,GAAtC,CAA/C;AACH,KAFD;AAIA,UAAMC,IAAI,GAAkB,KAAKyF,WAAL,CAAiBxF,cAAjB,EAA5B;;AACA,QAAID,IAAJ,EAAU;AACNJ,cAAQ,CAAC,cAAD,CAAR,GAA2BI,IAAI,CAACE,MAAhC;AACH;;AAED,SAAKoB,gBAAL,GAAwB,EAAxB;AACA,SAAKL,eAAL,CAAqBrB,QAArB;AACH;;AAED6U,aAAW,CAACC,YAAD,EAAsB;AAC7B,QAAIA,YAAJ,EAAkB;AACd,WAAKnE,IAAL,CAAUoE,OAAV;AACH,KAFD,MAEO;AACH,WAAKpE,IAAL,CAAUqE,MAAV;AACH;AACJ;;AAEOC,oBAAkB,CAACnH,KAAD,EAAc;AACpC,QAAIA,KAAK,IAAIA,KAAK,KAAK,EAAvB,EAA2B;AACvB,WAAKoH,gBAAL,GAAwB,IAAxB;AACA,WAAKC,UAAL;AACH,KAHD,MAGO;AACH,WAAKD,gBAAL,GAAwB,KAAxB;AACH;;AACD,QAAI,KAAKE,oBAAT,EAA+B;AAC3B,WAAKA,oBAAL,CAA0BC,WAA1B;AACH;AACJ;;AAEKC,UAAQ;AAAA;;AAAA;AACV,UAAI,KAAI,CAAC3E,IAAL,CAAU4E,QAAV,CAAmB,cAAnB,CAAJ,EAAwC;AACpC,aAAI,CAACH,oBAAL,GAA4B,KAAI,CAACpB,gBAAL,CAAsBwB,OAAtB,CAA8B,QAA9B,EAAwCjW,SAAxC,CAAmDuO,KAAD,IAAW,KAAI,CAACmH,kBAAL,CAAwBnH,KAAxB,CAA7D,CAA5B;AACH,OAFD,MAEO;AACH,aAAI,CAACmH,kBAAL,CAAwB,cAAxB;AACH;AALS;AAMb;;AAEaE,YAAU;AAAA;;AAAA;AACpB,YAAI,CAACM,YAAL;;AACA,UAAI,MAAI,CAAC9E,IAAL,CAAUI,KAAd,EAAqB;AACjB,cAAM/Q,QAAQ,GAAG,MAAI,CAAC2Q,IAAL,CAAUzU,KAA3B;AACA,cAAMgE,IAAI,GAAaD,MAAM,CAACC,IAAP,CAAYF,QAAZ,CAAvB;AACAE,YAAI,CAACjH,OAAL,CAAckH,GAAD,IAAQ;AACjB,cAAI,CAACH,QAAQ,CAACG,GAAD,CAAT,IAAkBH,QAAQ,CAACG,GAAD,CAAR,KAAkB,EAApC,IAA0CA,GAAG,KAAK,SAAlD,IAA+DA,GAAG,KAAK,EAA3E,EAA+E;AAC3E,mBAAOH,QAAQ,CAACG,GAAD,CAAf;AACH,WAFD,MAEO,IAAI,OAAOH,QAAQ,CAACG,GAAD,CAAf,KAAyB,QAA7B,EAAuC;AAC1C,gBAAIH,QAAQ,CAACG,GAAD,CAAR,CAAcuV,SAAlB,EAA6B;AACzB1V,sBAAQ,CAACG,GAAD,CAAR,GAAgBH,QAAQ,CAACG,GAAD,CAAR,CAAcuV,SAA9B;AACH;AACJ;AACJ,SARD;AAUA1V,gBAAQ,CAAC,UAAD,CAAR,GAAuB,MAAI,CAACD,MAA5B;AACAC,gBAAQ,CAAC,YAAD,CAAR,GAAyB,MAAzB;AACAA,gBAAQ,CAAC,YAAD,CAAR,GAAyB,MAAI,CAAC2F,aAAL,CAAmB9N,WAAnB,EAAzB;;AAEA,cAAMuI,IAAI,GAAkB,MAAI,CAACyF,WAAL,CAAiBxF,cAAjB,EAA5B;;AACA,YAAID,IAAJ,EAAU;AACNJ,kBAAQ,CAAC,cAAD,CAAR,GAA2BI,IAAI,CAACE,MAAhC;AACH;;AACD,cAAMqV,iBAAiB,GAAG,MAAI,CAAC7Y,KAAL,CAAW6X,QAAX,CAAoBhW,WAApB,CAAgC,aAAhC,CAA1B;;AACA,YAAIgX,iBAAJ,EAAuB;AACnB3V,kBAAQ,CAAC,mBAAD,CAAR,GAAgC2V,iBAAhC;AACH;;AACD,cAAMC,mBAAmB,GAAG,MAAI,CAAC9Y,KAAL,CAAW6X,QAAX,CAAoBhW,WAApB,CAAgC,eAAhC,CAA5B;;AACA,YAAIiX,mBAAJ,EAAyB;AACrB5V,kBAAQ,CAAC,qBAAD,CAAR,GAAkC4V,mBAAlC;AACH,SA5BgB,CA8BjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,gBAAQ,MAAI,CAAC1U,MAAb;AACI,eAAK,WAAL;AACI,kBAAI,CAAC0K,SAAL,CAAe5L,QAAf;;AACA;;AACJ;AACI,gBAAI,MAAI,CAACsU,WAAT,EAAsB;AAClB,kBAAI,MAAI,CAACjD,YAAL,CAAkBrR,QAAQ,CAAC,QAAD,CAA1B,CAAJ,EAA2C;AACvC,oBAAI,CAAC,MAAI,CAAC6F,WAAL,CAAiB0F,eAAjB,EAAL,EAAyC;AACrC,wBAAM,MAAI,CAAC1F,WAAL,CAAiBoG,aAAjB,EAAN;AACA,wBAAM,MAAI,CAACpG,WAAL,CAAiBiH,sBAAjB,EAAN;;AACA,wBAAM1B,WAAW,GAAkB,MAAI,CAACvF,WAAL,CAAiBxF,cAAjB,EAAnC;;AACA,sBAAI+K,WAAJ,EAAiB;AACb,0BAAI,CAACyK,kBAAL,CAAwBzK,WAAxB;AACH;AACJ;AACJ,eATD,MASO;AACH,sBAAI,CAAC0K,mBAAL,CAAyB9V,QAAzB;AACH;AACJ,aAbD,MAaO,IAAI,MAAI,CAACuU,oBAAT,EAA+B;AAClC,oBAAI,CAACwB,cAAL,CAAoB/V,QAApB;AACH,aAFM,MAEA,IAAI,MAAI,CAACgB,WAAL,IAAoB,MAAI,CAACA,WAAL,KAAqB,EAA7C,EAAiD;AACpD,oBAAI,CAACK,eAAL,CAAqBrB,QAArB;AACH,aAFM,MAEA;AACH,oBAAI,CAACgW,UAAL,CAAgBhW,QAAhB;AACH;;AAxBT;;AA2BA,cAAI,CAACyU,OAAL,GAAezH,IAAI,CAACK,SAAL,CAAe,MAAI,CAACsD,IAAL,CAAUzU,KAAzB,CAAf;AACH;AA5EmB;AA6EvB;;AAEO2Z,oBAAkB,CAACzV,IAAD,EAAoB;AAC1C,SAAK4F,SAAL,GAAiBQ,cAAc,CAAC2C,OAAf,CAAuB,WAAvB,CAAjB;;AACA,QAAI,KAAKnD,SAAT,EAAoB;AAChBQ,oBAAc,CAAC2G,UAAf,CAA0B,WAA1B;AACH;;AAED,QAAI,KAAKnH,SAAL,IAAkB,KAAKA,SAAL,KAAmB,EAArC,IAA2C,KAAKA,SAAL,KAAmB,GAAlE,EAAuE;AACnE,WAAKH,WAAL,CAAiBkI,yBAAjB,CAA2C,EAA3C,EAA+CxO,SAA/C,CAAyD;AACrD0J,YAAI,EAAGgN,QAAD,IAAmC;AACrC,cAAIA,QAAQ,IAAIA,QAAQ,CAACC,QAArB,IAAiCD,QAAQ,CAACC,QAAT,CAAkBze,MAAlB,KAA6B,CAAlE,EAAqE;AACjE,iBAAKoO,WAAL,CAAiBoI,kBAAjB,CAAoCgI,QAAQ,CAACC,QAAT,CAAkB,CAAlB,CAApC,EAA0DD,QAAQ,CAACE,6BAAnE;AACA,iBAAKvQ,MAAL,CAAYpH,aAAZ,CAA0B,KAAKwH,SAA/B;AACH,WAHD,MAGO;AACH,iBAAKwO,oBAAL,CAA0B;AAAE5G,oBAAM,EAAExN,IAAI,CAACE;AAAf,aAA1B;AACH;AACJ,SARoD;AASrD6B,aAAK,EAAGA,KAAD,IAAe;AAClB,eAAK+N,WAAL,CAAiB/N,KAAjB;AACH;AAXoD,OAAzD;AAaH,KAdD,MAcO;AACH,WAAKqS,oBAAL,CAA0B;AAAE5G,cAAM,EAAExN,IAAI,CAACE;AAAf,OAA1B;AACH;AACJ;;AAEO+Q,cAAY,CAACC,YAAD,EAAqB;AACrC,QAAI,CAAC,KAAKF,UAAL,CAAgB3Z,MAArB,EAA6B;AACzB,WAAKkS,aAAL;AACH;;AAED2H,gBAAY,GAAGA,YAAY,CAAChU,WAAb,EAAf;AACA,UAAM8T,UAAU,GAAiB,KAAKA,UAAL,CAAgBlI,MAAhB,CAC5BO,MAAD,IAAuB;AACnB,UAAI6H,YAAY,CAACxP,QAAb,CAAsB,MAAM2H,MAAM,CAAChP,EAAP,CAAU6C,WAAV,EAA5B,CAAJ,EAA0D;AACtD,eAAOmM,MAAP;AACH;AACJ,KAL4B,CAAjC;AAQA,WAAO2H,UAAU,CAAC3Z,MAAX,GAAoB,CAA3B;AACH;;AAEOge,cAAY;AAChB,SAAKW,iBAAL,GAAyB,IAAzB;AACH;;AAEON,qBAAmB,CAACza,IAAD,EAAU;AACjC,SAAKqU,WAAL,CAAiBoG,mBAAjB,CAAqCza,IAArC,EAA2CkE,SAA3C;AACA,SAAKiV,oBAAL,CAA0B;AAAE7W,QAAE,EAAE,CAAN;AAASiQ,YAAM,EAAEvS,IAAI,CAACiF;AAAtB,KAA1B;AACH;;AAEOyV,gBAAc,CAAC1a,IAAD,EAAU;AAC5B,UAAMuS,MAAM,GAAW,KAAK9Q,KAAL,CAAW6X,QAAX,CAAoBC,aAApB,CAAkCzO,GAAlC,CAAsC,QAAtC,CAAvB;AACA9K,QAAI,CAAC,QAAD,CAAJ,GAAiBuS,MAAjB;AACA,SAAK8B,WAAL,CAAiB2G,oBAAjB,CAAsChb,IAAtC,EAA4CkE,SAA5C,CAAsD;AAClD0J,UAAI,EAAG8C,MAAD,IAA0B;AAC5B,YAAIA,MAAJ,EAAY;AACR,eAAKuK,eAAL,GAAuB,IAAvB;;AAEA,cAAI,CAAC,KAAKjF,YAAL,CAAkBzD,MAAlB,CAAL,EAAgC;AAC5B,iBAAK/H,WAAL,CAAiBmG,cAAjB,CAAgCD,MAAhC;AACH;;AAED,eAAK8J,kBAAL,CAAwB9J,MAAxB,EAPQ,CAQR;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACH,SAhCD,MAgCO;AACH,eAAKwK,eAAL,GAAuB,IAAvB;AACA,eAAK1Q,WAAL,CAAiBmG,cAAjB,CAAgC,IAAhC;AACA,eAAKwK,eAAL,GAAuB,KAAKC,iBAAL,EAAvB;AACA,eAAKL,iBAAL,GAAyB,KAAzB;AACH;AACJ,OAxCiD;AAyClDjU,WAAK,EAAGA,KAAD,IAA6B;AAChC,YAAIA,KAAK,CAACuU,MAAN,KAAiB,GAArB,EAA0B;AACtB,eAAKH,eAAL,GAAuB,IAAvB;AACA,eAAK1Q,WAAL,CAAiBmG,cAAjB,CAAgC,IAAhC;AACA,eAAKwK,eAAL,GAAuBrU,KAAK,CAACwU,UAA7B;AACA,eAAKP,iBAAL,GAAyB,KAAzB;AACH,SALD,MAKO;AACH,eAAKlG,WAAL,CAAiB/N,KAAjB;AACH;AACJ;AAlDiD,KAAtD;AAoDH;;AAEO6T,YAAU,CAAC3a,IAAD,EAAU;AACxB,SAAKqU,WAAL,CAAiBsG,UAAjB,CAA4B,KAAK9U,MAAjC,EAAyC7F,IAAzC,EAA+CkE,SAA/C,CAAyD;AACrD0J,UAAI,EAAG8C,MAAD,IAAoB;AACtB,YAAIA,MAAJ,EAAY;AACR,eAAKuK,eAAL,GAAuB,IAAvB;AACA,eAAKE,eAAL,GAAuB,KAAKI,iBAAL,EAAvB;AACA,eAAK/C,YAAL,CAAkBgD,IAAlB,CAAuB,KAAKC,cAA5B;AACH,SAJD,MAIO;AACH,eAAKP,eAAL,GAAuB,IAAvB;AACA,eAAKC,eAAL,GAAuB,KAAKC,iBAAL,EAAvB;AACA,eAAKL,iBAAL,GAAyB,KAAzB;AACH;AACJ,OAXoD;AAYrDjU,WAAK,EAAGA,KAAD,IAA6B;AAChC,aAAK+N,WAAL,CAAiB/N,KAAjB;AACH;AAdoD,KAAzD;AAgBH;;AAEOd,iBAAe,CAAChG,IAAD,EAAU;AAC7B,SAAKiD,IAAL,GAAY,IAAZ;AACA,SAAKoD,gBAAL,GAAwB,EAAxB;AACA,SAAKgO,WAAL,CAAiBrO,eAAjB,CAAiC,KAAKH,MAAtC,EAA8C,KAAKF,WAAnD,EAAgE3F,IAAhE,EAAsEkE,SAAtE,CAAgF;AAC5E0J,UAAI,EAAG7H,OAAD,IAAiB;AACnB,aAAKM,gBAAL,GAAwBN,OAAxB;AACA,aAAK9C,IAAL,GAAY,KAAZ;AACH,OAJ2E;AAK5E6D,WAAK,EAAGA,KAAD,IAA6B;AAChC,aAAK7D,IAAL,GAAY,KAAZ;AACA,aAAK4R,WAAL,CAAiB/N,KAAjB;AACH;AAR2E,KAAhF;AAUH;;AAEOyJ,WAAS,CAACvQ,IAAD,EAAU;AACvBmL,kBAAc,CAAC2G,UAAf,CAA0B,WAA1B;AACA,SAAKtH,WAAL,CAAiB+F,SAAjB,CAA2BvQ,IAA3B,EAAiCsF,IAAjC,CACKoB,QAAD,IAAsB;AAClB,UAAIA,QAAJ,EAAc;AACV,YAAI,KAAKiE,SAAL,KAAmB,EAAvB,EAA2B;AACvB,eAAKJ,MAAL,CAAYlH,QAAZ,CAAqB,CAAC,KAAKsH,SAAN,CAArB;AACH,SAFD,MAEO;AACH,eAAKsQ,eAAL,GAAuB,IAAvB;AACA,eAAKE,eAAL,GAAuB,KAAKI,iBAAL,EAAvB;AACH;AACJ,OAPD,MAOO;AACH,aAAKL,eAAL,GAAuB,IAAvB;AACA,aAAKC,eAAL,GAAuB,KAAKC,iBAAL,EAAvB;AACH;AACJ,KAbL,EAcKtU,KAAD,IAA6B;AACzB,UAAIA,KAAK,CAACuU,MAAN,KAAiB,GAArB,EAA0B;AACtB,YAAIvU,KAAK,CAACwU,UAAN,CAAiBrZ,WAAjB,OAAmC,IAAvC,EAA6C;AACzC,eAAKkZ,eAAL,GAAuBrU,KAAK,CAACwU,UAA7B;AACH,SAFD,MAEO;AACH,eAAKJ,eAAL,GAAuB,IAAvB;AACA,eAAKC,eAAL,GAAuB,KAAKC,iBAAL,EAAvB;AACH;AACJ,OAPD,MAOO;AACH,aAAKF,eAAL,GAAuB,IAAvB;AACA,aAAKC,eAAL,GAAuB,KAAKC,iBAAL,EAAvB;AACH;AACJ,KA1BL;AA4BH;;AAESM,oCAAkC;AACxC,QAAI,KAAK5C,MAAL,IAAe,KAAKA,MAAL,CAAY1c,MAAZ,GAAqB,CAAxC,EAA2C;AACvC,YAAMuf,cAAc,GAAyB,KAAK7C,MAAL,CAAYjL,MAAZ,CACxC+N,CAAD,IAA0B;AACtB,YAAIA,CAAC,CAACC,WAAF,KAAkB,mBAAtB,EAA2C;AACvC,iBAAOD,CAAP;AACH;AACJ,OALwC,CAA7C;;AAQA,UAAID,cAAc,IAAIA,cAAc,CAACvf,MAAf,GAAwB,CAA9C,EAAiD;AAC7C,eAAOuf,cAAc,CAAC,CAAD,CAAd,CAAkB9a,KAAzB;AACH;;AAED,aAAO,EAAP;AACH;AACJ;;AAEOua,mBAAiB;AACrB,QAAI,KAAKtC,MAAL,IAAe,KAAKA,MAAL,CAAY1c,MAAZ,GAAqB,CAAxC,EAA2C;AACvC,YAAMuf,cAAc,GAAyB,KAAK7C,MAAL,CAAYjL,MAAZ,CACxC+N,CAAD,IAA0B;AACtB,YAAIA,CAAC,CAACC,WAAF,KAAkB,YAAtB,EAAoC;AAChC,iBAAOD,CAAP;AACH;AACJ,OALwC,CAA7C;;AAQA,UAAID,cAAc,IAAIA,cAAc,CAACvf,MAAf,GAAwB,CAA9C,EAAiD;AAC7C,eAAOuf,cAAc,CAAC,CAAD,CAAd,CAAkB9a,KAAzB;AACH;;AAED,aAAO,EAAP;AACH;AACJ;;AAEO0a,mBAAiB;AACrB,QAAI,KAAKzC,MAAL,IAAe,KAAKA,MAAL,CAAY1c,MAAZ,GAAqB,CAAxC,EAA2C;AACvC,YAAM0f,OAAO,GAAyB,KAAKhD,MAAL,CAAYjL,MAAZ,CACjC+N,CAAD,IAA0B;AACtB,YAAIA,CAAC,CAACC,WAAF,KAAkB,YAAtB,EAAoC;AAChC,iBAAOD,CAAP;AACH;AACJ,OALiC,CAAtC;;AAQA,UAAIE,OAAO,IAAIA,OAAO,CAAC1f,MAAR,GAAiB,CAAhC,EAAmC;AAC/B,eAAO0f,OAAO,CAAC,CAAD,CAAP,CAAWjb,KAAlB;AACH;;AAED,aAAO,EAAP;AACH;AACJ;;AAEDkb,SAAO;AACH,QAAI,KAAKzG,IAAL,CAAUG,QAAV,CAAmBuG,OAAvB,EAAgC;AAC5B,WAAK1G,IAAL,CAAUG,QAAV,CAAmBuG,OAAnB,CAA2BC,KAA3B;AACH;;AACD,SAAK3G,IAAL,CAAU2G,KAAV;AACA,SAAKnD,MAAL,CAAYlb,OAAZ,CAAqBge,CAAD,IAA0B;AAC1CA,OAAC,CAACM,cAAF;AACH,KAFD;AAGH;;AAEDC,oBAAkB;AACd,SAAKtC,gBAAL,GAAwB,KAAxB;AACH;;AAEDlE,WAAS;AACL,SAAKkE,gBAAL,GAAwB,IAAxB;AACH;;AAEDuC,iBAAe;AACX,QAAI,KAAKlB,eAAT,EAA0B;AACtB,aAAO,SAAP;AACH;;AAED,WAAO,WAAP;AACH;;AAEDmB,eAAa;AACT,SAAKtB,iBAAL,GAAyB,KAAzB;AAEA,UAAMpQ,SAAS,GAAWQ,cAAc,CAAC2C,OAAf,CAAuB,WAAvB,CAA1B;;AAEA,QAAInD,SAAJ,EAAe;AACXQ,oBAAc,CAAC2G,UAAf,CAA0B,WAA1B;AACH;;AAED,SAAKwD,IAAL,CAAU2G,KAAV;;AAEA,QAAItR,SAAS,IAAIA,SAAS,KAAK,EAA3B,IAAiCA,SAAS,KAAK,GAAnD,EAAwD;AACpD,WAAKJ,MAAL,CAAYlH,QAAZ,CAAqB,CAAC,KAAKsH,SAAN,CAArB,EAAuC;AAAErH,mBAAW,EAAE;AAAEhB,YAAE,EAAE;AAAN;AAAf,OAAvC;AACH,KAFD,MAEO;AACH,WAAK6W,oBAAL,CAA0B,IAA1B;AACH;AACJ;;AAEOA,sBAAoB,CAACmD,cAAD,EAA8B;AACtD,UAAMC,aAAa,GAAyB,KAAKzD,MAAL,CAAYjL,MAAZ,CACvC+N,CAAD,IAA0B;AACtB,UAAIA,CAAC,CAACC,WAAF,KAAkB,cAAlB,IACAD,CAAC,CAACC,WAAF,KAAkB,sBADlB,IAEAD,CAAC,CAACC,WAAF,KAAkB,qBAFtB,EAGE;AACE,eAAOD,CAAP;AACH;AACJ,KARuC,CAA5C;;AAWA,QAAIW,aAAa,IAAIA,aAAa,CAACngB,MAAd,GAAuB,CAA5C,EAA+C;AAC3C,YAAMogB,YAAY,GAAW,KAAKC,aAAL,CAAmBF,aAAa,CAAC,CAAD,CAAhC,CAA7B;AAEA,UAAI1a,MAAJ;;AACA,UAAIya,cAAJ,EAAoB;AAChBza,cAAM,GAAGya,cAAT;AACH,OAFD,MAEO;AACHza,cAAM,GAAG;AAAES,YAAE,EAAE;AAAN,SAAT;AACH;;AAED,WAAKiI,MAAL,CAAYlH,QAAZ,CACI,CAAC,KAAKiH,aAAL,CAAmBhM,eAAnB,EAAD,EAAuC,MAAvC,EAA+Cke,YAA/C,CADJ,EAEI;AAAElZ,mBAAW,EAAEzB;AAAf,OAFJ;AAIH;AACJ;;AAEO4a,eAAa,CAAC7Y,KAAD,EAA0B;AAC3C,QAAIA,KAAK,CAACiY,WAAN,KAAsB,cAA1B,EAA0C;AACtC,aAAQjY,KAA+B,CAAC4Y,YAAxC;AACH,KAFD,MAEO,IAAI5Y,KAAK,CAACiY,WAAN,KAAsB,sBAA1B,EAAkD;AACrD,aAAQjY,KAAwC,CAAC4Y,YAAjD;AACH,KAFM,MAEA,IAAI5Y,KAAK,CAACiY,WAAN,KAAsB,qBAA1B,EAAiD;AACpD,aAAQjY,KAAsC,CAAC4Y,YAA/C;AACH;;AAED,WAAO,EAAP;AACH;;AAEO3H,aAAW,CAAC/N,KAAD,EAAW;AAC1BsJ,WAAO,CAACtJ,KAAR,CAAc,mBAAd,EAAmCA,KAAnC;AACH;;AAED4V,sBAAoB,CAACC,OAAD,EAA+B;AAC/C,UAAMC,SAAS,GACX,KAAKnE,OAAL,CAAa+C,IAAb,CAAkBpD,6GAAlB,EAA+C;AAC3CpY,UAAI,EAAE2c,OADqC;AAE3Cjf,WAAK,EAAE;AAFoC,KAA/C,CADJ;;AAMAkf,aAAS,CAACC,WAAV,GAAwB3Y,SAAxB,CAAkC,MAAK,CACnC;AACH,KAFD;AAGH;;AA7hB4B;;;mBAApBoU,sBAAoBvgB,gEAAAA,CAAAA,+DAAAA,GAAAA,gEAAAA,CAAAA,+DAAAA,GAAAA,gEAAAA,CAAAA,mEAAAA,GAAAA,gEAAAA,CAAAA,oDAAAA,GAAAA,gEAAAA,CAAAA,4DAAAA,GAAAA,gEAAAA,CAAAA,sDAAAA,GAAAA,gEAAAA,CAAAA,iEAAAA,GAAAA,gEAAAA,CAAAA,gEAAAA,GAAAA,gEAAAA,CAAAA,oEAAAA,GAAAA,gEAAAA,CAAAA,6DAAAA;AAAA;;;QAApBugB;AAAoBzO;AAAAsO;AAAAW;AAAAjT;AAAAnB;AAAAiG;AAAAhF;AAAAoT;AAAAE;AAAAC;AAAA;AAAAnP;AAAAC;AAAAC;AAAAC;AAAA;ACzCjCnS,MAAAA,6DAAAA,WAAK,CAAL,EAAK,MAAL,EAAK,CAAL;AACUA,MAAAA,yDAAAA;AAAA,eAAY+kB,cAAZ;AAAsB,OAAtB;AACF/kB,MAAAA,6DAAAA;AACIA,MAAAA,yDAAAA;AAGAA,MAAAA,yDAAAA;AAMJA,MAAAA,2DAAAA;AAEJA,MAAAA,yDAAAA;AACAA,MAAAA,6DAAAA;AAA8CA,MAAAA,yDAAAA;AAAA,eAAe+kB,wBAAf;AAAmC,OAAnC,EAAoC,kBAApC,EAAoC;AAAA,eAAqBA,gCAArB;AAAiD,OAArF;AAAuF/kB,MAAAA,2DAAAA;AACrIA,MAAAA,6DAAAA;AAA0EA,MAAAA,yDAAAA;AAAA,eAAU+kB,mBAAV;AAAyB,OAAzB;AACtE/kB,MAAAA,6DAAAA;AAAgCA,MAAAA,qDAAAA;AAAmBA,MAAAA,2DAAAA;;;;AAhBzBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAEhBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAGiBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAQzBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AACcA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AACQA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,oBAAkB,SAAlB,EAAkB+kB,kBAAlB;AACQ/kB,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;;;;;;;;;;;;;;;;;;;;;;;;IEjBxC,sEAA0B;IACW,uDAAgB;IAAA,4DAAI;;;IAApB,0DAAgB;IAAhB,oFAAgB;;ADM9C,MAAM,0BAA0B;;oGAA1B,0BAA0B;wHAA1B,0BAA0B;QCPvC,sHAEM;;QAFA,kFAAkB;;;;;;;;;;;;;;;;;;;;ACSjB,MAAM,mBAAmB;IALhC;QAaI,WAAM,GAAyB,EAAE,CAAC;KACrC;;sFATY,mBAAmB;iHAAnB,mBAAmB;QCThC,yEAAiC;QAC7B,6EAUe;QACnB,4DAAM;;QAVE,0DAAiB;QAAjB,8EAAiB;;;;;;;;;;;;;;;;;;;;;;;ACGkB;;;;;;;;;ICF/B,uEAAiN;IAA3F,kZAAS,mCAAyB,IAAC;IACrJ,yEAAyB;IAEjB,qEAA0H;IAC9H,4DAAM;IACN,qEAA+B;IACnC,4DAAM;;;;IANgJ,kHAAsD;IAG/L,0DAAgD;IAAhD,oMAAgD;IAAC,oGAA+B;;;IAKjG,0EAAkF;IAE1E,qEAA0H;IAC9H,4DAAM;IACN,qEAA+B;IACnC,4DAAM;;;;IAHO,0DAAgD;IAAhD,oMAAgD;IAAC,oGAA+B;;;IAI7F,wEAA0G;IAG9F,qEAAoG;IACxG,4DAAM;IACN,qEAA+B;IACnC,4DAAM;;;;IANe,2JAAyB;IAAC,kHAAsD;IAGxF,0DAAgD;IAAhD,oMAAgD;IAAC,oGAA+B;;;IAKjG,wEAA6H;IAGjH,qEAAoG;IACxG,4DAAM;IACN,qEAA+B;IACnC,4DAAM;;;;IANiB,8LAA0C;IAAC,kHAAsD;IAG3G,0DAAgD;IAAhD,oMAAgD;IAAC,oGAA+B;;;IA1BrG,wEAA4F;IACxF,qIAOI;IACJ,yIAKM;IACN,qIAOI;IACJ,qIAOI;IACR,qEAAe;;;IA9BP,0DAAsF;IAAtF,gKAAsF;IAQpF,0DAA+C;IAA/C,mHAA+C;IAMjD,0DAAmB;IAAnB,kFAAmB;IAQnB,0DAAqB;IAArB,oFAAqB;;;IAejB,qEAAqH;;;;IAAlD,6KAA2C;;;;;IALtH,uEAAiN;IAA3F,mZAAS,oCAAyB,IAAC;IACrJ,0EAAmK;IAA9E,6ZAAa,iCAAsB,IAAC,mWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,8IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IATgJ,kHAAsD;IACnL,0DAA2D;IAA3D,sKAA2D;IAEvE,0DAAgD;IAAhD,qMAAgD;IAAC,oGAA+B;IAEnF,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IAU/D,qEAAqH;;;;IAAlD,6KAA2C;;;;IALtH,wEAA0G;IACjB,6ZAAa,iCAAsB,IAAC,mWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,8IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IATe,2JAAyB;IAAC,kHAAsD;IAC5E,0DAA2D;IAA3D,sKAA2D;IAEvE,0DAAgD;IAAhD,qMAAgD;IAAC,oGAA+B;IAEnF,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IAU/D,qEAAqH;;;;IAAlD,6KAA2C;;;;IALtH,wEAA6H;IACpC,6ZAAa,iCAAsB,IAAC,mWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,8IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IATiB,+LAA0C;IAAC,kHAAsD;IAC/F,0DAA2D;IAA3D,sKAA2D;IAEvE,0DAAgD;IAAhD,qMAAgD;IAAC,oGAA+B;IAEnF,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IA7B3E,wEAA8F;IAC1F,qIAUI;IACJ,sIAUI;IACJ,sIAUI;IACR,qEAAe;;;IAjCP,0DAAsF;IAAtF,gKAAsF;IAWtF,0DAAmB;IAAnB,kFAAmB;IAWnB,0DAAqB;IAArB,oFAAqB;;;IAejB,qEAAqH;;;;IAAlD,6KAA2C;;;;IAFtH,uEAAoK;IAA3F,mZAAS,oCAAyB,IAAC;IACxG,0EAAmK;IAA9E,6ZAAa,iCAAsB,IAAC,mWAAa,sCAA2B,IAAxC;IACrH,8IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IANmG,kHAAsD;IACtI,0DAA2D;IAA3D,sKAA2D;IAC1E,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IAO/D,qEAAqH;;;;IAAlD,6KAA2C;;;;IAFtH,wEAA0G;IACjB,6ZAAa,iCAAsB,IAAC,mWAAa,sCAA2B,IAAxC;IACrH,8IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IANe,2JAAyB;IAAC,kHAAsD;IAC5E,0DAA2D;IAA3D,sKAA2D;IAC1E,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IAO/D,qEAAqH;;;;IAAlD,6KAA2C;;;;IAFtH,wEAA6H;IACpC,6ZAAa,iCAAsB,IAAC,mWAAa,sCAA2B,IAAxC;IACrH,8IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IANiB,+LAA0C;IAAC,kHAAsD;IAC/F,0DAA2D;IAA3D,sKAA2D;IAC1E,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IApB3E,wEAA8F;IAC1F,qIAOI;IACJ,qIAOI;IACJ,qIAOI;IACR,qEAAe;;;IAxBP,0DAAwC;IAAxC,0GAAwC;IAQxC,0DAAmB;IAAnB,kFAAmB;IAQnB,0DAAqB;IAArB,oFAAqB;;;IArFjC,yEAAmE;IAC/D,4IA+Be;IACf,4IAkCe;IACf,4IAyBe;IACnB,4DAAM;;;IA7Fa,0DAA2E;IAA3E,sJAA2E;IAgC3E,0DAA6E;IAA7E,wJAA6E;IAmC7E,0DAA6E;IAA7E,wJAA6E;;ADtD7F,MAAM,wBAAwB;IAWjC,YACY,aAA4B,EAC5B,KAAqB,EACrB,SAAuB,EACvB,MAAc,EACd,WAAwB;QAJxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,cAAS,GAAT,SAAS,CAAc;QACvB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QARpC,kBAAa,GAAW,mEAAyB,CAAC;QAClD,aAAQ,GAAqB,EAAE,CAAC;QAS5B,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAC3D,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAC3D,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CACxB,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAC3E,CAAC,QAA0B,EAAE,EAAE;oBAC3B,IAAI,QAAQ,EAAE;wBACV,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;qBAClC;yBAAM;wBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;qBACxB;gBACL,CAAC,EACD,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC;YACN,CAAC,CACJ,CAAC;SACL;aAAM;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAC/F,CAAC,QAA0B,EAAE,EAAE;gBAC3B,IAAI,QAAQ,EAAE;oBACV,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;iBAClC;qBAAM;oBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACxB;YACJ,CAAC,EACF,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC;SACL;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;IACL,CAAC;IAEO,eAAe,CAAC,QAA0B;QAC9C,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAiB,EAAE,EAAE;gBACnC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS,CAAC;YACpC,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,uCAAuC;IACvC,2DAA2D;IAC3D,gBAAgB;IAChB,qBAAqB;IACrB,QAAQ;IAER,qBAAqB;IACrB,IAAI;IAEJ,yCAAyC;IACzC,gDAAgD;IAChD,kDAAkD;IAClD,QAAQ;IAER,qBAAqB;IACrB,IAAI;IAEJ,gBAAgB,CAAC,OAAuB;QACpC,MAAM,YAAY,GAAW,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAClE,QAAQ,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;YAC1C,KAAK,MAAM;gBACP,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;gBACxF,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;gBAC3F,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;gBAC3F,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,mEAAyB,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5G,MAAM;YACV,KAAK,MAAM;gBACP,OAAO;YACX;gBACI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC7C;IACL,CAAC;IAED,aAAa,CAAC,OAAuB;QACjC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IACrD,CAAC;IAED,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAChD,CAAC;IAEO,WAAW,CAAC,KAAU;QAC1B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;gGAnIQ,wBAAwB;sHAAxB,wBAAwB;QCfrC,yEAA8B;QAC1B,oHA8FM;QACV,4DAAM;;QA/FuB,0DAAW;QAAX,iFAAW;;;;;;;;;;;;;;;;;;;;;;;;;ACIkB;AAKE;;;;;;;;;;;ICRpD,wEAA2E;IACvE,wEAA0E;IAAA,uDAAc;IAAA,4DAAI;IAChG,qEAAe;;;IADR,0DAAsB;IAAtB,wJAAsB;IAAC,2GAA+C;IAAC,0DAAc;IAAd,8EAAc;;;;;IAmBxE,wEACiG;IAC7F,wEAGuD;IACnD,uDACJ;IAAA,4DAAI;IACR,qEAAe;;;;IALP,0DAAuF;IAAvF,mOAAuF;IAGvF,0DACJ;IADI,6FACJ;;;IAGA,wEAEuD;IACnD,uDACJ;IAAA,4DAAI;;;;IAHA,mOAAuF;IAEvF,0DACJ;IADI,6FACJ;;;IAhBZ,wEAAmD;IAC/C,oEAAG;IACC,wMAQe;IACf,iRAMc;IAClB,4DAAI;IACR,qEAAe;;;;;IAhBF,0DAAyE;IAAzE,mJAAyE;;;;IAjB9F,wEAAyE;IACrE,6FACsB;IACuD,8WAAS,mCAA2B,IAAC;IAC1G,kFAAiB;IAIT,uDACJ;IAAA,4DAAI;IAER,8EAAgD;IAAtC,+aAAS,kBAAU,MAAM,cAAW,IAAC;IAC3C,uDAA2E;IAAA,4DAAW;IAE9F,uLAmBe;IACnB,4DAAsB;IAC1B,qEAAe;;;;;;IAlC4D,0DAAiC;IAAjC,yFAAiC;IAKxF,0DAAiF;IAAjF,2NAAiF;IAEjF,0DACJ;IADI,yFACJ;IAGA,0DAA2E;IAA3E,6JAA2E;IAEjD,0DAAe;IAAf,oFAAe;;;IAuBrD,oEAAG;IAEuF,uDAAc;IAAA,4DAAI;;;;IAApG,0DAAiF;IAAjF,2NAAiF;IAAC,0DAAc;IAAd,8EAAc;;;IAvC5G,2KAmCe;IACf,mPAKc;;;;IAzCC,uGAAuC;;;IAL9D,wEAA8E;IAC1E,2JAEe;IACf,qOA2Cc;IAClB,qEAAe;;;;IA/CI,0DAAyC;IAAzC,yGAAyC;;;;IAuDxD,wEAAsE;IAClE,oEAAG;IAEK,kXAAS,mCAAuB,IAAC;IAAC,uDAAiB;IAAA,4DAAI;IAEnE,qEAAe;;;IAF+B,0DAAiB;IAAjB,kFAAiB;;;;IAOnE,wEAEmF;IAC/E,uDACJ;IAAA,4DAAI;;;IAFA,kNAA8E;IAC9E,0DACJ;IADI,mHACJ;;;IACA,wEAEmF;IAC/E,uDACJ;IAAA,4DAAI;;;IAFA,kNAA8E;IAC9E,0DACJ;IADI,mHACJ;;;IAEI,wEAAyE;IACrE,wEAA+B;IAC3B,uDACJ;IAAA,4DAAI;IACR,qEAAe;;;IAFP,0DACJ;IADI,6FACJ;;;IAJR,sEAA2E;IACvE,kJAIe;IACnB,4DAAM;;;IALgC,0DAAqC;IAArC,8GAAqC;;;;IAM3E,oEAA2H;IACnE,wSAAS,qBAAa,IAAC;IAAC,uDAA0B;IAAA,4DAAI;;;IAA9B,0DAA0B;IAA1B,8FAA0B;;;;IArF9G,sEAAwB;IACpB,2IAgDe;IACf,kEAAwC;IACxC,4FAAgF;IACJ,iUAAS,oCAA4B,IAAC;IAC1G,kFAAiB;IAAA,uDAAiC;IAAA,4DAAkB;IACpE,8EAA2C;IAAjC,ySAAS,kBAAU,WAAW,CAAC,IAAC;IACtC,uDAAsE;IAAA,4DAAW;IAEzF,6IAKe;IACnB,4DAAsB;IACtB,mEAAwC;IACxC,wEAAwE;IAAA,wDAA8B;IAAA,4DAAI;IAC1G,mEAAwC;IACxC,uHAII;IACJ,uHAII;IACJ,2HAMM;IACN,uHAEI;IACJ,mEAAwC;IACxC,wEAA+B;IAAA,wDAAwB;IAAA,4DAAI;;;IAvF5B,0DAAyB;IAAzB,gGAAyB;IAoD/B,0DAAiC;IAAjC,qGAAiC;IAE9C,0DAAsE;IAAtE,oJAAsE;IAE5C,0DAAkC;IAAlC,2GAAkC;IAQA,0DAA8B;IAA9B,kGAA8B;IAGjG,0DAAwH;IAAxH,yMAAwH;IAKxH,0DAA6J;IAA7J,qPAA6J;IAI5J,0DAAmE;IAAnE,6IAAmE;IAOrE,0DAAqH;IAArH,qMAAqH;IAI1F,0DAAwB;IAAxB,4FAAwB;;ADvEpD,MAAM,uBAAwB,SAAQ,sEAAa;IAUtD,YAAoB,WAAwB,EAAU,aAA4B,EAAU,MAAc;QACtG,KAAK,EAAE,CAAC;QADQ,gBAAW,GAAX,WAAW,CAAa;QAAU,kBAAa,GAAb,aAAa,CAAe;QAAU,WAAM,GAAN,MAAM,CAAQ;QAGtG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC;YAC7C,IAAI,EAAE,CAAC,IAAsB,EAAE,EAAE;gBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7D,CAAC;IAED,WAAW;QACP,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC1C,kDAAkD;YAClD,MAAM,OAAO,GAAW,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YAC/G,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SAC3B;IACL,CAAC;IAED,SAAS,CAAC,OAAe;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,MAAM,KAAK,GAAsB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC,QAAQ,CAAC;SACzB;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,OAAe;QACpB,IAAI,SAA4B,CAAC;QACjC,IAAI,OAAO,IAAI,OAAO,KAAK,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAW,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBACjD,MAAM,GAAG,GAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC1C,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;aAC3D;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE;gBACxB,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;aACnC;SACJ;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,oBAAoB,CAAC,KAAY;QAC7B,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC1C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;SAChC;IACL,CAAC;IAED,cAAc,CAAC,QAAwB;QACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;SACvC;IACL,CAAC;IAEO,WAAW;QACf,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,oEAAc,EAAE,CAAC;SAC1D;QACD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAE7C,MAAM,IAAI,GAAkB,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAE9D,IAAI,IAAI,EAAE;YACN,MAAM,QAAQ,GAAmB,IAAI,oEAAc,EAAE,CAAC;YACtD,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvD,MAAM,OAAO,GAAoB,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACvE,IAAI,OAAO,EAAE;gBACT,MAAM,WAAW,GAAmB,IAAI,oEAAc,EAAE,CAAC;gBACzD,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE1D,MAAM,YAAY,GAAmB,IAAI,oEAAc,EAAE,CAAC;gBAC1D,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC9D;SACJ;IACL,CAAC;IAEO,oBAAoB,CAAC,MAAM;QAC/B,MAAM,uBAAuB,GAAW,yBAAyB,CAAC;QAElE,OAAO,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAClF,CAAC;;8FAvHQ,uBAAuB;qHAAvB,uBAAuB;;;;;;;;QCjBpC,qHAyFM;;QAzFA,gFAAgB;;;;;;;;;;;;;;;;;;;;;;ACCmD;;;;;;;AAUlE,MAAM,2BAA2B;IAIpC,YACoC,IAA2B,EACnD,UAAqD;QAD7B,SAAI,GAAJ,IAAI,CAAuB;QACnD,eAAU,GAAV,UAAU,CAA2C;QALjE,qBAAgB,GAAsB,EAAE,CAAC;IAMrC,CAAC;IAEL,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACtD;IACL,CAAC;IAED,aAAa;QACT,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;;sGAlBQ,2BAA2B,kEAKxB,qEAAe;yHALlB,2BAA2B;QCXxC,yEAA+B;QAEmB,oEAAS;QAAA,4DAAW;QAElE,wEAA0J;QACtJ,uDACJ;QAAA,4DAAK;QACL,yEAA2B;QAET,qEAAU;QAAA,4DAAW;QAI3C,yFAA8E;QAAhC,4KAAe,mBAAe,IAAC;QAAC,4DAAqB;;QAR3F,0DACJ;QADI,qFACJ;QAE0C,0DAAyB;QAAzB,kFAAyB;QAKnD,0DAAyB;QAAzB,sFAAyB;;;;;;;;;;;;;;;;;;;ACbgD;;;;;;ICGrF,yEAAsC;IACT,uDAAgB;IAAA,4DAAO;IAChD,0EAAgD;IAAtB,0RAAS,aAAM,IAAI,CAAC,IAAC;IAAC,uEAAgC;IAAA,gEAAK;IAAA,4DAAI;;;IADhE,0DAAgB;IAAhB,kFAAgB;;;;ADK9C,MAAM,cAAc;IAYvB,YAAoB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;QATrC,aAAQ,GAAG,KAAK,CAAC;QAEhB,WAAM,GAAuB,IAAI,uDAAY,EAAQ,CAAC;QAChE,WAAM,GAAG,KAAK,CAAC;IAMkC,CAAC;IAJ3B,YAAY,CAAC,KAAK;QACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAID,QAAQ;QACN,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,aAAa,GAAG,KAAK;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACtB;IACL,CAAC;IAEO,KAAK,CAAC,KAAoB;QAC9B,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAC/C;IACL,CAAC;;4EA7BQ,cAAc;4GAAd,cAAc;sIAAd,kBAAc;;;QCT3B,yEAAqC;QACN,mIAAS,UAAM,IAAI,CAAC,IAAC;QAAC,4DAAM;QACvD,yEAAmB;QACf,0GAGM;QACN,yEAAkB;QACd,6DAAyB;QAC7B,4DAAM;;QATT,uJAA+B;QAGR,0DAAgB;QAAhB,gFAAgB;;;;;;;;;;;;;;;;;;;;;;;ACE5C;;;;;AAOM,MAAOilB,0BAAP,CAAiC;AAGnC1hB,cACYC,cADZ,EAEYkd,OAFZ,EAGY9c,OAHZ,EAGmC;AAFvB;AACA;AACA;AACR;;AAEJ8Y,UAAQ;AACJ,QAAI,KAAK9Y,OAAL,CAAa2d,QAAb,CAAsBhV,GAAtB,CAA0BlI,MAA1B,KAAqC,CAArC,IACA,KAAKT,OAAL,CAAa2d,QAAb,CAAsBhV,GAAtB,CAA0B,CAA1B,EAA6B2Y,IAA7B,KAAsC,MADtC,IAEA,KAAKthB,OAAL,CAAa2d,QAAb,CAAsBhV,GAAtB,CAA0B,CAA1B,EAA6B2Y,IAA7B,KAAsC,SAF1C,EAGE;AACE;AACH;;AACD,QAAI,CAAC,KAAK1hB,cAAL,CAAoBgU,cAApB,EAAL,EAA2C;AACvC,WAAK2N,yBAAL;AACH;AACJ;;AAEaA,2BAAyB;AAAA;;AAAA;AACnC,YAAM,KAAI,CAAC3hB,cAAL,CAAoBqT,qBAApB,GAA4CtJ,IAA5C,CACD6X,WAAD,IAAqC,KAAI,CAACC,kBAAL,GAA0BD,WAD7D,CAAN;;AAIA,UAAI,KAAI,CAACC,kBAAT,EAA6B;AACzB,cAAMR,SAAS,GACf,KAAI,CAACnE,OAAL,CAAa+C,IAAb,CAAkBuB,6GAAlB,EAA+C;AAC3C/c,cAAI,EAAE,KAAI,CAACod,kBADgC;AACZC,sBAAY,EAAE;AADF,SAA/C,CADA;;AAKAT,iBAAS,CAACC,WAAV,GAAwB3Y,SAAxB,CAAkC,MAAK;AACnC,eAAI,CAAC3I,cAAL,CAAoBkU,aAApB;;AACA,eAAI,CAAClU,cAAL,CAAoBsT,oBAApB;AACH,SAHD;AAIH;AAfkC;AAgBtC;;AArCkC;;;mBAA1BmO,4BAA0BjlB,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,2DAAAA;AAAA;;;QAA1BilB;AAA0BnT;AAAAE;AAAAC;AAAAE;AAAAoT;;;;;;;;;;;;;;;;;;;;;;;ACXkC;;;;;;;;;ICAzE,oEAA0H;;;IAAlC,yJAA2B;;;;IAG/G,uEAAiH;IAA5B,kSAAS,wBAAiB,IAAC;IAC5G,uDACA;IAAA,8EAA0C;IAAA,wEAAa;IAAA,4DAAW;;;IADlE,0DACA;IADA,kGACA;;ADED,MAAM,kBAAkB;CAI9B;AAOM,MAAM,2BAA2B;IAYpC,YACoC,IAAwB,EAChD,UAAqD,EACrD,cAA6B,EAC7B,YAAyB,EACzB,UAAwB;QAJA,SAAI,GAAJ,IAAI,CAAoB;QAChD,eAAU,GAAV,UAAU,CAA2C;QACrD,mBAAc,GAAd,cAAc,CAAe;QAC7B,iBAAY,GAAZ,YAAY,CAAa;QACzB,eAAU,GAAV,UAAU,CAAc;QAhBpC,mBAAc,GAAW,EAAE,CAAC;QAC5B,oBAAe,GAAW,EAAE,CAAC;QAC7B,sBAAiB,GAAW,EAAE,CAAC;QAE/B,kBAAa,GAAY,KAAK,CAAC;QAc3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7C,CAAC;IAdD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAcD,aAAa;QACT,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,eAAe;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,aAAa,GAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,OAAoB,EAAE,EAAE;YACnE,aAAa,GAAG;+JAC+H,IAAI,CAAC,eAAe,aAAa,CAAC;YACjL,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAkB,EAAE,EAAE;gBAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,aAAa,EAAE;oBACnD,aAAa,IAAI,MAAM,MAAM,CAAC,WAAW,MAAM,CAAC;iBACnD;qBAAM,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;oBACtD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;iBACvC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACP,CAAC;;sGA5CQ,2BAA2B,kEAaxB,qEAAe;yHAblB,2BAA2B;QCnBxC,0EAAgC;QAAA,uDAAkB;QAAA,4DAAO;QACzD,uHAA0H;QAC1H,yEAA+B;QACqC,kJAAS,mBAAe,IAAC;QAAzF,4DAAwH;QACxH,mHAGI;QACR,4DAAM;;QAR0B,0DAAkB;QAAlB,mFAAkB;QAC5C,0DAAmB;QAAnB,mFAAmB;QAEqE,0DAA2B;QAA3B,wFAA2B;QACjH,0DAAoB;QAApB,oFAAoB;;;;;;;;;;;;;;;;;;;;;;;ACAe;AAOiB;;;;;;;AAOrD,MAAM,2BAA4B,SAAQ,sEAAa;IAmB1D,YACY,aAA4B,EAC5B,KAAqB,EACrB,aAA4B,EAC5B,aAA4B;QAEpC,KAAK,EAAE,CAAC;QALA,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAtBxC,kBAAa,GAAW,mEAAyB,CAAC;QAElD,gBAAW,GAAY,KAAK,CAAC;QAC7B,eAAU,GAAY,KAAK,CAAC;IAsB5B,CAAC;IAjBD,IAAW,YAAY;;QACnB,OAAO,UAAI,CAAC,aAAa,0CAAE,QAAQ,CAAC;IACxC,CAAC;IAiBD,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAC/C,CAAC,MAAc,EAAE,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAEO,WAAW,CAAC,EAAU;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAEzD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAoB,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC;YACjE,IAAI,EAAE,CAAC,IAAsB,EAAE,EAAE;gBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtD,CAAC,CAAC,CAAC;IACR,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;oBAClB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;wBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;qBAC1B;oBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;IACL,CAAC;;sGApEQ,2BAA2B;yHAA3B,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbG;AAGU;;;;;;;;;;ICPjD,sEAAwD;IACpD,yEAAkF;IACtF,4DAAM;;;IADQ,0DAAiB;IAAjB,0EAAiB;;;IAMnB,qEAAqI;;;IAAlD,uMAA+C;;;IAa9G,yEAA+D;IAC3D,mEAAwG;IAC5G,4DAAK;;;;IAD6C,0DAAqD;IAArD,mHAAqD;IAAhG,qJAAmB;;;IAjBtD,yEAAwC;IAEhC,oEAAuF;IACvF,qIAAqI;IACzI,4DAAM;IACN,oEAA+B;IAC/B,0EAAkC;IAMV,wDAAgB;IAAA,4DAAK;IAE7B,0EAA6B;IAErB,sIAEK;IACT,4DAAK;;;IAjBH,0DAA2C;IAA3C,mMAA2C;IAAC,+FAAsB;IAC9E,0DAAyD;IAAzD,mIAAyD;IAS3C,0DAAgB;IAAhB,oFAAgB;IAIK,0DAAqB;IAArB,8FAAqB;;;IAhBtE,gIA0BM;;;IA1BA,+EAAY;;ADanB,MAAM,qBAAqB;IAc9B,YACY,aAA4B,EAC5B,aAA4B,EAC5B,KAAqB,EACrB,SAAuB,EACvB,WAAwB;QAJxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,cAAS,GAAT,SAAS,CAAc;QACvB,gBAAW,GAAX,WAAW,CAAa;QAZpC,kBAAa,GAAW,mEAAyB,CAAC;QAClD,kBAAa,GAAmB,EAAE,CAAC;QAa/B,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAC3D,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAC3D,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CACxB,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAEzD,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,cAAc,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5E,IAAI,cAAc,EAAE;YAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC;qBACjC,SAAS,CAAC,CAAC,MAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,CAAC,CACJ,CAAC;SACL;aAAM;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;qBACrC,SAAS,CAAC,CAAC,MAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEnE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,CAAC,CACJ,CAAC;SACL;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;IACL,CAAC;IAEO,WAAW,CAAC,MAAoB;QACpC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAiB,IAAI,+DAAY,EAAE,CAAC;gBAE9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;gBAC3D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBAEvD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SACzD;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,MAAM,GAAG,GAAW,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAgB,EAAE,EAAE;gBAClD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9D;IACL,CAAC;IAEO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK;QAC1C,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,oBAAoB,CAAC,IAAgB;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAM,GAAG,mEAAyB,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;IAClH,CAAC;;0FAtGQ,qBAAqB;mHAArB,qBAAqB;QClBlC,yEAA6B;QACzB,iHAEM;QACN,6MA4Bc;QAClB,4DAAM;;;QAhCI,0DAAgC;QAAhC,8FAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAK;AACA;AAC/C,qDAAqD;AACa;AAClE,kDAAkD;AACK;AACA;AACI;AACA;AACM;AACT;AAGC;AACS;AACuB;AACf;AACkB;AACf;AACxB;AACI;AACF;AACuC;AACG;AACP;AACJ;AACpB;AACkC;AACZ;AAC2B;AACpB;AACgB;AACG;AAC1C;;AAsDjE,MAAM,YAAY;;wEAAZ,YAAY;0GAAZ,YAAY;+GAnCV;QACP,mEAAa;QACb,+DAAW;QACX,iEAAY;QACZ,CAAC,EAAE,OAAO,EAAE,gEAAqB,EAAE,QAAQ,EAAE,0CAA0C,EAAE,CAAC;KAC7F,YArBQ;YACL,0DAAY;YACZ,0DAAY;YACZ,oBAAoB;YACpB,wDAAW;YACX,4DAAiB;YACjB,gEAAmB;YACnB,sBAAsB;YACtB,sEAAe;YACf,sEAAe;YACf,4EAAkB;YAClB,kEAAa;YACb,kEAAa;YACb,2EAAe;YACf,mEAAc;SACjB;oIAoCQ,YAAY,mBA5BjB,yGAAqB;QACrB,2EAAiB;QACjB,kGAAwB;QACxB,mFAAmB;QACnB,qGAAyB;QACzB,sFAAoB;QACpB,kEAAc;QACd,uGAAyB;QACzB,2GAA0B;QAC1B,oGAAgC;QAChC,gGAAuB;QACvB,8GAA2B;QAC3B,kGAAuB;QACvB,6HAA2B;QAC3B,yHAA0B;QAC1B,4HAA2B,aArC3B,0DAAY;QACZ,0DAAY;QACZ,oBAAoB;QACpB,wDAAW;QACX,4DAAiB;QACjB,gEAAmB;QACnB,sBAAsB;QACtB,sEAAe;QACf,sEAAe;QACf,4EAAkB;QAClB,kEAAa;QACb,kEAAa;QACb,2EAAe;QACf,mEAAc,aA2Bd,kGAAwB;QACxB,mFAAmB;QACnB,qGAAyB;QACzB,gGAAuB;QACvB,kGAAuB;QACvB,yGAAqB;QACrB,6HAA2B;QAC3B,yHAA0B;;;;;;;;;;;;;;;;;;;;;;AChFS;;;;;;;;;;;;ICF/B,uEAAiS;IACxM,6ZAAa,gCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,qEAA+B;IACnC,4DAAM;;;;IANuD,kNAAwE;IAC5G,0DAA2D;IAA3D,uKAA2D;IAEvE,0DAAgD;IAAhD,oMAAgD;IAAC,oGAA+B;;;;IAKjG,0EAA2H;IAEnH,qEAAoG;IACxG,4DAAM;IACN,qEAA+B;IACnC,4DAAM;;;;IAL0C,gKAA0E;IAE7G,0DAAgD;IAAhD,oMAAgD;IAAC,oGAA+B;;;;IAI7F,wEAA0G;IACjB,8ZAAa,iCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,qEAA+B;IACnC,4DAAM;;;;IANe,2JAAyB;IAAC,kHAAsD;IAC5E,0DAA2D;IAA3D,sKAA2D;IAEvE,0DAAgD;IAAhD,oMAAgD;IAAC,oGAA+B;;;;IAKjG,wEAA6H;IACpC,8ZAAa,iCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,qEAA+B;IACnC,4DAAM;;;;IANiB,8LAA0C;IAAC,kHAAsD;IAC/F,0DAA2D;IAA3D,sKAA2D;IAEvE,0DAAgD;IAAhD,oMAAgD;IAAC,oGAA+B;;;IA1BrG,wEAAgG;IAC5F,uIAOI;IACJ,0IAKM;IACN,sIAOI;IACJ,sIAOI;IACR,qEAAe;;;IA9BP,0DAA2D;IAA3D,gIAA2D;IAQzD,0DAAoB;IAApB,mFAAoB;IAMtB,0DAAmB;IAAnB,kFAAmB;IAQnB,0DAAqB;IAArB,oFAAqB;;;IAejB,qEAAqH;;;;IAAlD,6KAA2C;;;;IALtH,uEAA8Q;IACrL,8ZAAa,iCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,+IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IAToC,mNAAwE;IACzF,0DAA2D;IAA3D,uKAA2D;IAEvE,0DAAgD;IAAhD,qMAAgD;IAAC,oGAA+B;IAEnF,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IAU/D,qEAAqH;;;;IAAlD,6KAA2C;;;;IALtH,wEAA0G;IACjB,8ZAAa,iCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,+IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IATe,2JAAyB;IAAC,kHAAsD;IAC5E,0DAA2D;IAA3D,sKAA2D;IAEvE,0DAAgD;IAAhD,qMAAgD;IAAC,oGAA+B;IAEnF,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IAU/D,qEAAqH;;;;IAAlD,6KAA2C;;;;IALtH,wEAA6H;IACpC,8ZAAa,iCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,yEAA0B;IACtB,qEAAoG;IACxG,4DAAM;IACN,+IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IATiB,+LAA0C;IAAC,kHAAsD;IAC/F,0DAA2D;IAA3D,sKAA2D;IAEvE,0DAAgD;IAAhD,qMAAgD;IAAC,oGAA+B;IAEnF,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IA7B3E,wEAAkG;IAC9F,uIAUI;IACJ,uIAUI;IACJ,uIAUI;IACR,qEAAe;;;IAjCP,0DAAwC;IAAxC,0GAAwC;IAWxC,0DAAmB;IAAnB,kFAAmB;IAWnB,0DAAqB;IAArB,oFAAqB;;;IAejB,qEAAqH;;;;IAAlD,6KAA2C;;;;IAFtH,uEAA8Q;IACrL,8ZAAa,iCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,+IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IANoC,mNAAwE;IACzF,0DAA2D;IAA3D,uKAA2D;IAC1E,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IAO/D,qEAAqH;;;;IAAlD,6KAA2C;;;;IAFtH,wEAA0G;IACjB,8ZAAa,iCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,+IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IANe,2JAAyB;IAAC,kHAAsD;IAC5E,0DAA2D;IAA3D,sKAA2D;IAC1E,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IAO/D,qEAAqH;;;;IAAlD,6KAA2C;;;;IAFtH,wEAA6H;IACpC,8ZAAa,iCAAsB,IAAC,oWAAa,sCAA2B,IAAxC;IACrH,+IAAqH;IACrH,qEAAsE;IAG1E,4DAAM;;;;IANiB,+LAA0C;IAAC,kHAAsD;IAC/F,0DAA2D;IAA3D,sKAA2D;IAC1E,0DAAgC;IAAhC,+FAAgC;IACZ,0DAAqC;IAArC,uKAAqC;;;IApB3E,wEAAkG;IAC9F,uIAOI;IACJ,sIAOI;IACJ,sIAOI;IACR,qEAAe;;;IAxBP,0DAAwC;IAAxC,0GAAwC;IAQxC,0DAAmB;IAAnB,kFAAmB;IAQnB,0DAAqB;IAArB,oFAAqB;;;IArFjC,yEAAmE;IAC/D,6IA+Be;IACf,6IAkCe;IACf,6IAyBe;IACnB,4DAAM;;;IA7Fa,0DAA+E;IAA/E,0JAA+E;IAgC/E,0DAAiF;IAAjF,4JAAiF;IAmCjF,0DAAiF;IAAjF,4JAAiF;;AD3DxG,8FAA8F;AAMvF,MAAM,yBAAyB;IAYlC,YACY,aAA4B,EAC5B,KAAqB,EACrB,SAAuB,EACvB,WAAwB;QAHxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QACrB,cAAS,GAAT,SAAS,CAAc;QACvB,gBAAW,GAAX,WAAW,CAAa;QATpC,aAAQ,GAAsB,EAAE,CAAC;QACjC,kBAAa,GAAW,mEAAyB,CAAC;QAU9C,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAC3D,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAC3D,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CACxB,CAAC;IACN,CAAC;IAED,aAAa,CAAC,OAAwB;QAClC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IACrD,CAAC;IAED,kBAAkB,CAAC,OAAwB;QACvC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAEzD,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;YAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAChD,CAAC,MAAc,EAAE,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAC1D,CAAC,QAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;gBACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC,CACJ,CAAC;SACL;aAAM;YACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAC9E,CAAC,QAA2B,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EACpE,CAAC,KAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC;SACL;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;IACL,CAAC;IAEO,eAAe,CAAC,QAA2B;QAC/C,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAkB,EAAE,EAAE;gBACpC,mBAAmB;gBACnB,gDAAgD;gBAChD,qCAAqC;gBACrC,IAAI;gBACJ,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS,CAAC;YACpC,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB;QACZ,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE,EAAE;YACJ,OAAO,EAAE,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC1C;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,WAAW,CAAC,KAAU;QAC1B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;kGAxGQ,yBAAyB;uHAAzB,yBAAyB;QChBtC,yEAA8B;QAC1B,qHA8FM;QACV,4DAAM;;QA/FuB,0DAAW;QAAX,iFAAW;;;;;;;;;;;;;;;;;;ACMjC,MAAM,gCAAgC;IAMzC;QACI,gCAAgC,CAAC,mBAAmB,GAAG;YACnD,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,OAAO;SACV,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,OAAwB;QAC7B,IAAI,aAAa,GAAY,KAAK,CAAC;QAEnC,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE;YACjC,gCAAgC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;gBACvE,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAC3B,aAAa,GAAG,IAAI,CAAC;oBACrB,OAAO;iBACV;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAC,CAAC;IAChF,CAAC;;gHA7BQ,gCAAgC;8HAAhC,gCAAgC;;;;;;;;;;;;;;;;;ACAtC,MAAM,uBAAuB;IAKhC,YAAoB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;IAAI,CAAC;IAE9D,eAAe;QACX,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC;;8FATQ,uBAAuB;qHAAvB,uBAAuB;QCPpC,uEACS;;QADD,4EAAe;;;;;;;;;;;;;;;;;;;;;;;;;;ACAyC;AACkB;AAGvC;AAIiB;;;;;;;;;ICNpD,qEAAiH;;;IAAzF,iPAAuD;;;IAI3E,qEAAwH;;;IAAnE,gPAAsD;;;ADkBhH,MAAM,sBAAuB,SAAQ,sEAAa;IAarD,YACY,MAAc,EACd,aAA4B,EAC5B,aAA4B,EAC5B,KAAqB;QAE7B,KAAK,EAAE,CAAC;QALA,WAAM,GAAN,MAAM,CAAQ;QACd,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,UAAK,GAAL,KAAK,CAAgB;QAhBjC,mBAAc,GAAW,KAAK,CAAC;QAErB,mBAAc,GAAuB,IAAI,uDAAY,EAAQ,CAAC;QAOxE,kBAAa,GAAW,mEAAyB,CAAC;QAClD,uBAAkB,GAAW,wEAA8B,CAAC;QAUxD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,CAAC,IAAgB,EAAE,EAAE;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACJ,CAAC,CACL,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QACzD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,UAAU;QACN,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAC9B,IAAI,IAAI,CAAC,cAAc,KAAK,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAG,CAAC,CAAC;aAC/E;SACJ;IACL,CAAC;;4FAlDQ,sBAAsB;oHAAtB,sBAAsB;QCxBnC,iFAAoC;QACU,8IAAS,gBAAY,IAAC;QAC5D,kHAAiH;QACrH,4DAAS;QACT,yEAAuC;QAE/B,kHAAwH;QAC5H,4DAAI;QAER,4EAAqE;QAAzB,8IAAS,kBAAc,IAAC;QAChE,oEAAyE;QAC7E,4DAAS;QACT,yEAAyD;QAEkC,mMAA4B,kGAAgB,YAAQ,IAAxB;QAA/G,4DAA2I;QAC3I,8EAAyE;QAAzB,+IAAS,kBAAc,IAAC;QACpE,sEAA0D;QAC9D,4DAAS;;QAfP,0DAAgB;QAAhB,gFAAgB;QAGnB,0DAAmD;QAAnD,qKAAmD;QAC5C,0DAAgB;QAAhB,gFAAgB;QAIrB,0DAAsC;QAAtC,kLAAsC;QAE1C,0DAAgC;QAAhC,6FAAgC;QAEe,0DAAsC;QAAtC,kIAAsC;QAEzE,0DAA2C;QAA3C,uLAA2C;6nIDDhD;YACR,4DAAO,CAAC,cAAc,EAAE;gBACpB,0DAAK,CAAC,IAAI,EAAC,0DAAK,CAAC,EAAE,SAAS,EAAE,eAAe,GAAG,CAAC,CAAC;gBAClD,0DAAK,CAAC,KAAK,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,GAAG,CAAC,CAAE;gBACxD,+DAAU,CAAC,SAAS,EAAE,4DAAO,CAAC,OAAO,CAAC,CAAC;gBACvC,+DAAU,CAAC,SAAS,EAAE,4DAAO,CAAC,OAAO,CAAC,CAAC;aAC1C,CAAC;SACL;;;;;;;;;;;;;;;;;;;;;;;;;;AErBoG;AAE9D;AAQiB;;;;;;;;;;ICPhD,4EAA4D;IACxD,wEAAqD;IAAA,uDAAmB;IAAA,4DAAI;IAChF,qEAAe;;;IADR,0DAA6B;IAA7B,+JAA6B;IAAqB,0DAAmB;IAAnB,mFAAmB;;;IAGxE,uDACJ;;;IADI,8FACJ;;;IARR,wEAAsD;IAClD,2EAAkC;IACI,uDAAiB;IAAA,4DAAO;IAC1D,4JAEe;IACf,sOAEc;IAClB,4DAAO;IACX,qEAAe;;;IAR2B,0DAAiB;IAAjB,iFAAiB;IACpC,0DAA+B;IAA/B,8FAA+B;;;IAHtD,4IAUe;;;IAVmB,2FAAkB;;;IAehD,mEAAgE;;;IAQxD,0EAAmE;IAE3D,uDACJ;IAAA,4DAAI;;;IAFD,0DAA0B;IAA1B,6JAA0B;IAAC,oHAAuD;IACjF,0DACJ;IADI,8FACJ;;;;;IAGA,sEAA6C;IAErC,uDACJ;IAAA,4DAAI;;;;IAFD,0DAA4D;IAA5D,8LAA4D;IAC3D,0DACJ;IADI,8FACJ;;;;IAEJ,sEAA6C;IAErC,uDACJ;IAAA,4DAAI;;;;IAFD,0DAA6D;IAA7D,8LAA6D;IAC5D,0DACJ;IADI,8FACJ;;;IATR,0EAAoE;IAChE,yHAIM;IACN,yHAIM;IACV,4DAAM;;;IAVI,0DAAqC;IAArC,qGAAqC;IAKrC,0DAAqC;IAArC,qGAAqC;;;IAbnD,sEAAwC;IACR,4DAAC;IAAA,4DAAM;IACnC,mHAIM;IACN,mHAWM;IACV,4DAAM;;;IAjBI,0DAAmC;IAAnC,mGAAmC;IAKnC,0DAAoC;IAApC,oGAAoC;;;;IAe1C,0EAAgE;IACuB,8VAAS,sCAA0B,IAAC;IAAvH,4DAAyJ;;;;IAAxH,0DAAiD;IAAjD,sMAAiD;IAAsC,oGAA8B;;ADhCnK,MAAM,cAAc;CAI1B;AAOM,MAAM,gBAAiB,SAAQ,sEAAa;IAqB/C,YACY,cAA8B,EAC9B,aAA4B,EAC5B,OAAe,EACf,WAAwB,EACxB,WAAuB,EACvB,SAAoB;QAE5B,KAAK,EAAE,CAAC;QAPA,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAe;QAC5B,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAY;QACvB,cAAS,GAAT,SAAS,CAAW;QA1BhC,kBAAa,GAAW,mEAAyB,CAAC;QAClD,uBAAkB,GAAW,wEAA8B,CAAC;QAW5D,oBAAe,GAAqB,EAAE,CAAC;QAkBnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CAC7D,IAAI,CAAC,QAAQ,EAAE,CAClB,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CACjE,IAAI,CAAC,QAAQ,EAAE,CAClB,CAAC,CAAC;IACP,CAAC;IAvBD,4CAA4C;IAE5C,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAqBD,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAEzD,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,CAAC,OAAgB,EAAE,EAAE;gBACvB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAY,EAAE,EAAE;YAC3C,IAAI,KAAK,YAAY,0DAAa,EAAE;gBAChC,MAAM,IAAI,GAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEvD,MAAM,KAAK,GAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,2DAAc,CAAC,CAAC;gBAClE,MAAM,EAAE,GAAW,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,mCAAmC;QACnC,+CAA+C;QAC/C,IAAI;QACJ,+BAA+B;QAC/B,2CAA2C;QAC3C,IAAI;QACJ,iCAAiC;QACjC,6CAA6C;QAC7C,IAAI;IACR,CAAC;IAEO,UAAU,CAAC,EAAU;QACzB,IAAI,CAAC,aAAa;aACb,kBAAkB,CAAC,EAAE,EAAE,WAAW,CAAC;aACnC,SAAS,CAAC,CAAC,QAA0B,EAAE,EAAE;YACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAEtC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC1B,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAuB,EAAE,EAAE;oBACzC,MAAM,OAAO,GAAmB,IAAI,cAAc,EAAE,CAAC;oBACrD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;oBAC9B,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;oBACtC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;wBACvB,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE;4BAC9B,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;yBACvC;6BAAM;4BACH,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC;yBAC7F;qBACJ;oBACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBAC3E,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;iBACvD;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC/E,IAAI,UAAU,EAAE;oBACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAChE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC9E;aACJ;iBAAM;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC/E,IAAI,UAAU,EAAE;oBACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACzD;aACJ;QACL,CAAC,CAAC,CAAC;IACX,CAAC;IAEO,iBAAiB,CAAC,OAAgB;QACtC,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;SAC1C;IACL,CAAC;IAED,gBAAgB,CAAC,WAAqB;QAClC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,cAAc,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,EAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SACvG;IACL,CAAC;;gFArIQ,gBAAgB;8GAAhB,gBAAgB;QCxB7B,wMAYc;QAEd,sEAAK;QAEG,8HAAgE;QACpE,4DAAa;QAEjB,yEAA0B;QAGd,4GAmBM;QACN,yEAA4B;QAAA,6DAAC;QAAA,4DAAM;QACnC,0EAA8B;QAC1B,8GAEM;QACV,4DAAM;QAEV,2EAA2B;QACmD,6LAA4B,4FAAgB,YAAQ,IAAxB;QAAtG,4DAAkI;QAClI,8EAAuD;QAAnB,yIAAS,YAAQ,IAAC;QAClD,sEAA2D;QAC/D,4DAAS;;;QAtCU,0DAAoB;QAApB,6EAAoB;QAC5B,0DAAgC;QAAhC,iFAAgC;QAMjB,0DAAY;QAAZ,kFAAY;QAsBR,0DAAY;QAAZ,kFAAY;QAME,0DAA6B;QAA7B,mGAA6B;QAAC,uFAA4B;QAE7F,0DAAsC;QAAtC,kLAAsC;;;;;;;;;;;;;;;;;;;;;;;;ACnDZ;AACc;AACK;AACrB;AAEkB;AACoB;AACpC;;AAoBxC,MAAM,cAAc;;4EAAd,cAAc;2GAAd,cAAc;+GAbd;YACL,yDAAY;YACZ,uDAAW;YACX,yDAAY;YACZ,+DAAmB;YACnB,uDAAe;YACf,uEAAgB;SACnB;mIAMQ,cAAc,mBAhBnB,wEAAgB;QAChB,4FAAsB,aAGtB,yDAAY;QACZ,uDAAW;QACX,yDAAY;QACZ,+DAAmB;QACnB,uDAAe;QACf,uEAAgB,aAGhB,wEAAgB;QAChB,4FAAsB;;;;;;;;;;;;;;;ACzBvB,MAAM,WAAW,GAAG;IACvB,UAAU,EAAE,KAAK;IAEjB,OAAO,EAAE,qBAAqB;IAE9B,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,sBAAsB;IAC1C,gBAAgB,EAAE,mBAAmB;CACxC,CAAC;AACF;;;;;GAKG;AACH,sEAAsE;;;;;;;;;;;;;;;;;ACfvB;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/base/base.component.ts","./src/app/content/content-content-feature/content-content-feature.component.ts","./src/app/content/content-content-feature/content-content-feature.component.html","./src/app/content/content-content-item/content-content-item.component.ts","./src/app/content/content-content-item/content-content-item.component.html","./src/app/content/content-description-heading/content-description-heading.component.ts","./src/app/content/content-description-heading/content-description-heading.component.html","./src/app/content/content-description/content-description.component.ts","./src/app/content/content-description/content-description.component.html","./src/app/content/content-detail/content-detail.component.ts","./src/app/content/content-feature/content-feature.component.ts","./src/app/content/content-feature/content-feature.component.html","./src/app/content/content-image/content-image.component.ts","./src/app/content/content-image/content-image.component.html","./src/app/content/content-job-listing/content-job-listing.component.ts","./src/app/content/content-job-listing/content-job-listing.component.html","./src/app/content/content-manual-link/content-manual-link.component.ts","./src/app/content/content-manual-link/content-manual-link.component.html","./src/app/content/content-media-link/content-media-link.component.ts","./src/app/content/content-media-link/content-media-link.component.html","./src/app/content/content-menu/content-menu.component.ts","./src/app/content/content-menu/content-menu.component.html","./src/app/content/content-resolver.service.ts","./src/app/content/content-routing.module.ts","./src/app/content/content-table/content-table.component.ts","./src/app/content/content-table/content-table.component.html","./src/app/content/content-testimonial/content-testimonial.component.ts","./src/app/content/content-testimonial/content-testimonial.component.html","./src/app/content/content-video/content-video.component.ts","./src/app/content/content-video/content-video.component.html","./src/app/content/content.module.ts","./src/app/content/content/content.component.ts","./src/app/content/content/content.component.html","./src/app/data-query/anchor/anchor.component.ts","./src/app/data-query/anchor/anchor.component.html","./src/app/data-query/data-query-results-grid/data-query-results-grid.component.ts","./src/app/data-query/data-query-results-grid/data-query-results-grid.component.html","./src/app/data-query/data-query-results-heading/data-query-results-heading.component.ts","./src/app/data-query/data-query-results-heading/data-query-results-heading.component.html","./src/app/data-query/data-query-results-list/data-query-results-list.component.ts","./src/app/data-query/data-query-results-list/data-query-results-list.component.html","./src/app/data-query/data-query-results/data-query-results.component.ts","./src/app/data-query/data-query.module.ts","./src/app/data-query/image-link/image-link.component.ts","./src/app/data-query/image-link/image-link.component.html","./src/app/data-query/image/image.component.ts","./src/app/data-query/image/image.component.html","./src/app/data-query/iostring/iostring.component.ts","./src/app/data-query/iostring/iostring.component.html","./src/app/data-query/link-base/link-base.component.ts","./src/app/data-query/sortable-column/sort.service.ts","./src/app/data-query/sortable-column/sortable-column.component.ts","./src/app/data-query/sortable-column/sortable-column.component.html","./src/app/data-query/sortable-column/sortable-table.directive.ts","./src/app/domain-and-user.guard.ts","./src/app/footers/footer/footer.component.ts","./src/app/footers/footer/footer.component.html","./src/app/footers/footers.module.ts","./src/app/footers/mobile-footer/mobile-footer.component.ts","./src/app/headers/header/header.component.ts","./src/app/headers/header/header.component.html","./src/app/headers/mobile-header/mobile-header.component.ts","./src/app/headers/mobile-header/mobile-header.component.html","./src/app/is-secure.guard.ts","./src/app/job/job-description/job-description.component.ts","./src/app/job/job-description/job-description.component.html","./src/app/job/job-detail-list/job-detail-list.component.ts","./src/app/job/job-detail-list/job-detail-list.component.html","./src/app/job/job-detail/job-detail.component.ts","./src/app/job/job-instruction/job-instruction.component.ts","./src/app/job/job-instruction/job-instruction.component.html","./src/app/job/job-location/job-location.component.ts","./src/app/job/job-location/job-location.component.html","./src/app/job/job-menu/job-menu.component.ts","./src/app/job/job-menu/job-menu.component.html","./src/app/job/job-resolver.service.ts","./src/app/job/job-routing.module.ts","./src/app/job/job-section-heading/job-section-heading.component.ts","./src/app/job/job-section-heading/job-section-heading.component.html","./src/app/job/job.module.ts","./src/app/job/job/job.component.ts","./src/app/job/job/job.component.html","./src/app/lower-case-url-serializer.ts","./src/app/mobile-base/mobile-base.component.ts","./src/app/models/carousel-item.ts","./src/app/models/data-query-result.ts","./src/app/models/form-fields.ts","./src/app/models/form.ts","./src/app/models/general-feature.ts","./src/app/models/mobile-menu-item.ts","./src/app/models/product-detail.ts","./src/app/models/quick-link-image.ts","./src/app/models/standard-feature.ts","./src/app/page/customer-account-selector/customer-account-selector.component.ts","./src/app/page/customer-account-selector/customer-account-selector.component.html","./src/app/page/events/events.component.ts","./src/app/page/events/events.component.html","./src/app/page/job-listing/job-listing.component.ts","./src/app/page/job-listing/job-listing.component.html","./src/app/page/page-content-feature/page-content-feature.component.ts","./src/app/page/page-content-feature/page-content-feature.component.html","./src/app/page/page-content-item/page-content-item.component.ts","./src/app/page/page-content-item/page-content-item.component.html","./src/app/page/page-description-heading/page-description-heading.component.ts","./src/app/page/page-description-heading/page-description-heading.component.html","./src/app/page/page-description/page-description.component.ts","./src/app/page/page-description/page-description.component.html","./src/app/page/page-detail/page-detail.component.ts","./src/app/page/page-feature/page-feature.component.ts","./src/app/page/page-feature/page-feature.component.html","./src/app/page/page-image/page-image.component.ts","./src/app/page/page-image/page-image.component.html","./src/app/page/page-manual-link/page-manual-link.component.ts","./src/app/page/page-manual-link/page-manual-link.component.html","./src/app/page/page-media-link/page-media-link.component.ts","./src/app/page/page-media-link/page-media-link.component.html","./src/app/page/page-menu/page-menu.component.ts","./src/app/page/page-menu/page-menu.component.html","./src/app/page/page-resolver.service.ts","./src/app/page/page-routing.module.ts","./src/app/page/page-table/page-table.component.ts","./src/app/page/page-table/page-table.component.html","./src/app/page/page-video/page-video.component.ts","./src/app/page/page-video/page-video.component.html","./src/app/page/page.module.ts","./src/app/page/page/page.component.ts","./src/app/page/page/page.component.html","./src/app/product/focus.directive.ts","./src/app/product/image-view-maximized/image-view-maximized.component.ts","./src/app/product/image-view-maximized/image-view-maximized.component.html","./src/app/product/image-view/image-view.component.ts","./src/app/product/image-view/image-view.component.html","./src/app/product/image-viewer/image-viewer.component.ts","./src/app/product/image-viewer/image-viewer.component.html","./src/app/product/product-ad/product-ad.component.ts","./src/app/product/product-ad/product-ad.component.html","./src/app/product/product-children/product-children.component.ts","./src/app/product/product-children/product-children.component.html","./src/app/product/product-description/product-description.component.ts","./src/app/product/product-description/product-description.component.html","./src/app/product/product-detail-heading/product-detail-heading.component.ts","./src/app/product/product-detail-heading/product-detail-heading.component.html","./src/app/product/product-detail-tab-container/product-detail-tab-container.component.ts","./src/app/product/product-detail-tab-container/product-detail-tab-container.component.html","./src/app/product/product-detail-tab/product-detail-tab.component.ts","./src/app/product/product-detail/product-detail.component.ts","./src/app/product/product-direct-mailing/product-direct-mailing.component.ts","./src/app/product/product-direct-mailing/product-direct-mailing.component.html","./src/app/product/product-feature/product-feature.component.ts","./src/app/product/product-feature/product-feature.component.html","./src/app/product/product-internal-doc/product-internal-doc.component.ts","./src/app/product/product-internal-doc/product-internal-doc.component.html","./src/app/product/product-media-link/product-media-link.component.ts","./src/app/product/product-media-link/product-media-link.component.html","./src/app/product/product-menu/product-menu.component.ts","./src/app/product/product-menu/product-menu.component.html","./src/app/product/product-quick-link/product-quick-link.component.ts","./src/app/product/product-quick-link/product-quick-link.component.html","./src/app/product/product-related/product-related.component.ts","./src/app/product/product-related/product-related.component.html","./src/app/product/product-resolver.service.ts","./src/app/product/product-routing.module.ts","./src/app/product/product-summary/product-summary.component.ts","./src/app/product/product-summary/product-summary.component.html","./src/app/product/product-tab-headers/product-tab-headers.component.ts","./src/app/product/product-tab-headers/product-tab-headers.component.html","./src/app/product/product-table/product-table.component.ts","./src/app/product/product-table/product-table.component.html","./src/app/product/product-testimonial/product-testimonial.component.ts","./src/app/product/product-testimonial/product-testimonial.component.html","./src/app/product/product.module.ts","./src/app/product/product/product.component.ts","./src/app/product/product/product.component.html","./src/app/product/size-conversion.pipe.ts","./src/app/product/thumbnail-list/thumbnail-list.component.ts","./src/app/product/thumbnail-list/thumbnail-list.component.html","./src/app/product/video-view/video-view.component.ts","./src/app/product/video-view/video-view.component.html","./src/app/product/video-viewer/video-viewer.component.ts","./src/app/product/video-viewer/video-viewer.component.html","./src/app/search/filter-by-category.pipe.ts","./src/app/search/search-result-categories/search-result-categories.component.ts","./src/app/search/search-result-categories/search-result-categories.component.html","./src/app/search/search-result-details/search-result-details.component.ts","./src/app/search/search-result-details/search-result-details.component.html","./src/app/search/search-result-resolver.service.ts","./src/app/search/search-results/search-results.component.ts","./src/app/search/search-results/search-results.component.html","./src/app/search/search-routing.module.ts","./src/app/search/search.module.ts","./src/app/services/auth-interceptor.service.ts","./src/app/services/content.service.ts","./src/app/services/footer.service.ts","./src/app/services/form.service.ts","./src/app/services/global.service.ts","./src/app/services/header.service.ts","./src/app/services/job.service.ts","./src/app/services/link.service.ts","./src/app/services/modal.service.ts","./src/app/services/page.service.ts","./src/app/services/product.service.ts","./src/app/services/search.service.ts","./src/app/services/seo.service.ts","./src/app/services/shared.service.ts","./src/app/services/toolbar.service.ts","./src/app/services/user.service.ts","./src/app/shared/carousel/carousel.component.ts","./src/app/shared/carousel/carousel.component.html","./src/app/shared/dynamic-form-field/dynamic-form-field.component.ts","./src/app/shared/dynamic-form-field/dynamic-form-field.component.html","./src/app/shared/dynamic-form/dynamic-form.component.ts","./src/app/shared/dynamic-form/dynamic-form.component.html","./src/app/shared/field-error-display/field-error-display.component.ts","./src/app/shared/field-error-display/field-error-display.component.html","./src/app/shared/form-detail/form-detail.component.ts","./src/app/shared/form-detail/form-detail.component.html","./src/app/shared/general-features/general-features.component.ts","./src/app/shared/general-features/general-features.component.html","./src/app/shared/mobile-main-menu/mobile-main-menu.component.ts","./src/app/shared/mobile-main-menu/mobile-main-menu.component.html","./src/app/shared/modal-results-dialog/modal-results-dialog.component.ts","./src/app/shared/modal-results-dialog/modal-results-dialog.component.html","./src/app/shared/modal/modal.component.ts","./src/app/shared/modal/modal.component.html","./src/app/shared/privacy-alert/privacy-alert-check/privacy-alert-check.component.ts","./src/app/shared/privacy-alert/privacy-alert-dialog/privacy-alert-dialog.component.ts","./src/app/shared/privacy-alert/privacy-alert-dialog/privacy-alert-dialog.component.html","./src/app/shared/shared-headers/mobile-shared-header/mobile-shared-header.component.ts","./src/app/shared/shared-headers/shared-header/shared-header.component.ts","./src/app/shared/shared-headers/shared-header/shared-header.component.html","./src/app/shared/shared.module.ts","./src/app/shared/standard-features/standard-features.component.ts","./src/app/shared/standard-features/standard-features.component.html","./src/app/shared/upload-file-type-validator.directive.ts","./src/app/shared/video-container/video-container.component.ts","./src/app/shared/video-container/video-container.component.html","./src/app/toolbars/mobile-toolbar/mobile-toolbar.component.ts","./src/app/toolbars/mobile-toolbar/mobile-toolbar.component.html","./src/app/toolbars/toolbar/toolbar.component.ts","./src/app/toolbars/toolbar/toolbar.component.html","./src/app/toolbars/toolbars.module.ts","./src/environments/environment.test.ts","./src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes, UrlSerializer } from '@angular/router';\r\n\r\nimport { DomainAndUserGuard } from './domain-and-user.guard';\r\nimport { LowerCaseUrlSerializer } from './lower-case-url-serializer';\r\n\r\nconst routes: Routes = [\r\n { path: \"about/more/ip.asp\", redirectTo: \"/en/page/ip\", pathMatch: \"full\" },\r\n { path: \"ip\", redirectTo: \"/en/page/ip\", pathMatch: \"full\" },\r\n { path: \"careers\", redirectTo: \"/en/page/careers\", pathMatch: \"full\" },\r\n { path: \"legal\", redirectTo: \"/en/page/legal\", pathMatch: \"full\" },\r\n { path: \"support\", redirectTo: \"/en/page/support\", pathMatch: \"full\" },\r\n { path: \"returns\", redirectTo: \"/en/page/returns\", pathMatch: \"full\" },\r\n { path: \"dtsi\", redirectTo: \"/en/page/home\", pathMatch: \"full\" },\r\n { path: \"\", redirectTo: \"/en/page/home\", pathMatch: \"full\" },\r\n { path: \"**\", redirectTo: \"/en/page/error\", pathMatch: \"full\" }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, { relativeLinkResolution: \"legacy\" })\r\n ],\r\n providers: [\r\n { provide: UrlSerializer, useClass: LowerCaseUrlSerializer },\r\n DomainAndUserGuard\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.less'],\r\n})\r\nexport class AppComponent { }\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { BrowserModule, Title } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgMarqueeModule } from 'ng-marquee';\r\nimport { NgxImageCompressService } from 'ngx-image-compress';\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { NgcCookieConsentConfig, NgcCookieConsentModule } from 'ngx-cookieconsent';\r\nimport { MsalModule } from '@azure/msal-angular';\r\nimport { InteractionType, PublicClientApplication } from '@azure/msal-browser';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { ContentModule } from './content/content.module';\r\nimport { HeaderComponent } from './headers/header/header.component';\r\nimport { IsSecureGuard } from './is-secure.guard';\r\nimport { JobModule } from './job/job.module';\r\nimport { PageModule } from './page/page.module';\r\nimport { ProductModule } from './product/product.module';\r\nimport { SearchModule } from './search/search.module';\r\nimport { FooterService } from '@services/footer.service';\r\nimport { GlobalService } from '@services/global.service';\r\nimport { HeaderService } from '@services/header.service';\r\nimport { LinkService } from '@services/link.service';\r\nimport { SEOService } from '@services/seo.service';\r\nimport { ToolbarService } from '@services/toolbar.service';\r\nimport { UserService } from '@services/user.service';\r\nimport { SharedModule } from '@shared/shared.module';\r\nimport { MobileHeaderComponent } from './headers/mobile-header/mobile-header.component';\r\nimport { MobileBaseComponent } from './mobile-base/mobile-base.component';\r\nimport { BaseComponent } from './base/base.component';\r\nimport { ToolbarsModule } from './toolbars/toolbars.module';\r\nimport { FootersModule } from './footers/footers.module';\r\nimport { AuthInterceptor } from '@services/auth-interceptor.service';\r\n\r\nconst cookieConsentConfig : NgcCookieConsentConfig = {\r\n cookie: {\r\n domain: 'localhost' // 'www.usnr.com'\r\n },\r\n palette: {\r\n popup: {\r\n background: '#000'\r\n },\r\n button: {\r\n background: '#f1d600'\r\n }\r\n },\r\n theme: 'edgeless',\r\n type: 'info'\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n MobileHeaderComponent,\r\n MobileBaseComponent,\r\n BaseComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n SharedModule,\r\n PageModule,\r\n ContentModule,\r\n ProductModule,\r\n JobModule,\r\n SearchModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n NgMarqueeModule,\r\n ToolbarsModule,\r\n MatToolbarModule,\r\n FootersModule,\r\n NgcCookieConsentModule.forRoot(cookieConsentConfig),\r\n MsalModule.forRoot(new PublicClientApplication({\r\n auth: {\r\n clientId: '89de6df0-8462-4106-a6dc-390a8a707145',\r\n authority: 'https://login.microsoftonline.com/usnr.onmicrosoft.com',\r\n // redirectUri: 'http://localhost:4200'\r\n redirectUri: window.location.origin + '/dtsi'\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n }\r\n }),\r\n {\r\n interactionType: InteractionType.Popup\r\n }, null)\r\n ],\r\n providers: [\r\n Title,\r\n SEOService,\r\n ToolbarService,\r\n GlobalService,\r\n UserService,\r\n HeaderService,\r\n FooterService,\r\n IsSecureGuard,\r\n LinkService,\r\n NgxImageCompressService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'base',\n templateUrl: './base.component.html',\n styleUrls: ['./base.component.less'],\n})\nexport class BaseComponent implements OnDestroy {\n protected subscriptions: Subscription[] = [];\n\n constructor() {}\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s: Subscription) => s.unsubscribe())\n }\n\n protected handleError(error: any): void {\n console.error('An error occurred', error);\n }\n}\n","import { Component } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"content-content-feature\",\r\n templateUrl: \"./content-content-feature.component.html\",\r\n styleUrls: [\"./content-content-feature.component.less\"]\r\n})\r\nexport class ContentContentFeatureComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n id: string;\r\n mediaFileName: string;\r\n title: string;\r\n description: string;\r\n other: string;\r\n targetId: string;\r\n\r\n languageCode: string;\r\n}\r\n","
\r\n\r\n
\r\n \"{{title}}\"\r\n
\r\n {{title}}
\r\n {{other}}
\r\n {{description}}
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"content-content-item\",\r\n templateUrl: \"./content-content-item.component.html\",\r\n styleUrls: [\"./content-content-item.component.less\"]\r\n})\r\nexport class ContentContentItemComponent {\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n id: string;\r\n title: string;\r\n description: string;\r\n\r\n languageCode: string;\r\n}\r\n","
\r\n \r\n \"{{title}}\"/\r\n \r\n
\r\n {{title}}\r\n

 - {{description}}

\r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"content-description-heading\",\r\n templateUrl: \"./content-description-heading.component.html\",\r\n styleUrls: [\"./content-description-heading.component.less\"]\r\n})\r\nexport class ContentDescriptionHeadingComponent {\r\n heading: SafeHtml;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n setHeading(heading: string): void {\r\n this.heading = this.sanitizer.bypassSecurityTrustHtml(heading);\r\n }\r\n}\r\n","
\r\n

\r\n \r\n

\r\n","import { Component } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"content-description\",\r\n templateUrl: \"./content-description.component.html\",\r\n styleUrls: [\"./content-description.component.less\"]\r\n})\r\nexport class ContentDescriptionComponent {\r\n description: SafeHtml;\r\n descriptionPresent: boolean;\r\n title: SafeHtml;\r\n titlePresent: boolean;\r\n other: SafeHtml;\r\n otherPresent: boolean;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n setDescription(description: string): void {\r\n if (description === \"\") {\r\n this.descriptionPresent = false;\r\n } else {\r\n this.description = this.sanitizer.bypassSecurityTrustHtml(description);\r\n this.descriptionPresent = true;\r\n }\r\n }\r\n\r\n setTitle(title: string): void {\r\n if (title === \"\") {\r\n this.titlePresent = false;\r\n } else {\r\n this.title = this.sanitizer.bypassSecurityTrustHtml(title);\r\n this.titlePresent = true;\r\n }\r\n }\r\n\r\n setOther(other: string): void {\r\n if (other === \"\") {\r\n this.otherPresent = false;\r\n } else {\r\n this.other = this.sanitizer.bypassSecurityTrustHtml(other);\r\n this.otherPresent = true;\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 {\r\n Component,\r\n OnDestroy,\r\n OnChanges,\r\n Input,\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n ComponentFactory,\r\n ComponentRef\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { ContentDetail } from \"@models/content-detail\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { ContentService } from \"@services/content.service\";\r\nimport { ContentDescriptionHeadingComponent } from \"../content-description-heading/content-description-heading.component\";\r\nimport { ContentDescriptionComponent } from \"../content-description/content-description.component\";\r\nimport { ContentTestimonialComponent } from \"../content-testimonial/content-testimonial.component\";\r\nimport { ContentTableComponent } from \"../content-table/content-table.component\";\r\nimport { ContentImageComponent } from \"../content-image/content-image.component\";\r\nimport { ContentVideoComponent } from \"../content-video/content-video.component\";\r\nimport { ContentFeatureComponent } from \"../content-feature/content-feature.component\";\r\nimport { ContentContentFeatureComponent } from \"../content-content-feature/content-content-feature.component\";\r\nimport { ContentContentItemComponent } from \"../content-content-item/content-content-item.component\";\r\nimport { ContentMediaLinkComponent } from \"../content-media-link/content-media-link.component\";\r\nimport { ContentManualLinkComponent } from \"../content-manual-link/content-manual-link.component\";\r\nimport { ContentJobListingComponent } from \"../content-job-listing/content-job-listing.component\";\r\n\r\n@Component({\r\n selector: \"content-detail\",\r\n templateUrl: \"./content-detail.component.html\",\r\n styleUrls: [\"./content-detail.component.less\"]\r\n})\r\nexport class ContentDetailComponent implements OnDestroy, OnChanges {\r\n private subscription: Subscription;\r\n\r\n @Input() details: ContentDetail[];\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private contentService: ContentService,\r\n private route: ActivatedRoute,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef\r\n ) {\r\n this.subscription = globalService.languageId$.subscribe(() => { this.ngOnChanges(null); });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.processDetails();\r\n }\r\n\r\n private processDetails(): void {\r\n const languageCode: string = this.globalService.getLanguageCode();\r\n this.viewContainerRef.clear();\r\n if (this.details !== undefined) {\r\n for (const detail of this.details) {\r\n if (detail.IsHeading) {\r\n this.showHeading(detail.Title);\r\n } else {\r\n switch (detail.DetailType) {\r\n case \"Description\":\r\n this.showDescription(detail);\r\n break;\r\n case \"Inline Image Left\":\r\n case \"Inline Image Right\":\r\n case \"Inline Image Center\":\r\n this.showImage(detail);\r\n break;\r\n case \"Feature\":\r\n this.showFeature(detail);\r\n break;\r\n case \"Content Feature\": // CAN'T FIND WHERE THIS EXISTS - NOT IN PWCONTENTDETAILTYPE\r\n this.showContentFeature(detail, languageCode);\r\n break;\r\n case \"Content Item\": // CAN'T FIND WHERE THIS EXISTS - NOT IN PWCONTENTDETAILTYPE\r\n this.showContentItem(detail, languageCode);\r\n break;\r\n case \"Table\":\r\n this.showTable(detail);\r\n break;\r\n case \"Testimonial Left\":\r\n case \"Testimonial Right\":\r\n this.showTestimonial(detail);\r\n break;\r\n case \"Manual Link\":\r\n this.showManualLink(detail);\r\n break;\r\n case \"Media Link\":\r\n this.showMediaLink(detail);\r\n break;\r\n case \"Inline Video\":\r\n this.showVideo(detail);\r\n break;\r\n case \"Header Image\":\r\n break;\r\n case \"Summary\":\r\n break;\r\n case \"Job List\":\r\n this.showJobListings(detail, languageCode);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private showHeading(heading: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentDescriptionHeadingComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setHeading(heading);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showDescription(detail: ContentDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentDescriptionComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setDescription(detail.Description);\r\n ref.instance.setTitle(detail.Title);\r\n ref.instance.setOther(detail.Other);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showTestimonial(detail: ContentDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentTestimonialComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.detail = detail;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showTable(detail: ContentDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentTableComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.rows = detail.TableSpecifications;\r\n ref.instance.prepareTable();\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showImage(detail: ContentDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentImageComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.detail = detail;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showVideo(detail: ContentDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentVideoComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.detail = detail;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showFeature(detail: ContentDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentFeatureComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showContentFeature(detail: ContentDetail, languageCode: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentContentFeatureComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.id = detail.Id;\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.other = detail.Other;\r\n ref.instance.mediaFileName = detail.MediaFileName;\r\n ref.instance.targetId = detail.TargetContentId;\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showContentItem(detail: ContentDetail, languageCode: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentContentItemComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.id = detail.Id;\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showMediaLink(detail: ContentDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentMediaLinkComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.other = detail.Other;\r\n ref.instance.mediaFileName = detail.MediaFileName;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showManualLink(detail: ContentDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentManualLinkComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.other = detail.Other;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showJobListings(detail: ContentDetail, languageCode: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ContentJobListingComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.languageCode = languageCode;\r\n ref.instance.contentId = detail.Id;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"m-content-feature\",\r\n templateUrl: \"./content-feature.component.html\",\r\n styleUrls: [\"./content-feature.component.less\"]\r\n})\r\nexport class ContentFeatureComponent {\r\n title: string;\r\n description: string;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n get _description(): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.description);\r\n }\r\n}\r\n","
  • \r\n {{title}} \r\n \r\n
  • \r\n","import { Component } from \"@angular/core\";\r\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ContentDetail } from \"@models/content-detail\";\r\n\r\n@Component({\r\n selector: \"content-image\",\r\n templateUrl: \"./content-image.component.html\",\r\n styleUrls: [\"./content-image.component.less\"]\r\n})\r\nexport class ContentImageComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n detail: ContentDetail;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n private imageWidth(): number {\r\n if ((this.detail.DetailType === \"Inline Image Right\" || this.detail.DetailType === \"Inline Image Left\") &&\r\n (this.detail.FileInfo)) {\r\n return this.detail.FileInfo.Width > 300 ? 300 : this.detail.FileInfo.Width;\r\n }\r\n\r\n return 540;\r\n }\r\n\r\n private description(): SafeHtml {\r\n return this.detail.Description === \"\" ? \"\" : this.sanitizer.bypassSecurityTrustHtml(this.detail.Description);\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n

    \r\n \"{{detail.Description}}\"\r\n '\">\r\n

    \r\n '\">\r\n
    \r\n \r\n

    \r\n \"{{detail.Description}}\"\r\n '\">\r\n

    \r\n
    \r\n
    \r\n","\r\nimport {throwError as observableThrowError } from \"rxjs\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { JobListing } from \"@models/job-listing\";\r\nimport { JobService } from \"@services/job.service\";\r\n\r\n@Component({\r\n selector: \"content-job-listing\",\r\n templateUrl: \"./content-job-listing.component.html\",\r\n styleUrls: [\"./content-job-listing.component.less\"]\r\n})\r\nexport class ContentJobListingComponent implements OnInit {\r\n\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n listings: JobListing[];\r\n languageCode: string;\r\n contentId: string;\r\n\r\n constructor(private jobService: JobService) { }\r\n\r\n ngOnInit(): void {\r\n this.jobService.getListings(this.contentId).subscribe(\r\n (listings: JobListing[]) => { this.listings = listings; },\r\n (error: any) => { this.handleError(error); }\r\n );\r\n }\r\n\r\n private getDescription(description: string): string {\r\n if (description.length > 100) {\r\n return description.substring(0, 100) + \"...\";\r\n }\r\n\r\n return description;\r\n }\r\n\r\n private handleError(error: any): void {\r\n console.error(\"An error occurred\", error);\r\n observableThrowError(error);\r\n }\r\n\r\n}\r\n","
    \r\n\r\n

    \r\n {{job.Title}}\r\n

    \r\n
    \r\n \r\n \"\"/\r\n
    {{job.Title}}
    \r\n
    \r\n

    \r\n  - {{getDescription(job.Description)}}\r\n  \r\n

    \r\n
    \r\n
    \r\n
    \r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"content-manual-link\",\r\n templateUrl: \"./content-manual-link.component.html\",\r\n styleUrls: [\"./content-manual-link.component.less\"]\r\n})\r\nexport class ContentManualLinkComponent {\r\n title: string;\r\n description: string;\r\n other: string;\r\n}\r\n","

    \r\n {{title}}\r\n  - {{description}}\r\n

    \r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"content-media-link\",\r\n templateUrl: \"./content-media-link.component.html\",\r\n styleUrls: [\"./content-media-link.component.less\"]\r\n})\r\nexport class ContentMediaLinkComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n title: string;\r\n description: string;\r\n other: string;\r\n mediaFileName: string;\r\n}\r\n","

    \r\n {{title}}\r\n  - {{description}}\r\n

    \r\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute, Params } from \"@angular/router\";\r\n\r\nimport { ContentMenu } from \"@models/menu-item\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { ContentService } from \"@services/content.service\";\r\n\r\n@Component({\r\n selector: \"content-menu\",\r\n templateUrl: \"./content-menu.component.html\",\r\n styleUrls: [\"./content-menu.component.less\"]\r\n})\r\nexport class ContentMenuComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription;\r\n private routeSubscription: Subscription;\r\n\r\n menu: ContentMenu[];\r\n id: string;\r\n selectedMenu: ContentMenu;\r\n\r\n languageCode: string;\r\n\r\n constructor(private globalService: GlobalService, private contentService: ContentService, private route: ActivatedRoute) {\r\n this.subscription = globalService.languageId$.subscribe(() => { this.ngOnInit(); } );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routeSubscription = this.route.params.subscribe(\r\n (params: Params) => {\r\n this.id = params[\"id\"];\r\n\r\n this.contentService.getMenu(params[\"id\"])\r\n .subscribe(menu => {\r\n this.menu = menu;\r\n if (menu !== null && menu !== undefined) {\r\n this.selectedMenu = menu.find(content => content.Id.toLowerCase() === this.id.toLowerCase());\r\n }\r\n });\r\n }\r\n );\r\n\r\n this.languageCode = this.globalService.getLanguageCode();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.routeSubscription) {\r\n this.routeSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n getClass(item: ContentMenu) {\r\n let cssClass: any;\r\n\r\n if (item.Id.toLowerCase() === this.selectedMenu.Id.toLowerCase()) {\r\n cssClass = { \"menuSelected\": true, \"menuChild\": false, \"menuParent\": false, \"menuSibling\": false };\r\n } else if (item.Level < this.selectedMenu.Level) {\r\n cssClass = { \"menuSelected\": false, \"menuChild\": false, \"menuParent\": true, \"menuSibling\": false };\r\n } else if (item.Level > this.selectedMenu.Level) {\r\n cssClass = { \"menuSelected\": false, \"menuChild\": true, \"menuParent\": false, \"menuSibling\": false };\r\n } else { // item.Level === this.selectedMenu.Level\r\n cssClass = { \"menuSelected\": false, \"menuChild\": false, \"menuParent\": false, \"menuSibling\": true };\r\n }\r\n\r\n return cssClass;\r\n }\r\n\r\n getCurrentPageId(): string {\r\n const id: string = this.route.snapshot.params[\"id\"];\r\n if (id) {\r\n return id;\r\n }\r\n\r\n return \"home\";\r\n }\r\n\r\n getCurrentPageType(): string {\r\n if (this.route.snapshot.url.length > 2) {\r\n return this.route.snapshot.url[1].path;\r\n }\r\n\r\n return \"page\";\r\n }\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {{menuItem.Title}}\r\n \r\n
    \r\n
    \r\n","import { Injectable } from \"@angular/core\";\r\nimport { Resolve, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\r\n\r\nimport { ContentDetail } from \"@models/content-detail\";\r\nimport { ContentService } from \"@services/content.service\";\r\nimport { GlobalService } from \"@services/global.service\";\r\n\r\n@Injectable()\r\nexport class ContentResolverService implements Resolve {\r\n constructor(private contentService: ContentService, private globalService: GlobalService, private router: Router) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n const id: string = route.params[\"id\"] as string;\r\n if (id === null) {\r\n this.router.navigate([this.globalService.getLanguageCode(), \"page\", \"error\"], { queryParams: { dt: 1, returnUrl: state.url } });\r\n }\r\n\r\n let languageId = route.paramMap.get(\"languageId\");\r\n if (languageId && languageId !== \"\") {\r\n this.globalService.setLanguage(languageId);\r\n } else {\r\n languageId = this.globalService.getLanguage();\r\n if (!languageId) {\r\n this.globalService.setLanguage(\"en-us\");\r\n }\r\n }\r\n\r\n return this.resolveContent(id);\r\n }\r\n\r\n private resolveContent(id: string): Promise {\r\n return this.contentService.getDetails(id)\r\n .toPromise()\r\n .then(details => {\r\n if (details === undefined || details === null) {\r\n this.router.navigate([this.globalService.getLanguageCode(), \"page\", \"error\"], { queryParams: { dt: 1 }});\r\n return null;\r\n }\r\n\r\n return details;\r\n });\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\n\r\nimport { IsSecureGuard } from \"../is-secure.guard\";\r\nimport { ContentComponent } from \"./content/content.component\";\r\nimport { ContentResolverService } from \"./content-resolver.service\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \":languageId/content/:id\",\r\n component: ContentComponent,\r\n resolve: { details: ContentResolverService },\r\n canActivate: [ IsSecureGuard ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ContentRoutingModule { }\r\n","import { Component } from \"@angular/core\";\r\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\r\n\r\nimport { TableSpecification } from \"@models/table-specification\";\r\n\r\n@Component({\r\n selector: \"content-table\",\r\n templateUrl: \"./content-table.component.html\",\r\n styleUrls: [\"./content-table.component.less\"]\r\n})\r\nexport class ContentTableComponent {\r\n rows: TableSpecification[];\r\n isLessThanFullWidth: boolean;\r\n columnCount: number;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n prepareTable(): void {\r\n if (this.rows !== undefined && this.rows.length > 0) {\r\n let totalWidth: number = 0;\r\n\r\n totalWidth += this.rows[0].TitleWidth;\r\n totalWidth += this.rows[0].Column1Width;\r\n totalWidth += this.rows[0].Column2Width;\r\n totalWidth += this.rows[0].Column3Width;\r\n totalWidth += this.rows[0].Column4Width;\r\n totalWidth += this.rows[0].Column5Width;\r\n\r\n this.isLessThanFullWidth = (totalWidth <= 540);\r\n\r\n this.columnCount = this.rows[0].NumberOfColumns + 1;\r\n }\r\n }\r\n\r\n private getRowClass(type: string): string {\r\n if (type === \"Footnote\") {\r\n return \"tableFooter\";\r\n }\r\n if (type === \"Heading\") {\r\n return \"tableHeading\";\r\n }\r\n\r\n return \"tableValue\";\r\n }\r\n\r\n private columnValue(value: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\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
    = 1 && row.Title ===''\" [ngClass]=\" { 'tableValue': row.DetailType!=='Heading' }\"> = 2 && row.Column1 ===''\" [ngClass]=\" { 'tableValue': row.DetailType!=='Heading' }\"> = 3 && row.Column2 ===''\" [ngClass]=\" { 'tableValue': row.DetailType!=='Heading' }\"> = 4 && row.Column3 ===''\" [ngClass]=\" { 'tableValue': row.DetailType!=='Heading' }\"> = 5 && row.Column4 ===''\" [ngClass]=\" { 'tableValue': row.DetailType!=='Heading' }\"> = 6 && row.Column5 ===''\" [ngClass]=\" { 'tableValue': row.DetailType!=='Heading' }\"> 
    \r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ContentDetail } from \"@models/content-detail\";\r\n\r\n@Component({\r\n selector: \"content-testimonial\",\r\n templateUrl: \"./content-testimonial.component.html\",\r\n styleUrls: [\"./content-testimonial.component.less\"]\r\n})\r\nexport class ContentTestimonialComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n detail: ContentDetail;\r\n}\r\n","
    \r\n
    \r\n
    \r\n \"{{detail.Other}}\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{detail.Description}}
    \r\n
    \r\n {{detail.Other}}
    \r\n {{detail.Title}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"{{detail.Other}}\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{detail.Description}}
    \r\n
    \r\n {{detail.Other}}
    \r\n {{detail.Title}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component } from \"@angular/core\";\r\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\r\n\r\nimport { ContentDetail } from \"@models/content-detail\";\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"content-video\",\r\n templateUrl: \"./content-video.component.html\",\r\n styleUrls: [\"./content-video.component.less\"]\r\n})\r\nexport class ContentVideoComponent {\r\n detail: ContentDetail;\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n showDownloadUrl: boolean = false;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n private getVideo(): SafeHtml {\r\n if (this.detail !== undefined && this.detail !== null) {\r\n let url: string = this.detail.VideoUrl;\r\n if (url.indexOf(\"?\") > -1) {\r\n url += \"&autoplay=0\";\r\n } else {\r\n url += \"?autoplay=0\";\r\n }\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n showDownloadLink(show: boolean): void {\r\n this.showDownloadUrl = show;\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { ContentRoutingModule } from \"./content-routing.module\";\r\nimport { ContentComponent } from \"./content/content.component\";\r\nimport { SharedModule } from \"@shared/shared.module\";\r\nimport { ContentMenuComponent } from \"./content-menu/content-menu.component\";\r\nimport { ContentDetailComponent } from \"./content-detail/content-detail.component\";\r\nimport { ContentService } from \"@services/content.service\";\r\nimport { ContentDescriptionHeadingComponent } from \"./content-description-heading/content-description-heading.component\";\r\nimport { ContentResolverService } from \"./content-resolver.service\";\r\nimport { ContentDescriptionComponent } from \"./content-description/content-description.component\";\r\nimport { ContentTestimonialComponent } from \"./content-testimonial/content-testimonial.component\";\r\nimport { ContentTableComponent } from \"./content-table/content-table.component\";\r\nimport { ContentImageComponent } from \"./content-image/content-image.component\";\r\nimport { ContentVideoComponent } from \"./content-video/content-video.component\";\r\nimport { ContentFeatureComponent } from \"./content-feature/content-feature.component\";\r\nimport { ContentContentFeatureComponent } from \"./content-content-feature/content-content-feature.component\";\r\nimport { ContentContentItemComponent } from \"./content-content-item/content-content-item.component\";\r\nimport { ContentMediaLinkComponent } from \"./content-media-link/content-media-link.component\";\r\nimport { ContentManualLinkComponent } from \"./content-manual-link/content-manual-link.component\";\r\nimport { ContentJobListingComponent } from \"./content-job-listing/content-job-listing.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ContentRoutingModule,\r\n SharedModule\r\n ],\r\n providers: [\r\n ContentService,\r\n ContentResolverService\r\n ],\r\n declarations: [\r\n ContentComponent,\r\n ContentMenuComponent,\r\n ContentDetailComponent,\r\n ContentDescriptionHeadingComponent,\r\n ContentDescriptionComponent,\r\n ContentTestimonialComponent,\r\n ContentTableComponent,\r\n ContentImageComponent,\r\n ContentVideoComponent,\r\n ContentFeatureComponent,\r\n ContentContentFeatureComponent,\r\n ContentContentItemComponent,\r\n ContentMediaLinkComponent,\r\n ContentManualLinkComponent,\r\n ContentJobListingComponent\r\n ]\r\n})\r\nexport class ContentModule { }\r\n","import {throwError as observableThrowError, Subscription } from \"rxjs\";\r\nimport { Component, OnInit, OnDestroy, AfterViewInit } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\ndeclare var enableClickDimensions: any;\r\n\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { ContentDetail } from \"@models/content-detail\";\r\nimport { ContentService } from \"@services/content.service\";\r\n\r\n@Component({\r\n selector: \"content\",\r\n templateUrl: \"./content.component.html\",\r\n styleUrls: [\"./content.component.less\"]\r\n})\r\nexport class ContentComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription;\r\n private detailsSubscription: Subscription;\r\n\r\n details: ContentDetail[] = [];\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private contentService: ContentService,\r\n private route: ActivatedRoute\r\n ) {\r\n this.subscription = this.globalService.languageId$.subscribe(\r\n () => { this.getDetails(); }\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.data\r\n .subscribe((data: { details: ContentDetail[] }) => this.details = data.details);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.detailsSubscription) {\r\n this.detailsSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.globalService.cookiesEnabled()) {\r\n enableClickDimensions();\r\n }\r\n }\r\n\r\n private getDetails(): void {\r\n const pageId: string = this.route.snapshot.params[\"id\"];\r\n if (pageId === null) {\r\n return null;\r\n }\r\n\r\n this.detailsSubscription = this.contentService.getDetails(pageId).subscribe(\r\n (details: ContentDetail[]) => { this.details = details; },\r\n (error: any) => { this.handleError(error); }\r\n );\r\n }\r\n\r\n private handleError(error: any): void {\r\n console.error(\"An error occurred\", error);\r\n observableThrowError(error);\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 { Component, Input } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { LinkBaseComponent } from \"../link-base/link-base.component\";\r\n\r\n@Component({\r\n selector: \"dq-anchor\",\r\n templateUrl: \"./anchor.component.html\",\r\n styleUrls: [\"./anchor.component.less\"]\r\n})\r\nexport class AnchorComponent extends LinkBaseComponent {\r\n @Input() value: string;\r\n @Input() width: number;\r\n\r\n get localImageLocation(): string {\r\n return environment.LocalImageLocation;\r\n }\r\n\r\n constructor() { super(); }\r\n}\r\n","\r\n {{value}}\r\n\r\n\"loading\"\r\n","import { Component, ElementRef, Output, EventEmitter, Renderer2 } from '@angular/core';\r\nimport { saveAs } from 'file-saver';\r\nimport { NestedTreeControl } from '@angular/cdk/tree';\r\nimport { MatTreeNestedDataSource } from '@angular/material/tree';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { environment } from '@environment';\r\nimport { GlobalService } from '@services/global.service';\r\nimport { FormService } from '@services/form.service';\r\nimport { SharedService } from '@services/shared.service';\r\nimport { DataQueryOutputColumn, DataQueryOutputLinkTarget, DataQueryOutputRow, DataQueryResult } from '@models/data-query-result';\r\nimport { DataQueryDetail } from '@models/data-query-detail';\r\nimport { ColumnSortedEvent } from '../sortable-column/sort.service';\r\nimport { TreeNode } from '@models/tree-node';\r\nimport { PageService } from '@services/page.service';\r\nimport { PageDetail } from '@models/page-detail';\r\nimport { ValidatedUser } from '@models/validated-user';\r\nimport { UserService } from '@services/user.service';\r\nimport { ModalDataQueryConfigs } from '@models/modal-data-query-configs';\r\nimport { SharedHeader } from '@models/shared-header';\r\nimport { LinkBaseComponent } from '../link-base/link-base.component';\r\nimport { firstValueFrom, lastValueFrom } from 'rxjs';\r\nimport { PageSummary } from '@models/page-summary';\r\n\r\n@Component({\r\n selector: 'data-query-results-grid',\r\n templateUrl: './data-query-results-grid.component.html',\r\n styleUrls: ['./data-query-results-grid.component.less'],\r\n})\r\nexport class DataQueryResultsGridComponent {\r\n @Output() refreshPage: EventEmitter = new EventEmitter();\r\n @Output() showModalResults: EventEmitter = new EventEmitter();\r\n\r\n showBusy: boolean;\r\n\r\n private currencyFormat: Intl.NumberFormat;\r\n private dateFormat: Intl.DateTimeFormat;\r\n private timeFormat: Intl.DateTimeFormat;\r\n private dateTimeFormat: Intl.DateTimeFormat;\r\n showHeader: boolean;\r\n showTotal: boolean;\r\n highlightFirst: boolean;\r\n highlightLast: boolean;\r\n bandedRows: boolean;\r\n bandedColumns: boolean;\r\n headers: any[] = [];\r\n rows: DataQueryOutputRow[] = [];\r\n footer: DataQueryOutputRow;\r\n id: string;\r\n datasetId: number;\r\n showNoResultsMessage: boolean;\r\n noResultsText: string;\r\n\r\n imageLocation: string = environment.ImageLocation;\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n languageCode: string;\r\n\r\n treeControl: NestedTreeControl = new NestedTreeControl((node) => node.Children);\r\n treeDataSource: MatTreeNestedDataSource = new MatTreeNestedDataSource();\r\n\r\n displayTree: boolean = false;\r\n get isTreeData(): boolean {\r\n return this.treeDataSource !== null;\r\n }\r\n\r\n fieldWidth(idx: number, node: TreeNode): string {\r\n if (this.headers[idx].width > 0) {\r\n return this.headers[idx].width + 'px';\r\n }\r\n\r\n let otherFieldsWidth: number = 0;\r\n this.headers.forEach((h) => {\r\n otherFieldsWidth += h.width;\r\n });\r\n\r\n let level: number = 0;\r\n if (node) {\r\n level = node.Level;\r\n }\r\n\r\n const availableWidth: number = 540 - 25 - 10 * level;\r\n\r\n return otherFieldsWidth < availableWidth ? availableWidth - otherFieldsWidth + 'px' : '0';\r\n }\r\n\r\n fieldAlignment(idx: number): string {\r\n if (this.headers[idx].alignment && this.headers[idx].alignment !== '') {\r\n return this.headers[idx].alignment;\r\n }\r\n\r\n return 'auto';\r\n }\r\n\r\n treeNodeHasChild = (_: number, node: TreeNode) => !!node.Children && node.Children.length > 0;\r\n\r\n constructor(\r\n private _globalService: GlobalService,\r\n private _formService: FormService,\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2,\r\n private _router: Router,\r\n private _pageService: PageService,\r\n private _sharedService: SharedService,\r\n private _userService: UserService\r\n ) {\r\n this.currencyFormat = new Intl.NumberFormat(this._globalService.getLanguage(), {\r\n // style: \"currency\",\r\n // currency: ???,\r\n // currencyDisplay: \"symbol\"\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2,\r\n });\r\n\r\n this.dateFormat = new Intl.DateTimeFormat(this._globalService.getLanguage(), {\r\n month: '2-digit',\r\n day: '2-digit',\r\n year: 'numeric',\r\n });\r\n\r\n this.timeFormat = new Intl.DateTimeFormat(this._globalService.getLanguage(), {\r\n hour12: true,\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n });\r\n\r\n this.dateTimeFormat = new Intl.DateTimeFormat(this._globalService.getLanguage(), {\r\n hour12: true,\r\n month: '2-digit',\r\n day: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n });\r\n }\r\n\r\n processResultSet(resultSet: DataQueryResult): void {\r\n this.languageCode = this._globalService.getLanguageCode();\r\n this.showHeader = resultSet.HeaderRow;\r\n this.showTotal = resultSet.TotalRow;\r\n this.highlightFirst = resultSet.FirstColumn;\r\n this.highlightLast = resultSet.LastColumn;\r\n this.bandedRows = resultSet.BandedRows;\r\n this.bandedColumns = resultSet.BandedColumns;\r\n this.id = resultSet.Id;\r\n this.datasetId = resultSet.DataSetIndex;\r\n this.showNoResultsMessage = resultSet.ShowNoResultsMessage;\r\n this.noResultsText = resultSet.NoResultsText;\r\n\r\n if (resultSet.QueryResults.length === 0 && !resultSet.QueryResultsTree) {\r\n if (resultSet.ShowHeaderWhenNoResults) {\r\n this.setupHeaders(resultSet.Details);\r\n } else {\r\n this.showHeader = false;\r\n }\r\n } else {\r\n this.setupHeaders(resultSet.Details);\r\n }\r\n\r\n if (resultSet.QueryResultsTree) {\r\n this.treeDataSource.data = [resultSet.QueryResultsTree];\r\n\r\n let count: number = 0;\r\n if (resultSet.QueryResults.length > 0) {\r\n count = resultSet.QueryResults[0].FieldValues.length;\r\n }\r\n this.setupTreeNodes(resultSet.QueryResultsTree, resultSet, count);\r\n\r\n this.displayTree = true;\r\n } else {\r\n this.treeDataSource = null;\r\n }\r\n\r\n let columnCount: number = 0;\r\n if (resultSet.QueryResults.length > 0) {\r\n columnCount = resultSet.QueryResults[0].FieldValues.length;\r\n }\r\n\r\n for (const data of resultSet.QueryResults) {\r\n const currentRow: DataQueryOutputRow = new DataQueryOutputRow();\r\n currentRow.columns = [];\r\n for (let i = 0; i < columnCount; ++i) {\r\n const currentColumn: DataQueryOutputColumn = new DataQueryOutputColumn();\r\n currentColumn.imageWidth = -1;\r\n currentColumn.imageHeight = -1;\r\n switch (resultSet.Details[i].DetailType) {\r\n case 'IOString':\r\n currentColumn.value = data.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.name = resultSet.Details[i].ColumnName;\r\n currentColumn.specialType = 'iostring';\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'IOStringRequired':\r\n currentColumn.value = data.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.name = resultSet.Details[i].ColumnName;\r\n currentColumn.specialType = 'iostringrequired';\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'FieldMoney':\r\n currentColumn.value = this.currencyFormat.format(data.FieldValues[i]);\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'FieldString':\r\n if (resultSet.Details[i].ReferenceSortOrder > 0) {\r\n const target: DataQueryOutputLinkTarget = this.parseDestination(data.FieldValues, resultSet.Details, i);\r\n currentColumn.isModal = target.isModal;\r\n if (target.route.substring(0, 4) === 'http') {\r\n currentColumn.destinationRoute = target.route;\r\n currentColumn.linkTarget = 'anchorUrl';\r\n } else if (target.route.substring(0, 11) === 'filestream/') {\r\n currentColumn.destinationRoute = target.params;\r\n currentColumn.destinationRouteParams = target.route.substring(target.route.indexOf('/') + 1);\r\n currentColumn.specialType = target.streamType;\r\n currentColumn.linkTarget = 'filestream/string';\r\n } else if (target.route.substring(0, 10) === 'dataquery/') {\r\n currentColumn.destinationRoute = '/';\r\n currentColumn.destinationRouteParams = target.params;\r\n currentColumn.linkTarget = 'dataquery/string';\r\n } else {\r\n currentColumn.destinationRoute = `/${this.languageCode}/${target.route.toLowerCase()}`;\r\n currentColumn.destinationRouteParams = target.params;\r\n currentColumn.linkTarget = 'anchor';\r\n }\r\n }\r\n currentColumn.value = data.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'FieldDate':\r\n const d: Date = new Date(data.FieldValues[i]);\r\n if (d.getFullYear() > 1900) {\r\n currentColumn.value = this.dateFormat.format(d);\r\n } else {\r\n currentColumn.value = '';\r\n }\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'FieldTime':\r\n const t: Date = new Date(data.FieldValues[i]);\r\n currentColumn.value = this.timeFormat.format(t);\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'FieldDateTime':\r\n const dt: Date = new Date(data.FieldValues[i]);\r\n if (dt.getFullYear() > 1900) {\r\n currentColumn.value = this.dateTimeFormat.format(dt);\r\n } else {\r\n currentColumn.value = '';\r\n }\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'FieldNumber':\r\n currentColumn.value = data.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'TargetFilestream':\r\n case 'TargetRelativeURL':\r\n case 'TargetURL':\r\n case 'TargetSQLAction':\r\n break;\r\n case 'FieldImage':\r\n if (resultSet.Details[i].ReferenceSortOrder > 0) {\r\n const target: DataQueryOutputLinkTarget = this.parseDestination(data.FieldValues, resultSet.Details, i);\r\n currentColumn.isModal = target.isModal;\r\n if (target.route.substring(0, 4) === 'http') {\r\n currentColumn.destinationRoute = target.route;\r\n currentColumn.linkTarget = 'imageUrl';\r\n } else if (target.route.substring(0, 11) === 'filestream/') {\r\n currentColumn.destinationRoute = target.params;\r\n currentColumn.destinationRouteParams = target.route.substring(target.route.indexOf('/') + 1);\r\n currentColumn.specialType = target.streamType;\r\n currentColumn.linkTarget = 'filestream/image';\r\n } else if (target.route.substring(0, 10) === 'dataquery/') {\r\n currentColumn.destinationRoute = '/';\r\n currentColumn.destinationRouteParams = target.params;\r\n currentColumn.linkTarget = 'dataquery/image';\r\n } else {\r\n currentColumn.destinationRoute = `/${this.languageCode}/${target.route.toLowerCase()}`;\r\n currentColumn.destinationRouteParams = target.params;\r\n currentColumn.linkTarget = 'image';\r\n }\r\n }\r\n currentColumn.value = data.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.imageWidth = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n case 'FieldFilestream':\r\n currentColumn.specialType = resultSet.Details[i].FilestreamType.toLowerCase();\r\n currentColumn.value = data.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.imageWidth = resultSet.Details[i].ImageWidth;\r\n currentColumn.imageHeight = resultSet.Details[i].ImageHeight;\r\n currentRow.columns.push(currentColumn);\r\n break;\r\n default:\r\n currentColumn.value = data.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n currentRow.columns.push(currentColumn);\r\n }\r\n }\r\n\r\n this.rows.push(currentRow);\r\n }\r\n\r\n if (this.showTotal && this.rows.length > 0) {\r\n this.footer = this.rows.pop();\r\n }\r\n }\r\n\r\n executeLink(column: DataQueryOutputColumn, fieldIndex: number | null = null, control: LinkBaseComponent = null): void {\r\n if (column.isModal) {\r\n if (control) {\r\n control.busy = true;\r\n }\r\n switch (column.linkTarget) {\r\n case 'anchor':\r\n case 'image':\r\n this.showModal(column.destinationRoute, column.destinationRouteParams, control);\r\n break;\r\n case 'anchorUrl':\r\n case 'imageUrl':\r\n this._router.navigateByUrl(column.destinationRoute);\r\n break;\r\n case 'filestream/string':\r\n case 'filestream/image':\r\n this.getFilestream(column.destinationRoute, column.destinationRouteParams, column.specialType);\r\n break;\r\n case 'dataquery/image':\r\n case 'dataquery/string':\r\n this.showModal(column.destinationRoute, column.destinationRouteParams, control);\r\n break;\r\n }\r\n } else {\r\n switch (column.linkTarget) {\r\n case 'anchor':\r\n case 'image':\r\n this._router.navigate([column.destinationRoute], {\r\n queryParams: column.destinationRouteParams,\r\n });\r\n break;\r\n case 'anchorUrl':\r\n case 'imageUrl':\r\n this._router.navigateByUrl(column.destinationRoute);\r\n break;\r\n case 'filestream/string':\r\n case 'filestream/image':\r\n this.getFilestream(column.destinationRoute, column.destinationRouteParams, column.specialType);\r\n break;\r\n case 'dataquery/image':\r\n case 'dataquery/string':\r\n this.executeDataQuery(column.destinationRouteParams, fieldIndex);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n executeDataQuery(dq: string, idx: number): void {\r\n if (!dq || dq === '') {\r\n return;\r\n }\r\n\r\n let invalidInput: boolean = false;\r\n const row: DataQueryOutputRow = this.rows[0];\r\n row.columns.forEach((col: DataQueryOutputColumn) => {\r\n if (col.name && col.name !== '') {\r\n const field = this._elementRef.nativeElement.querySelector(`#${col.name}_${idx}`);\r\n if (field) {\r\n if (field.required && field.value === '') {\r\n invalidInput = true;\r\n this._renderer.setStyle(field, 'border-color', 'red');\r\n this._renderer.setStyle(field, 'border-style', 'solid');\r\n return;\r\n }\r\n this._renderer.setStyle(field, 'border-color', '');\r\n this._renderer.setStyle(field, 'border-style', '');\r\n\r\n dq = dq.replace('!' + col.name + '!', field.value);\r\n }\r\n }\r\n });\r\n\r\n if (!invalidInput) {\r\n this._formService.executeDataQuery(dq, {}).subscribe(() => {\r\n this.refreshPage.emit(true);\r\n });\r\n }\r\n }\r\n\r\n private getPageId(url: string): string {\r\n const startIdx: number = url.indexOf('/page/');\r\n if (startIdx > 0) {\r\n const endIdx: number = url.indexOf('?');\r\n if (endIdx > 0) {\r\n return url.substring(startIdx + 6, endIdx - startIdx);\r\n } else {\r\n return url.substring(startIdx + 6);\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n private constructFormData(pageId: string, params: object): any {\r\n const formData: { [id: string]: string } = {};\r\n formData['objectId'] = pageId;\r\n formData['objectType'] = 'page';\r\n formData['LanguageId'] = this._globalService.getLanguage();\r\n\r\n Object.keys(params).forEach((key: string) => {\r\n formData['QueryString-' + key.toLowerCase()] = params[key];\r\n });\r\n\r\n const user: ValidatedUser = this._userService.getCurrentUser();\r\n if (user) {\r\n formData['loginContext'] = user.UserId;\r\n }\r\n\r\n return formData;\r\n }\r\n\r\n async showModal(destination: string, params: object, callingControl: LinkBaseComponent = null): Promise {\r\n const pageId: string = this.getPageId(destination);\r\n const formData = this.constructFormData(pageId, params);\r\n const pageHeader: SharedHeader =\r\n await lastValueFrom(this._sharedService.getHeader(pageId)).then((header: SharedHeader) => header);\r\n const pageDetails: PageDetail[] =\r\n await lastValueFrom(this._pageService.getDetails(pageId)).then((summary: PageSummary) => summary.Details);\r\n const dataQueryId: string = pageDetails[0].DataQueryId;\r\n const formId: string = pageDetails[0].FormId;\r\n\r\n const results =\r\n await lastValueFrom(this._formService.submitDataQuery(formId, dataQueryId, formData)).then((r: DataQueryResult[]) => r);\r\n if (callingControl) {\r\n callingControl.busy = false;\r\n }\r\n\r\n this.showModalResults.emit({\r\n title: pageHeader.Title,\r\n dataQueryResults: results,\r\n });\r\n }\r\n\r\n getFilestream(fileName: string, streamType: string, fileType: string): void {\r\n const pdfFile: boolean = fileName.toLowerCase().endsWith('.pdf');\r\n this._formService.getFilestream(fileName, fileType, streamType, pdfFile).subscribe(\r\n (response: any) => {\r\n if (!response) {\r\n alert('File does not exist.');\r\n }\r\n\r\n if (pdfFile) {\r\n // for some reason following code gives file that requires password?\r\n // const buffer: Buffer = Buffer.from(response, \"base64\");\r\n // const contents = buffer.toString(\"binary\");\r\n // const blobContents: Blob = new Blob([contents], { type: \"application/octet-stream\"});\r\n\r\n const blobContents: Blob = this.b64toBlob(response, 'application/octet-stream', 512);\r\n saveAs(blobContents, fileName);\r\n } else {\r\n saveAs(response, fileName);\r\n }\r\n },\r\n (error: any) => {\r\n alert('Error fetching file.');\r\n }\r\n );\r\n }\r\n\r\n b64toBlob(b64Data: string, contentType: string, sliceSize: number): Blob {\r\n contentType = contentType || '';\r\n sliceSize = sliceSize || 512;\r\n\r\n const byteCharacters: string = atob(b64Data);\r\n const byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice: string = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n const byteArray: Uint8Array = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n const blob: Blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n\r\n private setupHeaders(details: DataQueryDetail[]): void {\r\n for (const detail of details) {\r\n if (!detail.DetailType.startsWith('Target')) {\r\n if (detail.DetailType.toLowerCase() !== 'treerecid' && detail.DetailType.toLowerCase() !== 'treeparentrecid') {\r\n this.headers.push({\r\n text: detail.Title,\r\n alignment: detail.Alignment,\r\n width: detail.Width,\r\n sortable: detail.Sortable,\r\n datatype: detail.DataType,\r\n requiredField: detail.DetailType.toLowerCase() === 'iostringrequired',\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private parseDestination(fieldValues: any[], columnDefinitions: DataQueryDetail[], sourceIndex: number): DataQueryOutputLinkTarget {\r\n const refSortOrder: number = columnDefinitions[sourceIndex].ReferenceSortOrder;\r\n if (refSortOrder === 0) {\r\n return null;\r\n } else {\r\n for (let i = 0; i < columnDefinitions.length; ++i) {\r\n if (columnDefinitions[i].SortOrder === refSortOrder) {\r\n if (columnDefinitions[i].DetailType === 'TargetRelativeURL') {\r\n const target: DataQueryOutputLinkTarget = this.parseUrl(fieldValues[i]);\r\n target.params['dt'] = 1;\r\n target.isModal = columnDefinitions[i].IsModal;\r\n return target;\r\n } else if (columnDefinitions[i].DetailType === 'TargetURL') {\r\n const target: DataQueryOutputLinkTarget = this.parseUrl(fieldValues[i]);\r\n target.isModal = columnDefinitions[i].IsModal;\r\n return target;\r\n } else if (columnDefinitions[i].DetailType === 'TargetSQLAction') {\r\n return {\r\n route: 'dataquery/',\r\n params: fieldValues[i],\r\n streamType: '',\r\n isModal: columnDefinitions[i].IsModal,\r\n };\r\n } else {\r\n return {\r\n route: 'filestream/' + columnDefinitions[i].FilestreamType,\r\n params: fieldValues[i],\r\n streamType: columnDefinitions[i].FilestreamTypeId,\r\n isModal: columnDefinitions[i].IsModal,\r\n };\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n private parseUrl(url: string): DataQueryOutputLinkTarget {\r\n let idx: number;\r\n\r\n const linkTarget: DataQueryOutputLinkTarget = new DataQueryOutputLinkTarget();\r\n\r\n if (url.startsWith('http')) {\r\n linkTarget.route = url;\r\n linkTarget.params = {};\r\n return linkTarget;\r\n }\r\n\r\n idx = url.indexOf('?');\r\n if (idx > 0) {\r\n linkTarget.route = url.substring(0, idx);\r\n url = url.substring(idx + 1);\r\n } else {\r\n linkTarget.route = url;\r\n linkTarget.params = {};\r\n return linkTarget;\r\n }\r\n\r\n linkTarget.params = {};\r\n const params: string[] = url.split('&');\r\n params.forEach((param: string) => {\r\n idx = param.indexOf('=');\r\n linkTarget.params[param.substring(0, idx)] = param.substring(idx + 1);\r\n });\r\n\r\n return linkTarget;\r\n }\r\n\r\n onSorted(id: string, datasetId: number, $event: ColumnSortedEvent): void {\r\n if (this.id === id && this.datasetId === $event.tableId && this.id === $event.queryId) {\r\n this.rows.sort((a: DataQueryOutputRow, b: DataQueryOutputRow) => {\r\n if ($event.sortDirection === 'desc') {\r\n if (a.columns[$event.sortColumn].value < b.columns[$event.sortColumn].value) {\r\n return -1;\r\n }\r\n if (a.columns[$event.sortColumn].value > b.columns[$event.sortColumn].value) {\r\n return 1;\r\n }\r\n return 0;\r\n } else {\r\n if (a.columns[$event.sortColumn].value > b.columns[$event.sortColumn].value) {\r\n return -1;\r\n }\r\n if (a.columns[$event.sortColumn].value < b.columns[$event.sortColumn].value) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private setupTreeNodes(tree: TreeNode, resultSet: DataQueryResult, columnCount: number): void {\r\n this.processTreeNodeData(tree, resultSet, columnCount);\r\n tree.Children.forEach((node: TreeNode) => {\r\n this.setupTreeNodes(node, resultSet, columnCount);\r\n });\r\n }\r\n\r\n private processTreeNodeData(node: TreeNode, resultSet: DataQueryResult, columnCount: number): void {\r\n node['columns'] = [];\r\n for (let i = 0; i < columnCount; ++i) {\r\n const currentColumn: DataQueryOutputColumn = new DataQueryOutputColumn();\r\n currentColumn.imageWidth = -1;\r\n currentColumn.imageHeight = -1;\r\n switch (resultSet.Details[i].DetailType) {\r\n case 'IOString':\r\n currentColumn.value = node.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.name = resultSet.Details[i].ColumnName;\r\n currentColumn.specialType = 'iostring';\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'IOStringRequired':\r\n currentColumn.value = node.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.name = resultSet.Details[i].ColumnName;\r\n currentColumn.specialType = 'iostringrequired';\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'FieldMoney':\r\n currentColumn.value = this.currencyFormat.format(node.FieldValues[i]);\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'FieldString':\r\n if (resultSet.Details[i].ReferenceSortOrder > 0) {\r\n const target: DataQueryOutputLinkTarget = this.parseDestination(node.FieldValues, resultSet.Details, i);\r\n currentColumn.isModal = target.isModal;\r\n if (target.route.substring(0, 4) === 'http') {\r\n currentColumn.destinationRoute = target.route;\r\n currentColumn.linkTarget = 'anchorUrl';\r\n } else if (target.route.substring(0, 11) === 'filestream/') {\r\n currentColumn.destinationRoute = target.params;\r\n currentColumn.destinationRouteParams = target.route.substring(target.route.indexOf('/') + 1);\r\n currentColumn.specialType = target.streamType;\r\n currentColumn.linkTarget = 'filestream/string';\r\n } else if (target.route.substring(0, 10) === 'dataquery/') {\r\n currentColumn.destinationRoute = '/';\r\n currentColumn.destinationRouteParams = target.params;\r\n currentColumn.linkTarget = 'dataquery/string';\r\n } else {\r\n currentColumn.destinationRoute = `/${this.languageCode}/${target.route.toLowerCase()}`;\r\n currentColumn.destinationRouteParams = target.params;\r\n currentColumn.linkTarget = 'anchor';\r\n }\r\n }\r\n currentColumn.value = node.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'FieldDate':\r\n const d: Date = new Date(node.FieldValues[i]);\r\n if (d.getFullYear() > 1900) {\r\n currentColumn.value = this.dateFormat.format(d);\r\n } else {\r\n currentColumn.value = '';\r\n }\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'FieldTime':\r\n const t: Date = new Date(node.FieldValues[i]);\r\n currentColumn.value = this.timeFormat.format(t);\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'FieldDateTime':\r\n const dt: Date = new Date(node.FieldValues[i]);\r\n if (dt.getFullYear() > 1900) {\r\n currentColumn.value = this.dateTimeFormat.format(dt);\r\n } else {\r\n currentColumn.value = '';\r\n }\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'FieldNumber':\r\n currentColumn.value = node.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'TargetFilestream':\r\n case 'TargetRelativeURL':\r\n case 'TargetURL':\r\n case 'TargetSQLAction':\r\n case 'TreeRecId':\r\n case 'TreeParentRecId':\r\n break;\r\n case 'FieldImage':\r\n if (resultSet.Details[i].ReferenceSortOrder > 0) {\r\n const target: DataQueryOutputLinkTarget = this.parseDestination(node.FieldValues, resultSet.Details, i);\r\n currentColumn.isModal = target.isModal;\r\n if (target.route.substring(0, 4) === 'http') {\r\n currentColumn.destinationRoute = target.route;\r\n currentColumn.linkTarget = 'imageUrl';\r\n } else if (target.route.substring(0, 11) === 'filestream/') {\r\n currentColumn.destinationRoute = target.params;\r\n currentColumn.destinationRouteParams = target.route.substring(target.route.indexOf('/') + 1);\r\n currentColumn.specialType = target.streamType;\r\n currentColumn.linkTarget = 'filestream/image';\r\n } else if (target.route.substring(0, 10) === 'dataquery/') {\r\n currentColumn.destinationRoute = '/';\r\n currentColumn.destinationRouteParams = target.params;\r\n currentColumn.linkTarget = 'dataquery/image';\r\n } else {\r\n currentColumn.destinationRoute = `/${this.languageCode}/${target.route.toLowerCase()}`;\r\n currentColumn.destinationRouteParams = target.params;\r\n currentColumn.linkTarget = 'image';\r\n }\r\n }\r\n currentColumn.value = node.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.imageWidth = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\r\n break;\r\n case 'FieldFilestream':\r\n currentColumn.specialType = resultSet.Details[i].FilestreamType.toLowerCase();\r\n currentColumn.value = node.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.imageWidth = resultSet.Details[i].ImageWidth;\r\n currentColumn.imageHeight = resultSet.Details[i].ImageHeight;\r\n node['columns'].push(currentColumn);\r\n break;\r\n default:\r\n currentColumn.value = node.FieldValues[i];\r\n currentColumn.alignment = resultSet.Details[i].Alignment;\r\n currentColumn.width = resultSet.Details[i].Width;\r\n node['columns'].push(currentColumn);\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 {{header.text}}\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 {{column.value}}\r\n \r\n -1\">\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 {{column.value}}\r\n \r\n -1\">\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 0 || showHeader\" sortable-table (sorted)=\"onSorted(id, datasetId, $event)\" class=\"resultsGrid\">\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 {{header.text}}*\r\n \r\n {{header.text}}*\r\n
    \r\n \r\n \"\"\r\n 0 ? column.imageHeight + 'px' : -1,\r\n 'width': column.imageWidth > 0 ? column.imageWidth + 'px' : -1}\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{column.value}}\r\n \r\n -1\">\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 {{noResultsText}}\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"data-query-results-heading\",\r\n templateUrl: \"./data-query-results-heading.component.html\",\r\n styleUrls: [\"./data-query-results-heading.component.less\"]\r\n})\r\nexport class DataQueryResultsHeadingComponent {\r\n heading: SafeHtml;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n setHeading(heading: string): void {\r\n this.heading = this.sanitizer.bypassSecurityTrustHtml(heading);\r\n }\r\n}\r\n","
    \r\n

    \r\n \r\n

    \r\n","import { Component, Output, EventEmitter, ElementRef, Renderer2 } from \"@angular/core\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { DataQueryResult } from \"@models/data-query-result\";\r\nimport { DataQueryResultRow } from \"@models/data-query-result-row\";\r\nimport { DataQueryDetail } from \"@models/data-query-detail\";\r\nimport { FormService } from \"@services/form.service\";\r\nimport { ModalDataQueryConfigs } from \"@models/modal-data-query-configs\";\r\n\r\nclass ResultRow {\r\n label: string;\r\n value: string;\r\n alignment: string;\r\n specialType: string;\r\n imageWidth: number;\r\n imageHeight: number;\r\n name: string;\r\n width: number;\r\n\r\n linkTarget: string;\r\n destinationRoute: string;\r\n destinationRouteParams: any;\r\n}\r\n\r\nclass LinkTarget {\r\n route: string;\r\n params: any;\r\n streamType: string;\r\n}\r\n\r\n@Component({\r\n selector: \"data-query-results-list\",\r\n templateUrl: \"./data-query-results-list.component.html\",\r\n styleUrls: [\"./data-query-results-list.component.less\"]\r\n})\r\nexport class DataQueryResultsListComponent {\r\n @Output() refreshPage = new EventEmitter();\r\n @Output() showModalResults: EventEmitter = new EventEmitter();\r\n\r\n private currencyFormat: Intl.NumberFormat;\r\n private dateFormat: Intl.DateTimeFormat;\r\n private timeFormat: Intl.DateTimeFormat;\r\n private dateTimeFormat: Intl.DateTimeFormat;\r\n rows: ResultRow[] = [];\r\n showNoResultsMessage: boolean;\r\n noResultsText: string;\r\n\r\n imageLocation: string = environment.ImageLocation;\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n languageCode: string;\r\n listType: string;\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private elementRef: ElementRef,\r\n private formService: FormService,\r\n private renderer: Renderer2,\r\n public sanitizer: DomSanitizer\r\n ) {\r\n this.currencyFormat = new Intl.NumberFormat(this.globalService.getLanguage(), {\r\n // style: \"currency\",\r\n // currency: ???,\r\n // currencyDisplay: \"symbol\"\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2\r\n });\r\n\r\n this.dateFormat = new Intl.DateTimeFormat(this.globalService.getLanguage(), {\r\n month: \"2-digit\",\r\n day: \"2-digit\",\r\n year: \"numeric\"\r\n });\r\n\r\n this.timeFormat = new Intl.DateTimeFormat(this.globalService.getLanguage(), {\r\n hour12: true,\r\n hour: \"2-digit\",\r\n minute: \"2-digit\"\r\n });\r\n\r\n this.dateTimeFormat = new Intl.DateTimeFormat(this.globalService.getLanguage(), {\r\n hour12: true,\r\n month: \"2-digit\",\r\n day: \"2-digit\",\r\n year: \"numeric\",\r\n hour: \"2-digit\",\r\n minute: \"2-digit\"\r\n });\r\n }\r\n\r\n processResultSet(resultSet: DataQueryResult): void {\r\n this.languageCode = this.globalService.getLanguageCode();\r\n this.listType = resultSet.ListType;\r\n\r\n let fieldCount: number = 0;\r\n if (resultSet.QueryResults.length > 0) {\r\n fieldCount = resultSet.QueryResults[0].FieldValues.length;\r\n }\r\n\r\n this.showNoResultsMessage = resultSet.ShowNoResultsMessage;\r\n this.noResultsText = resultSet.NoResultsText;\r\n\r\n for (let i = 0; i < fieldCount; ++i) {\r\n const row = new ResultRow();\r\n row.label = resultSet.Details[i].Title;\r\n row.alignment = resultSet.Details[i].Alignment;\r\n row.imageWidth = -1;\r\n row.imageHeight = -1;\r\n\r\n const data: DataQueryResultRow = resultSet.QueryResults[0];\r\n\r\n switch (resultSet.Details[i].DetailType) {\r\n case \"IOString\":\r\n row.value = data.FieldValues[i];\r\n row.alignment = resultSet.Details[i].Alignment;\r\n row.name = resultSet.Details[i].ColumnName;\r\n row.width = resultSet.Details[i].Width;\r\n row.specialType = \"iostring\";\r\n break;\r\n case \"IOStringRequired\":\r\n row.value = data.FieldValues[i];\r\n row.alignment = resultSet.Details[i].Alignment;\r\n row.name = resultSet.Details[i].ColumnName;\r\n row.specialType = \"iostringrequired\";\r\n row.width = resultSet.Details[i].Width;\r\n break;\r\n case \"FieldMoney\":\r\n row.value = this.currencyFormat.format(data.FieldValues[i]);\r\n row.width = resultSet.Details[i].Width;\r\n break;\r\n case \"FieldString\":\r\n if (resultSet.Details[i].ReferenceSortOrder > 0) {\r\n const target: LinkTarget = this.parseDestination(data, resultSet.Details, i);\r\n if (target.route === \"\") {\r\n row.linkTarget = \"\";\r\n } else {\r\n if (target.route.substring(0, 4) === \"http\") {\r\n row.destinationRoute = target.route;\r\n row.linkTarget = \"anchorUrl\";\r\n } else if (target.route.substring(0, 11) === \"filestream/\") {\r\n row.destinationRoute = target.params;\r\n row.destinationRouteParams = target.route.substring(target.route.indexOf(\"/\") + 1);\r\n row.specialType = target.streamType;\r\n row.linkTarget = \"filestream/string\";\r\n } else if (target.route.substring(0, 10) === \"dataquery/\") {\r\n row.destinationRoute = \"/\";\r\n row.destinationRouteParams = target.params;\r\n row.linkTarget = \"dataquery/string\";\r\n } else {\r\n row.destinationRoute = `/${this.languageCode}/${target.route.toLowerCase()}`;\r\n row.destinationRouteParams = target.params;\r\n row.linkTarget = \"anchor\";\r\n }\r\n }\r\n }\r\n row.width = resultSet.Details[i].Width;\r\n row.value = data.FieldValues[i];\r\n break;\r\n case \"FieldDate\":\r\n const d: Date = new Date(data.FieldValues[i]);\r\n if (d.getFullYear() > 1900) {\r\n row.value = this.dateFormat.format(d);\r\n } else {\r\n row.value = \"\";\r\n }\r\n row.width = resultSet.Details[i].Width;\r\n break;\r\n case \"FieldTime\":\r\n const t: Date = new Date(data.FieldValues[i]);\r\n row.value = this.timeFormat.format(t);\r\n row.width = resultSet.Details[i].Width;\r\n break;\r\n case \"FieldDateTime\":\r\n const dt: Date = new Date(data.FieldValues[i]);\r\n if (dt.getFullYear() > 1900) {\r\n row.value = this.dateTimeFormat.format(dt);\r\n } else {\r\n row.value = \"\";\r\n }\r\n row.width = resultSet.Details[i].Width;\r\n break;\r\n case \"FieldNumber\":\r\n row.width = resultSet.Details[i].Width;\r\n row.value = data.FieldValues[i];\r\n break;\r\n case \"TargetFilestream\":\r\n case \"TargetRelativeURL\":\r\n case \"TargetURL\":\r\n case \"TargetSQLAction\":\r\n break;\r\n case \"FieldImage\":\r\n if (resultSet.Details[i].ReferenceSortOrder > 0) {\r\n const target: LinkTarget = this.parseDestination(data, resultSet.Details, i);\r\n if (target.route === \"\") {\r\n row.linkTarget = \"\";\r\n } else {\r\n if (target.route.substring(0, 4) === \"http\") {\r\n row.destinationRoute = target.route;\r\n row.linkTarget = \"imageUrl\";\r\n } else if (target.route.substring(0, 11) === \"filestream/\") {\r\n row.destinationRoute = target.params;\r\n row.destinationRouteParams = target.route.substring(target.route.indexOf(\"/\") + 1);\r\n row.specialType = target.streamType;\r\n row.linkTarget = \"filestream/image\";\r\n } else if (target.route.substring(0, 10) === \"dataquery/\") {\r\n row.destinationRoute = \"/\";\r\n row.destinationRouteParams = target.params;\r\n row.linkTarget = \"dataquery/image\";\r\n } else {\r\n row.destinationRoute = `/${this.languageCode}/${target.route.toLowerCase()}`;\r\n row.destinationRouteParams = target.params;\r\n row.linkTarget = \"image\";\r\n }\r\n }\r\n }\r\n row.imageWidth = resultSet.Details[i].Width;\r\n row.value = data.FieldValues[i];\r\n break;\r\n case \"FieldFilestream\":\r\n row.specialType = resultSet.Details[i].FilestreamType.toLowerCase();\r\n row.value = data.FieldValues[i];\r\n row.imageWidth = resultSet.Details[i].ImageWidth;\r\n row.imageHeight = resultSet.Details[i].ImageHeight;\r\n break;\r\n default:\r\n row.value = data.FieldValues[i];\r\n }\r\n\r\n this.rows.push(row);\r\n }\r\n }\r\n\r\n executeDataQuery(dq: string, idx: number): void {\r\n if (!dq || dq === \"\") {\r\n return; // invalid dataquery\r\n }\r\n\r\n let invalidInput: boolean = false;\r\n this.rows.forEach((row: ResultRow) => {\r\n if (row.name && row.name !== \"\") {\r\n const field = this.elementRef.nativeElement.querySelector(`#${row.name}_${idx}`);\r\n if (field) {\r\n if (field.required && field.value === \"\") {\r\n invalidInput = true;\r\n this.renderer.setStyle(field, \"border-color\", \"red\");\r\n this.renderer.setStyle(field, \"border-style\", \"solid\");\r\n return;\r\n }\r\n this.renderer.setStyle(field, \"border-color\", \"\");\r\n this.renderer.setStyle(field, \"border-style\", \"\");\r\n\r\n\r\n dq = dq.replace(\"!\" + row.name + \"!\", field.value);\r\n }\r\n }\r\n });\r\n\r\n if (!invalidInput) {\r\n this.formService.executeDataQuery(dq, {}).subscribe(() => {\r\n this.refreshPage.emit(true);\r\n });\r\n }\r\n }\r\n\r\n private parseDestination(data: DataQueryResultRow, columnDefinitions: DataQueryDetail[], sourceIndex: number): LinkTarget {\r\n const refSortOrder: number = columnDefinitions[sourceIndex].ReferenceSortOrder;\r\n if (refSortOrder === 0) {\r\n return null;\r\n } else {\r\n for (let i = 0; i < columnDefinitions.length; ++i) {\r\n if (columnDefinitions[i].SortOrder === refSortOrder) {\r\n // if (data.FieldValues[i].startsWith(\"http\")) {\r\n if (columnDefinitions[i].DetailType === \"TargetRelativeURL\") {\r\n const target: LinkTarget = this.parseUrl(data.FieldValues[i]);\r\n target.params[\"dt\"] = 1;\r\n return target;\r\n } else if (columnDefinitions[i].DetailType === \"TargetURL\") {\r\n return this.parseUrl(data.FieldValues[i]);\r\n } else if (columnDefinitions[i].DetailType === \"TargetSQLAction\") {\r\n return {\r\n route: \"dataquery/\",\r\n params: data.FieldValues[i],\r\n streamType: \"\"\r\n };\r\n } else {\r\n return {\r\n route: \"filestream/\" + columnDefinitions[i].FilestreamType,\r\n params: data.FieldValues[i],\r\n streamType: columnDefinitions[i].FilestreamTypeId\r\n };\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n private parseUrl(url: string): LinkTarget {\r\n let idx: number;\r\n\r\n const linkTarget: LinkTarget = new LinkTarget();\r\n\r\n if (url.startsWith(\"http\")) {\r\n linkTarget.route = url;\r\n linkTarget.params = {};\r\n return linkTarget;\r\n }\r\n\r\n idx = url.indexOf(\"?\");\r\n if (idx > 0) {\r\n linkTarget.route = url.substring(0, idx);\r\n url = url.substring(idx + 1);\r\n } else {\r\n linkTarget.route = url;\r\n linkTarget.params = {};\r\n return linkTarget;\r\n }\r\n\r\n linkTarget.params = {};\r\n const params: string[] = url.split(\"&\");\r\n params.forEach((param: string) => {\r\n idx = param.indexOf(\"=\");\r\n linkTarget.params[param.substring(0, idx)] = param.substring(idx + 1);\r\n });\r\n\r\n return linkTarget;\r\n }\r\n\r\n getFilestream(fileName: string, streamType: string, fileType: string): void {\r\n this.formService.getFilestream(fileName, fileType, streamType).subscribe(\r\n (response: any) => {\r\n if (!response) {\r\n alert(\"File does not exist.\");\r\n }\r\n\r\n saveAs(response, fileName);\r\n },\r\n (error: any) => {\r\n alert(\"Error fetching file.\");\r\n }\r\n );\r\n }\r\n}\r\n","

    {{noResultsText}}

    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {{row.label}}\r\n \r\n \r\n \r\n \"\" 0 ? row.imageHeight + 'px' : -1,\r\n 'width': row.imageWidth > 0 ? row.imageWidth + 'px' : -1}\" />\r\n \r\n \r\n \r\n {{row.value}}\r\n \r\n \r\n \r\n {{row.value}}\r\n \r\n -1\">\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 {{row.value}}\r\n \r\n \r\n {{row.value}}\r\n \r\n \r\n \r\n \"\"\r\n \r\n \r\n \r\n \r\n {{row.value}}\r\n \r\n \r\n \r\n \r\n {{row.value}}\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 \"\" 0 ? row.imageHeight + 'px' : -1,\r\n 'width': row.imageWidth > 0 ? row.imageWidth + 'px' : -1}\" />\r\n \r\n \r\n \r\n {{row.value}}\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 {{row.value}}\r\n \r\n \r\n {{row.value}}\r\n \r\n \r\n \r\n {{row.value}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n","import {\r\n Component,\r\n OnChanges,\r\n Input,\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n ComponentFactory,\r\n ComponentRef,\r\n Output,\r\n EventEmitter,\r\n} from \"@angular/core\";\r\n\r\nimport { DataQueryResult } from \"@models/data-query-result\";\r\nimport { DataQueryResultsGridComponent } from \"../data-query-results-grid/data-query-results-grid.component\";\r\nimport { DataQueryResultsHeadingComponent } from \"../data-query-results-heading/data-query-results-heading.component\";\r\nimport { DataQueryResultsListComponent } from \"../data-query-results-list/data-query-results-list.component\";\r\nimport { ModalDataQueryConfigs } from \"@models/modal-data-query-configs\";\r\n\r\n@Component({\r\n selector: \"data-query-results\",\r\n templateUrl: \"./data-query-results.component.html\",\r\n styleUrls: [\"./data-query-results.component.less\"]\r\n})\r\nexport class DataQueryResultsComponent implements OnChanges {\r\n @Input() data: DataQueryResult[] = [];\r\n @Output() refreshPage: EventEmitter = new EventEmitter();\r\n @Output() showModalResults: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef\r\n ) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.data) {\r\n this.processQueryResults();\r\n }\r\n }\r\n\r\n processQueryResults(): void {\r\n this.viewContainerRef.clear();\r\n if (this.data) {\r\n for (const resultSet of this.data) {\r\n if (resultSet.Heading && resultSet.Heading !== \"\") {\r\n this.showHeading(resultSet.Heading);\r\n }\r\n\r\n if (resultSet.OutputType === \"Grid\") {\r\n this.showGrid(resultSet);\r\n } else if (resultSet.OutputType === \"List\") {\r\n this.showList(resultSet);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private showHeading(heading: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(DataQueryResultsHeadingComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setHeading(heading);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showGrid(resultSet: DataQueryResult): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(DataQueryResultsGridComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.refreshPage.subscribe((refreshData: boolean) => {\r\n if (refreshData) {\r\n this.refreshPage.emit(true);\r\n } else {\r\n this.processQueryResults();\r\n }\r\n });\r\n ref.instance.showModalResults.subscribe((configs: ModalDataQueryConfigs) => {\r\n if (configs) {\r\n this.showModalResults.emit(configs);\r\n }\r\n });\r\n ref.instance.processResultSet(resultSet);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showList(resultSet: DataQueryResult): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(DataQueryResultsListComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.refreshPage.subscribe((refreshData: boolean) => {\r\n if (refreshData) {\r\n this.refreshPage.emit(true);\r\n } else {\r\n this.processQueryResults();\r\n }\r\n });\r\n ref.instance.showModalResults.subscribe((configs: ModalDataQueryConfigs) => {\r\n if (configs) {\r\n this.showModalResults.emit(configs);\r\n }\r\n });\r\n ref.instance.processResultSet(resultSet);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatTreeModule } from \"@angular/material/tree\";\r\nimport { RouterModule } from \"@angular/router\";\r\n\r\nimport { SortService } from \"../data-query/sortable-column/sort.service\";\r\nimport { DataQueryResultsGridComponent } from \"./data-query-results-grid/data-query-results-grid.component\";\r\nimport { DataQueryResultsHeadingComponent } from \"./data-query-results-heading/data-query-results-heading.component\";\r\nimport { DataQueryResultsListComponent } from \"./data-query-results-list/data-query-results-list.component\";\r\nimport { DataQueryResultsComponent } from \"./data-query-results/data-query-results.component\";\r\nimport { SortableColumnComponent } from \"./sortable-column/sortable-column.component\";\r\nimport { SortableTableDirective } from \"./sortable-column/sortable-table.directive\";\r\nimport { ImageLinkComponent } from \"./image-link/image-link.component\";\r\nimport { ImageComponent } from \"./image/image.component\";\r\nimport { IOStringComponent } from \"./iostring/iostring.component\";\r\nimport { AnchorComponent } from \"./anchor/anchor.component\";\r\nimport { LinkBaseComponent } from './link-base/link-base.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n DataQueryResultsComponent,\r\n DataQueryResultsHeadingComponent,\r\n DataQueryResultsGridComponent,\r\n DataQueryResultsListComponent,\r\n SortableColumnComponent,\r\n SortableTableDirective,\r\n IOStringComponent,\r\n ImageComponent,\r\n ImageLinkComponent,\r\n AnchorComponent,\r\n LinkBaseComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatTreeModule\r\n ],\r\n exports: [\r\n DataQueryResultsComponent\r\n ],\r\n providers: [\r\n SortService\r\n ]\r\n})\r\nexport class DataQueryModule { }\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { LinkBaseComponent } from \"../link-base/link-base.component\";\r\n\r\n@Component({\r\n selector: \"dq-image-link\",\r\n templateUrl: \"./image-link.component.html\",\r\n styleUrls: [\"./image-link.component.less\"]\r\n})\r\nexport class ImageLinkComponent extends LinkBaseComponent implements OnInit {\r\n @Input() src: string;\r\n @Input() width: number;\r\n @Input() height: number;\r\n\r\n get isValidImage(): boolean {\r\n return this.src && this.src !== '' &&\r\n this.src !== environment.ImageLocation &&\r\n this.src !== environment.LocalImageLocation;\r\n }\r\n\r\n constructor() { super(); }\r\n\r\n ngOnInit() {\r\n const x = this.src;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n\"loading\"\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"dq-image\",\r\n templateUrl: \"./image.component.html\",\r\n styleUrls: [\"./image.component.less\"]\r\n})\r\nexport class ImageComponent {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() src: string;\r\n\r\n constructor() { }\r\n}\r\n","\r\n 0 ? height + 'px' : 'auto'\" />\r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"dq-iostring\",\r\n templateUrl: \"./iostring.component.html\",\r\n styleUrls: [\"./iostring.component.less\"]\r\n})\r\nexport class IOStringComponent implements OnInit {\r\n @Input() value: string;\r\n @Input() size: number;\r\n @Input() id: string;\r\n @Input() index: number;\r\n @Input() required: boolean;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","{{value}}\r\n\r\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"link-base\",\r\n templateUrl: \"./link-base.component.html\",\r\n styleUrls: [\"./link-base.component.less\"]\r\n})\r\nexport class LinkBaseComponent {\r\n @Input() allowLink: boolean = true;\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n private _busy: boolean;\r\n get busy(): boolean {\r\n return this._busy;\r\n }\r\n set busy(b: boolean) {\r\n this._busy = b;\r\n }\r\n\r\n get localImageLocation(): string {\r\n return environment.LocalImageLocation;\r\n }\r\n\r\n constructor() { }\r\n\r\n onClick(): void {\r\n if (!this._busy) {\r\n this._busy = true;\r\n this.select.emit(this);\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject , Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class SortService {\r\n private columnSortedSource: Subject = new Subject();\r\n\r\n columnSorted$: Observable = this.columnSortedSource.asObservable();\r\n\r\n columnSorted(event: ColumnSortedEvent) {\r\n this.columnSortedSource.next(event);\r\n }\r\n}\r\n\r\nexport interface ColumnSortedEvent {\r\n tableId: number;\r\n sortColumn: number;\r\n sortDirection: string;\r\n queryId: string;\r\n}\r\n","import { Component, OnInit, OnDestroy, Input, HostListener } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SortService } from \"./sort.service\";\r\n\r\n@Component({\r\n selector: \"[sortable-column]\",\r\n templateUrl: \"./sortable-column.component.html\",\r\n styleUrls: [\"./sortable-column.component.less\"]\r\n})\r\nexport class SortableColumnComponent implements OnInit, OnDestroy {\r\n private columnSortedSubscription: Subscription;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input(\"sortable-column\") columnIndex: number;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input(\"table-id\") tableId: number;\r\n\r\n // @Input(\"sort-direction\") sortDirection: string = \"\";\r\n sortDirection: string = \"\";\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input(\"query-id\") queryId: string;\r\n\r\n constructor(private sortService: SortService) {}\r\n\r\n @HostListener(\"click\")\r\n sort() {\r\n this.sortDirection = this.sortDirection === \"asc\" ? \"desc\" : \"asc\";\r\n this.sortService.columnSorted({ tableId: this.tableId, sortColumn: this.columnIndex, sortDirection: this.sortDirection,\r\n queryId: this.queryId });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.columnSortedSubscription = this.sortService.columnSorted$.subscribe(event => {\r\n if (this.tableId !== event.tableId || this.columnIndex !== event.sortColumn) {\r\n this.sortDirection = \"\";\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.columnSortedSubscription) {\r\n this.columnSortedSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { Directive, OnInit, OnDestroy, EventEmitter, Output } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { SortService, ColumnSortedEvent } from \"./sort.service\";\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: \"[sortable-table]\"\r\n})\r\nexport class SortableTableDirective implements OnInit, OnDestroy {\r\n constructor(private sortService: SortService) {}\r\n\r\n private columnSortedSubscription: Subscription;\r\n\r\n @Output() sorted: EventEmitter = new EventEmitter();\r\n\r\n ngOnInit(): void {\r\n this.columnSortedSubscription = this.sortService.columnSorted$.subscribe(event => {\r\n this.sorted.emit(event);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.columnSortedSubscription) {\r\n this.columnSortedSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { PlatformLocation } from \"@angular/common\";\r\n\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { UserService } from \"@services/user.service\";\r\nimport { UsnrDomain } from \"@models/usnr-domain\";\r\nimport { ValidatedUser } from \"@models/validated-user\";\r\nimport { environment } from \"@environment\";\r\n\r\n@Injectable()\r\nexport class DomainAndUserGuard implements CanActivate {\r\n constructor(\r\n private platformLocation: PlatformLocation,\r\n private router: Router,\r\n private globalService: GlobalService,\r\n private userService: UserService) { }\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean {\r\n const currentUser: ValidatedUser = this.userService.getCurrentUser();\r\n if (currentUser) {\r\n this.userService.validateCurrentUser(currentUser);\r\n } else if (this.userService.isAuthenticated()) {\r\n this.userService.createValidatedUser();\r\n }\r\n\r\n // STILL NEEDED???\r\n // let returnUrl: string = sessionStorage.getItem(\"returnUrl\");\r\n // if (returnUrl && returnUrl !== \"\" && returnUrl !== \"/\") {\r\n // sessionStorage.removeItem(\"returnUrl\");\r\n // returnUrl = `${this.globalService.getLanguageCode()}/${returnUrl}`;\r\n // this.router.navigate([ returnUrl ]);\r\n // }\r\n\r\n if (environment.production) {\r\n let urlOrigin: string = (this.platformLocation as any).location.origin;\r\n // const urlOrigin: string = \"http://www.usnr.ru\";\r\n // const urlOrigin: string = \"http://www.ventek-inc.com\";\r\n // const urlOrigin: string = \"http://www.usnr.com\";\r\n // const urlOrigin: string = \"http://www.se-saws.com\";\r\n const wwwIndex = urlOrigin.indexOf(\"www.\");\r\n if (wwwIndex > -1) {\r\n urlOrigin = urlOrigin.substring(wwwIndex + 4);\r\n }\r\n return this.globalService.getDomain(urlOrigin)\r\n .toPromise()\r\n .then((domain: UsnrDomain) => {\r\n if (domain) {\r\n //// NOT USED SINCE ROUTES GET TRANSLATED IN IIS FROM www.usnr.ru to www.usnr.com/ru, etc.\r\n //// -caused by only having SSL for usnr.com\r\n // if (domain.LanguageId !== \"\") {\r\n // this.globalService.setLanguage(domain.LanguageId);\r\n // }\r\n\r\n if (domain.TargetType !== \"\") {\r\n this.router.navigate([\r\n this.globalService.getLanguageCode(),\r\n domain.TargetType.toLowerCase(),\r\n domain.Target.toLowerCase()\r\n ],\r\n { queryParams: { dt: 1 }});\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { environment } from '@environment';\nimport { MainMenuItem } from '@models/main-menu-item';\nimport { Language } from '@models/language';\nimport { FooterInfo } from '@models/footer-info';\nimport { GlobalService } from '@services/global.service';\nimport { UserService } from '@services/user.service';\nimport { FooterService } from '@services/footer.service';\n\n@Component({\n selector: 'footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.less'],\n})\nexport class FooterComponent implements OnInit, OnDestroy {\n private languageSubscription: Subscription;\n private userSubscription: Subscription;\n imageLocation: string = environment.ImageLocation;\n localImageLocation: string = environment.LocalImageLocation;\n\n menuItems: MainMenuItem[];\n languages: Language[];\n footerInfo: FooterInfo;\n languageCode: string;\n\n constructor(\n private globalService: GlobalService,\n private footerService: FooterService,\n private userService: UserService\n ) {\n this.languageSubscription = globalService.languageId$.subscribe(() =>\n this.ngOnInit()\n );\n\n this.userSubscription = this.userService.currentUser$.subscribe(() =>\n this.ngOnInit()\n );\n }\n\n ngOnInit() {\n this.footerService.getFooter().subscribe(\n (footer: FooterInfo) => {\n this.footerInfo = footer;\n },\n (error: any) => {\n this.handleError(error);\n }\n );\n\n this.globalService.getLanguages().subscribe(\n (languages: Language[]) => {\n this.languages = languages;\n },\n (error: any) => {\n this.handleError(error);\n }\n );\n\n this.globalService.getMainMenuItems().subscribe(\n (menu: MainMenuItem[]) => {\n this.menuItems = menu;\n },\n (error: any) => {\n this.handleError(error);\n }\n );\n\n this.languageCode = this.globalService.getLanguageCode();\n }\n\n ngOnDestroy() {\n if (this.languageSubscription) {\n this.languageSubscription.unsubscribe();\n }\n if (this.userSubscription) {\n this.userSubscription.unsubscribe();\n }\n }\n\n protected onSelectLanguage(language: Language): void {\n this.globalService.setLanguage(language.Id);\n }\n\n private handleError(error: any): void {\n console.error('An error occurred', error);\n }\n}\n","
    \n
    \n \n
    \n {{footerInfo.SelectLanguageText}}\n \n
    \n
    \n
    \n {{footerInfo.Copyright}}\n
    \n
    \n \"{{footerInfo.Copyright}}\"\n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterModule } from '@angular/router';\n\nimport { FooterComponent } from './footer/footer.component';\nimport { MobileFooterComponent } from './mobile-footer/mobile-footer.component';\n\n@NgModule({\n declarations: [FooterComponent, MobileFooterComponent],\n imports: [\n CommonModule,\n MatButtonModule,\n RouterModule\n ],\n exports: [\n FooterComponent,\n MobileFooterComponent\n ]\n})\nexport class FootersModule {}\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Subscription } from 'rxjs';\nimport { trigger, state, style, transition, animate, stagger, keyframes, query, } from '@angular/animations';\n\nimport { UserService } from '@services/user.service';\nimport { GlobalService } from '@services/global.service';\nimport { StandardFeature } from '@models/standard-feature';\nimport { BaseComponent } from 'src/app/base/base.component';\nimport { HeaderService } from '@services/header.service';\nimport { HeaderInfo } from '@models/header-info';\nimport { environment } from '@environment';\n\n@Component({\n selector: 'mobile-footer',\n templateUrl: './mobile-footer.component.html',\n styleUrls: ['./mobile-footer.component.less'],\n animations: [\n trigger('footerToggler', [\n state('inactive', style({ transform: 'rotate(0deg)' })),\n state('active', style({ transform: 'rotate(225deg)' })),\n transition('*=>*', animate('200ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n trigger('speedDialStagger', [\n transition('*=>*', [\n query(':enter', style({ opacity: 0 }), { optional: true }),\n query(\n ':enter',\n stagger('40ms', [\n animate(\n '200ms cubic-bezier(0.4, 0.0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'translateY(10px)' }),\n style({ opacity: 1, transform: 'translateY(0)' }),\n ])\n ),\n ]),\n { optional: true }\n ),\n query(\n ':leave',\n animate(\n '200ms cubic-bezier(0.4, 0.0, 0.2, 1)',\n keyframes([\n style({ opacity: 1 }),\n style({ opacity: 0 }),\n ])\n ),\n { optional: true }\n ),\n ]),\n ]),\n ],\n})\nexport class MobileFooterComponent extends BaseComponent implements OnInit, OnDestroy {\n private languageSubscription: Subscription;\n private userSubscription: Subscription;\n private routeSubscription: Subscription;\n\n objectId: string;\n languageCode: string;\n featuresIconFile: string;\n\n features: StandardFeature[] = [];\n displayedFeatures: StandardFeature[] = [];\n headerInfo: HeaderInfo;\n imageLocation: string = environment.ImageLocation;\n\n featureState: string = 'inactive';\n\n constructor(\n private userService: UserService,\n private globalService: GlobalService,\n private route: ActivatedRoute,\n private router: Router,\n private sanitizer: DomSanitizer,\n private headerService: HeaderService\n ) {\n super();\n\n this.subscriptions.push(this.userService.currentUser$.subscribe(() =>\n this.ngOnInit()\n ));\n this.subscriptions.push(this.globalService.languageId$.subscribe(\n () => this.ngOnInit()\n ));\n\n this.subscriptions.push(this.headerService.getHeaderInfo().subscribe({\n next: (info: HeaderInfo) => {\n this.headerInfo = info;\n this.featuresIconFile = this.headerInfo.FeaturesIconFileName;\n },\n error: (error: any) => {\n this.handleError(error);\n },\n })\n );\n\n this.languageCode = this.globalService.getLanguageCode();\n }\n\n ngOnInit() {\n this.languageCode = this.globalService.getLanguageCode();\n\n this.routeSubscription = this.route.params.subscribe(\n (params: Params) => {\n this.objectId = params['id'];\n if (!this.objectId) {\n if (params['searchCriteria']) {\n this.objectId = 'search';\n } else {\n this.features = null;\n return;\n }\n }\n\n this.globalService.getStandardFeatures(this.objectId).subscribe(\n (features: StandardFeature[]) => {\n this.features = features;\n this.initializeFeatures();\n },\n (error: any) => {\n this.handleError(error);\n }\n );\n }\n );\n }\n\n ngOnDestroy(): void {\n if (this.userSubscription) {\n this.userSubscription.unsubscribe();\n }\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n if (this.languageSubscription) {\n this.languageSubscription.unsubscribe();\n }\n }\n\n showFeatures(): void {\n this.featureState = 'active';\n this.displayedFeatures = this.features;\n }\n\n hideFeatures(): void {\n this.featureState = 'inactive';\n this.displayedFeatures = [];\n }\n\n toggleFeatures(): void {\n this.displayedFeatures.length\n ? this.hideFeatures()\n : this.showFeatures();\n }\n\n protected gotoInternal(feature: StandardFeature): void {\n this.router.navigate(\n ['/' + this.languageCode, feature.TargetType, feature.Target],\n {\n queryParams: {\n referringPage: this.getCurrentPageId(),\n referringType: this.getCurrentPageType(),\n },\n }\n );\n }\n\n protected gotoExternal(feature: StandardFeature): void {\n this.router.navigateByUrl(feature.Target);\n }\n\n protected getField(value: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n\n private getCurrentPageId(): string {\n const id: string = this.route.snapshot.params['id'];\n if (id) {\n return id;\n }\n\n return 'home';\n }\n\n private getCurrentPageType(): string {\n if (this.route.snapshot.url.length > 2) {\n return this.route.snapshot.url[1].path;\n }\n\n return 'page';\n }\n\n private initializeFeatures(): void {\n if (this.features) {\n this.features.forEach((feature: StandardFeature) => {\n feature.BackgroundColor = feature.HtmlColor;\n });\n }\n }\n}\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Router } from \"@angular/router\";\n\nimport { environment } from \"@environment\";\nimport { GlobalService } from \"@services/global.service\";\nimport { UserService } from \"@services/user.service\";\nimport { ValidatedUser } from \"@models/validated-user\";\nimport { HeaderInfo } from \"@models/header-info\";\nimport { MainMenuItem } from \"@models/main-menu-item\";\nimport { HeaderService } from \"@services/header.service\";\nimport { CustomerAccount } from \"@models/customer-account\";\nimport { SEOService } from \"@services/seo.service\";\n\n@Component({\n selector: \"header\",\n templateUrl: \"./header.component.html\",\n styleUrls: [\"./header.component.less\"]\n})\nexport class HeaderComponent implements OnInit, OnDestroy {\n private languageSubscription: Subscription;\n private userSubscription: Subscription;\n private accountSubscription: Subscription;\n\n imageLocation: string = environment.ImageLocation;\n info: HeaderInfo;\n menuItems: MainMenuItem[];\n currentUser: ValidatedUser = null;\n languageCode: string;\n currentAccount: CustomerAccount;\n customerAccountPage: string;\n\n\n constructor(\n private globalService: GlobalService,\n private userService: UserService,\n private headerService: HeaderService,\n private router: Router,\n private seo: SEOService\n ) {\n this.languageSubscription = this.globalService.languageId$.subscribe(() => {\n this.headerService.clearHeaderInfo();\n this.ngOnInit()\n });\n\n this.userSubscription = this.userService.currentUser$.subscribe(\n () => this.ngOnInit()\n );\n\n this.accountSubscription = this.userService.currentAccount$.subscribe(\n () => this.ngOnInit()\n );\n\n this.seo.addSEOData();\n }\n\n ngOnInit() {\n this.globalService.getMainMenuItems().subscribe({\n next: (menus: MainMenuItem[]) => { this.menuItems = menus; },\n error: (error: any) => { this.handleError(error); }\n });\n\n this.headerService.getHeaderInfo().subscribe({\n next: (info: HeaderInfo) => { this.info = info; },\n error: (error: any) => { this.handleError(error); }\n });\n\n this.currentUser = this.userService.getCurrentUser();\n this.currentAccount = this.userService.getCustomerAccount();\n this.customerAccountPage = this.userService.getCustomerAccountPage();\n if (!this.customerAccountPage) {\n this.customerAccountPage = \"\";\n }\n\n this.languageCode = this.globalService.getLanguageCode();\n }\n\n ngOnDestroy(): void {\n if (this.languageSubscription) {\n this.languageSubscription.unsubscribe();\n }\n if (this.userSubscription) {\n this.userSubscription.unsubscribe();\n }\n if (this.accountSubscription) {\n this.accountSubscription.unsubscribe();\n }\n }\n\n private signOutUser(): void {\n if (this.userService.isAuthenticated()) {\n this.userService.signOutUser();\n } else {\n this.userService.signOutUser();\n this.router.navigate([this.languageCode, \"page\", \"home\"], { queryParams: { dt: 1 }});\n }\n }\n\n private handleError(error: any): void {\n console.error(\"An error occurred\", error);\n }\n}\n","
    \n
    \n \n \"Home\"/\n \n
    \n
    \n
    \n {{info.UserWelcomeText}} {{currentUser.Name}}\n   |  {{info.SignOutText}}\n \n
    \n \n {{currentAccount.Id}}  |  {{currentAccount.Name}}  |  {{currentAccount.Location}}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mobile-header',\n templateUrl: './mobile-header.component.html',\n styleUrls: ['./mobile-header.component.less']\n})\nexport class MobileHeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

    mobile-header works!

    \n","import { Injectable, isDevMode } from \"@angular/core\";\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class IsSecureGuard implements CanActivate {\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean {\r\n if (!(isDevMode()) && (location.protocol !== \"https:\")) {\r\n location.href = \"https:\" + window.location.href.substring(window.location.protocol.length);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"job-description\",\r\n templateUrl: \"./job-description.component.html\",\r\n styleUrls: [\"./job-description.component.less\"]\r\n})\r\nexport class JobDescriptionComponent {\r\n description: SafeHtml;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n setDescription(description: string): void {\r\n this.description = this.sanitizer.bypassSecurityTrustHtml(description);\r\n }\r\n}\r\n","

    \r\n

    \r\n

    \r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"job-detail-list\",\r\n templateUrl: \"./job-detail-list.component.html\",\r\n styleUrls: [\"./job-detail-list.component.less\"]\r\n})\r\nexport class JobDetailListComponent {\r\n text: SafeHtml;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n setText(text: string): void {\r\n if (text !== \"\") {\r\n this.text = this.sanitizer.bypassSecurityTrustHtml(text);\r\n }\r\n }\r\n}\r\n","
  • \r\n","import {\r\n Component,\r\n OnDestroy,\r\n OnChanges,\r\n Input,\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n ComponentFactory,\r\n ComponentRef\r\n} from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { JobDetail } from \"@models/job-detail\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { JobService } from \"@services/job.service\";\r\nimport { JobSectionHeadingComponent } from \"../job-section-heading/job-section-heading.component\";\r\nimport { JobDescriptionComponent } from \"../job-description/job-description.component\";\r\nimport { JobInstructionComponent } from \"../job-instruction/job-instruction.component\";\r\nimport { JobDetailListComponent } from \"../job-detail-list/job-detail-list.component\";\r\nimport { JobLocationComponent } from \"../job-location/job-location.component\";\r\n\r\n@Component({\r\n selector: \"job-detail\",\r\n templateUrl: \"./job-detail.component.html\",\r\n styleUrls: [\"./job-detail.component.less\"]\r\n})\r\nexport class JobDetailComponent implements OnDestroy, OnChanges {\r\n private subscription: Subscription;\r\n @Input() details: JobDetail[];\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private jobService: JobService,\r\n private route: ActivatedRoute,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef\r\n ) {\r\n this.subscription = globalService.languageId$.subscribe(\r\n () => { this.ngOnChanges(null); }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.processDetails();\r\n }\r\n\r\n private processDetails(): void {\r\n this.viewContainerRef.clear();\r\n const languageCode: string = this.globalService.getLanguageCode();\r\n if (this.details !== undefined) {\r\n for (const detail of this.details) {\r\n if (detail.IsHeading) {\r\n this.showHeading(detail.Text);\r\n } else {\r\n switch (detail.DetailType) {\r\n case \"Description\":\r\n this.showDescription(detail.Text);\r\n break;\r\n case \"Instruction\":\r\n this.showInstruction(detail.Text);\r\n break;\r\n case \"Job Title\":\r\n break;\r\n case \"Qualification\":\r\n case \"Responsibility\":\r\n this.showDetailList(detail.Text);\r\n break;\r\n case \"Location\":\r\n this.showLocation(detail.ContentId, detail.Text, languageCode);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private showHeading(text: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(JobSectionHeadingComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setText(text);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showDescription(description: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(JobDescriptionComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setDescription(description);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showInstruction(text: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(JobInstructionComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setText(text);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showDetailList(text: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(JobDetailListComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setText(text);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showLocation(title: string, text: string, languageCode: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(JobLocationComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.title = title;\r\n ref.instance.text = text;\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"job-instruction\",\r\n templateUrl: \"./job-instruction.component.html\",\r\n styleUrls: [\"./job-instruction.component.less\"]\r\n})\r\nexport class JobInstructionComponent {\r\n text: SafeHtml;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n setText(text: string): void {\r\n this.text = this.sanitizer.bypassSecurityTrustHtml(text);\r\n }\r\n}\r\n","

    \r\n

    \r\n

    \r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"job-location\",\r\n templateUrl: \"./job-location.component.html\",\r\n styleUrls: [\"./job-location.component.less\"]\r\n})\r\nexport class JobLocationComponent {\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n title: string;\r\n text: string;\r\n\r\n languageCode: string;\r\n}\r\n","
    \r\n \r\n \"{{text}}\"/\r\n \r\n
    \r\n {{text}}\r\n
    \r\n
    \r\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute, Params } from \"@angular/router\";\r\n\r\nimport { JobMenu } from \"@models/menu-item\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { JobService } from \"@services/job.service\";\r\n\r\n@Component({\r\n selector: \"job-menu\",\r\n templateUrl: \"./job-menu.component.html\",\r\n styleUrls: [\"./job-menu.component.less\"]\r\n})\r\nexport class JobMenuComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription;\r\n private routeSubscription: Subscription;\r\n\r\n menu: JobMenu[];\r\n jobId: string;\r\n selectedMenu: JobMenu;\r\n languageCode: string;\r\n\r\n constructor(private globalService: GlobalService, private jobService: JobService, private route: ActivatedRoute) {\r\n this.subscription = globalService.languageId$.subscribe(() => { this.ngOnInit(); });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routeSubscription = this.route.params.subscribe(\r\n (params: Params) => {\r\n this.jobId = params[\"id\"];\r\n\r\n this.jobService.getMenu(params[\"id\"]).subscribe(\r\n (menu: JobMenu[]) => {\r\n this.menu = menu;\r\n this.selectedMenu =\r\n (menu === null || menu === undefined)\r\n ? null\r\n : menu.find(page => page.Id.toLowerCase() === this.jobId.toLowerCase());\r\n }\r\n );\r\n }\r\n );\r\n\r\n this.languageCode = this.globalService.getLanguageCode();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.routeSubscription) {\r\n this.routeSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n getClass(item: JobMenu) {\r\n let cssClass: any;\r\n\r\n if (item.Id.toLowerCase() === this.selectedMenu.Id.toLowerCase()) {\r\n cssClass = { \"menuSelected\": true, \"menuChild\": false, \"menuParent\": false, \"menuSibling\": false };\r\n } else if (item.Level < this.selectedMenu.Level) {\r\n cssClass = { \"menuSelected\": false, \"menuChild\": false, \"menuParent\": true, \"menuSibling\": false };\r\n } else if (item.Level > this.selectedMenu.Level) {\r\n cssClass = { \"menuSelected\": false, \"menuChild\": true, \"menuParent\": false, \"menuSibling\": false };\r\n } else { // item.Level === this.selectedMenu.Level\r\n cssClass = { \"menuSelected\": false, \"menuChild\": false, \"menuParent\": false, \"menuSibling\": true };\r\n }\r\n\r\n return cssClass;\r\n }\r\n\r\n getCurrentPageId(): string {\r\n const id: string = this.route.snapshot.params[\"id\"];\r\n if (id) {\r\n return id;\r\n }\r\n\r\n return \"home\";\r\n }\r\n\r\n getCurrentPageType(): string {\r\n if (this.route.snapshot.url.length > 2) {\r\n return this.route.snapshot.url[1].path;\r\n }\r\n\r\n return \"page\";\r\n }\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {{menuItem.Title}}\r\n \r\n
    \r\n
    \r\n","import { Injectable } from \"@angular/core\";\r\nimport { Resolve, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\r\n\r\nimport { JobDetail } from \"@models/job-detail\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { JobService } from \"@services/job.service\";\r\n\r\n@Injectable()\r\nexport class JobResolverService implements Resolve {\r\n constructor(private jobService: JobService, private globalService: GlobalService, private router: Router) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n const id: string = route.params[\"id\"] as string;\r\n if (id === null) {\r\n this.router.navigate([this.globalService.getLanguageCode(), \"page\", \"error\"], { queryParams: { dt: 1, returnUrl: state.url } });\r\n }\r\n\r\n let languageId = route.paramMap.get(\"languageId\");\r\n if (languageId && languageId !== \"\") {\r\n this.globalService.setLanguage(languageId);\r\n } else {\r\n languageId = this.globalService.getLanguage();\r\n if (!languageId) {\r\n this.globalService.setLanguage(\"en-us\");\r\n }\r\n }\r\n return this.resolveJob(id);\r\n }\r\n\r\n private resolveJob(id: string): Promise {\r\n return this.jobService.getDetails(id)\r\n .toPromise()\r\n .then(details => {\r\n if (details === undefined || details === null && id !== \"error\") {\r\n this.router.navigate([this.globalService.getLanguageCode(), \"page\", \"error\"], { queryParams: { dt: 1 }});\r\n return null;\r\n }\r\n\r\n return details;\r\n });\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\n\r\nimport { JobResolverService } from \"./job-resolver.service\";\r\nimport { IsSecureGuard } from \"../is-secure.guard\";\r\nimport { JobComponent } from \"./job/job.component\";\r\n\r\nconst routes: Routes = [\r\n { path: \":languageId/job/:id\", component: JobComponent, resolve: { details: JobResolverService }, canActivate: [ IsSecureGuard ] }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class JobRoutingModule { }\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"job-section-heading\",\r\n templateUrl: \"./job-section-heading.component.html\",\r\n styleUrls: [\"./job-section-heading.component.less\"]\r\n})\r\nexport class JobSectionHeadingComponent {\r\n text: SafeHtml;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n setText(text: string): void {\r\n this.text = this.sanitizer.bypassSecurityTrustHtml(text);\r\n }\r\n}\r\n","
    \r\n

    \r\n \r\n

    \r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { JobRoutingModule } from \"./job-routing.module\";\r\nimport { SharedModule } from \"@shared/shared.module\";\r\nimport { JobResolverService } from \"./job-resolver.service\";\r\nimport { JobComponent } from \"./job/job.component\";\r\nimport { JobMenuComponent } from \"./job-menu/job-menu.component\";\r\nimport { JobDetailComponent } from \"./job-detail/job-detail.component\";\r\nimport { JobSectionHeadingComponent } from \"./job-section-heading/job-section-heading.component\";\r\nimport { JobDescriptionComponent } from \"./job-description/job-description.component\";\r\nimport { JobInstructionComponent } from \"./job-instruction/job-instruction.component\";\r\nimport { JobDetailListComponent } from \"./job-detail-list/job-detail-list.component\";\r\nimport { JobLocationComponent } from \"./job-location/job-location.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n JobRoutingModule\r\n ],\r\n providers: [\r\n JobResolverService\r\n ],\r\n declarations: [\r\n JobComponent,\r\n JobMenuComponent,\r\n JobDetailComponent,\r\n JobSectionHeadingComponent,\r\n JobDescriptionComponent,\r\n JobInstructionComponent,\r\n JobDetailListComponent,\r\n JobLocationComponent\r\n ]\r\n})\r\nexport class JobModule { }\r\n","import { Component, OnInit, OnDestroy, AfterViewInit } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\ndeclare var enableClickDimensions: any;\r\n\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { JobDetail } from \"@models/job-detail\";\r\n\r\n@Component({\r\n selector: \"job\",\r\n templateUrl: \"./job.component.html\",\r\n styleUrls: [\"./job.component.less\"]\r\n})\r\nexport class JobComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private languageSubscription: Subscription;\r\n private routeSubscription: Subscription;\r\n details: JobDetail[] = [];\r\n\r\n constructor(private route: ActivatedRoute, private globalService: GlobalService) {\r\n this.languageSubscription = this.globalService.languageId$.subscribe(\r\n () => { this.ngOnInit(); }\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routeSubscription = this.route.data\r\n .subscribe((data: { details: JobDetail[] }) => this.details = data.details);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.languageSubscription) {\r\n this.languageSubscription.unsubscribe();\r\n }\r\n if (this.routeSubscription) {\r\n this.routeSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.globalService.cookiesEnabled()) {\r\n enableClickDimensions();\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 { DefaultUrlSerializer, UrlTree } from \"@angular/router\";\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\nexport class LowerCaseUrlSerializer extends DefaultUrlSerializer {\r\n parse(url: string): UrlTree {\r\n return super.parse(url.toLowerCase());\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\n\nimport { environment } from '@environment';\nimport { SharedHeader } from '@models/shared-header';\nimport { MobileHeaderInfo } from '@models/mobile-header-info';\nimport { GlobalService } from '@services/global.service';\nimport { HeaderService } from '@services/header.service';\nimport { UserService } from '@services/user.service';\nimport { SharedService } from '@services/shared.service';\n\n@Component({\n selector: 'm-mobile-base',\n template: '',\n})\nexport class MobileBaseComponent implements OnInit, OnDestroy {\n private languageSubscription: Subscription;\n private headerSubscription: Subscription;\n protected routeSubscription: Subscription;\n protected routeParamSubscription: Subscription;\n protected detailsSubscription: Subscription;\n\n languageCode: string;\n headerInfo: MobileHeaderInfo;\n header: SharedHeader;\n imageLocation: string = environment.ImageLocation;\n localImageLocation: string = environment.LocalImageLocation;\n\n @ViewChild('mainMenu') mainMenu: MatSidenav;\n\n menusClosed: boolean = true;\n\n constructor(\n protected headerService: HeaderService,\n protected globalService: GlobalService,\n protected userService: UserService,\n protected router: Router,\n protected route: ActivatedRoute,\n protected sharedService: SharedService\n ) {\n this.languageSubscription = this.globalService.languageId$.subscribe(\n () => {\n this.closeMenu();\n this.ngOnInit();\n this.refreshData();\n }\n );\n\n this.router.events.subscribe(() => {\n this.closeMenu();\n });\n }\n\n ngOnInit() {\n this.routeSubscription = this.route.params.subscribe(\n (params: Params) => {\n this.sharedService\n .getMobileHeader(params['id'])\n .subscribe((header: SharedHeader) =>\n this.setupSharedHeader(header)\n );\n }\n );\n }\n\n ngOnDestroy(): void {\n this.unsubscribe(this.languageSubscription);\n this.unsubscribe(this.routeSubscription);\n this.unsubscribe(this.headerSubscription);\n this.unsubscribe(this.detailsSubscription);\n this.unsubscribe(this.routeParamSubscription);\n }\n\n protected unsubscribe(subscription: Subscription): void {\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n\n protected refreshData(): void {}\n\n protected setupHeaders(): void {\n this.headerSubscription = this.headerService.getHeaderInfo().subscribe({\n next: (info: MobileHeaderInfo) => {\n this.headerInfo = info;\n },\n error: (error: any) => {\n this.handleError(error);\n }\n });\n\n this.languageCode = this.globalService.getLanguageCode();\n this.globalService.addMobileLinkTags(this.route.snapshot.url.slice(1));\n }\n\n protected setupSharedHeader(header: SharedHeader) {\n this.header = header;\n\n this.globalService.setTitle(`USNR - ${this.header.Title}`);\n }\n\n toggleMenu(): void {\n if (this.mainMenu.opened) {\n this.mainMenu.close();\n } else {\n this.mainMenu.open();\n }\n }\n\n closeMenu(): void {\n this.mainMenu.close();\n }\n\n protected handleError(error: any): void {\n console.error('An error occurred', error);\n }\n}\n","export class CarouselItem {\r\n imageUrl: string;\r\n title: string;\r\n target: string;\r\n targetType: string;\r\n linkCausesNewWindow: boolean;\r\n\r\n transition: string;\r\n active: boolean;\r\n}\r\n","import { DataQueryDetail } from \"./data-query-detail\";\r\nimport { DataQueryResultRow } from \"./data-query-result-row\";\r\nimport { TreeNode } from \"./tree-node\";\r\n\r\nexport class DataQueryResult {\r\n Id: string;\r\n DataSetIndex: number;\r\n OutputType: string;\r\n Heading: string;\r\n ListType: string;\r\n HeaderRow: boolean;\r\n TotalRow: boolean;\r\n BandedRows: boolean;\r\n FirstColumn: boolean;\r\n LastColumn: boolean;\r\n BandedColumns: boolean;\r\n NoResultsText: string;\r\n ShowHeaderWhenNoResults: boolean;\r\n ShowNoResultsMessage: boolean;\r\n FilestreamTypeId: string;\r\n FilestreamType: string;\r\n\r\n Details: DataQueryDetail[];\r\n QueryResults: DataQueryResultRow[];\r\n QueryResultsTree: TreeNode;\r\n}\r\n\r\nexport class DataQueryOutputRow {\r\n columns: DataQueryOutputColumn[];\r\n}\r\n\r\nexport class DataQueryOutputColumn {\r\n alignment: string;\r\n value: any;\r\n linkTarget: string;\r\n destinationRoute: string;\r\n destinationRouteParams: any;\r\n isModal: boolean = false;\r\n specialType: string;\r\n imageWidth: number;\r\n imageHeight: number;\r\n width: number;\r\n name: string;\r\n}\r\n\r\nexport class DataQueryOutputLinkTarget {\r\n route: string;\r\n params: any;\r\n streamType: string;\r\n isModal: boolean;\r\n}\r\n","export class FormFieldBase {\r\n type: string;\r\n value?: T;\r\n key: string;\r\n label: string;\r\n order: number;\r\n controlType: string;\r\n extra: string;\r\n width: number;\r\n height: number;\r\n description: string;\r\n\r\n options: { key: string, value: string }[] = [];\r\n pattern: string;\r\n required: boolean;\r\n validationText: string;\r\n\r\n formId: string;\r\n\r\n constructor(\r\n options: {\r\n formId?: string,\r\n value?: T,\r\n key?: string,\r\n label?: string,\r\n required?: boolean,\r\n order?: number,\r\n controlType?: string,\r\n extra?: string,\r\n width?: number,\r\n height?: number,\r\n pattern?: string,\r\n description?: string,\r\n other?: string,\r\n validationText?: string;\r\n } = { }) {\r\n\r\n this.formId = options.formId || \"\";\r\n this.value = options.value;\r\n this.key = options.key || \"\";\r\n this.label = options.label || \"\";\r\n this.order = options.order === undefined ? 1 : options.order;\r\n this.controlType = options.controlType || \"\";\r\n this.extra = options.extra || \"\";\r\n this.width = options.width;\r\n this.height = options.height;\r\n this.required = !!options.required;\r\n this.pattern = options.pattern || \"\";\r\n this.description = options.description || \"\";\r\n this.validationText = options.validationText || \"\";\r\n }\r\n\r\n resetToDefault(): void {}\r\n}\r\n\r\nexport class FormFieldAttachFileButton extends FormFieldBase {\r\n controlType: string = \"buttonAttachFile\";\r\n type: string = \"file\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n\r\nexport class FormFieldAttachImageButton extends FormFieldBase {\r\n controlType: string = \"buttonAttachImage\";\r\n type: string = \"file\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n\r\nexport class FormFieldCaptcha extends FormFieldBase {\r\n controlType: string = \"captcha\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n\r\nexport class FormFieldChoice extends FormFieldBase {\r\n controlType: string = \"choice\";\r\n options: { key: string, value: string }[] = [];\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.options = options[\"options\"] || [];\r\n this.setDefault();\r\n }\r\n\r\n resetToDefault(): void {\r\n this.setDefault();\r\n }\r\n\r\n private setDefault(): void {\r\n if (this.options.length > 0) {\r\n this.value = this.options[0].value;\r\n }\r\n }\r\n}\r\n\r\nexport class FormFieldClearButton extends FormFieldBase {\r\n controlType: string = \"buttonClear\";\r\n type: string = \"reset\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n\r\nexport class FormFieldDate extends FormFieldBase {\r\n controlType: string = \"date\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldDescription extends FormFieldBase {\r\n controlType: string = \"description\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldEmail extends FormFieldBase {\r\n controlType: string = \"email\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldFailureMessage extends FormFieldBase {\r\n controlType: string = \"msgFailure\";\r\n type: string;\r\n targetPageId: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldHeading extends FormFieldBase {\r\n controlType: string = \"heading\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldHidden extends FormFieldBase {\r\n controlType: string = \"hidden\";\r\n type: string = \"hidden\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n\r\nexport class FormFieldMultiLineText extends FormFieldBase {\r\n controlType: string = \"multiLineText\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldNumber extends FormFieldBase {\r\n controlType: string = \"number\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldPassword extends FormFieldBase {\r\n controlType: string = \"password\";\r\n type: string = \"password\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n\r\nexport class FormFieldResetPasswordButton extends FormFieldBase {\r\n controlType: string = \"buttonResetPassword\";\r\n type: string = \"submit\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n\r\nexport class FormFieldSubmitAndClearButtons extends FormFieldBase {\r\n controlType: string = \"buttonSubmitAndClear\";\r\n targetPageId: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.targetPageId = options[\"targetPageId\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldSubmitButton extends FormFieldBase {\r\n controlType: string = \"buttonSubmit\";\r\n type: string = \"submit\";\r\n targetPageId: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.targetPageId = options[\"targetPageId\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldCheckIdentityButton extends FormFieldBase {\r\n controlType: string = \"buttonCheckIdentity\";\r\n type: string = \"submit\";\r\n targetPageId: string;\r\n key: string = \"checkIdentity\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.targetPageId = options[\"targetPageId\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldVerifyIdentityButton extends FormFieldBase {\r\n controlType: string = \"buttonCheckIdentity\";\r\n type: string = \"submit\";\r\n targetPageId: string;\r\n key: string = \"verifyIdentity\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.targetPageId = options[\"targetPageId\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldIdentityValidation extends FormFieldBase {\r\n controlType: string = \"singleLineText\";\r\n type: string;\r\n\r\n validationErrorMessage: string = this.key + \" is required.\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldSingleLineText extends FormFieldBase {\r\n controlType: string = \"singleLineText\";\r\n type: string;\r\n\r\n validationErrorMessage: string = this.key + \" is required.\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldSpecial extends FormFieldBase {\r\n controlType: string = \"special\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n\r\nexport class FormFieldSuccessMessage extends FormFieldBase {\r\n controlType: string = \"msgSuccess\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldValidationLink extends FormFieldBase {\r\n controlType: string = \"msgValidationLink\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldEmailSubject extends FormFieldBase {\r\n controlType: string = \"msgEmailSubject\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldEmailConfirm extends FormFieldBase {\r\n controlType: string = \"msgEmailConfirm\";\r\n type: string;\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n this.type = options[\"type\"] || \"\";\r\n }\r\n}\r\n\r\nexport class FormFieldYesNo extends FormFieldBase {\r\n controlType: string = \"yesno\";\r\n\r\n constructor(options: {} = {}) {\r\n super(options);\r\n }\r\n}\r\n","import {\r\n FormFieldBase,\r\n FormFieldAttachFileButton,\r\n FormFieldHidden,\r\n FormFieldAttachImageButton,\r\n FormFieldClearButton,\r\n FormFieldResetPasswordButton,\r\n FormFieldSubmitAndClearButtons,\r\n FormFieldSubmitButton,\r\n FormFieldCaptcha,\r\n FormFieldHeading,\r\n FormFieldDescription,\r\n FormFieldChoice,\r\n FormFieldDate,\r\n FormFieldEmail,\r\n FormFieldMultiLineText,\r\n FormFieldPassword,\r\n FormFieldNumber,\r\n FormFieldSpecial,\r\n FormFieldSingleLineText,\r\n FormFieldYesNo,\r\n FormFieldFailureMessage,\r\n FormFieldSuccessMessage,\r\n FormFieldEmailSubject,\r\n FormFieldEmailConfirm,\r\n FormFieldCheckIdentityButton,\r\n FormFieldValidationLink\r\n} from \"./form-fields\";\r\nimport { FormFieldDefinition } from \"./form-field-definition\";\r\n\r\nexport class Form {\r\n convertToFormFields(definitions: FormFieldDefinition[]): FormFieldBase[] {\r\n const fields: FormFieldBase[] = [];\r\n let clearButtonProcessed: boolean = false;\r\n\r\n definitions.forEach(definition => {\r\n switch (definition.DetailType.toLowerCase()) {\r\n case \"button-attachfile\":\r\n fields.push(new FormFieldAttachFileButton({\r\n formId: definition.Id,\r\n label: definition.Title,\r\n description: definition.Description,\r\n title: definition.ButtonTitle,\r\n validationText: definition.Validation,\r\n key: `AttachedFileSelection`\r\n }));\r\n fields.push(new FormFieldHidden({ formId: definition.Id, key: \"AttachedFile\", required: definition.IsRequired }));\r\n fields.push(new FormFieldHidden({ formId: definition.Id, key: \"AttachedFileOriginalName\" }));\r\n fields.push(new FormFieldHidden({ formId: definition.Id, key: \"AttachedFileType\" }));\r\n break;\r\n case \"button-attachimage\":\r\n fields.push(new FormFieldAttachImageButton({\r\n formId: definition.Id,\r\n label: definition.Title,\r\n description: definition.Description,\r\n title: definition.ButtonTitle,\r\n validationText: definition.Validation,\r\n key: `AttachedImageSelection`\r\n }));\r\n fields.push(new FormFieldHidden({\r\n formId: definition.Id, key: \"AttachedFile\", required: definition.IsRequired, validationText: definition.Validation }));\r\n fields.push(new FormFieldHidden({ formId: definition.Id, key: \"AttachedFileOriginalName\" }));\r\n fields.push(new FormFieldHidden({ formId: definition.Id, key: \"AttachedFileType\" }));\r\n break;\r\n case \"button-checkidentity\":\r\n fields.push(new FormFieldCheckIdentityButton({\r\n formId: definition.Id,\r\n label: definition.ButtonTitle,\r\n targetPageId: definition.TargetId\r\n }));\r\n break;\r\n case \"button-clear\":\r\n if (!clearButtonProcessed) {\r\n fields.push(new FormFieldClearButton({ formId: definition.Id, label: definition.ButtonTitle }));\r\n }\r\n break;\r\n case \"button-resetpassword\":\r\n fields.push(new FormFieldResetPasswordButton({ formId: definition.Id, label: definition.ButtonTitle }));\r\n break;\r\n case \"button-submit\":\r\n {\r\n const clearButton: FormFieldDefinition = definitions.find(d => d.DetailType === \"Button-Clear\");\r\n if (clearButton !== undefined) {\r\n clearButtonProcessed = true;\r\n fields.push(new FormFieldSubmitAndClearButtons({\r\n formId: definition.Id,\r\n label: definition.ButtonTitle,\r\n extra: clearButton.ButtonTitle,\r\n targetPageId: definition.TargetId\r\n }));\r\n } else {\r\n fields.push(new FormFieldSubmitButton({\r\n formId: definition.Id,\r\n label: definition.ButtonTitle,\r\n targetPageId: definition.TargetId\r\n }));\r\n }\r\n }\r\n break;\r\n case \"captcha\":\r\n fields.push(\r\n new FormFieldCaptcha({\r\n formId: definition.Id,\r\n key: \"captcha\",\r\n label: definition.Title,\r\n description: definition.Description,\r\n required: true\r\n })\r\n );\r\n break;\r\n case \"description\":\r\n if (definition.IsHeading) {\r\n fields.push(new FormFieldHeading({ formId: definition.Id, key: definition.FieldName, label: definition.Title }));\r\n } else {\r\n fields.push(new FormFieldDescription({\r\n formId: definition.Id, key: definition.FieldName, label: definition.Description, required: definition.IsRequired\r\n }));\r\n }\r\n break;\r\n case \"field-choice\": {\r\n const optionList: string[] = definition.ChoiceOptions.split(\";\");\r\n const dropdownOptions: any[] = [];\r\n optionList.forEach(option => dropdownOptions.push({ key: option.trim(), value: option.trim() }));\r\n fields.push(new FormFieldChoice({\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n width: definition.Width,\r\n options: dropdownOptions,\r\n validationText: definition.Validation\r\n }));\r\n break;\r\n }\r\n case \"field-date\":\r\n fields.push(new FormFieldDate({\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n value: definition.Value === undefined ? \"\" : definition.Value,\r\n validationText: definition.Validation\r\n }));\r\n break;\r\n case \"field-email\":\r\n fields.push(new FormFieldEmail({\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n pattern: \"\\\\w+([-+.']\\\\w+)*@\\\\w+([-.]\\\\w+)*\\\\.\\\\w+([-.]\\\\w+)*\",\r\n value: definition.Value === undefined ? \"\" : definition.Value,\r\n validationText: definition.Validation,\r\n type: \"email\"\r\n }));\r\n break;\r\n case \"field-emailconfirm\":\r\n fields.push(new FormFieldEmail({\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n pattern: \"\\\\w+([-+.']\\\\w+)*@\\\\w+([-.]\\\\w+)*\\\\.\\\\w+([-.]\\\\w+)*\",\r\n value: definition.Value === undefined ? \"\" : definition.Value,\r\n validationText: definition.Validation,\r\n type: \"email\"\r\n }));\r\n break;\r\n case \"field-identity\":\r\n fields.push(new FormFieldEmail({\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n pattern: \"\\\\w+([-+.']\\\\w+)*@\\\\w+([-.]\\\\w+)*\\\\.\\\\w+([-.]\\\\w+)*\",\r\n value: definition.Value === undefined ? \"\" : definition.Value,\r\n validationText: definition.Validation,\r\n type: \"email\"\r\n }));\r\n break;\r\n case \"field-multilinetext\":\r\n {\r\n const multiLineTextField: FormFieldMultiLineText = new FormFieldMultiLineText(\r\n {\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n value: definition.Value === undefined ? \"\" : definition.Value,\r\n validationText: definition.Validation\r\n });\r\n if (definition.Width > 0) {\r\n multiLineTextField.width = definition.Width;\r\n }\r\n if (definition.Height > 0) {\r\n multiLineTextField.height = definition.Height;\r\n }\r\n fields.push(multiLineTextField);\r\n }\r\n break;\r\n case \"field-newpassword\":\r\n fields.push(new FormFieldPassword({\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n validationText: definition.Validation\r\n }));\r\n break;\r\n case \"field-number\":\r\n fields.push(new FormFieldNumber(\r\n {\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n value: definition.Value === undefined ? \"\" : definition.Value,\r\n pattern: \"^\\\\d*\\\\.?\\\\d*$\",\r\n validationText: definition.Validation\r\n }));\r\n break;\r\n case \"field-password\":\r\n fields.push(new FormFieldPassword({\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n validationText: definition.Validation\r\n }));\r\n break;\r\n case \"field-query\":\r\n fields.push(new FormFieldSpecial({\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n width: definition.Width,\r\n validationText: definition.Validation\r\n }));\r\n break;\r\n case \"field-singlelinetext\":\r\n fields.push(new FormFieldSingleLineText(\r\n {\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n value: definition.Value === undefined ? \"\" : definition.Value,\r\n validationText: definition.Validation\r\n }));\r\n break;\r\n case \"field-yesno\":\r\n fields.push(new FormFieldYesNo(\r\n {\r\n formId: definition.Id,\r\n key: definition.FieldName,\r\n label: definition.Title,\r\n required: definition.IsRequired,\r\n value: definition.Value === undefined ? \"\" : definition.Value,\r\n validationText: definition.Validation\r\n }));\r\n break;\r\n case \"msg-failure\":\r\n fields.push(new FormFieldFailureMessage({\r\n formId: definition.Id,\r\n value: definition.Description,\r\n targetPageId: definition.TargetId\r\n }));\r\n break;\r\n case \"msg-password\":\r\n break;\r\n case \"msg-success\":\r\n fields.push(new FormFieldSuccessMessage({\r\n formId: definition.Id,\r\n value: definition.Description\r\n }));\r\n break;\r\n case \"msg-emailsubject\":\r\n fields.push(new FormFieldEmailSubject({\r\n formId: definition.Id,\r\n value: definition.Title\r\n }));\r\n break;\r\n case \"msg-emailconfirm\":\r\n fields.push(new FormFieldEmailConfirm({\r\n formId: definition.Id,\r\n value: definition.Description\r\n }));\r\n break;\r\n case \"msg-validationlink\":\r\n fields.push(new FormFieldValidationLink({\r\n formId: definition.Id,\r\n value: definition.Title\r\n }));\r\n break;\r\n }\r\n });\r\n\r\n return fields;\r\n }\r\n\r\n fileChanged(event): void {\r\n const fileList: FileList = event.target.files;\r\n if (fileList.length > 0) {\r\n console.log(fileList[0]);\r\n }\r\n }\r\n}\r\n","import { FileInfo } from \"./file-info\";\r\n\r\nexport class GeneralFeature {\r\n Id: string;\r\n Color: string;\r\n HtmlColor: string;\r\n HtmlHoverColor: string;\r\n SortOrder: number;\r\n FeatureType: string;\r\n TargetType: string;\r\n Target: string;\r\n LinkCausesNewWindow: boolean;\r\n Title: string;\r\n Description: string;\r\n MediaId: number;\r\n MediaFileName: string;\r\n\r\n FileInfo: FileInfo;\r\n\r\n // determined when visible (normal: HtmlColor, hover: HtmlHoverColor)\r\n BackgroundColor: string;\r\n\r\n constructor(data: any | null) {\r\n if (data) {\r\n Object.assign(this, data);\r\n }\r\n }\r\n\r\n get isMedia(): boolean {\r\n return this.TargetType.toLowerCase() === \"media\";\r\n }\r\n\r\n get isURL(): boolean {\r\n return this.TargetType.toLowerCase() === \"url\";\r\n }\r\n\r\n get isNone(): boolean {\r\n return this.TargetType.toLowerCase() === \"none\";\r\n }\r\n}\r\n","import { MobileNavigationMenu } from \"./mobile-navigation-menu\";\nimport { MobileSharedMenuItem } from \"./mobile-shared-menu-item\";\nimport { MobileSetupMenuItem } from \"./mobile-setup-menu-item\";\nimport { MobileFeatureMenuItem } from \"./mobile-feature-menu-item\";\n\nexport class MobileMenuItem {\n Title: string;\n TargetType: string;\n Target: string;\n Description: string;\n OpenInNewWindow: boolean;\n SubMenu: MobileMenuItem[];\n\n itemIndent: number;\n active: boolean;\n\n static fromNavigationMenuItem(item: MobileNavigationMenu): MobileMenuItem {\n const newItem: MobileMenuItem = new MobileMenuItem();\n newItem.Title = item.Title;\n newItem.TargetType = item.TargetType.toLowerCase();\n newItem.Target = item.TargetId;\n newItem.OpenInNewWindow = false;\n newItem.itemIndent = item.itemIndent;\n newItem.active = item.active;\n\n return newItem;\n }\n\n static fromSharedMenuItem(item: MobileSharedMenuItem): MobileMenuItem {\n const newItem: MobileMenuItem = new MobileMenuItem();\n newItem.Title = item.Title;\n newItem.TargetType = item.TargetType.toLowerCase();\n newItem.Target = item.Target;\n newItem.OpenInNewWindow = item.OpenInNewWindow;\n newItem.itemIndent = 0;\n newItem.active = false;\n\n return newItem;\n }\n\n static fromSetupMenuItem(item: MobileSetupMenuItem): MobileMenuItem {\n const newItem: MobileMenuItem = new MobileMenuItem();\n newItem.Title = item.Title;\n newItem.TargetType = item.TargetType.toLowerCase();\n newItem.Target = item.Target;\n newItem.OpenInNewWindow = item.OpenInNewWindow;\n newItem.itemIndent = 0;\n newItem.active = false;\n\n return newItem;\n }\n\n static fromFeaturesMenuItem(item: MobileFeatureMenuItem): MobileMenuItem {\n const newItem: MobileMenuItem = new MobileMenuItem();\n newItem.Title = item.Title;\n newItem.Description = item.Description;\n newItem.TargetType = item.TargetType.toLowerCase();\n newItem.Target = item.Target;\n newItem.OpenInNewWindow = item.OpenInNewWindow;\n newItem.itemIndent = 0;\n newItem.active = false;\n\n return newItem;\n }\n}\n","import { FileInfo } from \"./file-info\";\r\nimport { TableSpecification } from \"./table-specification\";\r\n\r\nexport class ProductDetail {\r\n Id: string;\r\n Type: string;\r\n DetailType: string;\r\n CenterPage: number;\r\n CenterSectionTitle: string;\r\n CenterSequence: number;\r\n SortOrder: number;\r\n SpecificationTableId: string;\r\n IsHeading: boolean;\r\n Title: string;\r\n Description: string;\r\n Other: string;\r\n MediaFileName: string;\r\n MediaWatermarkFileName: string;\r\n TargetProductId: string;\r\n DocumentType: string;\r\n DocumentLanguage: string;\r\n\r\n FileInfo: FileInfo;\r\n TableSpecifications: TableSpecification[];\r\n}\r\n","import { ProductQuickLink } from \"./product-quick-link\";\r\n\r\nexport class QuickLinkImage {\r\n product: ProductQuickLink;\r\n active: boolean;\r\n transition: string;\r\n}\r\n","import { FileInfo } from \"./file-info\";\r\n\r\nexport class StandardFeature {\r\n Id: string;\r\n Color: string;\r\n HtmlColor: string;\r\n HtmlHoverColor: string;\r\n TargetType: string;\r\n Target: string;\r\n LinkCausesNewWindow: boolean;\r\n Title: string;\r\n Description: string;\r\n MediaFileName: string;\r\n\r\n FileInfo: FileInfo;\r\n\r\n // determined when visible (normal: HtmlColor, hover: HtmlHoverColor)\r\n BackgroundColor: string;\r\n\r\n constructor(data: any | null) {\r\n if (data) {\r\n Object.assign(this, data);\r\n }\r\n }\r\n\r\n get isMedia(): boolean {\r\n return this.TargetType.toLowerCase() === \"media\";\r\n }\r\n\r\n get isURL(): boolean {\r\n return this.TargetType.toLowerCase() === \"url\";\r\n }\r\n\r\n get isNone(): boolean {\r\n return this.TargetType.toLowerCase() === \"none\";\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { UserService } from '@services/user.service';\r\nimport { UserCustomerAccounts } from '@models/user-customer-accounts';\r\nimport { CustomerAccount } from '@models/customer-account';\r\nimport { GlobalService } from '@services/global.service';\r\nimport { environment } from '@environment';\r\nimport { BaseComponent } from 'src/app/base/base.component';\r\n\r\n@Component({\r\n selector: 'customer-account-selector',\r\n templateUrl: './customer-account-selector.component.html',\r\n styleUrls: ['./customer-account-selector.component.less'],\r\n})\r\nexport class CustomerAccountSelectorComponent extends BaseComponent implements OnInit\r\n{\r\n protected _localImageLocation: string = environment.LocalImageLocation;\r\n\r\n busy: boolean = false;\r\n\r\n get showAccounts(): boolean {\r\n return (\r\n this.accounts &&\r\n this.accounts.Accounts &&\r\n (this.accounts.Accounts.length > 0 ||\r\n (this.accounts.Accounts.length === 1 &&\r\n this.searchCriteria !== ''))\r\n );\r\n }\r\n\r\n accounts: UserCustomerAccounts;\r\n\r\n searchHelpText: string;\r\n searchButtonTitle: string;\r\n\r\n searchCriteria: string = '';\r\n pagedAccounts: CustomerAccount[][];\r\n currentPage: number = 0;\r\n maxPages: number = 0;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private globalService: GlobalService,\r\n private router: Router\r\n ) {\r\n super();\r\n\r\n this.subscriptions.push(globalService.languageId$.subscribe(() => { this.ngOnInit(); }));\r\n }\r\n\r\n ngOnInit() {\r\n this.searchAccounts();\r\n }\r\n\r\n searchAccounts(): void {\r\n this.busy = true;\r\n this.userService\r\n .getCustomerAccountOptions(this.searchCriteria)\r\n .subscribe({\r\n next: (accounts: UserCustomerAccounts) => {\r\n this.busy = false;\r\n this.accounts = accounts;\r\n\r\n if (accounts && accounts.Accounts && accounts.Accounts.length > 0 ) {\r\n if (accounts.Accounts.length === 1 && this.searchCriteria === '') {\r\n this.pagedAccounts = [];\r\n this.accountSelected(accounts.Accounts[0]);\r\n } else {\r\n let startIdx: number = 0;\r\n let page: number = 0;\r\n this.pagedAccounts = [];\r\n do {\r\n this.pagedAccounts[page] = accounts.Accounts.slice(startIdx, startIdx + 20);\r\n startIdx += 20;\r\n page++;\r\n } while (startIdx < accounts.Accounts.length);\r\n this.maxPages = page;\r\n this.currentPage = 0;\r\n }\r\n }\r\n },\r\n error: (error: any) => {\r\n this.busy = false;\r\n this.handleError(error);\r\n }\r\n });\r\n }\r\n\r\n accountSelected(account: CustomerAccount): void {\r\n this.userService.setCustomerAccount(account, this.accounts.CustomerAccountSelectedPageId);\r\n this.router.navigate(\r\n [ this.globalService.getLanguageCode(), 'page', this.accounts.CustomerAccountSelectedPageId ]\r\n );\r\n }\r\n\r\n setPage(page: number): void {\r\n this.currentPage = page;\r\n }\r\n\r\n incrementPage(increment: number): void {\r\n this.currentPage += increment;\r\n if (this.currentPage > this.maxPages - 1) {\r\n this.currentPage = this.maxPages - 1;\r\n } else if (this.currentPage < 0) {\r\n this.currentPage = 0;\r\n }\r\n }\r\n}\r\n","\"loading\"\r\n
    \r\n
    \r\n   \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {{account.Id}}{{account.Name}}{{account.Location}}
    \r\n
    \r\n
    1\">\r\n
    \r\n \"first\"\r\n \"previous\"\r\n {{currentPage + 1}} / {{maxPages}}  \r\n \"next\"\r\n \"last\"\r\n
    \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { PageDetail } from '@models/page-detail';\r\n\r\n@Component({\r\n selector: 'events',\r\n templateUrl: './events.component.html',\r\n styleUrls: ['./events.component.less'],\r\n})\r\nexport class EventsComponent {\r\n detail: PageDetail;\r\n languageCode: string;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n protected getField(value: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\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 {{event.Title}}\r\n \r\n \r\n \r\n {{event.Location}}
    \r\n
    \r\n {{event.StartDate | date:'M/d/yyyy'}}\r\n  - {{event.EndDate | date:'M/d/yyyy'}}\r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { environment } from '@environment';\r\nimport { JobListing } from '@models/job-listing';\r\nimport { JobService } from '@services/job.service';\r\nimport { BaseComponent } from 'src/app/base/base.component';\r\n\r\n@Component({\r\n selector: 'job-listing',\r\n templateUrl: './job-listing.component.html',\r\n styleUrls: ['./job-listing.component.less'],\r\n})\r\nexport class JobListingComponent extends BaseComponent implements OnInit {\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n listings: JobListing[];\r\n languageCode: string;\r\n\r\n constructor(private jobService: JobService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.jobService.getListings().subscribe({\r\n next: (listings: JobListing[]) => {\r\n this.listings = listings;\r\n },\r\n error: (error: any) => {\r\n this.handleError(error);\r\n }\r\n });\r\n }\r\n\r\n protected getDescription(description: string): string {\r\n if (description.length > 100) {\r\n return description.substring(0, 100) + '...';\r\n }\r\n\r\n return description;\r\n }\r\n\r\n navigateToJobs(): void {\r\n window.open(\"http://usnr.applytojob.com\", \"_blank\");\r\n }\r\n}\r\n","
    \r\n\r\n\r\n\r\n\r\n
    View all jobs
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n","import { Component } from '@angular/core';\r\n\r\nimport { environment } from '@environment';\r\n\r\n@Component({\r\n selector: 'page-content-feature',\r\n templateUrl: './page-content-feature.component.html',\r\n styleUrls: ['./page-content-feature.component.less'],\r\n})\r\nexport class PageContentFeatureComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n id: string;\r\n mediaFileName: string;\r\n title: string;\r\n description: string;\r\n other: string;\r\n\r\n languageCode: string;\r\n}\r\n","
    \r\n\r\n
    \r\n \"{{title}}\"\r\n
    \r\n {{title}}
    \r\n {{other}}
    \r\n {{description}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\n\r\nimport { environment } from '@environment';\r\n\r\n@Component({\r\n selector: 'page-content-item',\r\n templateUrl: './page-content-item.component.html',\r\n styleUrls: ['./page-content-item.component.less'],\r\n})\r\nexport class PageContentItemComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n id: string;\r\n title: string;\r\n description: string;\r\n\r\n languageCode: string;\r\n}\r\n","
    \r\n \r\n \"{{title}}\"/\r\n \r\n
    \r\n {{title}}\r\n

     - {{description}}

    \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\nimport { SafeHtml, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'page-description-heading',\r\n templateUrl: './page-description-heading.component.html',\r\n styleUrls: ['./page-description-heading.component.less'],\r\n})\r\nexport class PageDescriptionHeadingComponent {\r\n heading: SafeHtml;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n setHeading(heading: string): void {\r\n this.heading = this.sanitizer.bypassSecurityTrustHtml(heading);\r\n }\r\n}\r\n","
    \r\n

    \r\n \r\n

    \r\n","import { Component } from '@angular/core';\r\nimport { SafeHtml, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'page-description',\r\n templateUrl: './page-description.component.html',\r\n styleUrls: ['./page-description.component.less'],\r\n})\r\nexport class PageDescriptionComponent {\r\n description: SafeHtml;\r\n descriptionPresent: boolean;\r\n title: SafeHtml;\r\n titlePresent: boolean;\r\n other: SafeHtml;\r\n otherPresent: boolean;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n setDescription(description: string): void {\r\n if (description === '') {\r\n this.descriptionPresent = false;\r\n } else {\r\n this.description = this.sanitizer.bypassSecurityTrustHtml(description);\r\n this.descriptionPresent = true;\r\n }\r\n }\r\n\r\n setTitle(title: string): void {\r\n if (title === '') {\r\n this.titlePresent = false;\r\n } else {\r\n this.title = this.sanitizer.bypassSecurityTrustHtml(title);\r\n this.titlePresent = true;\r\n }\r\n }\r\n\r\n setOther(other: string): void {\r\n if (other === '') {\r\n this.otherPresent = false;\r\n } else {\r\n this.other = this.sanitizer.bypassSecurityTrustHtml(other);\r\n this.otherPresent = true;\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 {\r\n Component,\r\n OnChanges,\r\n Input,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n ComponentRef,\r\n} from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { PageDetail } from '@models/page-detail';\r\nimport { GlobalService } from '@services/global.service';\r\nimport { FormDetailComponent } from '@shared/form-detail/form-detail.component';\r\nimport { Form } from '@models/form';\r\nimport { PageDescriptionHeadingComponent } from '../page-description-heading/page-description-heading.component';\r\nimport { PageDescriptionComponent } from '../page-description/page-description.component';\r\nimport { PageTableComponent } from '../page-table/page-table.component';\r\nimport { PageImageComponent } from '../page-image/page-image.component';\r\nimport { PageFeatureComponent } from '../page-feature/page-feature.component';\r\nimport { PageContentFeatureComponent } from '../page-content-feature/page-content-feature.component';\r\nimport { PageContentItemComponent } from '../page-content-item/page-content-item.component';\r\nimport { PageManualLinkComponent } from '../page-manual-link/page-manual-link.component';\r\nimport { PageMediaLinkComponent } from '../page-media-link/page-media-link.component';\r\nimport { JobListingComponent } from '../job-listing/job-listing.component';\r\nimport { EventsComponent } from '../events/events.component';\r\nimport { CustomerAccountSelectorComponent } from '../customer-account-selector/customer-account-selector.component';\r\nimport { PageVideoComponent } from '../page-video/page-video.component';\r\nimport { BaseComponent } from 'src/app/base/base.component';\r\n\r\n@Component({\r\n selector: 'page-detail',\r\n templateUrl: './page-detail.component.html',\r\n styleUrls: ['./page-detail.component.less'],\r\n})\r\nexport class PageDetailComponent extends BaseComponent implements OnChanges {\r\n @Input() details: PageDetail[] = [];\r\n\r\n private returnUrl: string = '';\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private route: ActivatedRoute,\r\n private viewContainerRef: ViewContainerRef\r\n ) {\r\n super();\r\n\r\n this.returnUrl = this.route.snapshot.queryParams.returnurl || '/';\r\n if (this.returnUrl === '/') {\r\n const refType: string = this.route.snapshot.queryParams.referringtype || '';\r\n const refId: string = this.route.snapshot.queryParams.referringid || '';\r\n this.returnUrl = refType + '/' + refId;\r\n }\r\n this.subscriptions.push(globalService.languageId$.subscribe(() => {\r\n this.ngOnChanges(null);\r\n }));\r\n }\r\n\r\n ngOnChanges(_: SimpleChanges): void {\r\n this.processDetails();\r\n }\r\n\r\n private processDetails() {\r\n this.viewContainerRef.clear();\r\n const languageCode: string = this.globalService.getLanguageCode();\r\n if (this.details) {\r\n for (const detail of this.details) {\r\n if (detail.IsHeading) {\r\n this.showHeading(detail.Title);\r\n } else {\r\n switch (detail.DetailType) {\r\n case 'Content Feature':\r\n this.showContentFeature(detail, languageCode);\r\n break;\r\n case 'Content Item':\r\n this.showContentItem(detail, languageCode);\r\n break;\r\n case 'CustAccount Selector':\r\n this.showCustomerAccountSelector(detail);\r\n break;\r\n case 'Description':\r\n this.showDescription(detail);\r\n break;\r\n case 'Event List':\r\n this.showEvents(detail, languageCode);\r\n break;\r\n case 'Feature':\r\n this.showFeature(detail);\r\n break;\r\n case 'Form':\r\n this.showForm(detail);\r\n break;\r\n case 'Header Image':\r\n break;\r\n case 'Inline Image Left':\r\n case 'Inline Image Right':\r\n case 'Inline Image Center':\r\n this.showImage(detail);\r\n break;\r\n case 'Inline Video':\r\n this.showVideo(detail);\r\n break;\r\n case 'Job List':\r\n this.showJobListings(detail, languageCode);\r\n break;\r\n case 'Manual Link':\r\n this.showManualLink(detail);\r\n break;\r\n case 'Media Link':\r\n this.showMediaLink(detail);\r\n break;\r\n case 'Summary':\r\n break;\r\n case 'Table':\r\n this.showTable(detail);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private showForm(detail: PageDetail) {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(FormDetailComponent);\r\n\r\n ref.instance.formId = detail.FormId;\r\n ref.instance.pageId = detail.Id;\r\n ref.instance.returnUrl = this.returnUrl;\r\n ref.instance.fields = new Form().convertToFormFields(detail.FormFieldDefinitions);\r\n ref.instance.dataQueryId = detail.DataQueryId;\r\n ref.instance.autoRunDataQuery = detail.AutoRunDataQuery;\r\n ref.instance.isLoginForm = detail.IsLoginForm;\r\n ref.instance.isAuthenticationForm = detail.IsAuthenticationForm;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showCustomerAccountSelector(detail: PageDetail): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(CustomerAccountSelectorComponent);\r\n\r\n ref.instance.searchHelpText = detail.Title;\r\n ref.instance.searchButtonTitle = detail.Other;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showHeading(heading: string): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageDescriptionHeadingComponent);\r\n\r\n ref.instance.setHeading(heading);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showDescription(detail: PageDetail): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageDescriptionComponent);\r\n\r\n ref.instance.setDescription(detail.Description);\r\n ref.instance.setTitle(detail.Title);\r\n ref.instance.setOther(detail.Other);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showTable(detail: PageDetail): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageTableComponent);\r\n\r\n ref.instance.rows = detail.TableSpecifications;\r\n ref.instance.prepareTable();\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showImage(detail: PageDetail): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageImageComponent);\r\n\r\n ref.instance.detail = detail;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showFeature(detail: PageDetail): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageFeatureComponent);\r\n\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showVideo(detail: PageDetail): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageVideoComponent);\r\n\r\n ref.instance.detail = detail;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showContentFeature(detail: PageDetail, languageCode: string): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageContentFeatureComponent);\r\n\r\n ref.instance.id = detail.ContentId;\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.other = detail.Other;\r\n ref.instance.mediaFileName = detail.MediaFileName;\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showContentItem(detail: PageDetail, languageCode: string): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageContentItemComponent);\r\n\r\n ref.instance.id = detail.ContentId;\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showManualLink(detail: PageDetail): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageManualLinkComponent);\r\n\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.other = detail.Other;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showMediaLink(detail: PageDetail): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(PageMediaLinkComponent);\r\n\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.other = detail.Other;\r\n ref.instance.mediaFileName = detail.MediaFileName;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showJobListings(detail: PageDetail, languageCode: string): void {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(JobListingComponent);\r\n\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showEvents(detail: PageDetail, languageCode: string): void {\r\n if (detail.Events !== undefined && detail.Events !== null) {\r\n const ref: ComponentRef =\r\n this.viewContainerRef.createComponent(EventsComponent);\r\n\r\n ref.instance.detail = detail;\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'page-feature',\r\n templateUrl: './page-feature.component.html',\r\n styleUrls: ['./page-feature.component.less'],\r\n})\r\nexport class PageFeatureComponent {\r\n title: string;\r\n description: string;\r\n}\r\n","
  • \r\n {{title}} \r\n {{description}}\r\n
  • \r\n","import { Component } from '@angular/core';\r\nimport { SafeHtml, DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { environment } from '@environment';\r\nimport { PageDetail } from '@models/page-detail';\r\n\r\n@Component({\r\n selector: 'page-image',\r\n templateUrl: './page-image.component.html',\r\n styleUrls: ['./page-image.component.less'],\r\n})\r\nexport class PageImageComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n detail: PageDetail;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n protected imageWidth(): number {\r\n if (\r\n (this.detail.DetailType === 'Inline Image Right' ||\r\n this.detail.DetailType === 'Inline Image Left') &&\r\n this.detail.FileInfo\r\n ) {\r\n return this.detail.FileInfo.Width > 300 ? 300 : this.detail.FileInfo.Width;\r\n }\r\n\r\n return 540;\r\n }\r\n\r\n protected description(): SafeHtml {\r\n return this.detail.Description === '' ? '' : this.sanitizer.bypassSecurityTrustHtml(this.detail.Description);\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n

    \r\n \"{{detail.Description}}\"\r\n '\">\r\n

    \r\n '\">\r\n
    \r\n \r\n

    \r\n \"{{detail.Description}}\"\r\n '\">\r\n

    \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'page-manual-link',\r\n templateUrl: './page-manual-link.component.html',\r\n styleUrls: ['./page-manual-link.component.less'],\r\n})\r\nexport class PageManualLinkComponent {\r\n title: string;\r\n description: string;\r\n other: string;\r\n}\r\n","

    \r\n {{title}}\r\n  - {{description}}\r\n

    \r\n","import { Component } from '@angular/core';\r\n\r\nimport { environment } from '@environment';\r\n\r\n@Component({\r\n selector: 'page-media-link',\r\n templateUrl: './page-media-link.component.html',\r\n styleUrls: ['./page-media-link.component.less'],\r\n})\r\nexport class PageMediaLinkComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n title: string;\r\n description: string;\r\n other: string;\r\n mediaFileName: string;\r\n\r\n protected getLink(): string {\r\n if (this.other !== '') {\r\n const idx = this.other.indexOf('Id=');\r\n if (idx > -1) {\r\n return this.other.substring(idx + 3);\r\n }\r\n }\r\n\r\n return this.other;\r\n }\r\n}\r\n","

    \r\n {{title}}\r\n  - {{description}}\r\n

    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\n\r\nimport { PageMenu } from '@models/menu-item';\r\nimport { GlobalService } from '@services/global.service';\r\nimport { PageService } from '@services/page.service';\r\nimport { BaseComponent } from 'src/app/base/base.component';\r\n\r\n@Component({\r\n selector: 'page-menu',\r\n templateUrl: './page-menu.component.html',\r\n styleUrls: ['./page-menu.component.less'],\r\n})\r\nexport class PageMenuComponent extends BaseComponent implements OnInit {\r\n menu: PageMenu[] = [];\r\n pageId: string;\r\n selectedMenu: PageMenu;\r\n languageCode: string;\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private pageService: PageService,\r\n private route: ActivatedRoute\r\n ) {\r\n super();\r\n\r\n this.subscriptions.push(globalService.languageId$.subscribe(() => {\r\n this.ngOnInit();\r\n }));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptions.push(this.route.params.subscribe(\r\n (params: Params) => {\r\n this.pageId = params['id'];\r\n\r\n this.pageService.getMenu(params['id']).subscribe((menu: PageMenu[]) => {\r\n this.menu = menu;\r\n if (menu !== null && menu !== undefined) {\r\n this.selectedMenu = menu.find(\r\n (page) => page.Id.toLowerCase() === this.pageId.toLowerCase()\r\n );\r\n }\r\n });\r\n }\r\n ));\r\n\r\n this.languageCode = this.globalService.getLanguageCode();\r\n }\r\n\r\n getClass(item: PageMenu) {\r\n let cssClass: any;\r\n\r\n if (item.Id.toLowerCase() === this.selectedMenu.Id.toLowerCase()) {\r\n cssClass = {\r\n menuSelected: true,\r\n menuChild: false,\r\n menuParent: false,\r\n menuSibling: false,\r\n };\r\n } else if (item.Level < this.selectedMenu.Level) {\r\n cssClass = {\r\n menuSelected: false,\r\n menuChild: false,\r\n menuParent: true,\r\n menuSibling: false,\r\n };\r\n } else if (item.Level > this.selectedMenu.Level) {\r\n cssClass = {\r\n menuSelected: false,\r\n menuChild: true,\r\n menuParent: false,\r\n menuSibling: false,\r\n };\r\n } else {\r\n cssClass = {\r\n menuSelected: false,\r\n menuChild: false,\r\n menuParent: false,\r\n menuSibling: true,\r\n };\r\n }\r\n\r\n return cssClass;\r\n }\r\n\r\n getCurrentPageId(): string {\r\n const id: string = this.route.snapshot.params['id'];\r\n if (id) {\r\n return id;\r\n }\r\n\r\n return 'home';\r\n }\r\n\r\n getCurrentPageType(): string {\r\n if (this.route.snapshot.url.length > 2) {\r\n return this.route.snapshot.url[1].path;\r\n }\r\n\r\n return 'page';\r\n }\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {{menuItem.Title}}\r\n \r\n
    \r\n
    \r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, Router, Resolve } from '@angular/router';\r\n\r\nimport { PageService } from '@services/page.service';\r\nimport { GlobalService } from '@services/global.service';\r\nimport { UserService } from '@services/user.service';\r\nimport { PageDetail } from '@models/page-detail';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { PageSummary } from '@models/page-summary';\r\n\r\n@Injectable()\r\nexport class PageResolverService implements Resolve {\r\n constructor(\r\n private pageService: PageService,\r\n private globalService: GlobalService,\r\n private router: Router,\r\n private userService: UserService\r\n ) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n // this.adalService.handleWindowCallback();\r\n\r\n const pageId: string = route.params['id'] as string;\r\n if (pageId === null) {\r\n this.router.navigate(\r\n [this.globalService.getLanguageCode(), 'page', 'error'],\r\n { queryParams: { returnUrl: state.url } }\r\n );\r\n }\r\n\r\n let languageId = route.paramMap.get('languageId');\r\n if (languageId && languageId !== '') {\r\n this.globalService.setLanguage(languageId);\r\n } else {\r\n languageId = this.globalService.getLanguage();\r\n if (!languageId) {\r\n this.globalService.setLanguage('en-us');\r\n }\r\n }\r\n return this.resolvePage(pageId, state);\r\n }\r\n\r\n async resolvePage(\r\n pageId: string,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n if (state.url.startsWith('/cp/i')) {\r\n this.router.navigate([this.globalService.getLanguageCode(), 'page', 'cpItemDetails'], { queryParams: { ItemId: pageId }});\r\n return;\r\n }\r\n return await firstValueFrom(this.pageService\r\n .getDetails(pageId))\r\n .then((summary: PageSummary) => {\r\n const languageCode: string = this.globalService.getLanguageCode();\r\n\r\n if (summary.LoginRequired) {\r\n if (summary.Details && summary.Details.length > 0) {\r\n return summary.Details;\r\n } else {\r\n sessionStorage.setItem('returnUrl', state.url);\r\n this.router.navigate([languageCode, 'page', 'login'])\r\n }\r\n } else {\r\n if (summary.Details && summary.Details.length > 0) {\r\n return summary.Details;\r\n } else {\r\n this.router.navigate([languageCode, 'page', 'error']);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { PageComponent } from './page/page.component';\r\nimport { PageResolverService } from './page-resolver.service';\r\nimport { IsSecureGuard } from '../is-secure.guard';\r\nimport { DomainAndUserGuard } from '../domain-and-user.guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: ':languageId/page/:id',\r\n component: PageComponent,\r\n resolve: { details: PageResolverService },\r\n canActivate: [IsSecureGuard, DomainAndUserGuard],\r\n },\r\n {\r\n path: ':languageId/page/:id/:subId',\r\n component: PageComponent,\r\n resolve: { details: PageResolverService },\r\n canActivate: [IsSecureGuard, DomainAndUserGuard],\r\n },\r\n {\r\n path: 'cp/i/:id',\r\n component: PageComponent,\r\n resolve: { details: PageResolverService },\r\n canActivate: [IsSecureGuard, DomainAndUserGuard],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class PageRoutingModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { TableSpecification } from '@models/table-specification';\r\n\r\n@Component({\r\n selector: 'page-table',\r\n templateUrl: './page-table.component.html',\r\n styleUrls: ['./page-table.component.less'],\r\n})\r\nexport class PageTableComponent {\r\n rows: TableSpecification[];\r\n isLessThanFullWidth: boolean;\r\n columnCount: number;\r\n\r\n prepareTable(): void {\r\n if (this.rows !== undefined && this.rows.length > 0) {\r\n let totalWidth = 0;\r\n\r\n totalWidth += this.rows[0].TitleWidth;\r\n totalWidth += this.rows[0].Column1Width;\r\n totalWidth += this.rows[0].Column2Width;\r\n totalWidth += this.rows[0].Column3Width;\r\n totalWidth += this.rows[0].Column4Width;\r\n totalWidth += this.rows[0].Column5Width;\r\n\r\n this.isLessThanFullWidth = totalWidth <= 540;\r\n\r\n this.columnCount = this.rows[0].NumberOfColumns + 1;\r\n\r\n this.rows.forEach((r) => {\r\n r.columns = [];\r\n\r\n if (r.DetailType !== 'Footnote') {\r\n r.columns.push({\r\n value: r.Title,\r\n width: this.isLessThanFullWidth ? r.TitleWidth : -1,\r\n fontWeight:\r\n r.DetailType === 'Standard' ||\r\n r.DetailType === 'Heading'\r\n ? 'bold'\r\n : 'normal',\r\n });\r\n }\r\n\r\n if (r.DetailType === 'Footnote') {\r\n r.columns.push({\r\n value: r.Column1,\r\n width: this.isLessThanFullWidth ? r.TitleWidth : -1,\r\n fontWeight: 'normal',\r\n });\r\n } else {\r\n if (this.columnCount > 0) {\r\n r.columns.push({\r\n value: r.Column1,\r\n width: this.isLessThanFullWidth ? r.Column1Width : -1,\r\n fontWeight: r.DetailType === 'Heading' ? 'bold' : 'normal',\r\n });\r\n }\r\n if (this.columnCount > 1) {\r\n r.columns.push({\r\n value: r.Column2,\r\n width: this.isLessThanFullWidth ? r.Column2Width : -1,\r\n fontWeight: r.DetailType === 'Heading' ? 'bold' : 'normal',\r\n });\r\n }\r\n if (this.columnCount > 2) {\r\n r.columns.push({\r\n value: r.Column3,\r\n width: this.isLessThanFullWidth ? r.Column3Width : -1,\r\n fontWeight: r.DetailType === 'Heading' ? 'bold' : 'normal',\r\n });\r\n }\r\n if (this.columnCount > 3) {\r\n r.columns.push({\r\n value: r.Column4,\r\n width: this.isLessThanFullWidth ? r.Column4Width : -1,\r\n fontWeight: r.DetailType === 'Heading' ? 'bold' : 'normal',\r\n });\r\n }\r\n if (this.columnCount > 4) {\r\n r.columns.push({\r\n value: r.Column5,\r\n width: this.isLessThanFullWidth ? r.Column5Width : -1,\r\n fontWeight: r.DetailType === 'Heading' ? 'bold' : 'normal',\r\n });\r\n }\r\n }\r\n\r\n r.class = this.getRowClass(r.DetailType);\r\n });\r\n }\r\n }\r\n\r\n getRowClass(type: string): string {\r\n if (type === 'Footnote') {\r\n return 'tableFooter';\r\n }\r\n if (type === 'Heading') {\r\n return 'tableHeading';\r\n }\r\n\r\n return 'tableValue';\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
    \r\n {{column.value}}\r\n
    \r\n","import { Component } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { PageDetail } from '@models/page-detail';\r\nimport { environment } from '@environment';\r\n\r\n@Component({\r\n selector: 'page-video',\r\n templateUrl: './page-video.component.html',\r\n styleUrls: ['./page-video.component.less'],\r\n})\r\nexport class PageVideoComponent {\r\n detail: PageDetail;\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n showDownloadUrl: boolean = false;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n protected getVideo(): SafeHtml {\r\n if (this.detail) {\r\n let url: string = this.detail.VideoUrl;\r\n if (url.indexOf('?') > -1) {\r\n url += '&autoplay=0';\r\n } else {\r\n url += '?autoplay=0';\r\n }\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n showDownloadLink(show: boolean): void {\r\n this.showDownloadUrl = show;\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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\n\r\nimport { PageRoutingModule } from './page-routing.module';\r\nimport { SharedModule } from '@shared/shared.module';\r\nimport { ToolbarsModule } from '../toolbars/toolbars.module';\r\nimport { FootersModule } from '../footers/footers.module';\r\n\r\nimport { PageComponent } from './page/page.component';\r\nimport { PageService } from '@services/page.service';\r\nimport { PageMenuComponent } from './page-menu/page-menu.component';\r\nimport { PageDetailComponent } from './page-detail/page-detail.component';\r\nimport { PageResolverService } from './page-resolver.service';\r\nimport { PageDescriptionHeadingComponent } from './page-description-heading/page-description-heading.component';\r\nimport { PageDescriptionComponent } from './page-description/page-description.component';\r\nimport { PageTableComponent } from './page-table/page-table.component';\r\nimport { PageImageComponent } from './page-image/page-image.component';\r\nimport { PageFeatureComponent } from './page-feature/page-feature.component';\r\nimport { PageContentFeatureComponent } from './page-content-feature/page-content-feature.component';\r\nimport { PageContentItemComponent } from './page-content-item/page-content-item.component';\r\nimport { PageManualLinkComponent } from './page-manual-link/page-manual-link.component';\r\nimport { PageMediaLinkComponent } from './page-media-link/page-media-link.component';\r\nimport { JobListingComponent } from './job-listing/job-listing.component';\r\nimport { JobService } from '@services/job.service';\r\nimport { EventsComponent } from './events/events.component';\r\nimport { CustomerAccountSelectorComponent } from './customer-account-selector/customer-account-selector.component';\r\nimport { PageVideoComponent } from './page-video/page-video.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PageRoutingModule,\r\n SharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ToolbarsModule,\r\n MatSidenavModule,\r\n FootersModule,\r\n ],\r\n exports: [PageDetailComponent],\r\n providers: [\r\n PageService,\r\n PageResolverService,\r\n JobService\r\n ],\r\n declarations: [\r\n PageComponent,\r\n PageMenuComponent,\r\n PageDetailComponent,\r\n PageDescriptionHeadingComponent,\r\n PageDescriptionComponent,\r\n PageTableComponent,\r\n PageImageComponent,\r\n PageFeatureComponent,\r\n PageContentFeatureComponent,\r\n PageContentItemComponent,\r\n PageManualLinkComponent,\r\n PageMediaLinkComponent,\r\n JobListingComponent,\r\n EventsComponent,\r\n CustomerAccountSelectorComponent,\r\n PageVideoComponent,\r\n ],\r\n})\r\nexport class PageModule {}\r\n","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\n\r\ndeclare var enableClickDimensions: any;\r\n\r\nimport { GlobalService } from '@services/global.service';\r\nimport { PageDetail } from '@models/page-detail';\r\nimport { PageService } from '@services/page.service';\r\nimport { BaseComponent } from 'src/app/base/base.component';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { PageMenu } from '@models/menu-item';\r\nimport { PageSummary } from '@models/page-summary';\r\n\r\n@Component({\r\n selector: 'page',\r\n templateUrl: './page.component.html',\r\n styleUrls: ['./page.component.less'],\r\n})\r\nexport class PageComponent extends BaseComponent implements OnInit, AfterViewInit\r\n{\r\n details: PageDetail[] = [];\r\n pageId: string;\r\n menu: PageMenu[] = [];\r\n\r\n @ViewChild(\"mainMenu\") mainMenu: MatSidenav;\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private pageService: PageService,\r\n private route: ActivatedRoute,\r\n private router: Router\r\n ) {\r\n super();\r\n\r\n this.subscriptions.push(\r\n this.globalService.languageId$.subscribe(() => {\r\n this.getDetails();\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.params.subscribe((params: Params) => {\r\n this.pageId = params['id'];\r\n\r\n this.pageService.getMenu(params['id']).subscribe((menu: PageMenu[]) => {\r\n this.menu = menu;\r\n });\r\n })\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.push(this.route.data.subscribe(\r\n (data: { details: PageDetail[] }) => this.details = data.details\r\n ));\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.globalService.cookiesEnabled()) {\r\n this.globalService.setupClickDimensions();\r\n // enableClickDimensions();\r\n }\r\n }\r\n\r\n onToggleMenu(): void {\r\n if (this.mainMenu) {\r\n if (this.mainMenu.opened) {\r\n this.mainMenu.close();\r\n } else {\r\n this.mainMenu.open();\r\n }\r\n }\r\n }\r\n\r\n private getDetails(): void {\r\n const pageId = this.route.snapshot.params['id'];\r\n\r\n this.pageService.getDetails(pageId).subscribe({\r\n next: (summary: PageSummary) => {\r\n if (summary.LoginRequired) {\r\n if (summary.Details.length > 0) {\r\n this.details = summary.Details;\r\n } else {\r\n sessionStorage.setItem('returnUrl', this.router.url);\r\n this.router.navigate(['login'], { relativeTo: this.route })\r\n }\r\n } else {\r\n this.details = summary.Details;\r\n }\r\n },\r\n error: (error: any) => {\r\n this.handleError(error);\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 { Directive, Input, EventEmitter, ElementRef, OnInit, Renderer2 } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[focus]\"\r\n})\r\nexport class FocusDirective implements OnInit {\r\n @Input(\"focus\") focus: EventEmitter;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngOnInit(): void {\r\n this.focus.subscribe(() => {\r\n this.el.nativeElement.focus();\r\n });\r\n }\r\n}\r\n","import { Component, AfterViewChecked, Output, EventEmitter, Input } from \"@angular/core\";\r\n\r\nimport { ProductQuickLink } from \"@models/product-quick-link\";\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"image-view-maximized\",\r\n templateUrl: \"./image-view-maximized.component.html\",\r\n styleUrls: [\"./image-view-maximized.component.less\"]\r\n})\r\nexport class ImageViewMaximizedComponent implements AfterViewChecked {\r\n @Output() imageMaximized: EventEmitter = new EventEmitter();\r\n maximizedImageFocuser: EventEmitter = new EventEmitter();\r\n\r\n @Input() image: ProductQuickLink;\r\n\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n ngAfterViewChecked(): void {\r\n this.maximizedImageFocuser.emit(true);\r\n }\r\n\r\n hideMaximizedImage(): void {\r\n this.imageMaximized.emit(false);\r\n }\r\n\r\n encode(uriPart: string) {\r\n return encodeURIComponent(uriPart);\r\n }\r\n}\r\n","
    \r\n \"{{image?.Caption}}\"\r\n
    \r\n","import { Component, OnInit, EventEmitter, Output, Input } from \"@angular/core\";\r\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ProductQuickLink } from \"@models/product-quick-link\";\r\nimport { QuickLinkImage } from \"@models/quick-link-image\";\r\n\r\n@Component({\r\n selector: \"image-view\",\r\n templateUrl: \"./image-view.component.html\",\r\n styleUrls: [\"./image-view.component.less\"],\r\n animations: [\r\n trigger(\"imageState\", [\r\n state(\"show\", style({ opacity: 1 })),\r\n state(\"hide\", style({ opacity: 0 })),\r\n state(\"fadeIn\", style({ opacity: 1, transform: \"scale(1)\" })),\r\n state(\"fadeOut\", style({ opacity: 0, transform: \"scale(0)\" })),\r\n transition(\"* => hide\", [style({ opacity: 1 }), animate(\"200ms\", style({ opacity: 0 }))]),\r\n transition(\"* => show\", [style({ opacity: 0 }), animate(\"200ms 210ms\", style({ opacity: 1 }))]),\r\n transition(\"* => fadeIn\", [style({ opacity: 0, transform: \"scale(0)\" }), animate(\"250ms 300ms\")]),\r\n transition(\"* => fadeOut\", [style({ opacity: 1, transform: \"scale(1)\" }), animate(\"250ms\")])\r\n ])\r\n ]\r\n})\r\nexport class ImageViewComponent implements OnInit {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n @Output() shownImageChanged: EventEmitter = new EventEmitter();\r\n @Output() maximizeImage: EventEmitter = new EventEmitter();\r\n @Input() images: ProductQuickLink[] = [];\r\n @Input() maxImageWidth: number = 0;\r\n @Input()\r\n set selectedImageIndex(value: number) {\r\n if (this.viewImageIndex !== value) {\r\n if (this.viewImages !== undefined && this.viewImages.length > 0) {\r\n if (this.viewImageIndex !== undefined) {\r\n this.hideImage(this.viewImageIndex, \"hide\");\r\n }\r\n this.viewImageIndex = value;\r\n this.showImage(this.viewImageIndex, \"show\");\r\n this.updateImage();\r\n }\r\n }\r\n }\r\n get selectedImageIndex(): number {\r\n return this.viewImageIndex;\r\n }\r\n\r\n viewImageIndex: number;\r\n viewImages: QuickLinkImage[] = [];\r\n\r\n ngOnInit(): void {\r\n this.viewImages = [];\r\n if (this.images.length > 0) {\r\n const imageCount: number = this.images.length;\r\n for (let i: number = 0; i < imageCount; ++i) {\r\n this.viewImages[i] = new QuickLinkImage();\r\n this.viewImages[i].product = this.images[i];\r\n this.viewImages[i].active = false;\r\n this.viewImages[i].transition = undefined;\r\n }\r\n\r\n this.viewImages[0].active = true;\r\n\r\n this.viewImageIndex = 0;\r\n }\r\n }\r\n\r\n private setImage(increment: number): void {\r\n let newIndex: number = this.viewImageIndex + increment;\r\n if (newIndex < 0) {\r\n newIndex = this.images.length - 1;\r\n }\r\n\r\n if (newIndex >= this.images.length) {\r\n newIndex = 0;\r\n }\r\n\r\n if (newIndex !== this.viewImageIndex) {\r\n this.hideImage(this.viewImageIndex, \"hide\");\r\n this.viewImageIndex = newIndex;\r\n this.showImage(this.viewImageIndex, \"show\");\r\n this.updateImage();\r\n }\r\n }\r\n\r\n private updateImage(): void {\r\n setTimeout(() => {\r\n this.viewImages[this.viewImageIndex].active = true;\r\n this.viewImages.forEach((image) => {\r\n if (image !== this.viewImages[this.viewImageIndex]) {\r\n image.active = false;\r\n }\r\n });\r\n }, 250);\r\n\r\n this.shownImageChanged.emit(this.viewImageIndex);\r\n }\r\n\r\n hideImage(imageIndex: number, imageState: string): void {\r\n this.viewImages[imageIndex].transition = imageState;\r\n }\r\n\r\n showImage(imageIndex: number, imageState: string): void {\r\n this.viewImages[imageIndex].transition = imageState;\r\n }\r\n\r\n private getArrowWidth(image: ProductQuickLink): number {\r\n const proportionalWidth: number = Math.floor(400 / image.FileInfo.Height * image.FileInfo.Width + .5);\r\n if (proportionalWidth < this.maxImageWidth) {\r\n return (this.maxImageWidth - proportionalWidth) / 2 + 40;\r\n }\r\n\r\n return 40;\r\n }\r\n\r\n private encode(uriPart: string) {\r\n return encodeURIComponent(uriPart);\r\n }\r\n\r\n private showMaximizedImage(): void {\r\n this.maximizeImage.emit(true);\r\n }\r\n}\r\n","
    = 0\">\r\n
    \r\n
    0\" (click)=\"setImage(-1)\" [style.width.px]=\"getArrowWidth(images[viewImageIndex])\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    0\" (click)=\"setImage(1)\" [style.width.px]=\"getArrowWidth(images[viewImageIndex])\">\r\n
    \r\n
    \r\n
    \r\n

    -1\">{{viewImages[viewImageIndex].product.Caption}}


    \r\n
    \r\n
    \r\n","import { Component, OnInit, AfterViewChecked, EventEmitter, Input, Output } from \"@angular/core\";\r\n\r\nimport { ProductQuickLink } from \"@models/product-quick-link\";\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"image-viewer\",\r\n templateUrl: \"./image-viewer.component.html\",\r\n styleUrls: [\"./image-viewer.component.less\"]\r\n})\r\nexport class ImageViewerComponent implements OnInit, AfterViewChecked {\r\n @Output() imageViewerClosed: EventEmitter = new EventEmitter();\r\n\r\n @Input() images: ProductQuickLink[];\r\n @Input() productTitle: string;\r\n @Input()\r\n set show(value: boolean) {\r\n if (value !== this.showImageViewer) {\r\n this.showImageViewer = value;\r\n if (!value) {\r\n this.imageViewerClosed.emit(true);\r\n } else {\r\n this.maxImageWidth = this.getMaxImageWidth();\r\n }\r\n }\r\n }\r\n get show(): boolean {\r\n return this.showImageViewer;\r\n }\r\n\r\n private showImageViewer: boolean;\r\n\r\n selectedImageIndex: number;\r\n shownImageIndex: number;\r\n localImageLocation: string = environment.LocalImageLocation;\r\n maxImageWidth: number;\r\n imageMaximized: boolean = false;\r\n maximizedImage: ProductQuickLink;\r\n\r\n ngOnInit(): void {\r\n if (this.images && this.images.length > 0) {\r\n this.maximizedImage = this.images[0];\r\n }\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.selectedImageIndex === null || this.selectedImageIndex === undefined) {\r\n this.selectedImageIndex = 0;\r\n }\r\n\r\n if (this.shownImageIndex === null || this.shownImageIndex === undefined) {\r\n this.shownImageIndex = 0;\r\n }\r\n }\r\n\r\n onSelectedImageChanged(index: number): void {\r\n this.selectedImageIndex = index;\r\n }\r\n\r\n onShownImageChanged(index: number): void {\r\n if (this.selectedImageIndex !== index) {\r\n this.selectedImageIndex = index;\r\n }\r\n\r\n this.shownImageIndex = index;\r\n }\r\n\r\n private getMaxImageWidth(): number {\r\n if (this.images.length > 0) {\r\n let proportionalWidth: number = 0;\r\n let maxWidth: number = 0;\r\n this.images.forEach((image: ProductQuickLink) => {\r\n if (image.FileInfo !== null && image.FileInfo.Height > 0) {\r\n proportionalWidth = 400 / image.FileInfo.Height * image.FileInfo.Width;\r\n if (proportionalWidth > maxWidth) {\r\n maxWidth = proportionalWidth;\r\n }\r\n }\r\n });\r\n\r\n return Math.floor(maxWidth + .5);\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n private onShowMaximizedImage(showImage: boolean): void {\r\n if (showImage) {\r\n this.maximizedImage = this.images[this.selectedImageIndex];\r\n }\r\n this.imageMaximized = showImage;\r\n }\r\n\r\n private onKeyDown(key: any) {\r\n this.onShowMaximizedImage(false);\r\n }\r\n\r\n onBackgroundClick(): void {\r\n if (this.imageMaximized) {\r\n this.imageMaximized = false;\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n

    {{productTitle}}

    \r\n
    \r\n \"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","import { Component, OnInit } from \"@angular/core\";\r\nimport { saveAs } from \"file-saver\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ProductDetail } from \"@models/product-detail\";\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { UploadFileInfo } from \"@models/upload-file-info\";\r\nimport { FileInfo } from \"@models/file-info\";\r\n\r\n@Component({\r\n selector: \"product-ad\",\r\n templateUrl: \"./product-ad.component.html\",\r\n styleUrls: [\"./product-ad.component.less\"]\r\n})\r\nexport class ProductAdComponent implements OnInit {\r\n documentLocation: string = environment.DocumentLocation;\r\n details: ProductDetail[];\r\n\r\n sectionDetails: ProductDetail[];\r\n sectionHeader: ProductDetail;\r\n\r\n showUpload: boolean;\r\n\r\n uploadDocumentType: string;\r\n uploadDocumentFile: string;\r\n uploadDocumentDescription: string;\r\n\r\n uploadedFileName: string;\r\n uploadedFileType: string;\r\n uploadedOriginalFileName: string;\r\n\r\n constructor(private productService: ProductService) { }\r\n\r\n ngOnInit() {\r\n this.findHeader();\r\n }\r\n\r\n private findHeader(): void {\r\n if (this.details) {\r\n const header = this.details.filter(x => x.IsHeading);\r\n if (header) {\r\n this.sectionHeader = header[0];\r\n }\r\n\r\n this.sectionDetails = this.details.filter(x => !x.IsHeading);\r\n }\r\n }\r\n\r\n getFile(documentType: string, fileInfo: FileInfo): void {\r\n if (fileInfo) {\r\n this.productService.getFile(documentType, \"InternalDoc\", fileInfo.FileName).subscribe(\r\n (data: Blob) => { saveAs(data, fileInfo.FileName); }\r\n );\r\n }\r\n }\r\n\r\n toggleUpload(): void {\r\n this.showUpload = !this.showUpload;\r\n }\r\n\r\n fileChanged($event: any): void {\r\n const fileList: FileList = $event.target.files;\r\n if (fileList.length > 0) {\r\n const formData: FormData = new FormData();\r\n formData.append(\"file[]\", fileList[0]);\r\n\r\n this.productService.uploadFile(formData).subscribe(\r\n (fileInfo: any) => {\r\n this.uploadedFileName = fileInfo.FileName;\r\n this.uploadedFileType = fileInfo.FileType;\r\n this.uploadedOriginalFileName = fileInfo.OriginalFileName;\r\n }\r\n );\r\n }\r\n }\r\n\r\n uploadFile(): void {\r\n const fileData: UploadFileInfo = {\r\n detailType: \"Ad\",\r\n documentType: \"\",\r\n documentDescription: this.uploadDocumentDescription,\r\n fileType: this.uploadedFileType,\r\n fileName: this.uploadedFileName,\r\n originalFileName: this.uploadedOriginalFileName\r\n };\r\n\r\n this.productService.newDocument(this.details[0].Id, fileData).subscribe(\r\n () => {\r\n this.showUpload = false;\r\n // trigger refresh of list...\r\n const detail: ProductDetail = new ProductDetail();\r\n detail.Other = this.uploadedFileType;\r\n detail.DocumentType = this.uploadDocumentType;\r\n detail.Title = this.uploadedOriginalFileName;\r\n\r\n this.details.push(detail);\r\n\r\n this.findHeader();\r\n }\r\n );\r\n }\r\n}\r\n","

    \r\n {{sectionHeader.Title}}\r\n Upload\r\n

    \r\n
    \r\n \r\n \r\n
    \r\n 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
    TypeNameSizeLanguage
    {{detail.Other | uppercase}}{{detail.Title}}{{detail.FileInfo.FileSize | sizeConversion:1}}{{detail.DocumentLanguage | uppercase}}
    \r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { ProductDetail } from \"@models/product-detail\";\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"product-children\",\r\n templateUrl: \"./product-children.component.html\",\r\n styleUrls: [\"./product-children.component.less\"]\r\n})\r\nexport class ProductChildrenComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n childRows: ProductDetail[][];\r\n\r\n languageCode: string;\r\n\r\n setChildren(children: ProductDetail[]): void {\r\n const rowCount: number = Math.trunc((children.length + 3) / 4);\r\n\r\n if (this.childRows !== undefined) {\r\n this.childRows.length = 0;\r\n }\r\n\r\n this.childRows = [];\r\n for (let i: number = 0; i < rowCount; ++i) {\r\n for (let j = 0; j < 4; ++j) {\r\n if ((i * 4) + j >= children.length) {\r\n break;\r\n }\r\n\r\n if (this.childRows[i] === undefined) {\r\n this.childRows[i] = [];\r\n }\r\n\r\n this.childRows[i][j] = children[(i * 4) + j];\r\n }\r\n }\r\n }\r\n}\r\n","\r\n","import { Component } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"product-description\",\r\n templateUrl: \"./product-description.component.html\",\r\n styleUrls: [\"./product-description.component.less\"]\r\n})\r\nexport class ProductDescriptionComponent {\r\n description: SafeHtml;\r\n descriptionPresent: boolean;\r\n title: SafeHtml;\r\n titlePresent: boolean;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n setDescription(description: string): void {\r\n if (description === \"\") {\r\n this.descriptionPresent = false;\r\n } else {\r\n this.description = this.sanitizer.bypassSecurityTrustHtml(description);\r\n this.descriptionPresent = true;\r\n }\r\n }\r\n\r\n setTitle(title: string): void {\r\n if (title === \"\") {\r\n this.titlePresent = false;\r\n } else {\r\n this.title = this.sanitizer.bypassSecurityTrustHtml(title);\r\n this.titlePresent = true;\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 { Component, OnInit } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"product-detail-heading\",\r\n templateUrl: \"./product-detail-heading.component.html\",\r\n styleUrls: [\"./product-detail-heading.component.less\"]\r\n})\r\nexport class ProductDetailHeadingComponent {\r\n heading: SafeHtml;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n setHeading(heading: string): void {\r\n this.heading = this.sanitizer.bypassSecurityTrustHtml(heading);\r\n }\r\n}\r\n","
    \r\n

    \r\n \r\n

    \r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { ProductDetailGroup } from \"@models/product-detail-group\";\r\n\r\n@Component({\r\n selector: \"product-detail-tab-container\",\r\n templateUrl: \"./product-detail-tab-container.component.html\",\r\n styleUrls: [\"./product-detail-tab-container.component.less\"]\r\n})\r\nexport class ProductDetailTabContainerComponent {\r\n tab: ProductDetailGroup;\r\n productId: string;\r\n isShowing: string = \"none\";\r\n\r\n show(): void {\r\n this.isShowing = \"block\";\r\n }\r\n\r\n hide(): void {\r\n this.isShowing = \"none\";\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n ComponentRef,\r\n ComponentFactory,\r\n OnDestroy\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { ProductDetail } from \"@models/product-detail\";\r\n// import { ProductDetailTabContainerComponent } from \"../product-detail-tab-container/product-detail-tab-container.component\";\r\nimport { ProductInternalDetails } from \"@models/product-internal-details\";\r\nimport { ProductDetailHeadingComponent } from \"../product-detail-heading/product-detail-heading.component\";\r\nimport { ProductChildrenComponent } from \"../product-children/product-children.component\";\r\nimport { ProductRelatedComponent } from \"../product-related/product-related.component\";\r\nimport { ProductSummaryComponent } from \"../product-summary/product-summary.component\";\r\nimport { ProductDescriptionComponent } from \"../product-description/product-description.component\";\r\nimport { ProductFeatureComponent } from \"../product-feature/product-feature.component\";\r\nimport { ProductTestimonialComponent } from \"../product-testimonial/product-testimonial.component\";\r\nimport { ProductTableComponent } from \"../product-table/product-table.component\";\r\nimport { ProductInternalDocComponent } from \"../product-internal-doc/product-internal-doc.component\";\r\nimport { ProductDirectMailingComponent } from \"../product-direct-mailing/product-direct-mailing.component\";\r\nimport { ProductAdComponent } from \"../product-ad/product-ad.component\";\r\nimport { ProductMediaLinkComponent } from \"../product-media-link/product-media-link.component\";\r\n\r\n@Component({\r\n selector: \"product-detail-tab\",\r\n templateUrl: \"./product-detail-tab.component.html\",\r\n styleUrls: [\"./product-detail-tab.component.less\"]\r\n})\r\nexport class ProductDetailTabComponent implements OnInit, OnDestroy {\r\n @Input() tabId: string;\r\n @Input() productId: string;\r\n\r\n private detailSubscription: Subscription;\r\n private childrenSubscription: Subscription;\r\n private relatedSubscription: Subscription;\r\n private internalsSubscription: Subscription;\r\n\r\n constructor(\r\n private productService: ProductService,\r\n private globalService: GlobalService,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.detailSubscription = this.productService.getDetails(this.productId).subscribe(\r\n (response: ProductDetail[]) => { this.processDetails(response); }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.detailSubscription) {\r\n this.detailSubscription.unsubscribe();\r\n }\r\n if (this.childrenSubscription) {\r\n this.childrenSubscription.unsubscribe();\r\n }\r\n if (this.relatedSubscription) {\r\n this.relatedSubscription.unsubscribe();\r\n }\r\n if (this.internalsSubscription) {\r\n this.internalsSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n private processDetails(details: ProductDetail[]) {\r\n const languageCode: string = this.globalService.getLanguageCode();\r\n if (details !== undefined && details !== null) {\r\n for (const detail of details.filter(d => String(d.CenterPage) === this.tabId)) {\r\n switch (detail.DetailType) {\r\n case \"Summary\":\r\n this.showSummary(detail);\r\n break;\r\n case \"Description\":\r\n this.showDescription(detail);\r\n break;\r\n case \"Feature\":\r\n this.showFeature(detail);\r\n break;\r\n case \"Testimonial\":\r\n this.showTestimonial(detail);\r\n break;\r\n case \"Image\":\r\n break;\r\n case \"Specification\":\r\n this.showTable(detail);\r\n break;\r\n case \"Media Link\":\r\n this.showMediaLink(detail);\r\n break;\r\n case \"Media Feature\":\r\n break;\r\n case \"InternalDoc\":\r\n break;\r\n case \"DirectMail\":\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.childrenSubscription = this.productService.getChildren(this.productId).subscribe(\r\n (response: ProductDetail[]) => { this.processChildren(response, languageCode); }\r\n );\r\n\r\n this.relatedSubscription = this.productService.getRelated(this.productId).subscribe(\r\n (response: ProductDetail[]) => { this.processRelated(response, languageCode); }\r\n );\r\n\r\n this.internalsSubscription = this.productService.getInternalDetails(this.productId).subscribe(\r\n (response: ProductInternalDetails) => { this.processInternalDetails(response); }\r\n );\r\n }\r\n\r\n private processInternalDetails(internalDetails: ProductInternalDetails): void {\r\n if (internalDetails) {\r\n if (internalDetails.DocumentLibrary.length > 0) {\r\n if (String(internalDetails.DocumentLibrary[0].CenterPage) === this.tabId) {\r\n this.showInternalDocs(internalDetails.DocumentLibrary);\r\n }\r\n }\r\n if (internalDetails.DirectMailings.length > 0) {\r\n if (String(internalDetails.DirectMailings[0].CenterPage) === this.tabId) {\r\n this.showDirectMailings(internalDetails.DirectMailings);\r\n }\r\n }\r\n if (internalDetails.Ads.length > 0) {\r\n if (String(internalDetails.Ads[0].CenterPage) === this.tabId) {\r\n this.showAds(internalDetails.Ads);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private processChildren(children: ProductDetail[], languageCode: string): void {\r\n if (children !== undefined && children !== null && children.length > 0) {\r\n if (String(children[0].CenterPage) === this.tabId) {\r\n this.showChildren(children, languageCode);\r\n }\r\n }\r\n }\r\n\r\n private processRelated(relatedProducts: ProductDetail[], languageCode: string): void {\r\n if (relatedProducts !== undefined && relatedProducts !== null && relatedProducts.length > 0) {\r\n if (relatedProducts[0].IsHeading && relatedProducts.length === 1) {\r\n return;\r\n }\r\n\r\n if (String(relatedProducts[0].CenterPage) === this.tabId) {\r\n if (relatedProducts[0].IsHeading && relatedProducts.length > 1) {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductDetailHeadingComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setHeading(relatedProducts[0].Title);\r\n ref.changeDetectorRef.detectChanges();\r\n\r\n relatedProducts.splice(0, 1);\r\n }\r\n\r\n this.showRelated(relatedProducts, languageCode);\r\n }\r\n }\r\n }\r\n\r\n private showChildren(children: ProductDetail[], languageCode: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductChildrenComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setChildren(children);\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showRelated(relatedProducts: ProductDetail[], languageCode: string): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductRelatedComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setRelated(relatedProducts);\r\n ref.instance.languageCode = languageCode;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showSummary(detail: ProductDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductSummaryComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setDescription(detail.Description);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showDescription(detail: ProductDetail): void {\r\n if (detail.IsHeading) {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductDetailHeadingComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setHeading(detail.Title);\r\n ref.changeDetectorRef.detectChanges();\r\n } else {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductDescriptionComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setDescription(detail.Description);\r\n ref.instance.setTitle(detail.Title);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n private showFeature(detail: ProductDetail): void {\r\n if (detail.IsHeading) {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductDetailHeadingComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.setHeading(detail.Title);\r\n ref.changeDetectorRef.detectChanges();\r\n } else {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductFeatureComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n private showTestimonial(detail: ProductDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductTestimonialComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.detail = detail;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showTable(detail: ProductDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductTableComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.rows = detail.TableSpecifications;\r\n ref.instance.prepareTable();\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n showMediaLink(detail: ProductDetail): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductMediaLinkComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.title = detail.Title;\r\n ref.instance.description = detail.Description;\r\n ref.instance.other = detail.Other;\r\n ref.instance.mediaFileName = detail.MediaFileName;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showInternalDocs(details: ProductDetail[]): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductInternalDocComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.details = details;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showDirectMailings(details: ProductDetail[]): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductDirectMailingComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.details = details;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showAds(details: ProductDetail[]): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductAdComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.details = details;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n Input,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n ComponentFactory,\r\n ComponentRef\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { ProductDetail } from \"@models/product-detail\";\r\nimport { ProductDetailGroup } from \"@models/product-detail-group\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { ProductTabHeadersComponent } from \"../product-tab-headers/product-tab-headers.component\";\r\n\r\n@Component({\r\n selector: \"product-detail\",\r\n templateUrl: \"./product-detail.component.html\",\r\n styleUrls: [\"./product-detail.component.less\"]\r\n})\r\nexport class ProductDetailComponent implements OnDestroy, OnChanges {\r\n private subscription: Subscription;\r\n private tabsSubscription: Subscription;\r\n private details: ProductDetail[];\r\n @Input() tabs: ProductDetailGroup[];\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private productService: ProductService,\r\n private route: ActivatedRoute,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef\r\n ) {\r\n this.subscription = globalService.languageId$.subscribe(\r\n () => { this.ngOnChanges(null); }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.processTabs();\r\n }\r\n\r\n private processTabs(): void {\r\n this.viewContainerRef.clear();\r\n if (this.tabs !== undefined) {\r\n this.showTabHeaders(this.tabs);\r\n }\r\n }\r\n\r\n private showTabHeaders(tabs: ProductDetailGroup[]): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductTabHeadersComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.tabs = tabs;\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { saveAs } from \"file-saver\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ProductDetail } from \"@models/product-detail\";\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { UploadFileInfo } from \"@models/upload-file-info\";\r\nimport { FileInfo } from \"@models/file-info\";\r\n\r\n@Component({\r\n selector: \"product-direct-mailing\",\r\n templateUrl: \"./product-direct-mailing.component.html\",\r\n styleUrls: [\"./product-direct-mailing.component.less\"]\r\n})\r\nexport class ProductDirectMailingComponent implements OnInit {\r\n documentLocation: string = environment.DocumentLocation;\r\n details: ProductDetail[];\r\n\r\n sectionDetails: ProductDetail[];\r\n sectionHeader: ProductDetail;\r\n\r\n showUpload: boolean;\r\n\r\n uploadDocumentType: string = \"\";\r\n uploadDocumentFile: string = \"\";\r\n uploadDocumentDescription: string = \"\";\r\n\r\n uploadedFileName: string = \"\";\r\n uploadedFileType: string = \"\";\r\n uploadedOriginalFileName: string = \"\";\r\n\r\n constructor(private productService: ProductService) { }\r\n\r\n ngOnInit() {\r\n this.findHeader();\r\n }\r\n\r\n private findHeader(): void {\r\n if (this.details) {\r\n const header = this.details.filter(x => x.IsHeading);\r\n if (header) {\r\n this.sectionHeader = header[0];\r\n }\r\n\r\n this.sectionDetails = this.details.filter(x => !x.IsHeading);\r\n }\r\n }\r\n\r\n getFile(documentType: string, fileInfo: FileInfo): void {\r\n if (fileInfo) {\r\n this.productService.getFile(documentType, \"InternalDoc\", fileInfo.FileName).subscribe(\r\n (data: Blob) => { saveAs(data, fileInfo.FileName); }\r\n );\r\n }\r\n }\r\n\r\n toggleUpload(): void {\r\n this.showUpload = !this.showUpload;\r\n }\r\n\r\n fileChanged($event: any): void {\r\n const fileList: FileList = $event.target.files;\r\n if (fileList.length > 0) {\r\n const formData: FormData = new FormData();\r\n formData.append(\"file[]\", fileList[0]);\r\n\r\n this.productService.uploadFile(formData).subscribe(\r\n (fileInfo: any) => {\r\n this.uploadedFileName = fileInfo.FileName;\r\n this.uploadedFileType = fileInfo.FileType;\r\n this.uploadedOriginalFileName = fileInfo.OriginalFileName;\r\n }\r\n );\r\n }\r\n }\r\n\r\n uploadFile(): void {\r\n const fileData: UploadFileInfo = {\r\n detailType: \"Direct Mail\",\r\n documentType: \"\",\r\n documentDescription: this.uploadDocumentDescription,\r\n fileType: this.uploadedFileType,\r\n fileName: this.uploadedFileName,\r\n originalFileName: this.uploadedOriginalFileName\r\n };\r\n\r\n this.productService.newDocument(this.details[0].Id, fileData).subscribe(\r\n () => {\r\n this.showUpload = false;\r\n // trigger refresh of list...\r\n const detail: ProductDetail = new ProductDetail();\r\n detail.Other = this.uploadedFileType;\r\n detail.DocumentType = this.uploadDocumentType;\r\n detail.Title = this.uploadedOriginalFileName;\r\n\r\n this.details.push(detail);\r\n\r\n this.findHeader();\r\n }\r\n );\r\n }\r\n}\r\n","

    \r\n {{sectionHeader.Title}}\r\n Upload\r\n

    \r\n
    \r\n \r\n \r\n
    \r\n 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
    TypeNameSizeLanguage
    {{detail.Other | uppercase}}{{detail.Title}}{{detail.FileInfo.FileSize | sizeConversion:1}}{{detail.DocumentLanguage | uppercase}}
    \r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"product-feature\",\r\n templateUrl: \"./product-feature.component.html\",\r\n styleUrls: [\"./product-feature.component.less\"]\r\n})\r\nexport class ProductFeatureComponent {\r\n title: string;\r\n description: string;\r\n}\r\n","
  • \r\n {{title}} \r\n {{description}}\r\n
  • \r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { saveAs } from \"file-saver\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ProductDetail } from \"@models/product-detail\";\r\nimport { ProductInternalDocumentType } from \"@models/product-internal-document-type\";\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { UploadFileInfo } from \"@models/upload-file-info\";\r\nimport { FileInfo } from \"@models/file-info\";\r\n\r\n@Component({\r\n selector: \"product-internal-doc\",\r\n templateUrl: \"./product-internal-doc.component.html\",\r\n styleUrls: [\"./product-internal-doc.component.less\"]\r\n})\r\nexport class ProductInternalDocComponent implements OnInit {\r\n showUpload: boolean;\r\n\r\n documentLocation: string = environment.DocumentLocation;\r\n details: ProductDetail[];\r\n documentTypes: ProductInternalDocumentType[];\r\n\r\n sectionDetails: ProductDetail[];\r\n sectionHeader: ProductDetail;\r\n\r\n uploadDocumentType: string;\r\n uploadDocumentFile: string;\r\n uploadDocumentDescription: string;\r\n\r\n uploadedFileName: string;\r\n uploadedFileType: string;\r\n uploadedOriginalFileName: string;\r\n\r\n constructor(private productService: ProductService) { }\r\n\r\n ngOnInit() {\r\n this.findHeader();\r\n this.getDocumentTypes();\r\n }\r\n\r\n private findHeader(): void {\r\n if (this.details) {\r\n const header = this.details.filter(x => x.IsHeading);\r\n if (header) {\r\n this.sectionHeader = header[0];\r\n }\r\n\r\n this.sectionDetails = this.details.filter(x => !x.IsHeading);\r\n }\r\n }\r\n\r\n getFile(documentType: string, fileInfo: FileInfo): void {\r\n if (fileInfo) {\r\n this.productService.getFile(documentType, \"InternalDoc\", fileInfo.FileName).subscribe(\r\n (data: Blob) => { saveAs(data, fileInfo.FileName); }\r\n );\r\n }\r\n }\r\n\r\n getDocumentTypes(): void {\r\n this.productService.getInternalDocumentTypes().subscribe(\r\n (docTypes: ProductInternalDocumentType[]) => { this.documentTypes = docTypes; }\r\n );\r\n }\r\n\r\n toggleUpload(): void {\r\n this.showUpload = !this.showUpload;\r\n }\r\n\r\n fileChanged($event: any): void {\r\n const fileList: FileList = $event.target.files;\r\n if (fileList.length > 0) {\r\n const formData: FormData = new FormData();\r\n formData.append(\"file[]\", fileList[0]);\r\n\r\n this.productService.uploadFile(formData).subscribe(\r\n (fileInfo: any) => {\r\n this.uploadedFileName = fileInfo.FileName;\r\n this.uploadedFileType = fileInfo.FileType;\r\n this.uploadedOriginalFileName = fileInfo.OriginalFileName;\r\n }\r\n );\r\n }\r\n }\r\n\r\n uploadFile(): void {\r\n const fileData: UploadFileInfo = {\r\n detailType: \"InternalDoc\",\r\n documentType: this.uploadDocumentType,\r\n documentDescription: this.uploadDocumentDescription,\r\n fileType: this.uploadedFileType,\r\n fileName: this.uploadedFileName,\r\n originalFileName: this.uploadedOriginalFileName\r\n };\r\n\r\n this.productService.newDocument(this.details[0].Id, fileData).subscribe(\r\n () => {\r\n this.showUpload = false;\r\n // trigger refresh of list...\r\n const detail: ProductDetail = new ProductDetail();\r\n detail.Other = this.uploadedFileType;\r\n detail.DocumentType = this.uploadDocumentType;\r\n detail.Title = this.uploadDocumentDescription;\r\n\r\n this.details.push(detail);\r\n\r\n this.findHeader();\r\n }\r\n );\r\n }\r\n}\r\n","

    \r\n {{sectionHeader.Title}}\r\n Upload\r\n

    \r\n
    \r\n Document Type \r\n   \r\n \r\n \r\n
    \r\n 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
    TypeDoc Type IdNameSize
    {{detail.Other | uppercase}}{{detail.DocumentType}}{{detail.Title}}{{detail.FileInfo.FileSize | sizeConversion:1}}
    \r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"product-media-link\",\r\n templateUrl: \"./product-media-link.component.html\",\r\n styleUrls: [\"./product-media-link.component.less\"]\r\n})\r\nexport class ProductMediaLinkComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n title: string;\r\n description: string;\r\n other: string;\r\n mediaFileName: string;\r\n\r\n // private getLink(): string {\r\n // if (this.other !== \"\") {\r\n // const idx = this.other.indexOf(\"Id=\");\r\n // if (idx > -1) {\r\n // return this.other.substring(idx + 3);\r\n // }\r\n // }\r\n\r\n // return this.other;\r\n // }\r\n}\r\n","

    \r\n {{title}}\r\n  - {{description}}\r\n

    \r\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute, Params } from \"@angular/router\";\r\n\r\nimport { ProductMenu } from \"@models/menu-item\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { ProductService } from \"@services/product.service\";\r\n\r\n@Component({\r\n selector: \"product-menu\",\r\n templateUrl: \"./product-menu.component.html\",\r\n styleUrls: [\"./product-menu.component.less\"]\r\n})\r\nexport class ProductMenuComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription;\r\n private routeSubscription: Subscription;\r\n\r\n menu: ProductMenu[];\r\n productId: string;\r\n selectedMenu: ProductMenu;\r\n\r\n languageCode: string;\r\n\r\n constructor(private globalService: GlobalService, private productService: ProductService, private route: ActivatedRoute) {\r\n this.subscription = globalService.languageId$.subscribe(\r\n () => { this.ngOnInit(); }\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routeSubscription = this.route.params.subscribe(\r\n (params: Params) => {\r\n this.productId = params[\"id\"];\r\n\r\n this.productService.getMenu(params[\"id\"]).subscribe(\r\n (menu: ProductMenu[]) => {\r\n this.menu = menu;\r\n if (menu) {\r\n this.selectedMenu = menu.find(product => product.Id.toLowerCase() === this.productId.toLowerCase());\r\n }\r\n });\r\n }\r\n );\r\n\r\n this.languageCode = this.globalService.getLanguageCode();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.routeSubscription) {\r\n this.routeSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n getClass(item: ProductMenu) {\r\n let cssClass: any;\r\n\r\n if (item.Id.toLowerCase() === this.selectedMenu.Id.toLowerCase()) {\r\n cssClass = { \"menuSelected\": true, \"menuChild\": false, \"menuParent\": false, \"menuSibling\": false };\r\n } else if (item.Level < this.selectedMenu.Level) {\r\n cssClass = { \"menuSelected\": false, \"menuChild\": false, \"menuParent\": true, \"menuSibling\": false };\r\n } else if (item.Level > this.selectedMenu.Level) {\r\n cssClass = { \"menuSelected\": false, \"menuChild\": true, \"menuParent\": false, \"menuSibling\": false };\r\n } else { // item.Level === this.selectedMenu.Level\r\n cssClass = { \"menuSelected\": false, \"menuChild\": false, \"menuParent\": false, \"menuSibling\": true };\r\n }\r\n\r\n return cssClass;\r\n }\r\n}\r\n","
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {{menuItem.Title}}\r\n \r\n
    \r\n
    \r\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute, Params } from \"@angular/router\";\r\n\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { SharedService } from \"@services/shared.service\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { environment } from \"@environment\";\r\nimport { ProductQuickLink } from \"@models/product-quick-link\";\r\nimport { SharedHeader } from \"@models/shared-header\";\r\n\r\n@Component({\r\n selector: \"product-quick-link\",\r\n templateUrl: \"./product-quick-link.component.html\",\r\n styleUrls: [\"./product-quick-link.component.less\"]\r\n})\r\nexport class ProductQuickLinkComponent implements OnInit, OnDestroy {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n private subscription: Subscription;\r\n private routeSubscription: Subscription;\r\n\r\n links: ProductQuickLink[] = [];\r\n productTitle: string;\r\n showImages: boolean = false;\r\n showVideos: boolean = false;\r\n imageGalleryImage: string = \"\";\r\n imageGalleryImageHover: string = \"\";\r\n videoGalleryImage: string = \"\";\r\n videoGalleryImageHover: string = \"\";\r\n\r\n imageGalleryStyle: string = \"\";\r\n videoGalleryStyle: string = \"\";\r\n\r\n images: ProductQuickLink[] = [];\r\n videos: ProductQuickLink[] = [];\r\n\r\n constructor(\r\n private productService: ProductService,\r\n private sharedService: SharedService,\r\n private globalService: GlobalService,\r\n private route: ActivatedRoute\r\n ) {\r\n this.subscription = globalService.languageId$.subscribe(\r\n () => { this.ngOnInit(); }\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routeSubscription = this.route.params.subscribe(\r\n (params: Params) => {\r\n this.productService.getQuicklinks(params[\"id\"]).subscribe(\r\n (links: ProductQuickLink[]) => {\r\n this.processLinks(links);\r\n }\r\n );\r\n\r\n this.sharedService.getHeader(params[\"id\"]).subscribe(\r\n (header: SharedHeader) => {\r\n this.productTitle = header.Title;\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.routeSubscription) {\r\n this.routeSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n hover(type: string): void {\r\n if (type === \"image\") {\r\n this.imageGalleryStyle = this.imageGalleryImageHover;\r\n } else { // if (type === \"video\") {\r\n this.videoGalleryStyle = this.videoGalleryImageHover;\r\n }\r\n }\r\n\r\n clear(type: string): void {\r\n if (type === \"image\") {\r\n this.imageGalleryStyle = this.imageGalleryImage;\r\n } else { // if (type === \"video\") {\r\n this.videoGalleryStyle = this.videoGalleryImage;\r\n }\r\n }\r\n\r\n private processLinks(links: ProductQuickLink[]): void {\r\n this.images = [];\r\n this.videos = [];\r\n if (links !== null && links !== undefined) {\r\n links.forEach((link) => {\r\n if (link.MediaType.toLowerCase() === \"image\") {\r\n this.images.push(link);\r\n } else if (link.MediaType.toLowerCase() === \"video\") {\r\n this.videos.push(link);\r\n // this.getVideoThumbnails(\"\");\r\n } else if (link.MediaType.toLowerCase() === \"button\") {\r\n if (link.Caption.toLowerCase() === \"image gallery\") {\r\n this.imageGalleryImage = `url('${environment.ImageLocation}${link.FileInfo.FileName}')`;\r\n this.imageGalleryImageHover = `url('${environment.ImageLocation}${link.HoverMediaFileName}')`;\r\n } else { // \"video gallery\"\r\n this.videoGalleryImage = `url('${environment.ImageLocation}${link.FileInfo.FileName}')`;\r\n this.videoGalleryImageHover = `url('${environment.ImageLocation}${link.HoverMediaFileName}')`;\r\n }\r\n }\r\n });\r\n\r\n this.imageGalleryStyle = this.imageGalleryImage;\r\n this.videoGalleryStyle = this.videoGalleryImage;\r\n }\r\n\r\n this.links = links === null ? [] : links;\r\n\r\n const urlSegment: string = this.route.snapshot.url[this.route.snapshot.url.length - 1].path;\r\n if (urlSegment === \"images\" || urlSegment === \"image\") {\r\n this.showImages = true;\r\n } else if (urlSegment === \"videos\" || urlSegment === \"video\") {\r\n this.showVideos = true;\r\n }\r\n }\r\n\r\n videoLinkExists(): boolean {\r\n return this.videos !== null && this.videos.length > 0;\r\n }\r\n\r\n imageLinkExists(): boolean {\r\n return this.images !== null && this.images.length > 0;\r\n }\r\n\r\n onShowVideos(): void {\r\n this.showVideos = true;\r\n }\r\n\r\n onShowImages(): void {\r\n this.showImages = true;\r\n }\r\n\r\n onImageViewerClosed(closed: boolean): void {\r\n this.showImages = false;\r\n }\r\n\r\n onVideoViewerClosed(closed: boolean): void {\r\n this.showVideos = false;\r\n }\r\n\r\n getVideoThumbnails(videoId: string) {\r\n videoId = \"6271487\";\r\n this.productService.getVideoThumbnails(videoId).subscribe(\r\n (test: string) => {\r\n console.log(test);\r\n }\r\n );\r\n }\r\n}\r\n","
    0\">\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n\r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ProductDetail } from \"@models/product-detail\";\r\n\r\n@Component({\r\n selector: \"product-related\",\r\n templateUrl: \"./product-related.component.html\",\r\n styleUrls: [\"./product-related.component.less\"]\r\n})\r\nexport class ProductRelatedComponent {\r\n private imagesPerRow: number = 3;\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n relatedRows: ProductDetail[][];\r\n\r\n languageCode: string;\r\n\r\n setRelated(relatedProducts: ProductDetail[]): void {\r\n const rowCount: number = Math.trunc((relatedProducts.length + (this.imagesPerRow - 1)) / this.imagesPerRow);\r\n\r\n if (this.relatedRows !== undefined) {\r\n this.relatedRows.length = 0;\r\n }\r\n\r\n this.relatedRows = [];\r\n for (let i: number = 0; i < rowCount; ++i) {\r\n for (let j: number = 0; j < this.imagesPerRow; ++j) {\r\n if ((i * this.imagesPerRow) + j >= relatedProducts.length) {\r\n break;\r\n }\r\n\r\n if (this.relatedRows[i] === undefined) {\r\n this.relatedRows[i] = [];\r\n }\r\n\r\n this.relatedRows[i][j] = relatedProducts[(i * this.imagesPerRow) + j];\r\n }\r\n }\r\n }\r\n}\r\n","
    \r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Resolve, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\r\n\r\nimport { ProductDetailGroup } from \"@models/product-detail-group\";\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { GlobalService } from \"@services/global.service\";\r\n\r\n@Injectable()\r\nexport class ProductResolverService implements Resolve {\r\n constructor(private productService: ProductService, private globalService: GlobalService, private router: Router) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n const productId: string = route.params[\"id\"] as string;\r\n if (productId === null) {\r\n this.router.navigate([this.globalService.getLanguageCode(), \"page\", \"error\"], { queryParams: { dt: 1, returnUrl: state.url } });\r\n }\r\n\r\n let languageId = route.paramMap.get(\"languageId\");\r\n if (languageId && languageId !== \"\") {\r\n this.globalService.setLanguage(languageId);\r\n } else {\r\n languageId = this.globalService.getLanguage();\r\n if (!languageId) {\r\n this.globalService.setLanguage(\"en-us\");\r\n }\r\n }\r\n\r\n return this.resolveProduct(productId);\r\n }\r\n\r\n private resolveProduct(productId: string): Promise {\r\n return this.productService.getTabs(productId)\r\n .toPromise()\r\n .then(tabs => {\r\n if (tabs === undefined || tabs === null) {\r\n this.router.navigate([this.globalService.getLanguageCode(), \"page\", \"error\"], {queryParams: { dt: 1 }});\r\n }\r\n\r\n return tabs;\r\n });\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\n\r\nimport { ProductComponent } from \"./product/product.component\";\r\nimport { ProductResolverService } from \"./product-resolver.service\";\r\nimport { IsSecureGuard } from \"../is-secure.guard\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \":languageId/product/:id\",\r\n component: ProductComponent,\r\n resolve: { tabs: ProductResolverService },\r\n canActivate: [ IsSecureGuard ]\r\n },\r\n {\r\n path: \":languageId/product/:id/videos\",\r\n component: ProductComponent,\r\n resolve: { tabs: ProductResolverService },\r\n canActivate: [ IsSecureGuard ]\r\n },\r\n {\r\n path: \":languageId/product/:id/video\",\r\n component: ProductComponent,\r\n resolve: { tabs: ProductResolverService },\r\n canActivate: [IsSecureGuard]\r\n },\r\n {\r\n path: \":languageId/product/:id/image\",\r\n component: ProductComponent,\r\n resolve: { tabs: ProductResolverService },\r\n canActivate: [IsSecureGuard]\r\n },\r\n {\r\n path: \":languageId/product/:id/images\",\r\n component: ProductComponent,\r\n resolve: { tabs: ProductResolverService},\r\n canActivate: [ IsSecureGuard ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ProductRoutingModule { }\r\n","import { Component } from \"@angular/core\";\r\nimport { SafeHtml, DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"product-summary\",\r\n templateUrl: \"./product-summary.component.html\",\r\n styleUrls: [\"./product-summary.component.less\"]\r\n})\r\nexport class ProductSummaryComponent {\r\n description: SafeHtml;\r\n descriptionPresent: boolean;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n setDescription(description: string): void {\r\n if (description === \"\") {\r\n this.descriptionPresent = false;\r\n } else {\r\n this.description = this.sanitizer.bypassSecurityTrustHtml(description);\r\n this.descriptionPresent = true;\r\n }\r\n }\r\n}\r\n","

    \r\n","import {\r\n Component,\r\n OnInit,\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n ElementRef,\r\n AfterViewInit,\r\n ComponentFactory,\r\n ComponentRef\r\n} from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { ProductDetailGroup } from \"@models/product-detail-group\";\r\nimport { ProductDetail } from \"@models/product-detail\";\r\nimport { ProductDetailTabContainerComponent } from \"../product-detail-tab-container/product-detail-tab-container.component\";\r\n\r\n@Component({\r\n selector: \"product-tab-headers\",\r\n templateUrl: \"./product-tab-headers.component.html\",\r\n styleUrls: [\"./product-tab-headers.component.less\"]\r\n})\r\nexport class ProductTabHeadersComponent implements OnInit, AfterViewInit {\r\n tabs: ProductDetailGroup[] = [];\r\n details: ProductDetail[] = [];\r\n tabComponents: ProductDetailTabContainerComponent[] = [];\r\n activeTabId: string;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef,\r\n private route: ActivatedRoute,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.tabComponents = [];\r\n for (const tab of this.tabs) {\r\n this.createTab(tab);\r\n }\r\n\r\n if (this.tabs.length > 0) {\r\n this.activeTabId = this.tabs[0].Id;\r\n this.tabComponents[0].show();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // enableClickDimensions();\r\n // // const trackingScript = document.createElement(\"script\");\r\n // // trackingScript.type = \"text/javascript\";\r\n // // trackingScript.innerText =\r\n // // \"alert('click dimensions called'); \" +\r\n // // \"var cdAnalytics = new clickdimensions.Analytics('analytics.clickdimensions.com'); \" +\r\n // // \"cdAnalytics.setAccountKey('aT4p1R2WGAEeq1zs5bJqDq'); \" +\r\n // // \"cdAnalytics.setDomain('usnr.com'); \" +\r\n // // \"cdAnalytics.setScore(typeof(cdScore) == 'undefined' ? 0 : (cdScore == 0 ? null : cdScore)); \" +\r\n // // \"cdAnalytics.trackPage();\";\r\n // // this.elementRef.nativeElement.appendChild(trackingScript);\r\n }\r\n\r\n private createTab(tab: ProductDetailGroup): void {\r\n const factory: ComponentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(ProductDetailTabContainerComponent);\r\n const ref: ComponentRef = this.viewContainerRef.createComponent(factory);\r\n\r\n ref.instance.tab = tab;\r\n ref.instance.productId = this.route.snapshot.params[\"id\"];\r\n\r\n this.tabComponents.push(ref.instance);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private showTab(id: string) {\r\n for (const component of this.tabComponents) {\r\n if (component.tab.Id === id) {\r\n component.show();\r\n } else {\r\n component.hide();\r\n }\r\n }\r\n this.activeTabId = id;\r\n }\r\n}\r\n","
    \r\n 1\">\r\n \r\n \r\n \r\n
    \r\n {{tab.Title}}\r\n
    \r\n
    \r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { TableSpecification } from \"@models/table-specification\";\r\n\r\n@Component({\r\n selector: \"product-table\",\r\n templateUrl: \"./product-table.component.html\",\r\n styleUrls: [\"./product-table.component.less\"]\r\n})\r\nexport class ProductTableComponent {\r\n rows: TableSpecification[];\r\n isLessThanFullWidth: boolean;\r\n columnCount: number;\r\n\r\n prepareTable(): void {\r\n if (this.rows !== undefined && this.rows.length > 0) {\r\n let totalWidth: number = 0;\r\n\r\n totalWidth += (this.rows[0].Title === \"\" ? 0 : this.rows[0].TitleWidth);\r\n totalWidth += (this.rows[0].Column1 === \"\" ? 0 : this.rows[0].Column1Width);\r\n totalWidth += (this.rows[0].Column2 === \"\" ? 0 : this.rows[0].Column2Width);\r\n totalWidth += (this.rows[0].Column3 === \"\" ? 0 : this.rows[0].Column3Width);\r\n totalWidth += (this.rows[0].Column4 === \"\" ? 0 : this.rows[0].Column4Width);\r\n totalWidth += (this.rows[0].Column5 === \"\" ? 0 : this.rows[0].Column5Width);\r\n\r\n this.isLessThanFullWidth = (totalWidth <= 540);\r\n\r\n this.columnCount = this.rows[0].NumberOfColumns;\r\n\r\n this.rows.forEach((r) => {\r\n r.columns = [];\r\n\r\n if (r.DetailType !== \"Footnote\") {\r\n r.columns.push({\r\n value: r.Title,\r\n width: (this.isLessThanFullWidth ? r.TitleWidth : -1),\r\n fontWeight: (r.DetailType === \"Standard\" || r.DetailType === \"Heading\") ? \"bold\" : \"normal\"\r\n });\r\n }\r\n\r\n if (r.DetailType === \"Footnote\") {\r\n r.columns.push({\r\n value: r.Column1,\r\n width: (this.isLessThanFullWidth ? r.TitleWidth : -1),\r\n fontWeight: \"normal\"\r\n });\r\n } else {\r\n if (this.columnCount > 0) {\r\n r.columns.push({\r\n value: r.Column1,\r\n width: (this.isLessThanFullWidth ? r.Column1Width : -1),\r\n fontWeight: (r.DetailType === \"Heading\" ? \"bold\" : \"normal\")\r\n });\r\n }\r\n if (this.columnCount > 1) {\r\n r.columns.push({\r\n value: r.Column2,\r\n width: (this.isLessThanFullWidth ? r.Column2Width : -1),\r\n fontWeight: (r.DetailType === \"Heading\" ? \"bold\" : \"normal\")\r\n });\r\n }\r\n if (this.columnCount > 2) {\r\n r.columns.push({\r\n value: r.Column3,\r\n width: (this.isLessThanFullWidth ? r.Column3Width : -1),\r\n fontWeight: (r.DetailType === \"Heading\" ? \"bold\" : \"normal\")\r\n });\r\n }\r\n if (this.columnCount > 3) {\r\n r.columns.push({\r\n value: r.Column4,\r\n width: (this.isLessThanFullWidth ? r.Column4Width : -1),\r\n fontWeight: (r.DetailType === \"Heading\" ? \"bold\" : \"normal\")\r\n });\r\n }\r\n if (this.columnCount > 4) {\r\n r.columns.push({\r\n value: r.Column5,\r\n width: (this.isLessThanFullWidth ? r.Column5Width : -1),\r\n fontWeight: (r.DetailType === \"Heading\" ? \"bold\" : \"normal\")\r\n });\r\n }\r\n }\r\n\r\n r.class = this.getRowClass(r.DetailType);\r\n });\r\n }\r\n }\r\n\r\n getRowClass(type: string): string {\r\n if (type === \"Footnote\") {\r\n return \"tableFooter\";\r\n }\r\n if (type === \"Heading\") {\r\n return \"tableHeading\";\r\n }\r\n\r\n return \"tableValue\";\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
    \r\n {{column.value}}\r\n
    \r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ProductDetail } from \"@models/product-detail\";\r\n\r\n@Component({\r\n selector: \"product-testimonial\",\r\n templateUrl: \"./product-testimonial.component.html\",\r\n styleUrls: [\"./product-testimonial.component.less\"]\r\n})\r\nexport class ProductTestimonialComponent {\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n detail: ProductDetail;\r\n}\r\n","
    \r\n
    \r\n
    \r\n \"{{detail.Other}}\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{detail.Description}}
    \r\n
    \r\n {{detail.Other}}
    \r\n {{detail.Title}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { ProductRoutingModule } from \"./product-routing.module\";\r\nimport { ProductComponent } from \"./product/product.component\";\r\nimport { SharedModule } from \"@shared/shared.module\";\r\nimport { ProductMenuComponent } from \"./product-menu/product-menu.component\";\r\nimport { ProductDetailComponent } from \"./product-detail/product-detail.component\";\r\nimport { ProductDetailTabContainerComponent } from \"./product-detail-tab-container/product-detail-tab-container.component\";\r\nimport { ProductTabHeadersComponent } from \"./product-tab-headers/product-tab-headers.component\";\r\nimport { ProductQuickLinkComponent } from \"./product-quick-link/product-quick-link.component\";\r\nimport { ImageViewerComponent } from \"./image-viewer/image-viewer.component\";\r\nimport { ImageViewComponent } from \"./image-view/image-view.component\";\r\nimport { ThumbnailListComponent } from \"./thumbnail-list/thumbnail-list.component\";\r\nimport { ImageViewMaximizedComponent } from \"./image-view-maximized/image-view-maximized.component\";\r\nimport { FocusDirective } from \"./focus.directive\";\r\nimport { ProductDetailTabComponent } from \"./product-detail-tab/product-detail-tab.component\";\r\nimport { ProductDetailHeadingComponent } from \"./product-detail-heading/product-detail-heading.component\";\r\nimport { ProductChildrenComponent } from \"./product-children/product-children.component\";\r\nimport { ProductRelatedComponent } from \"./product-related/product-related.component\";\r\nimport { ProductSummaryComponent } from \"./product-summary/product-summary.component\";\r\nimport { ProductDescriptionComponent } from \"./product-description/product-description.component\";\r\nimport { ProductFeatureComponent } from \"./product-feature/product-feature.component\";\r\nimport { ProductTestimonialComponent } from \"./product-testimonial/product-testimonial.component\";\r\nimport { ProductTableComponent } from \"./product-table/product-table.component\";\r\nimport { ProductInternalDocComponent } from \"./product-internal-doc/product-internal-doc.component\";\r\nimport { ProductDirectMailingComponent } from \"./product-direct-mailing/product-direct-mailing.component\";\r\nimport { ProductAdComponent } from \"./product-ad/product-ad.component\";\r\nimport { VideoViewerComponent } from \"./video-viewer/video-viewer.component\";\r\nimport { VideoViewComponent } from \"./video-view/video-view.component\";\r\nimport { SizeConversionPipe } from \"./size-conversion.pipe\";\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { ProductResolverService } from \"./product-resolver.service\";\r\nimport { ProductMediaLinkComponent } from \"./product-media-link/product-media-link.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProductRoutingModule,\r\n FormsModule,\r\n SharedModule\r\n ],\r\n providers: [\r\n ProductService,\r\n ProductResolverService\r\n ],\r\n declarations: [\r\n ProductComponent,\r\n ProductMenuComponent,\r\n ProductDetailComponent,\r\n ProductTabHeadersComponent,\r\n ProductDetailTabContainerComponent,\r\n ProductQuickLinkComponent,\r\n ImageViewerComponent,\r\n ImageViewComponent,\r\n ThumbnailListComponent,\r\n ImageViewMaximizedComponent,\r\n FocusDirective,\r\n ProductDetailTabComponent,\r\n ProductDetailHeadingComponent,\r\n ProductChildrenComponent,\r\n ProductRelatedComponent,\r\n ProductSummaryComponent,\r\n ProductDescriptionComponent,\r\n ProductFeatureComponent,\r\n ProductTestimonialComponent,\r\n ProductTableComponent,\r\n ProductInternalDocComponent,\r\n ProductDirectMailingComponent,\r\n ProductAdComponent,\r\n VideoViewerComponent,\r\n VideoViewComponent,\r\n SizeConversionPipe,\r\n ProductMediaLinkComponent\r\n ]\r\n})\r\nexport class ProductModule { }\r\n","import { Component, OnInit, OnDestroy, AfterViewInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\ndeclare var enableClickDimensions: any;\r\n\r\nimport { ProductDetailGroup } from \"@models/product-detail-group\";\r\nimport { ProductService } from \"@services/product.service\";\r\nimport { GlobalService } from \"@services/global.service\";\r\n\r\n@Component({\r\n selector: \"product\",\r\n templateUrl: \"./product.component.html\",\r\n styleUrls: [\"./product.component.less\"]\r\n})\r\nexport class ProductComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription;\r\n private tabSubscription: Subscription;\r\n\r\n tabs: ProductDetailGroup[] = [];\r\n\r\n constructor(\r\n private productService: ProductService,\r\n private globalService: GlobalService,\r\n private route: ActivatedRoute\r\n ) {\r\n this.subscription = this.globalService.languageId$.subscribe(\r\n () => { this.getTabs(); }\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.data.subscribe((data: { tabs: ProductDetailGroup[] }) => this.tabs = data.tabs);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.tabSubscription) {\r\n this.tabSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.globalService.cookiesEnabled()) {\r\n enableClickDimensions();\r\n }\r\n }\r\n\r\n private getTabs(): void {\r\n const productId: string = this.route.snapshot.params[\"id\"];\r\n this.tabSubscription = this.productService.getTabs(productId).subscribe((tabs: ProductDetailGroup[]) => { this.tabs = tabs ; });\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 { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"sizeConversion\"\r\n})\r\nexport class SizeConversionPipe implements PipeTransform {\r\n static kb: number = 1024;\r\n static mb: number = 1048576; // kb * 1024;\r\n static gb: number = 4176741824; // mb * 1024;\r\n\r\n transform(value: number, decimalPlaces?: number): string {\r\n if (value > SizeConversionPipe.kb) {\r\n if (value > SizeConversionPipe.mb) {\r\n if (value > SizeConversionPipe.gb) {\r\n return (value / SizeConversionPipe.gb).toFixed(decimalPlaces) + \" GB\";\r\n }\r\n\r\n return (value / SizeConversionPipe.mb).toFixed(decimalPlaces) + \" MB\";\r\n }\r\n\r\n return (value / SizeConversionPipe.kb).toFixed(decimalPlaces) + \" KB\";\r\n }\r\n\r\n return \"\";\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from \"@angular/core\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ProductQuickLink } from \"@models/product-quick-link\";\r\n\r\n@Component({\r\n selector: \"thumbnail-list\",\r\n templateUrl: \"./thumbnail-list.component.html\",\r\n styleUrls: [\"./thumbnail-list.component.less\"]\r\n})\r\nexport class ThumbnailListComponent implements OnInit, OnChanges {\r\n imageLocation: string = environment.ImageLocation;\r\n localImageLocation: string = environment.LocalImageLocation;\r\n private imagesPerPage: number = 5;\r\n private selectedImageIndex: number = 0;\r\n currentPage: number = 0;\r\n\r\n @Input() images: ProductQuickLink[] = [];\r\n @Input() maxImageWidth: number = 0;\r\n @Input() shownImageIndex: number;\r\n @Output() selectedImageChanged: EventEmitter = new EventEmitter();\r\n\r\n private pagedImages: ProductQuickLink[] = [];\r\n pages: ProductQuickLink[][] = [];\r\n\r\n ngOnInit(): void {\r\n this.currentPage = 0;\r\n\r\n if (this.maxImageWidth > 0) {\r\n this.imagesPerPage = Math.floor((this.maxImageWidth - 10) / 110);\r\n }\r\n\r\n const pageCount: number = this.getPageCount();\r\n for (let i: number = 0; i < pageCount; ++i) {\r\n const pageImageStart: number = i * this.imagesPerPage;\r\n this.pages[i] = this.images.slice(pageImageStart, pageImageStart + this.imagesPerPage);\r\n }\r\n }\r\n\r\n private getPageCount(): number {\r\n const imagePage: number = this.getImagePage(this.images.length);\r\n if (this.images.length % this.imagesPerPage > 0) {\r\n return imagePage + 1;\r\n }\r\n\r\n return imagePage;\r\n }\r\n\r\n selectImage(pagedIndex: number): void {\r\n this.selectedImageIndex = (this.currentPage * this.imagesPerPage) + pagedIndex;\r\n this.selectedImageChanged.emit(this.selectedImageIndex);\r\n }\r\n\r\n private getImagePage(index: number): number {\r\n return Math.floor(index / this.imagesPerPage);\r\n }\r\n\r\n incrementPage(increment: number): void {\r\n if (this.pages.length < 2) {\r\n return;\r\n }\r\n\r\n const newPage: number = this.currentPage + increment;\r\n if (newPage > this.pages.length - 1) {\r\n this.currentPage = this.pages.length - 1;\r\n } else if (newPage < 0) {\r\n this.currentPage = 0;\r\n } else {\r\n this.currentPage = newPage;\r\n }\r\n\r\n if (increment > 0) {\r\n this.selectImage(0);\r\n } else {\r\n this.selectImage(this.imagesPerPage - 1);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"images\"] !== undefined) {\r\n this.ngOnInit();\r\n } else if (changes[\"shownImageIndex\"] !== undefined) {\r\n const newPage: number = this.getImagePage(this.shownImageIndex);\r\n\r\n if (this.shownImageIndex !== this.selectedImageIndex) {\r\n this.selectedImageIndex = this.shownImageIndex;\r\n }\r\n\r\n if (newPage !== this.currentPage) {\r\n this.currentPage = newPage;\r\n }\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n 0\" src=\"{{localImageLocation}}arrowsL.jpg\" (click)=\"incrementPage(-1)\"\r\n alt=\"Previous page\" width=\"10\" />\r\n
    \r\n\r\n
    \r\n \"{{image.Caption}}\"\r\n
    \r\n\r\n
    \r\n \"Next\r\n
    \r\n
    \r\n
    ","import { Component, Input, AfterViewChecked, ChangeDetectorRef } from \"@angular/core\";\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\n\r\nimport { ProductQuickLink } from \"@models/product-quick-link\";\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"video-view\",\r\n templateUrl: \"./video-view.component.html\",\r\n styleUrls: [\"./video-view.component.less\"]\r\n})\r\nexport class VideoViewComponent implements AfterViewChecked {\r\n @Input() videos: ProductQuickLink[] = [];\r\n\r\n videoIndex: number = 0;\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n constructor(private sanitizer: DomSanitizer, private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.changeDetectorRef.detach();\r\n }\r\n\r\n getVideo(): SafeResourceUrl {\r\n let url: string = \"\";\r\n if (this.videoIndex < 0 || this.videoIndex > this.videos.length) {\r\n url = \"\";\r\n } else if (this.videos && this.videos.length > 0) {\r\n url = this.videos[this.videoIndex].VideoUrl;\r\n if (url === null || url === \"\") {\r\n url = \"\";\r\n }\r\n }\r\n\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n\r\n private setVideo(increment: number): void {\r\n\r\n this.videoIndex += increment;\r\n if (this.videoIndex < 0) {\r\n this.videoIndex = 0;\r\n }\r\n\r\n if (this.videoIndex >= this.videos.length) {\r\n this.videoIndex = this.videos.length - 1;\r\n }\r\n\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private selectVideo(index: number): void {\r\n this.videoIndex = index;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","
    = 0\">\r\n
    \r\n
    0\" (click)=\"setVideo(-1)\">\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    0\" (click)=\"setVideo(1)\">\r\n
    \r\n
    \r\n
    \r\n

    0\" class=\"imageViewCaption\">{{videos[videoIndex].Caption}}


    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    1\" class=\"videoSelect\">\r\n {{videoIndex + 1}} of {{videos.length}}\r\n
    \r\n
    \r\n
    \r\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\nimport { ProductQuickLink } from \"@models/product-quick-link\";\r\nimport { environment } from \"@environment\";\r\n\r\n@Component({\r\n selector: \"video-viewer\",\r\n templateUrl: \"./video-viewer.component.html\",\r\n styleUrls: [\"./video-viewer.component.less\"]\r\n})\r\nexport class VideoViewerComponent {\r\n @Output() videoViewerClosed: EventEmitter = new EventEmitter();\r\n @Input() productTitle: string;\r\n @Input() videos: ProductQuickLink[] = [];\r\n @Input()\r\n set show(value: boolean) {\r\n if (value !== this.showVideoViewer) {\r\n this.showVideoViewer = value;\r\n if (!value) {\r\n this.videoViewerClosed.emit(true);\r\n }\r\n }\r\n }\r\n get show(): boolean {\r\n return this.showVideoViewer;\r\n }\r\n\r\n private showVideoViewer: boolean;\r\n localImageLocation: string = environment.LocalImageLocation;\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n

    {{productTitle}}

    \r\n
    \r\n \"Close\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\nimport { SearchResultItem } from \"@models/search-result-item\";\r\n\r\n@Pipe({\r\n name: \"filterByCategory\"\r\n})\r\nexport class FilterByCategoryPipe implements PipeTransform {\r\n transform(searchResultItems: SearchResultItem[], key: string): SearchResultItem[] {\r\n let results: SearchResultItem[];\r\n if (key !== undefined && key !== null && key !== \"\") {\r\n results = searchResultItems.filter(result => result.Category === key);\r\n } else {\r\n results = searchResultItems;\r\n }\r\n\r\n return results;\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\nimport { SearchResult } from \"@models/search-result\";\r\nimport { SearchResultCategory } from \"@models/search-result-category\";\r\n\r\n@Component({\r\n selector: \"search-result-categories\",\r\n templateUrl: \"./search-result-categories.component.html\",\r\n styleUrls: [\"./search-result-categories.component.less\"]\r\n})\r\nexport class SearchResultCategoriesComponent {\r\n @Input() result: SearchResult;\r\n\r\n @Output() onFilterResults: EventEmitter = new EventEmitter();\r\n\r\n filterBy: string = \"\";\r\n\r\n filterResults(category: SearchResultCategory) {\r\n if (category.Category === this.filterBy) {\r\n this.filterBy = \"\";\r\n } else {\r\n this.filterBy = category.Category;\r\n }\r\n\r\n this.onFilterResults.emit(this.filterBy);\r\n }\r\n}\r\n","
    0\">\r\n

    {{result.CategoriesTitle}}

    \r\n \r\n
    \r\n","import { Component, Input } from \"@angular/core\";\r\n\r\nimport { SearchResult } from \"@models/search-result\";\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"@services/global.service\";\r\n\r\n@Component({\r\n selector: \"search-result-details\",\r\n templateUrl: \"./search-result-details.component.html\",\r\n styleUrls: [\"./search-result-details.component.less\"]\r\n})\r\nexport class SearchResultDetailsComponent {\r\n @Input() result: SearchResult;\r\n @Input() filter: string;\r\n\r\n languageCode: string;\r\n\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n constructor(private globalService: GlobalService) {\r\n this.languageCode = this.globalService.getLanguageCode();\r\n }\r\n}\r\n","
    \r\n

    {{result.ResultsTitle}}...'{{result.OriginalCriteria}}' ({{result.Items.length}})

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \"{{item.Title}}\"\r\n \r\n \r\n \r\n
    {{item.Title}}
    \r\n
    \r\n
    {{item.Description}}
    \r\n
    \r\n {{result.NoResultsTitle}}\r\n
    \r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router, ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\r\n\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { SearchService } from \"@services/search.service\";\r\nimport { SearchResult } from \"@models/search-result\";\r\n\r\n@Injectable()\r\nexport class SearchResultResolverService {\r\n constructor(private searchService: SearchService, private router: Router, private globalService: GlobalService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n const criteria = route.params[\"searchCriteria\"];\r\n\r\n let languageId = route.paramMap.get(\"languageId\");\r\n if (languageId && languageId !== \"\") {\r\n this.globalService.setLanguage(languageId);\r\n } else {\r\n languageId = this.globalService.getLanguage();\r\n if (!languageId) {\r\n this.globalService.setLanguage(\"en-us\");\r\n }\r\n }\r\n\r\n return this.resolveSearch(criteria);\r\n }\r\n\r\n private resolveSearch(criteria: string): Promise {\r\n return this.searchService.getResults(criteria)\r\n .toPromise()\r\n .then((result: SearchResult) => result);\r\n }\r\n}\r\n","\r\nimport {throwError as observableThrowError, Subscription } from \"rxjs\";\r\nimport { Component, OnInit, OnDestroy, AfterViewInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\ndeclare var enableClickDimensions: any;\r\n\r\nimport { SearchResult } from \"@models/search-result\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { SearchService } from \"@services/search.service\";\r\nimport { SEOService } from \"@services/seo.service\";\r\n\r\n@Component({\r\n selector: \"search-results\",\r\n templateUrl: \"./search-results.component.html\",\r\n styleUrls: [\"./search-results.component.less\"]\r\n})\r\nexport class SearchResultsComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription;\r\n private routeSubscription: Subscription;\r\n private resultsSubscription: Subscription;\r\n\r\n searchResults: SearchResult;\r\n filterBy: string = \"\";\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private searchService: SearchService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private seo: SEOService\r\n ) {\r\n let languageId = this.route.snapshot.paramMap.get(\"languageId\");\r\n if (languageId && languageId !== \"\") {\r\n this.globalService.setLanguage(languageId);\r\n } else {\r\n languageId = this.globalService.getLanguage();\r\n if (!languageId) {\r\n this.globalService.setLanguage(\"en-us\");\r\n }\r\n }\r\n\r\n this.subscription = globalService.languageId$.subscribe(\r\n () => { this.filterBy = \"\"; this.getResults(); }\r\n );\r\n\r\n this.seo.addSEOData();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routeSubscription = this.route.data\r\n .subscribe((data: { searchResults: SearchResult }) => this.searchResults = data.searchResults);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.routeSubscription) {\r\n this.routeSubscription.unsubscribe();\r\n }\r\n if (this.resultsSubscription) {\r\n this.resultsSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.globalService.cookiesEnabled()) {\r\n enableClickDimensions();\r\n }\r\n }\r\n\r\n private getResults(): void {\r\n this.resultsSubscription = this.searchService.getResults(this.searchResults.OriginalCriteria).subscribe(\r\n (results: SearchResult) => { this.searchResults = results; },\r\n (error: any) => { this.handleError(error); }\r\n );\r\n }\r\n\r\n onFilterResults(filterBy: string) {\r\n this.filterBy = filterBy;\r\n }\r\n\r\n private handleError(error: any): void {\r\n console.error(\"An error occurred\", error);\r\n observableThrowError(error);\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 { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\n\r\nimport { IsSecureGuard } from \"../is-secure.guard\";\r\nimport { SearchResultsComponent } from \"./search-results/search-results.component\";\r\nimport { SearchResultResolverService } from \"./search-result-resolver.service\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \":languageId/search/:searchCriteria\",\r\n component: SearchResultsComponent,\r\n resolve: { searchResults: SearchResultResolverService },\r\n canActivate: [ IsSecureGuard ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SearchRoutingModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { SearchRoutingModule } from \"./search-routing.module\";\r\nimport { SharedModule } from \"@shared/shared.module\";\r\nimport { SearchResultsComponent } from \"./search-results/search-results.component\";\r\nimport { SearchResultCategoriesComponent } from \"./search-result-categories/search-result-categories.component\";\r\nimport { SearchService } from \"@services/search.service\";\r\nimport { SearchResultDetailsComponent } from \"./search-result-details/search-result-details.component\";\r\nimport { FilterByCategoryPipe } from \"./filter-by-category.pipe\";\r\nimport { SearchResultResolverService } from \"./search-result-resolver.service\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n SearchRoutingModule\r\n ],\r\n providers: [\r\n SearchService,\r\n SearchResultResolverService\r\n ],\r\n declarations: [\r\n SearchResultsComponent,\r\n SearchResultCategoriesComponent,\r\n SearchResultDetailsComponent,\r\n FilterByCategoryPipe\r\n ]\r\n})\r\nexport class SearchModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n const token: string = localStorage.getItem(\"token\");\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n });\r\n\r\n return next.handle(request);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"./global.service\";\r\nimport { ContentDetail } from \"@models/content-detail\";\r\nimport { ContentMenu } from \"@models/menu-item\";\r\n\r\n@Injectable()\r\nexport class ContentService {\r\n private basePageUrl: string = environment.ApiBase + \"page/\";\r\n private baseContentUrl: string = environment.ApiBase + \"content/\";\r\n\r\n constructor(private http: HttpClient, private globalService: GlobalService ) { }\r\n\r\n getDetails(id: string): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { language: this.globalService.getLanguage() } });\r\n\r\n return this.http.get(this.baseContentUrl + id, { params: params });\r\n }\r\n\r\n getMenu(id: string): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { language: this.globalService.getLanguage() } });\r\n\r\n return this.http.get(`${this.basePageUrl}menu/${id}`, { params: params });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"./global.service\";\r\nimport { FooterInfo } from \"@models/footer-info\";\r\n\r\n@Injectable()\r\nexport class FooterService {\r\n private baseUrl: string = environment.ApiBase + \"master/\";\r\n\r\n constructor(private http: HttpClient, private globalService: GlobalService) {}\r\n\r\n getFooter(): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { language: this.globalService.getLanguage() } });\r\n\r\n return this.http.get(this.baseUrl + \"footer\", { params: params });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Validators, FormControl, FormGroup } from \"@angular/forms\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { FormFieldBase } from \"@models/form-fields\";\r\nimport { ExpenseCategory } from \"@models/expense-category\";\r\nimport { ExpenseCurrency } from \"@models/expense-currency\";\r\nimport { UserService } from \"./user.service\";\r\nimport { CustomerAccount } from \"@models/customer-account\";\r\nimport { GlobalService } from \"./global.service\";\r\n\r\n@Injectable()\r\nexport class FormService {\r\n private baseUrl: string = environment.ApiBase + \"form/\";\r\n private dataQueryUrl: string = environment.ApiBase + \"dataQuery/\";\r\n private fileUrl: string = environment.ApiBase + \"file\";\r\n\r\n constructor(private http: HttpClient, private userService: UserService, private globalService: GlobalService) { }\r\n\r\n submitData(formId: string, data: any): Observable {\r\n const headers: HttpHeaders = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n\r\n return this.http.post(this.baseUrl + formId, data, { headers: headers });\r\n }\r\n\r\n submitIdentityCheck(data: any): Observable {\r\n const headers: HttpHeaders = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n\r\n return this.http.post(this.baseUrl + \"identity\", data, { headers: headers });\r\n }\r\n\r\n submitVerifyIdentity(data: any): Observable {\r\n const headers: HttpHeaders = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n\r\n return this.http.post(this.baseUrl + \"verify-identity\", data, { headers: headers });\r\n }\r\n\r\n submitDataQuery(formId: string, dataQueryId: string, data: any): Observable {\r\n const headers: HttpHeaders = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n\r\n const account: CustomerAccount = this.userService.getCustomerAccount();\r\n if (account) {\r\n data[\"custAccount\"] = account.Id;\r\n }\r\n\r\n return this.http.post(`${this.dataQueryUrl}${formId}/${dataQueryId}`, data, { headers: headers });\r\n }\r\n\r\n executeDataQuery(dataQueryString: string, data: any): Observable {\r\n const headers: HttpHeaders = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n if (!data) {\r\n data = {};\r\n }\r\n\r\n data.LanguageId = this.globalService.getLanguage();\r\n data.dataQuery = dataQueryString;\r\n\r\n const account: CustomerAccount = this.userService.getCustomerAccount();\r\n if (account) {\r\n data[\"custAccount\"] = account.Id;\r\n }\r\n\r\n return this.http.post(`${this.dataQueryUrl}action`, data, { headers: headers });\r\n }\r\n\r\n uploadFile(formId: string, data: FormData): Observable {\r\n return this.http.post(this.baseUrl + \"upload/file\", data);\r\n }\r\n\r\n toFormGroup(fields: FormFieldBase[]) {\r\n const group: any = [];\r\n let idx: number = 0;\r\n\r\n fields.forEach(field => {\r\n const validators: any[] = [];\r\n\r\n if (field.required) {\r\n validators.push(Validators.required);\r\n }\r\n\r\n if (field.pattern) {\r\n validators.push(Validators.pattern(field.pattern));\r\n }\r\n\r\n if (field.controlType === \"date\") {\r\n field.value = new Date();\r\n }\r\n\r\n if (!field.key || field.key === \"\") {\r\n field.key = `${field.controlType}_${idx}`;\r\n }\r\n\r\n if (field.controlType.substring(0, 6) === \"button\") {\r\n field.value = field.label;\r\n }\r\n\r\n group[field.key] = validators.length > 0\r\n ? new FormControl(field.value || \"\", validators)\r\n : new FormControl(field.value || \"\");\r\n\r\n idx++;\r\n });\r\n\r\n return new FormGroup(group);\r\n }\r\n\r\n getExpenseCategories(): Observable {\r\n return this.http.get(this.baseUrl + \"expensecategories\");\r\n }\r\n\r\n getExpenseCurrencies(): Observable {\r\n return this.http.get(this.baseUrl + \"expensecurrencies\");\r\n }\r\n\r\n // i.e. getFile(\"k2-00007.gif\", \"DVaultThumbnail\", \"Image\")\r\n getFilestream(fileName: string, fileType: string, streamType: string, asBytes: boolean = false): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: {\r\n \"fileName\": fileName,\r\n \"fileType\": fileType,\r\n \"streamType\": streamType\r\n }});\r\n\r\n let headers: HttpHeaders;\r\n if (asBytes) {\r\n headers = new HttpHeaders({ \"Content-Type\": \"application/octet-stream\" });\r\n return this.http.get(`${this.fileUrl}`, { params: params, headers: headers });\r\n } else {\r\n return this.http.get(`${this.fileUrl}`, { params: params, responseType: \"blob\" });\r\n }\r\n }\r\n}\r\n\r\nfunction validateDateRequired(control: FormControl) {\r\n return (control.value && control.value !== \"\") ? null : { validateDateRequired: { valid: false }};\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { UrlSegment } from '@angular/router';\r\nimport { Subject, Observable, lastValueFrom } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport { environment } from '@environment';\r\nimport { LinkService } from './link.service';\r\nimport { Language } from '@models/language';\r\nimport { MainMenuItem } from '@models/main-menu-item';\r\nimport { GeneralFeature } from '@models/general-feature';\r\nimport { StandardFeature } from '@models/standard-feature';\r\nimport { UsnrDomain } from '@models/usnr-domain';\r\nimport { MobileLanguages } from '@models/mobile-languages';\r\nimport { MobileMasterMenu } from '@models/mobile-master-menu';\r\nimport { PrivacyMessageData } from '@shared/privacy-alert/privacy-alert-dialog/privacy-alert-dialog.component';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\ndeclare global {\r\n interface Window { cdAnalytics: any }\r\n}\r\n\r\ndeclare var clickdimensions: any;\r\ndeclare var cdScore: any;\r\n\r\n@Injectable()\r\nexport class GlobalService {\r\n static PRIVACY_ALERT: string = 'privacyAlert';\r\n private baseUrl: string = environment.ApiBase + 'master/';\r\n\r\n private languageList: Language[];\r\n\r\n private usnrLanguage: Subject = new Subject();\r\n languageId$: Observable = this.usnrLanguage.asObservable();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private linkService: LinkService,\r\n private titleService: Title,\r\n private _cookieService: CookieService\r\n ) {}\r\n\r\n setTitle(newTitle: string): void {\r\n this.titleService.setTitle(newTitle);\r\n }\r\n\r\n addLanguageTags(segments: UrlSegment[]): void {\r\n if (environment.production) {\r\n let urlPart: string = '';\r\n segments.forEach((s: UrlSegment) => {\r\n urlPart += '/' + s;\r\n });\r\n\r\n this.getLanguages().subscribe((languages: Language[]) => {\r\n this.linkService.removeTag('rel=alternate');\r\n languages.forEach((l: Language) => {\r\n this.linkService.addTag({ rel: 'alternate', hreflang: l.ISOCode, href: `https://www.usnr.com/${l.ISOCode}${urlPart}` });\r\n });\r\n });\r\n }\r\n }\r\n\r\n addMobileLinkTags(segments: UrlSegment[]): void {\r\n if (environment.production) {\r\n let urlPart: string = '';\r\n segments.forEach((s: UrlSegment) => {\r\n urlPart += '/' + s;\r\n });\r\n\r\n this.linkService.removeTag('rel=\"canonical\"');\r\n this.linkService.addTag({ rel: 'canonical', href: `https://www.usnr.com/en${urlPart}` });\r\n\r\n this.getMobileLanguages().subscribe((language: MobileLanguages) => {\r\n this.linkService.removeTag('rel=\"alternate\"');\r\n language.Languages.forEach((l: Language) => {\r\n this.linkService.addTag({ rel: 'alternate', hreflang: l.ISOCode, href: `https://m.usnr.com/${l.ISOCode}${urlPart}` });\r\n });\r\n });\r\n }\r\n }\r\n\r\n setLanguage(newLanguage: string) {\r\n return this.getLanguages().subscribe((l: Language[]) => {\r\n this.languageList = l;\r\n const language: Language = this.getLanguageFromList(newLanguage);\r\n\r\n const currentLanguageId: string = this.getLanguage();\r\n if (language.Id !== currentLanguageId) {\r\n localStorage.setItem('currentLanguageId', language.Id);\r\n localStorage.setItem('currentLanguageCode', language.ISOCode);\r\n this.usnrLanguage.next(language.Id);\r\n }\r\n });\r\n }\r\n\r\n getLanguageFromList(languageCode: string): Language {\r\n const languages: Language[] = this.languageList.filter((l: Language) => l.Id === languageCode || l.ISOCode === languageCode);\r\n if (languages && languages.length > 0) {\r\n return languages[0];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getLanguage(): string {\r\n const language = localStorage.getItem('currentLanguageId');\r\n return language === null || language === undefined ? 'en-us' : language;\r\n }\r\n\r\n getLanguageCode(): string {\r\n const language = localStorage.getItem('currentLanguageCode');\r\n return language === null || language === undefined ? 'en' : language;\r\n }\r\n\r\n getLanguages(): Observable {\r\n return this.http.get(this.baseUrl + 'languages', { params: this.createParams() });\r\n }\r\n\r\n getMobileLanguages(): Observable {\r\n return this.http.get(this.baseUrl + 'languages/mobile', { params: this.createParams() });\r\n }\r\n\r\n getDetailSectionSize(): Observable {\r\n return this.http.get(this.baseUrl + 'detailSectionSize');\r\n }\r\n\r\n getDomain(domain: string): Observable {\r\n domain = domain.replace('https', '').replace('http', '').replace('://', '').replace('www.', '');\r\n\r\n const params: HttpParams = new HttpParams({\r\n fromObject: {\r\n id: domain,\r\n },\r\n });\r\n\r\n return this.http.get(this.baseUrl + 'domain', { params: params });\r\n }\r\n\r\n getDomainList(): Observable {\r\n return this.http.get(this.baseUrl + 'domains');\r\n }\r\n\r\n getMainMenuItems(): Observable {\r\n return this.http.get(this.baseUrl + 'menu', { params: this.createParams() });\r\n }\r\n\r\n getMobileMainMenu(): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { language: this.getLanguage() } });\r\n return this.http.get(this.baseUrl + 'menu/mobile', { params: params });\r\n }\r\n\r\n getStandardFeatures(id: string): Observable {\r\n if (!id || id === '') {\r\n return null;\r\n }\r\n\r\n return this.http.get(`${this.baseUrl}features/${id}/standard`, { params: this.createParams() }).pipe(\r\n map((response: any[]) => {\r\n if (response) {\r\n return response.map((data) => new StandardFeature(data));\r\n } else {\r\n return null;\r\n }\r\n })\r\n );\r\n }\r\n\r\n getGeneralFeatures(id: string, type: string): Observable {\r\n if (!id || id === '') {\r\n return null;\r\n }\r\n\r\n const params: HttpParams = new HttpParams({\r\n fromObject: {\r\n language: this.getLanguage(),\r\n type: type,\r\n },\r\n });\r\n\r\n const url: string = this.baseUrl + 'features/' + id + '/general';\r\n\r\n return this.http.get(url, { params: params }).pipe(\r\n map((response: any[]) => {\r\n if (response) {\r\n return response.map((data) => new GeneralFeature(data));\r\n } else {\r\n return null;\r\n }\r\n })\r\n );\r\n }\r\n\r\n async getPrivacyMessageData(): Promise {\r\n const url: string = this.baseUrl + 'features/privacy';\r\n return lastValueFrom(this.http.get(url, { params: this.createParams() }));\r\n }\r\n\r\n setupClickDimensions(): void {\r\n window.cdAnalytics = new clickdimensions.Analytics('analytics.clickdimensions.com');\r\n window.cdAnalytics.setAccountKey('aT4p1R2WGAEeq1zs5bJqDq');\r\n window.cdAnalytics.setDomain('usnr.com');\r\n window.cdAnalytics.setScore(typeof(cdScore) == 'undefined' ? 0 : (cdScore == 0 ? null : cdScore));\r\n window.cdAnalytics.trackPage();\r\n }\r\n\r\n cookiesEnabled(): boolean {\r\n return this._cookieService.get(GlobalService.PRIVACY_ALERT).toLowerCase() === 'y';\r\n }\r\n\r\n enableCookies(): void {\r\n this._cookieService.set(GlobalService.PRIVACY_ALERT, 'y',\r\n new Date().getDate() + 365, '/', null, null, 'Strict');\r\n }\r\n\r\n private createParams() {\r\n return new HttpParams({ fromObject: { language: this.getLanguage() } });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable, shareReplay } from \"rxjs\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"./global.service\";\r\nimport { HeaderInfo } from \"@models/header-info\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HeaderService {\r\n private url: string = environment.ApiBase + \"master/\";\r\n\r\n private headerData: Observable;\r\n\r\n constructor(private http: HttpClient, private globalService: GlobalService) { }\r\n\r\n getHeaderInfo(): Observable {\r\n if (!this.headerData) {\r\n const params: HttpParams = new HttpParams({ fromObject: { language: this.globalService.getLanguage(), } });\r\n this.headerData = this.http.get(this.url + \"headerinfo\", { params: params}).pipe(shareReplay(1));\r\n }\r\n\r\n return this.headerData;\r\n }\r\n\r\n clearHeaderInfo(): void {\r\n this.headerData = null;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"./global.service\";\r\nimport { JobListing } from \"@models/job-listing\";\r\nimport { JobDetail } from \"@models/job-detail\";\r\nimport { JobMenu } from \"@models/menu-item\";\r\n\r\n@Injectable()\r\nexport class JobService {\r\n private basePageUrl: string = environment.ApiBase + \"page/\";\r\n private baseJobUrl: string = environment.ApiBase + \"job/\";\r\n\r\n constructor(private http: HttpClient, private globalService: GlobalService) { }\r\n\r\n getListings(contentId: string = \"\"): Observable {\r\n const params: HttpParams = this.setupParams().set(\"contentId\", contentId);\r\n return this.http.get(this.baseJobUrl + \"listings\", { params: params });\r\n }\r\n\r\n getDetails(id: string): Observable {\r\n const params: HttpParams = this.setupParams();\r\n\r\n return this.http.get(`${this.baseJobUrl}detail/${id}`, { params: this.setupParams() });\r\n }\r\n\r\n getMenu(id: string): Observable {\r\n return this.http.get(`${this.basePageUrl}menu/${id}`, { params: this.setupParams() });\r\n }\r\n\r\n private setupParams(): HttpParams {\r\n return new HttpParams({ fromObject: { language: this.globalService.getLanguage() } });\r\n }\r\n}\r\n","/*\r\n * -- LinkService -- [Temporary]\r\n * @MarkPieszak\r\n *\r\n * Similar to Meta service but made to handle creation for SEO purposes\r\n * -- NOTE: Soon there will be an overall DocumentService within Angular that handles Meta/Link everything\r\n */\r\n\r\nimport { Injectable, Optional, RendererFactory2, ViewEncapsulation, Inject } from \"@angular/core\";\r\nimport { DOCUMENT } from \"@angular/common\";\r\n\r\n@Injectable()\r\nexport class LinkService {\r\n constructor(\r\n private rendererFactory: RendererFactory2,\r\n @Inject(DOCUMENT) private document\r\n ) {}\r\n\r\n /**\r\n * Inject the State into the bottom of the \r\n */\r\n addTag(tag: LinkDefinition, forceCreation?: boolean) {\r\n try {\r\n const renderer = this.rendererFactory.createRenderer(this.document, {\r\n id: \"-1\",\r\n encapsulation: ViewEncapsulation.None,\r\n styles: [],\r\n data: {}\r\n });\r\n\r\n const link = renderer.createElement(\"link\");\r\n const head = this.document.head;\r\n const selector = this._parseSelector(tag);\r\n\r\n if (head === null) {\r\n throw new Error(\" not found within DOCUMENT.\");\r\n }\r\n\r\n Object.keys(tag).forEach((prop: string) => {\r\n return renderer.setAttribute(link, prop, tag[prop]);\r\n });\r\n\r\n // [TODO]: get them to update the existing one (if it exists) ?\r\n renderer.appendChild(head, link);\r\n\r\n } catch (e) {\r\n console.error(\"Error within linkService : \", e);\r\n }\r\n }\r\n\r\n removeTag(attrSelector: string) {\r\n if (attrSelector) {\r\n try {\r\n const renderer = this.rendererFactory.createRenderer(this.document, {\r\n id: \"-1\",\r\n encapsulation: ViewEncapsulation.None,\r\n styles: [],\r\n data: {}\r\n });\r\n\r\n const head = this.document.head;\r\n if (head === null) {\r\n throw new Error(\" not found within DOCUMENT.\");\r\n }\r\n\r\n const linkTags = this.document.querySelectorAll(\"link[\" + attrSelector + \"]\");\r\n for (const link of linkTags) {\r\n renderer.removeChild(head, link);\r\n }\r\n } catch (e) {\r\n console.log(\"Error while removing tag \" + e.message);\r\n }\r\n }\r\n }\r\n\r\n private _parseSelector(tag: LinkDefinition): string {\r\n // Possibly re-work this\r\n const attr: string = tag.rel ? \"rel\" : \"hreflang\";\r\n return `${attr}=\"${tag[attr]}\"`;\r\n }\r\n}\r\n\r\nexport declare type LinkDefinition = {\r\n charset?: string;\r\n crossorigin?: string;\r\n href?: string;\r\n hreflang?: string;\r\n media?: string;\r\n rel?: string;\r\n rev?: string;\r\n sizes?: string;\r\n target?: string;\r\n type?: string;\r\n} & {\r\n [prop: string]: string;\r\n};\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { ModalComponent } from \"@shared/modal/modal.component\";\r\n\r\n@Injectable()\r\nexport class ModalService {\r\n private modals: Array;\r\n\r\n constructor() {\r\n this.modals = [];\r\n }\r\n\r\n registerModal(newModal: ModalComponent): void {\r\n const modal = this.findModal(newModal.modalId);\r\n\r\n // Delete existing to replace the modal\r\n if (modal) {\r\n this.modals.splice(this.modals.indexOf(modal));\r\n }\r\n\r\n this.modals.push(newModal);\r\n }\r\n\r\n open(modalId: string): void {\r\n const modal = this.findModal(modalId);\r\n\r\n if (modal) {\r\n modal.isOpen = true;\r\n }\r\n }\r\n\r\n close(modalId: string, checkBlocking = false): void {\r\n const modal = this.findModal(modalId);\r\n\r\n if (modal) {\r\n if (checkBlocking && modal.blocking) {\r\n return;\r\n }\r\n\r\n modal.isOpen = false;\r\n }\r\n }\r\n\r\n private findModal(modalId: string): ModalComponent {\r\n for (const modal of this.modals) {\r\n if (modal.modalId === modalId) {\r\n return modal;\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { environment } from '@environment';\r\nimport { UserService } from './user.service';\r\nimport { GlobalService } from './global.service';\r\nimport { PageDetail } from '@models/page-detail';\r\nimport { ValidatedUser } from '@models/validated-user';\r\nimport { PageMenu } from '@models/menu-item';\r\nimport { PageSummary } from '@models/page-summary';\r\n\r\n@Injectable()\r\nexport class PageService {\r\n private baseUrl: string = environment.ApiBase + 'page/';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private globalService: GlobalService,\r\n private userService: UserService\r\n ) {}\r\n\r\n getMenu(id: string): Observable {\r\n const params: HttpParams = new HttpParams({\r\n fromObject: { language: this.globalService.getLanguage() },\r\n });\r\n return this.http.get(`${this.baseUrl}menu/${id}`, {\r\n params: params,\r\n });\r\n }\r\n\r\n getDetails(id: string): Observable {\r\n let params: HttpParams = new HttpParams();\r\n params = params.append('language', this.globalService.getLanguage());\r\n\r\n const currentUser: ValidatedUser = this.userService.getCurrentUser();\r\n if (currentUser !== undefined && currentUser !== null) {\r\n params = params.append('userId', currentUser.UserId); // TODO: NOT NEEDED - USE JWT TOKEN VALUE\r\n }\r\n\r\n return this.http.get(`${this.baseUrl}detail/${id}`, {\r\n params: params,\r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"./global.service\";\r\nimport { ProductDetailGroup } from \"@models/product-detail-group\";\r\nimport { ProductDetail } from \"@models/product-detail\";\r\nimport { ProductInternalDocumentType } from \"@models/product-internal-document-type\";\r\nimport { ProductInternalDetails } from \"@models/product-internal-details\";\r\nimport { ProductQuickLink } from \"@models/product-quick-link\";\r\nimport { UploadFileInfo } from \"@models/upload-file-info\";\r\nimport { ProductMenu } from '@models/menu-item';\r\n\r\n@Injectable()\r\nexport class ProductService {\r\n private baseUrl: string = environment.ApiBase + \"product/\";\r\n\r\n constructor(private http: HttpClient, private globalService: GlobalService) { }\r\n\r\n getTabs(id: string): Observable {\r\n return this.http.get(`${this.baseUrl}detail/${id}/groups`, { params: this.createParams() });\r\n }\r\n\r\n getDetails(id: string): Observable {\r\n return this.http.get(`${this.baseUrl}detail/${id}`, { params: this.createParams() });\r\n }\r\n\r\n getInternalDocumentTypes(): Observable {\r\n return this.http.get(this.baseUrl + \"detail/internaldoctypes\");\r\n }\r\n\r\n getChildren(id: string): Observable {\r\n return this.http.get(`${this.baseUrl}detail/${id}/children`, { params: this.createParams() });\r\n }\r\n\r\n getRelated(id: string): Observable {\r\n return this.http.get(`${this.baseUrl}detail/${id}/related`, { params: this.createParams() });\r\n }\r\n\r\n getInternalDetails(id: string): Observable {\r\n return this.http.get(`${this.baseUrl}detail/${id}/internal`, { params: this.createParams() });\r\n }\r\n\r\n getMenu(id: string): Observable {\r\n return this.http.get(`${this.baseUrl}menu/${id}`, { params: this.createParams() });\r\n }\r\n\r\n getQuicklinks(id: string): Observable {\r\n return this.http.get(`${this.baseUrl}quicklinks/${id}`, { params: this.createParams() });\r\n }\r\n\r\n getFile(fileType: string, documentSection: string, fileName: string): Observable {\r\n const header: HttpHeaders = new HttpHeaders(\r\n { \"Content-Type\": \"application/octet-stream\" }\r\n );\r\n\r\n const params: HttpParams = new HttpParams({\r\n fromObject: {\r\n fileName: fileName\r\n }\r\n });\r\n\r\n return this.http.get(`${this.baseUrl}file/${documentSection}`, { params: params, responseType: \"blob\" });\r\n }\r\n\r\n uploadFile(data: FormData): Observable {\r\n return this.http.post(this.baseUrl + \"file\", data);\r\n }\r\n\r\n newDocument(productId: string, fileData: UploadFileInfo): Observable {\r\n const headers: HttpHeaders = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n\r\n return this.http.post(`${this.baseUrl}upload/${productId}`, fileData, { headers: headers });\r\n }\r\n\r\n private createParams(): HttpParams {\r\n return new HttpParams({ fromObject: { language: this.globalService.getLanguage() } });\r\n }\r\n\r\n getVideoThumbnails(videoId: string): Observable {\r\n return this.http.get(\"https://vimeo.com/api/v2/video/\" + videoId + \".json\").pipe(map((res: any) => {\r\n return \"\";\r\n }));\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { GlobalService } from \"./global.service\";\r\nimport { environment } from \"@environment\";\r\nimport { SearchResult } from \"@models/search-result\";\r\n\r\n@Injectable()\r\nexport class SearchService {\r\n private baseUrl: string = environment.ApiBase + \"master\";\r\n\r\n constructor(private http: HttpClient, private globalService: GlobalService) { }\r\n\r\n getResults(criteria: string): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { criteria: criteria, language: this.globalService.getLanguage() } });\r\n return this.http.get(this.baseUrl + \"/search\", { params: params });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Meta } from \"@angular/platform-browser\";\r\nimport { Router, NavigationEnd } from \"@angular/router\";\r\nimport { filter } from \"rxjs/operators\";\r\n\r\nimport { GlobalService } from \"./global.service\";\r\n\r\n@Injectable()\r\nexport class SEOService {\r\n constructor(private metaService: Meta, private router: Router, private globalService: GlobalService) { }\r\n\r\n public addSEOData(): void {\r\n this.router.events.pipe(filter((event: any) => event instanceof NavigationEnd)).subscribe(() => {\r\n let root = this.router.routerState.snapshot.root;\r\n while (root) {\r\n if (root.children && root.children.length) {\r\n root = root.children[0];\r\n } else {\r\n this.metaService.updateTag({ \"http-equiv\": \"content-language\", content: this.globalService.getLanguageCode() },\r\n \"http-equiv='content-language'\" );\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { GlobalService } from './global.service';\r\nimport { SharedHeader } from '@models/shared-header';\r\nimport { environment } from '@environment';\r\n\r\n@Injectable()\r\nexport class SharedService {\r\n constructor(\r\n private http: HttpClient,\r\n private globalService: GlobalService\r\n ) {}\r\n\r\n getHeader(id: string): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { language: this.globalService.getLanguage() } });\r\n return this.http.get(`${environment.ApiBase}master/shared/header/${id}`,{ params: params });\r\n }\r\n\r\n getMobileHeader(id: string): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { language: this.globalService.getLanguage() } });\r\n return this.http.get(`${environment.ApiBase}master/shared/header/${id}/mobile`,{ params: params });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { Toolbar } from \"@models/toolbar\";\r\nimport { GlobalService } from \"./global.service\";\r\n\r\n@Injectable()\r\nexport class ToolbarService {\r\n private baseUrl: string = environment.ApiBase + \"master/toolbar\";\r\n\r\n constructor(private http: HttpClient, private globalService: GlobalService) { }\r\n\r\n getToolbar(): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { language: this.globalService.getLanguage() } });\r\n return this.http.get(this.baseUrl, { params: params });\r\n }\r\n}\r\n","\r\nimport { Subject , Observable, firstValueFrom } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AccountInfo, AuthenticationResult } from '@azure/msal-common';\r\nimport { PopupRequest, SilentRequest } from '@azure/msal-browser';\r\n\r\nimport { environment } from \"@environment\";\r\nimport { ValidatedUser } from \"@models/validated-user\";\r\nimport { UserCustomerAccounts } from \"@models/user-customer-accounts\";\r\nimport { CustomerAccount } from \"@models/customer-account\";\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private usnrToken: string;\r\n\r\n private baseUserUrl: string = environment.ApiBase + \"users/\";\r\n\r\n private currentUser: Subject = new Subject();\r\n currentUser$: Observable = this.currentUser.asObservable();\r\n\r\n private currentAccount: Subject = new Subject();\r\n currentAccount$: Observable = this.currentAccount.asObservable();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: MsalService\r\n ) { }\r\n\r\n signOutUser(): void {\r\n if (this.isAuthenticated()) {\r\n this.authService.logoutPopup().subscribe();\r\n }\r\n console.log('signOutUser');\r\n this.clearCurrentUser();\r\n }\r\n\r\n async loginUser(data: any): Promise {\r\n const headers: HttpHeaders = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n\r\n return await firstValueFrom(this.http.post(this.baseUserUrl + \"user-login\", data, { headers: headers }))\r\n .then((result: ValidatedUser) => this.setCurrentUser(result));\r\n }\r\n\r\n async loginUsnrUser(): Promise {\r\n let req: PopupRequest = {\r\n authority: 'https://login.microsoftonline.com/usnr.onmicrosoft.com',\r\n scopes: [],\r\n prompt: \"login\"\r\n }\r\n await firstValueFrom(this.authService.acquireTokenPopup(req)).then(\r\n (response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n this.usnrToken = response.idToken;\r\n }\r\n );\r\n if (this.usnrToken && this.usnrToken !== '') {\r\n await this.createValidatedUser();\r\n }\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return this.authService.instance.getActiveAccount() !== null;\r\n }\r\n\r\n async createValidatedUser(): Promise {\r\n await this.loginAuthenticatedUser();\r\n }\r\n\r\n getCurrentUser(): ValidatedUser {\r\n const user: string = localStorage.getItem(\"currentUser\");\r\n\r\n if (user !== null && user !== undefined && user !== \"\") {\r\n const validatedUser: ValidatedUser = JSON.parse(user);\r\n return validatedUser;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validateCurrentUser(user: ValidatedUser): void {\r\n if (user) {\r\n this.http.get(this.baseUserUrl + \"validate-user\").subscribe({\r\n next: (response) => {\r\n if (!response) {\r\n console.log('validateCurrentUser');\r\n this.clearCurrentUser();\r\n }\r\n },\r\n error: (error: any) => { console.error(error); }\r\n });\r\n }\r\n }\r\n\r\n private clearCurrentUser(): void {\r\n console.log('clearCurrentUser');\r\n localStorage.removeItem(\"currentUser\");\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"customerAccount\");\r\n this.currentUser.next(null);\r\n this.currentAccount.next(null);\r\n }\r\n\r\n public setCurrentUser(user: ValidatedUser): boolean {\r\n if (!user) {\r\n // console.log('setCurrentUser - no user');\r\n this.clearCurrentUser();\r\n return false;\r\n }\r\n\r\n // console.log('setCurrentUser - token->' + user.Token);\r\n\r\n const storedUser: string = JSON.stringify({\r\n UserId: user.UserId,\r\n Name: user.Name\r\n });\r\n localStorage.setItem(\"currentUser\", storedUser);\r\n localStorage.setItem(\"token\", user.Token);\r\n localStorage.removeItem(\"customerAccount\");\r\n this.currentUser.next(user);\r\n this.currentAccount.next(null);\r\n return true;\r\n }\r\n\r\n async loginAuthenticatedUser(): Promise {\r\n if (this.authService.instance) {\r\n var accountInfo: AccountInfo = this.authService.instance.getActiveAccount();\r\n if (accountInfo) {\r\n let req: SilentRequest = {\r\n authority: 'https://login.microsoftonline.com/usnr.onmicrosoft.com',\r\n scopes: []\r\n }\r\n await firstValueFrom(this.authService.acquireTokenSilent(req)).then((authResult: AuthenticationResult) => this.usnrToken = authResult.idToken);\r\n }\r\n let authToken: string = this.usnrToken;\r\n const data = { userId: accountInfo.username, token: authToken };\r\n\r\n return await firstValueFrom(this.http.post(this.baseUserUrl + \"usnr-login\", data))\r\n .then((user: ValidatedUser) => {\r\n if (user.Name === \"\" || user.Name === null) {\r\n user.Name = accountInfo.username;\r\n }\r\n\r\n return this.setCurrentUser(user);\r\n });\r\n }\r\n }\r\n\r\n getCustomerAccountOptions(criteria: string): Observable {\r\n const params: HttpParams = new HttpParams({ fromObject: { criteria: criteria } });\r\n return this.http.get(this.baseUserUrl + \"customer-accounts\", { params: params });\r\n }\r\n\r\n setCustomerAccount(account: CustomerAccount, accountPage: string): void {\r\n localStorage.setItem(\"customerAccount\", JSON.stringify(account));\r\n localStorage.setItem(\"customerAccountPage\", accountPage);\r\n this.currentAccount.next(account);\r\n }\r\n\r\n getCustomerAccount(): CustomerAccount {\r\n const customerAccount: string = localStorage.getItem(\"customerAccount\");\r\n if (customerAccount && customerAccount !== \"\") {\r\n return JSON.parse(customerAccount);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getCustomerAccountPage(): string {\r\n return localStorage.getItem(\"customerAccountPage\");\r\n }\r\n}\r\n","import { Component, Input, ChangeDetectorRef, AfterViewChecked } from \"@angular/core\";\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate\r\n} from \"@angular/animations\";\r\n\r\nimport { CarouselItem } from \"@models/carousel-item\";\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"@services/global.service\";\r\n\r\n@Component({\r\n selector: \"carousel\",\r\n templateUrl: \"./carousel.component.html\",\r\n styleUrls: [\"./carousel.component.less\"],\r\n animations: [\r\n trigger(\"imageState\", [\r\n state(\"fadeOut\", style({ opacity: 0 })),\r\n state(\"fadeIn\", style({ opacity: 1 })),\r\n transition(\"* => fadeOut\", [style({ opacity: 1}), animate(\"200ms\", style({opacity: 0}))]),\r\n transition(\"* => fadeIn\", [style({opacity: 0}), animate(\"200ms 210ms\", style({opacity: 1}))])\r\n ])\r\n ]\r\n})\r\nexport class CarouselComponent implements AfterViewChecked {\r\n @Input() images: CarouselItem[] = [];\r\n @Input() interval: number = 2000;\r\n @Input() autoPlay: boolean = true;\r\n\r\n private currentImage: number = 0;\r\n private isPlaying: boolean = false;\r\n private imageLocation: string = environment.ImageLocation;\r\n private timerIntervalId: number;\r\n\r\n languageCode: string;\r\n\r\n constructor(private cdr: ChangeDetectorRef, private globalService: GlobalService) {\r\n this.languageCode = this.globalService.getLanguageCode();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.autoPlay && !this.isPlaying) {\r\n this.currentImage = 0;\r\n this.showImage(this.currentImage, \"fadeIn\");\r\n this.cdr.detectChanges();\r\n this.updateImageShown();\r\n\r\n this.timerIntervalId = window.setInterval(this.nextImage.bind(this), this.interval);\r\n this.isPlaying = true;\r\n }\r\n }\r\n\r\n private nextImage(): void {\r\n let nextImage: number = this.currentImage + 1;\r\n if (nextImage >= this.images.length) {\r\n nextImage = 0;\r\n }\r\n this.setImage(nextImage);\r\n }\r\n\r\n private hideImage(imageIndex: number, transitionState: string): void {\r\n if (this.images.length > 0) {\r\n this.images[imageIndex].transition = transitionState;\r\n }\r\n }\r\n\r\n private showImage(imageIndex: number, transitionState: string): void {\r\n if (this.images.length > 0) {\r\n this.images[imageIndex].transition = transitionState;\r\n }\r\n }\r\n\r\n private selectImage(imageIndex: number): void {\r\n clearInterval(this.timerIntervalId);\r\n this.timerIntervalId = window.setInterval(this.nextImage.bind(this), this.interval);\r\n this.setImage(imageIndex);\r\n }\r\n\r\n private setImage(imageIndex: number): void {\r\n this.hideImage(this.currentImage, \"fadeOut\");\r\n this.currentImage = imageIndex;\r\n this.showImage(this.currentImage, \"fadeIn\");\r\n this.updateImageShown();\r\n }\r\n\r\n private updateImageShown(): void {\r\n setTimeout(() => {\r\n this.images[this.currentImage].active = true;\r\n this.images.forEach((image) => {\r\n if (image !== this.images[this.currentImage]) {\r\n image.active = false;\r\n }\r\n });\r\n }, 200);\r\n }\r\n\r\n pauseAnimation(pause: boolean): void {\r\n if (pause) {\r\n clearInterval(this.timerIntervalId);\r\n } else {\r\n this.timerIntervalId = window.setInterval(this.nextImage.bind(this), this.interval);\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 {firstValueFrom, throwError as observableThrowError } from \"rxjs\";\r\nimport { Component, OnInit, Input, Output, EventEmitter, AfterViewInit, AfterContentInit } from \"@angular/core\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\n// import { Ng2ImgMaxService } from \"ng2-img-max\";\r\nimport { NgxImageCompressService } from \"ngx-image-compress\";\r\n\r\nimport { FormFieldBase } from \"@models/form-fields\";\r\nimport { FormService } from \"@services/form.service\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { UserService } from \"@services/user.service\";\r\nimport { ExpenseCategory } from \"@models/expense-category\";\r\nimport { ExpenseCurrency } from \"@models/expense-currency\";\r\nimport { environment } from \"@environment\";\r\nimport { UsnrDomain } from \"@models/usnr-domain\";\r\n\r\n@Component({\r\n selector: \"dynamic-form-field\",\r\n templateUrl: \"./dynamic-form-field.component.html\",\r\n styleUrls: [\"./dynamic-form-field.component.less\"]\r\n})\r\nexport class DynamicFormFieldComponent implements OnInit, AfterViewInit, AfterContentInit {\r\n @Input() field: FormFieldBase;\r\n @Input() form: FormGroup;\r\n @Input() submitAttempt: boolean;\r\n private requireFile: boolean;\r\n private captchaValid: boolean = false;\r\n private domainList: UsnrDomain[] = [];\r\n\r\n @Output() clearForm: EventEmitter = new EventEmitter();\r\n\r\n @Output() uploadingFile: EventEmitter = new EventEmitter();\r\n private _uploadingFile: boolean = false;\r\n get isUploadingFile(): boolean {\r\n return this._uploadingFile;\r\n }\r\n\r\n dynamicChoices: any[];\r\n\r\n defaultExpenseCurrency: string = \"USD\";\r\n\r\n localImageLocation: string = environment.LocalImageLocation;\r\n\r\n constructor(\r\n private formService: FormService,\r\n private globalService: GlobalService,\r\n private userService: UserService,\r\n private imageService: NgxImageCompressService\r\n // private imageService: Ng2ImgMaxService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.formId.toLowerCase() === \"expenseform\") {\r\n if (this.field.key.toLowerCase() === \"category\") {\r\n this.formService.getExpenseCategories().subscribe(\r\n (categories: ExpenseCategory[]) => { this.dynamicChoices = categories; },\r\n (error: any) => { this.handleError(error); }\r\n );\r\n } else if (this.field.key.toLowerCase() === \"currency\") {\r\n this.formService.getExpenseCurrencies().subscribe(\r\n (currencies: ExpenseCurrency[]) => { this.dynamicChoices = currencies; },\r\n (error: any) => { this.handleError(error); }\r\n );\r\n }\r\n }\r\n\r\n if (this.field.type === \"file\") {\r\n this.requireFile = this.field.required;\r\n }\r\n\r\n this.uploadingFile.emit(false);\r\n this._uploadingFile = false;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.captchaValid = false;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.captchaValid = false;\r\n }\r\n\r\n isInvalid(): boolean {\r\n const control: AbstractControl = this.form.get(this.field.key);\r\n\r\n let returnValue: boolean;\r\n\r\n if (this._uploadingFile) {\r\n returnValue = true;\r\n } else if (this.requireFile) {\r\n returnValue = this.submitAttempt && (this.form.controls[\"AttachedFile\"].value === \"\");\r\n } else {\r\n returnValue = (!control.valid && this.submitAttempt);\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n onCaptcha($event: any): void {\r\n this.form.controls[this.field.key].setValue($event);\r\n }\r\n\r\n onClearForm(): void {\r\n this.clearForm.emit();\r\n }\r\n\r\n // async handleEmailAddress($event: any): Promise {\r\n // if ($event) {\r\n // const isUsnr: boolean = await this.isUsnrDomain($event.target.value.toLowerCase());\r\n // if (this.field.formId === \"UserLogin\" && isUsnr) {\r\n // // if (!this.userService.isAuthenticated()) {\r\n // this.userService.loginUsnrUser();\r\n // // }\r\n\r\n // return true;\r\n // }\r\n // }\r\n // return false;\r\n // }\r\n\r\n private async getDomainList(): Promise {\r\n await firstValueFrom(this.globalService.getDomainList()).then(\r\n (domainList: UsnrDomain[]) => { this.domainList = domainList; }\r\n );\r\n }\r\n\r\n private async isUsnrDomain(emailAddress: string): Promise {\r\n if (!this.domainList.length) {\r\n await this.getDomainList();\r\n }\r\n\r\n const domainList: UsnrDomain[] = this.domainList.filter((domain: UsnrDomain) => {\r\n if (emailAddress.endsWith(\"@\" + domain.Id)) {\r\n return domain;\r\n }\r\n });\r\n\r\n return domainList.length > 0;\r\n }\r\n\r\n attachFileChange($event: any): void {\r\n const fileList: FileList = $event.target.files;\r\n if (fileList.length > 0) {\r\n this.uploadingFile.emit(true);\r\n this._uploadingFile = true;\r\n\r\n const formData: FormData = new FormData();\r\n formData.append(\"file[]\", fileList[0]);\r\n\r\n this.formService.uploadFile(\"\", formData).subscribe(\r\n (fileInfo: any) => {\r\n this.form.controls[\"AttachedFile\"].setValue(fileInfo.FileName);\r\n this.form.controls[\"AttachedFileOriginalName\"].setValue(fileInfo.OriginalFileName);\r\n this.form.controls[\"AttachedFileType\"].setValue(fileInfo.FileType);\r\n this.uploadingFile.emit(false);\r\n this._uploadingFile = false;\r\n },\r\n (error: any) => {\r\n this.uploadingFile.emit(false);\r\n this._uploadingFile = false;\r\n this.handleError(error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n attachImageChange($event: any): void {\r\n const fileList: FileList = $event.target.files;\r\n let localUrl: string;\r\n if (fileList.length > 0) {\r\n this.uploadingFile.emit(true);\r\n this._uploadingFile = true;\r\n\r\n const file: File = fileList[0];\r\n const reader: FileReader = new FileReader();\r\n reader.onload = ((event: any) => {\r\n localUrl = event.target.result;\r\n });\r\n reader.readAsDataURL($event.target.files[0]);\r\n\r\n const imageSize: number = file.size;\r\n if (imageSize > (1024 * 1024)) { // bigger than 1Mb\r\n this.compressAndUploadImage(localUrl, ((1024 * 1024) / imageSize) * 100, file);\r\n }\r\n\r\n // this.imageService.compressImage(fileList[0], 1).subscribe(\r\n // (result) => {\r\n // const formData: FormData = new FormData();\r\n // const compressedFile: File = result;\r\n // formData.append(\"file[]\", compressedFile);\r\n\r\n // this.formService.uploadFile(\"\", formData).subscribe(\r\n // (fileInfo: any) => {\r\n // this.form.controls[\"AttachedFile\"].setValue(fileInfo.FileName);\r\n // this.form.controls[\"AttachedFileOriginalName\"].setValue(fileList[0].name);\r\n // this.form.controls[\"AttachedFileType\"].setValue(fileInfo.FileType);\r\n // this.uploadingFile.emit(false);\r\n // this._uploadingFile = false;\r\n // },\r\n // (internalError: any) => { this.handleError(internalError); }\r\n // );\r\n // },\r\n // (error: any) => {\r\n // // handle error and send whole file?\r\n // const formData: FormData = new FormData();\r\n // formData.append(\"file[]\", fileList[0]);\r\n\r\n // this.formService.uploadFile(\"\", formData).subscribe(\r\n // (fileInfo: any) => {\r\n // this.form.controls[\"AttachedFile\"].setValue(fileInfo.FileName);\r\n // this.form.controls[\"AttachedFileOriginalName\"].setValue(fileList[0].name);\r\n // this.form.controls[\"AttachedFileType\"].setValue(fileInfo.FileType);\r\n // this.uploadingFile.emit(false);\r\n // this._uploadingFile = false;\r\n // },\r\n // (internalError: any) => { this.handleError(internalError); }\r\n // );\r\n // }\r\n // );\r\n }\r\n }\r\n\r\n private compressAndUploadImage(localFile: string, compressRatio: number, file: File): void {\r\n this.imageService.compressFile(localFile, -1, compressRatio).then(result => {\r\n // const image: string = result.split(\",\")[1];\r\n // const imageBlob = this.dataUriToBlob(image, file.type);\r\n const compressedFile: File = new File([result], file.name, { type: file.type });\r\n\r\n const formData: FormData = new FormData();\r\n formData.append(\"file[]\", compressedFile);\r\n\r\n this.formService.uploadFile(\"\", formData).subscribe(\r\n (fileInfo: any) => {\r\n this.form.controls[\"AttachedFile\"].setValue(fileInfo.FileName);\r\n this.form.controls[\"AttachedFileOriginalName\"].setValue(file.name);\r\n this.form.controls[\"AttachedFileType\"].setValue(fileInfo.FileType);\r\n this.uploadingFile.emit(false);\r\n this._uploadingFile = false;\r\n },\r\n (internalError: any) => { this.handleError(internalError); }\r\n );\r\n });\r\n }\r\n\r\n private dataUriToBlob(uri: string, fileType: string): Blob {\r\n const byteString: string = window.atob(uri);\r\n const buffer: ArrayBuffer = new ArrayBuffer(byteString.length);\r\n const intArray: Uint8Array = new Uint8Array(buffer);\r\n for (let i: number = 0; i < byteString.length; ++i) {\r\n intArray[i] = byteString.charCodeAt(i);\r\n }\r\n return new Blob([intArray], { type: fileType});\r\n }\r\n\r\n // setDefault(): void {\r\n // if (this.field.formId.toLowerCase() === \"expenseform\") {\r\n // if (this.field.key.toLowerCase() === \"currency\") {\r\n // this.field.value = this.defaultExpenseCurrency;\r\n // }\r\n // }\r\n // }\r\n\r\n private handleError(error: any) {\r\n console.error(\"An error occurred\", error);\r\n observableThrowError(error);\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \"loading\"\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 \"loading\"\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
    \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
    \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 *\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
    \r\n
    \r\n
    \r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n ElementRef,\r\n AfterViewInit,\r\n AfterContentInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\n// import { ReCaptcha2Component } from 'ngx-captcha';\r\n\r\nimport { environment } from '@environment';\r\nimport {\r\n FormFieldBase,\r\n FormFieldSubmitButton,\r\n FormFieldSubmitAndClearButtons,\r\n FormFieldCheckIdentityButton,\r\n} from '@models/form-fields';\r\nimport { DataQueryResult } from '@models/data-query-result';\r\nimport { UserService } from '@services/user.service';\r\nimport { GlobalService } from '@services/global.service';\r\nimport { FormService } from '@services/form.service';\r\nimport { ValidatedUser } from '@models/validated-user';\r\nimport { ModalService } from '@services/modal.service';\r\nimport { ModalResultsDialogComponent } from '../modal-results-dialog/modal-results-dialog.component';\r\nimport { ModalDataQueryConfigs } from '@models/modal-data-query-configs';\r\nimport { UsnrDomain } from '@models/usnr-domain';\r\nimport { UserCustomerAccounts } from '@models/user-customer-accounts';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ReCaptchaV3Service } from 'ng-recaptcha';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styleUrls: ['./dynamic-form.component.less'],\r\n})\r\nexport class DynamicFormComponent\r\n implements OnInit, AfterViewInit, AfterContentInit\r\n{\r\n @Input() fields: FormFieldBase[] = [];\r\n @Input() formId: string;\r\n @Input() pageId: string;\r\n @Input() returnUrl: string = '';\r\n @Input() dataQueryId: string = '';\r\n @Input() autoRunDataQuery: boolean = false;\r\n @Input() isLoginForm: boolean = false;\r\n @Input() isAuthenticationForm: boolean = false;\r\n\r\n // @ViewChild('captcha') captcha: ReCaptcha2Component;\r\n\r\n form: FormGroup;\r\n payLoad: string = '';\r\n responseMessage: string = '';\r\n dataQueryResults: DataQueryResult[] = [];\r\n private captchaSucceeded: boolean = false;\r\n private _captchaSubscription: Subscription;\r\n\r\n private responseSuccess: boolean = false;\r\n private responseFailure: boolean = false;\r\n private responseEmailConfirm: boolean = false;\r\n private responseValidationLink: boolean = false;\r\n private domainList: UsnrDomain[] = [];\r\n busy: boolean = false;\r\n\r\n get localImageLocation(): string {\r\n return environment.LocalImageLocation;\r\n }\r\n\r\n successModalId: string = 'successModal';\r\n\r\n formSubmitAttempt: boolean = false;\r\n\r\n constructor(\r\n private formService: FormService,\r\n private userService: UserService,\r\n private globalService: GlobalService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private el: ElementRef,\r\n private modalService: ModalService,\r\n private _dialog: MatDialog,\r\n private _sanitizer: DomSanitizer,\r\n private reCaptchaService: ReCaptchaV3Service\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.form = this.formService.toFormGroup(this.fields);\r\n // if (this.returnUrl !== '') {\r\n // sessionStorage.setItem('returnUrl', this.returnUrl);\r\n // }\r\n\r\n if (this.autoRunDataQuery && this.dataQueryId !== '') {\r\n this.processDataQuery();\r\n }\r\n\r\n if (this.isLoginForm) {\r\n this.getDomainList();\r\n }\r\n\r\n const user: ValidatedUser = this.userService.getCurrentUser();\r\n if (this.isAuthenticationForm && user !== null) {\r\n console.log('dynamic-form.navigateToTargetPage');\r\n this.navigateToTargetPage({ dt: 1, userId: user.UserId });\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.payLoad = '';\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.payLoad = '';\r\n }\r\n\r\n onRefreshDataQuery(): void {\r\n this.processDataQuery();\r\n }\r\n\r\n private getDomainList(): void {\r\n this.globalService.getDomainList().subscribe((domainList: UsnrDomain[]) => {\r\n this.domainList = domainList;\r\n });\r\n }\r\n\r\n private processDataQuery(): void {\r\n const formData: { [id: string]: string } = {};\r\n formData['objectId'] = this.pageId;\r\n formData['objectType'] = 'page';\r\n formData['LanguageId'] = this.globalService.getLanguage();\r\n\r\n this.route.snapshot.queryParamMap.keys.forEach((key: string) => {\r\n formData['QueryString-' + key.toLowerCase()] = this.route.snapshot.queryParamMap.get(key);\r\n });\r\n\r\n const user: ValidatedUser = this.userService.getCurrentUser();\r\n if (user) {\r\n formData['loginContext'] = user.UserId;\r\n }\r\n\r\n this.dataQueryResults = [];\r\n this.submitDataQuery(formData);\r\n }\r\n\r\n disableForm(toBeDisabled: boolean): void {\r\n if (toBeDisabled) {\r\n this.form.disable();\r\n } else {\r\n this.form.enable();\r\n }\r\n }\r\n\r\n private handleCaptchaToken(token: string): void {\r\n if (token && token !== '') {\r\n this.captchaSucceeded = true;\r\n this.submitForm();\r\n } else {\r\n this.captchaSucceeded = false;\r\n }\r\n if (this._captchaSubscription) {\r\n this._captchaSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n async onSubmit(): Promise {\r\n if (this.form.contains('captchaToken')) {\r\n this._captchaSubscription = this.reCaptchaService.execute('submit').subscribe((token) => this.handleCaptchaToken(token));\r\n } else {\r\n this.handleCaptchaToken('not required');\r\n }\r\n }\r\n\r\n private async submitForm(): Promise {\r\n this.validateForm();\r\n if (this.form.valid) {\r\n const formData = this.form.value;\r\n const keys: string[] = Object.keys(formData);\r\n keys.forEach((key) => {\r\n if (!formData[key] || formData[key] === '' || key === 'captcha' || key === '') {\r\n delete formData[key];\r\n } else if (typeof formData[key] !== 'string') {\r\n if (formData[key].formatted) {\r\n formData[key] = formData[key].formatted;\r\n }\r\n }\r\n });\r\n\r\n formData['objectId'] = this.pageId;\r\n formData['objectType'] = 'page';\r\n formData['LanguageId'] = this.globalService.getLanguage();\r\n\r\n const user: ValidatedUser = this.userService.getCurrentUser();\r\n if (user) {\r\n formData['loginContext'] = user.UserId;\r\n }\r\n const referringObjectId = this.route.snapshot.queryParams['referringid'];\r\n if (referringObjectId) {\r\n formData['referringObjectId'] = referringObjectId;\r\n }\r\n const referringObjectType = this.route.snapshot.queryParams['referringtype'];\r\n if (referringObjectType) {\r\n formData['referringObjectType'] = referringObjectType;\r\n }\r\n\r\n // if (this.isLoginForm) {\r\n // if (this.isUsnrDomain(formData[\"UserId\"])) {\r\n // if (!this.userService.isAuthenticated()) {\r\n // this.userService.loginUsnrUser();\r\n // }\r\n // } else {\r\n // this.submitIdentityCheck(formData);\r\n // }\r\n // } else if (this.isAuthenticationForm) {\r\n // this.verifyIdentity(formData);\r\n // } else if (this.dataQueryId && this.dataQueryId !== \"\") {\r\n // this.submitDataQuery(formData);\r\n // } else {\r\n // this.submitData(formData);\r\n // }\r\n\r\n switch (this.formId) {\r\n case 'LoginForm':\r\n this.loginUser(formData);\r\n break;\r\n default:\r\n if (this.isLoginForm) {\r\n if (this.isUsnrDomain(formData['UserId'])) {\r\n if (!this.userService.isAuthenticated()) {\r\n await this.userService.loginUsnrUser();\r\n await this.userService.loginAuthenticatedUser();\r\n const currentUser: ValidatedUser = this.userService.getCurrentUser();\r\n if (currentUser) {\r\n this.gotoValidationPage(currentUser);\r\n }\r\n }\r\n } else {\r\n this.submitIdentityCheck(formData);\r\n }\r\n } else if (this.isAuthenticationForm) {\r\n this.verifyIdentity(formData);\r\n } else if (this.dataQueryId && this.dataQueryId !== '') {\r\n this.submitDataQuery(formData);\r\n } else {\r\n this.submitData(formData);\r\n }\r\n }\r\n\r\n this.payLoad = JSON.stringify(this.form.value);\r\n }\r\n }\r\n\r\n private gotoValidationPage(user: ValidatedUser): void {\r\n this.returnUrl = sessionStorage.getItem('returnUrl');\r\n if (this.returnUrl) {\r\n sessionStorage.removeItem('returnUrl');\r\n }\r\n\r\n if (this.returnUrl && this.returnUrl !== '' && this.returnUrl !== '/') {\r\n this.userService.getCustomerAccountOptions('').subscribe({\r\n next: (accounts: UserCustomerAccounts) => {\r\n if (accounts && accounts.Accounts && accounts.Accounts.length === 1) {\r\n this.userService.setCustomerAccount(accounts.Accounts[0], accounts.CustomerAccountSelectedPageId);\r\n this.router.navigateByUrl(this.returnUrl);\r\n } else {\r\n this.navigateToTargetPage({ userId: user.UserId });\r\n }\r\n },\r\n error: (error: any) => {\r\n this.handleError(error);\r\n }\r\n });\r\n } else {\r\n this.navigateToTargetPage({ userId: user.UserId });\r\n }\r\n }\r\n\r\n private isUsnrDomain(emailAddress: string): boolean {\r\n if (!this.domainList.length) {\r\n this.getDomainList();\r\n }\r\n\r\n emailAddress = emailAddress.toLowerCase();\r\n const domainList: UsnrDomain[] = this.domainList.filter(\r\n (domain: UsnrDomain) => {\r\n if (emailAddress.endsWith('@' + domain.Id.toLowerCase())) {\r\n return domain;\r\n }\r\n }\r\n );\r\n\r\n return domainList.length > 0;\r\n }\r\n\r\n private validateForm(): void {\r\n this.formSubmitAttempt = true;\r\n }\r\n\r\n private submitIdentityCheck(data: any): void {\r\n this.formService.submitIdentityCheck(data).subscribe();\r\n this.navigateToTargetPage({ dt: 1, userId: data.UserId });\r\n }\r\n\r\n private verifyIdentity(data: any): void {\r\n const userId: string = this.route.snapshot.queryParamMap.get('userId');\r\n data['UserId'] = userId;\r\n this.formService.submitVerifyIdentity(data).subscribe({\r\n next: (result: ValidatedUser) => {\r\n if (result) {\r\n this.responseSuccess = true;\r\n\r\n if (!this.isUsnrDomain(userId)) {\r\n this.userService.setCurrentUser(result);\r\n }\r\n\r\n this.gotoValidationPage(result);\r\n // this.userService.setCurrentUser(result);\r\n\r\n // this.returnUrl = sessionStorage.getItem('returnUrl');\r\n // if (this.returnUrl) {\r\n // sessionStorage.removeItem('returnUrl');\r\n // }\r\n\r\n // if (this.returnUrl && this.returnUrl !== '' && this.returnUrl !== '/') {\r\n // this.userService.getCustomerAccountOptions('').subscribe({\r\n // next: (accounts: UserCustomerAccounts) => {\r\n // if (accounts && accounts.Accounts && accounts.Accounts.length === 1) {\r\n // this.userService.setCustomerAccount(accounts.Accounts[0], accounts.CustomerAccountSelectedPageId);\r\n // this.router.navigateByUrl(this.returnUrl);\r\n // } else {\r\n // this.navigateToTargetPage({ userId: data.UserId });\r\n // }\r\n // },\r\n // error: (error: any) => {\r\n // this.handleError(error);\r\n // }\r\n // });\r\n // } else {\r\n // this.navigateToTargetPage({ userId: data.UserId });\r\n // }\r\n } else {\r\n this.responseFailure = true;\r\n this.userService.setCurrentUser(null);\r\n this.responseMessage = this.getFailureMessage();\r\n this.formSubmitAttempt = false;\r\n }\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n if (error.status === 500) {\r\n this.responseFailure = true;\r\n this.userService.setCurrentUser(null);\r\n this.responseMessage = error.statusText;\r\n this.formSubmitAttempt = false;\r\n } else {\r\n this.handleError(error);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private submitData(data: any): void {\r\n this.formService.submitData(this.formId, data).subscribe({\r\n next: (result: boolean) => {\r\n if (result) {\r\n this.responseSuccess = true;\r\n this.responseMessage = this.getSuccessMessage();\r\n this.modalService.open(this.successModalId);\r\n } else {\r\n this.responseFailure = true;\r\n this.responseMessage = this.getFailureMessage();\r\n this.formSubmitAttempt = false;\r\n }\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.handleError(error);\r\n }\r\n });\r\n }\r\n\r\n private submitDataQuery(data: any) {\r\n this.busy = true;\r\n this.dataQueryResults = [];\r\n this.formService.submitDataQuery(this.formId, this.dataQueryId, data).subscribe({\r\n next: (results: any) => {\r\n this.dataQueryResults = results;\r\n this.busy = false;\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.busy = false;\r\n this.handleError(error);\r\n }\r\n });\r\n }\r\n\r\n private loginUser(data: any): void {\r\n sessionStorage.removeItem('returnUrl');\r\n this.userService.loginUser(data).then(\r\n (response: boolean) => {\r\n if (response) {\r\n if (this.returnUrl !== '') {\r\n this.router.navigate([this.returnUrl]);\r\n } else {\r\n this.responseSuccess = true;\r\n this.responseMessage = this.getSuccessMessage();\r\n }\r\n } else {\r\n this.responseFailure = true;\r\n this.responseMessage = this.getFailureMessage();\r\n }\r\n },\r\n (error: HttpErrorResponse) => {\r\n if (error.status === 401) {\r\n if (error.statusText.toLowerCase() !== 'ok') {\r\n this.responseMessage = error.statusText;\r\n } else {\r\n this.responseFailure = true;\r\n this.responseMessage = this.getFailureMessage();\r\n }\r\n } else {\r\n this.responseFailure = true;\r\n this.responseMessage = this.getFailureMessage();\r\n }\r\n }\r\n );\r\n }\r\n\r\n protected getFailedIdentityValidationMessage(): string {\r\n if (this.fields && this.fields.length > 0) {\r\n const failureMessage: FormFieldBase[] = this.fields.filter(\r\n (f: FormFieldBase) => {\r\n if (f.controlType === 'msgValidationLink') {\r\n return f;\r\n }\r\n }\r\n );\r\n\r\n if (failureMessage && failureMessage.length > 0) {\r\n return failureMessage[0].value;\r\n }\r\n\r\n return '';\r\n }\r\n }\r\n\r\n private getFailureMessage(): string {\r\n if (this.fields && this.fields.length > 0) {\r\n const failureMessage: FormFieldBase[] = this.fields.filter(\r\n (f: FormFieldBase) => {\r\n if (f.controlType === 'msgFailure') {\r\n return f;\r\n }\r\n }\r\n );\r\n\r\n if (failureMessage && failureMessage.length > 0) {\r\n return failureMessage[0].value;\r\n }\r\n\r\n return '';\r\n }\r\n }\r\n\r\n private getSuccessMessage(): string {\r\n if (this.fields && this.fields.length > 0) {\r\n const message: FormFieldBase[] = this.fields.filter(\r\n (f: FormFieldBase) => {\r\n if (f.controlType === 'msgSuccess') {\r\n return f;\r\n }\r\n }\r\n );\r\n\r\n if (message && message.length > 0) {\r\n return message[0].value;\r\n }\r\n\r\n return '';\r\n }\r\n }\r\n\r\n onClear(): void {\r\n if (this.form.controls.captcha) {\r\n this.form.controls.captcha.reset();\r\n }\r\n this.form.reset();\r\n this.fields.forEach((f: FormFieldBase) => {\r\n f.resetToDefault();\r\n });\r\n }\r\n\r\n handleCaptchaReset(): void {\r\n this.captchaSucceeded = false;\r\n }\r\n\r\n onCaptcha(): void {\r\n this.captchaSucceeded = true;\r\n }\r\n\r\n getMessageStyle() {\r\n if (this.responseFailure) {\r\n return '#cc0000';\r\n }\r\n\r\n return 'inherited';\r\n }\r\n\r\n onModalClosed(): void {\r\n this.formSubmitAttempt = false;\r\n\r\n const returnUrl: string = sessionStorage.getItem('returnUrl');\r\n\r\n if (returnUrl) {\r\n sessionStorage.removeItem('returnUrl');\r\n }\r\n\r\n this.form.reset();\r\n\r\n if (returnUrl && returnUrl !== '' && returnUrl !== '/') {\r\n this.router.navigate([this.returnUrl], { queryParams: { dt: 1 } });\r\n } else {\r\n this.navigateToTargetPage(null);\r\n }\r\n }\r\n\r\n private navigateToTargetPage(additionalData: Params | null): void {\r\n const successTarget: FormFieldBase[] = this.fields.filter(\r\n (f: FormFieldBase) => {\r\n if (f.controlType === 'buttonSubmit' ||\r\n f.controlType === 'buttonSubmitAndClear' ||\r\n f.controlType === 'buttonCheckIdentity'\r\n ) {\r\n return f;\r\n }\r\n }\r\n );\r\n\r\n if (successTarget && successTarget.length > 0) {\r\n const targetPageId: string = this.getTargetPage(successTarget[0]);\r\n\r\n let params: Params;\r\n if (additionalData) {\r\n params = additionalData;\r\n } else {\r\n params = { dt: 1 };\r\n }\r\n\r\n this.router.navigate(\r\n [this.globalService.getLanguageCode(), 'page', targetPageId],\r\n { queryParams: params }\r\n );\r\n }\r\n }\r\n\r\n private getTargetPage(field: FormFieldBase): string {\r\n if (field.controlType === 'buttonSubmit') {\r\n return (field as FormFieldSubmitButton).targetPageId;\r\n } else if (field.controlType === 'buttonSubmitAndClear') {\r\n return (field as FormFieldSubmitAndClearButtons).targetPageId;\r\n } else if (field.controlType === 'buttonCheckIdentity') {\r\n return (field as FormFieldCheckIdentityButton).targetPageId;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n private handleError(error: any): void {\r\n console.error('An error occurred', error);\r\n }\r\n\r\n onShowResultsInModal(configs: ModalDataQueryConfigs): void {\r\n const dialogRef: MatDialogRef =\r\n this._dialog.open(ModalResultsDialogComponent, {\r\n data: configs,\r\n width: 'auto',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n // this.processDataQuery();\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n {{responseMessage}}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \"loading\"\r\n \r\n \r\n
    {{responseMessage}}
    \r\n
    \r\n
    \r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"field-error-display\",\r\n templateUrl: \"./field-error-display.component.html\",\r\n styleUrls: [\"./field-error-display.component.less\"]\r\n})\r\nexport class FieldErrorDisplayComponent {\r\n @Input() errorMessage: string;\r\n @Input() displayError: boolean;\r\n}\r\n","
    \r\n

    {{errorMessage}}

    \r\n
    \r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { FormFieldBase } from \"@models/form-fields\";\r\n\r\n@Component({\r\n selector: \"form-detail\",\r\n templateUrl: \"./form-detail.component.html\",\r\n styleUrls: [\"./form-detail.component.less\"]\r\n})\r\nexport class FormDetailComponent {\r\n formId: string;\r\n pageId: string;\r\n returnUrl: string;\r\n dataQueryId: string;\r\n autoRunDataQuery: boolean;\r\n isLoginForm: boolean;\r\n isAuthenticationForm: boolean;\r\n fields: FormFieldBase[] = [];\r\n}\r\n","
    \r\n \r\n \r\n
    \r\n\r\n","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute, Router, Params } from \"@angular/router\";\r\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { GeneralFeature } from \"@models/general-feature\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { UserService } from \"@services/user.service\";\r\n\r\n@Component({\r\n selector: \"general-features\",\r\n templateUrl: \"./general-features.component.html\",\r\n styleUrls: [\"./general-features.component.less\"]\r\n})\r\nexport class GeneralFeaturesComponent implements OnInit, OnDestroy {\r\n private languageSubscription: Subscription;\r\n private userSubscription: Subscription;\r\n private routeSubscription: Subscription;\r\n\r\n @Input() featureType: string;\r\n @Input() id: string;\r\n\r\n imageLocation: string = environment.ImageLocation;\r\n features: GeneralFeature[] = [];\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private route: ActivatedRoute,\r\n private sanitizer: DomSanitizer,\r\n private router: Router,\r\n private userService: UserService\r\n ) {\r\n this.languageSubscription = globalService.languageId$.subscribe(\r\n () => { this.ngOnInit(); }\r\n );\r\n\r\n this.userSubscription = this.userService.currentUser$.subscribe(\r\n () => this.ngOnInit()\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.id || this.id === \"\") {\r\n this.routeSubscription = this.route.params.subscribe(\r\n (params: Params) => {\r\n this.globalService.getGeneralFeatures(params[\"id\"], this.featureType).subscribe(\r\n (features: GeneralFeature[]) => {\r\n if (features) {\r\n this.processFeatures(features);\r\n } else {\r\n this.features = null;\r\n }\r\n },\r\n (error: any) => { this.handleError(error); }\r\n );\r\n }\r\n );\r\n } else {\r\n this.routeSubscription = this.globalService.getGeneralFeatures(this.id, this.featureType).subscribe(\r\n (features: GeneralFeature[]) => {\r\n if (features) {\r\n this.processFeatures(features);\r\n } else {\r\n this.features = null;\r\n }\r\n },\r\n (error: any) => { this.handleError(error); }\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.languageSubscription) {\r\n this.languageSubscription.unsubscribe();\r\n }\r\n if (this.userSubscription) {\r\n this.userSubscription.unsubscribe();\r\n }\r\n if (this.routeSubscription) {\r\n this.routeSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n private processFeatures(features: GeneralFeature[]) {\r\n if (features) {\r\n features.forEach((f: GeneralFeature) => {\r\n f.BackgroundColor = f.HtmlColor;\r\n });\r\n }\r\n this.features = features;\r\n }\r\n\r\n getField(value: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n\r\n // private getCurrentPageId(): string {\r\n // const id: string = this.route.snapshot.params[\"id\"];\r\n // if (id) {\r\n // return id;\r\n // }\r\n\r\n // return \"home\";\r\n // }\r\n\r\n // private getCurrentPageType(): string {\r\n // if (this.route.snapshot.url.length > 2) {\r\n // return this.route.snapshot.url[1].path;\r\n // }\r\n\r\n // return \"page\";\r\n // }\r\n\r\n navigateToTarget(feature: GeneralFeature): void {\r\n const languageCode: string = this.globalService.getLanguageCode();\r\n switch (feature.TargetType.toLowerCase()) {\r\n case \"page\":\r\n this.router.navigate([languageCode, \"page\", feature.Target], { queryParams: { dt: 1 }});\r\n break;\r\n case \"product\":\r\n this.router.navigate([languageCode, \"product\", feature.Target], { queryParams: { dt: 1 }});\r\n break;\r\n case \"content\":\r\n this.router.navigate([languageCode, \"content\", feature.Target], { queryParams: { dt: 1 }});\r\n break;\r\n case \"media\":\r\n this.router.navigate([]).then(() => { window.open(environment.ImageLocation + feature.Target, \"_blank\"); });\r\n break;\r\n case \"none\":\r\n return;\r\n default:\r\n this.router.navigateByUrl(feature.Target);\r\n }\r\n }\r\n\r\n setHoverColor(feature: GeneralFeature): void {\r\n feature.BackgroundColor = feature.HtmlHoverColor;\r\n }\r\n\r\n setBackgroundColor(feature: GeneralFeature): void {\r\n feature.BackgroundColor = feature.HtmlColor;\r\n }\r\n\r\n private handleError(error: any): void {\r\n console.error(\"An error occurred\", error);\r\n }\r\n}\r\n","\r\n","import { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { Router } from '@angular/router';\nimport { CustomerAccount } from '@models/customer-account';\nimport { MobileMasterMenu } from '@models/mobile-master-menu';\nimport { MobileMenuItem } from '@models/mobile-menu-item';\nimport { ValidatedUser } from '@models/validated-user';\nimport { GlobalService } from '@services/global.service';\nimport { UserService } from '@services/user.service';\n\nimport { BaseComponent } from 'src/app/base/base.component';\n\n@Component({\n selector: 'mobile-main-menu',\n templateUrl: './mobile-main-menu.component.html',\n styleUrls: ['./mobile-main-menu.component.less'],\n})\nexport class MobileMainMenuComponent extends BaseComponent implements OnInit {\n mainItemExpansionPanels: QueryList;\n masterMenu: MobileMasterMenu;\n languageCode: string;\n\n @ViewChildren('mainItemExpansionPanels')\n @ViewChild('languagesPanel')\n\n languagesPanel: MatExpansionPanel;\n\n constructor(private userService: UserService, private globalService: GlobalService, private router: Router) {\n super();\n\n this.subscriptions.push(this.userService.currentUser$.subscribe(() => this.ngOnInit()));\n this.subscriptions.push(this.userService.currentAccount$.subscribe(() => this.ngOnInit()));\n this.subscriptions.push(\n this.globalService.getMobileMainMenu().subscribe({\n next: (menu: MobileMasterMenu) => {\n this.masterMenu = menu;\n this.addUserInfo();\n },\n error: (error: any) => {\n this.handleError(error);\n },\n })\n );\n }\n\n ngOnInit(): void {\n this.languageCode = this.globalService.getLanguageCode();\n }\n\n signoutUser(): void {\n this.userService.signOutUser();\n this.router.navigate([this.languageCode, 'page', 'home']);\n }\n\n expandMainItemPanel(event: any): void {\n event.stopPropagation();\n\n if (!this.isExpansionIndicator(event.target)) {\n // VERY CLUMSY - NEED SOMETHING BETTER IF POSSIBLE\n const panelId: string = event.srcElement.parentElement.parentElement.parentElement.attributes['panelid'].value;\n this.openPanel(panelId);\n }\n }\n\n openPanel(panelId: string): void {\n this.getPanel(panelId).toggle();\n }\n\n isPanelOpen(panelId: string): boolean {\n const panel: MatExpansionPanel = this.getPanel(panelId);\n if (panel) {\n return panel.expanded;\n }\n return false;\n }\n\n getPanel(panelId: string): MatExpansionPanel {\n let menuPanel: MatExpansionPanel;\n if (panelId && panelId !== '') {\n const menu: string = panelId.substring(0, 4);\n if (menu === 'main' && this.mainItemExpansionPanels) {\n const idx: number = +panelId.substring(4);\n menuPanel = this.mainItemExpansionPanels.toArray()[idx];\n } else if (menu === 'lang') {\n menuPanel = this.languagesPanel;\n }\n }\n\n return menuPanel;\n }\n\n expandLanguagesPanel(event: Event): void {\n event.stopPropagation();\n\n if (!this.isExpansionIndicator(event.target)) {\n this.languagesPanel.toggle();\n }\n }\n\n changeLanguage(language: MobileMenuItem): void {\n if (language.Target !== this.languageCode) {\n this.globalService.setLanguage(language.Target);\n this.languageCode = language.Target;\n }\n }\n\n private addUserInfo(): void {\n if (this.masterMenu.ToolbarItems.length === 0) {\n this.masterMenu.ToolbarItems[0] = new MobileMenuItem();\n }\n this.masterMenu.ToolbarItems[0].SubMenu = [];\n\n const user: ValidatedUser = this.userService.getCurrentUser();\n\n if (user) {\n const nameItem: MobileMenuItem = new MobileMenuItem();\n nameItem.Title = user.Name;\n this.masterMenu.ToolbarItems[0].SubMenu.push(nameItem);\n\n const account: CustomerAccount = this.userService.getCustomerAccount();\n if (account) {\n const accountItem: MobileMenuItem = new MobileMenuItem();\n accountItem.Title = account.Name;\n this.masterMenu.ToolbarItems[0].SubMenu.push(accountItem);\n\n const locationItem: MobileMenuItem = new MobileMenuItem();\n locationItem.Title = account.Location;\n this.masterMenu.ToolbarItems[0].SubMenu.push(locationItem);\n }\n }\n }\n\n private isExpansionIndicator(target): boolean {\n const expansionIndicatorClass: string = 'mat-expansion-indicator';\n\n return target.classList && target.classList.contains(expansionIndicatorClass);\n }\n}\n","
    \n \n \n {{item.Title}}\n \n \n 0; else topLevelMenu\">\n \n \n \n \n {{item.Title}}\n \n \n \n {{isPanelOpen(\"main\" + menuIdx) ? \"keyboard_arrow_down\" : \"chevron_right\"}}\n \n \n

    \n \n \n {{subItem.Title}}\n \n \n \n \n {{subItem.Title}}\n \n \n

    \n
    \n
    \n
    \n \n

    \n {{item.Title}}\n

    \n
    \n
    \n
    \n

    \n \n \n {{masterMenu.LanguageItem.Title}}\n \n {{isPanelOpen(\"languages\") ? \"keyboard_arrow_down\" : \"chevron_right\"}}\n \n \n

    \n {{subItem.Title}}\n

    \n
    \n
    \n

    \n {{masterMenu.DesktopSiteText}}\n

    \n 0 && masterMenu.ToolbarItems[0].Target === 'LoginForm'\"\n [routerLink]=\"['/' + languageCode, 'page', masterMenu.ToolbarItems[0].Target]\">\n {{masterMenu.ToolbarItems[0].Title}}\n \n 0 && masterMenu.ToolbarItems[0].Target && masterMenu.ToolbarItems[0].Target !== 'LoginForm'\"\n [routerLink]=\"['/' + languageCode, 'page', masterMenu.ToolbarItems[0].Target]\">\n {{masterMenu.ToolbarItems[0].Title}}\n \n
    0\">\n \n

    \n {{subItem.Title}}\n

    \n
    \n
    \n

    0 && masterMenu.ToolbarItems[0].SubMenu.length > 0\">\n {{masterMenu.SignoutText}}\n

    \n

    \n

    {{masterMenu.Copyright}}

    \n
    \n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\nimport { ModalDataQueryConfigs } from \"@models/modal-data-query-configs\";\r\nimport { DataQueryResult } from \"@models/data-query-result\";\r\n\r\n@Component({\r\n selector: \"modal-results-dialog\",\r\n templateUrl: \"./modal-results-dialog.component.html\",\r\n styleUrls: [\"./modal-results-dialog.component.less\"]\r\n})\r\nexport class ModalResultsDialogComponent implements OnInit {\r\n dataQueryResults: DataQueryResult[] = [];\r\n title: string;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: ModalDataQueryConfigs,\r\n private _dialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.data) {\r\n this.title = this.data.title;\r\n this.dataQueryResults = this.data.dataQueryResults;\r\n }\r\n }\r\n\r\n onRefreshPage(): void {\r\n this._dialogRef.close();\r\n }\r\n}\r\n","
    \r\n
    \r\n open_with\r\n
    \r\n

    \r\n {{title}}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n","import { Component, OnInit, Input, Output, HostListener, EventEmitter } from \"@angular/core\";\r\n\r\nimport { ModalService } from \"@services/modal.service\";\r\n\r\n@Component({\r\n selector: \"modal\",\r\n templateUrl: \"./modal.component.html\",\r\n styleUrls: [\"./modal.component.less\"]\r\n})\r\nexport class ModalComponent implements OnInit {\r\n @Input() modalId: string;\r\n @Input() modalTitle: string;\r\n @Input() blocking = false;\r\n\r\n @Output() closed: EventEmitter = new EventEmitter();\r\n isOpen = false;\r\n\r\n @HostListener(\"keyup\") onMouseEnter(event) {\r\n this.keyup(event);\r\n }\r\n\r\n constructor(private modalService: ModalService) {}\r\n\r\n ngOnInit() {\r\n this.modalService.registerModal(this);\r\n }\r\n\r\n close(checkBlocking = false): void {\r\n this.modalService.close(this.modalId, checkBlocking);\r\n if (!this.isOpen) {\r\n this.closed.emit();\r\n }\r\n }\r\n\r\n private keyup(event: KeyboardEvent): void {\r\n if (event.keyCode === 27) {\r\n this.modalService.close(this.modalId, true);\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n {{ modalTitle }}\r\n clear\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { GlobalService } from '@services/global.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { PrivacyAlertDialogComponent, PrivacyMessageData } from '../privacy-alert-dialog/privacy-alert-dialog.component';\n\n@Component({\n selector: 'privacy-alert-check',\n templateUrl: './privacy-alert-check.component.html',\n styleUrls: ['./privacy-alert-check.component.less'],\n})\nexport class PrivacyAlertCheckComponent implements OnInit {\n private privacyMessageData: PrivacyMessageData;\n\n constructor(\n private _globalService: GlobalService,\n private _dialog: MatDialog,\n private _router: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n if (this._router.snapshot.url.length === 3 &&\n this._router.snapshot.url[1].path === 'page' &&\n this._router.snapshot.url[2].path === 'privacy'\n ) {\n return;\n }\n if (!this._globalService.cookiesEnabled()) {\n this.loadAndShowPrivacyMessage();\n }\n }\n\n private async loadAndShowPrivacyMessage(): Promise {\n await this._globalService.getPrivacyMessageData().then(\n (privacyData: PrivacyMessageData) => this.privacyMessageData = privacyData\n );\n\n if (this.privacyMessageData) {\n const dialogRef: MatDialogRef =\n this._dialog.open(PrivacyAlertDialogComponent, {\n data: this.privacyMessageData, disableClose: true\n });\n\n dialogRef.afterClosed().subscribe(() => {\n this._globalService.enableCookies();\n this._globalService.setupClickDimensions();\n });\n }\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { PageDetail } from '@models/page-detail';\nimport { PageSummary } from '@models/page-summary';\nimport { GlobalService } from '@services/global.service';\nimport { PageService } from '@services/page.service';\n\nexport class PrivacyMessageData {\n Message: string;\n LinkText: string;\n ButtonText: string;\n}\n\n@Component({\n selector: 'privacy-alert-dialog',\n templateUrl: './privacy-alert-dialog.component.html',\n styleUrls: ['./privacy-alert-dialog.component.less'],\n})\nexport class PrivacyAlertDialogComponent {\n privacyMessage: string = '';\n privacyLinkText: string = '';\n privacyButtonText: string = '';\n\n showLearnMore: boolean = false;\n learnMoreText: SafeHtml;\n\n get language(): string {\n return this._globalService.getLanguage();\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: PrivacyMessageData,\n private _dialogRef: MatDialogRef,\n private _globalService: GlobalService,\n private _pageService: PageService,\n private _sanitizer: DomSanitizer\n ) {\n this.privacyMessage = data.Message;\n this.privacyLinkText = data.LinkText;\n this.privacyButtonText = data.ButtonText;\n }\n\n onButtonClick(): void {\n this._dialogRef.close();\n }\n\n onShowLearnMore(): void {\n this.showLearnMore = true;\n let learnMoreText: string = '';\n this._pageService.getDetails('privacy').subscribe((summary: PageSummary) => {\n learnMoreText = `

    ${this.privacyLinkText}

    `;\n summary.Details.forEach((detail: PageDetail) => {\n if (detail.DetailType.toLowerCase() === 'description') {\n learnMoreText += `

    ${detail.Description}

    `;\n } else if (detail.DetailType.toLowerCase() === 'summary') {\n this.privacyLinkText = detail.Title;\n }\n });\n\n this.learnMoreText = this._sanitizer.bypassSecurityTrustHtml(learnMoreText);\n });\n }\n}\n","{{privacyMessage}}\n
    \n\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { ActivatedRoute, Params } from '@angular/router';\n\nimport { environment } from '@environment';\nimport { MenuItem } from '@models/menu-item';\nimport { MobileHeaderInfo } from '@models/mobile-header-info';\nimport { SharedHeader } from '@models/shared-header';\nimport { GlobalService } from '@services/global.service';\nimport { HeaderService } from '@services/header.service';\nimport { SharedService } from '@services/shared.service';\nimport { BaseComponent } from 'src/app/base/base.component';\n\n@Component({\n selector: 'mobile-shared-header',\n templateUrl: './mobile-shared-header.component.html',\n styleUrls: ['./mobile-shared-header.component.less'],\n})\nexport class MobileSharedHeaderComponent extends BaseComponent implements OnInit {\n imageLocation: string = environment.ImageLocation;\n languageCode: string;\n hasChildren: boolean = false;\n titleMatch: boolean = false;\n\n header: SharedHeader;\n headerInfo: MobileHeaderInfo;\n\n public get childrenOpen(): boolean {\n return this.childrenPanel?.expanded;\n }\n\n title: string;\n imageLink: string;\n @Input() menu: MenuItem[];\n\n @ViewChild(\"childrenPanel\") childrenPanel: MatExpansionPanel;\n\n constructor(\n private globalService: GlobalService,\n private route: ActivatedRoute,\n private sharedService: SharedService,\n private headerService: HeaderService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.subscriptions.push(this.route.params.subscribe(\n (params: Params) => {\n this.setupHeader(params['id']);\n this.globalService.addLanguageTags(this.route.snapshot.url.slice(1));\n })\n );\n }\n\n private setupHeader(id: string): void {\n this.languageCode = this.globalService.getLanguageCode();\n\n this.sharedService.getMobileHeader(id).subscribe((header: SharedHeader) => {\n this.header = header;\n this.globalService.setTitle(`USNR - ${this.header.Title}`);\n\n this.imageLink = this.header.ImageLink;\n this.title = this.header.Title;\n });\n\n this.subscriptions.push(this.headerService.getHeaderInfo().subscribe({\n next: (info: MobileHeaderInfo) => {\n this.headerInfo = info;\n },\n error: (error: any) => { this.handleError(error); }\n }));\n }\n\n expanded() {\n if (this.menu) {\n for (const item of this.menu) {\n if (item.Level === 2) {\n if (item.Title === this.title) {\n this.titleMatch = true;\n }\n this.hasChildren = true;\n return true;\n }\n }\n }\n }\n}\n","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ActivatedRoute, Params } from \"@angular/router\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\n\nimport { environment } from \"@environment\";\nimport { GlobalService } from \"@services/global.service\";\nimport { UserService } from \"@services/user.service\";\nimport { CarouselItem } from \"@models/carousel-item\";\nimport { SharedHeader } from \"@models/shared-header\";\nimport { SharedService } from \"@services/shared.service\";\nimport { SocialLink } from \"@models/social-link\";\n\n@Component({\n selector: \"shared-header\",\n templateUrl: \"./shared-header.component.html\",\n styleUrls: [\"./shared-header.component.less\"]\n})\nexport class SharedHeaderComponent implements OnInit, OnDestroy {\n private languageSubscription: Subscription;\n private userSubscription: Subscription;\n private routeSubscription: Subscription;\n private url: string;\n\n languageCode: string;\n imageLocation: string = environment.ImageLocation;\n carouselItems: CarouselItem[] = [];\n\n @Input() pageType: string;\n\n header: SharedHeader;\n\n constructor(\n private globalService: GlobalService,\n private sharedService: SharedService,\n private route: ActivatedRoute,\n private sanitizer: DomSanitizer,\n private userService: UserService\n ) {\n this.languageSubscription = globalService.languageId$.subscribe(\n () => { this.ngOnInit(); }\n );\n\n this.userSubscription = this.userService.currentUser$.subscribe(\n () => this.ngOnInit()\n );\n }\n\n ngOnInit() {\n this.languageCode = this.globalService.getLanguageCode();\n\n const id: string = this.route.snapshot.params[\"id\"];\n const searchCriteria: string = this.route.snapshot.params[\"searchCriteria\"];\n if (searchCriteria) {\n this.routeSubscription = this.route.params.subscribe(\n (params: Params) => {\n this.sharedService.getHeader(\"search\")\n .subscribe((header: SharedHeader) => this.setupHeader(header));\n }\n );\n } else {\n this.routeSubscription = this.route.params.subscribe(\n (params: Params) => {\n this.sharedService.getHeader(params[\"id\"])\n .subscribe((header: SharedHeader) => this.setupHeader(header));\n\n this.globalService.addLanguageTags(this.route.snapshot.url.slice(1));\n }\n );\n }\n }\n\n ngOnDestroy(): void {\n if (this.languageSubscription) {\n this.languageSubscription.unsubscribe();\n }\n if (this.userSubscription) {\n this.userSubscription.unsubscribe();\n }\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n }\n\n private setupHeader(header: SharedHeader) {\n this.carouselItems = [];\n if (header && header.Features !== null && header.Features !== undefined && header.Features.length > 0) {\n header.Features.forEach((feature) => {\n const item: CarouselItem = new CarouselItem();\n\n item.title = feature.Title;\n item.imageUrl = this.imageLocation + feature.MediaFileName;\n item.targetType = feature.TargetType;\n item.target = feature.Target;\n item.linkCausesNewWindow = feature.LinkCausesNewWindow;\n\n this.carouselItems.push(item);\n });\n\n this.globalService.setTitle(`USNR - ${header.Title}`);\n } else {\n this.header = header;\n\n const url: string = window.location.href;\n\n this.header.SocialLinks.forEach(((link: SocialLink) => {\n link.Url = this.replaceString(link.Url, \"{Title}\", this.header.Title);\n link.Url = this.replaceString(link.Url, \"{URL}\", url);\n }));\n\n this.globalService.setTitle(`USNR - ${this.header.Title}`);\n }\n }\n\n private replaceString(original, pattern, value): string {\n return original.replace(new RegExp(pattern), value);\n }\n\n socialLinkBackground(link: SocialLink): SafeHtml {\n return this.sanitizer.bypassSecurityTrustStyle(\"url(\" + environment.ImageLocation + link.ImageFileName + \")\");\n }\n}\n","
    \n
    0; else staticImage\">\n \n
    \n \n
    \n
    \n \"{{header.Title}}\"\n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n

    {{header.Title}}

    \n
    \n
      \n
    • \n \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\n// import { MyDatePickerModule } from \"mydatepicker\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n// import { NgxCaptchaModule } from \"ngx-captcha\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatTreeModule } from \"@angular/material/tree\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\nimport { SharedService } from \"@services/shared.service\";\r\nimport { CarouselComponent } from \"./carousel/carousel.component\";\r\nimport { GeneralFeaturesComponent } from \"./general-features/general-features.component\";\r\nimport { FormDetailComponent } from \"./form-detail/form-detail.component\";\r\nimport { StandardFeaturesComponent } from \"./standard-features/standard-features.component\";\r\nimport { DynamicFormComponent } from \"./dynamic-form/dynamic-form.component\";\r\nimport { FormService } from \"@services/form.service\";\r\nimport { ModalComponent } from \"./modal/modal.component\";\r\nimport { ModalService } from \"@services/modal.service\";\r\nimport { DynamicFormFieldComponent } from \"./dynamic-form-field/dynamic-form-field.component\";\r\nimport { FieldErrorDisplayComponent } from \"./field-error-display/field-error-display.component\";\r\nimport { UploadFileTypeValidatorDirective } from \"./upload-file-type-validator.directive\";\r\nimport { VideoContainerComponent } from \"./video-container/video-container.component\";\r\nimport { DataQueryModule } from \"../data-query/data-query.module\";\r\nimport { ModalResultsDialogComponent } from \"./modal-results-dialog/modal-results-dialog.component\";\r\nimport { MobileMainMenuComponent } from './mobile-main-menu/mobile-main-menu.component';\r\nimport { MobileSharedHeaderComponent } from './shared-headers/mobile-shared-header/mobile-shared-header.component';\r\nimport { SharedHeaderComponent } from './shared-headers/shared-header/shared-header.component';\r\nimport { PrivacyAlertCheckComponent } from './privacy-alert/privacy-alert-check/privacy-alert-check.component';\r\nimport { PrivacyAlertDialogComponent } from './privacy-alert/privacy-alert-dialog/privacy-alert-dialog.component';\r\nimport { RecaptchaV3Module, RECAPTCHA_V3_SITE_KEY } from 'ng-recaptcha';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n // NgxCaptchaModule,\r\n FormsModule,\r\n RecaptchaV3Module,\r\n ReactiveFormsModule,\r\n // MyDatePickerModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatIconModule,\r\n MatTreeModule,\r\n DataQueryModule,\r\n DragDropModule,\r\n ],\r\n providers: [\r\n SharedService,\r\n FormService,\r\n ModalService,\r\n [{ provide: RECAPTCHA_V3_SITE_KEY, useValue: \"6LdiLUAiAAAAAI-0CNSKOTLLDRWNyyFyy6gqc5yU\" }]\r\n ],\r\n declarations: [\r\n SharedHeaderComponent,\r\n CarouselComponent,\r\n GeneralFeaturesComponent,\r\n FormDetailComponent,\r\n StandardFeaturesComponent,\r\n DynamicFormComponent,\r\n ModalComponent,\r\n DynamicFormFieldComponent,\r\n FieldErrorDisplayComponent,\r\n UploadFileTypeValidatorDirective,\r\n VideoContainerComponent,\r\n ModalResultsDialogComponent,\r\n MobileMainMenuComponent,\r\n MobileSharedHeaderComponent,\r\n PrivacyAlertCheckComponent,\r\n PrivacyAlertDialogComponent,\r\n ],\r\n exports: [\r\n GeneralFeaturesComponent,\r\n FormDetailComponent,\r\n StandardFeaturesComponent,\r\n VideoContainerComponent,\r\n MobileMainMenuComponent,\r\n SharedHeaderComponent,\r\n MobileSharedHeaderComponent,\r\n PrivacyAlertCheckComponent\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ActivatedRoute, Params } from \"@angular/router\";\r\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\r\n\r\nimport { environment } from \"@environment\";\r\nimport { GlobalService } from \"@services/global.service\";\r\nimport { UserService } from \"@services/user.service\";\r\nimport { StandardFeature } from \"@models/standard-feature\";\r\n\r\n// TODO: make internal links act like general features (router.navigate) rather than href urls\r\n@Component({\r\n selector: \"standard-features\",\r\n templateUrl: \"./standard-features.component.html\",\r\n styleUrls: [\"./standard-features.component.less\"]\r\n})\r\nexport class StandardFeaturesComponent implements OnInit, OnDestroy {\r\n private languageSubscription: Subscription;\r\n private userSubscription: Subscription;\r\n private routeSubscription: Subscription;\r\n\r\n @Input() id: string;\r\n\r\n features: StandardFeature[] = [];\r\n imageLocation: string = environment.ImageLocation;\r\n\r\n languageCode: string;\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private route: ActivatedRoute,\r\n private sanitizer: DomSanitizer,\r\n private userService: UserService\r\n ) {\r\n this.languageSubscription = globalService.languageId$.subscribe(\r\n () => { this.ngOnInit(); }\r\n );\r\n\r\n this.userSubscription = this.userService.currentUser$.subscribe(\r\n () => this.ngOnInit()\r\n );\r\n }\r\n\r\n setHoverColor(feature: StandardFeature): void {\r\n feature.BackgroundColor = feature.HtmlHoverColor;\r\n }\r\n\r\n setBackgroundColor(feature: StandardFeature): void {\r\n feature.BackgroundColor = feature.HtmlColor;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.languageCode = this.globalService.getLanguageCode();\r\n\r\n if (this.id === undefined || this.id === null || this.id === \"\") {\r\n this.routeSubscription = this.route.params.subscribe(\r\n (params: Params) => {\r\n this.globalService.getStandardFeatures(params[\"id\"]).subscribe(\r\n (features: StandardFeature[]) => this.processFeatures(features));\r\n },\r\n (error: any) => {\r\n this.handleError(error);\r\n }\r\n );\r\n } else {\r\n this.routeSubscription = this.globalService.getStandardFeatures(this.id).subscribe(\r\n (features: StandardFeature[]) => { this.processFeatures(features); },\r\n (error: any) => { this.handleError(error); }\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.languageSubscription) {\r\n this.languageSubscription.unsubscribe();\r\n }\r\n if (this.userSubscription) {\r\n this.userSubscription.unsubscribe();\r\n }\r\n if (this.routeSubscription) {\r\n this.routeSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n private processFeatures(features: StandardFeature[]) {\r\n if (features) {\r\n features.forEach((f: StandardFeature) => {\r\n // TEMP FOR TESTING\r\n // if (f.Target.toLowerCase() === \"applyform\") {\r\n // f.LinkCausesNewWindow = false;\r\n // }\r\n f.BackgroundColor = f.HtmlColor;\r\n });\r\n }\r\n this.features = features;\r\n }\r\n\r\n getField(value: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n\r\n getCurrentPageId(): string {\r\n const id: string = this.route.snapshot.params[\"id\"];\r\n if (id) {\r\n return id;\r\n }\r\n\r\n return \"home\";\r\n }\r\n\r\n getCurrentPageType(): string {\r\n if (this.route.snapshot.url.length > 2) {\r\n return this.route.snapshot.url[1].path;\r\n }\r\n\r\n return \"page\";\r\n }\r\n\r\n private handleError(error: any): void {\r\n console.error(\"An error occurred\", error);\r\n }\r\n}\r\n","\r\n","import { Directive, Input } from \"@angular/core\";\r\nimport { Validator, AbstractControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: \"uploadFileType\"\r\n})\r\nexport class UploadFileTypeValidatorDirective implements Validator {\r\n static imageFileExtensions: string[];\r\n static documentFileExtensions: string[];\r\n\r\n @Input() uploadFileType: string;\r\n\r\n constructor() {\r\n UploadFileTypeValidatorDirective.imageFileExtensions = [\r\n \".jpg\",\r\n \".jpeg\",\r\n \".pdf\",\r\n \".png\",\r\n \".docx\"\r\n ];\r\n }\r\n\r\n validate(control: AbstractControl): { [key: string]: any } {\r\n let validFileType: boolean = false;\r\n\r\n if (this.uploadFileType === \"image\") {\r\n UploadFileTypeValidatorDirective.imageFileExtensions.forEach((t: string) => {\r\n if (control.value.endsWith(t)) {\r\n validFileType = true;\r\n return;\r\n }\r\n });\r\n }\r\n\r\n return validFileType ? null : { \"uploadFileType\": { value: control.value }};\r\n }\r\n}\r\n","import { Component, AfterViewInit, Input, ChangeDetectorRef } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"video-container\",\r\n templateUrl: \"./video-container.component.html\",\r\n styleUrls: [\"./video-container.component.less\"]\r\n})\r\nexport class VideoContainerComponent implements AfterViewInit {\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() src: string;\r\n\r\n constructor(private _changeDetecterRef: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit() {\r\n this._changeDetecterRef.detach();\r\n }\r\n}\r\n","\r\n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { trigger, state, style, transition, animate, } from '@angular/animations';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { environment } from '@environment';\nimport { MobileHeaderInfo } from '@models/mobile-header-info';\nimport { GlobalService } from '@services/global.service';\nimport { HeaderService } from '@services/header.service';\nimport { BaseComponent } from 'src/app/base/base.component';\nimport { HeaderInfo } from '@models/header-info';\n\n@Component({\n selector: 'mobile-toolbar',\n templateUrl: './mobile-toolbar.component.html',\n styleUrls: ['./mobile-toolbar.component.less'],\n animations: [\n trigger('searchToggle', [\n state('in',style({ transform: 'translateX(0)', })),\n state('out', style({ transform: 'translateX(100%)', }) ),\n transition('* => in', animate('300ms')),\n transition('in => *', animate('200ms')),\n ]),\n ],\n})\nexport class MobileToolbarComponent extends BaseComponent {\n searchBarState: string = 'out';\n\n @Output() toggleMainMenu: EventEmitter = new EventEmitter();\n\n headerInfo: HeaderInfo;\n languageCode: string;\n\n searchCriteria: string;\n\n imageLocation: string = environment.ImageLocation;\n localImageLocation: string = environment.LocalImageLocation;\n\n constructor(\n private router: Router,\n private globalService: GlobalService,\n private headerService: HeaderService,\n private route: ActivatedRoute\n ) {\n super();\n\n this.subscriptions.push(\n this.headerService.getHeaderInfo().subscribe({\n next: (info: HeaderInfo) => {\n this.headerInfo = info;\n },\n error: (error: any) => {\n this.handleError(error);\n },\n })\n );\n\n this.languageCode = this.globalService.getLanguageCode();\n this.globalService.addMobileLinkTags(this.route.snapshot.url.slice(1));\n }\n\n toggleMain(): void {\n this.toggleMainMenu.emit();\n }\n\n toggleSearch(): void {\n this.searchBarState = this.searchBarState === 'in' ? 'out' : 'in';\n }\n\n search(): void {\n if (this.searchBarState === 'in') {\n if (this.searchCriteria !== '') {\n this.router.navigate([ this.languageCode, 'search', this.searchCriteria, ]);\n }\n }\n }\n}\n","\n \n
    \n \n \"Home\"/\n \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n","import { Component, OnInit, OnDestroy, ElementRef, Renderer2 } from '@angular/core';\nimport { Router, Event, NavigationEnd, UrlTree, UrlSegmentGroup, PRIMARY_OUTLET } from '@angular/router';\n\nimport { environment } from '@environment';\nimport { Menu } from '@models/menu';\nimport { Language } from '@models/language';\nimport { ToolbarService } from '@services/toolbar.service';\nimport { GlobalService } from '@services/global.service';\nimport { UserService } from '@services/user.service';\nimport { Toolbar } from '@models/toolbar';\nimport { GeneralFeature } from '@models/general-feature';\nimport { BaseComponent } from 'src/app/base/base.component';\n\nexport class MarqueeMessage {\n Title: string;\n Content: string;\n LinkTarget: string;\n}\n\n@Component({\n selector: 'toolbar',\n templateUrl: './toolbar.component.html',\n styleUrls: ['./toolbar.component.less'],\n})\nexport class ToolbarComponent extends BaseComponent implements OnInit, OnDestroy {\n imageLocation: string = environment.ImageLocation;\n localImageLocation: string = environment.LocalImageLocation;\n\n menuItems: Menu[];\n languages: Language[];\n searchTitle: string;\n searchCriteria: string;\n languageCode: string;\n\n marqueeBackground: string;\n marqueeColor: string;\n\n marqueeMessages: MarqueeMessage[] = [];\n\n // private _routeSubscription: Subscription;\n\n get router(): Router {\n return this._router;\n }\n\n constructor(\n private toolbarService: ToolbarService,\n private globalService: GlobalService,\n private _router: Router,\n private userService: UserService,\n private _elementRef: ElementRef,\n private _renderer: Renderer2\n ) {\n super();\n\n this.subscriptions.push(globalService.languageId$.subscribe(() =>\n this.ngOnInit()\n ));\n\n this.subscriptions.push(this.userService.currentUser$.subscribe(() =>\n this.ngOnInit()\n ));\n }\n\n ngOnInit() {\n this.languageCode = this.globalService.getLanguageCode();\n\n this.toolbarService.getToolbar().subscribe({\n next: (toolbar: Toolbar) => {\n this.initializeToolbar(toolbar);\n },\n error: (error: any) => {\n this.handleError(error);\n }\n });\n\n this._router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n const tree: UrlTree = this._router.parseUrl(event.url);\n\n const group: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n const id: string = group.segments[2].path;\n this.getMarquee(id);\n }\n });\n }\n\n ngOnDestroy() {\n // if (this.languageSubscription) {\n // this.languageSubscription.unsubscribe();\n // }\n // if (this.userSubscription) {\n // this.userSubscription.unsubscribe();\n // }\n // if (this._routeSubscription) {\n // this._routeSubscription.unsubscribe();\n // }\n }\n\n private getMarquee(id: string): void {\n this.globalService\n .getGeneralFeatures(id, 'SysTicker')\n .subscribe((features: GeneralFeature[]) => {\n if (features && features.length > 0) {\n this.marqueeColor = features[0].Color;\n\n this.marqueeMessages = [];\n features.forEach((feature: GeneralFeature) => {\n const message: MarqueeMessage = new MarqueeMessage();\n message.Title = feature.Title;\n message.Content = feature.Description;\n if (feature.Target !== '') {\n if (feature.TargetType === 'URL') {\n message.LinkTarget = feature.Target;\n } else {\n message.LinkTarget = `/${this.languageCode}/${feature.TargetType}/${feature.Target}&dt=1`;\n }\n }\n this.marqueeMessages.push(message);\n });\n\n const marquee = this._elementRef.nativeElement.querySelector(`ng-marquee`);\n if (marquee) {\n this._renderer.setStyle(marquee, 'hidden', 'false');\n }\n const marqueeDiv = this._elementRef.nativeElement.querySelector(`.ng-marquee`);\n if (marqueeDiv) {\n this._renderer.setStyle(marqueeDiv, 'height', '33px');\n this._renderer.setStyle(marqueeDiv, 'hidden', 'false');\n this._renderer.setStyle(marqueeDiv, 'color', this.marqueeColor);\n this._renderer.setStyle(marqueeDiv, 'background-color', this.marqueeColor);\n }\n } else {\n const marqueeDiv = this._elementRef.nativeElement.querySelector(`.ng-marquee`);\n if (marqueeDiv) {\n this._renderer.setStyle(marqueeDiv, 'hidden', 'true');\n }\n }\n });\n }\n\n private initializeToolbar(toolbar: Toolbar): void {\n if (toolbar) {\n this.menuItems = toolbar.Menu;\n this.languages = toolbar.Languages;\n this.searchTitle = toolbar.SearchTitle;\n }\n }\n\n onSelectLanguage(newLanguage: Language): void {\n this.globalService.setLanguage(newLanguage.Id);\n }\n\n search(): void {\n if (this.searchCriteria !== '') {\n this.router.navigate([this.languageCode, 'search', this.searchCriteria],{ queryParams: { dt: 1 } });\n }\n }\n}\n","\n \n \n {{message.Title}}\n \n {{message.Content}}\n \n \n {{message.Content}}\n \n \n \n\n\n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    |
    \n
    \n
    \n \"{{language.Description}}\"\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgMarqueeModule } from 'ng-marquee';\n\nimport { ToolbarComponent } from './toolbar/toolbar.component';\nimport { MobileToolbarComponent } from './mobile-toolbar/mobile-toolbar.component';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [\n ToolbarComponent,\n MobileToolbarComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ReactiveFormsModule,\n NgMarqueeModule,\n MatToolbarModule\n ],\n exports: [\n ToolbarComponent,\n MobileToolbarComponent\n ]\n})\nexport class ToolbarsModule {}\n","export const environment = {\r\n production: false,\r\n\r\n ApiBase: \"./Usnr.API/usnrapi/\",\r\n\r\n ImageLocation: \"assets/images/\",\r\n LocalImageLocation: \"assets/local-images/\",\r\n DocumentLocation: \"assets/documents/\",\r\n};\r\n/*\r\n * In development mode, for easier debugging, you can ignore zone related error\r\n * stack frames such as `zone.run`/`zoneDelegate.invokeTask` by importing the\r\n * below file. Don't forget to comment it out in production mode\r\n * because it will have a performance impact when errors are thrown\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"names":["EventEmitter","saveAs","NestedTreeControl","MatTreeNestedDataSource","environment","DataQueryOutputColumn","DataQueryOutputLinkTarget","DataQueryOutputRow","lastValueFrom","i0","header_r5","column_r12","ctx_r29","ctx_r21","ctx_r33","ctx_r22","ctx_r37","ctx_r23","ctx_r41","ctx_r24","ctx_r45","ctx_r25","ctx_r49","ctx_r26","ctx_r53","ctx_r27","ctx_r57","ctx_r28","ctx_r11","column_r65","ctx_r82","ctx_r74","ctx_r86","ctx_r75","ctx_r90","ctx_r76","ctx_r94","ctx_r77","ctx_r98","ctx_r78","ctx_r102","ctx_r79","ctx_r106","ctx_r80","ctx_r110","ctx_r81","ctx_r64","ctx_r4","header_r121","ctx_r123","column_r133","ctx_r157","ctx_r162","ctx_r167","ctx_r172","ctx_r177","ctx_r182","ctx_r187","ctx_r192","first_r134","last_r135","_r138","ctx_r201","DataQueryResultsGridComponent","constructor","_globalService","_formService","_elementRef","_renderer","_router","_pageService","_sharedService","_userService","ImageLocation","LocalImageLocation","node","Children","_","length","currencyFormat","Intl","NumberFormat","getLanguage","maximumFractionDigits","minimumFractionDigits","dateFormat","DateTimeFormat","month","day","year","timeFormat","hour12","hour","minute","dateTimeFormat","isTreeData","treeDataSource","fieldWidth","idx","headers","width","otherFieldsWidth","forEach","h","level","Level","availableWidth","fieldAlignment","alignment","processResultSet","resultSet","languageCode","getLanguageCode","showHeader","HeaderRow","showTotal","TotalRow","highlightFirst","FirstColumn","highlightLast","LastColumn","bandedRows","BandedRows","bandedColumns","BandedColumns","id","Id","datasetId","DataSetIndex","showNoResultsMessage","ShowNoResultsMessage","noResultsText","NoResultsText","QueryResults","QueryResultsTree","ShowHeaderWhenNoResults","setupHeaders","Details","data","count","FieldValues","setupTreeNodes","displayTree","columnCount","currentRow","columns","i","currentColumn","imageWidth","imageHeight","DetailType","value","Alignment","name","ColumnName","specialType","Width","push","format","ReferenceSortOrder","target","parseDestination","isModal","route","substring","destinationRoute","linkTarget","params","destinationRouteParams","indexOf","streamType","toLowerCase","d","Date","getFullYear","t","dt","FilestreamType","ImageWidth","ImageHeight","rows","footer","pop","executeLink","column","fieldIndex","control","busy","showModal","navigateByUrl","getFilestream","navigate","queryParams","executeDataQuery","dq","invalidInput","row","col","field","nativeElement","querySelector","required","setStyle","replace","subscribe","refreshPage","emit","getPageId","url","startIdx","endIdx","constructFormData","pageId","formData","Object","keys","key","user","getCurrentUser","UserId","destination","callingControl","pageHeader","getHeader","then","header","pageDetails","getDetails","summary","dataQueryId","DataQueryId","formId","FormId","results","submitDataQuery","r","showModalResults","title","Title","dataQueryResults","fileName","fileType","pdfFile","endsWith","response","alert","blobContents","b64toBlob","error","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","slice","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","blob","Blob","type","details","detail","startsWith","text","sortable","Sortable","datatype","DataType","requiredField","fieldValues","columnDefinitions","sourceIndex","refSortOrder","SortOrder","parseUrl","IsModal","FilestreamTypeId","split","param","onSorted","$event","tableId","queryId","sort","a","b","sortDirection","sortColumn","tree","processTreeNodeData","selectors","outputs","decls","vars","consts","template","firstValueFrom","PageResolverService","pageService","globalService","router","userService","resolve","state","returnUrl","languageId","paramMap","get","setLanguage","resolvePage","ItemId","LoginRequired","sessionStorage","setItem","factory","HttpParams","Subject","map","GeneralFeature","StandardFeature","GlobalService","http","linkService","titleService","_cookieService","ApiBase","usnrLanguage","asObservable","setTitle","newTitle","addLanguageTags","segments","production","urlPart","s","getLanguages","languages","removeTag","l","addTag","rel","hreflang","ISOCode","href","addMobileLinkTags","getMobileLanguages","language","Languages","newLanguage","languageList","getLanguageFromList","currentLanguageId","localStorage","next","filter","getItem","undefined","baseUrl","createParams","getDetailSectionSize","getDomain","domain","fromObject","getDomainList","getMainMenuItems","getMobileMainMenu","getStandardFeatures","pipe","getGeneralFeatures","getPrivacyMessageData","setupClickDimensions","window","cdAnalytics","clickdimensions","Analytics","setAccountKey","setDomain","setScore","cdScore","trackPage","cookiesEnabled","PRIVACY_ALERT","enableCookies","set","getDate","HttpHeaders","UserService","authService","currentUser","currentAccount","signOutUser","isAuthenticated","logoutPopup","console","log","clearCurrentUser","loginUser","post","baseUserUrl","result","setCurrentUser","loginUsnrUser","req","authority","scopes","prompt","acquireTokenPopup","instance","setActiveAccount","account","usnrToken","idToken","createValidatedUser","getActiveAccount","loginAuthenticatedUser","validatedUser","JSON","parse","validateCurrentUser","removeItem","storedUser","stringify","Name","Token","accountInfo","acquireTokenSilent","authResult","authToken","userId","username","token","getCustomerAccountOptions","criteria","setCustomerAccount","accountPage","getCustomerAccount","customerAccount","getCustomerAccountPage","throwError","observableThrowError","ctx_r0","ctx_r1","ctx_r2","ctx_r3","ctx_r5","ctx_r6","ctx_r31","ctx_r7","ctx_r9","ctx_r12","ctx_r14","ctx_r15","ctx_r16","ctx_r17","ctx_r42","ctx_r43","ctx_r19","DynamicFormFieldComponent","formService","imageService","isUploadingFile","_uploadingFile","ngOnInit","getExpenseCategories","categories","dynamicChoices","handleError","getExpenseCurrencies","currencies","requireFile","uploadingFile","ngAfterViewInit","captchaValid","ngAfterContentInit","isInvalid","form","returnValue","submitAttempt","controls","valid","onCaptcha","setValue","onClearForm","clearForm","domainList","isUsnrDomain","emailAddress","attachFileChange","fileList","files","FormData","append","uploadFile","fileInfo","FileName","OriginalFileName","FileType","attachImageChange","localUrl","file","reader","FileReader","onload","event","readAsDataURL","imageSize","size","compressAndUploadImage","localFile","compressRatio","compressFile","compressedFile","File","internalError","dataUriToBlob","uri","byteString","buffer","ArrayBuffer","intArray","inputs","ModalResultsDialogComponent","ctx_r10","DynamicFormComponent","el","modalService","_dialog","_sanitizer","reCaptchaService","localImageLocation","toFormGroup","fields","autoRunDataQuery","processDataQuery","isLoginForm","isAuthenticationForm","navigateToTargetPage","payLoad","onRefreshDataQuery","snapshot","queryParamMap","disableForm","toBeDisabled","disable","enable","handleCaptchaToken","captchaSucceeded","submitForm","_captchaSubscription","unsubscribe","onSubmit","contains","execute","validateForm","formatted","referringObjectId","referringObjectType","gotoValidationPage","submitIdentityCheck","verifyIdentity","submitData","accounts","Accounts","CustomerAccountSelectedPageId","formSubmitAttempt","submitVerifyIdentity","responseSuccess","responseFailure","responseMessage","getFailureMessage","status","statusText","getSuccessMessage","open","successModalId","getFailedIdentityValidationMessage","failureMessage","f","controlType","message","onClear","captcha","reset","resetToDefault","handleCaptchaReset","getMessageStyle","onModalClosed","additionalData","successTarget","targetPageId","getTargetPage","onShowResultsInModal","configs","dialogRef","afterClosed","ctx","PrivacyAlertDialogComponent","PrivacyAlertCheckComponent","path","loadAndShowPrivacyMessage","privacyData","privacyMessageData","disableClose","styles"],"sourceRoot":"webpack:///"}