{"version":3,"sources":["./src/$_lazy_route_resource lazy","./src/app/app-routing.module.ts","./src/app/app.component.css","./src/app/app.component.html","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/header/header.component.css","./src/app/components/header/header.component.html","./src/app/components/header/header.component.ts","./src/app/components/login/login.component.css","./src/app/components/login/login.component.html","./src/app/components/login/login.component.ts","./src/app/components/popup/popup.component.css","./src/app/components/popup/popup.component.html","./src/app/components/popup/popup.component.ts","./src/app/components/scheduler/scheduler.component.css","./src/app/components/scheduler/scheduler.component.html","./src/app/components/scheduler/scheduler.component.ts","./src/app/components/screen-builder/screen-builder.component.css","./src/app/components/screen-builder/screen-builder.component.html","./src/app/components/screen-builder/screen-builder.component.ts","./src/app/components/subscription/subscription.component.css","./src/app/components/subscription/subscription.component.html","./src/app/components/subscription/subscription.component.ts","./src/app/guards/auth.guard.ts","./src/app/guards/index.ts","./src/app/models/user.ts","./src/app/safe.pipe.ts","./src/app/services/Registration.service.ts","./src/app/services/app-settings.service.ts","./src/app/services/auth.service.ts","./src/app/services/data.service.ts","./src/app/services/screen.service.ts","./src/app/services/subscription.service.ts","./src/app/services/user.service.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,4E;;;;;;;;;;;;;;;;;;;;;;ACVyC;AACc;AAEa;AACY;AACc;AACzD;AAC+B;AAEpE,IAAM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,mHAAsB,EAAE,WAAW,EAAE,CAAC,0DAAS,CAAC,EAAE;IACzE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,mHAAsB,EAAE,WAAW,EAAE,CAAC,0DAAS,CAAC,EAAE;IAC7E,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,yFAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,qGAAkB,EAAE;IACpD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,yFAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,yFAAc,EAAE;IAClD,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,yFAAc,EAAE;IAC/C,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,yFAAc,EAAE;CAChD,CAAC;AAKF;IAAA;IAAgC,CAAC;IAApB,gBAAgB;QAJ5B,+DAAQ,CAAC;YACR,OAAO,EAAE,CAAC,qEAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC,qEAAY,CAAC;SACxB,CAAC;OACW,gBAAgB,CAAI;IAAD,uBAAC;CAAA;AAAJ;;;;;;;;ACvB7B,mB;;;;;;;ACAA,8Q;;;;;;;;;;;;;;;;;;;;;;ACAwG;AAElD;AAOtD,uDAAuD;AAEZ;AAE3C,gBAAgB;AAChB,uBAAuB;AACvB,KAAK;AAML;IAQE,sBAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAL5C,cAAS,GAAG,cAAc,CAAC;QAC3B,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAU,IAAI,CAAC;QACvB,UAAK,GAAG,sBAAsB,CAAC;QACxB,eAAU,GAAG,IAAI,6CAAO,EAAE,CAAC;IACc,CAAC;IACjD,+BAAQ,GAAR;QAEA,YAAY;QACV,kDAAkD;QAClD,uBAAuB;QACvB,IAAI;QACJ,qEAAqE;QACrE,IAAI;IACN,CAAC;IACF,kCAAW,GAAX;QACC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IApBW,YAAY;QALxB,gEAAS,CAAC;YACT,QAAQ,EAAE,UAAU;;;SAGrB,CAAC;yCASiC,2EAAW;OARjC,YAAY,CAgEtB;IAAD,mBAAC;CAAA;AAhEsB;AAkEvB,YAAY;AACZ,uBAAuB;AACvB,iCAAiC;AACjC,2BAA2B;AAC3B,IAAI;AAGN,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9FuD;AAClB;AACK;AACU;AACwB;AAC/E,yDAAyD;AACD;AACX;AACW;AACT;AACqB;AACY;AACZ;AAC0B;AACxC;AACjB;AAC8B;AACI;AACF;AACX;AACY;AACR;AACR;AACf;AACe;AACA;AACQ;AACd;AACL;AACkB;AACS;AACtE,qJAAqJ;AACrJ,8GAA8G;AACrB;AAElF,oBAAoB,MAA0B;IACnD,MAAM,CAAC,cAAM,aAAM,CAAC,IAAI,EAAE,EAAb,CAAa,CAAC;AAC7B,CAAC;AAoDD;IAAA;IAAyB,CAAC;IAAb,SAAS;QAlDrB,+DAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,oEAAY;gBACZ,yFAAc;gBACd,sGAAkB;gBAClB,oHAAsB;gBACtB,0FAAc;gBACd,6FAAe;gBACf,6DAAQ;gBACR,+GAAqB;aACtB;YACD,OAAO,EAAE;gBACP,wEAAa;gBACd,mCAAmC;gBAClC,eAAe;gBAChB,8DAA8D;gBAC7D,qGAAuB;gBACvB,mEAAW;gBACX,8EAAgB;gBAChB,2DAAW,CAAC,OAAO,CAAC;oBAClB,KAAK,EAAE,YAAY;iBACpB,CAAC;gBACF,6EAAuB,CAAC,OAAO,EAAE;gBACjC,6EAAgB;gBAChB,6EAAS,CAAC,OAAO,EAAE;gBACnB,kFAAyB,CAAC,OAAO,EAAE;gBACnC,6EAAc;gBACd,qFAAuB,CAAC,OAAO,EAAE;gBACjC,kEAAU;gBACV,oFAAe;aAChB;YACD,SAAS,EAAE;gBACT,2DAAS;gBACT,2FAAkB;gBAClB;oBACE,OAAO,EAAE,8DAAe;oBACxB,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,CAAC,2FAAkB,CAAC;oBAC1B,KAAK,EAAE,IAAI;iBACZ;gBACD,4EAAW;gBACX,gFAAa;gBACb,4EAAW;gBACX,4EAAW;gBACX,4FAAmB;gBACnB,4FAAmB;aACpB;YACD,SAAS,EAAE,CAAC,oEAAY,CAAC;SAC1B,CAAC;OAEW,SAAS,CAAI;IAAD,gBAAC;CAAA;AAAJ;;;;;;;;ACzFtB,mDAAmD,mBAAmB,GAAG,oBAAoB,yCAAyC,oCAAoC,GAAG,sBAAsB,4BAA4B,GAAG,4BAA4B,4BAA4B,GAAG,iBAAiB,iBAAiB,GAAG,mBAAmB,oCAAoC,GAAG,uBAAuB,+BAA+B,GAAG,gBAAgB,2BAA2B,2BAA2B,oBAAoB,GAAG,iBAAiB,kBAAkB,mBAAmB,GAAG,mBAAmB,kBAAkB,wBAAwB,4BAA4B,yBAAyB,mCAAmC,4BAA4B,GAAG,yCAAyC,gBAAgB,0BAA0B,8BAA8B,GAAG,yBAAyB,kBAAkB,4BAA4B,gCAAgC,GAAG,6FAA6F,yBAAyB,qBAAqB,iBAAiB,sBAAsB,GAAG,uBAAuB,yBAAyB,8BAA8B,yBAAyB,GAAG,cAAc,2BAA2B,2BAA2B,oBAAoB,GAAG,uBAAuB,0BAA0B,iBAAiB,GAAG,qBAAqB,0BAA0B,qBAAqB,GAAG,yBAAyB,8BAA8B,GAAG,wDAAwD,iBAAiB,GAAG,qCAAqC,0CAA0C,0CAA0C,aAAa,eAAe,GAAG,4IAA4I,0BAA0B,wBAAwB,MAAM,sBAAsB,0BAA0B,kBAAkB,uBAAuB,8EAA8E,sEAAsE,8DAA8D,sFAAsF,8BAA8B,yBAAyB,qCAAqC,qCAAqC,yBAAyB,yDAAyD,yDAAyD,yBAAyB,GAAG,mCAAmC,4BAA4B,uBAAuB,wBAAwB,mCAAmC,+CAA+C,4BAA4B,6BAA6B,GAAG,+CAA+C,4BAA4B,mCAAmC,+CAA+C,6CAA6C,2BAA2B,2BAA2B,GAAG,wDAAwD,4BAA4B,mCAAmC,+CAA+C,8CAA8C,0BAA0B,6BAA6B,sEAAsE,8DAA8D,sDAAsD,4EAA4E,GAAG,gDAAgD,yEAAyE,iEAAiE,yDAAyD,iFAAiF,oDAAoD,oDAAoD,2BAA2B,GAAG,yGAAyG,kDAAkD,kDAAkD,2BAA2B,GAAG,iCAAiC,oBAAoB,gCAAgC,GAAG,0CAA0C,yEAAyE,iEAAiE,yDAAyD,iFAAiF,oEAAoE,oEAAoE,2BAA2B,GAAG,6FAA6F,gEAAgE,gEAAgE,2BAA2B,GAAG,mBAAmB,mCAAmC,mBAAmB,qBAAqB,MAAM,uBAAuB,yBAAyB,OAAO,sCAAsC,uBAAuB,yBAAyB,iBAAiB,gBAAgB,UAAU,2CAA2C,kBAAkB,iBAAiB,OAAO,mDAAmD,qBAAqB,OAAO,0CAA0C,4BAA4B,OAAO,6CAA6C,+EAA+E,OAAO,oBAAoB,yCAAyC,yBAAyB,SAAS,wBAAwB,+BAA+B,aAAa,sCAAsC,yBAAyB,2BAA2B,mBAAmB,iBAAiB,YAAY,4CAA4C,wBAAwB,uBAAuB,aAAa,oDAAoD,2BAA2B,aAAa,2CAA2C,kCAAkC,aAAa,6CAA6C,iCAAiC,aAAa,iHAAiH,0BAA0B,2BAA2B,UAAU,wBAAwB,kBAAkB,GAAG,yBAAyB,qBAAqB,KAAK,uCAAuC,qBAAqB,KAAK,wBAAwB,wBAAwB,6FAA6F,gEAAgE,uEAAuE,sDAAsD,sDAAsD,mBAAmB,2BAA2B,0BAA0B,uBAAuB,0BAA0B,uBAAuB,OAAO,0BAA0B,kCAAkC,qCAAqC,mCAAmC,oCAAoC,4BAA4B,mEAAmE,MAAM,2BAA2B,oBAAoB,aAAa,gBAAgB,KAAK,wBAAwB,kBAAkB,KAAK,8BAA8B,4BAA4B,+BAA+B,6GAA6G,kEAAkE,yEAAyE,cAAc,8BAA8B,iCAAiC,SAAS,0BAA0B,yBAAyB,oBAAoB,yBAAyB,6BAA6B,mCAAmC,2CAA2C,2BAA2B,8BAA8B,OAAO,wBAAwB,0BAA0B,oBAAoB,YAAY,yBAAyB,WAAW,kBAAkB,iBAAiB,2BAA2B,oBAAoB,uCAAuC,yCAAyC,oBAAoB,OAAO,6BAA6B,6BAA6B,sBAAsB,+BAA+B,aAAa,mCAAmC,gCAAgC,WAAW,2BAA2B,yBAAyB,YAAY,OAAO,KAAK,eAAe,8BAA8B,qBAAqB,oEAAoE,wCAAwC,qCAAqC,+BAA+B,mCAAmC,4CAA4C,sBAAsB,uBAAuB,0BAA0B,qBAAqB,8BAA8B,qBAAqB,oEAAoE,wCAAwC,gCAAgC,iCAAiC,+BAA+B,mCAAmC,4CAA4C,sBAAsB,qBAAqB,oDAAoD,SAAS,iBAAiB,uBAAuB,qBAAqB,kEAAkE,mBAAmB,qCAAqC,+BAA+B,mCAAmC,wBAAwB,yBAAyB,uBAAuB,SAAS,uBAAuB,gCAAgC,uBAAuB,oEAAoE,wCAAwC,uCAAuC,iCAAiC,qCAAqC,+CAA+C,2BAA2B,yBAAyB,oDAAoD,OAAO,0CAA0C,8BAA8B,qBAAqB,uEAAuE,wCAAwC,qCAAqC,+BAA+B,mCAAmC,8CAA8C,wBAAwB,yBAAyB,0BAA0B,wBAAwB,8BAA8B,qBAAqB,uEAAuE,sCAAsC,qCAAqC,+BAA+B,mCAAmC,8CAA8C,wBAAwB,qBAAqB,kDAAkD,OAAO,sCAAsC,8BAA8B,qBAAqB,qEAAqE,sCAAsC,qCAAqC,+BAA+B,mCAAmC,8CAA8C,wBAAwB,uBAAuB,0BAA0B,sBAAsB,8BAA8B,qBAAqB,qEAAqE,sCAAsC,qCAAqC,+BAA+B,mCAAmC,8CAA8C,wBAAwB,uBAAuB,kDAAkD,OAAO,4CAA4C,8BAA8B,qBAAqB,wEAAwE,wCAAwC,qCAAqC,+BAA+B,mCAAmC,8CAA8C,wBAAwB,qBAAqB,4BAA4B,yBAAyB,8BAA8B,qBAAqB,wEAAwE,wCAAwC,qCAAqC,+BAA+B,mCAAmC,8CAA8C,wBAAwB,qBAAqB,oDAAoD,OAAO,kBAAkB,iBAAiB,GAAG,2CAA2C,8BAA8B,qBAAqB,iEAAiE,sBAAsB,gCAAgC,iCAAiC,+BAA+B,kCAAkC,yBAAyB,wBAAwB,KAAK,oCAAoC,8BAA8B,qBAAqB,iEAAiE,sBAAsB,gCAAgC,iCAAiC,+BAA+B,kCAAkC,yBAAyB,wBAAwB,KAAK,sBAAsB,cAAc,GAAG,0BAA0B,iCAAiC,GAAG,yBAAyB,iCAAiC,iBAAiB,gBAAgB,GAAG,6BAA6B,uBAAuB,KAAK,4CAA4C,qBAAqB,uBAAuB,eAAe,cAAc,QAAQ,iDAAiD,gBAAgB,eAAe,KAAK,yDAAyD,mBAAmB,KAAK,gDAAgD,0BAA0B,KAAK,qCAAqC,kCAAkC,uBAAuB,sBAAsB,mBAAmB,4BAA4B,2BAA2B,yBAAyB,GAAG,gBAAgB,kBAAkB,oCAAoC,wBAAwB,sBAAsB,sBAAsB,uBAAuB,mBAAmB,yBAAyB,yBAAyB,GAAG,uBAAuB,oBAAoB,cAAc,YAAY,0BAA0B,iBAAiB,gBAAgB,iBAAiB,uBAAuB,sBAAsB,oBAAoB,iBAAiB,sBAAsB,GAAG,6BAA6B,2BAA2B,4BAA4B,GAAG,8BAA8B,0BAA0B,mBAAmB,oBAAoB,0BAA0B,KAAK,2CAA2C,8BAA8B,6BAA6B,KAAK,OAAO,kBAAkB,0BAA0B,GAAG,0BAA0B,+BAA+B,GAAG,C;;;;;;;ACAr+e,4GAA4G,wNAAwN,sFAAsF,SAAS,WAAW,0rBAA0rB,iBAAiB,2fAA2f,kBAAkB,iBAAiB,kZAAkZ,kyCAAkyC,sPAAsP,kBAAkB,iBAAiB,sHAAsH,oKAAoK,+gBAA+gB,wPAAwP,kBAAkB,iBAAiB,iBAAiB,sHAAsH,qLAAqL,ghBAAghB,4PAA4P,kBAAkB,iBAAiB,iBAAiB,sHAAsH,qLAAqL,imCAAimC,0PAA0P,6uBAA6uB,0PAA0P,gvBAAgvB,0PAA0P,y8BAAy8B,SAAS,UAAU,0QAA0Q,kBAAkB,8FAA8F,kvBAAkvB,qBAAqB,oGAAoG,aAAa,aAAa,ySAAyS,YAAY,YAAY,kBAAkB,MAAM,mBAAmB,2BAA2B,OAAO,oBAAoB,0SAA0S,YAAY,YAAY,kBAAkB,MAAM,eAAe,0EAA0E,WAAW,YAAY,MAAM,eAAe,oeAAoe,yBAAyB,yDAAyD,yLAAyL,+BAA+B,iBAAiB,4PAA4P,uBAAuB,yRAAyR,YAAY,kBAAkB,qFAAqF,WAAW,wRAAwR,aAAa,oIAAoI,yGAAyG,WAAW,KAAK,qBAAqB,wJAAwJ,0BAA0B,cAAc,oBAAoB,8KAA8K,yBAAyB,yDAAyD,0OAA0O,mBAAmB,qBAAqB,yBAAyB,gBAAgB,aAAa,sCAAsC,oNAAoN,+BAA+B,iBAAiB,wLAAwL,mBAAmB,qBAAqB,yBAAyB,gBAAgB,aAAa,sCAAsC,kNAAkN,8BAA8B,iBAAiB,gjCAAgjC,oBAAoB,8kBAA8kB,oBAAoB,gPAAgP,oBAAoB,sWAAsW,oBAAoB,2FAA2F,aAAa,+pBAA+pB,YAAY,kBAAkB,oSAAoS,YAAY,kBAAkB,ubAAub,YAAY,kBAAkB,2LAA2L,YAAY,kBAAkB,kMAAkM,YAAY,kBAAkB,uLAAuL,YAAY,kBAAkB,4LAA4L,YAAY,kBAAkB,+IAA+I,YAAY,kBAAkB,mK;;;;;;;;;;;;;;;;;;;;;;;;ACAr3pB;AAChC;AAEjB;AACzC,uFAAuF;AAC7B;AAG1D,sDAAsD;AACoB;AACpB;AAItD,IAAI,EAAO,CAAC;AAMZ;IAsBE,yBAAoB,WAAwB,EAAU,MAAc,EAAU,IAAiB,EACrF,mBAAwC,EAAU,YAAsB;QAD9D,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAa;QACrF,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAU,iBAAY,GAAZ,YAAY,CAAU;QArB3E,gBAAW,GAAe,EAAE,CAAC;QAC7B,mBAAc,GAAe,EAAE,CAAC;QAChC,qBAAgB,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QACjK,gBAAW,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAEjC,sBAAiB,GAAG,KAAK,CAAC;QAC1B,qBAAgB,GAAG,GAAG,CAAC;QACvB,eAAU,GAAG,KAAK,CAAC;QACnB,iBAAY,GAAG,CAAC,CAAC;QACjB,UAAK,GAAG,CAAC,CAAC;QACV,YAAO,GAAG,KAAK;QACf,0BAAqB,GAAG,uBAAuB,CAAC;QAChD,kBAAa,GAAG,SAAS,CAAC;IAYjC,CAAC;IACD,kCAAQ,GAAR;QAEE,6DAA6D;QAF/D,iBA+DC;QA3DC,8BAA8B;QAC9B,QAAQ;QAER,8DAA8D;QAC9D,8BAA8B;QAC9B,QAAQ;QAER,yDAAyD;QAEzD,8BAA8B;QAC9B,QAAQ;QAER,4DAA4D;QAC5D,8BAA8B;QAC9B,QAAQ;QAER,wDAAwD;QACxD,yBAAyB;QACzB,kBAAkB;QAClB,MAAM;QAEN,EAAE,GAAG,IAAI,CAAC;QACV,2BAA2B;QAE3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,iBAAO;YACxC,KAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,KAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAO;YACvC,KAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,iBAAO;YACzC,KAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;YAChC,sCAAsC;QACxC,CAAC,CAAC,CAAC;QACH,mBAAmB;QACnB,gDAAgD;QAChD,gDAAgD;QAChD,0FAA0F;QAC1F,uFAAuF;QACvF,mDAAmD;QACnD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,aAAG;YAC3C,yDAAyD;YACzD,2BAA2B;YAC3B,EAAE,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACrB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnC,oBAAoB;YACtB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACzB,CAAC;YAED,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/C,KAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,oCAAoC;IACtC,CAAC;IAED,yCAAe,GAAf;QACE,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,mCAAmC;QACnC,UAAU,CAAC;YACT,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,mCAAS,GAAT,UAAU,OAAO,EAAE,MAAe,EAAE,IAAa;QAC/C,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;YAClC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,oCAAU,GAAV;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAGM,wCAAc,GAArB,UAAsB,KAAY;QAChC,IAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC1C,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;IAEM,iCAAO,GAAd,UAAe,CAAM;QACnB,IAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QACrC,EAAE,CAAC,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,oCAAU,GAAV;QACE,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,oCAAU,GAAV;QACE,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,oCAAU,GAAV;QACE,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,qCAAW,GAAX;QACE,sCAAsC;QACtC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;IAEtC,CAAC;IACD,qCAAW,GAAX;QACE,sCAAsC;QACtC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,qCAAW,GAAX;QACE,sCAAsC;QACtC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,6CAAmB,GAAnB;QACE,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,2CAAiB,GAAjB;QACE,CAAC,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,iDAAuB,GAAvB;QACE,CAAC,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,yCAAe,GAAf;QACE,CAAC,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,iDAAuB,GAAvB;QACE,CAAC,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,uCAAa,GAAb;QACE,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,qDAA2B,GAA3B;QACE,CAAC,CAAC,iCAAiC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,6CAAmB,GAAnB;QACE,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,6CAAmB,GAAnB;QACE,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,+CAAqB,GAArB;QACE,CAAC,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,4CAAkB,GAAlB;QACE,CAAC,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,gDAAsB,GAAtB;QACE,CAAC,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,oDAA0B,GAA1B;QACE,CAAC,CAAC,iCAAiC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,yCAAe,GAAf,UAAgB,QAAQ,EAAE,YAAY,EAAE,YAAmB,EAAE,UAAc;QACzE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7H,CAAC;IACD,0CAAgB,GAAhB,UAAiB,GAAG;QAClB,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,WAAW;QACX,EAAE,CAAC,CAAC,GAAG,KAAK,gBAAgB,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC;YAC5F,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC;YAC3F,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,6BAA6B,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,KAAK,WAAW,CAAC,CAAC,CAAC;YAC7H,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,6BAA6B,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,KAAK,WAAW,CAAC,CAAC,CAAC;YAC7H,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,cAAc,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC;YAC/F,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,eAAe,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC;YAC/F,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IAED,0CAAgB,GAAhB,UAAiB,SAAS;QACxB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAElC,EAAE,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClC,UAAU,CAAC;gBACT,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,mBAAmB;IACnB,cAAc;IACd,gCAAgC;IAChC,2BAA2B;IAC3B,iDAAiD;IACjD,gCAAgC;IAChC,qCAAqC;IACrC,yBAAyB;IACzB,UAAU;IACV,gBAAgB;IAChB,IAAI;IAEJ,wBAAwB;IACxB,cAAc;IACd,2BAA2B;IAC3B,IAAI;IAEJ,8BAAI,GAAJ;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAAC,MAAM;QACxB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;aAC7B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;IAE9B,CAAC;IAED,+BAAK,GAAL;QACE,IAAI,CAAC,KAAK,GAAG,CAAC;QACd,IAAI,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAChD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACrC,CAAC;IACH,CAAC;IAtJD;QADC,mEAAY,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC;;yCACb,KAAK;;yDAGjC;IAED;QADC,mEAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;kDAS1C;IAtIU,eAAe;QAL3B,gEAAS,CAAC;YACT,QAAQ,EAAE,YAAY;;;SAGvB,CAAC;yCAuBiC,2EAAW,EAAkB,+DAAM,EAAgB,2EAAW;YAChE,2FAAmB,EAAwB,4EAAQ;OAvBvE,eAAe,CAgR3B;IAAD,sBAAC;CAAA;AAhR2B;;;;;;;;ACpB5B,mCAAmC,yBAAyB,kBAAkB,eAAe,gBAAgB,mDAAmD,2DAA2D,GAAG,qDAAqD,mBAAmB,oCAAoC,oBAAoB,4BAA4B,2BAA2B,gCAAgC,GAAG,cAAc,yBAAyB,kBAAkB,gBAAgB,GAAG,uBAAuB,kBAAkB,yBAAyB,qBAAqB,2BAA2B,2BAA2B,oBAAoB,mCAAmC,oCAAoC,qCAAqC,qCAAqC,0BAA0B,0BAA0B,+BAA+B,gCAAgC,sCAAsC,gCAAgC,iCAAiC,kCAAkC,GAAG,mCAAmC,kCAAkC,uBAAuB,sBAAsB,mBAAmB,4BAA4B,2BAA2B,yBAAyB,GAAG,6BAA6B,kBAAkB,yBAAyB,qBAAqB,2BAA2B,2BAA2B,oBAAoB,mCAAmC,oCAAoC,qCAAqC,qCAAqC,0BAA0B,0BAA0B,+BAA+B,gCAAgC,sCAAsC,gCAAgC,iCAAiC,kCAAkC,4BAA4B,mBAAmB,cAAc,eAAe,gBAAgB,yBAAyB,kCAAkC,MAAM,yCAAyC,kCAAkC,uBAAuB,sBAAsB,mBAAmB,4BAA4B,2BAA2B,yBAAyB,GAAG,qBAAqB,kBAAkB,yBAAyB,qBAAqB,2BAA2B,2BAA2B,oBAAoB,mCAAmC,oCAAoC,qCAAqC,qCAAqC,0BAA0B,0BAA0B,+BAA+B,gCAAgC,sCAAsC,gCAAgC,iCAAiC,kCAAkC,GAAG,uBAAuB,kBAAkB,yBAAyB,qBAAqB,2BAA2B,2BAA2B,oBAAoB,mCAAmC,oCAAoC,qCAAqC,qCAAqC,0BAA0B,0BAA0B,+BAA+B,gCAAgC,sCAAsC,gCAAgC,iCAAiC,kCAAkC,GAAG,gBAAgB,kBAAkB,oCAAoC,wBAAwB,sBAAsB,sBAAsB,uBAAuB,mBAAmB,yBAAyB,yBAAyB,GAAG,kBAAkB,4BAA4B,KAAK,iBAAiB,0BAA0B,2FAA2F,2FAA2F,KAAK,C;;;;;;;ACA9xH,qkDAAqkD,ulBAAulB,kgCAAkgC,iBAAiB,2ZAA2Z,kBAAkB,s1BAAs1B,YAAY,kBAAkB,qPAAqP,iBAAiB,mZAAmZ,kBAAkB,kbAAkb,kBAAkB,mcAAmc,eAAe,2RAA2R,uxBAAuxB,kBAAkB,wdAAwd,eAAe,sQAAsQ,4xBAA4xB,kBAAkB,qNAAqN,uCAAuC,cAAc,kBAAkB,oBAAoB,eAAe,oBAAoB,aAAa,YAAY,4BAA4B,4B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA13R;AACzE;AACZ;AACiB;AACD;AACF;AAavD;IAKE,wBAAoB,WAAwB,EAAU,KAAqB,EACvD,MAAc,EAAE,IAAY,EAA4B,QAAkB,EAC1E,aAA+B;QAF/B,gBAAW,GAAX,WAAW,CAAa;QAAU,UAAK,GAAL,KAAK,CAAgB;QACvD,WAAM,GAAN,MAAM,CAAQ;QAA0C,aAAQ,GAAR,QAAQ,CAAU;QAC1E,kBAAa,GAAb,aAAa,CAAkB;QALnD,sDAAsD;QACtD,8CAA8C;QAC9C,SAAI,GAAS,IAAI,0DAAI,EAAE,CAAC;QAQjB,cAAS,GAAG,KAAK,CAAC;QAClB,eAAU,GAAG,IAAI,CAAC;QAElB,cAAS,GAAG,IAAI,CAAC;QACjB,qBAAgB,GAAG,KAAK,CAAC;QACzB,uBAAkB,GAAG,KAAK,CAAC;QAC3B,yBAAoB,GAAG,KAAK,CAAC;QAC7B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,oBAAe,GAAG,KAAK,CAAC;QACxB,sBAAiB,GAAG,KAAK,CAAC;QAb/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QACrD,wCAAwC;IAE1C,CAAC;IAWD,iCAAQ,GAAR;QACE,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAC3C,CAAC;YACC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACjC,CAAC;QACD,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CACxC,CAAC;YACC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CACxC,CAAC;YACC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,gCAAgC;QAClC,CAAC;QACD,2CAA2C;QAC3C,uDAAuD;QACvD,wCAAwC;QACxC,MAAM;QACN,8BAA8B;QAC9B,oCAAoC;QACpC,yCAAyC;QACzC,MAAM;QACN,OAAO;QACP,OAAO;QAEP,IAAI;QACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAE/D,qBAAqB;QACrB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,kDAAkD;QAClD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QACtD,yDAAyD;QACzD,uEAAuE;QACvE,oDAAoD;QAEpD,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACf,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,qBAAqB;IACrB,gDAAgD;IAChD,QAAQ;IACR,kDAAkD;IAClD,QAAQ;IACR,oDAAoD;IACpD,QAAQ;IACR,oDAAoD;IACpD,QAAQ;IACR,IAAI;IAEJ,oCAAW,GAAX;QACE,mDAAmD;QACnD,qDAAqD;IACvD,CAAC;IAGM,gCAAO,GAAd,UAAe,CAAK;QAClB,IAAM,SAAS,GAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QACpC,EAAE,EAAC,SAAS,IAAI,uBAAuB,CAAC,CACxC,CAAC;YACC,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CACxC,CAAC;gBACC,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,CAAC;YACD,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CACxC,CAAC;gBACC,CAAC,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;gBAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,CAAC;QAEH,CAAC;IACH,CAAC;IAED,gCAAO,GAAP;QAAA,iBAiFC;QAhFC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,EAAE,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC7B,mCAAmC;YACnC,EAAE,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;gBAC5E,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;gBAC5E,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;gBAChF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,8BAA8B,EAAE,OAAO,CAAC,CAAC;gBACpF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACpE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,oDAAoD,EAAE,OAAO,CAAC,CAAC;gBAC1G,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC;YACT,CAAC;YACD,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,UAAC,IAAI;gBACrH,oBAAoB;gBACpB,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC5B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACpE,CAAC;gBAAA,IAAI,CAAC,CAAC;oBACL,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,sCAAsC,EAAE,SAAS,CAAC,CAAC;oBAChG,2CAA2C;oBAC3C,wBAAwB;oBAExB,CAAC,CAAC,IAAI,CAAC;wBACL,GAAG,EACJ,kEAAkE;wBACjE,IAAI,EACL,MAAM;wBACL,IAAI,EAAE,EAAC,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAI,CAAC,IAAI,CAAC,WAAW,EAAC;wBACnE,OAAO,EACR,UAAS,IAAI;4BACZ,EAAE,EAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC;gCAC3B,yEAAyE;4BAC3E,CAAC;4BACD,IAAI,EAAC;gCACH,yEAAyE;4BAC3E,CAAC;wBACD,CAAC;wBACD,KAAK,EACN,UAAS,GAAG;4BACX,yEAAyE;wBAC1E,CAAC;qBACD,CAAC,CAAC;oBAEH,2BAA2B;oBAC3B,8BAA8B;oBAC9B,YAAY;oBACZ,KAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC,EAAE,aAAG;gBACJ,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,IAAI;gBACtF,oBAAoB;gBACpB,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC5B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACpE,CAAC;gBAAA,IAAI,CAAC,CAAC;oBACL,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;oBACzE,kCAAkC;oBAClC,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,EAAE,aAAG;gBACJ,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI;IACJ,cAAc;IACd,qDAAqD;IACrD,IAAI;IAGJ,8CAAqB,GAArB;QACE,qDAAqD;QACrD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,gDAAuB,GAAvB;QACE,qDAAqD;QACrD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,2CAAkB,GAAlB;QACE,kDAAkD;QAElD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,iDAAiD;QACjD,IAAI;QACJ,sCAAsC;QACtC,IAAI;IACN,CAAC;IAED,8CAAqB,GAArB;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,gDAAuB,GAAvB;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,iDAAwB,GAAxB;QACE,kDAAkD;QAElD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,iDAAiD;QACjD,IAAI;QACJ,sCAAsC;QACtC,IAAI;IACN,CAAC;IAED,oCAAW,GAAX;QACE,wBAAwB;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACvD,EAAE,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7C,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IArRqB;QAArB,gEAAS,CAAC,SAAS,CAAC;kCAAU,0DAAW;mDAAM;IA4FhD;QADC,mEAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;iDA2B1C;IAvHU,cAAc;QAL1B,gEAAS,CAAC;YACT,QAAQ,EAAE,WAAW;;;SAGtB,CAAC;QAOmD,wEAAM,CAAC,mEAAQ,CAAC;yCADlC,2EAAW,EAAiB,uEAAc;YAC/C,+DAAM,EAAQ,qDAAM,EAAsC,QAAQ;YAC3D,6EAAgB;OAPxC,cAAc,CAuR1B;IAAD,qBAAC;CAAA;AAvR0B;;;;;;;;AClB3B,wEAAwE,4BAA4B,GAAG,8BAA8B,oBAAoB,MAAM,qBAAqB,kBAAkB,mBAAmB,2BAA2B,2BAA2B,oBAAoB,GAAG,sCAAsC,mBAAmB,kBAAkB,wBAAwB,2BAA2B,0BAA0B,yBAAyB,GAAG,uBAAuB,kBAAkB,GAAG,sCAAsC,wBAAwB,wBAAwB,uBAAuB,4BAA4B,oBAAoB,GAAG,cAAc,6BAA6B,GAAG,yBAAyB,qBAAqB,mBAAmB,sBAAsB,GAAG,0CAA0C,kBAAkB,mBAAmB,yBAAyB,sBAAsB,GAAG,C;;;;;;;ACA/6B,wfAAwf,eAAe,gEAAgE,GAAG,yDAAyD,aAAa,UAAU,sBAAsB,+mBAA+mB,eAAe,mBAAmB,GAAG,mbAAmb,aAAa,yzBAAyzB,eAAe,8X;;;;;;;;;;;;;;;;;;;;;;ACApgF;AACd;AACI;AACR;AAOtD;IAkCE,wBACU,WAAwB,EACxB,aAA4B,EAC5B,YAAsB;QAFtB,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAU;QAnCxB,gBAAW,GAAe,EAAE,CAAC;QAC9B,wBAAmB,GAAe,EAAE,CAAC;QACpC,sBAAiB,GAAe,EAAE,CAAC;QACpC,kBAAa,GAAe,EAAE,CAAC;QAC9B,iBAAY,GAAe,EAAE,CAAC;QAC/B,kBAAa,GAAW,EAAE,CAAC;QAC1B,sBAAiB,GAAG,aAAa,CAAC;QAClC,sBAAiB,GAAG,UAAU,CAAC;QAChC,gCAA2B,GAAG,EAAE,CAAC;QACjC,0BAAqB,GAAG,EAAE,CAAC;QAM1B,oBAAe,GAAG,IAAI,CAAC;QACxB,uBAAkB,GAAe,EAAE,CAAC;QACpC,oBAAe,GAAG,CAAC,CAAC;QAC3B,oFAAoF;QAC7E,2BAAsB,GAAG,GAAG,CAAC;QAC5B,kBAAa,GAAG,EAAE,CAAC;QACnB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,UAAK,GAAG,KAAK,CAAC;QAEf,sBAAiB,GAAG;YACzB,IAAI;SACL,CAAC;QASA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;IAClD,CAAC;IAED,iCAAQ,GAAR;QAAA,iBAiBC;QAhBC,IAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC1D,KAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,KAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YACvD,KAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,KAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,KAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,qCAAqC;IACvC,CAAC;IAED,mCAAU,GAAV;QAAA,iBAUC;QATC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC1D,KAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,KAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YACvD,oCAAoC;YACpC,KAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,KAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAS,GAAT,UAAU,EAAE;QACV,EAAE,CAAC,cAAc,EAAE,CAAC;IACtB,CAAC;IAED,6BAAI,GAAJ,UAAK,EAAE;QACL,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,6BAAI,GAAJ,UAAK,EAAE;QACL,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,CAAC;QACT,CAAC;QACD,IAAI,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,mEAAmE;QACnE,EAAE,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,kDAAyB,GAAzB;QAAA,iBAoBC;QAnBC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QACD,IAAM,OAAO,GAAG;YACd,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,IAAI;YACd,qBAAqB,EAAE,IAAI;SAC5B,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI;YAC5B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,KAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAChE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1E,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,CAAC,EAAE,UAAC,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8CAAqB,GAArB;QAAA,iBAUC;QATC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC3F,6DAA6D;YAC7D,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAO;gBAC3B,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,2EAA2E;QAC7E,CAAC,EAAE,UAAC,KAAK;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gDAAuB,GAAvB;QAAA,iBA4BC;QA3BC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QACD,IAAM,OAAO,GAAG;YACd,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,IAAI;YACd,qBAAqB,EAAE,IAAI;SAC5B,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAC,IAAI;YACpC,IAAM,EAAE,GAAG,KAAI,CAAC,gBAAgB,EAAE,CAAC;YACnC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAC9D,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,EAAE,EAAE,EAAE;oBACN,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI;oBAC3C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe;iBACvD,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAClD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACf,CAAC,EAAE,UAAC,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAgB,GAAhB;QACE,oEAAoE;QADtE,iBAsCC;QAnCC,wDAAwD;QACxD,oEAAoE;QACpE,wDAAwD;QACxD,IAAM,cAAc,GAAG;YACrB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE;SACrC,CAAC;QAEF,IAAM,qBAAqB,GAAG;YAC5B,UAAU,EAAE,uBAAuB;YACnC,MAAM,EAAE,gBAAgB;YACxB,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAC;QAEF,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,UAAC,MAAM;YAC9C,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;gBAC5B,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBACpH,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACjG,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,GAAG,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACtI,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjE,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACnG,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC;YACL,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;YACnC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YAC/B,aAAa,EAAE,cAAc;YAC7B,oBAAoB,EAAE,qBAAqB;YAC3C,uBAAuB,EAAE,IAAI,CAAC,qBAAqB;SACpD,CAAC;IACJ,CAAC;IAED,mDAA0B,GAA1B;QACE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAM,aAAa,GAAG;YACpB,MAAM,EAAG,gBAAgB;YACzB,QAAQ,EAAG;gBACT,cAAc,EAAG,IAAI;gBACrB,QAAQ,EAAG,KAAK;gBAChB,kBAAkB,EAAG,WAAW;gBAChC,mBAAmB,EAAG,IAAI;gBAC1B,OAAO,EAAG;oBACR,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;oBACjB,GAAG,EAAE,GAAG;oBACR,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE,GAAG;oBACZ,QAAQ,EAAE,GAAG;oBACb,QAAQ,EAAE,gBAAgB;oBAC1B,SAAS,EAAE;wBACT,QAAQ,EAAE,eAAe;qBAC1B;iBACF;aACF;SACF,CAAC;QAEF,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,CAAC;QAEhD,IAAM,mBAAmB,GAAG;YAC1B,MAAM,EAAG,eAAe;YACxB,QAAQ,EAAG;gBACT,cAAc,EAAG,IAAI;gBACrB,QAAQ,EAAG,IAAI;gBACf,kBAAkB,EAAG,WAAW;gBAChC,mBAAmB,EAAG,IAAI;gBAC1B,OAAO,EAAG;oBACR,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,IAAI;oBAClB,GAAG,EAAE,GAAG;oBACR,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE,GAAG;oBACZ,QAAQ,EAAE,GAAG;oBACb,QAAQ,EAAE,WAAW;iBACtB;aACF;SACF,CAAC;QAEF,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,CAAC;IACxD,CAAC;IAED,oDAA2B,GAA3B,UAA4B,aAAa;QACvC,IAAM,iBAAiB,GAAG;YACxB,kBAAkB,EAAE,IAAI;YACxB,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE;SAC9B,CAAC;QAEF,iBAAiB,CAAC,gBAAgB,GAAG;YACnC,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,YAAY;YACjD,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM;YACrC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,gBAAgB;YACzD,mBAAmB,EAAE,aAAa,CAAC,MAAM,CAAC,iBAAiB;SAC5D,CAAC;QAEF,iBAAiB,CAAC,YAAY,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,gDAAuB,GAAvB,UAAwB,aAAa,EAAE,gBAAwB;QAAxB,2DAAwB;QAC7D,IAAM,iBAAiB,GAAG;YACxB,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE;SAC9B,CAAC;QAEF,iBAAiB,CAAC,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,uCAAc,GAAd;QAAA,iBA+BC;QA9BC,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,CAAC;QACT,CAAC;QAED,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,UAAC,MAAM;YAC9C,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;gBAC5B,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;YAC7E,MAAM,CAAC;QACT,CAAC;QAED,IAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC3D,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACrF,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,KAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;YACxF,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAgB,GAAhB;QACE,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;QAChH,MAAM,CAAC,eAAe,CAAC;IACzB,CAAC;IAED,wCAAe,GAAf,UAAgB,MAAM;QAAtB,iBAgBC;QAfC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAC,IAAI;YAClC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAO;oBACvB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;oBACzB,KAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;gBACH,KAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;gBACvC,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC/B,MAAM,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAgB,GAAhB,UAAiB,WAAW;QAA5B,iBAiBC;QAhBC,WAAW,CAAC,OAAO,CAAC,iBAAO;YACzB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1D,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAClD,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAM;oBACnC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;wBAC5B,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;wBACnC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAA,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;gBACpC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAgB,GAAhB,UAAiB,KAAK;QACpB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;IACzD,CAAC;IAED,qCAAY,GAAZ,UAAa,KAAK;QAChB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,yCAAgB,GAAhB;QACE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,kCAAS,GAAT,UAAU,OAAO,EAAE,MAAe,EAAE,IAAa;QAC/C,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;YAClC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,MAAM;YAC/B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC,EAAE,UAAC,MAAM;YACR,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gCAAO,GAAP;QAAA,iBAqCC;QApCC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC;QACT,CAAC;QACD,IAAM,aAAa,GAAG;YACpB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,gBAAgB;YAC5B,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,oBAAoB,EAAE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;YAC/D,oBAAoB,EAAE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;SAChE,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACzE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;gBAChC,oEAAoE;gBACpE,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC;YAC1E,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,kEAAkE;gBAClE,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC;YACD,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,yCAAgB,GAAhB,UAAiB,QAAgB;QAC/B,IAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,EAAE,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;IAChC,CAAC;IAED,oCAAW,GAAX;IACA,CAAC;IAjaoC;QAApC,gEAAS,CAAC,wBAAwB,CAAC;;kEAAgC;IAhCzD,cAAc;QAL1B,gEAAS,CAAC;YACT,QAAQ,EAAE,WAAW;;;SAGtB,CAAC;yCAoCuB,2EAAW;YACT,+EAAa;YACd,4EAAQ;OArCrB,cAAc,CAkc1B;IAAD,qBAAC;CAAA;AAlc0B;;;;;;;;ACV3B,wEAAwE,4BAA4B,GAAG,8BAA8B,oBAAoB,MAAM,qBAAqB,kBAAkB,mBAAmB,2BAA2B,2BAA2B,oBAAoB,GAAG,sCAAsC,mBAAmB,kBAAkB,wBAAwB,2BAA2B,0BAA0B,yBAAyB,GAAG,uBAAuB,kBAAkB,GAAG,sCAAsC,wBAAwB,wBAAwB,uBAAuB,4BAA4B,oBAAoB,GAAG,cAAc,6BAA6B,GAAG,yBAAyB,qBAAqB,mBAAmB,sBAAsB,GAAG,0CAA0C,kBAAkB,mBAAmB,yBAAyB,sBAAsB,GAAG,sCAAsC,4BAA4B,GAAG,2CAA2C,mBAAmB,wBAAwB,mBAAmB,GAAG,4BAA4B,mCAAmC,mCAAmC,oBAAoB,uBAAuB,wBAAwB,GAAG,0BAA0B,mCAAmC,mCAAmC,oBAAoB,sBAAsB,uBAAuB,wBAAwB,GAAG,8BAA8B,kCAAkC,mCAAmC,uBAAuB,sBAAsB,uBAAuB,wBAAwB,2BAA2B,2BAA2B,oBAAoB,0BAA0B,0BAA0B,GAAG,sBAAsB,mBAAmB,wBAAwB,GAAG,4EAA4E,wBAAwB,GAAG,C;;;;;;;ACA/6D,igBAAigB,eAAe,gEAAgE,GAAG,yDAAyD,aAAa,UAAU,sBAAsB,yeAAye,UAAU,gCAAgC,gBAAgB,yhBAAyhB,eAAe,mBAAmB,GAAG,mbAAmb,aAAa,gMAAgM,yFAAyF,w3BAAw3B,KAAK,ytBAAytB,eAAe,8nBAA8nB,+BAA+B,6JAA6J,gcAAgc,MAAM,wYAAwY,OAAO,kYAAkY,MAAM,iYAAiY,KAAK,4bAA4b,KAAK,kcAAkc,MAAM,8YAA8Y,OAAO,wYAAwY,MAAM,uYAAuY,KAAK,6YAA6Y,KAAK,gLAAgL,oBAAoB,4KAA4K,qKAAqK,cAAc,sDAAsD,aAAa,sV;;;;;;;;;;;;;;;;;;;;;;ACA79S;AACd;AACI;AACR;AAQtD;IA4FE,4BACU,WAAwB,EACxB,aAA4B,EAC5B,YAAsB;QAFtB,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAU;QA7FxB,gBAAW,GAAe,EAAE,CAAC;QAC9B,wBAAmB,GAAe,EAAE,CAAC;QACpC,sBAAiB,GAAe,EAAE,CAAC;QACpC,kBAAa,GAAe,EAAE,CAAC;QAC9B,iBAAY,GAAe,EAAE,CAAC;QAC/B,kBAAa,GAAW,EAAE,CAAC;QAC1B,sBAAiB,GAAG,aAAa,CAAC;QAClC,sBAAiB,GAAG,UAAU,CAAC;QAChC,gCAA2B,GAAG,EAAE,CAAC;QAMhC,oBAAe,GAAG,IAAI,CAAC;QACxB,uBAAkB,GAAe,EAAE,CAAC;QAEnC,iBAAY,GAAG,KAAK,CAAC;QACrB,kBAAa,GAAG,KAAK,CAAC;QACtB,iBAAY,GAAG,KAAK,CAAC;QACrB,iBAAY,GAAG,KAAK,CAAC;QACrB,mBAAc,GAAG,KAAK,CAAC;QACvB,oBAAe,GAAG,OAAO,CAAC;QAC1B,qBAAgB,GAAG,OAAO,CAAC;QAC3B,oBAAe,GAAG,OAAO,CAAC;QAC1B,oBAAe,GAAG,OAAO,CAAC;QAC1B,sBAAiB,GAAG,OAAO,CAAC;QAC5B,qBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,oBAAe,GAAG,CAAC,CAAC;QAC3B,oFAAoF;QAC7E,2BAAsB,GAAG,GAAG,CAAC;QAC5B,kBAAa,GAAG,EAAE,CAAC;QACnB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,UAAK,GAAG,KAAK,CAAC;QAEd,WAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;YAC1C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAElD,aAAQ,GAAG;YACjB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;SAC7C,CAAC;QAEM,UAAK,GAAG,EAAE,CAAC;QACX,UAAK,GAAG,EAAE,CAAC;QACX,UAAK,GAAG;YACd,UAAU;YACV,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,MAAM;YACN,MAAM;YACN,SAAS;YACT,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,MAAM;YACN,MAAM;SACP,CAAC;QACM,YAAO,GAAG,EAAE,CAAC;QAEd,sBAAiB,GAAG;YACzB,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;SACL,CAAC;QASA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;IAClD,CAAC;IAED,qCAAQ,GAAR;QAAA,iBAyBC;QAxBC,IAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,qBAAqB;QAErB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC1D,KAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,KAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YACvD,KAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,KAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,KAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,uCAAU,GAAV;QAAA,iBAUC;QATC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC1D,KAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,KAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YACvD,oCAAoC;YACpC,KAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,KAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sCAAS,GAAT,UAAU,EAAE;QACV,EAAE,CAAC,cAAc,EAAE,CAAC;IACtB,CAAC;IAED,iCAAI,GAAJ,UAAK,EAAE;QACL,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,iCAAI,GAAJ,UAAK,EAAE;QACL,IAAI,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,mEAAmE;QACnE,EAAE,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,sDAAyB,GAAzB;QAAA,iBAoBC;QAnBC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QACD,IAAM,OAAO,GAAG;YACd,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,IAAI;YACd,qBAAqB,EAAE,IAAI;SAC5B,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI;YAC5B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,KAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAChE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1E,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,CAAC,EAAE,UAAC,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAqB,GAArB;QAAA,iBAUC;QATC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC3F,6DAA6D;YAC7D,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAO;gBAC3B,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,2EAA2E;QAC7E,CAAC,EAAE,UAAC,KAAK;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oDAAuB,GAAvB;QAAA,iBA4BC;QA3BC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QACD,IAAM,OAAO,GAAG;YACd,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,IAAI;YACd,qBAAqB,EAAE,IAAI;SAC5B,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAC,IAAI;YACpC,IAAM,EAAE,GAAG,KAAI,CAAC,gBAAgB,EAAE,CAAC;YACnC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAC9D,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,EAAE,EAAE,EAAE;oBACN,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI;oBAC3C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe;iBACvD,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAClD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACf,CAAC,EAAE,UAAC,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAAgB,GAAhB;QACE,oEAAoE;QAEpE,wDAAwD;QACxD,oEAAoE;QACpE,wDAAwD;QACxD,IAAM,cAAc,GAAG;YACrB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE;SACrC,CAAC;QAEF,IAAM,qBAAqB,GAAG;YAC5B,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC,eAAe,GAAG,MAAM;YAC7D,MAAM,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/F,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAC;QAEF,yCAAyC;QACzC,IAAM,MAAM,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnE,MAAM,CAAC;YACL,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;YACnC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YAC/B,aAAa,EAAE,cAAc;YAC7B,oBAAoB,EAAE,qBAAqB;YAC3C,uBAAuB,EAAE,IAAI,CAAC,2BAA2B;SAC1D,CAAC;IACJ,CAAC;IAED,oDAAuB,GAAvB,UAAwB,aAAa,EAAE,gBAAwB;QAAxB,2DAAwB;QAC7D,IAAM,iBAAiB,GAAG;YACxB,kBAAkB,EAAE,IAAI;YACxB,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC7B,gBAAgB,EAAE,aAAa,CAAC,eAAe,GAAG,aAAa,CAAC,eAAe,GAAG,EAAE;SACrF,CAAC;QAEF,iBAAiB,CAAC,gBAAgB,GAAG;YACnC,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,YAAY;YACjD,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM;YACrC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,gBAAgB;YACzD,mBAAmB,EAAE,aAAa,CAAC,MAAM,CAAC,iBAAiB;SAC5D,CAAC;QAEF,iBAAiB,CAAC,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEzD,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,IAAI,gBAAgB,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACrF,CAAC;IAEH,CAAC;IACD;;OAEG;IACH,8CAAiB,GAAjB;QAAA,iBA0CC;QAzCC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;YAC3E,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,iBAAO;YAC9C,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;gBACzB,KAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC7E,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;gBAC5E,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACf,MAAM,CAAC;QACT,CAAC;QAED,IAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC9D,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACrF,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,KAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;YACxF,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAAgB,GAAhB;QACE,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;QAChH,MAAM,CAAC,eAAe,CAAC;IACzB,CAAC;IAED,4CAAe,GAAf,UAAgB,MAAM;QAAtB,iBAiBC;QAhBC,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAC,IAAI;YAClC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAO;oBACvB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;oBACzB,KAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;gBACH,KAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;gBACvC,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC/B,MAAM,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAAgB,GAAhB,UAAiB,WAAW;QAA5B,iBAiBC;QAhBC,WAAW,CAAC,OAAO,CAAC,iBAAO;YACzB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1D,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAClD,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAM;oBACnC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC3C,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wBAClD,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtD,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtD,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAY,GAAZ,UAAa,KAAK;QAChB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,6CAAgB,GAAhB;QACE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,kDAAqB,GAArB,UAAsB,MAAM;QAC1B,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC;QACvC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,sCAAS,GAAT,UAAU,OAAO,EAAE,MAAe,EAAE,IAAa;QAC/C,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;YAClC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,MAAM;YAC/B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC,EAAE,UAAC,MAAM;YACR,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAAgB,GAAhB,UAAiB,cAAsB;QAAvC,iBAqCC;QApCC,IAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,IAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,IAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,IAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,IAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEzE,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;SAC9C,CAAC;QAEF,QAAQ,CAAC,OAAO,CAAC,iBAAO;YACtB,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,IAAI;gBACxB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAU,GAAV,UAAW,KAAK;QACd,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACd,KAAK,GAAG;gBACN,MAAM,CAAC,UAAU,CAAC;YACpB,KAAK,IAAI;gBACP,MAAM,CAAC,SAAS,CAAC;YACnB;gBACE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC7B,MAAM,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;gBAC7B,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;gBACtB,CAAC;QACL,CAAC;IACH,CAAC;IAED,wCAAW,GAAX,UAAY,KAAa;QACvB,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACd,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,IAAI;gBACP,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,IAAI;gBACP,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,IAAI;gBACP,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,+CAAkB,GAAlB;QACE,8GAA8G;QADhH,iBAqBC;QAlBC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,iBAAO;YAC9C,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,KAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,cAAc,GAAG,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,aAAa,CAAC,GAAG,GAAG;oBAC9D,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,GAAG;oBAC1C,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,GAAG;oBAC1C,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG;oBAC1C,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,eAAe,CAAC,GAAG,GAAG;oBAC7C,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,eAAe,CAAC,GAAG,GAAG;oBAC7C,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,GAAG;oBACzC,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,cAAc,CAAC,GAAG,GAAG;oBAC7C,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,eAAe,CAAC,GAAG,GAAG;oBAC5C,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG;oBAChD,KAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,8CAAiB,GAAjB;QACE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;SAC7C,CAAC;IACJ,CAAC;IACD,wCAAW,GAAX,UAAY,IAAI;QACd,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC;QACb,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC;QACb,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;QACd,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,yCAAY,GAAZ,UAAa,KAAK;QAChB,EAAE,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC;QACb,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,0CAAa,GAAb,UAAc,KAAK;QACjB,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEjC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED,qCAAQ,GAAR,UAAS,KAAK;QACZ,EAAE,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC;QACb,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACd,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,KAAK;oBACR,MAAM,CAAC,EAAE,CAAC;gBACZ,KAAK,KAAK;oBACR,MAAM,CAAC,EAAE,CAAC;gBACZ,KAAK,KAAK;oBACR,MAAM,CAAC,EAAE,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,4CAAe,GAAf;QACE,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ;aACV,MAAM,CAAC,aAAG,IAAI,UAAG,CAAC,OAAO,EAAX,CAAW,CAAC;aAC1B,GAAG,CAAC,UAAC,GAAG;YACP,EAAE,CAAC,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3B,eAAe,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;YACrC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QACL,MAAM,CAAC,eAAe,CAAC;IACzB,CAAC;IAED,6CAAgB,GAAhB,UAAiB,KAAK;QACpB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC;IAC9D,CAAC;IAED,oCAAO,GAAP;QAAA,iBA+CC;QA7CC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,iBAAO;YAC9C,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC5C,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC;YACvG,MAAM,CAAC;QACT,CAAC;QACD,IAAM,aAAa,GAAG;YACpB,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,IAAI,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;YACzD,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,gBAAgB;YAC5B,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,SAAS,EAAE,IAAI,CAAC,aAAa;YAC7B,oBAAoB,EAAE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;YAC/D,oBAAoB,EAAE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;SAChE,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACzE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;gBAChC,oEAAoE;gBACpE,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC;YAC1E,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,kEAAkE;gBAClE,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC;YACD,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IAGL,CAAC;IAED,6CAAgB,GAAhB,UAAiB,QAAgB;QAC/B,IAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,EAAE,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;IAChC,CAAC;IAED,wCAAW,GAAX;IACA,CAAC;IAnlBoC;QAApC,gEAAS,CAAC,wBAAwB,CAAC;;sEAAgC;IA1FzD,kBAAkB;QAL9B,gEAAS,CAAC;YACT,QAAQ,EAAE,cAAc;;;SAGzB,CAAC;yCA8FuB,2EAAW;YACT,+EAAa;YACd,4EAAQ;OA/FrB,kBAAkB,CA8qB9B;IAAD,yBAAC;CAAA;AA9qB8B;;;;;;;;ACX/B,mCAAmC,8BAA8B,6BAA6B,yBAAyB,iCAAiC,kBAAkB,4CAA4C,sDAAsD,2BAA2B,8BAA8B,OAAO,iCAAiC,mDAAmD,OAAO,yBAAyB,gCAAgC,gCAAgC,oCAAoC,uCAAuC,wCAAwC,8CAA8C,6CAA6C,gDAAgD,6CAA6C,wCAAwC,OAAO,yBAAyB,gCAAgC,gCAAgC,oCAAoC,uCAAuC,wCAAwC,8CAA8C,6CAA6C,gDAAgD,6CAA6C,wCAAwC,OAAO,oBAAoB,uBAAuB,6BAA6B,OAAO,sBAAsB,gCAAgC,sCAAsC,sCAAsC,0CAA0C,OAAO,oBAAoB,uBAAuB,OAAO,qBAAqB,iDAAiD,2BAA2B,OAAO,0BAA0B,wBAAwB,OAAO,6BAA6B,wBAAwB,2BAA2B,GAAG,qCAAqC,sBAAsB,OAAO,wCAAwC,eAAe,GAAG,0CAA0C,eAAe,GAAG,0CAA0C,sBAAsB,OAAO,0BAA0B,uCAAuC,wCAAwC,OAAO,oHAAoH,uBAAuB,+BAA+B,gCAAgC,sBAAsB,OAAO,2BAA2B,gCAAgC,2BAA2B,2BAA2B,2BAA2B,8BAA8B,OAAO,mDAAmD,0BAA0B,OAAO,oBAAoB,uBAAuB,OAAO,4BAA4B,+BAA+B,oCAAoC,OAAO,6BAA6B,sDAAsD,OAAO,4BAA4B,4CAA4C,OAAO,mCAAmC,sCAAsC,OAAO,4BAA4B,2BAA2B,8BAA8B,OAAO,yBAAyB,2BAA2B,8BAA8B,OAAO,8BAA8B,+BAA+B,+BAA+B,wBAAwB,sBAAsB,8BAA8B,8BAA8B,2BAA2B,8BAA8B,OAAO,4BAA4B,wBAAwB,8BAA8B,6BAA6B,uCAAuC,wCAAwC,+CAA+C,uBAAuB,0BAA0B,6BAA6B,8BAA8B,+BAA+B,2BAA2B,OAAO,kCAAkC,+BAA+B,+BAA+B,wBAAwB,sBAAsB,uBAAuB,8BAA8B,OAAO,iCAAiC,6CAA6C,wBAAwB,0CAA0C,2CAA2C,6BAA6B,OAAO,+BAA+B,2BAA2B,sBAAsB,2BAA2B,6BAA6B,OAAO,iCAAiC,4BAA4B,qBAAqB,2BAA2B,OAAO,6BAA6B,0BAA0B,OAAO,+BAA+B,sBAAsB,OAAO,sCAAsC,0BAA0B,kCAAkC,wBAAwB,OAAO,8BAA8B,4BAA4B,OAAO,iCAAiC,0BAA0B,OAAO,oCAAoC,iCAAiC,kCAAkC,OAAO,2CAA2C,yBAAyB,8BAA8B,2BAA2B,OAAO,gGAAgG,mBAAmB,qBAAqB,oBAAoB,OAAO,0EAA0E,iCAAiC,wBAAwB,OAAO,yDAAyD,sBAAsB,0BAA0B,OAAO,sDAAsD,wBAAwB,2BAA2B,OAAO,8DAA8D,4BAA4B,OAAO,sCAAsC,yBAAyB,OAAO,cAAc,0BAA0B,OAAO,2BAA2B,2CAA2C,iCAAiC,OAAO,gCAAgC,+CAA+C,OAAO,0BAA0B,yBAAyB,sBAAsB,oCAAoC,OAAO,iDAAiD,6CAA6C,iEAAiE,6DAA6D,6CAA6C,6CAA6C,sEAAsE,0CAA0C,8BAA8B,8BAA8B,qCAAqC,6CAA6C,iEAAiE,8BAA8B,OAAO,4BAA4B,qCAAqC,gCAAgC,OAAO,yBAAyB,+BAA+B,+BAA+B,wBAAwB,OAAO,0BAA0B,6BAA6B,4BAA4B,+BAA+B,wBAAwB,OAAO,2BAA2B,6BAA6B,4BAA4B,+BAA+B,0BAA0B,wBAAwB,OAAO,8BAA8B,+BAA+B,+BAA+B,wBAAwB,mCAAmC,oCAAoC,0CAA0C,6BAA6B,4BAA4B,+BAA+B,wBAAwB,OAAO,wBAAwB,sBAAsB,2BAA2B,6BAA6B,0BAA0B,OAAO,gCAAgC,wBAAwB,OAAO,kCAAkC,6BAA6B,yBAAyB,OAAO,mCAAmC,iCAAiC,OAAO,C;;;;;;;ACA9iQ,8EAA8E,cAAc,4DAA4D,cAAc,wDAAwD,wjBAAwjB,aAAa,GAAG,MAAM,uiHAAuiH,cAAc,iBAAiB,0KAA0K,aAAa,cAAc,koBAAkoB,aAAa,cAAc,2lCAA2lC,sEAAsE,mBAAmB,gBAAgB,mBAAmB,mBAAmB,yOAAyO,mBAAmB,kBAAkB,kBAAkB,o+EAAo+E,8mBAA8mB,gBAAgB,6NAA6N,mjBAAmjB,UAAU,0BAA0B,gGAAgG,WAAW,kDAAkD,+CAA+C,oBAAoB,sBAAsB,0GAA0G,oBAAoB,mLAAmL,WAAW,KAAK,uCAAuC,UAAU,oBAAoB,uIAAuI,oBAAoB,ynBAAynB,seAAse,ggBAAggB,8eAA8e,kdAAkd,yhBAAyhB,8eAA8e,ucAAuc,eAAe,mBAAmB,mBAAmB,0dAA0d,iYAAiY,2ZAA2Z,6YAA6Y,6XAA6X,iXAAiX,mUAAmU,qSAAqS,4ZAA4Z,gaAAga,6YAA6Y,ojBAAojB,ocAAoc,i8BAAi8B,sBAAsB,UAAU,mBAAmB,uqBAAuqB,s6BAAs6B,mMAAmM,g4BAAg4B,GAAG,GAAG,kJAAkJ,eAAe,iXAAiX,i5GAAi5G,UAAU,mCAAmC,aAAa,2wEAA2wE,iOAAiO,o6BAAo6B,EAAE,2BAA2B,GAAG,sJAAsJ,eAAe,kaAAka,k3BAAk3B,GAAG,GAAG,2JAA2J,0BAA0B,srSAAsrS,uOAAuO,uoBAAuoB,giCAAgiC,+GAA+G,qBAAqB,mCAAmC,OAAO,cAAc,QAAQ,sKAAsK,OAAO,cAAc,QAAQ,yBAAyB,+cAA+c,kkBAAkkB,0kBAA0kB,iSAAiS,UAAU,qwBAAqwB,iSAAiS,UAAU,isBAAisB,ylBAAylB,ugBAAugB,8WAA8W,GAAG,GAAG,4HAA4H,oCAAoC,mOAAmO,gWAAgW,0yBAA0yB,WAAW,mCAAmC,qBAAqB,qIAAqI,eAAe,gEAAgE,+CAA+C,gIAAgI,eAAe,KAAK,eAAe,6OAA6O,oIAAoI,uWAAuW,2RAA2R,+OAA+O,qBAAqB,qIAAqI,eAAe,gLAAgL,eAAe,KAAK,eAAe,gSAAgS,wWAAwW,4wBAA4wB,wQAAwQ,YAAY,iBAAiB,udAAud,sHAAsH,kBAAkB,uWAAuW,kEAAkE,wFAAwF,qGAAqG,kpBAAkpB,2bAA2b,qBAAqB,IAAI,eAAe,QAAQ,qBAAqB,gdAAgd,sQAAsQ,YAAY,iBAAiB,gSAAgS,YAAY,iBAAiB,sdAAsd,qbAAqb,qBAAqB,IAAI,eAAe,QAAQ,qBAAqB,8fAA8f,0QAA0Q,YAAY,iBAAiB,gSAAgS,YAAY,iBAAiB,4eAA4e,2MAA2M,sCAAsC,mVAAmV,mEAAmE,eAAe,+IAA+I,4EAA4E,qBAAqB,84DAA84D,WAAW,2EAA2E,qBAAqB,uFAAuF,kBAAkB,sFAAsF,yDAAyD,8NAA8N,wCAAwC,2VAA2V,+FAA+F,kBAAkB,eAAe,6JAA6J,4EAA4E,qBAAqB,kiEAAkiE,WAAW,2EAA2E,qBAAqB,oFAAoF,kBAAkB,sFAAsF,qFAAqF,8aAA8a,ydAAyd,WAAW,KAAK,aAAa,oKAAoK,qBAAqB,IAAI,eAAe,QAAQ,qBAAqB,sMAAsM,kBAAkB,mBAAmB,oBAAoB,iIAAiI,sKAAsK,qjCAAqjC,qBAAqB,IAAI,eAAe,QAAQ,qBAAqB,wpBAAwpB,6tDAA6tD,+jFAA+jF,mxBAAmxB,aAAa,KAAK,eAAe,4FAA4F,qBAAqB,IAAI,eAAe,QAAQ,qBAAqB,2QAA2Q,qDAAqD,gBAAgB,KAAK,mBAAmB,yUAAyU,qXAAqX,iFAAiF,oEAAoE,wBAAwB,uJAAuJ,kHAAkH,+FAA+F,oBAAoB,mXAAmX,0MAA0M,aAAa,oSAAoS,+DAA+D,aAAa,cAAc,kKAAkK,okBAAokB,0MAA0M,aAAa,kUAAkU,gkBAAgkB,0MAA0M,aAAa,oZAAoZ,2lBAA2lB,0jBAA0jB,sEAAsE,4BAA4B,KAAK,oBAAoB,gKAAgK,kHAAkH,qFAAqF,iBAAiB,gBAAgB,sBAAsB,cAAc,aAAa,0GAA0G,2EAA2E,+BAA+B,oCAAoC,ygBAAygB,iDAAiD,0CAA0C,2CAA2C,gDAAgD,8CAA8C,8NAA8N,WAAW,oTAAoT,wGAAwG,sBAAsB,4eAA4e,uHAAuH,uGAAuG,uLAAuL,4eAA4e,0dAA0d,geAAge,aAAa,YAAY,21BAA21B,+dAA+d,kY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAz2vF;AACxF;AACa;AACa;AACA;AAE1D,4CAA4C;AACb;AAC/B,yCAAyC;AACa;AACQ;AACY;AACD;AACV;AACL;AAED;AAEd;AAKZ;AAI2C;AAE1E,kCAAkC;AAClC,oCAAoC;AACpC,mCAAmC;AAEnC,8BAA8B;AAC9B,4BAA4B;AAC5B,IAAI,EAAO,CAAC;AAKZ,IAAI,qBAA0B,CAAC;AAS/B;IAieE,gCACU,WAAwB,EACxB,YAAsB,EACtB,aAA4B,EAC5B,mBAAwC,EACxC,cAAwC,EACxC,IAAiB,EAClB,SAAuB,EACtB,KAAiB,EACjB,WAAwB,EACxB,WAA+B,EAC/B,mBAAwC;QAXlD,iBAsBC;QArBS,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAU;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAA0B;QACxC,SAAI,GAAJ,IAAI,CAAa;QAClB,cAAS,GAAT,SAAS,CAAc;QACtB,UAAK,GAAL,KAAK,CAAY;QACjB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAoB;QAC/B,wBAAmB,GAAnB,mBAAmB,CAAqB;QA1e3C,kBAAa,GAAG,SAAS,CAAC;QAC1B,aAAQ,GAAG,EAAE,CAAC;QACd,qBAAgB,GAAG,EAAE,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QACnB,uBAAkB,GAAG,EAAE,CAAC;QACxB,2BAAsB,GAAG,EAAE,CAAC;QAC5B,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;QACnB,eAAU,GAAG,EAAE,CAAC;QAIhB,eAAU,GAAG,IAAI,CAAC;QAClB,gBAAW,GAAG,GAAG,CAAC;QAClB,SAAI,GAAe,EAAE,CAAC;QACtB,cAAS,GAAe,EAAE,CAAC;QAC3B,eAAU,GAAe,EAAE,CAAC;QAC5B,aAAQ,GAAe,EAAE,CAAC;QAC1B,gBAAW,GAAe,EAAE,CAAC;QAC7B,mBAAc,GAAe,EAAE,CAAC;QAChC,wBAAmB,GAAe,EAAE,CAAC;QACrC,qBAAgB,GAAe,EAAE,CAAC;QAClC,kBAAa,GAAe,EAAE,CAAC;QAC/B,kBAAa,GAAe,EAAE,CAAC;QAC/B,kBAAa,GAAe,EAAE,CAAC;QAC/B,gBAAW,GAAe,EAAE,CAAC;QAC7B,iBAAY,GAAe,EAAE,CAAC;QAC9B,uBAAkB,GAAe,EAAE,CAAC;QAE3C,qBAAgB,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QAC1J,uBAAkB,GAAe,EAAE,CAAC;QAEpC,kBAAa,GAAG,KAAK,CAAC;QAOrB,sBAAiB,GAAG,aAAa,CAAC;QAC1C,yCAAyC;QAClC,sBAAiB,GAAG,WAAW,CAAC;QAChC,uBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC5C,kBAAa,GAAG,IAAI,CAAC;QACrB,kBAAa,GAAQ,KAAK,CAAC;QAC1B,sBAAiB,GAAG,KAAK,CAAC;QAC1B,kBAAa,GAAG,IAAI,CAAC;QAEtB,eAAU,GAAG,CAAC,CAAC;QACf,oBAAe,GAAG;YACvB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,mBAAmB;SAChC,CAAC;QACK,kBAAa,GAAG;YACrB,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,EAAE;YACrB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,gBAAgB;YAC5B,oBAAoB,EAAE,IAAI;YAC1B,EAAE,EAAE,IAAI;SACT,CAAC;QACK,eAAU,GAAG;YAClB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,cAAc;SAC3B,CAAC;QACK,YAAO,GAAG;YACf,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;SACpB,CAAC;QACK,aAAQ,GAAG,EAAE,CAAC;QACd,oBAAe,GAAG,EAAE,CAAC;QACrB,gBAAW,GAAG,EAAE,CAAC;QACjB,yBAAoB,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxD,qBAAgB,GAAG,EAAE,CAAC;QACtB,4BAAuB,GAAG,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC;QACvD,iBAAY,GAAG,KAAK,CAAC;QACrB,uBAAkB,GAAG,KAAK,CAAC;QAC3B,oBAAe,GAAG,EAAE,CAAC;QACrB,kBAAa,GAAG,KAAK,CAAC;QACtB,iBAAY,GAAG,KAAK,CAAC;QACrB,WAAM,GAAG,KAAK,CAAC;QACf,eAAU,GAAG,IAAI,CAAC;QAClB,eAAU,GAAG,KAAK,CAAC;QACnB,gCAA2B,GAAG,EAAE,CAAC;QACjC,2BAAsB,GAAG,EAAE,CAAC;QAC5B,WAAM,GAAG,CAAC,CAAC;QACX,WAAM,GAAG,CAAC,CAAC;QACX,eAAU,GAAG,CAAC,CAAC;QACf,gBAAW,GAAG,CAAC,CAAC;QAChB,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,EAAE,CAAC;QACnB,mBAAc,GAAG,KAAK,CAAC;QACvB,sBAAiB,GAAG,CAAC,CAAC;QACtB,eAAU,GAAG,KAAK,CAAC;QAC1B,0BAA0B;QAC1B,wCAAwC;QACjC,cAAS,GAAe,EAAE,CAAC;QAClC,YAAO,GAAG;YACR,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;SAChB,CAAC;QAEF,UAAK,GAAW,GAAG,CAAC;QACpB,YAAO,GAAY;YACjB,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,GAAG;SACV,CAAC;QAEF,cAAS,GAAW,GAAG,CAAC;QACxB,gBAAW,GAAY;YACrB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,GAAG;SACV,CAAC;QAGF,cAAS,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC11B,iBAAY,GAAG,KAAK,CAAC;QACrB,mBAAc,GAAG,KAAK,CAAC;QACvB,qBAAgB,GAAG;YACxB,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;YACtC,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,WAAW,EAAE;SAC9C,CAAC;QACK,oBAAe,GAAG;YACvB,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE;YAClC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;YACxF,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;YAChF,4EAA4E;YAC5E,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE;YACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YACxE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC5E,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE;YAClE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;YAClG,8EAA8E;YAC9E,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAClF,8EAA8E;YAC9E,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;SAC9G,CAAC;QACK,oBAAe,GAAG;YACvB,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE;YAClC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;YACxF,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;YAChF,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE;YACrD,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,EAAE;YAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE;YACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YACxE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;SAIvD,CAAC;QACK,mBAAc,GAAG;YACtB,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;YACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;YAC/F,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACtD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE;YACxE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACzE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE;SAC1F,CAAC;QACK,sBAAiB,GAAG;YACzB,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE;YACpC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;YACxF,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YACrG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACtD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,mBAAmB,EAAE,aAAa,EAAE,IAAI,EAAE;SAAC,CAAC;QACvE,sBAAiB,GAAG;YACzB,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE;YACpC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACtD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE;YACxE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE;SAC7D,CAAC;QACK,oBAAe,GAAG;YACvB,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE;YAClC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACtD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE;YACxE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE;YACxF,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,uBAAuB,EAAE,aAAa,EAAE,IAAI,EAAE;YACrG,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACnF,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACzE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE;SAC7D,CAAC;QACK,kBAAa,GAAG;YACrB,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;YAChC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE;YACnF,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACtD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE;YACxE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE;SAC7D,CAAC;QACK,yBAAoB,GAAG;YAC5B,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE;YACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;YACxG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACtD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE;YACxE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACzE,gEAAgE;YAChE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE;SAC1F,CAAC;QACK,4BAAuB,GAAG;YAC/B,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,wBAAwB,EAAE;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,IAAI,EAAE;YAC1F,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACtD,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE;YAChF,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE;YACxE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE;SAC7D,CAAC;QACK,sBAAiB,GAAG;YACzB,iCAAiC;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE;YACpC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;YACxF,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE;YACnD,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,EAAE;YACzD,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;YAC5E,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;YACtD;gBACE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,sEAAsE;oBACpG,uCAAuC;oBACvC,6DAA6D;oBAC7D,qCAAqC;oBACrC,mDAAmD;oBACnD,sMAAsM,EAAE,aAAa,EAAE,IAAI;aAC9N;SACF,CAAC;QACK,qBAAgB,GAAG,KAAK,CAAC;QACzB,kBAAa,GAAG,EAAE,CAAC;QAClB,iBAAY,GAAG,KAAK,CAAC;QAC7B,YAAY;QACZ,wBAAwB;QACxB,sFAAsF;QACtF,qGAAqG;QACrG,sHAAsH;QACtH,uHAAuH;QACvH,mHAAmH;QACnH,2GAA2G;QAC3G,mHAAmH;QACnH,0GAA0G;QAC1G,0CAA0C;QAC1C,KAAK;QACE,eAAU,GAAG;YAClB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,mBAAmB,EAAE;YAC9H,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;YACnI,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,6BAA6B,EAAE;YACxE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,EAAE;SAChH,CAAC;QACK,sBAAiB,GAAG;YACzB,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa;SAC/G,CAAC;QACK,sBAAiB,GAAG;YACzB,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,uBAAuB;YACxF,uBAAuB,EAAE,yBAAyB;SACnD,CAAC;QACK,qBAAgB,GAAG;YACxB,EAAE,EAAE,eAAe,EAAE,eAAe;SACrC,CAAC;QACF,wBAAwB;QACxB,gCAAgC;QAChC,KAAK;QACE,eAAU,GAAG;YAClB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;SACtH,CAAC;QACK,oBAAe,GAAG;YACvB,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;SACvC,CAAC;QACF,2KAA2K;QAC3K,uHAAuH;QACvH,yIAAyI;QACzI,oHAAoH;QACpH,8EAA8E;QAC9E,8HAA8H;QAC9H,+JAA+J;QAC/J,kHAAkH;QAClH,sFAAsF;QACtF,mTAAmT;QACnT,sHAAsH;QACtH,qFAAqF;QACrF,uGAAuG;QACvG,2FAA2F;QAC3F,gKAAgK;QAChK,4GAA4G;QAC5G,wFAAwF;QACxF,iDAAiD;QACjD,wFAAwF;QACxF,0GAA0G;QAC1G,gGAAgG;QAChG,mHAAmH;QACnH,+IAA+I;QAC/I,2HAA2H;QAC3H,qKAAqK;QACrK,yKAAyK;QACzK,8KAA8K;QAC9K,wJAAwJ;QACxJ,kGAAkG;QAClG,mGAAmG;QACnG,yKAAyK;QACzK,8KAA8K;QAC9K,mIAAmI;QACnI,kIAAkI;QAClI,sHAAsH;QACtH,4GAA4G;QAC5G,0GAA0G;QAC1G,+HAA+H;QAC/H,qIAAqI;QACrI,6GAA6G;QAC7G,2JAA2J;QAC3J,sRAAsR;QACtR,qIAAqI;QACrI,+IAA+I;QAC/I,oIAAoI;QACpI,oNAAoN;QACpN,iHAAiH;QACjH,qIAAqI;QACrI,sIAAsI;QAE/H,mBAAc,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAClH,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;YACrH,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACpH,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,iBAAiB,EAAE;YACxH,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;YACpH,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;YAC5G,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE;YAC1G,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QAEzG,qBAAgB,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAEvb,aAAQ,GAAe,CAAC,EAAE,SAAS,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QACte,cAAS,GAAe,EAAE,CAAC;QAElC,QAAQ;QACD,iBAAY,GAAG,EAAE,CAAC;QAClB,UAAK,GAAG,IAAI,CAAC;QACb,kBAAa,GAAG,EAAE,CAAC;QAGnB,kBAAa,GAAG,IAAI,CAAC;QAErB,0BAAqB,GAAG,uBAAuB,CAAC,CAAE,0BAA0B;QAC5E,kBAAa,GAAG,KAAK,CAAC;QACtB,cAAS,GAAG,KAAK,CAAC;QAElB,kBAAa,GAAY,KAAK,CAAC;QA+B/B,aAAQ,GAAQ,IAAI,CAAC;QACrB,eAAU,GAAG,IAAI,CAAC;QAClB,aAAQ,GAAG,IAAI,CAAC;QAChB,YAAO,GAAG,CAAC,CAAC;QACZ,aAAQ,GAAG,IAAI,CAAC;QAChB,iBAAY,GAAG,CAAC,CAAC;QACjB,gBAAW,GAAG,IAAI,IAAI,CAAC;QAC9B,iBAAY,GAAiB,IAAI,8CAAO,EAAE,CAAC;QAEpC,yBAAoB,GAAG,CAAC,CAAC;QAyBhC,oBAAoB;QACpB,8CAA8C;QAC9C,qBAAqB;QACrB,sBAAsB;QACtB,kBAAkB;QAElB,+BAA+B;QAE/B,qBAAqB;QACrB,oCAAoC;QACpC,2BAA2B;QAC3B,0BAA0B;QAC1B,KAAK;QACL,sBAAsB;QACtB,sBAAsB;QACtB,KAAK;QACL,aAAa;QACb,WAAW;QAEX,WAAW;QACX,iFAAiF;QACjF,GAAG;QAEH,mBAAmB;QAGZ,sBAAiB,GAAG;YACzB,2CAA2C;YAC3C,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,QAAQ;YAC1D,kBAAkB;YAClB,QAAQ,EAAE,CAAC;YACX,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,SAAS;YACxB,sBAAsB;YACtB,2CAA2C;YAC3C,+BAA+B;YAC/B,QAAQ;YACR,KAAK;YACL,kCAAkC;YAClC,kCAAkC;YAClC,0CAA0C;YAC1C,wEAAwE;YACxE,mHAAmH;YACnH,uBAAuB;YACvB,OAAO;YACP,KAAK;YACL,yCAAyC;YACzC,8BAA8B;YAC9B,gCAAgC;YAEhC,iDAAiD;YACjD,0DAA0D;YAC1D,2CAA2C;YAC3C,oEAAoE;YACpE,QAAQ;YACR,kEAAkE;YAClE,kDAAkD;YAClD,uDAAuD;YACvD,QAAQ;YACR,0DAA0D;YAC1D,gDAAgD;YAChD,mGAAmG;YACnG,sCAAsC;YACtC,QAAQ;YACR,0DAA0D;YAC1D,gDAAgD;YAChD,mGAAmG;YACnG,sCAAsC;YACtC,QAAQ;YACR,aAAa;YACb,mGAAmG;YACnG,sCAAsC;YACtC,QAAQ;YACR,aAAa;YAEb,0DAA0D;YAC1D,2CAA2C;YAC3C,oEAAoE;YACpE,QAAQ;YACR,kEAAkE;YAClE,kDAAkD;YAClD,uDAAuD;YACvD,QAAQ;YACR,0DAA0D;YAC1D,gDAAgD;YAChD,mGAAmG;YACnG,sCAAsC;YACtC,QAAQ;YACR,0DAA0D;YAC1D,gDAAgD;YAChD,mGAAmG;YACnG,sCAAsC;YACtC,QAAQ;YACR,aAAa;YACb,mGAAmG;YACnG,sCAAsC;YACtC,QAAQ;YACR,MAAM;YACN,KAAK;YACL,OAAO,EAAE,UAAU,QAAQ;gBACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACjD,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;oBAChC,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,CAAC,CAAC;oBACJ,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,8BAA8B,EAAE,SAAS,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;SACF,CAAC;QAEK,sBAAiB,GAAG;YACzB,2CAA2C;YAC3C,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,QAAQ;YAC1D,mBAAmB;YACnB,2BAA2B;YAC3B,QAAQ,EAAE,CAAC;YACX,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,+DAA+D;YAC9E,IAAI,EAAE;gBACJ,8CAA8C;gBAC9C,2BAA2B;gBAC3B,8FAA8F;gBAC9F,MAAM;gBACN,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,IAAI;oBACjC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;wBACtB,kGAAkG;wBAClG,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,gCAAgC,EAAE,OAAO,CAAC,CAAC;wBAC/E,EAAE,CAAC,UAAU,EAAE,CAAC;oBAClB,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;wBACnE,IAAI,CAAC,cAAc,EAAE,CAAC;wBACtB,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,wDAAwD,EAAE,OAAO,CAAC,CAAC;wBACvG,EAAE,CAAC,UAAU,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,UAAU,QAAQ;gBACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACjD,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;oBAChC,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,CAAC,CAAC;oBACJ,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,6BAA6B,EAAE,SAAS,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;SACF,CAAC;QAEK,kBAAa,GAAG,EAAE,CAAC,CAAE,2GAA2G;QAChI,yBAAoB,GAAe,EAAE,CAAC,CAAC,2EAA2E;QAElH,gBAAW,GAAG,mEAAU,CAAC,EAAE,CAAC;YACjC,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;QACK,sBAAiB,GAAG,KAAK,CAAC;QAC1B,sBAAiB,GAAG,KAAK,CAAC;QAC3B,iBAAY,GAAG,KAAK,CAAC;QACrB,qBAAgB,GAAG,KAAK,CAAC;QAIzB,4BAAuB,GAAG,KAAK,CAAC;QAChC,0BAAqB,GAAG,KAAK,CAAC;QAC9B,uBAAkB,GAAG,KAAK,CAAC;QAC1B,sBAAiB,GAAe,EAAE,CAAC;QAEpC,iBAAY,GAAQ,EAAE,CAAC;QAI9B,SAAI,GAAG,IAAI,0DAAQ,CAAC,OAAO,CAAC,CAAC;QArL3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QAChG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,kBAAQ;YACtC,EAAE,CAAC,CAAC,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC;gBACzC,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QACG,MAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IA4KM,yCAAQ,GAAf;QAAA,iBAsHC;QArHC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,aAAG;YAC3C,EAAE,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACrB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnC,oBAAoB;YACtB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACzB,CAAC;YACD,+BAA+B;YAC/B,iCAAiC;YACjC,uDAAuD;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,GAAG,IAAI,CAAC;QAEV,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE;YAErC,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAIH,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE;YACtC,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAEjC,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;YACpC,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACrC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;YAClB,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACzB,CAAC,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,eAAe,GAAG,IAAI,2CAAU,CAAC;YACpC,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC;YAC9B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SACd,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,IAAI,4CAAW,CAAC;YAC3B,SAAS,EAAE,iBAAiB;YAC5B,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;QACH,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,4CAAW,EAAE,CAAC;QAE/B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAErC,2BAA2B;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3B,sBAAsB;QACtB,IAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,mBAAmB,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE;YACpD,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,YAAY,GAAG;YACtC,2BAA2B;YAC3B,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QACtD,CAAC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAEpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACtD,uBAAuB;QACvB,8EAA8E;QAC9E,sBAAsB;QACtB,yCAAyC;QAEzC,4CAA4C;QAC5C,2CAA2C;QAC3C,mDAAmD;QACnD,sEAAsE;QACtE,mBAAmB;QAEnB,4EAA4E;QAC5E,iDAAiD;QACjD,uDAAuD;QACvD,0EAA0E;QAC1E,cAAc;QACd,YAAY;QACZ,iBAAiB;QACjB,yCAAyC;QACzC,iDAAiD;QACjD,oEAAoE;QACpE,UAAU;QACV,SAAS;QACT,mBAAmB;QACnB,uCAAuC;QACvC,+CAA+C;QAC/C,kEAAkE;QAClE,QAAQ;QACR,OAAO;QACP,IAAI;QAEJ,CAAC,CAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAED,kDAAiB,GAAjB;QACE,WAAW,CAAC;YACV,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,wBAAwB;YAC9C,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzE,8BAA8B;YAC9B,oBAAoB;YACpB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,kDAAiB,GAAjB;QACE,uBAAuB;QACvB,EAAE,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;IAGD,kDAAiB,GAAjB;QACE,2BAA2B;IAC7B,CAAC;IAED,4CAAW,GAAX,UAAY,EAAE;QACZ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,8BAA8B;IAChC,CAAC;IAED,0CAAS,GAAT,UAAU,EAAE;QACV,4BAA4B;QAC5B,EAAE,CAAC,cAAc,EAAE,CAAC,CAAE,qFAAqF;QAC3G,IAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,0CAAS,GAAT,UAAU,EAAE;QACV,EAAE,CAAC,cAAc,EAAE,CAAC,CAAE,sFAAsF;IAC9G,CAAC;IAED,2HAA2H;IAC3H,mHAAmH;IAEnH,2HAA2H;IAC3H,yCAAQ,GAAR,UAAS,EAAE;QACT,EAAE,CAAC,cAAc,EAAE,CAAC,CAAE,qFAAqF;QAC3G,IAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAqB,CAAC;QACnE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC5B,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1E,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;gBAClC,4GAA4G;gBAC5G,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YACxG,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC/G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC7G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC7G,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC;YAClD,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC5B,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;gBAClC,4GAA4G;gBAC5G,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YACtG,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC7G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC7G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC5B,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;gBAClC,4GAA4G;gBAC5G,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YACvG,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC9G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC7G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAkB,GAAlB,UAAmB,EAAE;QACnB,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,IAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC;QAE3B,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC5B,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1E,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;gBAClC,4GAA4G;gBAC5G,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YACxG,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC/G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC7G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC7G,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC5B,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,iHAAiH;gBACjH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;gBAClC,4GAA4G;gBAC5G,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YACvG,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC9G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC7G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,kCAAkC;YAC5G,CAAC;QACH,CAAC;IACH,CAAC;IAED,8CAAa,GAAb,UAAc,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAgB;QAAlE,iBAgyBC;QA/xBC,EAAE,CAAC,CAAC,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC;YACtC,UAAU,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACrC,MAAM,EAAE,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,8CAA8C,EAAE,OAAO,CAAC,CAAC;YACpG,MAAM,CAAC;QACT,CAAC;QAED,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACrC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;gBAC7C,YAAY,EAAE,CAAC;QACnB,CAAC;QACD,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4DAA4D,EAAE,OAAO,CAAC,CAAC;YAClH,MAAM,CAAC;QACT,CAAC;QACD,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACrC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;gBAC3C,UAAU,EAAE,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,0DAA0D,EAAE,OAAO,CAAC,CAAC;YAChH,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;YACrD,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACrC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC3F,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,6DAA6D,EAAE,OAAO,CAAC,CAAC;oBACnH,MAAM,CAAC;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;YAC1B,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACrC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACjF,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,sFAAsF,EAAE,OAAO,CAAC,CAAC;oBAC5I,MAAM,CAAC;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAE,+BAA+B;QAClE,IAAI,UAAU,CAAC;QACf,IAAI,QAAQ,CAAC;QAEb,IAAI,WAAW,GAAG,OAAO,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI;eAC/E,UAAU,CAAC,IAAI,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;QACjF,IAAI,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI;eAC9E,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAC/D,IAAI,SAAS,GAAG,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI;eAClF,UAAU,CAAC,SAAS,KAAK,EAAE,GAAG,UAAU,CAAC,SAAS;YACrD,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,YAAY,GAAG,EAAE,GAAG,EAAE,CAAC;QAE/D,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;YAC1B,IAAI,MAAM,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,GAAG,6BAA6B,GAAG,GAAG,CAAC;YAC3E,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,GAAG,0DAA0D,CAAC;YACtE,CAAC;YACD,IAAM,WAAS,GAAG,IAAI,KAAK,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,4CAAW,CAAC;gBACzB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,WAAS;gBAChB,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAE5D,WAAS,CAAC,MAAM,GAAG;gBACjB,QAAQ,CAAC,KAAK,CAAC,WAAS,CAAC,CAAC;gBAC1B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC;YACF,WAAS,CAAC,GAAG,GAAG,MAAM,CAAC;QAEzB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;YACjC,IAAM,MAAM,GAAG,CAAC,MAAM,IAAI,SAAS,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,GAAG,4CAA4C;kBAC3I,6BAA6B,CAAC;YAElC,IAAM,WAAS,GAAG,IAAI,KAAK,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,4CAAW,CAAC;gBACzB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,WAAS;gBAChB,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAE5D,WAAS,CAAC,MAAM,GAAG;gBACjB,QAAQ,CAAC,KAAK,CAAC,WAAS,CAAC,CAAC;gBAC1B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC;YACF,WAAS,CAAC,GAAG,GAAG,MAAM,CAAC;QAEzB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC;YAChC,oBAAoB;YACpB,QAAQ,GAAG,IAAI,2CAAU,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,IAAI,UAAU,GAAG,GAAG,CAAC;YACrB,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC;gBACnC,UAAU,GAAG,GAAG,CAAC;YACnB,CAAC;YACD,IAAM,YAAY,GAAG,IAAI,2CAAU,CAAC;gBAClC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,sIAAsI;gBACtI,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,WAAW;gBACvB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ,GAAG,OAAO;gBACxB,EAAE,EAAE,QAAQ,GAAG,OAAO;aACvB,CAAC,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9E,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;YACnC,QAAQ,GAAG,IAAI,2CAAU,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,IAAM,UAAU,GAAG,SAAS,CAAC;YAC7B,IAAM,YAAY,GAAG,IAAI,2CAAU,CAAC;gBAClC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChD,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ,GAAG,OAAO;gBACxB,EAAE,EAAE,QAAQ,GAAG,OAAO;aACvB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC;YAC1C,QAAQ,GAAG,IAAI,2CAAU,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,IAAI,UAAU,GAAG,gBAAgB,CAAC;YAClC,IAAM,YAAY,GAAG,IAAI,2CAAU,CAAC;gBAClC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChD,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ,GAAG,OAAO;gBACxB,EAAE,EAAE,QAAQ,GAAG,OAAO;aACvB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;YACjC,QAAQ,GAAG,IAAI,2CAAU,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,IAAI,UAAU,GAAG,OAAO,CAAC;YACzB,IAAM,YAAY,GAAG,IAAI,2CAAU,CAAC;gBAClC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,OAAO,EAAE,IAAI,CAAC,iBAAiB,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACnI,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,WAAW;gBACvB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ,GAAG,OAAO;gBACxB,EAAE,EAAE,QAAQ,GAAG,OAAO;aACvB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC;YAC/B,QAAQ,GAAG,IAAI,2CAAU,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAM,YAAY,GAAG,IAAI,2CAAU,CAAC;gBAClC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChD,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ,GAAG,OAAO;gBACxB,EAAE,EAAE,QAAQ,GAAG,OAAO;aACvB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;YACnC,QAAQ,GAAG,IAAI,2CAAU,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,IAAI,UAAU,GAAG,SAAS,CAAC;YAC3B,IAAM,YAAY,GAAG,IAAI,2CAAU,CAAC;gBAClC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChD,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ,GAAG,OAAO;gBACxB,EAAE,EAAE,QAAQ,GAAG,OAAO;aACvB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC;YAC1C,QAAQ,GAAG,IAAI,2CAAU,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,IAAI,UAAU,GAAG,gBAAgB,CAAC;YAClC,IAAM,YAAY,GAAG,IAAI,2CAAU,CAAC;gBAClC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChD,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ,GAAG,OAAO;gBACxB,EAAE,EAAE,QAAQ,GAAG,OAAO;aACvB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC;YACtC,QAAQ,GAAG,IAAI,2CAAU,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;YACH,kCAAkC;YAClC,IAAI,UAAU,GAAG,GAAG,CAAC;YACrB,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC;gBACzC,UAAU,GAAG,GAAG,CAAC;YACnB,CAAC;YACD,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;YACvF,IAAM,YAAY,GAAG,IAAI,2CAAU,CAAC;gBAClC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,OAAO,EAAE,IAAI,CAAC,iBAAiB,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACnI,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,WAAW;gBACvB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ,GAAG,OAAO;gBACxB,EAAE,EAAE,QAAQ,GAAG,OAAO;aACvB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,IAAM,MAAM,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,6BAA6B,GAAG,GAAG,CAAC;YAE/E,IAAM,WAAS,GAAG,IAAI,KAAK,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,4CAAW,CAAC;gBACzB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,WAAS;gBAChB,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,4CAAW,CAAC;gBAC3B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,QAAQ,GAAG,QAAQ;gBACvB,aAAa,EAAE,UAAU,GAAG;oBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpH,CAAC;aACF,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;YAE5D,WAAS,CAAC,MAAM,GAAG;gBACjB,QAAQ,CAAC,KAAK,CAAC,WAAS,CAAC,CAAC;gBAC1B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC;YACF,WAAS,CAAC,GAAG,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACrC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;QACtH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE1C,wCAAwC;QACxC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE;YAC1B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE;YAC1B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE;YACrB,yBAAyB;YACzB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAI,wBAAwB;YACrF,8CAA8C;YAC9C,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE;YACzB,yBAAyB;YACzB,EAAE,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE;YACxB,EAAE,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;gBAClC,8EAA8E;gBAC9E,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACjC,CAAC;YACD,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;gBACrB,mBAAmB;gBACnB,IAAM,OAAO,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC3C,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;gBACzD,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;gBACvD,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC;oBAE1B,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa;oBACnE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa;iBACpE,CAAC,CAAC;gBACH,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACvB,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC5B,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,UAAC,CAAC;YAC3B,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;gBACrB,6BAA6B;gBAC7B,kCAAkC;YACpC,CAAC;YACD,yBAAyB;QAC3B,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,UAAC,CAAC;YACzB,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;gBAGrB,UAAU,CAAC,QAAQ,CAAC;oBAClB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa;oBACnE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa;iBACpE,CAAC,CAAC;gBACH,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,6BAA6B;gBAC7B,KAAI,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC9D,KAAI,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;gBAChE,gCAAgC;gBAChC,gCAAgC;gBAEhC,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;gBAC/E,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;gBAC/E,2EAA2E;gBAC3E,2EAA2E;gBAC3E,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrB,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5B,CAAC;YACD,4CAA4C;QAC9C,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAClC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAE,CAAC,KAAK,GAAG,CAAC,CAAC;YACpD,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAE,CAAC,KAAK,GAAG,CAAC,CAAC;YACpD,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAE,CAAC,KAAK,GAAG,CAAC,CAAC;YACxD,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9E,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC9C,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAE9B,2BAA2B;QAC3B,UAAU;QACV,aAAa;QACb,aAAa;QACb,aAAa;QACb,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,aAAa;QACb,KAAK;QAEL,IAAM,cAAc,GAAG;YACrB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,CAAC;SACL,CAAC;QAEF,6GAA6G;QAC7G,IAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAC7B,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC;YACxB,iBAAiB,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,YAAY,CAAC;YAC1D,iBAAiB,GAAG,IAAI,CAAC;QAC3B,IAAI;YACF,iBAAiB,GAAG,IAAI,CAAC;QAE3B,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnJ,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG;YAC7B,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,GAAG,QAAQ;YACrG,QAAQ,EAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAChG,aAAa,EAAE,YAAY;YAC3B,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI;YACzG,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,kBAAkB,EAAE,UAAU,CAAC,gBAAgB;YAC/C,SAAS,EAAE,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;YACvG,YAAY,EAAE,UAAU,CAAC,UAAU;YACnC,WAAW,EAAE,CAAC,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,GAAG,UAAU,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACtG,aAAa,EAAE,CAAC,OAAO,UAAU,CAAC,WAAW,KAAK,WAAW,GAAG,UAAU,CAAC,WAAW,GAAG,uBAAuB,CAAC;YACjH,aAAa,EAAE,CAAC,OAAO,UAAU,CAAC,WAAW,KAAK,WAAW,GAAG,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC;YACpG,WAAW,EAAE,CAAC,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,GAAG,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;YACtF,MAAM,EAAE,CAAC,OAAO,UAAU,CAAC,IAAI,KAAK,WAAW,GAAG,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;YACvE,MAAM,EAAE,CAAC,OAAO,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC;YACxG,WAAW,EAAE,CAAC,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,GAAG,UAAU,CAAC,SAAS,GAAG,iBAAiB,CAAC;YACrG,cAAc,EAAE,CAAC,OAAO,UAAU,CAAC,YAAY,KAAK,WAAW,GAAG,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;YAClG,iBAAiB,EAAE,CAAC,OAAO,UAAU,CAAC,gBAAgB,KAAK,WAAW,GAAG,UAAU,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC3G,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC;YAEgB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;QAE5G,CAAC;QAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjB,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;YACjB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;YACrG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;YACrG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;YACjG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC;YACf,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;YACjG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YAC3F,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;YACpH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACrC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,aAAa,CAAE,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;QAClG,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;YACnB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,mBAAmB,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC;YAC9G,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QAChH,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC;YACtB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAC1G,uHAAuH;YACpG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YAC3F,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC;YAC1B,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YAC3F,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtF,2BAA2B;YAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;YACxE,oHAAoH;YACpH,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAM,cAAc,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,WAAW,CAAE,CAAC;gBAC3F,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC9B,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzB,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,qBAAqB;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,SAAS;wBAClE,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC5D,oDAAoD;wBACpD,IAAM,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC1E,4EAA4E;oBAC9E,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC5B,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC1B,UAAU,CAAC;wBACT,EAAE,CAAC,cAAc,EAAE,CAAC;oBACtB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC;YACH,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;gBACtE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBAC9D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,KAAK,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;gBAC5H,sHAAsH;gBACnG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,aAAa,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC;YAC1H,CAAC;YACD,uHAAuH;QACzH,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC;YAChB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC;YAC1B,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;YACnB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QAChH,CAAC;QAED,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IACD,2CAAU,GAAV,UAAW,EAAE,EAAE,KAAK,EAAE,QAAQ;QAC5B,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,QAAQ;YACzB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,6CAA6C;QAC9N,CAAC,CAAC,CAAC;YACD,IAAM,gBAAgB,GAAG,QAAQ,CAAC;YAClC,IAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAM,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC5E,IAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;YAChD,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACR,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;YACxC,CAAC;YAED,8BAA8B;YAC9B,EAAE,CAAC,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBAChC,IAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;gBACrF,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtC,IAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;gBACtE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,yCAAQ,GAAR;QACE,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAM,QAAQ,GAAG,gEAAgE,CAAC;QAClF,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,4CAAW,GAAX,UAAY,WAAW;QACrB,2BAA2B;QAC3B,IAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACtC,IAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAEnC,0BAA0B;QAC1B,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjB,KAAK,SAAS;gBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,KAAK,CAAC;YACR,KAAK,UAAU;gBACb,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,KAAK,CAAC;YACR,KAAK,aAAa;gBAChB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,KAAK,CAAC;YACR,KAAK,YAAY;gBACf,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,KAAK,CAAC;QACV,CAAC;QAED,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACpD,IAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QAEvD,6DAA6D;QAC7D,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;YACpB,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,+FAA+F;YAC/F,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/F,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9C,IAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtE,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9C,IAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtE,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAAS,GAAT,UAAU,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,YAAoB;QAApB,mDAAoB;QAC/C,yCAAyC;QACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE/B,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACX,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;QACD,IAAM,MAAM,GAAG,IAAI,6CAAY,CAAC;YAC9B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,MAAM,EAAE,YAAY,GAAG,EAAE,GAAG,CAAC;YAC7B,gCAAgC;YAChC,iCAAiC;YACjC,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,IAAI;YACR,SAAS,EAAE,YAAY;YACvB,aAAa,EAAE,UAAU,GAAG;gBAC1B,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACvF,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE;YACpB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACrB,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE;YAChC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC1B,mBAAmB;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE;YACnB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACzB,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE;YACrB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjB,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE;YACpB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjB,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvB,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;oBACpB,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,wDAAuB,GAAvB,UAAwB,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;QACpE,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrC,IAAM,YAAY,GAAG,UAAU,CAAC;QAChC,IAAM,aAAa,GAAG,WAAW,CAAC;QAElC,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC;QAChB,CAAC;QACD,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3C,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QAC5C,CAAC;QAED,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7C,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC;YACL,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,QAAQ;SACZ,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,gDAAe,GAAf,UAAgB,SAAS,EAAE,OAAO;QAAlC,iBAo7CC;QAn7CC,EAAE;QACF,CAAC,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;QACxD,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAElE,UAAU,CAAC;YACT,CAAC,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YACxD,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QACpE,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,mEAAmE;QACnE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;QAErD,sDAAsD;QACtD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,cAAc,CAAC;QACnB,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClB,KAAK,QAAQ;gBACX,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACpC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;gBAC9D,KAAK,CAAC;YACR,KAAK,OAAO;gBACV,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC;gBACnC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,MAAM;gBACT,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;gBAClC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,OAAO;gBACV,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAE,8BAA8B;gBACnE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAE,8BAA8B;gBACrE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,gBAAgB;gBACnB,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAE,8BAA8B;gBACrE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,OAAO;gBACV,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAE,8BAA8B;gBACnE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,KAAK;gBACR,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAE,8BAA8B;gBACjE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAE,8BAA8B;gBACjE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,gBAAgB;gBACnB,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAE,8BAA8B;gBAC3E,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,YAAY;gBACf,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAE,8BAA8B;gBACxE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAE,8BAA8B;gBACrE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACvD,KAAK,CAAC;QACV,CAAC;QACD,IAAI,cAAc,GAAG,KAAK,CAAC;gCAElB,CAAC;YACR,iCAAiC;YACjC,IAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM;mBACpE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBACzF,SAAS,GAAG,yDAAyD,CAAC;gBACtE,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACnC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjF,SAAS,GAAG,sCAAsC,CAAC;gBACnD,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACnC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC/F,SAAS,GAAG,6CAA6C,CAAC;gBAC1D,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACnC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,SAAS,GAAG,2BAA2B,CAAC;YAC1C,CAAC;YAED,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC;gBACnG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACrC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;YAED,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;gBACvC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;YACrC,CAAC;YAED,mEAAmE;YACnE,qEAAqE;YACrE,uEAAuE;YACvE,iDAAiD;YACjD,qDAAqD;YACrD,yDAAyD;YACzD,wEAAwE;YACxE,kCAAkC;YAClC,QAAQ;YACR,mDAAmD;YAEnD,IAAI;YAEJ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxD,eAAe,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChD,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBAC/C,eAAe,CAAC,SAAS,GAAG,kBAAkB,CAAC;gBACjD,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC;oBACnD,eAAe,CAAC,SAAS,GAAG,eAAe,CAAC;gBAC9C,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;oBAC9C,eAAe,CAAC,SAAS,GAAG,UAAU,CAAC;gBACzC,CAAC;gBAED,wCAAwC;gBACxC,mFAAmF;gBACnF,SAAS;gBACT,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;oBACvC,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;gBAC/E,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACnD,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;gBAC/E,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBAC5D,CAAC;gBAED,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;gBAE7D,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAEjE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC;oBAC9C,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,iGAAiG;YACjG,4DAA4D;YAC5D,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAEjI,wEAAwE;gBACxE,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACzD,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBACrE,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACjC,IAAM,cAAY,GAAG,IAAI,OAAO,CAAC,gBAAgB,EAAE;oBACjD,YAAY,EAAE,IAAI;iBACnB,CAAC,CAAC;gBACH,cAAY,CAAC,YAAY,GAAG;oBAC1B,EAAE,CAAC,WAAW,CAAC,cAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClD,CAAC,CAAC;gBACF,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBAC3C,cAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,uCAAuC;gBACzE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,cAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAE,uCAAuC;gBAC/E,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAE,4BAA4B;YACxE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBAEpD,IAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxD,eAAe,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC/B,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,+CAA+C,CAAC,CAAC;gBACvF,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACrD,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACzC,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACzC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC5C,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3C,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAEvC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBACzC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAEtD,IAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxD,eAAe,CAAC,IAAI,GAAG,MAAM,CAAC;gBAC9B,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,6CAA6C,CAAC,CAAC;gBACrF,eAAe,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBACrD,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC;gBACtE,8BAA8B;gBAC9B,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE3C,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,OAAK,eAAe,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;oBACrD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,OAAK,eAAe,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC;oBAC7C,MAAM,CAAC,IAAI,GAAG,OAAK,eAAe,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC;oBAC5C,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAExC,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,aAAa,EAAE,aAAa,CAAC,CAAC;oBACvD,2EAA2E;gBAC7E,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC;gBAC/C,IAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3D,kBAAkB,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;gBAC5E,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAE1C,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC5C,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3D,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;gBACzC,IAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3D,kBAAkB,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;gBAC5E,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;gBAC3D,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAE1C,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC5C,EAAE,CAAC,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,aAAa,CAAE,CAAC,OAAO,CAAC;wBAC/E,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBACtD,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC;gBAE7C,IAAM,oBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3D,oBAAkB,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrC,oBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,oBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;gBAC5E,SAAS,CAAC,WAAW,CAAC,oBAAkB,CAAC,CAAC;gBAE1C,oBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC5C,EAAE,CAAC,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,aAAa,CAAE,CAAC,OAAO,KAAK,oBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC7F,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,aAAa,CAAE,CAAC,KAAK,EAAE,CAAC;oBAC/E,CAAC;oBACD,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YA0CD,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAChD,EAAE,CAAC,CAAC,OAAK,WAAW,CAAC,QAAQ,KAAK,OAAO;uBACpC,OAAK,WAAW,CAAC,QAAQ,KAAK,kCAAkC;uBAChE,OAAK,WAAW,CAAC,QAAQ,KAAK,wBAAwB,CAAC,CAAC,CAAC;oBAE5D,8DAA8D;oBAE9D,8EAA8E;oBAC9E,qEAAqE;oBACrE,oDAAoD;oBAEpD,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;oBAC1D,+EAA+E;oBAC/E,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAEjD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;oBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;oBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;oBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;oBAC9C,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;oBAC7B,qEAAqE;oBAErE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;oBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;oBAE1C,IAAM,YAAY,GAAG;wBACnB,oCAAoC;wBACpC,6CAA6C;wBAC7C,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE;wBACpD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE;wBACpD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;wBACjD,2CAA2C;qBAC5C,CAAC;oBAEF,YAAY,CAAC,OAAO,CAAC,iBAAO;wBAC1B,mDAAmD;wBACnD,mCAAmC;wBACnC,8BAA8B;wBAC9B,kCAAkC;wBAClC,yCAAyC;wBAEzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;wBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;wBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;wBAC/B,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;wBAC1E,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;wBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;wBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;4BACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;gCACxB,EAAE,CAAC,gBAAgB,EAAE,CAAC;4BACxB,CAAC;4BAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;gCAC/B,4BAA4B;gCAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC;oCACnF,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;oCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;oCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;oCACjC,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCAC5E,CAAC;gCACD,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC;oCACxF,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;oCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;oCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;oCACjC,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCAC5E,CAAC;gCACD,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oCACxC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;gCAC3B,CAAC;4BACH,CAAC;4BAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;gCAC/B,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC;gCACtB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;gCAClC,EAAE,CAAC,gBAAgB,CAAoB,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;gCACpF,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gCAC3C,CAAC,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;4BAC9C,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;oBAEzC,2CAA2C;oBAC3C,6DAA6D;oBAC7D,8BAA8B;oBAC9B,6BAA6B;oBAC7B,oCAAoC;oBACpC,mCAAmC;oBACnC,uCAAuC;oBACvC,MAAM;oBACN,mCAAmC;oBACnC,MAAM;gBACR,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAClD,mHAAmH;gBAEnH,8DAA8D;gBAC9D,8EAA8E;gBAC9E,qEAAqE;gBACrE,oDAAoD;gBAEpD,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEjD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC;gBAErC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;gBAE1C,IAAM,YAAY,GAAG;oBACnB,oCAAoC;oBACpC,6CAA6C;oBAC7C,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,KAAK,EAAE;oBACvD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,KAAK,EAAE;oBACxD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE;oBACpD,gEAAgE;oBAChE,4DAA4D;oBAC5D,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,YAAY,CAAC,OAAO,CAAC,iBAAO;oBAC1B,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,KAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO;2BAC3D,KAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,kCAAkC,CAAC,CAAC,CAAC;wBACtE,MAAM,CAAC;oBACT,CAAC;oBACD,mDAAmD;oBACnD,mCAAmC;oBACnC,8BAA8B;oBAC9B,kCAAkC;oBAClC,yCAAyC;oBAEzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBAC5C,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAEzC,4CAA4C;gBAE5C,6DAA6D;gBAC7D,sCAAsC;gBACtC,mCAAmC;gBACnC,MAAM;gBAEN,2BAA2B;gBAC3B,IAAI;YACN,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC;gBAEjD,8DAA8D;gBAE9D,8EAA8E;gBAC9E,qEAAqE;gBAErE,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAEhD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;gBAE5B,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;gBAE1C,IAAM,WAAW,GAAG;oBAClB,4CAA4C;oBAC5C,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,WAAW,CAAC,OAAO,CAAC,iBAAO;oBACzB,mDAAmD;oBACnD,mCAAmC;oBACnC,8BAA8B;oBAC9B,kCAAkC;oBAClC,yCAAyC;oBACzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;4BACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;4BACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAEzC,4CAA4C;gBAC5C,6DAA6D;gBAC7D,6BAA6B;gBAC7B,uCAAuC;gBACvC,MAAM;gBACN,mCAAmC;gBACnC,MAAM;YACR,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBAEpD,8DAA8D;gBAE9D,8EAA8E;gBAC9E,qEAAqE;gBAErE,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAEnD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;gBAE/B,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;gBAE1C,IAAM,cAAc,GAAG;oBACrB,+CAA+C;oBAC/C,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,cAAc,CAAC,OAAO,CAAC,iBAAO;oBAC5B,mDAAmD;oBACnD,mCAAmC;oBACnC,8BAA8B;oBAC9B,kCAAkC;oBAClC,yCAAyC;oBAEzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;4BACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;4BACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAEzC,4CAA4C;gBAC5C,6DAA6D;gBAC7D,6BAA6B;gBAC7B,uCAAuC;gBACvC,MAAM;gBACN,mCAAmC;gBACnC,MAAM;YACR,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBAEpD,8DAA8D;gBAE9D,8EAA8E;gBAC9E,qEAAqE;gBAErE,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAE1D,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC;gBAEtC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;gBAG1C,IAAM,cAAc,GAAG;oBACrB,sDAAsD;oBACtD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,cAAc,CAAC,OAAO,CAAC,iBAAO;oBAC5B,mDAAmD;oBACnD,mCAAmC;oBACnC,8BAA8B;oBAC9B,kCAAkC;oBAClC,yCAAyC;oBAEzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;4BACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;4BACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAEzC,4CAA4C;gBAC5C,6DAA6D;gBAC7D,6BAA6B;gBAC7B,uCAAuC;gBACvC,MAAM;gBACN,mCAAmC;gBACnC,MAAM;YACR,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBAElD,8DAA8D;gBAE9D,8EAA8E;gBAC9E,qEAAqE;gBAErE,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEjD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;gBAE7B,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;gBAE1C,IAAM,YAAY,GAAG;oBACnB,6CAA6C;oBAC7C,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,YAAY,CAAC,OAAO,CAAC,iBAAO;oBAC1B,mDAAmD;oBACnD,mCAAmC;oBACnC,8BAA8B;oBAC9B,kCAAkC;oBAClC,yCAAyC;oBAEzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;4BACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;4BACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAEzC,4CAA4C;gBAC5C,6DAA6D;gBAC7D,6BAA6B;gBAC7B,uCAAuC;gBACvC,MAAM;gBACN,mCAAmC;gBACnC,MAAM;YACR,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC;gBAEhD,8DAA8D;gBAE9D,8EAA8E;gBAC9E,qEAAqE;gBACrE,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAE/C,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;gBAE3B,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;gBAE1C,IAAM,UAAU,GAAG;oBACjB,2CAA2C;oBAC3C,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,UAAU,CAAC,OAAO,CAAC,iBAAO;oBACxB,mDAAmD;oBACnD,mCAAmC;oBACnC,8BAA8B;oBAC9B,kCAAkC;oBAClC,yCAAyC;oBAEzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;4BACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;4BACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAEzC,4CAA4C;gBAC5C,6DAA6D;gBAC7D,6BAA6B;gBAC7B,uCAAuC;gBACvC,MAAM;gBACN,mCAAmC;gBACnC,MAAM;YACR,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAE1D,8DAA8D;gBAE9D,8EAA8E;gBAC9E,qEAAqE;gBAErE,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAE1D,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC;gBAEtC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;gBAG1C,IAAM,oBAAoB,GAAG;oBAC3B,sDAAsD;oBACtD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,oBAAoB,CAAC,OAAO,CAAC,iBAAO;oBAClC,mDAAmD;oBACnD,mCAAmC;oBACnC,8BAA8B;oBAC9B,kCAAkC;oBAClC,yCAAyC;oBAEzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;4BACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;4BACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAEzC,4CAA4C;gBAC5C,6DAA6D;gBAC7D,6BAA6B;gBAC7B,uCAAuC;gBACvC,MAAM;gBACN,mCAAmC;gBACnC,MAAM;YACR,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAEvD,8DAA8D;gBAE9D,8EAA8E;gBAC9E,qEAAqE;gBAErE,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAEvD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC;gBAEnC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,YAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,YAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,YAAU,CAAC,CAAC;gBAE1C,IAAM,iBAAiB,GAAG;oBACxB,mDAAmD;oBACnD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,iBAAiB,CAAC,OAAO,CAAC,iBAAO;oBAC/B,mDAAmD;oBACnD,mCAAmC;oBACnC,8BAA8B;oBAC9B,kCAAkC;oBAClC,yCAAyC;oBAEzC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,YAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;4BACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;4BACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAEzC,4CAA4C;gBAC5C,6DAA6D;gBAC7D,6BAA6B;gBAC7B,uCAAuC;gBACvC,MAAM;gBACN,mCAAmC;gBACnC,MAAM;YACR,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBAEpD,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACxD,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAEnD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,2FAA2F,CAAC,CAAC;gBAC1H,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;gBAE/B,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEtC,IAAM,aAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjD,aAAU,CAAC,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBAEzE,iBAAiB,CAAC,WAAW,CAAC,aAAU,CAAC,CAAC;gBAE1C,IAAM,cAAc,GAAG;oBACrB,+CAA+C;oBAC/C,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE;iBAClD,CAAC;gBAEF,cAAc,CAAC,OAAO,CAAC,iBAAO;oBAE5B,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC/C,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACvC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAEhE,aAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEnC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;4BACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;4BACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gCACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gCAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gCAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;YAC3C,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC1C,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,6CAA6C;gBAE7C,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,OAAK,UAAU,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;oBAChD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,OAAK,UAAU,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC;oBACxC,MAAM,CAAC,IAAI,GAAG,OAAK,UAAU,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC;oBACtC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAExC,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;gBACH,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrD,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC;gBAEjD,IAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3D,kBAAkB,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;gBAC5E,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAE1C,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC5C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC1C,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,sEAAsE,CAAC,CAAC;gBAC/G,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE3C,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,OAAK,UAAU,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;oBAChD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,OAAK,UAAU,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC;oBACxC,MAAM,CAAC,IAAI,GAAG,OAAK,UAAU,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC;oBACtC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,GAAE;gBAC1C,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;gBAC/C,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,2EAA2E,CAAC,CAAC;gBACpH,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE3C,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,OAAK,gBAAgB,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;oBACtD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,OAAK,gBAAgB,CAAC,GAAC,CAAC,CAAC;oBACxC,MAAM,CAAC,IAAI,GAAG,OAAK,gBAAgB,CAAC,GAAC,CAAC,CAAC;oBACvC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,YAAW;gBACnD,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC;gBACjD,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAElE,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,OAAK,iBAAiB,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;oBACvD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,OAAK,iBAAiB,CAAC,GAAC,CAAC,CAAC;oBACzC,MAAM,CAAC,IAAI,GAAG,OAAK,iBAAiB,CAAC,GAAC,CAAC,CAAC;oBACxC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,YAAW;gBACnD,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;gBACH,8BAA8B;gBAC9B,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrD,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC;gBACjD,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE3C,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,OAAK,iBAAiB,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;oBACvD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,OAAK,iBAAiB,CAAC,GAAC,CAAC,CAAC;oBACzC,MAAM,CAAC,IAAI,GAAG,OAAK,iBAAiB,CAAC,GAAC,CAAC,CAAC;oBACxC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY;gBACrD,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;gBACH,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrD,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;gBAC/C,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,6CAA6C;gBAE7C,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,OAAK,cAAc,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;oBACpD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,OAAK,cAAc,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC;oBAC5C,MAAM,CAAC,IAAI,GAAG,OAAK,cAAc,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC;oBAC1C,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY;gBACrD,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;gBACH,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrD,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;gBAChD,IAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE3C,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,OAAK,gBAAgB,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;oBACtD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,OAAK,gBAAgB,CAAC,GAAC,CAAC,CAAC;oBACxC,MAAM,CAAC,IAAI,GAAG,OAAK,gBAAgB,CAAC,GAAC,CAAC,CAAC;oBACvC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,YAAW;gBACnD,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;gBAC9C,cAAc,GAAG,IAAI,CAAC;gBAEtB,IAAM,oBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3D,oBAAkB,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrC,oBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,oBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;gBAC/F,oBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC9C,SAAS,CAAC,WAAW,CAAC,oBAAkB,CAAC,CAAC,CAAC,WAAW;gBAEtD,WAAW;gBACX,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3C,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACnC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;gBAEzC,oBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAE5C,IAAI,eAAe,GAAG,KAAK,CAAC;oBAC5B,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;wBACnC,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACnC,eAAe,GAAG,IAAI,CAAC;4BACvB,KAAK,CAAC;wBACR,CAAC;oBACH,CAAC;oBAED,EAAE,CAAC,CAAC,oBAAkB,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC;wBAClD,oBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;wBACnC,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,8DAA8D,EAAE,OAAO,CAAC,CAAC;wBAC7G,MAAM,CAAC;oBACT,CAAC;oBAED,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;wBACnC,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,oBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;4BACzE,oBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;4BACnC,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,8EAA8E,EAAE,OAAO,CAAC,CAAC;4BAClI,MAAM,CAAC;wBACT,CAAC;oBACH,CAAC;oBAED,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/D,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC7C,EAAE,CAAC,aAAa,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,SAAS,CAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAElG,EAAE,EAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;wBACzB,EAAE,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACnD,cAAc,GAAG,IAAI,CAAC;gBACtB,IAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3D,kBAAkB,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;gBAC/F,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC9C,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACtD,uDAAuD;gBACvD,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW;gBAEtD,WAAW;gBACX,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3C,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACnC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;gBAEzC,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC5C,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC;gBACxE,IAAM,kBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,kBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,kBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,kBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACjD,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;gBACpB,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gBAC9B,kBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAEtC,OAAK,aAAa,CAAC,OAAO,CAAC,eAAK;oBAC9B,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;oBAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBACzB,kBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,CAAC,kBAAgB,CAAC,CAAC;gBAExC,kBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACtC,kBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;oBACnC,2EAA2E;gBAC7E,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC;gBACxE,IAAM,kBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,kBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,kBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,kBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE3C,EAAE,CAAC,gBAAgB,CAAC,kBAAgB,CAAC,CAAC;gBACtC,8BAA8B;gBAC9B,oDAAoD;gBACpD,uBAAuB;gBACvB,iCAAiC;gBACjC,yCAAyC;gBAEzC,qDAAqD;gBACrD,wBAAwB;gBACxB,uCAAuC;gBACvC,0CAA0C;gBAE1C,wDAAwD;gBACxD,2BAA2B;gBAC3B,wCAAwC;gBACxC,6CAA6C;gBAE7C,wCAAwC;gBACxC,qDAAqD;gBACrD,+CAA+C;gBAC/C,yDAAyD;gBACzD,4BAA4B;gBAC5B,8CAA8C;gBAC9C,8CAA8C;gBAC9C,6BAA6B;gBAC7B,MAAM;gBACN,4BAA4B;gBAC5B,gCAAgC;gBAChC,gCAAgC;gBAChC,aAAa;gBACb,iCAAiC;gBACjC,gCAAgC;gBAChC,MAAM;gBACN,0CAA0C;gBAC1C,MAAM;gBAEN,2DAA2D;gBAC3D,8BAA8B;gBAC9B,yCAAyC;gBACzC,gDAAgD;gBAEhD,0DAA0D;gBAC1D,6BAA6B;gBAC7B,6CAA6C;gBAC7C,+CAA+C;gBAE/C,2DAA2D;gBAC3D,8BAA8B;gBAC9B,wDAAwD;gBACxD,gDAAgD;gBAEhD,SAAS,CAAC,WAAW,CAAC,kBAAgB,CAAC,CAAC;gBAExC,kBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,0DAA0D;oBAC1D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACtC,kBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;oBACnC,2EAA2E;gBAC7E,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBAC9E,IAAM,kBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1D,kBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,kBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;gBACvF,kBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE3C,EAAE,CAAC,gBAAgB,CAAC,kBAAgB,CAAC,CAAC;gBAEtC,SAAS,CAAC,WAAW,CAAC,kBAAgB,CAAC,CAAC;gBAExC,kBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC1C,0DAA0D;oBAC1D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACtC,kBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;oBACnC,2EAA2E;gBAC7E,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;gBAEzC,IAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxD,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBAC5D,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;gBACtC,eAAe,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACnD,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAEzC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACnD,IAAM,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChE,sBAAsB,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBAClE,sBAAsB,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;gBAC5C,sBAAsB,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;gBAChD,sBAAsB,CAAC,SAAS,GAAG,gBAAgB,CAAC;gBACpD,sBAAsB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,KAAK;oBAC9D,EAAE,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACrD,IAAM,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChE,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,sBAAsB,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBAC3E,sBAAsB,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3C,sBAAsB,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;gBAChD,sBAAsB,CAAC,SAAS,GAAG,kBAAkB,CAAC;gBACtD,sBAAsB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,KAAK;oBAC9D,EAAE,CAAC,wBAAwB,EAAE,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBAGN,EAAE,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC5D,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC1D,CAAC;gBACD,IAAI,CAAC,CAAC;oBACJ,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvD,CAAC;gBACD,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBAC9C,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpD,CAAC;gBAED,EAAE,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC;oBAC3B,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnE,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;wBAC7D,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,KAAK;4BACzD,IAAM,SAAS,GAAsB,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC;4BACzD,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;4BACpE,EAAE,CAAC,kBAAkB,EAAE,CAAC;wBAC1B,CAAC,CAAC,CAAC;oBACL,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE;4BAC1C,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACjE,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;gBAC5E,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7C,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC;oBACvC,oDAAoD;oBACpD,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC;wBACxB,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACjD,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,YAAY,CAAC;wBAC1D,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACjD,IAAI;wBACF,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAEjD,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC;wBACzD,IAAI,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;wBACjC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;4BACZ,CAAC,CAAC,cAAc,EAAE,CAAC;wBACrB,CAAC;oBACH,CAAC,CAAC,CAAC;gBAEL,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBAClD,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACjD,CAAC;gBAED,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC;oBACvF,kBAAkB,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACzE,CAAC;gBAED,yDAAyD;gBACzD,4CAA4C;gBAC5C,yEAAyE;gBACzE,IAAI;gBACJ,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAE1C,mEAAmE;gBACnE,mEAAmE;gBACnE,qEAAqE;gBACrE,mDAAmD;gBACnD,qDAAqD;gBACrD,sEAAsE;gBACtE,iGAAiG;gBACjG,iDAAiD;gBACjD,QAAQ;gBACR,iDAAiD;gBACjD,IAAI;YACN,CAAC;YAED,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC;gBACnG,IAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxD,eAAe,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChD,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;gBAC7D,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjE,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBACrD,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBACvC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;YAED,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAG,iCAAiC;QAE5E,CAAC;2BAtFO,kBAAkB;QA3wC1B,gFAAgF;QAChF,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAlC,CAAC;SAg2CT;QACD,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YACnB,IAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,2EAA2E;YAC3E,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,mDAAmD,CAAC,CAAC;YACvF,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACnC,IAAM,MAAM,GAAG,0EAA0E,GAAG,SAAS;gBACnG,gHAAgH,CAAC;YACnH,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC;YAC/B,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACxC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;gBACtB,IAAI,EAAE,UAAU,KAAK,EAAE,EAAE;oBACvB,EAAE,CAAC,cAAc,EAAE,CAAC;gBACtB,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QACD,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;IAED,iDAAgB,GAAhB,UAAiB,gBAAgB;QAC/B,CAAC,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACrC,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACpB,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;QAC9B,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;YAC9B,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACzB,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAgB,GAAhB,UAAiB,gBAAgB;QAC/B,CAAC,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACpB,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;QAC9B,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;QACrB,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC;QACpC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEvC,qDAAqD;QACrD,wBAAwB;QACxB,qCAAqC;QACrC,0CAA0C;QAE1C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;YAC9B,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBACxC,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAClD,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;gBACrB,QAAQ,CAAC,IAAI,GAAG,sBAAsB,CAAC;gBACvC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACvC,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;gBACzB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,CAAC;YACD,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAoB,GAApB,UAAqB,gBAAgB;QACnC,CAAC,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACrC,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACpB,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;QAC9B,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;QACrB,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC;QACpC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEvC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;YAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBACtB,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACzB,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAgB,GAAhB,UAAiB,gBAAgB;QAC/B,CAAC,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAErC,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACpB,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAClC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,qDAAqD;QACrD,wBAAwB;QACxB,uCAAuC;QACvC,0CAA0C;QAE1C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;YAC9B,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAEzB,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oDAAmB,GAAnB,UAAoB,IAAI;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,8CAAa,GAAb,UAAc,OAAO,EAAE,IAAI;QAEzB,+GAA+G;QAC/G,qDAAqD;QAHvD,iBA2CC;QAtCC,yBAAyB;QAEzB,gCAAgC;QAEhC,IAAI;QAEJ,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC/C,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;gBAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC3B,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;oBACrE,KAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;gBAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC3B,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC,CAAC,CAAC;QAEL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;gBAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC;oBACpD,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;wBACrB,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC/D,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrF,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gDAAe,GAAf,UAAgB,WAAW,EAAE,QAAQ;QAArC,iBA8IC;QA7IC,yEAAyE;QACzE,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,IAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjE,IAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC3B,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAE,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC3D,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAE,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC3D,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAE,CAAC,KAAK,GAAG,YAAY,CAAC;QACnE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,aAAa,CAAC;QAExF,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YACtL,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,aAAa,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;YACzH,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;gBAChF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;YAC1I,CAAC;QACH,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC;gBACgB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAC5G,CAAC;YAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAEjB,CAAC;QACH,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5c,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YAChH,CAAC;QACH,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YACjC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,mBAAmB,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC;QACnI,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC/B,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;YACrG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;YACrG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;YACjG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACvP,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;YACpF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,eAAe,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC;QAC9H,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;YAC7B,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACvF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;YACpC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;QAC5G,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACnG,oHAAoH;YACpH,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1C,IAAM,cAAc,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,WAAW,CAAE,CAAC;gBAC3F,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC9B,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzB,CAAC,CAAC,GAAG,GAAG,QAAQ,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9D,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,qBAAqB;gBACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,SAAS;oBAClE,qEAAqE;oBACrE,IAAM,UAAU,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;oBACzE,KAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3E,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;oBAClD,UAAU,CAAC;wBACT,EAAE,CAAC,cAAc,EAAE,CAAC;oBACtB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC;YACH,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;gBAClD,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC;oBACtE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC;gBAClD,CAAC;gBACkB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;gBAC5H,sHAAsH;gBACnG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,aAAa,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC;YAC1H,CAAC;YACD,4HAA4H;QAC9H,CAAC;QAED,kDAAkD;QAClD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1D,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,8DAA8D;QAC9D,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;QAC3D,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzB,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC;QAC7D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC,CAAC;QACnE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;QACjE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElB,+DAA+D;QAC/D,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAE9B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACrC,IAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;YACxD,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACd,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC;YACD,EAAE,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACrB,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC3F,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;QACtF,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO;YACpD,sEAAsE;YACtE,CAAC,CAAC,GAAG,GAAG,QAAQ,GAAG,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACpF,IAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,kBAAkB,CAAC,CAAC;YAC3E,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACG,WAAY,CAAC,KAAK,GAAG,OAAO,CAAC;YAClD,CAAC;QACH,CAAC;QACD,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,4GAA4G;IAC5G;gCAC4B;IAE5B,4GAA4G;IAC5G,mDAAkB,GAAlB,UAAmB,WAAW;QAC5B,IAAI,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;YACvG,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IACD,4CAAW,GAAX,UAAY,WAAW,EAAE,QAAQ;QAC/B,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QAErE,IAAI,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;YACvG,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,iBAAiB;QACjB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAE,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACpD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QACzB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,iBAAiB;QACjB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAE,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACpD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QACzB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,qBAAqB;QACrB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAE,CAAC;QACjF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC;QAC5D,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;QAC7B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,sBAAsB;QACtB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC;QAClF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC;QAC9D,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,CAAC;YACH,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE;mBACvE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;mBACrD,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,aAAa,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,aAAa,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,sDAAqB,GAArB,UAAsB,SAAS,EAAE,QAAQ,EAAE,YAAY;QACrD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC;gBAC3C,YAAY,GAAG,IAAI,CAAC;gBACpB,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC;gBAClD,YAAY,GAAG,IAAI,CAAC;gBACpB,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC;gBACjD,YAAY,GAAG,IAAI,CAAC;gBACpB,aAAa,GAAG,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,WAAW,IAAI,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC;gBACrF,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC1B,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,GAAG,CAAC;oBACnB,aAAa,GAAG,GAAG,CAAC;gBACtB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;oBACjC,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,IAAI,CAAC;oBACpB,aAAa,GAAG,GAAG,CAAC;gBACtB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;oBACnC,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,GAAG,CAAC;oBACnB,aAAa,GAAG,GAAG,CAAC;gBACtB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;oBACnC,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,IAAI,CAAC;oBACpB,aAAa,GAAG,GAAG,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,CAAC;gBACJ,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC1B,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,GAAG;oBAClB,aAAa,GAAG,GAAG;gBAErB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;oBACjC,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,GAAG,CAAC;oBACnB,aAAa,GAAG,GAAG,CAAC;gBACtB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;oBACnC,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,GAAG,CAAC;oBACnB,aAAa,GAAG,GAAG,CAAC;gBACtB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;oBACnC,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,GAAG,CAAC;oBACnB,aAAa,GAAG,GAAG,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,iBAAiB;QACjB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAE,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACpD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpC,EAAE,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;QAEtC,iBAAiB;QACjB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAE,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACpD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpC,EAAE,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;QAEtC,qBAAqB;QACrB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAE,CAAC;QACjF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC;QAC5D,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACxC,EAAE,CAAC,WAAW,CAAC,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE9C,sBAAsB;QACtB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAE,CAAC;QAClF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC;QAC9D,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QACzC,EAAE,CAAC,WAAW,CAAC,QAAQ,GAAG,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,4CAAW,GAAX,UAAY,OAAO,EAAE,IAAI;QACvB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxL,0DAA0D;YAC1D,+CAA+C;YAC/C,0DAA0D;YAE1D,sBAAsB;YACtB,0FAA0F;YAC1F,2DAA2D;YAC3D,8BAA8B;YAC9B,qDAAqD;YAErD,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAE,6BAA6B;YAC5G,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,uCAAuC;YAClF,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBACxB,KAAK,GAAG,YAAY,CAAC;YACvB,CAAC;YAED,qGAAqG;YACrG,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YACrE,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YAE3E,2EAA2E;YAC3E,IAAI,WAAW,UAAC;YAChB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACb,KAAK,OAAO;oBACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAC3G,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBACvF,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,aAAa;oBAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,OAAO,CAAC,CAAC;oBACpH,8CAA8C;oBAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAClC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC5F,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5C,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACvB,gEAAgE;oBAChE,iGAAiG;oBACjG,iDAAiD;oBACjD,4BAA4B;oBAC5B,IAAI;oBAEJ,oFAAoF;oBACpF,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAsB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;oBAC5H,8CAA8C;oBAC9C,gEAAgE;oBAChE,sBAAsB;oBACtB,IAAI;oBACJ,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5C,mCAAmC;oBACnC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;wBACzC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;wBAChG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;4BAC5D,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;gCACxD,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BAC9B,CAAC;4BACD,IAAI,CAAC,CAAC;gCACJ,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BAC9B,CAAC;wBACH,CAAC;wBACD,IAAI,CAAC,CAAC;4BACJ,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;wBAC9B,CAAC;wBACD,GAAG;wBACH,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;wBAC9B,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAE/B,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACzB,CAAC;oBAED,yBAAyB;oBACzB,mBAAmB;oBACnB,wBAAwB;oBACxB,MAAM;oBACN,0DAA0D;oBAE1D,qCAAqC;oBACrC,iCAAiC;oBACjC,KAAK,CAAC;gBAER,KAAK,IAAI;oBACP,gGAAgG;oBAChG,aAAa;oBACb,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAI,kCAAkC;oBAC9H,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAChH,KAAK;oBACL,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,IAAI;oBACP,iGAAiG;oBACjG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAG,kCAAkC;oBAC7H,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAEhH,IAAI;oBACJ,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,QAAQ;oBACX,IAAI,aAAa,GAAsB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC;oBAC/E,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,aAAa;2BAC9C,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,IAAI;2BACnE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC1E,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;wBAChG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;wBACxC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,GAAG,aAAa,CAAC;oBAC7E,CAAC;oBACD,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,gCAAgC;oBAC1E,4CAA4C;oBAE5C,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACnD,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAEzD,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5C,IAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAClC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,wBAAwB;oBAExB,+FAA+F;oBAC/F,EAAE,CAAC,CACD,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC;2BACrG,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC;2BAClD,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,gBAAgB,CAAC;2BACzD,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC;2BAC9C,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,gBAAgB,CAAC;2BACzD,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,OAAO,CACpD,CAAC,CAAC,CAAC;wBACD,IAAI,iBAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;wBACpD,iBAAe,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC9C,kDAAkD;oBACpD,CAAC;oBAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAE,6CAA6C;oBACtH,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,IAAI,cAAc,GAAsB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC;oBAChF,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,cAAc;2BAC/C,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,IAAI;2BACnE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC1E,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;wBAChG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;wBACxC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,GAAG,cAAc,CAAC;oBAC9E,CAAC;oBACD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAE,iCAAiC;oBAE1E,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBACtD,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAExD,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5C,IAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;oBACpC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEvB,+FAA+F;oBAC/F,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC7G,mDAAmD;wBACnD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBACxC,CAAC;oBACD,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC;2BACtD,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,gBAAgB,CAAC;2BACzD,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC;2BAC9C,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,gBAAgB,CAAC;2BACzD,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,OAAO,CACpD,CAAC,CAAC,CAAC;wBACD,mDAAmD;wBACnD,IAAM,iBAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;wBACtD,IAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBACtE,iBAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnC,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAE,8CAA8C;oBACzH,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAsB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC;oBAC3G,EAAE,CAAC,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC1E,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BACjH,IAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;4BACrF,qBAAqB,CAAC,OAAO,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;wBAC5F,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;4BAC/D,IAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;4BACrF,IAAM,SAAS,GAAsB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC;4BAC7E,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;wBACxG,CAAC;oBACH,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;4BAClD,IAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;4BACrF,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACxC,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;4BAC/D,IAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;4BACrF,qBAAqB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;wBAC/C,CAAC;oBACH,CAAC;oBACD,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5C,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;wBAClD,IAAM,iBAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;wBACtD,iBAAe,CAAC,OAAO,CAAC,iBAAe,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzF,CAAC;oBACD,KAAK,CAAC;gBACR,KAAK,OAAO;oBACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAC3G,IAAM,eAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;wBAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;wBACjD,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACxC,CAAC;oBACD,IAAI,CAAC,CAAC;wBACJ,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;oBACjG,CAAC;oBACD,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;oBACjH,8CAA8C;oBAC9C,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBACtC,KAAK,CAAC;gBACR,KAAK,YAAY;oBACf,EAAE,CAAC,CAAC,QAAQ,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;wBAC5D,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC;wBACnE,MAAM,CAAC;oBACT,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAChH,IAAM,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpD,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC;oBACzE,8CAA8C;oBAE9C,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBACtC,KAAK,CAAC;gBACR,KAAK,eAAe;oBAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,OAAO,CAAC,CAAC;oBACrH,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,OAAO;oBACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAC3G,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,YAAY;oBACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAChH,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,YAAY;oBACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAChH,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,cAAc;oBACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAClH,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,cAAc;oBACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAClH,8CAA8C;oBAC9C,KAAK,CAAC;gBACR,KAAK,mBAAmB;oBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBACtH,KAAK,CAAC;gBACR,KAAK,YAAY;oBACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAChH,KAAK,CAAC;gBACR,KAAK,gBAAgB;oBACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,aAAa,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBACpH,KAAK,CAAC;gBACR,KAAK,YAAY;oBACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;oBAChH,KAAK,CAAC;gBACR,KAAK,aAAa;oBAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,OAAO,CAAC,CAAC;oBACnH,KAAK,CAAC;gBACR,KAAK,aAAa;oBAChB,IAAM,KAAK,GAAsB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC;oBACzE,IAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;oBAEnE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC/E,CAAoB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;wBACtE,KAAK,CAAC;oBACR,CAAC;oBAAC,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;wBACpB,CAAoB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;wBAC5E,KAAK,CAAC;oBACR,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;wBACzB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBAC/B,KAAK,CAAC;oBACR,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;oBACtD,CAAoB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;oBACjH,4BAA4B;oBAC5B,KAAK,CAAC;gBACR,KAAK,mBAAmB;oBACtB,IAAM,gBAAgB,GAAsB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC;oBACpF,IAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;oBAC3E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,gBAAgB,CAAC;oBACjE,CAAoB,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;oBACnH,KAAK,CAAC;YACV,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,4GAA4G;IAC5G,iEAAiE;IAEjE,4GAA4G;IAC5G,oDAAmB,GAAnB;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAE,yCAAyC;QACjH,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAE,kCAAkC;QACpD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElB,6EAA6E;QAC7E,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,gFAAgF;QAChF,iFAAiF;QACjF,oFAAoF;QACpF,mFAAmF;QAEnF,+DAA+D;QAC/D,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,kDAAkD;QAElD,2EAA2E;QAC3E,qCAAqC;QAClB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QAC/D,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QAC/D,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QACnE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QAEvF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,oDAAmB,GAAnB;QACE,0LAA0L;QAC1L,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,yCAAyC,CAAC,CAAC;QAEhN,2KAA2K;QAC3K,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,YAAY,CAAC,CAAC;IAC9F,CAAC;IAED,iDAAgB,GAAhB;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,uCAAuC,CAAC,CAAC;QAC3M,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAED,gDAAe,GAAf,UAAgB,OAAO;QACrB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,yCAAyC;QACtG,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAE,kCAAkC;QACpD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YAEnD,IAAI,CAAC;gBACH,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,qBAAqB,CAAC,CAAC,CAAC;gBACjH,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,oBAAoB,CAAC,CAAC,CAAC;YAClH,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEX,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;QAE7C,+DAA+D;QAC/D,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACnC,kDAAkD;QAElD,2EAA2E;QAC3E,qCAAqC;QACrC,EAAE,CAAC,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtD,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;YACpD,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;YACpD,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,QAAQ,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;YACxD,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IACD,sDAAqB,GAArB,UAAsB,KAAK;QACzB,sBAAsB;QACtB,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC/E,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC;YACnC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAI,wBAAwB;YACvG,iEAAiE;YACjE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,oDAAmB,GAAnB,UAAoB,MAAM,EAAE,KAAK;QAC/B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,8DAA8D;QAC9D,gCAAgC;QAChC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,qDAAqD;IACvD,CAAC;IAGD,+CAAc,GAAd,UAAe,IAAY;QACzB,IAAM,CAAC,GAAG,SAAS,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,CAAC;QACP,OAAO,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAC7C,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACd,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7D,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IACD,yDAAyD;IACzD,cAAc;IACd,sBAAsB;IACtB,0BAA0B;IAC1B,uCAAuC;IACvC,4BAA4B;IAE5B,yCAAyC;IACzC,SAAS;IACT,mCAAmC;IACnC,0BAA0B;IAC1B,0BAA0B;IAC1B,4CAA4C;IAC5C,8BAA8B;IAC9B,SAAS;IACT,aAAa;IACb,6BAA6B;IAC7B,SAAS;IACT,IAAI;IAGG,oDAAmB,GAA1B,UAA2B,KAAoB;QAC7C,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,QAAQ,CAAC,aAAa,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,4CAAW,GAAX,UAAY,MAAM,EAAE,KAAK;QACvB,IAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5G,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;QACvC,EAAE,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC;YAC1B,IAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YACzD,KAAK,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;QAC1C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvC,IAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;YACrF,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,aAAa,CAAC;QACpE,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtC,IAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YACtE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,gBAAgB,GAAG,aAAa,CAAC,UAAS;QACnF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,8CAAa,GAAb,UAAc,OAAO,EAAE,OAAO;QAC5B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;YAC/F,IAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;YAC3D,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;YAC9C,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,gDAAe,GAAf;QAEE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,CAAC,CAAC,gBAAgB,CAAC,CAAC,aAAa,EAAE,CAAC;QACpC,qCAAqC;QACrC,oBAAoB;QACpB,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;YACrB,EAAE,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAgB,GAAhB,UAAiB,SAAS,EAAE,IAAI,EAAE,QAAc,EAAE,MAAgB,EAAE,UAAmB;QACrF,6DAA6D;QAC7D,wEAAwE;QACxE,kBAAkB;QAClB,IAAI;QACJ,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpD,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACxE,cAAc,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,wDAAwD,EAAE,OAAO,CAAC,CAAC;YACzG,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACrB,8BAA8B;YAC9B,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC7E,IAAM,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvD,sCAAsC;YAEtC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpD,IAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC9E,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;oBACxE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACjF,cAAc,GAAG,IAAI,CAAC;wBACtB,KAAK,CAAC;oBACR,CAAC;gBACH,CAAC;gBACD,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;oBACD,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;oBACvF,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;YACD,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;YACjE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC;gBACzE,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC7E,IAAI,aAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,IAAM,QAAQ,GAAG,4CAA4C,CAAC;YAC9D,IAAM,WAAS,GAAG,IAAI,KAAK,EAAE,CAAC;YAC9B,WAAS,CAAC,MAAM,GAAG;gBACjB,aAAW,CAAC,KAAK,CAAC,WAAS,CAAC,CAAC;gBAC7B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC;YACF,WAAS,CAAC,GAAG,GAAG,QAAQ,CAAC;QAC3B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC7E,IAAI,aAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,IAAM,QAAQ,GAAG,6BAA6B,CAAC;YAC/C,IAAM,WAAS,GAAG,IAAI,KAAK,EAAE,CAAC;YAC9B,WAAS,CAAC,MAAM,GAAG;gBACjB,aAAW,CAAC,KAAK,CAAC,WAAS,CAAC,CAAC;gBAC7B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC;YACF,WAAS,CAAC,GAAG,GAAG,QAAQ,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAE1E,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,sDAAqB,GAArB,UAAsB,SAAS,EAAE,IAAI,EAAE,QAAc,EAAE,MAAgB,EAAE,UAAmB;QAA5F,iBAuFC;QArFC,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;YACpB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACd,IAAI,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACxC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC/B,wCAAwC;oBACxC,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,2DAA2D,CAAC;oBACxF,QAAQ,GAAG,GAAG,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,CAAC;oBACJ,EAAE,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC;wBACzH,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;4BAC1C,QAAQ,GAAG,QAAQ,CAAC;wBACtB,CAAC;wBACD,IAAI,CAAC,CAAC;4BACJ,IAAI,UAAU,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;gCAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;oCAC7B,IAAM,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,WAAW,CAAC;oCAC1C,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,kBAAkB,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;oCACxF,QAAQ,GAAG,GAAG,CAAC;oCACf,UAAU,GAAG,IAAI,CAAC;gCACpB,CAAC;4BAEH,CAAC,CAAC,CAAC;4BACH,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gCAChB,6CAA6C;gCAC7C,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,2DAA2D,CAAC;gCACxF,QAAQ,GAAG,GAAG,CAAC;4BACjB,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,CAAC;wBACJ,wCAAwC;wBACxC,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,2DAA2D,CAAC;wBACxF,QAAQ,GAAG,GAAG,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;QAEH,CAAC;QAED,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;QAC7E,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACrB,8DAA8D;YAC9D,IAAM,UAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,mEAAmE;YACnE,IAAM,aAAW,GAAG,IAAI,KAAK,EAAE,CAAC;YAChC,aAAW,CAAC,MAAM,GAAG;gBACnB,UAAQ,CAAC,KAAK,CAAC,aAAW,CAAC,CAAC;gBAC5B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC;YAEF,aAAW,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAE,8DAA8D;QAC7F,CAAC;QACD,qFAAqF;QACrF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACZ,SAAS,GAAG,CAAC,OAAO,SAAS,KAAK,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAChE,IAAM,KAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,IAAM,SAAS,GAAG,KAAG,CAAC,KAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACnE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAM,KAAG,GAAG,SAAS,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,KAAG,CAAC;QACtD,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACrB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;YACxD,IAAI,MAAI,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACrG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,MAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;QACxE,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;YACxD,IAAI,MAAI,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,aAAa,GAAG,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,MAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;QACxE,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC/L,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9F,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;YAC/G,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YAC9H,oBAAoB;YACpB,8DAA8D;YAC9D,mIAAmI;YACnI,IAAI;QACN,CAAC;IACH,CAAC;IAED,mDAAkB,GAAlB;QACE,sDAAsD;QACtD,4FAA4F;QAC5F,EAAE,EAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,OAAO;YACrC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YACjG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,EAAE,EAAoB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAClG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjD,IAAM,UAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,mEAAmE;YACnE,IAAM,aAAW,GAAG,IAAI,KAAK,EAAE,CAAC;YAChC,aAAW,CAAC,MAAM,GAAG;gBACnB,UAAQ,CAAC,KAAK,CAAC,aAAW,CAAC,CAAC;gBAC5B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC;YAEF,qBAAqB;YACrB,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,2DAA2D,CAAC;YAC7F,aAAW,CAAC,GAAG,GAAG,QAAQ,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,yDAAwB,GAAxB;QACE,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC7C,IAAI,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,kBAAkB,CAAoB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC,CAAC;QAC7I,MAAM,CAAC,MAAM;YACL;gBACE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAE3B,EAAE,EAAC,EAAE,CAAC,cAAc,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;oBACvC,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,gDAAgD,EAAE,OAAO,CAAC,CAAC;oBACpG,MAAM,CAAC;gBAET,CAAC;gBAAC,IAAI,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,cAAc,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,gDAAgD,EAAE,OAAO,CAAC,CAAC;oBACpG,MAAM,CAAC;gBACT,CAAC;gBAED,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,IAAI,aAAa,GAAG,MAAM,CAAC;gBAE3B,iBAAiB;gBACjB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,GAAG,IAAI,CAAE,CAAC;gBACrF,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;gBAChD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;gBAE9C,iBAAiB;gBACjB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,GAAG,IAAI,CAAE,CAAC;gBACrF,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;gBAChD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;gBAE9C,qBAAqB;gBACrB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAE,CAAC;gBACzF,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC;gBACxD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACxC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAEtD,sBAAsB;gBACtB,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,GAAG,SAAS,CAAE,CAAC;gBAC1F,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC1D,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACzC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,GAAG,SAAS,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC,CAAC;IACZ,CAAC;IAED,4CAAW,GAAX,UAAY,UAAU;QACpB,0BAA0B;QAC1B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAEnB,KAAK,OAAO;gBACV,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC7B,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC;wBACrC,IAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;wBAC7D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClD,CAAC;wBAED,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC;4BAC7B,QAAQ,EAAE,KAAK;4BACf,KAAK,EAAE,KAAK;4BACZ,IAAI,EAAE,CAAC;4BACP,IAAI,EAAE,KAAK;4BACX,YAAY,EAAE;gCACZ,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;4BAC9C,CAAC;yBACF,CAAC,CAAC;wBACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;wBAC9B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC;YACR,KAAK,OAAO;gBACV,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC7B,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC;wBACrC,IAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;wBAC7D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClD,CAAC;wBAED,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC;4BAC7B,QAAQ,EAAE,KAAK;4BACf,KAAK,EAAE,KAAK;4BACZ,IAAI,EAAE,CAAC;4BACP,IAAI,EAAE,KAAK;4BACX,YAAY,EAAE;gCACZ,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;4BAC9C,CAAC;yBACF,CAAC,CAAC;wBACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;wBAC9B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC;YACR;gBACE,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,KAAK,CAAC;QACV,CAAC;QACD,8FAA8F;QAC9F,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC;YAClD,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;gBAChC,kGAAkG;YACpG,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAClC,4CAA4C,GAAG,UAAU,GAAG,kCAAkC,EAAE,OAAO,CAAC,CAAC;YAC7G,CAAC;YACD,MAAM,CAAC;QACT,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gDAAe,GAAf,UAAgB,kBAA2B;QACzC,aAAa;QACb,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAE7B,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW,IAAI,IAAI,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC;YACjF,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,CAAC;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QAEpC,IAAI,CAAC,qBAAqB,GAAG,uBAAuB,CAAC;QACrD,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;YAChC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjD,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,sDAAsD,EAAE,MAAM,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;oBACrC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO;2BACpF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS;2BACrF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;2BAC5F,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;wBACtG,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;4BACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,8CAA8C,EAAE,OAAO,CAAC,CAAC;wBACtG,CAAC;wBACD,OAAO,GAAG,KAAK,CAAC;wBAChB,KAAK,CAAC;oBACR,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;wBACpG,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;wBAC9D,IAAI,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;wBAChD,IAAM,eAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;wBAEtD,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;4BACjE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;gCAC5C,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;oCACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,gEAAgE,EAAE,OAAO,CAAC,CAAC;gCACxH,CAAC;4BACH,CAAC;4BAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;gCACzD,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;oCACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,uEAAuE,EAAE,OAAO,CAAC,CAAC;gCAC/H,CAAC;4BACH,CAAC;4BACD,OAAO,GAAG,KAAK,CAAC;4BAChB,KAAK,CAAC;wBACR,CAAC;oBACH,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;wBACtD,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,eAAe,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC;4BACrH,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;4BAC5D,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;gCAC1B,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;oCACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,kEAAkE,EAAE,OAAO,CAAC,CAAC;gCAC1H,CAAC;gCACD,OAAO,GAAG,KAAK,CAAC;gCAChB,KAAK,CAAC;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,yCAAyC;QAEzC,wDAAwD;QACxD,qCAAqC;QACrC,wDAAwD;QACxD,oGAAoG;QACpG,aAAa;QACb,0CAA0C;QAC1C,MAAM;QACN,WAAW;QACX,uEAAuE;QACvE,IAAI;QAEJ,cAAc;IAChB,CAAC;IAED,0CAAS,GAAT,UAAU,OAAO,EAAE,MAAe,EAAE,IAAa;QAAjD,iBAwCC;QAvCC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;YAClC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,MAAM;gBAC/B,KAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,CAAC,EAAE,UAAC,MAAM;gBACR,KAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,MAAM;gBAC/B,2CAA2C;YAC7C,CAAC,EAAE,UAAC,MAAM;gBACR,KAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,IAAI;oBAC5D,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxB,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QAEL,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,MAAM;gBAC/B,2CAA2C;YAC7C,CAAC,EAAE,UAAC,MAAM;gBACR,aAAa,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,MAAM;gBAC/B,2CAA2C;YAE7C,CAAC,EAAE,UAAC,MAAM;gBACR,EAAE,CAAC,CAAC,KAAI,CAAC,aAAa,KAAK,YAAY,IAAI,KAAI,CAAC,iBAAiB,KAAK,KAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC9F,KAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,kBAAkB,CAAC;gBACnD,CAAC;gBACD,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,+DAA+D;YACjE,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,2CAAU,GAAV;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,YAAY,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC9F,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACnD,CAAC;YACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,qDAAoB,GAApB,UAAqB,KAAK;QACxB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvH,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,mDAAkB,GAAlB,UAAmB,GAAG;QACpB,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACvH,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACpC,2BAA2B;YAC3B,UAAU;YACV,aAAa;YACb,aAAa;YACb,aAAa;YACb,cAAc;YACd,cAAc;YACd,cAAc;YACd,cAAc;YACd,cAAc;YACd,cAAc;YACd,WAAW;YACX,KAAK;YAEL,IAAM,cAAc,GAAG;gBACrB,CAAC,EAAE,GAAG;gBACN,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,EAAE;gBACP,CAAC,EAAE,CAAC;aACL,CAAC;YAEF,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YAC/C,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3H,CAAC;QACD,MAAM,CAAC,cAAc,CAAC;IAExB,CAAC;IAED,wDAAuB,GAAvB;QACE,2DAA2D;QAC3D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,qEAAqE;QAErE,wDAAwD;QACxD,oEAAoE;QACpE,wDAAwD;QACxD,IAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAM,cAAc,GAAG;YACrB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE;SACrC,CAAC;QACF,IAAM,qBAAqB,GAAG;YAC5B,UAAU,EAAE,IAAI,CAAC,qBAAqB;YACtC,MAAM,EAAE,CAAoB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAC7D,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACvF,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAC;QACF,kGAAkG;QAClG,IAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/K,IAAI,iBAAiB,GAAG;YACtB,MAAM,EAAE,CAAoB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAC7D,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACvF,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,KAAK;YACf,kBAAkB,EAAE,SAAS;YAC7B,mBAAmB,EAAE,IAAI;SAC1B,CAAC;QAGF,wDAAwD;QACxD,+DAA+D;QAC/D,uCAAuC;QACvC,wDAAwD;QACxD,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACrC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3C,wCAAwC;gBACxC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,0CAA0C,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAChG,MAAM,CAAC;gBACT,CAAC;gBACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAE7B,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC3C,IAAM,SAAS,GAAG;oBAChB,MAAM,EAAE,KAAK;oBACb,uGAAuG;oBACvG,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI;oBACpC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC9B,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC9B,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK;oBACtC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM;oBACxC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM;oBACxC,KAAK,EAAE,KAAK;oBACZ,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;oBAChD,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,UAAU;oBAChD,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS;oBAC9C,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI;oBACpC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI;oBACtF,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS;oBAC9C,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS;oBAC9C,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,eAAe;iBAC5D,CAAC;gBACF,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;oBAC5F,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;oBAC7B,SAAS,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;oBAClC,wBAAwB;oBACxB,wBAAwB;oBACxB,+BAA+B;oBAC/B,+BAA+B;oBAC/B,6CAA6C;oBAC7C,SAAS,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBACrC,CAAC;gBACD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;uBACrF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACjG,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;wBAC7C,SAAS,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;wBACnE,+DAA+D;wBAC/D,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;4BAClG,SAAS,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;wBACzC,IAAI;4BACF,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;wBACnC,SAAS,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;oBAC5C,CAAC;oBACD,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;oBACzD,SAAS,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;oBACrE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;gBAC7D,CAAC;gBACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC7C,SAAS,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;gBAC5C,CAAC;gBACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;oBACzF,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC3C,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBACrE,CAAC;oBACD,aAAa;oBACb,6CAA6C;oBAC7C,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;oBAC7E,IAAM,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACvD,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;wBACjC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;4BAC7C,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;4BACrC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BACnC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;4BACrC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACtC,CAAC;wBACD,IAAI,CAAC,CAAC;4BACJ,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;4BACrC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BACnC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;4BACrC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,CAAC;wBACJ,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC;gBACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC7C,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;oBAC/D,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;gBACjE,CAAC;gBACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;oBAC7F,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;wBACzC,SAAS,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC;oBACtC,CAAC;gBACH,CAAC;gBAED,kGAAkG;gBAClG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvB,4HAA4H;gBAC5H,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzF,IAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,OAAO,EAAE,KAAK;wBACzE,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;oBACvD,CAAC,CAAC,CAAC;oBACH,4BAA4B;oBAC5B,EAAE,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC;wBAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;4BAC5B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;4BAC5B,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa;4BAC9C,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;yBAC7B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QAC1C,IAAI,QAAQ,CAAC;QACb,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC;YACjC,QAAQ,GAAG;gBACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,cAAc;gBAC7B,oBAAoB,EAAE,qBAAqB;gBAC3C,gBAAgB,EAAE,iBAAiB;gBACnC,YAAY,EAAE,MAAM;aACrB,CAAC;QACJ,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,QAAQ,GAAG;gBACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,cAAc;gBAC7B,oBAAoB,EAAE,qBAAqB;gBAC3C,gBAAgB,EAAE,iBAAiB;gBACnC,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,IAAI,CAAC,aAAa;aACjC,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,uDAAsB,GAAtB,UAAuB,kBAA2B;QAAlD,iBAqCC;QAnCC,IAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE5C,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACV,wBAAwB;YACxB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACtD,KAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,iEAAiE;YACjE,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;oBAChC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;YACD,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,sBAAsB;YACtB,4BAA4B;YAC5B,EAAE;YACF,iCAAiC;YACjC,iCAAiC;YACjC,YAAY;YACZ,4BAA4B;QAC9B,CAAC,EAAE,eAAK;YACN,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,4DAA4D;gBAC5D,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAC/F,CAAC;YACD,wBAAwB;YACxB,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gDAAe,GAAf;QAAA,iBAyCC;QAxCC,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvC,IAAM,IAAI,GAAG;YAEX,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACrD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ;SAC/C;QAED,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC/D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,KAAI,CAAC,4BAA4B,EAAE,CAAC;gBACpC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,gCAAgC,EAAE,SAAS,CAAC,CAAC;gBAC1F,KAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBAEpC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACjD,KAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,CAAC;gBACD,IAAI,CAAC,CAAC;oBACJ,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACvD,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzC,CAAC;gBACD,0EAA0E;gBAC1E,KAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,CAAC;QAEH,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAClG,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,KAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8CAAa,GAAb;QAAA,iBA8BC;QA7BC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,IAAM,IAAI,GAAG;YAEX,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACrD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ;SAC/C;QAED,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC7D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,6BAA6B,EAAE,SAAS,CAAC,CAAC;gBACvF,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,0EAA0E;YAC5E,CAAC;QAEH,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAClG,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,8CAAa,GAAb;QAAA,iBA8BC;QA7BC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,IAAM,IAAI,GAAG;YAEX,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACrD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ;SAC/C;QAED,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC7D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,KAAI,CAAC,4BAA4B,EAAE,CAAC;gBACpC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,6BAA6B,EAAE,SAAS,CAAC,CAAC;gBACvF,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,0EAA0E;YAC5E,CAAC;QACH,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAClG,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAiB,GAAjB;QAAA,iBA+BC;QA9BC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,IAAM,IAAI,GAAG;YAEX,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ;SAChD;QAED,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC3D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,KAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,kCAAkC,EAAE,SAAS,CAAC,CAAC;gBAC5F,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,0EAA0E;YAC5E,CAAC;QAEH,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAClG,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8CAAa,GAAb;QAAA,iBA6BC;QA5BC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,IAAM,IAAI,GAAG;YAEX,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ;SAChD;QAED,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACvD,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,KAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,6BAA6B,EAAE,SAAS,CAAC,CAAC;gBACvF,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,0EAA0E;YAC5E,CAAC;QACH,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAClG,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAgB,GAAhB;QACE,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,mEAAmE;QAC5F,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;QAChH,MAAM,CAAC,eAAe,CAAC;IACzB,CAAC;IAED,kDAAiB,GAAjB;QACE,sBAAsB;QAEtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,oDAAmB,GAAnB;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAE7B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,4CAAW,CAAC;YAC3B,SAAS,EAAE,iBAAiB;YAC5B,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;QACH,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE1B,IAAI,CAAC,KAAK,GAAG,IAAI,4CAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrC,2BAA2B;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,sCAAsC;QACtC,gCAAgC;QAEhC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAExD,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,iDAAgB,GAAhB,UAAiB,iBAAwB;QAAzC,iBAsFC;QAtFgB,4DAAwB;QACvC,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC1D,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;gBAEzB,KAAI,CAAC,gBAAgB,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;gBACtK,KAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,KAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,KAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,KAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;gBAC7B,KAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,KAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,yCAAyC;gBACzC,6CAA6C;gBAC7C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAO;oBAClC,gEAAgE;oBAChE,gEAAgE;oBAChE,4BAA4B;oBAC5B,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAO;oBAClC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;gBACH,0CAA0C;gBAC1C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAO;oBAClC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC3B,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC;gBACtC,KAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,KAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtC,KAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5C,+CAA+C;gBAE/C,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAO;oBACzC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjD,KAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpD,CAAC;gBAEH,CAAC,CAAC;gBAEF,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAO;oBACrC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACpD,KAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACjD,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAChE,KAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrD,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACtE,KAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClE,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACtE,KAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClE,CAAC;oBACD,IAAI,CAAC,CAAC;wBACJ,KAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC;gBAEH,CAAC,CAAC,CAAC;gBAEH,KAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;gBAClE,sCAAsC;gBACtC,KAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,KAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAI,CAAC,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC;gBACjF,KAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,KAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAI,CAAC,cAAc,CAAC,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAI,CAAC,gBAAgB,CAAC,CAAC;gBAEhD,EAAE,CAAC,CAAC,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC;oBAClC,IAAM,YAAY,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,KAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAE,6BAA6B;oBAC5G,+DAA+D;oBAC/D,0DAA0D;oBAC1D,6BAA6B;oBAC7B,+GAA+G;oBAC/G,yGAAyG;gBAC3G,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAC3B,8DAA8D;gBAChE,CAAC;gBAED,UAAU,CAAC;oBACT,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;wBACnC,OAAO,EAAE,OAAO;qBACjB,CAAC,CAAC;gBACL,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC;QACH,CAAC,EAAE,UAAC,KAAK;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mDAAkB,GAAlB;QACE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,wDAAuB,GAAvB;QAAA,iBA8CC;QA7CC,EAAE;QACF,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,mCAAmC,EAAE,MAAM,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClD,yCAAyC;QACzC,EAAE,CAAC,CAAC,IAAO,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,0GAA0G,EAAE,OAAO,CAAC,CAAC;YAC3J,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QACD,IAAI,aAAa,GAAG;YAClB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC;YAClC,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,mBAAmB;SAChC,CAAC;QACF,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/C,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACrC,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;oBACjD,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;oBAClC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBACzE,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACjE,CAAC,EAAE,eAAK;gBACN,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,+CAA+C,EAAE,MAAM,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAED;;OAEG;IACH,2DAA0B,GAA1B;QAAA,iBA0CC;QAzCC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,mCAAmC,CAAC,CAAC;YAC3E,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QAGD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,0GAA0G,EAAE,OAAO,CAAC,CAAC;YAC3J,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QACD,IAAI,aAAa,GAAG;YAClB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC;YAClC,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,mBAAmB;SAChC,CAAC;QACF,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/C,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACrC,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;oBACjD,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;oBAClC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBACzE,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACrE,CAAC,EAAE,eAAK;gBACN,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,+CAA+C,EAAE,MAAM,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAED,2DAA0B,GAA1B;QAAA,iBAKC;QAJC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACpF,KAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,4DAA2B,GAA3B;QAAA,iBAsDC;QArDC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAChF,KAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC;YAExC,KAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAO;gBAEnD,IAAI,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC7D,IAAI,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;gBAChE,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAEjD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC7D,IAAI,IAAI,EAAE,CAAC;gBACX,eAAe;gBAEf,EAAE,CAAC,CAAC,gBAAgB,IAAI,EAAE,IAAI,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC;wBACjD,EAAE,CAAC,CAAC,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;4BAC5C,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;wBAC9B,CAAC;wBACD,IAAI,CAAC,CAAC;4BACJ,yCAAyC;4BACzC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gCACd,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;4BAClC,CAAC;4BACD,IAAI,CAAC,CAAC;gCACJ,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;4BAC9B,CAAC;wBACH,CAAC;oBAEH,CAAC;gBACH,CAAC;gBAED,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;oBACpE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;wBACpC,OAAO,CAAC,MAAM,GAAG,2BAA2B,CAAC;oBAC/C,CAAC;oBACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC;wBAC/C,OAAO,CAAC,MAAM,GAAG,wBAAwB,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,KAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAO;gBACrD,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;oBACrE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;wBACpC,OAAO,CAAC,MAAM,GAAG,2BAA2B,CAAC;oBAC/C,CAAC;oBACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC;wBAC/C,OAAO,CAAC,MAAM,GAAG,wBAAwB,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,CAAC,EAAM,wCAAwC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mDAAkB,GAAlB,UAAmB,aAAoB;QAApB,oDAAoB;QACrC,IAAI,CAAC,iBAAiB,GAAG,CAAC,aAAa,CAAC;QACxC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,0GAA0G,EAAE,MAAM,CAAC,CAAC;YAC1J,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,UAAU,CAAC;YACT,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;gBACnC,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,yCAAyC;QACzC,0CAA0C;QAC1C,cAAc;IAChB,CAAC;IAED,2DAA0B,GAA1B;QACE,qCAAqC;QAErC,OAAO;QACP,0DAA0D;QAC1D,uFAAuF;QACvF,QAAQ;QACR,kBAAkB;QAElB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,UAAU,CAAC;YACT,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;gBACnC,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,0DAAyB,GAAzB,UAA0B,KAAK;QAA/B,iBAQC;QAPC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7C,UAAU,CAAC;YACT,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,4DAA2B,GAA3B;QACE,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC/C,CAAC;IAED,yDAAwB,GAAxB;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC;IAED,oDAAmB,GAAnB;QAAA,iBA4BC;QA3BC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACpF,KAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC;YAEvC,KAAI,CAAC,SAAS,CAAC,KAAI,CAAC,eAAe,CAAC,CAAC;YAErC,IAAI,eAAe,GAAsB,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAEtF,CAAC,CAAC,GAAG,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAEpC,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;YACrC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAErC,KAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAE;gBAC/B,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACnC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC;gBAEnE,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oDAAmB,GAAnB;QACE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAErC,IAAI,eAAe,GAAsB,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAEtF,CAAC,CAAC,GAAG,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpC,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACrC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAE;YAC5B,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC;YACvB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YAEtB,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;IAED,sDAAqB,GAArB;QAAA,iBAgDC;QA/CC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAChF,KAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC;YACxC,KAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAO;gBAEnD,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;oBACpE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;wBACpC,OAAO,CAAC,MAAM,GAAG,2BAA2B,CAAC;oBAC/C,CAAC;oBACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC;wBAC/C,OAAO,CAAC,MAAM,GAAG,wBAAwB,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,KAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAO;gBAErD,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;oBACrE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;wBACpC,OAAO,CAAC,MAAM,GAAG,2BAA2B,CAAC;oBAC/C,CAAC;oBACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC;wBAC/C,OAAO,CAAC,MAAM,GAAG,wBAAwB,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,uCAAuC;YACvC,KAAI,CAAC,SAAS,CAAC,KAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,eAAe,CAAC,CAAC;YAEnF,2BAA2B;YAC3B,2CAA2C;YAC3C,wBAAwB;YACxB,QAAQ;YACR,YAAY;YAEZ,EAAE,CAAC,sBAAsB,GAAG,WAAW,CAAC;gBACtC,WAAW;gBACX,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,4BAA4B;gBAC5B,EAAE,CAAC,2BAA2B,EAAE,CAAC;gBAEjC,4CAA4C;gBAC5C,sBAAsB;gBACtB,mDAAmD;YAErD,CAAC,EAAE,KAAK,CAAC,CAAC,CAAE,sCAAsC;QAEpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mDAAkB,GAAlB;QAAA,iBA4BC;QA3BC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,OAAO,GAAG;YACZ,QAAQ,EAAE,QAAQ;SACnB,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC/D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;gBAChC,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACtC,KAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxC,KAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,KAAI,CAAC,SAAS,CAAC,KAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;gBACnE,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC3C,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,CAAC;gBAClC,UAAU,CAAC;oBACT,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC3C,CAAC,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAC9C,CAAC,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC1C,CAAC,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAChD,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yDAAwB,GAAxB;QAEE,IAAI,kBAAkB,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,oCAAoC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzM,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC;IACvC,CAAC;IAED,yDAAwB,GAAxB;QAEE,IAAI,kBAAkB,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC;IAC1C,CAAC;IAED,wDAAuB,GAAvB;QAAA,iBAgMC;QA/LC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QAED,IAAM,aAAa,GAAG;YACpB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,iBAAiB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC;YAChE,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACvB,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC;YACxB,aAAa,CAAC,MAAM,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACrE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,0GAA0G,EAAE,OAAO,CAAC,CAAC;gBAC3J,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;YAED,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC/C,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC;oBACrC,iCAAiC;oBACjC,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;wBACrC,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;wBACtC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;4BACjD,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACnB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gCAC3C,iCAAiC;gCACjC,GAAG,CAAC,CAAC,IAAM,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;oCACzC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;oCAC5D,+DAA+D;gCACjE,CAAC;4BACH,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACN,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC1C,CAAC;wBACH,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;4BAClC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACnB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gCAC3C,iCAAiC;gCACjC,GAAG,CAAC,CAAC,IAAM,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;oCACzC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;oCAC5D,+DAA+D;gCACjE,CAAC;4BACH,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACN,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC1C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAO;wBAChC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;4BACvB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzC,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACN,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC1C,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAEjD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,+CAA+C,EAAE,OAAO,CAAC,CAAC;gBAChG,MAAM,CAAC;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACzE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC9E,KAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAChD,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,CAAC;YACD,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,eAAK;YACN,sBAAsB;YACtB,4BAA4B;YAC5B,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QAEH,yCAAyC;QAEzC,qBAAqB;QACrB,iCAAiC;QAEjC,+EAA+E;QAC/E,mEAAmE;QACnE,kFAAkF;QAClF,kBAAkB;QAClB,WAAW;QACX,4FAA4F;QAC5F,IAAI;QAEJ,sEAAsE;QACtE,sDAAsD;QACtD,IAAI;QAEJ,0BAA0B;QAC1B,gBAAgB;QAChB,gBAAgB;QAChB,sEAAsE;QACtE,wBAAwB;QACxB,kCAAkC;QAClC,gBAAgB;QAChB,gDAAgD;QAChD,gDAAgD;QAChD,KAAK;QAEL,4BAA4B;QAC5B,6BAA6B;QAC7B,kDAAkD;QAClD,WAAW;QACX,4EAA4E;QAC5E,kFAAkF;QAClF,oBAAoB;QACpB,MAAM;QAEN,sDAAsD;QACtD,8CAA8C;QAC9C,0CAA0C;QAC1C,gDAAgD;QAChD,iDAAiD;QACjD,8DAA8D;QAC9D,kCAAkC;QAClC,0DAA0D;QAC1D,gDAAgD;QAChD,0DAA0D;QAC1D,6EAA6E;QAC7E,gFAAgF;QAChF,gBAAgB;QAChB,qBAAqB;QACrB,uDAAuD;QACvD,cAAc;QACd,+CAA+C;QAC/C,kCAAkC;QAClC,0DAA0D;QAC1D,gDAAgD;QAChD,0DAA0D;QAC1D,6EAA6E;QAC7E,gFAAgF;QAChF,gBAAgB;QAChB,qBAAqB;QACrB,uDAAuD;QACvD,cAAc;QACd,YAAY;QACZ,UAAU;QACV,eAAe;QACf,gDAAgD;QAChD,oCAAoC;QACpC,oDAAoD;QACpD,mBAAmB;QACnB,qDAAqD;QACrD,YAAY;QACZ,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,oGAAoG;QACpG,cAAc;QACd,MAAM;QACN,IAAI;QAEJ,8BAA8B;QAC9B,oFAAoF;QACpF,uCAAuC;QACvC,2EAA2E;QAC3E,+EAA+E;QAC/E,aAAa;QACb,yEAAyE;QACzE,qFAAqF;QACrF,MAAM;QACN,gCAAgC;QAChC,uBAAuB;QACvB,gCAAgC;QAChC,gBAAgB;QAChB,gCAAgC;QAChC,gCAAgC;QAChC,8FAA8F;QAC9F,MAAM;QACN,cAAc;IAChB,CAAC;IAED,mDAAkB,GAAlB;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,KAAK,IAAI,EAArB,CAAqB,CAAC,CAAC,MAAM,CAAC;IAC5F,CAAC;IAED,gDAAe,GAAf,UAAgB,QAAQ;QAAxB,iBA6JC;QA5JC,yBAAyB;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QACD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC;YACpC,OAAO,GAAG;gBACR,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,qBAAqB,EAAE,QAAQ,CAAC,YAAY;aAC7C,CAAC;YACF,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC7C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,OAAO,GAAG;gBACR,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC,CAAC;YACF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAChE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;gBAChC,6BAA6B;gBAC7B,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,wCAAwC;gBACxC,KAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC/C,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC/B,2BAA2B;gBAC3B,IAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1D,KAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC7D,KAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,2EAA2E;gBAC3E,IAAM,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;wCAE1D,CAAC;oBACR,gEAAgE;oBAEhE,yCAAyC;oBACzC,IAAM,MAAM,GAAG,CAAC,IAAI,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;oBAC/B,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;oBAC/B,IAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;oBACzB,IAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;oBACzB,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;oBACjC,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;oBACnC,IAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;oBAC7B,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;oBACnC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACzF,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC;oBAE3I,yEAAyE;oBACzE,IAAI,QAAQ,GAAG,EAAE,CAAC;oBAClB,EAAE,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC;wBAE3B,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC;4BACpC,sCAAsC;4BACtC,QAAQ,GAAG,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;wBAC/E,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC7D,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,2DAA2D,CAAC;4BACxF,QAAQ,GAAG,GAAG,CAAC;wBACjB,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;4BAClD,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;4BACzC,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;4BAC3C,EAAE,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC;gCACzH,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oCAC7C,QAAQ,GAAG,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;gCAC/F,CAAC;gCACD,IAAI,CAAC,CAAC;oCACA,UAAU,GAAG,KAAK,CAAC;oCACvB,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;wCAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;4CAChC,IAAM,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,WAAW,CAAC;4CAC1C,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,kBAAkB,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;4CAC3F,QAAQ,GAAG,GAAG,CAAC;4CACf,UAAU,GAAG,IAAI,CAAC;wCACpB,CAAC;oCAEH,CAAC,CAAC,CAAC;oCACH,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;wCAChB,6CAA6C;wCACzC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,2DAA2D,CAAC;wCACxF,QAAQ,GAAG,GAAG,CAAC;oCACjB,CAAC;gCACH,CAAC;4BACH,CAAC;4BACD,IAAI,CAAC,CAAC;gCACJ,wCAAwC;gCACpC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,2DAA2D,CAAC;gCACxF,QAAQ,GAAG,GAAG,CAAC;4BACjB,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC;wBAClC,6DAA6D;wBAC7D,QAAQ,GAAG,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;oBAC/F,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC;wBACjC,QAAQ,GAAG,YAAY,CAAC;oBAC1B,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,gBAAgB,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;wBAC1J,QAAQ,GAAG,YAAY,CAAC;oBAC1B,CAAC;oBACD,yBAAyB;oBACzB,KAAI,CAAC,aAAa,CAAC,UAAU,EAC3B,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,OAAO,EACP,OAAO,EACP,IAAI,EACJ,MAAM,CACP,CAAC;gBACJ,CAAC;oBAnDS,GAAG,EAGH,QAAQ,EACR,GAAG,EAMC,UAAU,EAYR,GAAG,EAOP,GAAG;gBAtDf,uBAAuB;gBACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;4BAAxD,CAAC;iBA2ET;gBACD,0CAA0C;gBAC1C,wBAAwB;gBAExB,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC/B,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC/B,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACtC,CAAC;gBAED,IAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBAClD,IAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,gEAAgE;gBACjI,IAAM,SAAS,GAAG,KAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;gBACzD,IAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;gBACzD,KAAK,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;gBACxC,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAElB,qCAAqC;gBACrC,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAE3B,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAE1B,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,KAAK,KAAK,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC;oBACvE,+BAA+B;oBAC/B,6BAA6B;gBAC/B,CAAC;gBAED,iCAAiC;gBACjC,IAAM,OAAO,GAAG,KAAI,CAAC,SAAS,CAAC,KAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1D,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAiB,GAAjB;QAAA,iBA+BC;QA9BC,IAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAClE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,mBAAmB,CAAC,CAAC,CAAC;wBAC3D,KAAI,CAAC,eAAe,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;wBACjE,KAAI,CAAC,eAAe,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;wBAC/D,KAAI,CAAC,eAAe,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACvD,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC;wBAC/D,KAAI,CAAC,aAAa,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;wBAC/D,KAAI,CAAC,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;wBAC7D,KAAI,CAAC,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;wBACnD,KAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;wBAC3D,KAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;wBAC3D,KAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;wBAC3E,KAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;wBAC7E,KAAI,CAAC,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;oBAC/D,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC;wBAC7D,KAAI,CAAC,UAAU,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;wBAC1D,2DAA2D;wBAC3D,KAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;wBACxD,KAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;wBAExD,iGAAiG;oBACnG,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,EAAE,eAAK;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAgB,GAAhB;QAAA,iBAcC;QAbC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACtE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC7E,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,KAAI,CAAC,UAAU,EAAE,CAAC;YAClB,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACzE,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAiB,GAAjB,UAAkB,MAAc;QAAhC,iBA2CC;QA1CC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjB,0CAA0C;YAC1C,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC7D,gEAAgE;YAChE,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;YACjE,IAAI,CAAC,aAAa,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAChF,2DAA2D;YAC3D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,mCAAmC;YACnC,IAAM,OAAO,GAAG;gBACd,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;gBACzC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;gBACvC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;gBAC7B,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACrC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACrC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB;gBACrD,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB;gBACvD,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;gBACzC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,oBAAoB;gBAC7D,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE;aAE5C,CAAC;YACF,sCAAsC;YACtC,mDAAmD;YACnD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAChE,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;gBACnC,KAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,6EAA6E;gBAC7E,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;gBACvE,KAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBAChC,KAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC,EAAE,eAAK;gBACN,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;gBACnC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,+CAAc,GAAd;QAAA,iBAcC;QAbC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;QAC7D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACxE,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,KAAI,CAAC,UAAU,EAAE,CAAC;YAClB,6EAA6E;YAC7E,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACzE,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uDAAsB,GAAtB;QACE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5D,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5D,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzB,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE1B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAChC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,gDAAe,GAAf;QACE,6EAA6E;QAC7E,uGAAuG;QACvG,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAChG,uCAAuC;QACvC,MAAM,CAAC,GAAG,CAAC;QACX,6DAA6D;IAC/D,CAAC;IAED,sDAAqB,GAArB,UAAsB,OAAO;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,uCAAuC;QACvC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,UAAU,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC;gBACnD,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE;gBAC3B,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,sBAAsB;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,CAAC,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC;gBACnD,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE;gBAC3B,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,sBAAsB;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mDAAkB,GAAlB,UAAmB,QAAQ,EAAE,EAAE;QAC7B,gCAAgC;QAChC,mCAAmC;QACnC,yBAAyB;QACzB,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzH,CAAC,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEvE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;YAClD,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,mCAAmC;IACrC,CAAC;IAED,yDAAwB,GAAxB,UAAyB,IAAI,EAAE,SAAS;QACtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;QACrC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;YACtE,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC;YAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7D,oGAAoG;QACtG,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC;YAC5D,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;YACxD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC;YACzD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC;YAC7D,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,+CAAc,GAAd;QAAA,iBAmBC;QAlBC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5D,IAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtD,8BAA8B;YAC9B,IAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,IAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChD,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,IAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE9C,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtD,kDAAkD;YAElD,IAAM,MAAI,GAAG,EAAE,CAAC;YAChB,UAAU,CAAC,OAAO,CAAC,cAAI;gBACrB,MAAI,CAAC,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,6BAA6B;YAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,GAAG,MAAI,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,kDAAiB,GAAjB,UAAkB,SAAS,EAAE,IAAI,EAAE,QAAc,EAAE,SAAkB;QACnE,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACrB,IAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC5E,IAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO;YACzD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACzG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,mDAAkB,GAAlB,UAAmB,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;QACrD,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACrB,mCAAmC;YACnC,SAAS,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAClD,IAAM,IAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAM,UAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACpD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC7C,0DAA0D;YAC1D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YACnD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,IAAE,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAErC,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/C,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,uCAAuC,CAAC,CAAC;YACxE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAEjD,IAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACpD,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAEzD,IAAI,QAAQ,GAAG,UAAQ,CAAC,MAAM,GAAG,EAAE,GAAG,UAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,UAAQ,CAAC;YAEhF,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC;YAClC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE7B,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/C,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAEtD,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC7C,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;YAC/D,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;YAExB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBACjC,6BAA6B;gBAC7B,EAAE,CAAC,kBAAkB,CAAC,UAAQ,EAAE,IAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7B,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,0CAAS,GAAT;QAAA,iBAsBC;QArBC,2DAA2D;QAC3D,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACvD,yBAAyB;QACzB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAClE,yBAAyB;YACzB,KAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAO;gBACpC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC;YACxE,KAAI,CAAC,eAAe,GAAG;gBACrB,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aACvC,CAAC;YACF,yCAAyC;YACzC,gFAAgF;YAChF,MAAM;QAER,CAAC,EAAE,eAAK;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAgB,GAAhB;QACE,+BAA+B;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,iDAAgB,GAAhB;QACE,+BAA+B;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,mDAAkB,GAAlB,UAAmB,CAAC;QAClB,kBAAkB;QAClB,iHAAiH;QACjH,sGAAsG;QACtG,qBAAqB;IACvB,CAAC;IAED,mDAAkB,GAAlB,UAAmB,CAAC;QAClB,kBAAkB;QAClB,sGAAsG;QACtG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,iDAAiD,EAAE,OAAO,CAAC,CAAC;QAClG,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,gDAAe,GAAf,UAAgB,CAAC;QACf,iBAAiB;QACjB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/B,mFAAmF;QACnF,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,CAAC,UAAU,CAAC;YAChB,IAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAE,6BAA6B;YACxG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,qDAAoB,GAApB,UAAqB,CAAC;QACpB,IAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACrD,kFAAkF;QAClF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,mCAAmC;QACnC,oCAAoC;QACpC,2GAA2G;QAC3G,4DAA4D;QAC5D,iCAAiC;QACjC,MAAM;QACN,YAAY;QACZ,MAAM,CAAC,UAAU,CAAC;YAChB,IAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAE,6BAA6B;YACxG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,qBAAqB;IACrB,gDAAe,GAAf;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,4CAAW,EAAE,CAAC;QACnC,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,uCAAuC;QAEvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,2CAAU,CAAC;gBAChC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,EAAE,UAAU,CAAC;gBACrF,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,CAAC;aACf,CAAC,CAAC,CAAC;QACN,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,2CAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,2CAAU,CAAC;gBAChC,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;gBACxE,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,GAAG;aACjB,CAAC,CAAC,CAAC;QACN,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,6CAAY,GAAZ;QACE,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC9B,8BAA8B;YAC9B,uBAAuB;QACzB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,4CAAW,GAAX,UAAY,IAAI,EAAE,QAAQ,EAAE,QAAQ;QAClC,IAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,wBAAwB;QACxB,6CAA6C;QAC7C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,yCAAQ,GAAR;QAAA,iBAwCC;QAvCC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,4BAA4B;QAC5B,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3C,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1C,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QAC7D,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QAEpD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACrD,yBAAyB;YACzB,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBAC/B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACnE,KAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,KAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,KAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YACD,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,EAAE,eAAK;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,2BAA2B;IAC7B,CAAC;IAED,gDAAe,GAAf;QAAA,iBAWC;QAVC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAC,QAAQ;YACpD,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,kDAAkD;YACpD,CAAC;QACH,CAAC,EAAE,eAAK;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4CAAW,GAAX;QAAA,iBAQC;QAPC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,UAAC,QAAQ;YAChD,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;YAChC,CAAC;QACH,CAAC,EAAE,eAAK;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,yBAAyB;IACzB,6CAAY,GAAZ,UAAa,GAAG;QACd,oBAAoB;QACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;IACjD,CAAC;IAED,6CAAY,GAAZ;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACjJ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,sBAAsB;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,2CAAU,GAAV;QACE,+BAA+B;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,iDAAgB,GAAhB;QACE,qCAAqC;QACrC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,kDAAiB,GAAjB;QACE,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,2DAA0B,GAA1B;QACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,mDAAkB,GAAlB,UAAmB,GAAG;QACpB,mBAAmB;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,2CAAU,GAAV,UAAW,IAAI;QAAf,iBAmBC;QAlBC,oDAAoD;QACpD,4BAA4B;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC/F,yBAAyB;YACzB,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBAC/B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACnE,KAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,KAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,KAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YACD,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,CAAC,EAAE,eAAK;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAiB,GAAjB,UAAkB,MAAM;QAAxB,iBAWC;QAVC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC9D,yBAAyB;YACzB,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,IAAM,UAAU,GAAG,CAAC,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC3E,KAAI,CAAC,eAAe,GAAG,UAAU,CAAC;YACpC,CAAC;QACH,CAAC,EAAE,eAAK;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,oDAAmB,GAAnB;QACE,iCAAiC;QACjC,IAAI,CAAC,oBAAoB,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,qDAAoB,GAApB;QACE,kCAAkC;QAClC,IAAI,CAAC,oBAAoB,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,sDAAqB,GAArB;QACE,IAAI,CAAC,aAAa,GAAG;YACnB,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,EAAE;YACrB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,gBAAgB;YAC5B,oBAAoB,EAAE,IAAI;YAC1B,EAAE,EAAE,IAAI;SACT,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,oBAAoB,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,mDAAkB,GAAlB,UAAmB,GAAG;QACpB,mBAAmB;QACnB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAEzB,IAAI,CAAC,aAAa,GAAG;YACnB,IAAI,EAAE,GAAG,CAAC,oBAAoB;YAC9B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,gBAAgB;YAC5B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;YAC9C,EAAE,EAAE,GAAG,CAAC,EAAE;SACX,CAAC;IACJ,CAAC;IACD,oDAAmB,GAAnB;QAAA,iBAgBC;QAfC,kCAAkC;QAClC,IAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAClF,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC9D,yBAAyB;YACzB,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;gBAClC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;gBACzE,yCAAyC;gBACzC,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC3D,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC,EAAE,eAAK;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sDAAqB,GAArB;QAAA,iBAQC;QAPC,iCAAiC;QACjC,mDAAmD;QACnD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC3F,KAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC1C,CAAC,EAAE,UAAC,KAAK;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0DAAyB,GAAzB;QAAA,iBA2DC;QA1DC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QACD,IAAM,OAAO,GAAG;YACd,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,IAAI;YACd,qBAAqB,EAAE,IAAI;SAC5B,CAAC;gCACO,CAAC;YACR,OAAO,CAAC,QAAQ,GAAG,OAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5C,OAAK,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAChE,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC/D,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpF,iDAAiD;gBACjD,KAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC,EAAE,UAAC,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;;QAVD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAvC,CAAC;SAUT;gCA2BQ,CAAC;YACR,OAAO,CAAC,QAAQ,GAAG,OAAK,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,OAAO,CAAC,qBAAqB,GAAG,0BAA0B,CAAC;YAC3D,wBAAwB;YACxB,OAAK,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAEhE,KAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;gBACxF,KAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAI,CAAC,gBAAgB,CAAC,CAAC;YAClD,CAAC,EAAE,UAAC,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;;QArCD,sEAAsE;QACtE,iEAAiE;QACjE,8DAA8D;QAC9D,6BAA6B;QAC7B,6EAA6E;QAC7E,6FAA6F;QAC7F,wDAAwD;QACxD,uDAAuD;QACvD,oBAAoB;QACpB,0BAA0B;QAC1B,QAAQ;QACR,IAAI;QACJ,0EAA0E;QAC1E,qEAAqE;QACrE,mEAAmE;QACnE,6BAA6B;QAC7B,6EAA6E;QAC7E,iGAAiG;QACjG,wDAAwD;QACxD,uDAAuD;QACvD,oBAAoB;QACpB,0BAA0B;QAC1B,QAAQ;QACR,IAAI;QAGJ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAzD,CAAC;SAWT;IACH,CAAC;IAED,6CAAY,GAAZ,UAAa,MAAM;QACjB,uBAAuB;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IAED,gDAAe,GAAf,UAAgB,MAAM,EAAE,cAAc,EAAE,kBAAkB;QACxD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC5D,CAAC;IAED,gDAAe,GAAf,UAAgB,MAAM;QACpB,IAAI,GAAG,GAAG,MAAM,CAAC;QACjB,EAAE,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;YACrB,GAAG,GAAG,KAAK,CAAC;QACd,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC;YACnC,GAAG,GAAG,aAAa,CAAC;QACtB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACvC,GAAG,GAAG,gBAAgB,CAAC;QACzB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACvC,GAAG,GAAG,gBAAgB,CAAC;QACzB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;YAC9B,GAAG,GAAG,eAAe,CAAC;QACxB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,CAAC;QACD,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IAED,iDAAgB,GAAhB,UAAiB,QAAgB;QAC/B,IAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,EAAE,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;IAChC,CAAC;IAED,kDAAiB,GAAjB,UAAkB,OAAO,EAAE,UAAU;QACnC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,uCAAuC,CAAC,CAAC;YAC9M,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC;QAC3E,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,wCAAwC,CAAC,CAAC;YAC/M,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,eAAe,CAAC,CAAC;QACtG,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;YAC9B,4BAA4B;YAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gBAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;gBAC9B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;YACnC,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAoB,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtC,IAAI,CAAC,oBAAoB,CAAoB,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC1F,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED,uDAAsB,GAAtB;QAAA,iBAmBC;QAlBC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACnF,yBAAyB;YACzB,KAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,KAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAO;gBACpC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC;YACtC,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC;YAExE,UAAU,CAAC;gBACT,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;oBACnC,OAAO,EAAE,OAAO;iBACjB,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,2CAAU,GAAV,UAAW,GAAW;QACpB,IAAM,IAAI,GAAmB,QAAQ,CAAC,IAAI,CAAC;QAC3C,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,kDAAiB,GAAjB,UAAkB,OAAO,EAAE,GAAG;QAC5B,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;QAC5E,kHAAkH;QAClH,iHAAiH;QACjH,IAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACzF,IAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5F,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAC/D,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;QACjE,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,qBAAqB,CAAC,CAAC;QAC1D,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAClC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC3C,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1C,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QACzB,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,uBAAuB,CAAC,CAAC;QAC9D,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEjC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE3B,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE9D,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACnD,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB,CAAC;QAC7D,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QACpC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QACrC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;QACjC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACvC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAChC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;QAC7E,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAC7E,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEnE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,aAAa,GAAG,WAAW,CAAC;YAC9B,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC7B,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACnE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAChE,CAAC;YACD,UAAU,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC3C,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,iDAAgB,GAAhB,UAAiB,QAAQ;QACvB,IAAI,CAAC;YACH,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CAAC;YAClH,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC;QACnH,CAAC;QAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,uDAAsB,GAAtB,UAAuB,WAAW,EAAE,QAAQ;QAC1C,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QAErE,IAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC/E,IAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC9E,IAAM,SAAS,GAAG,YAAY,CAAC;QAC/B,IAAM,UAAU,GAAG,aAAa,CAAC;QAEjC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,qBAAqB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;QACpF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;QACnF,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,uBAAuB,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC;QAChG,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,uBAAuB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;IACpG,CAAC;IAED,wDAAuB,GAAvB,UAAwB,SAAS;QAC/B,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAK;YAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3B,MAAM,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4CAAW,GAAX,UAAY,SAAS,EAAE,SAAS;QAAhC,iBAgEC;QA9DC,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7B,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QAEpE,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;QACnD,CAAC;QAED,IAAI,aAAa,GAAG;YAClB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,SAAS,KAAK,GAAG,GAAG,EAAE,GAAG,SAAS;YAC5C,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACzE,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;YAE7B,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEjC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC1B,KAAI,CAAC,gBAAgB,CAAoB,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACtF,CAAC,CAAC,kCAAkC,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClE,CAAC,CAAC,GAAG,GAAG,KAAI,CAAC,aAAa,GAAG,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;wCAC5E,GAAG;oBACZ,EAAE,CAAC,CAAC,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,KAAK,EAAE,IAAI,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACvH,CAAC,CAAC,8BAA8B,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBAClE,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,KAAK,EAAE,IAAI,OAAO,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACvK,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,SAAS;4BAC7D,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gCAClC,CAAC,CAAC,8BAA8B,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;4BAClE,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAVD,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,KAAI,CAAC,aAAa,CAAC;4BAA1B,GAAG;iBAUb;YACH,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC/B,KAAI,CAAC,gBAAgB,CAAoB,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACtF,CAAC,CAAC,kCAAkC,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClE,CAAC,CAAC,GAAG,GAAG,KAAI,CAAC,aAAa,GAAG,kCAAkC,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAC/F,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC/B,KAAI,CAAC,oBAAoB,CAAoB,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC1F,CAAC,CAAC,kCAAkC,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClE,CAAC,CAAC,GAAG,GAAG,KAAI,CAAC,aAAa,GAAG,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACzF,CAAC;YAED,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAE7C,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC;YAChB,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,uDAAsB,GAAtB;QACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,kDAAiB,GAAjB,UAAkB,WAAW,EAAE,cAAc;QAC3C,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5D,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC;QACzC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,yCAAQ,GAAR;QACE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,mCAAmC;QACnC,UAAU,CAAC;YACT,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,yDAAwB,GAAxB,UAAyB,KAAU;QACjC,CAAC,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC;YACrC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QACH,4CAA4C;QAC5C,4DAA4D;QAC5D,qBAAqB;IACvB,CAAC;IACD,8CAAa,GAAb,UAAc,GAAQ;QACpB,6CAA6C;QAC7C,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO;QACrD,EAAE,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,6DAA4B,GAA5B;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAE/E,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;gBACtD,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,CAAC;gBACJ,CAAC,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBACzD,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;gBACxD,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,CAAC;gBACJ,CAAC,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBAC3D,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;gBAC7D,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,CAAC;gBACJ,CAAC,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBAChE,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mDAAkB,GAAlB,UAAmB,gBAAgB,EAAE,MAAM;QAA3C,iBA+BC;QA9BC,IAAM,IAAI,GAAG;YAEX,gBAAgB,EAAE,gBAAgB;YAClC,MAAM,EAAE,MAAM;SACf;QACD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAEtH,EAAE,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,MAAM,GAAG,2BAA2B,CAAC;YACtI,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,MAAM,GAAG,wBAAwB,CAAC;YACnI,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACxH,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;YAE/G,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAC7D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;oBACjC,6FAA6F;gBAC/F,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;oBACpC,0DAA0D;oBAC1D,0CAA0C;oBAC1C,6EAA6E;oBAC7E,iCAAiC;gBACnC,CAAC;YAEH,CAAC,EAAE,eAAK;gBACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,oDAAmB,GAAnB,UAAoB,gBAAgB,EAAE,MAAM;QAA5C,iBAgCC;QA/BC,IAAM,IAAI,GAAG;YAEX,gBAAgB,EAAE,gBAAgB;YAClC,MAAM,EAAE,MAAM;SACf;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,MAAM,KAAK,SAAS;eACpH,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAEzH,EAAE,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,MAAM,GAAG,2BAA2B,CAAC;YACxI,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,MAAM,GAAG,wBAAwB,CAAC;YACrI,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC1H,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAA1C,CAA0C,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;YAEjH,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBAC7D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;oBACjC,6FAA6F;gBAC/F,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;oBACpC,0DAA0D;oBAC1D,0CAA0C;oBAC1C,6EAA6E;oBAC7E,iCAAiC;gBACnC,CAAC;YAEH,CAAC,EAAE,eAAK;gBACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+CAAc,GAAd,UAAe,gBAAgB,EAAE,UAAU,EAAE,kBAAkB;QAA/D,iBAUC;QATC,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;gBACpF,EAAE,CAAC,sBAAsB,GAAG,UAAU,GAAG,KAAK,GAAG,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBACrG,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,KAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,IAAI,CAAC;gBACrG,kGAAkG;gBAClG,KAAI,CAAC,SAAS,CAAC,KAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAGD,+CAAc,GAAd,UAAe,gBAAgB,EAAE,MAAM,EAAE,kBAAkB;QAA3D,iBAoCC;QAlCC,EAAE,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,gBAAgB,IAAI,gBAAgB,EAA5C,CAA4C,CAAC;YAC5H,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,gBAAgB,IAAI,gBAAgB,EAA5C,CAA4C,CAAC;YAC9H,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,wCAAwC;QACxC,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACxD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;QAE/E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;QACpI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE5C,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,IAAI,KAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,EAA/C,CAA+C,CAAC,CAAC;QACvF,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;YAC/C,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAChE,CAAC;QAGD,+CAA+C;QAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,gDAAe,GAAf,UAAgB,gBAAgB;QAAhC,iBA0EC;QAzEC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;QAChE,IAAI,CAAC,sBAAsB,GAAG,gBAAgB,CAAC;QAC/C,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QAE3D,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,gBAAgB,IAAI,gBAAgB,EAA5C,CAA4C,CAAC;QAE9H,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,gBAAgB,IAAI,gBAAgB,EAA5C,CAA4C,CAAC;QAEhI,CAAC;QACD,+BAA+B;QAC/B,oDAAoD;QACpD,8CAA8C;QAC9C,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC3E,oDAAoD;QACpD,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC9C,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5C,0BAA0B;QAC1B,iBAAiB;QACjB,gIAAgI;QAChI,6EAA6E;QAC7E,IAAI;QACJ,qEAAqE;QACrE,IAAI;QACJ,cAAc;QAEd,IAAI,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,YAAY,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,IAAI,YAAY,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,aAAa,GAAG,IAAI,CAAC;YACzB,MAAM,GAAG,CAAC,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,IAAI,aAAa,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,gBAAgB,IAAI,gBAAgB,EAA5C,CAA4C,CAAC;QAC9H,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,gBAAgB,IAAI,gBAAgB,EAA5C,CAA4C,CAAC;QAChI,CAAC;QACD,IAAM,IAAI,GAAG;YAEX,gBAAgB,EAAE,gBAAgB;YAClC,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,YAAY;YAC1B,eAAe,EAAE,UAAU;YAC3B,gBAAgB,EAAE,aAAa;SAChC;QACD,EAAE,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC5D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;gBACjC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,oCAAoC,EAAE,SAAS,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;gBACpC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1E,CAAC;QAEH,CAAC,EAAE,eAAK;YACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iDAAgB,GAAhB;QACE,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,sDAAqB,GAArB,UAAsB,EAAE;QAEtB,EAAE,CAAC,cAAc,EAAE,CAAC,CAAE,sFAAsF;QAC5G,0DAA0D;QAE1D,2DAA2D;QAC3D,sDAAsD;QACtD,GAAG;IACL,CAAC;IAED,sDAAqB,GAArB,UAAsB,EAAE,EAAE,cAAc;QACtC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClD,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAE1D,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAErC,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC;QAExC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAE5C,kCAAkC;QAClC,4CAA4C;QAC5C,8DAA8D;IAChE,CAAC;IAED,sDAAqB,GAArB,UAAsB,EAAE;QAEtB,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAE9D,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC;QAExC,EAAE,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACtE,EAAE,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;gBACrD,iDAAiD;gBACjD,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,sBAAsB;QAEtB,iHAAiH;QAEjH,eAAe;QACf,oDAAoD;QACpD,sDAAsD;QACtD,IAAI;IACN,CAAC;IAED,sDAAqB,GAArB,UAAsB,EAAE;QAEtB,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC;QACxC,0CAA0C;QAE1C,8CAA8C;QAC9C,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAEtD,sDAAsD;QACtD,8CAA8C;IAChD,CAAC;IAED,oDAAmB,GAAnB,UAAoB,EAAE,EAAE,cAAc;QAEpC,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC;QAExC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAEhD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,iDAAiD;QACjD,sDAAsD;QAEtD,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QAE9C,+BAA+B;IACjC,CAAC;IAED,iDAAgB,GAAhB,UAAiB,EAAE,EAAE,cAAc;QACjC,sBAAsB;QACtB,wBAAwB;QACxB,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC;QACnC,6CAA6C;QAC7C,wBAAwB;QACxB,cAAc;QACd,sBAAsB;QACtB,oDAAoD;QACpD,IAAI,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;QACvD,8BAA8B;QAC9B,gCAAgC;QAEhC,8DAA8D;QAC9D,8DAA8D;QAE9D,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YAExD,wDAAwD;YACxD,4BAA4B;YAC5B,8BAA8B;YAE9B,wDAAwD;YACxD,wDAAwD;YAExD,8DAA8D;YAC9D,8DAA8D;YAC9D,sEAAsE;YAEtE,kCAAkC;YAClC,sEAAsE;YACtE,oGAAoG;YACpG,UAAU;YACV,4FAA4F;YAC5F,oGAAoG;YACpG,GAAG;YAEH,oEAAoE;YAEpE,mBAAmB;YACnB,wBAAwB;YACxB,wBAAwB;YACxB,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,cAAc,GAAe,EAAE,CAAC;YACpC,IAAI,OAAO,GAAG,EAAE,CAAC;YAEjB,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACrC,EAAE,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC;oBAC3B,YAAY,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBAClE,OAAO,GAAG,cAAc,CAAC;gBAC3B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC;oBAClC,YAAY,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBAClE,OAAO,GAAG,cAAc,CAAC;gBAC3B,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC5C,OAAO,GAAG,GAAG,CAAC;gBAChB,CAAC;gBAED,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;gBAChE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAEhC,wGAAwG;gBAExG,UAAU,CAAC,SAAS,EAAE,CAAC;gBACvB,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;QAClC,CAAC;IACH,CAAC;IAED,oDAAmB,GAAnB,UAAoB,KAAK;QAEvB,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;QAE3C,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE;YAC1G,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;YACtD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,gDAAe,GAAf;QAAA,iBAqHC;QAnHC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YAC/E,KAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC;YAEpB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;YACtD,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;YACtD,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;YACvD,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;YACzD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;YACxD,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;YACtD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;YAE3E,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAEhC,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC3C,CAAC,CAAC,sBAAsB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAEhD,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACjC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1B,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1B,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtB,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAE5B,KAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;oBAE3B,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC3C,CAAC,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACxC,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAEvC,MAAM,CAAC;gBACT,CAAC;gBAED,CAAC,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC1C,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC5C,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACrC,gDAAgD;gBAChD,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAA9B,CAA8B,CAAC,CAAC;gBAEzF,yCAAyC;gBACzC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,KAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACtD,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAErD,IAAI,SAAS,GAAG,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAErD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAE1C,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACR,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC1E,CAAC;oBACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACR,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC1E,CAAC;oBACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;wBACT,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC3E,CAAC;oBACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACR,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC7E,CAAC;oBACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;wBACV,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC5E,CAAC;oBACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACR,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC1E,CAAC;oBACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACR,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC5E,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,IAAI,OAAO,GAAG,EAAE,CAAC;gBAEjB,EAAE,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC;oBACvC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC;oBAC/C,OAAO,GAAG,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC;oBACrC,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBACrD,OAAO,GAAG,QAAQ,CAAC,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBACpD,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,OAAO,GAAG,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC;oBACrC,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAE/B,KAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;gBAEzD,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAO;oBACtC,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,EAA5B,CAA4B,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;gBACnF,CAAC,CAAC,CAAC;gBAEH,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC3C,yDAAyD;gBAEzD,MAAM;YAER,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,CAAC,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC9C,CAAC,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAE7C,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACrC,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACvC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1B,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8CAAa,GAAb,UAAc,kBAA2B;QAAzC,iBA2BC;QAzBC,IAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,OAAO,GAAG;YACZ,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACxD,qBAAqB;YACrB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;oBAChC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBAErF,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC,EAAE,eAAK;YACN,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,4DAA4D;gBAC5D,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAC/F,CAAC;YACD,wBAAwB;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oDAAmB,GAAnB;QAEE,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAET,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACtD,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACtD,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACvD,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACzD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACxD,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACtD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QAE3E,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAE;YAC/B,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAE3C,CAAC,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,yBAAyB;IACzB,gBAAgB;IAChB,+FAA+F;IAC/F,IAAI;IAEJ,gDAAe,GAAf;QACE,WAAW;QACX,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAE3B,IAAI,UAAU,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;QAChF,IAAI,WAAW,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;QAEjF,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC;YACxB,KAAK,EAAE,UAAU,GAAG,IAAI;YACxB,MAAM,EAAE,WAAW,GAAG,IAAI;YAC1B,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;QACH,iGAAiG;QACjG,4BAA4B;QAC5B,oCAAoC;QACpC,uCAAuC;QACvC,MAAM;QACN,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC,CAAC,CAAC;YAC1C,YAAY,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,YAAY,GAAG,GAAG,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAEzF,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,iDAAiD,GAAG,YAAY,GAAG,2BAA2B,CAAC,CAAC;QACvI,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,iDAAiD,GAAG,YAAY,GAAG,cAAc,CAAC,CAAC;QAC1H,CAAC;QAGD,gCAAgC;QAEhC,oDAAoD;QACpD,gGAAgG;QAChG,6BAA6B;QAC7B,4BAA4B;QAC5B,4CAA4C;QAC5C,6BAA6B;QAE7B,4BAA4B;QAC5B,2BAA2B;QAC3B,mCAAmC;QACnC,WAAW;QACX,2BAA2B;QAC3B,IAAI;IACN,CAAC;IAED,6CAAY,GAAZ;QAEE,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,YAAY,GAAG,GAAG,CAAC;QAEvB,IAAI,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,IAAI,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC;QAEvC,EAAE,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC;YAC/B,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;YACjE,WAAW,GAAG,WAAW,GAAG,EAAE,CAAC;YAE/B,IAAI,UAAU,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;YACtF,IAAI,WAAW,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;YAEvF,wBAAwB;YACxB,sBAAsB;YACtB,WAAW;YACX,uBAAuB;YACvB,IAAI;YACJ,iCAAiC;YACjC,mHAAmH;YACnH,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,IAAI,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC;gBAE5C,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC;oBACxB,KAAK,EAAE,UAAU,GAAG,IAAI;oBACxB,MAAM,EAAE,WAAW,GAAG,IAAI;oBAC1B,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;gBAEH,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC,CAAC,CAAC;oBAC1C,YAAY,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,YAAY,GAAG,GAAG,GAAG,WAAW,CAAC;gBACnC,CAAC;gBAED,IAAI,YAAY,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACzF,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,iDAAiD,GAAG,YAAY,GAAG,eAAe,CAAC,CAAC;gBAEzH,0DAA0D;gBAC1D,sDAAsD;gBACtD,mCAAmC;gBACnC,kBAAkB;gBAClB,uDAAuD;gBACvD,8DAA8D;gBAC9D,MAAM;gBACN,+EAA+E;gBAC/E,yCAAyC;gBACzC,2FAA2F;gBAC3F,gGAAgG;gBAEhG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,6BAA6B;QAC7B,oCAAoC;QAEpC,0BAA0B;QAE1B,2BAA2B;QAC3B,0CAA0C;QAC1C,IAAI;QACJ,gCAAgC;QAChC,kEAAkE;QAClE,yBAAyB;QAEzB,6BAA6B;QAC7B,oCAAoC;QACpC,4BAA4B;QAC5B,4CAA4C;QAC5C,6BAA6B;QAE7B,qBAAqB;QAErB,4BAA4B;QAC5B,2BAA2B;QAC3B,mCAAmC;QACnC,WAAW;QACX,2BAA2B;QAC3B,IAAI;IACN,CAAC;IAED,uDAAsB,GAAtB,UAAuB,UAAmB;QAExC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,QAAQ,GAAsB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,CAAC;QAChF,IAAI,QAAQ,GAAsB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,CAAC;QAChF,IAAI,SAAS,GAAsB,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC,OAAO,CAAC;QAClF,IAAI,WAAW,GAAsB,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC;QACtF,IAAI,UAAU,GAAsB,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,CAAC;QACpF,IAAI,QAAQ,GAAsB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,CAAC;QAChF,IAAI,UAAU,GAAsB,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,CAAC;QAEpF,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,YAAY,GAAG,YAAY,KAAK,EAAE,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC;QACrE,CAAC;QACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,YAAY,GAAG,YAAY,KAAK,EAAE,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;QACvE,CAAC;QACD,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAChB,YAAY,GAAG,YAAY,KAAK,EAAE,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC;QACrE,CAAC;QACD,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACf,YAAY,GAAG,YAAY,KAAK,EAAE,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;QACzE,CAAC;QACD,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,YAAY,GAAG,YAAY,KAAK,EAAE,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC;QACrE,CAAC;QACD,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACf,YAAY,GAAG,YAAY,KAAK,EAAE,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC;QACrE,CAAC;QAED,IAAI,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;QAEvC,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9C,aAAa,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC;YACtB,EAAE,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC;gBACzB,aAAa,GAAG,aAAa,GAAG,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,UAAU,GAAG,EAAE;QAEnB,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,KAAK,IAAI,EAArB,CAAqB,CAAC,CAAC;QAC3E,UAAU,CAAC,OAAO,CAAC,YAAE;YACnB,IAAI,SAAS,GAAG;gBACd,IAAI,EAAE,EAAE,CAAC,UAAU;aACpB,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG;YACZ,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE;YAC7B,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,aAAa;YACxB,UAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE;YACrC,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,UAAU;SACvB,CAAC;QACF,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvB,IAAI,YAAY,GAAG;YACjB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE;YACjC,KAAK,EAAE,QAAQ;SAChB,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,oDAAmB,GAAnB,UAAoB,kBAA2B;QAA/C,iBAuEC;QArEC,IAAI,QAAQ,GAAsB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,CAAC;QAChF,IAAI,QAAQ,GAAsB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,CAAC;QAChF,IAAI,SAAS,GAAsB,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC,OAAO,CAAC;QAClF,IAAI,WAAW,GAAsB,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC;QACtF,IAAI,UAAU,GAAsB,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,CAAC;QACpF,IAAI,QAAQ,GAAsB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,OAAO,CAAC;QAChF,IAAI,UAAU,GAAsB,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC,OAAO,CAAC;QAEpF,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1E,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACrE,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACxE,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,uCAAuC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACxF,MAAM,CAAC;QACT,CAAC;QAED,IAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAEhD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACV,MAAM,CAAC;QACT,CAAC;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,OAAO,GAAG;YACZ,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACxD,qBAAqB;YACrB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;oBAChC,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBACpF,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC,EAAE,eAAK;YACN,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,4DAA4D;gBAC5D,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAC/F,CAAC;YACD,wBAAwB;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mDAAkB,GAA1B,UAA2B,OAAY;QAAvC,iBAKC;QAJC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CACrD,kBAAQ,IAAI,YAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAhC,CAAgC,EAC5C,eAAK,IAAI,YAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAA1B,CAA0B,CACpC,CAAC;IACJ,CAAC;IAEO,kDAAiB,GAAzB,UAA0B,QAAa;QACrC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,+CAAc,GAAtB,UAAuB,KAAU;QAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IAEO,uDAAsB,GAA9B;QACE,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,CAAC;QAClC,UAAU,CAAC;YACT,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,uDAAsB,GAAtB;QAAA,iBA4BC;QA3BC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACtE,UAAC,QAAQ;gBACP,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9B,EAAE,EAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;wBAC/B,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;wBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;oBAC9F,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,KAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACzC,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;wBAC3B,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,KAAI,CAAC,SAAS,CAAC,KAAI,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;wBACzE,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;oBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;gBAC9F,CAAC;YACH,CAAC,EACD,UAAC,KAAK;gBACJ,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;gBAC7D,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAC9F,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oDAAmB,GAAnB,UAAoB,GAAG;QACrB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IA//O2B;QAA3B,gEAAS,CAAC,eAAe,CAAC;;iEAAuB;IAChB;QAAjC,gEAAS,CAAC,qBAAqB,CAAC;;uEAA6B;IAC/B;QAA9B,gEAAS,CAAC,kBAAkB,CAAC;;oEAA0B;IAClB;QAArC,gEAAS,CAAC,yBAAyB,CAAC;;2EAAiC;IACvC;QAA9B,gEAAS,CAAC,kBAAkB,CAAC;;oEAA0B;IACzB;QAA9B,gEAAS,CAAC,kBAAkB,CAAC;;oEAA0B;IACvB;QAAhC,gEAAS,CAAC,oBAAoB,CAAC;;sEAA4B;IAC9B;QAA7B,gEAAS,CAAC,iBAAiB,CAAC;;mEAAyB;IAC5B;QAAzB,gEAAS,CAAC,aAAa,CAAC;;+DAAqB;IACP;QAAtC,gEAAS,CAAC,0BAA0B,CAAC;;4EAAkC;IACvC;QAAhC,gEAAS,CAAC,oBAAoB,CAAC;;sEAA4B;IACzB;QAAlC,gEAAS,CAAC,sBAAsB,CAAC;;wEAA8B;IAC3B;QAApC,gEAAS,CAAC,wBAAwB,CAAC;;0EAAgC;IAC9B;QAArC,gEAAS,CAAC,yBAAyB,CAAC;;2EAAiC;IACnC;QAAlC,gEAAS,CAAC,sBAAsB,CAAC;;wEAA8B;IAClC;QAA7B,gEAAS,CAAC,iBAAiB,CAAC;;mEAAyB;IACxB;QAA7B,gEAAS,CAAC,iBAAiB,CAAC;;mEAAyB;IACtB;QAA/B,gEAAS,CAAC,mBAAmB,CAAC;;qEAA2B;IAC7B;QAA5B,gEAAS,CAAC,gBAAgB,CAAC;;kEAAwB;IAClB;QAAjC,gEAAS,CAAC,qBAAqB,CAAC;;uEAA6B;IAC/B;QAA9B,gEAAS,CAAC,kBAAkB,CAAC;;oEAA0B;IACzB;QAA9B,gEAAS,CAAC,kBAAkB,CAAC;;oEAA0B;IACzB;QAA9B,gEAAS,CAAC,kBAAkB,CAAC;;oEAA0B;IACvB;QAAhC,gEAAS,CAAC,oBAAoB,CAAC;;sEAA4B;IACnC;QAAxB,gEAAS,CAAC,YAAY,CAAC;;8DAAoB;IACL;QAAtC,gEAAS,CAAC,0BAA0B,CAAC;;4EAAkC;IAixHxE;QADC,mEAAY,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAC;;yCACX,aAAa;;qEAK9C;IAxuIU,sBAAsB;QAPlC,gEAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;;;SAK/B,CAAC;yCAmeuB,2EAAW;YACV,4EAAQ;YACP,+EAAa;YACP,2FAAmB;YACxB,8EAAwB;YAClC,4EAAW;YACP,wEAAY;YACf,yDAAU;YACJ,2EAAW;YACX,0FAAkB;YACV,4FAAmB;OA5evC,sBAAsB,CAy7PlC;IAAD,6BAAC;CAAA;AAz7PkC;;;;;;;;ACjDnC,iCAAiC,2CAA2C,gCAAgC,KAAK,gBAAgB,uBAAuB,KAAK,sBAAsB,mBAAmB,sBAAsB,yBAAyB,KAAK,uBAAuB,mBAAmB,oCAAoC,sBAAsB,yBAAyB,2BAA2B,KAAK,6BAA6B,0BAA0B,4BAA4B,KAAK,6BAA6B,0BAA0B,4BAA4B,KAAK,0BAA0B,0BAA0B,4BAA4B,KAAK,uBAAuB,0CAA0C,gCAAgC,KAAK,kDAAkD,gCAAgC,KAAK,yCAAyC,gCAAgC,KAAK,8CAA8C,gCAAgC,KAAK,oCAAoC,gCAAgC,KAAK,sBAAsB,2BAA2B,gCAAgC,oCAAoC,KAAK,4BAA4B,mBAAmB,6BAA6B,6BAA6B,sBAAsB,8BAA8B,+BAA+B,0CAA0C,4BAA4B,KAAK,6BAA6B,mBAAmB,6BAA6B,6BAA6B,sBAAsB,8BAA8B,+BAA+B,0CAA0C,KAAK,4BAA4B,mCAAmC,8BAA8B,KAAK,yBAAyB,0BAA0B,KAAK,8BAA8B,4BAA4B,0BAA0B,sBAAsB,uBAAuB,KAAK,C;;;;;;;ACAh9D,+ZAA+Z,UAAU,kZAAkZ,6kCAA6kC,4CAA4C,+8KAA+8K,mrBAAmrB,oBAAoB,oTAAoT,oGAAoG,uPAAuP,UAAU,8vBAA8vB,gBAAgB,otE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA93S;AAEzC;AAChB;AACK;AAU/D;IAuBI,+BAAoB,WAAwB,EAChC,mBAAwC,EACxC,cAAwC;QAFhC,gBAAW,GAAX,WAAW,CAAa;QAChC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAA0B;QAhB1C,8BAAyB,GAAG,IAAI,2DAAY,EAA4B,CAAC;QAE5E,kBAAa,GAAY,KAAK,CAAC;QAE/B,iBAAY,GAAkB,IAAI,CAAC;QACnC,aAAQ,GAAG,IAAI,CAAC;QAEf,WAAM,GAAkB,IAAI,CAAC;QAC7B,aAAQ,GAA0B,IAAI,CAAC;QAEvC,eAAU,GAAmC,IAAI,CAAC;QAClD,eAAU,GAAmC,IAAI,CAAC;QAClD,YAAO,GAAgC,IAAI,CAAC;QAK5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAEC,wCAAQ,GAAd;;;;;;wBACI,SAAI;wBAAU,qBAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE;;wBAAhE,GAAK,MAAM,GAAG,SAAkD,CAAC;;;;;KACpE;IAEK,+CAAe,GAArB;;;gBACI,wEAAwE;gBACxE,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;;;;KAC9C;IAEK,2CAAW,GAAjB;;;gBACI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,uFAAuF;gBACvF,IAAI,CAAC,kBAAkB,EAAE,CAAC;;;;KAC7B;IAEK,mDAAmB,GAAzB;;;gBACI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;;;KAC9B;IAEa,kDAAkB,GAAhC;;;;gBACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,mCAAmC,EAAE,OAAO,CAAC,CAAC;oBACpF,MAAM,gBAAC;gBACX,CAAC;gBAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAEvC,8DAA8D;gBAC9D,UAAU,CAAC;oBACP,EAAE,CAAC,CAAC,KAAI,CAAC,iBAAiB,IAAI,KAAI,CAAC,iBAAiB,IAAI,KAAI,CAAC,cAAc,CAAC,CAAC,CAAC;wBAC1E,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACrD,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;wBAE5D,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACrD,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;wBAE5D,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC/C,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBAC1D,CAAC;gBACL,CAAC,EAAE,CAAC,CAAC,CAAC;;;;KACT;IAEK,+DAA+B,GAArC,UAAsC,KAAY;;;;;;;wBAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;6BAGnB,IAAI,CAAC,UAAU,EAAf,wBAAe;wBAEX,GAAG,GAAG,GAAG,CAAC;wBACV,GAAG,GAAG,CAAC,CAAC;wBACZ,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC;4BACzD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;4BAC3B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,kDAAkD,EAAE,OAAO,CAAC,CAAC;4BACnG,MAAM,gBAAC;wBACX,CAAC;wBAED,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;wBACF,qBAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;;wBAArF,KAAmB,SAAkE,EAAnF,KAAK,aAAE,KAAK;wBAEpB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACR,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;4BAC3B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;4BAC5F,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;wBACzC,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACX,OAAO,GAAG;gCACV,KAAK,EAAE,KAAK,CAAC,EAAE;gCACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gCACvB,kBAAkB,EAAE,IAAI,CAAC,cAAc;gCACvC,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE;gCACnC,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE;gCACjC,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE;gCAC/B,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE;gCACjC,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE;gCAC/B,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE;gCACzB,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE;gCAC3B,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE;6BAC1B;4BAED,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,CACtD,UAAC,QAAQ,IAAK,YAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,EAA3C,CAA2C,EACzD,UAAC,GAAG,IAAK,YAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAnC,CAAmC,CAC/C,CAAC;wBACN,CAAC;;;;;;KAER;IAED,4DAA4B,GAA5B,UAA6B,QAAa;QAA1C,iBAwBC;QAvBG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAE3B,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAE3B,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACpE,UAAC,QAAQ;gBACL,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5B,KAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACzC,KAAI,CAAC,cAAc,GAAG,CAAC,CAAC;oBACxB,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;YACL,CAAC,EACD,UAAC,KAAK;gBACF,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAChG,CAAC,CACJ,CAAC;QACN,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAED,yDAAyB,GAAzB,UAA0B,KAAK;QAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,2CAA2C,EAAE,OAAO,CAAC,CAAC;IAChG,CAAC;IAED,uCAAO,GAAP;QAEI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,EAAE,EAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,0BAA0B,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,EAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,iCAAiC;QACjC,iDAAiD;QACjD,oBAAoB;QACpB,IAAI;QACJ,mCAAmC;QACnC,mDAAmD;QACnD,oBAAoB;QACpB,IAAI;QACJ,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,mDAAmB,GAAnB,UAAoB,KAAK;QACrB,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5D,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClE,CAAC;IAED,mDAAmB,GAAnB;QAAA,iBAcC;QAbG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;YACxF,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC9B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACrE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,qCAAqC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACnG,CAAC;QACH,CAAC,EAAE,eAAK;YACJ,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gDAAgB,GAAhB;QACI,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC9B,CAAC;IAnM+B;QAA/B,gEAAS,CAAC,mBAAmB,CAAC;kCAAoB,yDAAU;oEAAC;IAC9B;QAA/B,gEAAS,CAAC,mBAAmB,CAAC;kCAAoB,yDAAU;oEAAC;IACjC;QAA5B,gEAAS,CAAC,gBAAgB,CAAC;kCAAiB,yDAAU;iEAAC;IAG/C;QAAR,4DAAK,EAAE;;sEAAiC;IAChC;QAAR,4DAAK,EAAE;;2DAAyB;IAEvB;QAAT,6DAAM,EAAE;;4EAA0E;IAT1E,qBAAqB;QALjC,gEAAS,CAAC;YACP,QAAQ,EAAE,kBAAkB;;;SAG/B,CAAC;yCAwBmC,2EAAW;YACX,2FAAmB;YACxB,6EAAwB;OAzB3C,qBAAqB,CAqMjC;IAAD,4BAAC;CAAA;AArMiC;;;;;;;;;;;;;;;;;;;;;;;;ACdS;AACwD;AAC9C;AAErB;AACD;AAG/B;IACE,mBACU,WAAwB,EACxB,MAAc;QADd,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAQ;IACrB,CAAC;IAEJ,+BAAW,GAAX,UACE,IAA4B,EAC5B,KAA0B;QAF5B,iBAiBC;QAdC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;aACvC,GAAG,CAAC,UAAC,UAAmB;YACvB,EAAE,CAAC,CAAE,CAAC,UAAU,IAAI,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM;gBACzC,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACL,6CAA6C;QAC7C,iBAAiB;QACjB,IAAI;QACJ,iEAAiE;QACjE,8EAA8E;QAC9E,gBAAgB;IAClB,CAAC;IAvBU,SAAS;QADrB,iEAAU,EAAE;yCAGY,2EAAW;YAChB,+DAAM;OAHb,SAAS,CAwBrB;IAAD,gBAAC;CAAA;AAxBqB;;;;;;;;;ACRtB;AAAA;AAA6B;;;;;;;;;ACA7B;AAAA;IAOE;IAAe,CAAC;IAClB,WAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;ACRmD;AACK;AAKzD;IAEE,kBAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAC/C,4BAAS,GAAT,UAAU,GAAG;QACX,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IALU,QAAQ;QAHpB,2DAAI,CAAC;YACJ,IAAI,EAAE,MAAM;SACb,CAAC;yCAG+B,uEAAY;OAFhC,QAAQ,CAOpB;IAAD,eAAC;CAAA;AAPoB;;;;;;;;;;;;;;;;;;;;;;;;;ACNsB;AACO;AACY;AACF;AACf;AAK7C;IAIE,6BAAoB,IAAgB,EAAU,mBAAyC,EAAU,WAA+B,EAAU,WAAwB;QAA9I,SAAI,GAAJ,IAAI,CAAY;QAAU,wBAAmB,GAAnB,mBAAmB,CAAsB;QAAU,gBAAW,GAAX,WAAW,CAAoB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAChK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAED,wDAA0B,GAA1B,UAA2B,QAAQ;QACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,oCAAoC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACxG,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA+B,GAA/B,UAAgC,QAAQ;QACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,yCAAyC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC7G,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4CAAc,GAAd,UAAe,IAAI;QACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,iBAAiB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACjF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0CAAY,GAAZ,UAAa,IAAI;QACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC/E,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0CAAY,GAAZ,UAAa,IAAI;QACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC/E,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yDAA2B,GAA3B,UAA4B,QAAQ;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,qCAAqC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACzG,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0CAAY,GAAZ,UAAa,IAAI;QACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC/E,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAW,GAAX,UAAY,IAAI;QACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,oBAAoB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACpF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAuB,GAAvB,UAAwB,gBAAgB;QACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,iCAAiC,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC7G,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IA5DU,mBAAmB;QAD/B,iEAAU,EAAE;yCAKe,wEAAU,EAA+B,4EAAoB,EAAuB,iFAAkB,EAAuB,kEAAW;OAJvJ,mBAAmB,CA6D/B;IAAD,0BAAC;CAAA;AA7D+B;;;;;;;;;;;;;;;;;;;;;ACTW;AACN;AAKrC;IAMG,4BAAoB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;QAL9B,8DAA8D;QAC9D,qEAAqE;QAE7D,WAAM,GAAW,IAAI,CAAC;IAG9B,CAAC;IAED;;OAEG;IACI,sCAAS,GAAhB,UAAiB,GAAQ;QACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,iCAAI,GAAX;QAAA,iBAgBC;QAfE,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAChC,IAAI,OAAO,GAAQ,IAAI,CAAC;YACxB,OAAO,GAAG,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACrD,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACX,OAAO;qBACH,GAAG,CAAC,aAAG,IAAI,UAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC;qBACtB,SAAS,CAAC,UAAC,YAAiB;oBAC1B,KAAI,CAAC,MAAM,GAAG,YAAY,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,CAAC;gBACL,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACN,CAAC;IArCS,kBAAkB;QAD9B,iEAAU,EAAE;yCAOgB,2DAAI;OANpB,kBAAkB,CAsC9B;IAAD,yBAAC;CAAA;AAtC8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNY;AACO;AAGnB;AACM;AACkB;AACvD,4CAA4C;AACkB;AACF;AAEpB;AACe;AACZ;AACZ;AAO/B;IAQE,mCAAmC;IACnC,qBAAoB,IAAgB,EAAU,mBAAyC,EAAU,WAA+B,EAAU,aAA+B;QAArJ,SAAI,GAAJ,IAAI,CAAY;QAAU,wBAAmB,GAAnB,mBAAmB,CAAsB;QAAU,gBAAW,GAAX,WAAW,CAAoB;QAAU,kBAAa,GAAb,aAAa,CAAkB;QAPjK,YAAO,GAAY,IAAI,8DAAO,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACvE,aAAQ,GAAG,IAAI,6EAAe,CAAU,KAAK,CAAC,CAAC,CAAC,MAAM;QACvD,YAAO,GAAG,IAAI,6EAAe,CAAC,IAAI,CAAC,CAAC;QAEpC,eAAU,GAAG,IAAI,CAAC;QAclB,yBAAoB,GAAG,IAAI,8CAAO,EAAE,CAAC;QAV1C,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnE,gEAAgE;QAClE,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC9D,wCAAwC;IAC1C,CAAC;IAQD,sBAAI,mCAAU;QAJd;;;WAGG;aACH;YACE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM;QAC7C,CAAC;;;OAAA;IAED,sBAAI,oCAAW;aAAf;YACE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;;;OAAA;IAED,sBAAI,uCAAc;aAAlB;YACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC;;;OAAA;IAED;;;;;OAKG;IACH,2BAAK,GAAL,UAAM,QAAgB,EAAE,QAAgB;QAAxC,iBAcC;QAbC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,cAAI;YACxG,0DAA0D;YAC1D,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC9B,kGAAkG;gBAClG,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/D,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzB,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,6BAA6B;YAC/B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mCAAa,GAAb,UAAc,QAAgB,EAAE,QAAgB,EAAE,WAAmB;QACnE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,qBAAqB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,cAAI;YAChJ,MAAM,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAAM,GAAN;QACE,iDAAiD;QACjD,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,sBAAsB;QACtB,iBAAiB;IACnB,CAAC;IAED,sCAAgB,GAAhB,UAAiB,KAAa,EAAE,OAAe,EAAE,IAAa;QAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACb,KAAK,SAAS;gBACZ,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE;oBAC/C,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,KAAK;oBACtB,YAAY,EAAE,KAAK;oBACnB,YAAY,EAAE,KAAK;oBACnB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;gBACH,KAAK,CAAC;YACR,KAAK,OAAO,CAAC;YACb,KAAK,OAAO;gBACV,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;oBAC7C,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,IAAI;oBACrB,YAAY,EAAE,IAAI;oBAClB,YAAY,EAAE,KAAK;oBACnB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;gBACH,KAAK,CAAC;YACN,KAAK,MAAM;gBACP,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;oBAC5C,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,IAAI;oBACrB,YAAY,EAAE,IAAI;oBAClB,YAAY,EAAE,KAAK;oBACnB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;gBACH,KAAK,CAAC;YACV,KAAK,MAAM;gBACP,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;oBAC5C,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,IAAI;oBACrB,YAAY,EAAE,IAAI;oBAClB,YAAY,EAAE,KAAK;oBACnB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;gBACH,KAAK,CAAC;YACZ;gBACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;oBAC7C,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,IAAI;oBACrB,YAAY,EAAE,IAAI;oBAClB,YAAY,EAAE,KAAK;oBACnB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;gBACH,KAAK,CAAC;QACV,CAAC;IACH,CAAC;IAED,oCAAc,GAAd;QAEE,8FAA8F;QAC9F,qBAAqB;QACrB,MAAM;QAEN,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAED,iCAAW,GAAX;QACE,kDAAkD;QAClD,oCAAoC;QACpC,gDAAgD;QAChD,kBAAkB;QAClB,wBAAwB;QACxB,MAAM;QAEN,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,wCAAkB,GAAlB,UAAmB,QAAQ;QACzB,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;QACtD,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QACpD,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;QAElD,oCAAoC;QACpC,IAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,qEAAqE;QACrE,iRAAiR;QACjR,0RAA0R;QAC1R,iLAAiL;QACjL,IAAM,QAAQ,GAAG,gGAAgG,GAAG,QAAQ,GAAG,gCAAgC,CAAC;QAChK,oIAAoI;QACpI,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC/B,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvC,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;YACxB,IAAM,QAAM,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,mCAAmC;YAC9F,QAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC5B,qBAAqB;YACrB,sBAAsB;YACtB,QAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnB,QAAM,CAAC,EAAE,CAAC,OAAO,EAAE;gBACjB,QAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC,CAAE,6CAA6C;QACpD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChB,IAAM,QAAM,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE,mCAAmC;YAC5F,QAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnB,QAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,QAAM,CAAC,aAAa,CAAC,IAAI,EAAE;YAC3B,yBAAyB;YACzB,+CAA+C;YAC/C,qBAAqB;YACrB,sBAAsB;YACtB,QAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnB,QAAM,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,QAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,6CAA6C;QACpG,CAAC;QAED,uCAAuC;QACvC,uBAAuB;QACvB,oBAAoB;QACpB,MAAM;IACR,CAAC;IAED,uCAAiB,GAAjB;QAEE,IAAM,oBAAoB,GAAG,CAAC;QAC9B,4EAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAClD,CAAC;IArMU,WAAW;QADvB,iEAAU,EAAE;yCAUe,wEAAU,EAA+B,4EAAoB,EAAuB,iFAAkB,EAAyB,6EAAgB;OAT9J,WAAW,CAsMvB;IAAD,kBAAC;CAAA;AAtMuB;;;;;;;;;;;;;;;;;;;;;ACrBmB;AACY;AAGvD;IAaE;QAZO,SAAI,GAAG,EAAE,CAAC;QACV,aAAQ,GAAG,EAAE,CAAC;QACd,aAAQ,GAAG,EAAE,CAAC;QACb,kBAAa,GAAG,IAAI,6EAAe,CAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,iBAAY,GAAG,IAAI,6EAAe,CAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,mBAAc,GAAG,IAAI,6EAAe,CAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,mBAAc,GAAG,IAAI,6EAAe,CAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,mBAAc,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACnD,kBAAa,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QACjD,gBAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACjD,oBAAe,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAErC,CAAC;IAEjB,mCAAa,GAAb,UAAc,OAAY;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,kCAAY,GAAZ,UAAa,OAAY;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,8BAAQ,GAAR,UAAS,QAAQ;QACf,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,oCAAc,GAAd,UAAe,QAAQ;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IA7BU,WAAW;QADvB,iEAAU,EAAE;;OACA,WAAW,CA8BvB;IAAD,kBAAC;CAAA;AA9BuB;;;;;;;;;;;;;;;;;;;;;;;;;ACJmB;AACO;AACY;AACF;AACf;AAK7C;IAIE,uBAAoB,IAAgB,EAAU,mBAAyC,EAAU,WAA+B,EAAU,WAAwB;QAA9I,SAAI,GAAJ,IAAI,CAAY;QAAU,wBAAmB,GAAnB,mBAAmB,CAAsB;QAAU,gBAAW,GAAX,WAAW,CAAoB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAChK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAED,mCAAW,GAAX,UAAY,IAAI;QACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,gBAAgB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAChF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAa,GAAb,UAAc,IAAI;QAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,qBAAqB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACrF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0CAAkB,GAAlB,UAAmB,OAAiB;QAAjB,2CAAiB;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,OAAO,GAAG,uDAAuD,EAAE,EAAE,YAAY,EAAE,MAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACrL,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAAA,CAAC;IAEF,2CAAmB,GAAnB,UAAoB,IAAI;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACnF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,wCAAgB,GAAhB,UAAiB,IAAI;QACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,gBAAgB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAChF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,6CAAqB,GAArB,UAAsB,IAAI;QACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,kBAAkB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAClF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,6CAAqB,GAArB,UAAsB,IAAI;QACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,sBAAsB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACtF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,2CAAmB,GAAnB;QACC,WAAW;QACV,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QACjD,IAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,gBAAgB,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACpF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,mDAAmD;YACjD,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,0CAAkB,GAAlB,UAAmB,IAAI;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,cAAc,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC9E,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,yCAAiB,GAAjB,UAAkB,IAAI;QACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,oBAAoB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACpF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,wCAAgB,GAAhB,UAAiB,IAAI;QACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,sBAAsB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACtF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,0CAAkB,GAAlB,UAAmB,IAAI;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,kCAAkC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAClG,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,yCAAiB,GAAjB,UAAkB,MAAM,EAAE,UAAU;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,0BAA0B,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC5F,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,wDAAwD;IACxD,6EAA6E;IAC7E,uBAAuB;IACvB,QAAQ;IACR,IAAI;IACJ,yCAAyC;IACzC,qHAAqH;IACrH,yEAAyE;IACzE,yBAAyB;IACzB,uBAAuB;IACvB,QAAQ;IACR,IAAI;IACJ,2CAAmB,GAAnB,UAAoB,QAAQ;QAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,qBAAqB,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACzF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,yCAAiB,GAAjB,UAAkB,MAAM;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,2BAA2B,GAAG,MAAM,GAAG,8BAA8B,EAAE,EAEnH,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACb,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,2CAAmB,GAAnB,UAAoB,IAAI;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,6BAA6B,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC7F,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,6CAAqB,GAArB,UAAsB,IAAI;QACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC5E,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,wCAAgB,GAAhB,UAAiB,IAAI;QACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACnF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,oCAAY,GAAZ,UAAa,IAAI;QACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YAC/E,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IA5HU,aAAa;QADzB,iEAAU,EAAE;yCAKe,wEAAU,EAA+B,4EAAoB,EAAuB,iFAAkB,EAAuB,kEAAW;OAJvJ,aAAa,CA6HzB;IAAD,oBAAC;CAAA;AA7HyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTiB;AACqG;AACpF;AACV;AAIlD;IAOI,6BAAoB,WAA+B,EAAU,IAAgB;QAAzD,gBAAW,GAAX,WAAW,CAAoB;QAAU,SAAI,GAAJ,IAAI,CAAY;QANrE,WAAM,GAAkB,IAAI,CAAC;QAC7B,aAAQ,GAA0B,IAAI,CAAC;QAM3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEa,8CAAgB,GAA9B;;;;;;wBACI,SAAI;wBAAU,qBAAM,6EAAU,CAAC,IAAI,CAAC,cAAc,CAAC;;wBAAnD,GAAK,MAAM,GAAG,SAAqC,CAAC;;;;;KACvD;IAEM,+CAAiB,GAAxB;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,oDAAsB,GAAtB,UAAuB,QAAgB;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAS,IAAI,CAAC,WAAW,6BAAwB,QAAU,CAAC,CAAC;IACrF,CAAC;IAED,4CAAc,GAAd,UAAe,qBAA0B;QACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,IAAI,CAAC,WAAW,gCAA6B,EAAE,qBAAqB,EAAE;YAChG,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAClD,CAAC,CAAC;IACP,CAAC;IAED,mDAAqB,GAArB,UAAsB,mBAAwB;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,IAAI,CAAC,WAAW,gCAA6B,EAAE,mBAAmB,EAAE;YAC9F,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAClD,CAAC,CAAC;IACP,CAAC;IAEK,4CAAc,GAApB;;;gBACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3C,CAAC;gBACD,sBAAO,IAAI,CAAC,QAAQ,EAAC;;;KACxB;IAEK,gDAAkB,GAAxB,UAAyB,iBAA0C;;;;;;6BAE3D,CAAC,IAAI,CAAC,MAAM,EAAZ,wBAAY;wBACZ,SAAI;wBAAU,qBAAM,6EAAU,CAAC,IAAI,CAAC,cAAc,CAAC;;wBAAnD,GAAK,MAAM,GAAG,SAAqC,CAAC;;4BAI/B,qBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC;;wBAAnE,KAAmB,SAAgD,EAAjE,KAAK,aAAE,KAAK;wBAEpB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACR,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;4BACtD,MAAM,gBAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,SAAE,EAAC;wBAClC,CAAC;wBAED,sBAAO,EAAE,KAAK,SAAE,KAAK,EAAE,IAAI,EAAE,EAAC;;;;KACjC;IAEK,iDAAmB,GAAzB,UAA0B,WAA8B;;;;gBACpD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBACtD,CAAC;gBAEK,iBAAiB,GAAgC;oBACnD,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW;iBACpB,CAAC;gBAEF,sBAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAC;;;KAC7D;IAEK,iDAAmB,GAAzB,UAA0B,SAAiB;;;;;4BACtB,qBAAM,KAAK,CAAI,IAAI,CAAC,WAAW,qCAAkC,EAAE;4BAChF,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE;gCACL,cAAc,EAAE,kBAAkB;6BACrC;4BACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACjB,SAAS,EAAE,SAAS;6BACvB,CAAC;yBACL,CAAC;;wBARI,QAAQ,GAAG,SAQf;wBAEW,qBAAM,QAAQ,CAAC,IAAI,EAAE;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,sBAAO,IAAI,CAAC,IAAI,EAAC;;;;KACpB;IAED,gDAAkB,GAAlB,UAAmB,YAAoB,EAAE,WAAgB;QACrD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE;YAChD,cAAc,EAAE;gBACZ,IAAI,EAAE,WAAW;aACpB;SACJ,CAAC,CAAC;IACP,CAAC;IAED,kDAAoB,GAApB,UAAqB,QAAgB,EAAE,eAAuB;QAC1D,qDAAqD;QACrD,MAAM,CAAC,KAAK,CAAI,IAAI,CAAC,WAAW,gCAA6B,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;aACrC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,QAAQ,EAAE,QAAQ;gBAClB,eAAe,EAAE,eAAe;aACnC,CAAC;SACL,CAAC,CAAC,IAAI,CAAC,kBAAQ;YACZ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAEK,qDAAuB,GAA7B,UAA8B,SAAiB;;;;;4BAC1B,qBAAM,KAAK,CAAI,IAAI,CAAC,WAAW,oCAA+B,SAAW,EAAE;4BACxF,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE;gCACL,cAAc,EAAE,kBAAkB;6BACrC;yBACJ,CAAC;;wBALI,QAAQ,GAAG,SAKf;wBAEW,qBAAM,QAAQ,CAAC,IAAI,EAAE;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,sBAAO,IAAI,CAAC,IAAI,EAAC;;;;KACpB;IA9HQ,mBAAmB;QAD/B,iEAAU,EAAE;yCAQwB,iFAAkB,EAAgB,wEAAU;OAPpE,mBAAmB,CA+H/B;IAAD,0BAAC;CAAA;AA/H+B;;;;;;;;;;;;;;;;;;;;;;;;;ACPW;AACO;AACY;AACF;AACf;AAK7C;IAGE,qBAAoB,IAAgB,EAAU,mBAAyC,EAAU,WAA+B,EAAU,WAAwB;QAA9I,SAAI,GAAJ,IAAI,CAAY;QAAU,wBAAmB,GAAnB,mBAAmB,CAAsB;QAAU,gBAAW,GAAX,WAAW,CAAoB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAChK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAGD,8BAAQ,GAAR,UAAS,IAAI;QACX,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,WAAW,GAAG,uBAAuB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACvF,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gCAAU,GAAV,UAAW,cAAc,EAAE,aAAa;QACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAM,IAAI,CAAC,WAAW,GAAG,kCAAkC,GAAG,cAAc,GAAG,iBAAiB,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACnJ,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iCAAW,GAAX;QACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACrE,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAe,GAAf;QACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,kBAAQ;YACrE,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IA9BU,WAAW;QADvB,iEAAU,EAAE;yCAIe,wEAAU,EAA+B,4EAAoB,EAAuB,iFAAkB,EAAuB,kEAAW;OAHvJ,WAAW,CA+BvB;IAAD,kBAAC;CAAA;AA/BuB;;;;;;;;;ACTxB;AAAA,mFAAmF;AACnF,8FAA8F;AAC9F,yEAAyE;AACzE,gFAAgF;AAEzE,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,IAAI;CACjB,CAAC;;;;;;;;;ACPF;AAAA;AAAA;AAAA;AAAA;AAA+C;AAC4B;AAE9B;AACY;AAGzD,EAAE,CAAC,CAAC,8EAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3B,qEAAc,EAAE,CAAC;IACjB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACX,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,cAAW,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,yGAAsB,EAAE,CAAC,eAAe,CAAC,kEAAS,CAAC;KAChD,KAAK,CAAC,aAAG,IAAI,cAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAC","file":"main.bundle.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/$$_lazy_route_resource lazy\n// module id = ./src/$$_lazy_route_resource lazy recursive\n// module chunks = main","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { LoginComponent } from './components/login/login.component';\nimport { SchedulerComponent } from './components/scheduler/scheduler.component';\nimport { ScreenBuilderComponent } from './components/screen-builder/screen-builder.component';\nimport { AuthGuard } from './guards';\nimport { PopupComponent } from './components/popup/popup.component';\n\nconst routes: Routes = [\n { path: '', component: ScreenBuilderComponent, canActivate: [AuthGuard] },\n { path: 'home', component: ScreenBuilderComponent, canActivate: [AuthGuard] },\n { path: 'login', component: LoginComponent },\n { path: 'scheduler', component: SchedulerComponent },\n { path: 'popup', component: PopupComponent },\n { path: 'new-account', component: LoginComponent },\n { path: 'mp-video', component: LoginComponent },\n { path: 'sb-video', component: LoginComponent },\n];\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app-routing.module.ts","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.css\n// module id = ./src/app/app.component.css\n// module chunks = main","module.exports = \"\\n
\\n
\\n \\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.html\n// module id = ./src/app/app.component.html\n// module chunks = main","import { Component, ViewChild, TemplateRef, ElementRef, AfterViewInit,Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from './services/auth.service';\n//import { Idle, DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';\n//import { Keepalive } from '@ng-idle/keepalive';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { ModalDirective } from 'ngx-bootstrap/modal';\n//import { AppService } from './_services/app.service';\n\nimport { Subject, Observable } from 'rxjs';\n\n// @Injectable({\n// providedIn: 'root'\n// })\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n //title = 'app';\n isLoggedIn$: Observable;\n idleState = 'Not started.';\n timedOut = false;\n lastPing?: Date = null;\n title = 'angular-idle-timeout';\n public destroyed$ = new Subject();\n constructor(private authService: AuthService) { }\n ngOnInit()\n {\n // alert();\n // this.isLoggedIn$ = this.authService.isLoggedIn;\n // if(this.isLoggedIn$)\n // {\n // this.authService.sessionWarningTimer$.takeUntil(this.destroyed$)\n // }\n }\n ngOnDestroy(){\n this.destroyed$.next();\n }\n\n\n\n //@ViewChild('childModal', { static: false }) childModal: ModalDirective;\n // constructor(private idle: Idle, private keepalive: Keepalive, \n // private router: Router, private modalService: BsModalService) {\n // sets an idle timeout of 5 seconds, for testing purposes.\n //idle.setIdle(5);\n // sets a timeout period of 5 seconds. after 10 seconds of inactivity, the user will be considered timed out.\n // idle.setTimeout(5);\n // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document\n //idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\n\n // idle.onIdleEnd.subscribe(() => { \n // this.idleState = 'No longer idle.'\n // console.log(this.idleState);\n // this.reset();\n // });\n \n // idle.onTimeout.subscribe(() => {\n // this.idleState = 'Timed out!';\n // this.timedOut = true;\n // console.log(this.idleState);\n // this.router.navigate(['/']);\n // });\n \n // idle.onIdleStart.subscribe(() => {\n // this.idleState = 'You\\'ve gone idle!'\n // console.log(this.idleState);\n // // this.childModal.show();\n // });\n \n // idle.onTimeoutWarning.subscribe((countdown) => {\n // this.idleState = 'You will time out in ' + countdown + ' seconds!'\n // console.log(this.idleState);\n // });\n\n // // sets the ping interval to 15 seconds\n // keepalive.interval(15);\n\n // keepalive.onPing.subscribe(() => this.lastPing = new Date());\n\n // this.reset();\n }\n\n // reset() {\n // this.idle.watch();\n // this.idleState = 'Started.';\n // this.timedOut = false;\n // }\n\n\n//}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n// import { ColorPickerModule } from 'ngx-color-picker';.\nimport { HttpClientModule } from '@angular/common/http';\nimport { LaddaModule } from 'angular2-ladda';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { LoginComponent } from './components/login/login.component';\nimport { SchedulerComponent } from './components/scheduler/scheduler.component';\nimport { PopupComponent } from './components/popup/popup.component';\nimport { ScreenBuilderComponent } from './components/screen-builder/screen-builder.component';\nimport { AuthService } from './services/auth.service';\nimport { AuthGuard } from './guards';\nimport { SimpleNotificationsModule } from 'angular2-notifications';\nimport { HeaderComponent } from './components/header/header.component';\nimport { AppSettingsService } from './services/app-settings.service';\nimport { ScreenService } from './services/screen.service';\nimport { RegistrationService } from './services/Registration.service';\nimport { Ng4LoadingSpinnerModule } from 'ng4-loading-spinner';\nimport { DataService } from './services/data.service';\nimport { SafePipe } from './safe.pipe';\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\nimport { UserService } from './services/user.service';\nimport { Ng2DeviceDetectorModule } from 'ng2-device-detector';\nimport { APP_INITIALIZER } from '@angular/core';\nimport { HttpModule } from '@angular/http';\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\nimport { SubscriptionService } from './services/subscription.service';\n//import { NgIdleKeepaliveModule } from '@ng-idle/keepalive'; // this includes the core NgIdleModule but includes keepalive providers for easy wireup\n//import { MomentModule } from 'angular2-moment'; // optional, provides moment-style pipes for date formatting\nimport { SubscriptionComponent } from './components/subscription/subscription.component';\n\nexport function initConfig(config: AppSettingsService) {\n return () => config.load();\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent,\n SchedulerComponent,\n ScreenBuilderComponent,\n PopupComponent,\n HeaderComponent,\n SafePipe,\n SubscriptionComponent\n ],\n imports: [\n BrowserModule,\n // NgIdleKeepaliveModule.forRoot(),\n //MomentModule,\n // UserIdleModule.forRoot({idle: 30, timeout: 30, ping: 120}),\n BrowserAnimationsModule,\n FormsModule,\n HttpClientModule,\n LaddaModule.forRoot({\n style: 'slide-down'\n }),\n Ng4LoadingSpinnerModule.forRoot(),\n AppRoutingModule,\n NgbModule.forRoot(),\n SimpleNotificationsModule.forRoot(),\n DropzoneModule,\n Ng2DeviceDetectorModule.forRoot(),\n HttpModule,\n NgxSliderModule\n ],\n providers: [\n AuthGuard,\n AppSettingsService,\n {\n provide: APP_INITIALIZER,\n useFactory: initConfig,\n deps: [AppSettingsService],\n multi: true\n },\n AuthService,\n ScreenService,\n DataService,\n UserService,\n RegistrationService,\n SubscriptionService\n ],\n bootstrap: [AppComponent]\n})\n\nexport class AppModule { }\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","module.exports = \"/* .navbar .dropdown-menu a span{\\n color: #a5a0a0;\\n}\\n\\n.dropdown-menu {\\n background-color: #59698d !important;\\n border-radius: unset !important;\\n}\\n\\n.dropdown-menu a {\\n color: white !important;\\n}\\n\\n.dropdown-menu a:hover {\\n color: black !important;\\n}\\n.btn.settings {\\n width: 209px;\\n}\\nbutton, div, li {\\n border-radius: unset !important;\\n}\\n\\n.ng-star-inserted {\\n margin-right: 0 !important;\\n} */\\n\\n#header {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\n#mainnavbar {\\n width: 100%;\\n float: right;\\n}\\n\\n.btn-nav-item {\\n color: #fff;\\n border: solid 1px;\\n border-color: #445769;\\n border-radius: 4px;\\n /* background-color: #343a40; */\\n margin-right: 10px;\\n}\\n\\n#navbarCollapse .btn-nav-item:hover {\\n color: #fff;\\n border-color: #4c6944;\\n background-color: #445769;\\n}\\n\\n.btn-nav-item:hover {\\n color: #fff;\\n border-color: #445769;\\n background-color: #445769;\\n}\\n\\n/* HTML Nav Styles */\\n\\n/* HTML Nav Styles */\\n\\n/* HTML Nav Styles */\\n\\nnav menuitem {\\n position: relative;\\n display: block;\\n opacity: 0;\\n cursor: pointer;\\n}\\n\\nnav menuitem>menu {\\n position: absolute;\\n /* pointer-events: none; */\\n z-index: 100000;\\n}\\n\\nnav>menu {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\nnav>menu>menuitem {\\n pointer-events: all;\\n opacity: 1;\\n}\\n\\nmenu menuitem a {\\n white-space: nowrap;\\n display: block;\\n}\\n\\nmenuitem:hover>menu {\\n pointer-events: initial;\\n}\\n\\nmenuitem:hover>menu>menuitem,\\nmenu:hover>menuitem {\\n opacity: 1;\\n}\\n\\nnav>menu>menuitem menuitem menu {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n top: 0;\\n right: 0;\\n}\\n\\n/* User Styles Below Not Required */\\n\\n/* User Styles Below Not Required */\\n\\n/* User Styles Below Not Required */\\n\\nnav#navContact {\\n /* margin-top: 40px;\\n margin-left: 40px; */\\n}\\n\\nnav#navContact a {\\n background: #494949;\\n color: #FFF;\\n min-width: 195px;\\n -webkit-transition: background 0.5s, color 0.5s, -webkit-transform 0.5s;\\n transition: background 0.5s, color 0.5s, -webkit-transform 0.5s;\\n transition: background 0.5s, color 0.5s, transform 0.5s;\\n transition: background 0.5s, color 0.5s, transform 0.5s, -webkit-transform 0.5s;\\n margin: 0px 4px 4px 0px;\\n padding: 10px 40px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n border-radius: 3px;\\n -webkit-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);\\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);\\n position: relative;\\n}\\n\\nnav#navContact a:hover:before {\\n content: ''!important;\\n top: 0!important;\\n left: 0!important;\\n position: absolute!important;\\n background: rgba(0, 0, 0, 0.2)!important;\\n width: 100%!important;\\n height: 100%!important;\\n}\\n\\nnav#navContact>menu>menuitem>a+menu:after {\\n content: ''!important;\\n position: absolute!important;\\n border: 10px solid transparent!important;\\n border-top: 10px solid white!important;\\n left: 12px!important;\\n top: -28px!important;\\n}\\n\\nnav#navContact menuitem>menu>menuitem>a+menu:after {\\n content: ''!important;\\n position: absolute!important;\\n border: 10px solid transparent!important;\\n border-left: 10px solid white!important;\\n top: 10px!important;\\n left: -162px!important;\\n -webkit-transition: opacity 0.6, -webkit-transform 0s!important;\\n transition: opacity 0.6, -webkit-transform 0s!important;\\n transition: opacity 0.6, transform 0s!important;\\n transition: opacity 0.6, transform 0s, -webkit-transform 0s!important;\\n}\\n\\nnav#navContact>menu>menuitem>menu>menuitem {\\n -webkit-transition: opacity 0.6s, -webkit-transform 0.6s!important;\\n transition: opacity 0.6s, -webkit-transform 0.6s!important;\\n transition: transform 0.6s, opacity 0.6s!important;\\n transition: transform 0.6s, opacity 0.6s, -webkit-transform 0.6s!important;\\n -webkit-transform: translateY(150%)!important;\\n transform: translateY(150%)!important;\\n opacity: 0!important;\\n}\\n\\nnav#navContact>menu>menuitem:hover>menu>menuitem,\\nnav#navContact>menu>menuitem.hover>menu>menuitem {\\n -webkit-transform: translateY(0%)!important;\\n transform: translateY(0%)!important;\\n opacity: 1!important;\\n}\\n\\nnav a#navbarDropdownContact {\\n min-width: auto;\\n padding: 3px 24px!important;\\n}\\n\\nmenuitem>menu>menuitem>menu>menuitem {\\n -webkit-transition: opacity 0.6s, -webkit-transform 0.6s!important;\\n transition: opacity 0.6s, -webkit-transform 0.6s!important;\\n transition: transform 0.6s, opacity 0.6s!important;\\n transition: transform 0.6s, opacity 0.6s, -webkit-transform 0.6s!important;\\n -webkit-transform: translateX(195px) translateY(0%)!important;\\n transform: translateX(195px) translateY(0%)!important;\\n opacity: 0!important;\\n}\\n\\nmenuitem>menu>menuitem:hover>menu>menuitem,\\nmenuitem>menu>menuitem.hover>menu>menuitem {\\n -webkit-transform: translateX(0) translateY(0%)!important;\\n transform: translateX(0) translateY(0%)!important;\\n opacity: 1!important;\\n}\\n\\n.dropdown-menu{\\n background-color:transparent;\\n border: none;\\n /* width: 100%; */\\n}\\n\\n.dropdown-menu li {\\n position: relative;\\n }\\n\\n.dropdown-menu .dropdown-submenu {\\n /* display: none;\\n position: absolute;\\n left: 100%;\\n top: -7px; */\\n }\\n\\n.dropdown-menu .dropdown-submenu-left {\\n right: 100%;\\n left: auto;\\n }\\n\\n.dropdown-menu > li:hover > .dropdown-submenu {\\n display: block;\\n }\\n\\n.dropdown-hover:hover>.dropdown-menu {\\n display: inline-block;\\n }\\n\\n.dropdown-hover>.dropdown-toggle:active {\\n /*Without this, clicking will make it sticky*/\\n pointer-events: none;\\n }\\n\\n.dropdown-menu1{\\t\\n background-color:transparent;\\t\\n border: none;\\t\\n }\\n\\n.dropdown-menu1 li {\\t\\n position: relative;\\t\\n }\\n\\n.dropdown-menu .dropdown-submenu {\\t\\n /* display: none;\\t\\n position: absolute;\\t\\n left: 100%;\\t\\n top: 0px;\\t */\\n }\\n\\n.dropdown-menu1 .dropdown-submenu-left {\\t\\n right: 100%;\\t\\n left: auto;\\t\\n }\\n\\n.dropdown-menu1 > li:hover > .dropdown-submenu {\\t\\n display: block;\\t\\n }\\n\\n.dropdown-hover:hover>.dropdown-menu1 {\\t\\n display: inline-block;\\t\\n }\\n\\n.dropdown-hover>.dropdown-toggle:active {\\t\\n pointer-events: none;\\t\\n }\\n\\n/*new styles..............................................................................*/\\n\\n#mainnavbar {\\n /* margin: 100px auto; */\\n text-align: center; \\n \\n}\\n\\n#mainnavbar ul ul {\\n display: none;\\n}\\n\\n#test li:hover > ul {\\n display: block;\\n }\\n\\n/* .dropdown-submenu li:hover > ul{\\n display: block;\\n } */\\n\\n#mainnavbar ul {\\n background: #6b6b69; \\n background: -webkit-gradient(linear, left top, left bottom, from(#6b6b69), to(#bbbbbb)); \\n background: linear-gradient(top, #6b6b69 0%, #bbbbbb 100%); \\n background: -webkit-linear-gradient(top, #6b6b69 0%,#bbbbbb 100%); \\n -webkit-box-shadow: 0px 0px 9px rgba(0,0,0,0.15); \\n box-shadow: 0px 0px 9px rgba(0,0,0,0.15);\\n padding: 0 0px;\\n /* border-radius: 10px; */\\n list-style: none;\\n position: relative;\\n display: inline-table;\\n text-align: center; \\n\\n}\\n\\n#mainnavbar #menuitem{\\n border-top: 7px solid #0A55A3;\\n border-bottom: 7px solid #0A55A3;\\n border-left: 7px solid #0A55A3;\\n border-right: 7px solid #0A55A3; \\n border-image-slice: 1;\\n border-image-source: linear-gradient(to top, #000000, #0A55A3); \\n}\\n\\n#mainnavbar ul:after {\\n content: \\\"\\\"; clear: both; display: block;\\n }\\n\\n#mainnavbar ul li {\\n float: left;\\n }\\n\\n#mainnavbar ul li:hover {\\n /* padding: 12px 40px; */\\n background: #4b545f;\\n background: -webkit-gradient(linear, left top, left bottom, from(#4f5964), color-stop(40%, #5f6975));\\n background: linear-gradient(top, #4f5964 0%, #5f6975 40%);\\n background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);\\n \\n }\\n\\n#mainnavbar ul li:hover {\\n color: #fff !important;\\n }\\n\\n#mainnavbar ul li a {\\n /*display: block; padding: 25px 40px;*/\\n\\t display: block; \\n /* padding: 12px 40px; */\\n color: #ffff !important;\\n font-family: Helvetica, sans-serif; \\n font-weight: bold;\\n text-decoration: none;\\n }\\n\\n#mainnavbar ul ul {\\n background: #5f6975; border-radius: 0px; padding: 0;\\n position: absolute; top: 100%;\\n z-index: 10;\\n \\n \\n }\\n\\n#mainnavbar ul ul li {\\n float: none; \\n border-top: 1px solid #6b727c;\\n border-bottom: 1px solid #575f6a; position: relative;\\n }\\n\\n#mainnavbar ul ul li a {\\n padding: 15px 40px;\\n color: #fff;\\n text-transform: none;\\n \\n }\\n\\n#mainnavbar ul ul li a:hover {\\n background: #4b545f;\\n }\\n\\n#mainnavbar ul ul ul {\\n position: absolute; left: 100%; top:0;\\n }\\n\\n.save-btn {\\t\\t\\n display: inline-block;\\n\\toverflow: hidden;\\n\\tbackground-image: url('save-no-color.a96262e150e4f3b96d21.png');\\t\\t/* NEW ATTRIBUTE */\\n\\twidth: 220px;\\t\\t\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 32px 32px;\\t\\n\\tbackground-position: 34% 50%; /* NEW ATTRIBUTE */\\n\\tposition: relative;\\n\\ttext-align:center;\\t\\n\\ttext-indent: 16%;\\t/* NEW ATTRIBUTE */\\n }\\n\\n.save-btn:hover {\\t\\t\\n display: inline-block;\\n\\toverflow: hidden;\\n\\tbackground-image: url('save-no-color.a96262e150e4f3b96d21.png');\\t\\t/* NEW ATTRIBUTE */\\n\\twidth: 220px;\\t\\n\\tbackground-position: left;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 32px 32px;\\t\\n\\tbackground-position: 34% 50%; /* NEW ATTRIBUTE */\\n\\tposition: relative;\\n\\ttext-align:center;\\n\\ttext-indent: 16%;\\t\\t/* NEW ATTRIBUTE */\\n\\tbackground-color:#4b545f;\\t\\t\\n }\\n\\n.screen-btn {\\t\\t\\n display: block;\\n overflow: hidden;\\n\\tbackground-image: url('tv-no-color.aaa35a8ed925d5e2222f.jpg');\\t\\n\\twidth: 280px;\\t\\t\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 64px 37px;\\t\\n\\tbackground-position: 20% 50%; \\n\\tposition: relative;\\t\\n\\ttext-align: center;\\t\\n text-indent: 30%;\\t\\n\\n }\\n\\n.screen-btn:hover {\\t\\t\\n display: inline-block;\\n overflow: hidden;\\n background-image: url('tv-no-color.aaa35a8ed925d5e2222f.jpg');\\t/* NEW ATTRIBUTE */\\n width: 280px;\\t\\t\\n background-repeat: no-repeat;\\n background-size: 64px 37px;\\t\\n background-position: 20% 50%; \\t/* NEW ATTRIBUTE */\\n position: relative;\\t\\n text-align: center;\\t\\n text-indent: 30%;\\t/* NEW ATTRIBUTE */\\n background-color:#4b545f;\\t\\n }\\n\\n/* PUBLISH BUTTON */\\n\\n.publish-btn {\\t\\t\\n display: inline-block;\\n\\toverflow: hidden;\\n\\tbackground-image: url('publish-no-color.75bd430452c454743a0e.png');\\t\\t/* NEW ATTRIBUTE */\\n\\twidth: 220px;\\t\\t\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 64px 37px;\\t\\n\\tbackground-position: 25% 50%; \\t/* NEW ATTRIBUTE */\\n\\tposition: relative;\\t\\n\\ttext-align:center;\\t\\t\\n\\ttext-indent: 25%;\\t/* NEW ATTRIBUTE */\\n }\\n\\n.publish-btn:hover {\\t\\t\\n display: inline-block;\\n\\toverflow: hidden;\\n\\tbackground-image: url('publish-no-color.75bd430452c454743a0e.png');\\t/* NEW ATTRIBUTE */\\n\\twidth: 220px;\\t\\t\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 64px 37px;\\t\\n\\tbackground-position: 25% 50%; \\t/* NEW ATTRIBUTE */\\n\\tposition: relative;\\t\\n\\ttext-align:center;\\n\\ttext-indent: 25%;\\t/* NEW ATTRIBUTE */\\n\\tbackground-color:#4b545f;\\t\\n }\\n\\n/* RESET BUTTON */\\n\\n.reset-btn {\\t\\t\\n display: inline-block;\\n\\toverflow: hidden;\\n\\tbackground-image: url('reset-no-color.62f0d9e67e952b9a449d.png');\\t/* NEW ATTRIBUTE */\\n\\twidth: 220px;\\t\\t\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 31px 31px;\\t\\n\\tbackground-position: 32% 50%; \\t/* NEW ATTRIBUTE */\\n\\tposition: relative;\\t\\n\\ttext-align:center;\\t\\n\\ttext-indent: 18%;\\t/* NEW ATTRIBUTE */\\n }\\n\\n.reset-btn:hover {\\t\\t\\n display: inline-block;\\n\\toverflow: hidden;\\n\\tbackground-image: url('reset-no-color.62f0d9e67e952b9a449d.png');\\t/* NEW ATTRIBUTE */\\n\\twidth: 220px;\\t\\t\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 31px 31px;\\t\\n\\tbackground-position: 32% 50%; \\t/* NEW ATTRIBUTE */\\n\\tposition: relative;\\t\\n\\ttext-align:center;\\t\\n\\ttext-indent: 18%;\\t/* NEW ATTRIBUTE */\\n\\tbackground-color:#4b545f;\\t\\n }\\n\\n/* SETTINGS BUTTON */\\n\\n.settings-btn {\\t\\t\\n display: inline-block;\\n\\toverflow: hidden;\\n\\tbackground-image: url('settings-no-color.db684005cc4c1ebe64bc.png');\\t\\t/* NEW ATTRIBUTE */\\n\\twidth: 280px;\\t\\t\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 35px 35px;\\t\\n\\tbackground-position: 32% 50%; \\t/* NEW ATTRIBUTE */\\n\\tposition: relative;\\t\\n\\ttext-align:center;\\n\\ttext-indent: 18%;\\t\\t/* NEW ATTRIBUTE */\\n }\\n\\n.settings-btn:hover {\\t\\t\\n display: inline-block;\\n\\toverflow: hidden;\\n\\tbackground-image: url('settings-no-color.db684005cc4c1ebe64bc.png');\\t\\t/* NEW ATTRIBUTE */\\n\\twidth: 280px;\\t\\t\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 35px 35px;\\t\\n\\tbackground-position: 32% 50%; \\t/* NEW ATTRIBUTE */\\n\\tposition: relative;\\t\\n\\ttext-align:center;\\n\\ttext-indent: 18%;\\t\\t/* NEW ATTRIBUTE */\\n\\tbackground-color:#4b545f;\\t\\n }\\n\\n#mainnavbar a{\\n height: 50px;\\n}\\n\\n/*video screen*/\\n\\n.video-screenshot {\\t\\t\\n display: inline-block;\\n overflow: hidden;\\n /* background-image: url('assets/img/layout/screenshot.jpg');\\t */\\n width: 220px;\\t\\n background-position: left;\\n background-repeat: no-repeat;\\n background-size: 64px 37px;\\t\\n background-position: 6% 50%; \\n position: relative;\\t\\n text-align:center;\\t\\n}\\n\\n/*image*/\\n\\n.image-screenshot {\\t\\t\\n display: inline-block;\\n overflow: hidden;\\n /* background-image: url('assets/img/layout/screenshot.png');\\t */\\n width: 220px;\\t\\n background-position: left;\\n background-repeat: no-repeat;\\n background-size: 64px 37px;\\t\\n background-position: 6% 50%; \\n position: relative;\\t\\n text-align:center;\\t\\n}\\n\\n#navbarCollapse p{\\nwidth: 100%;\\n}\\n\\n.dropdown-menu.show\\n{\\n \\n display: block!important;\\n}\\n\\n.settings-menu-class{\\n background-color:transparent;\\n border: none;\\n width: 100%;\\n}\\n\\n.settings-menu-class li {\\n position: relative;\\n }\\n\\n.settings-menu-class .dropdown-submenu {\\n /* display: none;\\n position: absolute;\\n left: 100%;\\n top: -7px; */\\n }\\n\\n.settings-menu-class .dropdown-submenu-left {\\n right: 100%;\\n left: auto;\\n }\\n\\n.settings-menu-class > li:hover > .dropdown-submenu {\\n display: block;\\n }\\n\\n.dropdown-hover:hover>.settings-menu-class {\\n display: inline-block;\\n }\\n\\ndiv#videopopupframe div#reghead {\\n background-color: orangered;\\n /* width: 60.01%; */\\n width: 850px;\\n height: 80px;\\n /* margin-left: 631px; */\\n border: solid 2px;\\n border-bottom: 0px;\\n}\\n\\n.reg_close {\\n width: 56px;\\n background-color: transparent;\\n border: solid 1px;\\n cursor: pointer;\\n font-size: 36px;\\n margin-top: 12px;\\n float: right;\\n margin-right: 12px;\\n border-radius: 50%;\\n}\\n\\n.videoModal .close{\\n position: fixed;\\n right: 3%;\\n top: 2%;\\n opacity: 1 !important;\\n z-index: 999;\\n width: 36px;\\n height: 36px;\\n border-radius: 50%;\\n background: white;\\n font-size: 24px;\\n padding: 8px;\\n line-height: 10px;\\n}\\n\\n.videoModal .close img\\n{\\n width: 14px !important;\\n padding: 0px !important;\\n}\\n\\n@media(min-width:1521px) {\\n\\n .videoModal .close {\\n width:50px;\\n height:50px;\\n line-height: 10px;\\n }\\n .videoModal .close img[_ngcontent-c3] {\\n width: 21px!important;\\n padding: 0!important;\\n }\\n \\n}\\n\\n.video-border{\\n border:8px solid gray;\\n}\\n\\n.getting_started_link{\\n background: none!important;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/header/header.component.css\n// module id = ./src/app/components/header/header.component.css\n// module chunks = main","module.exports = \"
\\n \\n\\n \\n
\\n \\n
\\n \\n \\n \\\"\\\"\\n \\n\\n \\n \\\"\\\"\\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n \\n \\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/header/header.component.html\n// module id = ./src/app/components/header/header.component.html\n// module chunks = main","import { Component, ViewChild, HostListener, OnInit, AfterViewInit } from '@angular/core';\nimport { AuthService } from '../../services/auth.service';\nimport { Observable } from 'rxjs/Observable';\nimport { Router } from '@angular/router';\n// import { ScreenBuilderComponent } from '../screen-builder/screen-builder.component';\nimport { DataService } from '../../services/data.service';\nimport { User } from '../../models/user';\nimport { forEach } from '@angular/router/src/utils/collection';\n//import { UserIdleService } from 'angular-user-idle';\nimport { SubscriptionService } from '../../services/subscription.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\ndeclare var jquery: any;\ndeclare var $: any;\nlet ng: any;\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css'],\n})\nexport class HeaderComponent implements OnInit {\n isLoggedIn$: Observable;\n public currentXmls: Array = [];\n public currentScreens: Array = [];\n public currentTemplates = { hdTemplate: [], fullHdTemplate: [], allTemplates: [], fullScreenWithImageTemplate: [], fullScreenWithVideoTemplate: [], menuTemplates: [] };\n public currentUser = { userRole: null };\n public currentUserObj: Observable;\n public currentXmlsLoaded = false;\n public currentComponent = '/';\n public isUserIdle = false;\n public userIdleTime = 0;\n public count = 1;\n public mousein = false\n public gettingStartedTooltip = 'Getting Started Guide';\n public liveTVTooltip = 'Live TV';\n // public templateName1 =\"\";\n // public templateName2 =\"\";\n // public templatePath = \"\";\n // public imagePath = \"\";\n\n private modalRef;\n\n constructor(private authService: AuthService, private router: Router, private data: DataService,\n private subscriptionService: SubscriptionService, private modalService: NgbModal,\n // private userIdle: UserIdleService\n ) {\n }\n ngOnInit() {\n \n // document.addEventListener('mousemove', function (this) {\n\n // ng.resetUserIdleTime();\n // });\n\n // document.addEventListener('mousewheel', function (this) {\n // ng.resetUserIdleTime();\n // });\n\n // document.addEventListener('click', function (this) {\n\n // ng.resetUserIdleTime();\n // });\n\n // document.addEventListener('keypress', function (this) {\n // ng.resetUserIdleTime();\n // });\n\n // document.addEventListener('mouseover', function() {\n // ng.mousein = true;\n // ng.reset();\n // })\n\n ng = this;\n //this.checkUserIdleTime();\n\n this.isLoggedIn$ = this.authService.isLoggedIn;\n this.data.currentMessage.subscribe(message => {\n this.currentXmls = message;\n this.currentXmlsLoaded = true;\n });\n\n this.data.currentScreen.subscribe(message => {\n this.currentScreens = message;\n });\n\n this.data.currentTemplate.subscribe(message => {\n this.currentTemplates = message;\n // console.log(this.currentTemplates);\n });\n //dmb.screenlist.01\n // this.templateName1 = \"dmb.screenlist.01.xml\";\n // this.templateName2 = \"dmb.screenlist.02.xml\";\n // this.templatePath = 'templates\\\\All Templates\\\\Full Screen with Image\\\\screenshot.jpg';\n // this.imagePath = 'templates\\\\All Templates\\\\Full Screen with Image\\\\screenshot.png';\n // this.currentUser = this.authService.currentUser;\n this.authService.currentUserObj.subscribe(res => {\n // this.currentUserObj = this.authService.currentUserObj;\n // console.log(typeof res);\n if (res === 'string') {\n this.currentUser = JSON.parse(res);\n // console.log(res);\n } else {\n this.currentUser = res;\n }\n\n if (window.location.href.includes('scheduler')) {\n this.currentComponent = 'scheduler';\n }\n });\n // console.log(this.currentUserObj);\n }\n\n ngAfterViewInit(): void {\n $('[data-toggle=\"tooltip\"]').tooltip({\n trigger: 'hover'\n });\n }\n\n onLogout(): void {\n this.resetCompleteScreen();\n this.authService.logout();\n //this.router.navigate(['/login']);\n setTimeout(() => {\n window.location.reload();\n }, 500);\n }\n\n openModel(content, config?: object, type?: string) {\n if (typeof config === 'undefined') {\n config = {};\n }\n this.modalRef = this.modalService.open(content, config);\n }\n\n closeModal(): void {\n if (this.modalRef) {\n this.modalRef.close();\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n public onWindowScroll(event: Event) {\n const scrollLeft = $(window).scrollLeft();\n $('#topNavBar').css('margin-left', scrollLeft + 'px');\n }\n @HostListener('document:click', ['$event'])\n public onClick(e: any): void {\n const className = e.target.className;\n if (className == 'modal videoModal') {\n $('#video1').trigger('pause');\n $('#video1').get(0).currentTime = 0;\n $('#video2').trigger('pause');\n $('#video2').get(0).currentTime = 0;\n }\n }\n openVideo1(): void {\n $('#video1').trigger('play');\n }\n openVideo2(): void {\n $('#video2').trigger('play');\n }\n openVideo3(): void {\n $('#video3').trigger('play');\n }\n closeVideo1(): void {\n //$(\"#video1\").removeAttr(\"autoplay\");\n $('#video1').trigger('pause');\n $('#video1').get(0).currentTime = 0;\n\n }\n closeVideo2(): void {\n //$(\"#video1\").removeAttr(\"autoplay\");\n $('#video2').trigger('pause');\n $('#video2').get(0).currentTime = 0;\n }\n closeVideo3(): void {\n //$(\"#video1\").removeAttr(\"autoplay\");\n $('#video3').trigger('pause');\n $('#video3').get(0).currentTime = 0;\n }\n resetCompleteScreen(): void {\n $('#resetCompleteScreenBtn').trigger('click');\n }\n openSettingsModal(): void {\n $('#openSettingsModalBtn').trigger('click');\n }\n preview_screenlist_file(): void {\n $('#preview_screenlist_file_btn').trigger('click');\n }\n save_screenlist(): void {\n $('#save_screenlist_btn').trigger('click');\n }\n publish_screenlist_file(): void {\n $('#publish_screenlist_file_btn').trigger('click');\n }\n sitelog_modal(): void {\n $('#siteLogsScreenBtn').trigger('click');\n }\n openPlayerRegistrationModal(): void {\n $('#openPlayerRegistrationModalBtn').trigger('click');\n }\n openEditPlayerModal(): void {\n $('#openEditPlayerModalBtn').trigger('click');\n }\n\n openEditScreenModal(): void {\n $('#openEditScreenModalBtn').trigger('click');\n }\n\n openPlayerStatusModal(): void {\n $('#openPlayerStatusModalBtn').trigger('click');\n }\n\n openTimeOfDayModal(): void {\n $('#openTimeOfDayModalBtn').trigger('click');\n }\n\n openSubscriptionsModal(): void {\n $('#openSubscriptionsModalBtn').trigger('click');\n }\n\n ep_preview_screenlist_file(): void {\n $('#ep_preview_screenlist_file_btn').trigger('click');\n }\n load_screenlist(fileName, templatePath, subDirectory: false, screenName: ''): void {\n this.data.openFile({ fileName: fileName, templatePath: templatePath, subDirectory: subDirectory, screenName: screenName });\n }\n getTemplateCount(str) {\n let res = false;\n // alert();\n if (str === 'fullHdTemplate' && typeof this.currentTemplates.fullHdTemplate !== 'undefined') {\n res = this.currentTemplates.fullHdTemplate.length > 0;\n } else if (str === 'hdTemplate' && typeof this.currentTemplates.hdTemplate !== 'undefined') {\n res = this.currentTemplates.hdTemplate.length > 0;\n } else if (str === 'fullScreenWithImageTemplate' && typeof this.currentTemplates.fullScreenWithImageTemplate !== 'undefined') {\n res = this.currentTemplates.fullScreenWithImageTemplate.length > 0;\n } else if (str === 'fullScreenWithVideoTemplate' && typeof this.currentTemplates.fullScreenWithVideoTemplate !== 'undefined') {\n res = this.currentTemplates.fullScreenWithVideoTemplate.length > 0;\n } else if (str === 'allTemplates' && typeof this.currentTemplates.allTemplates !== 'undefined') {\n res = this.currentTemplates.allTemplates.length > 0;\n }\n else if (str === 'menuTemplates' && typeof this.currentTemplates.menuTemplates !== 'undefined') {\n res = this.currentTemplates.menuTemplates.length > 0;\n }\n return res;\n }\n\n routeToComponent(component) {\n this.currentComponent = component;\n\n if (component === '/') {\n this.router.navigate([component]);\n setTimeout(() => {\n location.reload();\n }, 500);\n } else {\n this.router.navigate([component]);\n }\n }\n\n // checkUserIdleTime() {\n // alert('idle');\n // debugger;\n // setInterval(function() { \n // ng.userIdleTime++;\n // $(\"#userIdleTime\").val(ng.userIdleTime);\n // //check after 5 minutes\n // if(ng.userIdleTime >= 300) {\n // ng.onLogout();\n // }\n // }, 1000);\n // }\n\n // resetUserIdleTime() {\n // debugger;\n // this.userIdleTime = 0;\n // }\n\n demo() {\n if (this.mousein) return\n document.getElementById('demo1')\n .classList.toggle('hover')\n\n }\n\n reset() {\n this.count = 1\n var hovers = document.querySelectorAll('.hover')\n for (var i = 0; i < hovers.length; i++) {\n hovers[i].classList.remove('hover')\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/header/header.component.ts","module.exports = \".logincontainer {\\n position: absolute;\\n width: 100%;\\n top: 50%;\\n left: 50%;\\n transform: translateX(-50%) translateY(-40%);\\n -webkit-transform: translateX(-50%) translateY(-50%);\\n}\\n\\n.login_ladda_button,\\n.login_ladda_button:focus {\\n border: none;\\n background-color: transparent;\\n outline: none;\\n /* position: absolute; */\\n padding-top: 20px;\\n cursor: default!important;\\n}\\n\\n#btnBack {\\n position: absolute;\\n right: 15px;\\n top: 25px;\\n}\\n\\ndiv#registerframe {\\n width: 100%;\\n text-align: center;\\n margin-top: 0%;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\ndiv#registerframe div#reghead {\\n background-color: orangered;\\n /* width: 60.01%; */\\n width: 850px;\\n height: 80px;\\n /* margin-left: 631px; */\\n border: solid 2px;\\n border-bottom: 0px;\\n}\\n\\ndiv#forgotpasswordframe {\\n width: 100%;\\n text-align: center;\\n margin-top: 0%;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n /* position: absolute;\\n height: 100%;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n padding-top: 100px;\\n justify-content: flex-start; */\\n}\\n\\ndiv#forgotpasswordframe div#reghead {\\n background-color: orangered;\\n /* width: 60.01%; */\\n width: 850px;\\n height: 80px;\\n /* margin-left: 631px; */\\n border: solid 2px;\\n border-bottom: 0px;\\n}\\n\\ndiv#MediaPlayer {\\n width: 100%;\\n text-align: center;\\n margin-top: 0%;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\ndiv#ScreenBuilder {\\n width: 100%;\\n text-align: center;\\n margin-top: 0%;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.reg_close {\\n width: 56px;\\n background-color: transparent;\\n border: solid 1px;\\n cursor: pointer;\\n font-size: 36px;\\n margin-top: 12px;\\n float: right;\\n margin-right: 12px;\\n border-radius: 50%;\\n}\\n\\n.video-border{\\n border:8px solid gray;\\n }\\n\\n.login-form {\\n border-radius: 10px;\\n -webkit-box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\\n }\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/login/login.component.css\n// module id = ./src/app/components/login/login.component.css\n// module chunks = main","module.exports = \"\\n

Simple example

\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n \\n
\\n \\n \\n \\n Create New Account
\\n Buy Media Player\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n \\n
\\n \\n
\\n\\n
\\n
\\n \\n
\\n \\n
\\n\\n\\n\\n \\n\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n \\n\\n\\n\\n \\n\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n\\n
\\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/login/login.component.html\n// module id = ./src/app/components/login/login.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy, ViewChild, TemplateRef, NgZone, Inject,HostListener, ElementRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/platform-browser';\nimport { User } from '../../models/user';\nimport { AuthService } from '../../services/auth.service';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Ng2DeviceService } from 'ng2-device-detector';\nimport {timer} from 'rxjs/observable/timer'\nimport { Body } from '@angular/http/src/body';\nimport { Subject } from 'rxjs';\nimport { HeaderComponent } from '../header/header.component';\ndeclare var videojs: any;\ndeclare var jquery: any;\ndeclare var $: any;\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n @ViewChild('example') example: TemplateRef;\n //@ViewChild('bgVideoLogin') bgVideoLogin: ElementRef;\n //public sessionWarningTimer$ = new Subject();\n user: User = new User();\n constructor(private authService: AuthService, private route: ActivatedRoute,\n private router: Router, zone: NgZone, @Inject(DOCUMENT) private document: Document,\n private deviceService: Ng2DeviceService) {\n this.deviceInfo = this.deviceService.getDeviceInfo();\n // console.log(this.deviceInfo.browser);\n\n }\n public isLoading = false;\n public deviceInfo = null;\n private returnUrl: string;\n public showlogin = true;\n public showregistration = false;\n public showforgotpassword = false;\n public isResetPasswordFrame = false;\n public showvideopopupframe = false;\n public showMediaPlayer = false;\n public showScreenBuilder = false;\n ngOnInit() {\n if(this.router.url.includes('new-account'))\n {\n this.showlogin = false;\n this.showregistration = true;\n this.isResetPasswordFrame = false;\n this.showMediaPlayer = false;\n this.showScreenBuilder = false;\n }\n if(this.router.url.includes('mp-video'))\n {\n this.showlogin = false;\n this.showMediaPlayer = true;\n this.showScreenBuilder = false;\n this.isResetPasswordFrame = false;\n this.showregistration = false;\n }\n if(this.router.url.includes('sb-video'))\n {\n this.showlogin = false;\n this.showScreenBuilder = true;\n this.isResetPasswordFrame = false;\n this.showregistration = false;\n this.showMediaPlayer = false;\n // $('#video2').trigger('play');\n }\n // this.route.queryParams.subscribe(e => {\n // //var test =this.route.queryParams['new-account'];\n // if(e.hasOwnProperty('new-account'))\n // {\n // this.showlogin = false;\n // this.showregistration = true;\n // this.isResetPasswordFrame = false;\n // }\n // });\n // })){\n \n // }\n this.document.body.setAttribute(\"style\", \"overflow-x:hidden;\");\n\n // reset login status\n this.authService.logout();\n this.document.body.classList.add('bg-black');\n //this.document.body.classList.add('over-hidden');\n this.authService.createStuff();\n $(\"#bg-video-login\").height($(window).height() - 100);\n // get return url from route parameters or default to '/'\n // this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '';\n // this.document.body.classList.add('over-hidden ');\n\n $(window).resize(function(){\n $(\"#bg-video-login\").height($(window).height() - 100);\n });\n }\n // ngAfterViewInit(){\n // if(this.router.url.includes('MediaPlayer'))\n // {\n // // $('#videomediaplayer').trigger('play');\n // }\n // if(this.router.url.includes('ScreenBuilder'))\n // {\n // // $('#videoscreenbuilder').trigger('play');\n // }\n // }\n\n ngOnDestroy() {\n // this.document.body.classList.remove('bg-black');\n //this.document.body.classList.remove('over-hidden');\n }\n\n @HostListener('document:click', ['$event'])\n public onClick(e:any):void {\n const className =e.target.className;\n if(className == 'modal videoModal show')\n {\n if(this.router.url.includes('mp-video'))\n {\n $('#videomediaplayer').trigger('pause');\n $('#videomediaplayer').get(0).currentTime = 0;\n this.showMediaPlayer = false;\n this.showlogin = true;\n this.showScreenBuilder = false;\n this.isResetPasswordFrame = false;\n this.showregistration = false;\n }\n if(this.router.url.includes('sb-video'))\n {\n $('#videoscreenbuilder').trigger('pause');\n $('#videoscreenbuilder').get(0).currentTime = 0;\n this.showMediaPlayer = false;\n this.showlogin = true;\n this.showScreenBuilder = false;\n this.isResetPasswordFrame = false;\n this.showregistration = false;\n }\n\n }\n }\n\n onLogin(): void {\n this.isLoading = true;\n if(this.isResetPasswordFrame) {\n // $(\".login_ladda_button\").hide();\n if($.trim(this.user.email) === '') {\n this.authService.showNotification('Error', 'Username is required', 'Error');\n this.isLoading = false;\n return;\n } else if($.trim(this.user.password) === '') {\n this.authService.showNotification('Error', 'Password is required', 'Error');\n this.isLoading = false;\n return;\n } else if($.trim(this.user.newPassword) === '') {\n this.authService.showNotification('Error', 'New Password is required', 'Error');\n this.isLoading = false;\n return;\n } else if($.trim($(\"#confirm_password\").val()) === '') {\n this.authService.showNotification('Error', 'Confirm Password is required', 'Error');\n this.isLoading = false;\n return;\n } else if($(\"#new_password\").val() !== $(\"#confirm_password\").val()) {\n this.authService.showNotification('Error', 'New Password and Confirm
Password must match', 'Error');\n this.isLoading = false;\n return;\n }\n const temp = this.authService.resetPassword(this.user.email, this.user.password, this.user.newPassword).subscribe((user) => {\n // console.log(user)\n this.isLoading = false;\n if (user.status === 'error') {\n this.authService.showNotification('Error', user.message, 'Error');\n }else {\n this.authService.showNotification('Success', 'Password has been reset successfully', 'success');\n // $(\"#lbl_msg\").text('Update Successful');\n // $(\"#lbl_msg\").show();\n \n $.ajax({ \n url:\n 'https://digitalmediabridge.tv/password-reset/send-email/send.php', \n type:\n 'post',\n data: {'Email': this.user.email, 'Password': this.user.newPassword},\n success:\n function(json){ \n if(json.includes(\"SUCCESS\")){\n // this.authService.showNotification('Success', 'Email sent', 'success');\n }\n else{\n // this.authService.showNotification('Error', 'Email not sent', 'error');\n }\n }, \n error:\n function(xhr){\n // this.authService.showNotification('Error', 'Email not sent', 'error');\n }\n }); \n \n // setTimeout(function () {\n // window.location.reload();\n // }, 3000);\n this.LoginToggle();\n }\n }, err => {\n this.isLoading = false;\n this.authService.showNotification(err.status, err.message, 'error');\n });\n } else {\n const temp = this.authService.login(this.user.email, this.user.password).subscribe((user) => {\n // console.log(user)\n this.isLoading = false;\n if (user.status === 'error') {\n this.authService.showNotification('Error', user.message, 'Error');\n }else {\n this.authService.showNotification('Success', 'Login Success', 'success');\n // this.router.navigate(['home']);\n this.router.navigate(['']);\n }\n }, err => {\n this.isLoading = false;\n this.authService.showNotification(err.status, err.message, 'error');\n });\n }\n }\n\n // setSessionTimeout()\n // {\n // debugger;\n // timer(5000).subscribe(this.sessionWarningTimer$)\n // }\n\n\n OpenRegistrationFrame(): void {\n //this.document.body.classList.remove('over-hidden');\n this.showlogin = false;\n this.showregistration = true;\n this.isResetPasswordFrame = false;\n }\n\n OpenForgotPasswordFrame(): void {\n //this.document.body.classList.remove('over-hidden');\n this.showlogin = false;\n this.showforgotpassword = true;\n this.isResetPasswordFrame = false;\n }\n\n CloseRegisterFrame(): void {\n //this.document.body.classList.add('over-hidden');\n \n this.showlogin = true;\n this.showregistration = false;\n // if(this.router.url.indexOf('new-account')!=-1)\n // {\n // this.router.navigate(['/login']);\n // }\n }\n\n CloseMediaPlayerFrame():void{\n this.showlogin = true;\n this.showMediaPlayer = false;\n $('#videomediaplayer').trigger('pause');\n $('#videomediaplayer').get(0).currentTime = 0;\n }\n\n CloseScreenBuilderFrame():void{\n this.showlogin = true;\n this.showScreenBuilder = false;\n $('#videoscreenbuilder').trigger('pause');\n $('#videoscreenbuilder').get(0).currentTime = 0;\n }\n CloseForgotPasswordFrame(): void {\n //this.document.body.classList.add('over-hidden');\n \n this.showlogin = true;\n this.showforgotpassword = false;\n // if(this.router.url.indexOf('new-account')!=-1)\n // {\n // this.router.navigate(['/login']);\n // }\n }\n\n LoginToggle(): void {\n // $(\"#lbl_msg\").hide();\n this.user.email = '';\n this.user.password = '';\n this.user.newPassword = '';\n $(\"#confirm_password\").val('');\n this.isResetPasswordFrame = !this.isResetPasswordFrame;\n if(this.isResetPasswordFrame) {\n $(\"#new_password_grp\").show();\n $(\"#confirm_password_grp\").show();\n $(\"#login_toggle i\").text('Log In');\n $(\"#btnSubmit\").text('Update Password');\n } else {\n $(\"#new_password_grp\").hide();\n $(\"#confirm_password_grp\").hide();\n $(\"#login_toggle i\").text('Update Password');\n $(\"#btnSubmit\").text('Log In');\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/login/login.component.ts","module.exports = \".form-group.inputs input,\\n.form-group.inputs button {\\n display: inline-block;\\n}\\n\\n.form-group.inputs input {\\n /* width: 70%; */\\n}\\n\\n.selectedscreen {\\n width: 100%;\\n height: 60px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\n.selectedscreen .list-group-item {\\n cursor: move;\\n width: 100%;\\n font-weight: bold;\\n border-radius: unset;\\n margin-bottom: 10px;\\n margin-right: 10px;\\n}\\n\\n.screens#selected {\\n width: 100%;\\n}\\n\\n.dragholder .list-group .screens {\\n min-height: 500px;\\n padding-top: 20px;\\n margin-top: 10px;\\n /* padding-left: 20px; */\\n width: 80%;\\n}\\n\\nul#demo2 {\\n height: auto!important;\\n}\\n\\n.fa.fa-minus-circle {\\n color: #ad0606;\\n float: right;\\n cursor: pointer;\\n}\\n\\n.selectedscreen .list-group-item img {\\n width: 32px;\\n float: right;\\n margin-right: 10px;\\n cursor: pointer;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/popup/popup.component.css\n// module id = ./src/app/components/popup/popup.component.css\n// module chunks = main","module.exports = \"
\\n
\\n
\\n
\\n

Create Pop-up Screen

\\n
\\n
\\n
\\n
\\n

Available screens

\\n
    \\n
  • \\n {{screen.name}} ({{screen.channelNumber}})\\n
  • \\n
\\n
\\n
\\n\\n
    \\n
    \\n

    Pop-up Screen

    \\n Drag screens here from the list of available screens\\n
    \\n
  • \\n \\n \\n {{screen.name}}\\n
  • \\n
    \\n
    \\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/popup/popup.component.html\n// module id = ./src/app/components/popup/popup.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { AuthService } from '../../services/auth.service';\nimport { ScreenService } from '../../services/screen.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.css']\n})\nexport class PopupComponent implements OnInit, OnDestroy {\n private currentUser: any;\n private currentXmls: Array = [];\n public currentSchduleFiles: Array = [];\n private scheduleFilesData: Array = [];\n public availableList: Array = [];\n private selectedList: Array = [];\n public schedulerName: String = '';\n private gContentDirectory = '../Content/';\n private gActiveResolution = '1280x720';\n public scheduled_screen_attributes = [];\n public popupScreenAttributes = [];\n isSavingFile: boolean;\n isPublishing: boolean;\n isScreenSaved: boolean;\n public selectedScheduleFile;\n private modalRef;\n private defaultSchedule = null;\n public currentUserServers: Array = [];\n public selectedChannel = 0;\n // private selectedPublishChannel = { iD: 0, endpointLocationName: '-- Groups --' };\n public selectedPublishChannel = '0';\n private scheduleFiles = [];\n private imageFiles = [];\n private videoFiles = [];\n private otherFiles = [];\n private error = false;\n\n public availableChannels = [\n '89'\n ];\n\n @ViewChild('schedulerCalendarModal') private schedulerCalendarModal;\n\n constructor(\n private authService: AuthService,\n private screenService: ScreenService,\n private modalService: NgbModal\n ) {\n this.currentUser = this.authService.currentUser;\n }\n\n ngOnInit() {\n const currYear = new Date().getFullYear();\n\n this.availableList = [];\n this.currentSchduleFiles = [];\n this.currentXmls = [];\n\n this.screenService.getCurrentUserFiles().subscribe((response) => {\n this.currentXmls = response.data.xmls;\n this.currentSchduleFiles = response.data.scheduleFiles;\n this.readScreenlistFileDetails();\n this.readScheduleFileDetails();\n this.selectedScheduleFile = 0;\n });\n\n this.getCurrentUserServers();\n // this.initializePopUpScreenAsset();\n }\n\n initialize() {\n this.currentSchduleFiles = [];\n this.currentXmls = [];\n this.screenService.getCurrentUserFiles().subscribe((response) => {\n this.currentXmls = response.data.xmls;\n this.currentSchduleFiles = response.data.scheduleFiles;\n // this.readScreenlistFileDetails();\n this.readScheduleFileDetails();\n this.selectedScheduleFile = 0;\n });\n }\n\n allowDrop(ev) {\n ev.preventDefault();\n }\n\n drag(ev) {\n ev.dataTransfer.setData('drag_id', ev.target.id);\n }\n\n drop(ev) {\n ev.preventDefault();\n if (this.scheduled_screen_attributes.length === 2) {\n this.authService.showNotification('Only two screens can be selected', 'error');\n return;\n }\n let data = ev.dataTransfer.getData('drag_id');\n data = data.split('_');\n const listName = data[0];\n const id = data[1];\n // const dropZone = ev.target.attributes['id'].value.split('_')[0];\n if (listName === 'avail') {\n this.selectedList.push(this.availableList[id]);\n this.generateScreensSchedule(this.availableList[id]);\n }\n }\n\n readScreenlistFileDetails() {\n let userName = '';\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n const reqData = {\n userName: userName,\n fileName: null,\n templatesRelativePath: null\n };\n\n this.currentXmls.forEach((item) => {\n reqData.fileName = item.name;\n this.screenService.readScreenlistFile(reqData).subscribe((response) => {\n response.data.screenlist.channelNumber = this.getChannelNumber(item.name);\n this.availableList.push(response.data.screenlist);\n }, (error) => {\n console.log(error);\n });\n });\n }\n\n getCurrentUserServers() {\n this.screenService.getUserServerList(this.authService.currentUser.userID).subscribe((response) => {\n // this.currentUserServers.push(this.selectedPublishChannel);\n response.data.forEach(element => {\n this.currentUserServers.push(element.endpointLocationName);\n });\n // this.currentUserServers = this.currentUserServers.concat(response.data);\n }, (error) => {\n console.log(error);\n });\n }\n\n readScheduleFileDetails() {\n let userName = '';\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n const reqData = {\n userName: userName,\n fileName: null,\n templatesRelativePath: null\n };\n\n this.currentSchduleFiles.forEach((item) => {\n const id = this.generateRandomId();\n reqData.fileName = item.name;\n this.screenService.readScheduleFile(reqData).subscribe((response) => {\n this.scheduleFilesData.push({\n id: id,\n channelNum: item.name.substr(15, 2),\n name: response.data.scheduleScreenList.name,\n data: response.data.scheduleScreenList.scheduleScreens\n });\n item.channelNum = item.name.substr(15, 2);\n item.name = response.data.scheduleScreenList.name;\n item.id = id;\n }, (error) => {\n console.log(error);\n });\n });\n }\n\n createScreenList(): object {\n // set the global variable name to the just provided screenlist name\n\n // *****************************************************\n // ** Get each of the required values to be entered into the file **\n // *****************************************************\n const dmb_attributes = {\n 'version': '1.0',\n 'timestamp': this.currentTimeStamp()\n };\n\n const screenlist_attributes = {\n 'filename': 'dmb.screenlist.89.xml',\n 'name': 'Default-Screen',\n 'resolution': this.gActiveResolution,\n 'content_directory': this.gContentDirectory\n };\n\n this.initializePopUpScreenAsset();\n\n this.scheduled_screen_attributes.forEach((screen) => {\n if (screen.default === true) {\n this.popupScreenAttributes[0].ScreenAssets = screen.screen.asset.concat(this.popupScreenAttributes[0].ScreenAssets);\n this.popupScreenAttributes[0].ScreenAttributes.background_color = screen.screen.background_color;\n this.popupScreenAttributes[0].ScreenAttributes.name = screenlist_attributes.name = this.popupScreenAttributes[0].name = screen.name;\n } else {\n this.popupScreenAttributes[1].ScreenAssets = screen.screen.asset;\n this.popupScreenAttributes[1].ScreenAttributes.background_color = screen.screen.background_color;\n }\n });\n\n return {\n UserName: this.currentUser.userName,\n userID: this.currentUser.userID,\n DmbAttributes: dmb_attributes,\n ScreenlistAttributes: screenlist_attributes,\n ScheduledScreensObjects: this.popupScreenAttributes\n };\n }\n\n initializePopUpScreenAsset() {\n this.popupScreenAttributes = [];\n const screenElement = {\n 'name' : 'Default-Screen',\n 'screen' : {\n 'on_boot_only' : 'no',\n 'active' : 'yes',\n 'background_color' : '255.0.0.0',\n 'exit_on_video_end' : 'no',\n 'asset' : {\n 'name': 'Overlay',\n 'type': 'overlay',\n 'x': '5',\n 'y': '5',\n 'width': '5',\n 'height': '5',\n 'source': '228.5.6.7:1234',\n 'onalert': {\n 'screen': 'Pop-up Screen'\n }\n }\n }\n };\n\n this.generateScreensScheduleInit(screenElement);\n\n const secondScreenElement = {\n 'name' : 'Pop-up Screen',\n 'screen' : {\n 'on_boot_only' : 'no',\n 'active' : 'no',\n 'background_color' : '255.0.0.0',\n 'exit_on_video_end' : 'no',\n 'asset' : {\n 'name': 'Pop-Up',\n 'type': 'text',\n 'local_edit': 'no',\n 'x': '5',\n 'y': '5',\n 'width': '5',\n 'height': '5',\n 'source': 'Hello me!'\n }\n }\n };\n\n this.generateScreensScheduleInit(secondScreenElement);\n }\n\n generateScreensScheduleInit(screenElement) {\n const scheduleScreenObj = {\n 'ScreenAttributes': null,\n 'ScreenAssets': null,\n 'name': screenElement.name,\n 'id': this.generateRandomId()\n };\n\n scheduleScreenObj.ScreenAttributes = {\n 'name': screenElement.name,\n 'on_boot_only': screenElement.screen.on_boot_only,\n 'active': screenElement.screen.active,\n 'background_color': screenElement.screen.background_color,\n 'exit_on_video_end': screenElement.screen.exit_on_video_end\n };\n\n scheduleScreenObj.ScreenAssets = [screenElement.screen.asset];\n this.popupScreenAttributes.push(scheduleScreenObj);\n }\n\n generateScreensSchedule(screenElement, existingSelected = false) {\n const scheduleScreenObj = {\n 'ScreenAssets': null,\n 'name': screenElement.name,\n 'id': this.generateRandomId()\n };\n\n scheduleScreenObj.ScreenAssets = screenElement.screen.asset;\n this.scheduled_screen_attributes.push(screenElement);\n }\n\n /**\n * Once the user has entered the screenlist file name, create or update the xml file in the 'Contnet' directory\n */\n createPopupXML(): void {\n if (this.scheduled_screen_attributes.length < 2) {\n this.authService.showNotification('Please select atleast two screen', 'error');\n return;\n }\n\n let hasDefaultScreen = false;\n\n this.scheduled_screen_attributes.forEach((screen) => {\n if (screen.default === true) {\n hasDefaultScreen = true;\n }\n });\n\n if (!hasDefaultScreen) {\n this.authService.showNotification('Please select a default screen', 'error');\n return;\n }\n\n const data = this.createScreenList();\n this.isSavingFile = true;\n this.screenService.savePopupXmlFile(data).subscribe((response) => {\n this.authService.showNotification('Screen saved successfully', 'success', 'success');\n this.isSavingFile = false;\n this.isScreenSaved = true;\n this.isSavingFile = false;\n this.initialize();\n }, error => {\n this.authService.showNotification('Some error occured please try again later', 'error');\n this.isSavingFile = false;\n });\n }\n\n currentTimeStamp(): string {\n const date = new Date();\n const day = date.getDate();\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n const minutes = date.getMinutes();\n const hours = date.getHours();\n const seconds = date.getSeconds();\n const myFormattedDate = day + '-' + (monthIndex + 1) + '-' + year + ' ' + hours + ':' + minutes + ':' + seconds;\n return myFormattedDate;\n }\n\n scheduleChanged($event) {\n this.scheduleFiles = [];\n this.otherFiles = [];\n this.videoFiles = [];\n this.imageFiles = [];\n this.scheduleFilesData.forEach((item) => {\n if (item.id === $event) {\n item.data.forEach(element => {\n element.screen = element;\n this.generateScreensSchedule(element, true);\n });\n this.selectedChannel = item.channelNum;\n this.schedulerName = item.name;\n return;\n }\n });\n }\n\n prepareAssetList(screenAsset) {\n screenAsset.forEach(element => {\n if (element.playlist && element.playlist_items.length > 0) {\n this.otherFiles.push(element.playlists.file_name);\n element.playlist_items.forEach(plItem => {\n if (plItem.type === 'image') {\n this.imageFiles.push(plItem.name);\n } else if (plItem.type === 'video') {\n this.videoFiles.push(plItem.name);\n }\n });\n }else if (element.type === 'image') {\n this.imageFiles.push(element.source);\n } else if (element.type === 'video') {\n this.videoFiles.push(element.source);\n }\n });\n }\n\n setDefaultScreen(index) {\n if (this.defaultSchedule === index) {\n this.defaultSchedule = null;\n } else {\n this.defaultSchedule = index;\n }\n this.scheduled_screen_attributes[index].default = true;\n }\n\n removeScreen(index) {\n if (this.defaultSchedule === index) {\n this.defaultSchedule = null;\n }\n this.scheduled_screen_attributes.splice(index, 1);\n }\n\n generateRandomId() {\n return '_' + Math.random().toString(36).substr(2, 9);\n }\n\n openModel(content, config?: object, type?: string) {\n if (typeof config === 'undefined') {\n config = {};\n }\n this.modalRef = this.modalService.open(content, config);\n\n this.modalRef.result.then((result) => {\n console.log('`Closed with: ${result}`');\n }, (reason) => {\n console.log('`Dismissed ${this.getDismissReason(reason)}`');\n });\n }\n\n publish() {\n let userName = '';\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n\n if (this.selectedPublishChannel === '0' || !this.authService.currentUser) {\n return;\n }\n const filesToUpload = {\n images: [],\n videos: [],\n xmls: ['dmb.screenlist.89.xml'],\n isPopupScreen: true,\n userName: userName,\n serverName: 'content server',\n others: [],\n schedules: [],\n EndpointLocationName: this.selectedPublishChannel.toLowerCase(),\n endpointLocationName: this.selectedPublishChannel.toLowerCase(),\n };\n this.isPublishing = true;\n this.screenService.previewScreenlistFile(filesToUpload).subscribe((response) => {\n if (response.status === 'error') {\n // this.authService.showNotification('', response.message, 'error');\n this.authService.showNotification('', 'Error: Publish failed', 'error');\n } else {\n // this.authService.showNotification(response.message, 'success');\n this.authService.showNotification('Publish Successful', 'success', 'success');\n }\n this.isPublishing = false;\n }, error => {\n this.isPublishing = false;\n this.authService.showNotification('Some error occured please try again later', 'error');\n });\n\n\n }\n\n getChannelNumber(fileName: String) {\n const fileContents = fileName.split('.');\n const channelNumber = parseInt(fileContents[fileContents.length - 2], 10);\n if (channelNumber === 0) {\n return 'Default';\n }\n return 'Ch. ' + channelNumber;\n }\n\n ngOnDestroy() {\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/popup/popup.component.ts","module.exports = \".form-group.inputs input,\\n.form-group.inputs button {\\n display: inline-block;\\n}\\n\\n.form-group.inputs input {\\n /* width: 70%; */\\n}\\n\\n.selectedscreen {\\n width: 100%;\\n height: 60px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\n.selectedscreen .list-group-item {\\n cursor: move;\\n width: 100%;\\n font-weight: bold;\\n border-radius: unset;\\n margin-bottom: 10px;\\n margin-right: 10px;\\n}\\n\\n.screens#selected {\\n width: 100%;\\n}\\n\\n.dragholder .list-group .screens {\\n min-height: 500px;\\n padding-top: 20px;\\n margin-top: 10px;\\n /* padding-left: 20px; */\\n width: 80%;\\n}\\n\\nul#demo2 {\\n height: auto!important;\\n}\\n\\n.fa.fa-minus-circle {\\n color: #ad0606;\\n float: right;\\n cursor: pointer;\\n}\\n\\n.selectedscreen .list-group-item img {\\n width: 32px;\\n float: right;\\n margin-right: 10px;\\n cursor: pointer;\\n}\\n\\n.selectedscreen .schedule-button {\\n display: inline-block;\\n}\\n\\n.selectedscreen .schedule-button .btn {\\n height: 50px;\\n font-weight: bold;\\n color: white;\\n}\\n\\n.modal-body .row.start {\\n /* background-color: #00c851; */\\n border: 2px solid #00c851;\\n padding: 10px;\\n margin-left: 0px;\\n margin-right: 0px;\\n}\\n\\n.modal-body .row.end {\\n /* background-color: #ad0606; */\\n border: 2px solid #ad0606;\\n padding: 10px;\\n margin-top: 3px;\\n margin-left: 0px;\\n margin-right: 0px;\\n}\\n\\n.modal-body .row.weekday {\\n border: 2px solid steelblue;\\n /* background-color: #888c48; */\\n padding: 10px;\\n margin-top: 3px;\\n margin-left: 0px;\\n margin-right: 0px;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n}\\n\\n.checkbox-inline {\\n color: white;\\n margin-left: 25px;\\n}\\n\\n.checkbox input[type=checkbox],\\n.checkbox-inline input[type=checkbox] {\\n position: initial;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/scheduler/scheduler.component.css\n// module id = ./src/app/components/scheduler/scheduler.component.css\n// module chunks = main","module.exports = \"
\\n
\\n
\\n
\\n

Create Time of Day Schedule

\\n
\\n
\\n
\\n
\\n

Available screens

\\n
    \\n\\n
  • \\n {{screen.name}} ({{screen.channelNumber}})\\n
  • \\n
\\n
\\n
\\n \\n\\n
    \\n
    \\n

    Time of Day Screens

    \\n Drag screens here from the list of available screens\\n
    \\n
  • \\n \\n \\n {{screen.name}}\\n
  • \\n
    \\n \\n
    \\n
    \\n
    \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n

Time of Day Schedule : {{selectedScreenForSchdule.name}}

\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n Weekdays\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/scheduler/scheduler.component.html\n// module id = ./src/app/components/scheduler/scheduler.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { AuthService } from '../../services/auth.service';\nimport { ScreenService } from '../../services/screen.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { debug } from 'util';\n\n@Component({\n selector: 'app-schduler',\n templateUrl: './scheduler.component.html',\n styleUrls: ['./scheduler.component.css']\n})\nexport class SchedulerComponent implements OnInit, OnDestroy {\n private currentUser: any;\n private currentXmls: Array = [];\n public currentSchduleFiles: Array = [];\n private scheduleFilesData: Array = [];\n public availableList: Array = [];\n private selectedList: Array = [];\n public schedulerName: String = '';\n private gContentDirectory = '../Content/';\n private gActiveResolution = '1280x720';\n public scheduled_screen_attributes = [];\n isSavingFile: boolean;\n isPublishing: boolean;\n isScreenSaved: boolean;\n public selectedScheduleFile;\n private modalRef;\n private defaultSchedule = null;\n public currentUserServers: Array = [];\n private selectedScreenForSchdule;\n private selectedYear = 'Now';\n private selectedMonth = 'Now';\n private selectedDate = 'Now';\n private selectedHour = 'Now';\n private selectedMinute = 'Now';\n private selectedEndYear = 'Never';\n private selectedEndMonth = 'Never';\n private selectedEndDate = 'Never';\n private selectedEndHour = 'Never';\n private selectedEndMinute = 'Never';\n private selectedWeekdays = ['All'];\n public selectedChannel = 0;\n // private selectedPublishChannel = { iD: 0, endpointLocationName: '-- Groups --' };\n public selectedPublishChannel = '0';\n private scheduleFiles = [];\n private imageFiles = [];\n private videoFiles = [];\n private otherFiles = [];\n private error = false;\n\n private months = ['Jan', 'Feb', 'Mar', 'Apr',\n 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n private weekDays = [\n { name: 'Sun', value: 'Sun', checked: true },\n { name: 'Mon', value: 'Mon', checked: true },\n { name: 'Tue', value: 'Tue', checked: true },\n { name: 'Wed', value: 'Wed', checked: true },\n { name: 'Thu', value: 'Thu', checked: true },\n { name: 'Fri', value: 'Fri', checked: true },\n { name: 'Sat', value: 'Sat', checked: true }\n ];\n\n private years = [];\n private dates = [];\n private hours = [\n 'Midnight',\n '1am',\n '2am',\n '3am',\n '4am',\n '5am',\n '6am',\n '7am',\n '8am',\n '9am',\n '10am',\n '11am',\n '12 Noon',\n '1pm',\n '2pm',\n '3pm',\n '4pm',\n '5pm',\n '6pm',\n '7pm',\n '8pm',\n '9pm',\n '10pm',\n '11pm'\n ];\n private minutes = [];\n\n public availableChannels = [\n '95',\n '96',\n '97',\n '98',\n '99'\n ];\n\n @ViewChild('schedulerCalendarModal') private schedulerCalendarModal;\n\n constructor(\n private authService: AuthService,\n private screenService: ScreenService,\n private modalService: NgbModal\n ) {\n this.currentUser = this.authService.currentUser;\n }\n\n ngOnInit() {\n const currYear = new Date().getFullYear();\n\n for (let i = 0; i < 31; i++) {\n this.years.push(currYear + i + '');\n this.dates.push(i + 1 + '');\n }\n for (let i = 0; i < 60; i = i + 5) {\n this.minutes.push(i < 10 ? (':0' + i) : ':' + i);\n }\n // this.initialize();\n\n this.availableList = [];\n this.currentSchduleFiles = [];\n this.currentXmls = [];\n\n this.screenService.getCurrentUserFiles().subscribe((response) => {\n this.currentXmls = response.data.xmls;\n this.currentSchduleFiles = response.data.scheduleFiles;\n this.readScreenlistFileDetails();\n this.readScheduleFileDetails();\n this.selectedScheduleFile = 0;\n });\n\n this.getCurrentUserServers();\n }\n\n initialize() {\n this.currentSchduleFiles = [];\n this.currentXmls = [];\n this.screenService.getCurrentUserFiles().subscribe((response) => {\n this.currentXmls = response.data.xmls;\n this.currentSchduleFiles = response.data.scheduleFiles;\n // this.readScreenlistFileDetails();\n this.readScheduleFileDetails();\n this.selectedScheduleFile = 0;\n });\n }\n\n allowDrop(ev) {\n ev.preventDefault();\n }\n\n drag(ev) {\n ev.dataTransfer.setData('drag_id', ev.target.id);\n }\n\n drop(ev) {\n let data = ev.dataTransfer.getData('drag_id');\n data = data.split('_');\n const listName = data[0];\n const id = data[1];\n // const dropZone = ev.target.attributes['id'].value.split('_')[0];\n if (listName === 'avail') {\n this.selectedList.push(this.availableList[id]);\n this.generateScreensSchedule(this.availableList[id]);\n }\n }\n\n readScreenlistFileDetails() {\n let userName = '';\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n const reqData = {\n userName: userName,\n fileName: null,\n templatesRelativePath: null\n };\n\n this.currentXmls.forEach((item) => {\n reqData.fileName = item.name;\n this.screenService.readScreenlistFile(reqData).subscribe((response) => {\n response.data.screenlist.channelNumber = this.getChannelNumber(item.name);\n this.availableList.push(response.data.screenlist);\n }, (error) => {\n console.log(error);\n });\n });\n }\n\n getCurrentUserServers() {\n this.screenService.getUserServerList(this.authService.currentUser.userID).subscribe((response) => {\n // this.currentUserServers.push(this.selectedPublishChannel);\n response.data.forEach(element => {\n this.currentUserServers.push(element.endpointLocationName);\n });\n // this.currentUserServers = this.currentUserServers.concat(response.data);\n }, (error) => {\n console.log(error);\n });\n }\n\n readScheduleFileDetails() {\n let userName = '';\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n const reqData = {\n userName: userName,\n fileName: null,\n templatesRelativePath: null\n };\n\n this.currentSchduleFiles.forEach((item) => {\n const id = this.generateRandomId();\n reqData.fileName = item.name;\n this.screenService.readScheduleFile(reqData).subscribe((response) => {\n this.scheduleFilesData.push({\n id: id,\n channelNum: item.name.substr(15, 2),\n name: response.data.scheduleScreenList.name,\n data: response.data.scheduleScreenList.scheduleScreens\n });\n item.channelNum = item.name.substr(15, 2);\n item.name = response.data.scheduleScreenList.name;\n item.id = id;\n }, (error) => {\n console.log(error);\n });\n });\n }\n\n createScreenList(): object {\n // set the global variable name to the just provided screenlist name\n\n // *****************************************************\n // ** Get each of the required values to be entered into the file **\n // *****************************************************\n const dmb_attributes = {\n 'version': '1.0',\n 'timestamp': this.currentTimeStamp()\n };\n\n const screenlist_attributes = {\n 'filename': 'dmb.screenlist.' + this.selectedChannel + '.xml',\n 'name': this.schedulerName ? this.schedulerName : 'Sign_' + Math.floor((Math.random() * 6) + 1),\n 'resolution': this.gActiveResolution,\n 'content_directory': this.gContentDirectory\n };\n\n // To re-arrange default screen to bottom\n const screen = this.scheduled_screen_attributes[this.defaultSchedule];\n this.scheduled_screen_attributes.splice(this.defaultSchedule, 1);\n this.scheduled_screen_attributes.push(screen);\n this.defaultSchedule = this.scheduled_screen_attributes.length - 1;\n\n return {\n UserName: this.currentUser.userName,\n userID: this.currentUser.userID,\n DmbAttributes: dmb_attributes,\n ScreenlistAttributes: screenlist_attributes,\n ScheduledScreensObjects: this.scheduled_screen_attributes\n };\n }\n\n generateScreensSchedule(screenElement, existingSelected = false) {\n const scheduleScreenObj = {\n 'ScreenAttributes': null,\n 'ScreenAssets': null,\n 'name': screenElement.name,\n 'id': this.generateRandomId(),\n 'scheduleString': screenElement.schedule_string ? screenElement.schedule_string : ''\n };\n\n scheduleScreenObj.ScreenAttributes = {\n 'name': screenElement.name,\n 'on_boot_only': screenElement.screen.on_boot_only,\n 'active': screenElement.screen.active,\n 'background_color': screenElement.screen.background_color,\n 'exit_on_video_end': screenElement.screen.exit_on_video_end\n };\n\n scheduleScreenObj.ScreenAssets = screenElement.screen.asset;\n this.scheduled_screen_attributes.push(scheduleScreenObj);\n\n if (!screenElement.schedule_string && existingSelected) {\n this.defaultSchedule = this.scheduled_screen_attributes.indexOf(scheduleScreenObj);\n }\n\n }\n /**\n * Once the user has entered the screenlist file name, create or update the xml file in the 'Contnet' directory\n */\n createScheduleXML(): void {\n if (this.selectedChannel === 0) {\n this.authService.showNotification('Please select Channel to save', 'error');\n return;\n }\n\n if (this.defaultSchedule === null) {\n this.authService.showNotification('Please select Default screen', 'error');\n return;\n }\n\n if (this.scheduled_screen_attributes.length < 2) {\n this.authService.showNotification('Please select atleast two screen', 'error');\n return;\n }\n\n this.error = false;\n\n this.scheduled_screen_attributes.forEach(element => {\n if (!element.scheduleString &&\n this.scheduled_screen_attributes.indexOf(element) !== this.defaultSchedule) {\n this.authService.showNotification('Please configure the schedule', 'error');\n this.error = true;\n }\n });\n\n if (this.error) {\n return;\n }\n\n const data = this.createScreenList();\n this.isSavingFile = true;\n this.screenService.saveScheduleXmlFile(data).subscribe((response) => {\n this.authService.showNotification('Screen saved successfully', 'success', 'success');\n this.isSavingFile = false;\n this.isScreenSaved = true;\n this.isSavingFile = false;\n this.initialize();\n }, error => {\n this.authService.showNotification('Some error occured please try again later', 'error');\n this.isSavingFile = false;\n });\n }\n\n currentTimeStamp(): string {\n const date = new Date();\n const day = date.getDate();\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n const minutes = date.getMinutes();\n const hours = date.getHours();\n const seconds = date.getSeconds();\n const myFormattedDate = day + '-' + (monthIndex + 1) + '-' + year + ' ' + hours + ':' + minutes + ':' + seconds;\n return myFormattedDate;\n }\n\n scheduleChanged($event) {\n this.scheduled_screen_attributes = [];\n this.scheduleFiles = [];\n this.otherFiles = [];\n this.videoFiles = [];\n this.imageFiles = [];\n this.scheduleFilesData.forEach((item) => {\n if (item.id === $event) {\n item.data.forEach(element => {\n element.screen = element;\n this.generateScreensSchedule(element, true);\n });\n this.selectedChannel = item.channelNum;\n this.schedulerName = item.name;\n return;\n }\n });\n }\n\n prepareAssetList(screenAsset) {\n screenAsset.forEach(element => {\n if (element.playlist && element.playlist_items.length > 0) {\n this.otherFiles.push(element.playlists.file_name);\n element.playlist_items.forEach(plItem => {\n if (plItem.type === 'image' && plItem.name) {\n this.imageFiles.push(plItem.name);\n } else if (plItem.type === 'video' && plItem.name) {\n this.videoFiles.push(plItem.name);\n }\n });\n } else if (element.type === 'image' && element.source) {\n this.imageFiles.push(element.source);\n } else if (element.type === 'video' && element.source) {\n this.videoFiles.push(element.source);\n }\n });\n }\n\n removeScreen(index) {\n if (this.defaultSchedule === index) {\n this.defaultSchedule = null;\n }\n this.scheduled_screen_attributes.splice(index, 1);\n }\n\n generateRandomId() {\n return '_' + Math.random().toString(36).substr(2, 9);\n }\n\n showSchedulerCalendar(screen) {\n this.selectedScreenForSchdule = screen;\n if (screen.scheduleString !== '') {\n this.readScheduleFile(screen.scheduleString);\n } else {\n this.resetScheduleFile();\n }\n this.openModel(this.schedulerCalendarModal, { size: 'lg' });\n }\n\n openModel(content, config?: object, type?: string) {\n if (typeof config === 'undefined') {\n config = {};\n }\n this.modalRef = this.modalService.open(content, config);\n\n this.modalRef.result.then((result) => {\n console.log('`Closed with: ${result}`');\n }, (reason) => {\n console.log('`Dismissed ${this.getDismissReason(reason)}`');\n });\n }\n\n readScheduleFile(scheduleString: String) {\n const scheduleStringArray = scheduleString.split(';');\n\n const startDate = scheduleStringArray[0].split('/');\n const endDate = scheduleStringArray[1].split('/');\n const startTime = scheduleStringArray[2].split(':');\n const endTime = scheduleStringArray[3].split(':');\n const weekdays = scheduleStringArray[4].split(',');\n\n this.selectedMonth = startDate[0] === '*' ? 'Now' : this.selectMonth(startDate[0]);\n this.selectedDate = startDate[1] === '*' ? 'Now' : startDate[1];\n this.selectedYear = startDate[2] === '*' ? 'Now' : startDate[2];\n this.selectedEndMonth = endDate[0] === '*' ? 'Never' : this.selectMonth(endDate[0]);\n this.selectedEndDate = endDate[1] === '*' ? 'Never' : endDate[1];\n this.selectedEndYear = endDate[2] === '*' ? 'Never' : endDate[2];\n this.selectedHour = startTime[0] === '*' ? 'Now' : this.selectHour(startTime[0]);\n this.selectedMinute = startTime[1] === '*' ? 'Now' : ':' + startTime[1];\n this.selectedEndHour = endTime[0] === '*' ? 'Never' : this.selectHour(endTime[0]);\n this.selectedEndMinute = endTime[1] === '*' ? 'Never' : ':' + endTime[1];\n\n this.weekDays = [\n { name: 'Sun', value: 'Sun', checked: false },\n { name: 'Mon', value: 'Mon', checked: false },\n { name: 'Tue', value: 'Tue', checked: false },\n { name: 'Wed', value: 'Wed', checked: false },\n { name: 'Thu', value: 'Thu', checked: false },\n { name: 'Fri', value: 'Fri', checked: false },\n { name: 'Sat', value: 'Sat', checked: false }\n ];\n\n weekdays.forEach(element => {\n this.weekDays.filter((item) => {\n if (item.value === element) {\n item.checked = true;\n }\n });\n });\n }\n\n selectHour(value) {\n switch (value) {\n case '0':\n return 'Midnight';\n case '12':\n return '12 Noon';\n default:\n if (parseInt(value, 10) > 12) {\n return (value - 12) + 'pm';\n } else {\n return value + 'am';\n }\n }\n }\n\n selectMonth(value: String) {\n switch (value) {\n case '1':\n return 'Jan';\n case '2':\n return 'Feb';\n case '3':\n return 'Mar';\n case '4':\n return 'Apr';\n case '5':\n return 'May';\n case '6':\n return 'Jun';\n case '7':\n return 'Jul';\n case '8':\n return 'Aug';\n case '9':\n return 'Sep';\n case '10':\n return 'Oct';\n case '11':\n return 'Nov';\n case '12':\n return 'Dec';\n }\n }\n\n createScheduleFile() {\n // const screen = this.scheduled_screen_attributes.filter(opt => opt.id === this.selectedScreenForSchdule.id);\n\n this.scheduled_screen_attributes.forEach(element => {\n if (element.id === this.selectedScreenForSchdule.id) {\n element.scheduleString = this.getMonth(this.selectedMonth) + '/' +\n this.computeValue(this.selectedDate) + '/' +\n this.computeValue(this.selectedYear) + ';' +\n this.getMonth(this.selectedEndMonth) + '/' +\n this.computeValue(this.selectedEndDate) + '/' +\n this.computeValue(this.selectedEndYear) + ';' +\n this.computeHour(this.selectedHour) + ':' +\n this.computeMinute(this.selectedMinute) + ';' +\n this.computeHour(this.selectedEndHour) + ':' +\n this.computeMinute(this.selectedEndMinute) + ';' +\n this.selectedOptions();\n }\n });\n\n this.modalRef.close();\n this.resetScheduleFile();\n }\n\n resetScheduleFile() {\n this.selectedYear = 'Now';\n this.selectedMonth = 'Now';\n this.selectedDate = 'Now';\n this.selectedHour = 'Now';\n this.selectedMinute = 'Now';\n this.selectedEndYear = 'Never';\n this.selectedEndMonth = 'Never';\n this.selectedEndDate = 'Never';\n this.selectedEndHour = 'Never';\n this.selectedEndMinute = 'Never';\n this.weekDays = [\n { name: 'Sun', value: 'Sun', checked: true },\n { name: 'Mon', value: 'Mon', checked: true },\n { name: 'Tue', value: 'Tue', checked: true },\n { name: 'Wed', value: 'Wed', checked: true },\n { name: 'Thu', value: 'Thu', checked: true },\n { name: 'Fri', value: 'Fri', checked: true },\n { name: 'Sat', value: 'Sat', checked: true }\n ];\n }\n computeHour(hour) {\n if (hour === 'Never' || hour === 'Now') {\n return '*';\n } else if (hour === 'Midnight') {\n return '0';\n } else if (hour === '12 Noon') {\n return '12';\n } else if (hour.includes('am')) {\n return hour.replace('am', '');\n } else if (hour.includes('pm')) {\n return (parseInt(hour.replace('pm', ''), 10) + 12) + '';\n }\n }\n\n computeValue(value) {\n if (value === 'Never' || value === 'Now') {\n return '*';\n } else {\n return value;\n }\n }\n\n computeMinute(value) {\n value = this.computeValue(value);\n\n if (value.includes(':')) {\n return value.substr(1);\n }\n return value;\n }\n\n getMonth(month) {\n if (month === 'Never' || month === 'Now') {\n return '*';\n } else {\n switch (month) {\n case 'Jan':\n return 1;\n case 'Feb':\n return 2;\n case 'Mar':\n return 3;\n case 'Apr':\n return 4;\n case 'May':\n return 5;\n case 'Jun':\n return 6;\n case 'Jul':\n return 7;\n case 'Aug':\n return 8;\n case 'Sep':\n return 9;\n case 'Oct':\n return 10;\n case 'Nov':\n return 11;\n case 'Dec':\n return 12;\n }\n }\n }\n\n selectedOptions() {\n let selectedWeekday = '';\n this.weekDays\n .filter(opt => opt.checked)\n .map((opt) => {\n if (selectedWeekday !== '') {\n selectedWeekday += ',' + opt.value;\n } else {\n selectedWeekday = opt.value;\n }\n });\n return selectedWeekday;\n }\n\n setDefaultScreen(index) {\n if (this.defaultSchedule === index) {\n this.defaultSchedule = null;\n } else {\n this.defaultSchedule = index;\n }\n this.scheduled_screen_attributes[index].scheduleString = '';\n }\n\n publish() {\n\n this.scheduleFiles = [];\n\n this.scheduled_screen_attributes.forEach(element => {\n this.prepareAssetList(element.ScreenAssets);\n if (element.scheduleString !== '') {\n this.scheduleFiles.push(element.name.split(' ').join('_') + '.sc');\n }\n });\n\n let userName = '';\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n\n if (this.selectedPublishChannel === '0' || !this.authService.currentUser || this.selectedChannel === 0) {\n return;\n }\n const filesToUpload = {\n images: this.imageFiles,\n videos: this.videoFiles,\n xmls: ['dmb.screenlist.' + this.selectedChannel + '.xml'],\n isScreenScheduler: true,\n userName: userName,\n serverName: 'content server',\n others: this.otherFiles,\n schedules: this.scheduleFiles,\n EndpointLocationName: this.selectedPublishChannel.toLowerCase(),\n endpointLocationName: this.selectedPublishChannel.toLowerCase(),\n };\n this.isPublishing = true;\n this.screenService.previewScreenlistFile(filesToUpload).subscribe((response) => {\n if (response.status === 'error') {\n // this.authService.showNotification('', response.message, 'error');\n this.authService.showNotification('', 'Error: Publish failed', 'error');\n } else {\n // this.authService.showNotification(response.message, 'success');\n this.authService.showNotification('Publish Successful', 'success', 'success');\n }\n this.isPublishing = false;\n }, error => {\n this.isPublishing = false;\n this.authService.showNotification('Some error occured please try again later', 'error');\n });\n\n\n }\n\n getChannelNumber(fileName: String) {\n const fileContents = fileName.split('.');\n const channelNumber = parseInt(fileContents[fileContents.length - 2], 10);\n if (channelNumber === 0) {\n return 'Default';\n }\n return 'Ch. ' + channelNumber;\n }\n\n ngOnDestroy() {\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/scheduler/scheduler.component.ts","module.exports = \" .card-block {\\n -webkit-box-flex: 1;\\n -ms-flex: 1 1 auto;\\n flex: 1 1 auto;\\n padding: 1.25rem\\n }\\n\\n .imgList {\\n /* background-color: antiquewhite; */\\n background-color: transparent !important;\\n padding-top: 5px;\\n padding-bottom: 5px;\\n }\\n\\n div#image-slider-parent {\\n background-color: transparent !important;\\n }\\n\\n ul#image-slider {\\n /*border-style: solid;*/\\n /*border-width: 3px;*/\\n /*border-color: #666666;*/\\n border-top: 3px solid #666;\\n border-bottom: 3px solid #666;\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n width: -webkit-max-content !important;\\n width: -moz-max-content !important;\\n width: max-content !important;\\n }\\n\\n ul#video-slider {\\n /*border-style: solid;*/\\n /*border-width: 3px;*/\\n /*border-color: #666666;*/\\n border-top: 3px solid #666;\\n border-bottom: 3px solid #666;\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n width: -webkit-max-content !important;\\n width: -moz-max-content !important;\\n width: max-content !important;\\n }\\n\\n .slide-img {\\n width: 358px;\\n margin-right: 10px;\\n }\\n\\n li.slide-img {\\n border-color: #666666;\\n /*border-right-style: solid;*/\\n /*border-right-width: 2px;*/\\n border-right: none !important;\\n }\\n\\n .sliderImg {\\n height: 80px;\\n }\\n\\n #full-hd.hd {\\n /* background-color: #212121!important; */\\n width: 1960px;\\n }\\n\\n #full-hd.full-hd {\\n width: 2650px;\\n }\\n\\n /* .canvasContainer {\\n padding-top: 15px;\\n padding-bottom: 15px;\\n} */\\n\\n .col-llg.canvasContainer {\\n float: left;\\n }\\n\\n /* .col-lg-2.bg-toolbar.mh-600 {\\n top: 2em;\\n}\\n\\n.col-lg-1.bg-toolbar.mh-600.last-col {\\n top: 2em;\\n} */\\n\\n .modal-body .form-group label {\\n width: 100%;\\n }\\n\\n .no-side-padding {\\n padding-left: 0px !important;\\n padding-right: 0px !important;\\n }\\n\\n #lbl_registerplayer_errmsg,\\n #lbl_updateplayer_errmsg,\\n #lbl_publish_errmsg,\\n .deletefileasset {\\n color: white;\\n /* font-weight: bold; */\\n margin-right: 40px;\\n width: 100%;\\n }\\n\\n #playerlist ul li {\\n display: inline-block;\\n margin-left: 0px;\\n margin-right: 6%;\\n margin-top: 10px;\\n margin-bottom: 10px;\\n }\\n\\n #lblPlayerName,\\n #lblSelectAllPlayers {\\n font-size: 22px;\\n }\\n\\n li.players {\\n width: 250px;\\n }\\n\\n #registration-code {\\n letter-spacing: 10px;\\n text-transform: uppercase;\\n }\\n\\n /* #canvasContainer {\\n transform: scale(0.5) translate(-50%, -50%);\\n }\\n \\n .assetTypeList {\\n transform: translate(-25%, -680%);\\n }\\n \\n #attributes_container {\\n transform: translate(-320%);\\n } */\\n\\n ul#image-slider {\\n border-top: none;\\n border-bottom: none;\\n }\\n\\n ul#video-slider {\\n border-top: none;\\n border-bottom: none;\\n }\\n\\n .PlayStatusContainer {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n width: 100%;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n margin-left: 8px;\\n margin-bottom: 20px;\\n }\\n\\n .PlayStatusContent {\\n width: 31.86%;\\n margin-bottom: 20px;\\n margin-right: 20px;\\n border-top-left-radius: 10px;\\n border-top-right-radius: 10px;\\n background-color: #79a1c9 !important;\\n color: black;\\n font-size: 18px;\\n padding-left: 10px;\\n padding-right: 10px;\\n padding-bottom: 10px;\\n padding-top: 0px;\\n }\\n\\n .PlayStatusHeaderContent {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n width: 100%;\\n height: 30px;\\n margin-bottom: 10px;\\n }\\n\\n .PlayStatusInnerContent {\\n background-color: white !important;\\n padding: 10px;\\n border-bottom-left-radius: 10px;\\n border-bottom-right-radius: 10px;\\n font-style: italic;\\n }\\n\\n .PlayStatusHeaderText {\\n text-align: left;\\n width: 140%;\\n padding-top: 8px;\\n padding-left: 10px;\\n }\\n\\n .PlayStatusHeaderAction {\\n text-align: right;\\n width: 50%;\\n padding-top: 6px;\\n }\\n\\n .PlayerStatusAction {\\n cursor: pointer;\\n }\\n\\n .PlayStatusPlayerName {\\n width: 120%;\\n }\\n\\n .simple-notification-wrapper {\\n position: fixed;\\n width: 354px !important;\\n z-index: 1000;\\n }\\n\\n /* .dmb-settings .row{\\n line-height: 50px;\\n } */\\n\\n .customcheck .pretty {\\n margin-right: 0;\\n }\\n\\n .customcheck .pretty input {\\n width: calc(1em + 2px);\\n height: calc(1em + 2px);\\n }\\n\\n .customcheck .pretty .state label {\\n text-indent: 0;\\n padding-right: 28px;\\n font-weight: 500;\\n }\\n\\n .customcheck .pretty .state label:after,\\n .customcheck .pretty .state label:before {\\n right: 0;\\n left: auto;\\n top: -1px;\\n }\\n\\n .customrangewrap .ngx-slider .ngx-slider-bubble.ngx-slider-limit {\\n color: #000 !important;\\n display: none;\\n }\\n\\n .customrangewrap .ngx-slider .ngx-slider-bubble {\\n color: #000;\\n font-size: 15px;\\n }\\n\\n .customrangewrap .ngx-slider .ngx-slider-bar {\\n height: 1.5px;\\n background: #000;\\n }\\n\\n .customrangewrap .ngx-slider .ngx-slider-bar-wrapper {\\n margin-top: -15px;\\n }\\n\\n .customrangewrap .ngx-slider {\\n display: block;\\n }\\n\\n .cpt {\\n cursor: pointer;\\n }\\n\\n .playlistitem-drag{\\n border: dashed 3px red!important;\\n opacity: 0.4!important;\\n }\\n\\n .playlistitem-droppable{\\n border: dashed 6px #58c727!important;\\n }\\n\\n .page-zoom-slider{\\n display: block;\\n width: 100%;\\n padding: 0.375rem 0.75rem;\\n }\\n\\n .page-zoom-slider::-webkit-slider-thumb {\\n -webkit-appearance: none!important; /* Override default look */\\n appearance: none!important;\\n background: #2196F3 /* Green background */\\n }\\n\\n .page-zoom-slider::-moz-range-thumb {\\n -webkit-appearance: none!important; /* Override default look */\\n -moz-appearance: none!important;\\n appearance: none!important;\\n background: #2196F3; /* Green background */\\n }\\n\\n .page-zoom-slider::-ms-thumb{\\n -webkit-appearance: none!important; /* Override default look */\\n appearance: none!important;\\n background: #2196F3;\\n }\\n\\n .grid-toggle-label {\\n text-align: left!important;\\n width: 100%!important;\\n }\\n\\n #divTimeOfDayTop{\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n }\\n\\n #divTimeOfDayLoad{\\n text-align: center;\\n padding-top: 70px;\\n padding-bottom: 30px;\\n height: 180px;\\n }\\n\\n #divTimeOfDayStart{\\n text-align: center;\\n padding-top: 50px;\\n padding-bottom: 50px;\\n font-size: 22px;\\n height: 180px;\\n }\\n\\n #divTimeOfDayContent {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n text-align: center;\\n padding-top: 30px;\\n padding-bottom: 10px;\\n height: 180px;\\n }\\n\\n .dayofweeklabel{\\n margin: 0px;\\n margin-left: 5px;\\n margin-right: 20px;\\n font-size: 20px;\\n }\\n\\n .timeofdaycontent-inner{\\n padding: 10px;\\n }\\n\\n .time-of-day-column-label{\\n font-style: italic;\\n color: #a7adb4;\\n }\\n\\n .Day-Of-Week-Div-container{\\n width: 100px!important;\\n }\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/screen-builder/screen-builder.component.css\n// module id = ./src/app/components/screen-builder/screen-builder.component.css\n// module chunks = main","module.exports = \"
\\n
\\n
\\n
\\n
\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
    \\n
  • \\n \\\"\\\"\\n
  • \\n
\\n
\\n
\\n
    \\n
  • \\n \\\"\\\"\\n \\\"\\\"\\n
  • \\n
\\n
\\n
\\n \\n
\\n\\n
\\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n
\\n
\\n
\\n
0\\\" class=\\\"text-white-uppercase\\\" style=\\\"color: white;font-size: 1rem;\\\">Assets
\\n \\n
\\n
\\n
\\n
\\n {{ showAssetsTitle(myElement.attrs.asset_type) }}
Name: {{myElement.attrs.name}}\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\\"Image\\n
\\n
\\n \\\"Text\\n
\\n
\\n \\\"Audio\\n
\\n
\\n \\\"Browser\\n
\\n
\\n \\\"Clock\\n
\\n
\\n \\\"Text\\n
\\n
\\n \\\"YouTube\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\\"Image\\n \\\"Text\\n \\\"Audio\\n \\\"Browser\\n \\n \\\"Clock\\n \\n \\n \\n \\\"Text\\n \\\"YouTube\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n

Save Screen

\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n \\n\\n \\n\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Settings

\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n

Add User

\\n

Edit User

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n Publishing Profile Management \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Add New

\\n

Edit Existing

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n\\n\\n
\\n

Screen Resolution

\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n\\n
\\n
\\n

Video Preview

\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n

Webpage Screenshot

\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n

Site Logs

\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n

Upload Image(s)

\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n

Upload Video or .MP3 Audio File(s)

\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n

Edit Streaming Channels

\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n

Edit Channel Lineup

\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n

Where To?

\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Select Player(s)

\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
    \\n
  • \\n
    Status: {{rp.status}}
    Screen Resolution: {{rp.screenResolution}}\\\" data-toggle=\\\"tooltip\\\" data-html=\\\"true\\\">\\n \\n
    \\n \\n
    \\n
    \\n
  • \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n\\n
\\n

Select Player(s)

\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
    \\n
  • \\n
    Screen Resolution: {{rp.screenResolution}}\\\" data-toggle=\\\"tooltip\\\" data-html=\\\"true\\\">\\n \\n
    \\n \\n
    \\n
    \\n
  • \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Register New Player

\\n \\n
\\n
\\n\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n\\n\\n
\\n

Player Not Found

\\n \\n
\\n
\\n \\n
\\n Player {{registrationCode}} does not exist on the server.

\\n \\n If your player is online and you have confirmed that the provided ID has been entered correctly, \\n please take the following steps to assign your player a new ID:

\\n\\n 1) Exit from the DMB.tv App
\\n 2) Under Settings >> select the Apps option
\\n 3) Select the Digital Media Bridge App
\\n 4) Select the Clear data option
\\n 5) Return to the DMB.tv App and you will be provided a new Unique ID. Please register your player with this ID.\\n
\\n
\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Rename / Delete Player

\\n \\n
\\n
\\n\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n\\n\\n
\\n

Rename / Delete Screen

\\n \\n
\\n
\\n\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n\\n\\n
\\n

Monitor Players

\\n \\n
\\n
\\n\\n
0\\\">\\t\\n

Active Players ({{playerStatusObject.activePlayerCount}})

\\t\\n
\\n
\\n
\\n
\\n
\\n
\\n {{ap.playerName}}\\n
\\n
\\n  \\n \\\"GroupName\\\"\\n
\\n
\\n
\\n \\\"\\n \\\"\\n \\\"\\n
\\n
\\n\\n
\\n Status: {{ap.status}}\\n
\\n ID: {{ap.registrationCode}}\\n
\\n Current Screen: {{ap.currentScreen}}\\n
\\n Last Reported: {{(ap.heartbeat | date: \\\"M/d/yy h:mm a\\\") +\\\" \\\"+\\\"ET\\\"}}\\n
\\n
\\n
\\n \\n
0\\\">\\t\\n

Inactive / Unknown Players ({{playerStatusObject.inactivePlayerCount}})

\\t\\n
\\n
\\n
\\n
\\n
\\n \\n {{ip.playerName}}\\n \\n \\n
\\n
\\n \\\"\\n \\\"\\n \\\"\\n
\\n
\\n
\\n Status: {{ip.status}}\\n
\\n ID: {{ip.registrationCode}}\\n
\\n Last Screen: {{ip.currentScreen}}\\n
\\n Last Reported: {{ip.heartbeat !=\\\"\\\" ? (ip.heartbeat | date: \\\"M/d/yy h:mm a\\\") +\\\" \\\"+\\\"ET\\\": \\\" \\\"}}\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n

Time Of Day Schedule

\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n\\n\\n
\\n

{{playerScreenshotHeader}}

\\n \\n
\\n
\\n
\\n \\\"Screenshot\\n
\\n
\\n\\n
\\n\\n\\n
\\n

Delete Image(s)

\\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n\\n\\n
\\n

Delete .MP3 File(s)

\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n\\n\\n
\\n

Delete Video(s)

\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n\\n\\n
\\n
\\n

Search YouTube

\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n

{{this.dmbplayerName}} Settings

\\n \\n
\\n
\\n
\\n\\n
\\n
\\n {{this.dmbTVStatusList[0].appVersion}}\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n

Account

\\n \\n
\\n \\n
\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/screen-builder/screen-builder.component.html\n// module id = ./src/app/components/screen-builder/screen-builder.component.html\n// module chunks = main","import { Component, ViewChild, OnInit, AfterViewInit, HostListener, AfterContentInit, ElementRef } from '@angular/core';\nimport 'rxjs/add/observable/of';\nimport { Observable } from 'rxjs/Observable';\nimport { AuthService } from '../../services/auth.service';\nimport { UserService } from '../../services/user.service';\nimport { User } from '../../models/user';\n// import {KonvaComponent} from 'ng2-konva';\nimport * as Konva from 'konva';\n// import htmlString = JQuery.htmlString;\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ScreenService } from '../../services/screen.service';\nimport { RegistrationService } from '../../services/Registration.service';\nimport { AppSettingsService } from '../../services/app-settings.service';\nimport { Ng4LoadingSpinnerService } from 'ng4-loading-spinner';\nimport { DataService } from '../../services/data.service';\nimport { NgForm } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { createElement } from '@angular/core/src/view/element';\nimport { DatePipe } from '@angular/common';\nimport { HtmlParser } from '@angular/compiler';\nimport { element } from 'protractor';\nimport { Options } from '@angular-slider/ngx-slider';\nimport { time } from 'console';\nimport { Subject } from 'rxjs';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY } from '@angular/cdk/a11y';\nimport { validateVerticalPosition } from '@angular/cdk/overlay';\nimport { SubscriptionService } from '../../services/subscription.service';\nimport { decode } from 'punycode';\n//import { group } from 'console';\n//import { Console } from 'console';\n// import { interval } from 'rxjs';\n\n//import { Script } from 'vm';\n// declare const Konva: any;\nlet ng: any;\ndeclare var jquery: any;\ndeclare var $: any;\ndeclare var jscolor: any;\ndeclare var playerStatusIntervalID: any;\nlet draggedPlayListItemId: any;\n\n@Component({\n selector: 'app-screen-builder',\n templateUrl: './screen-builder.component.html',\n styleUrls: [\n './screen-builder.component.css'\n ]\n})\nexport class ScreenBuilderComponent implements OnInit, AfterViewInit, AfterContentInit {\n currentUser: User;\n public canvasBgColor = '#ffffff';\n public signName = '';\n public registrationCode = '';\n public screenName = '';\n public newScreenName = '';\n public viewScreenshotfile = '';\n public playerScreenshotHeader = '';\n public imagefilename = '';\n public audiofilename = '';\n public videofilename = '';\n public playerName = '';\n public stage: any;\n public layer: any;\n public dragLayer: any;\n public stageWidth = 1280;\n public stageHeight = 720;\n public list: Array = [];\n public imageList: Array = [];\n public videoLlist: Array = [];\n public textList: Array = [];\n public currentXmls: Array = [];\n public currentScreens: Array = [];\n public gFilesToBeDelivered: Array = [];\n public gContentAllFiles: Array = [];\n public currentImages: Array = [];\n public currentVideos: Array = [];\n public currentAudios: Array = [];\n public videoAssets: Array = [];\n public templateMenu: Array = [];\n public videoChannelAssets: Array = [];\n public\n currentTemplates = { hdTemplate: [], fullHdTemplate: [], allTemplates: [], fullScreenWithImageTemplate: [], fullScreenWithVideoTemplate: [], menuTemplates: [] };\n public currentUserServers: Array = [];\n public activeAssetId;\n public publishLineup = false;\n public activeImageParent;\n public channelUpdatePath;\n public screenshotAppPath;\n public siteLogAppPath;\n public timer: any;\n public sly; // this is used for the horizontal slide of assets\n private gContentDirectory = '../Content/';\n // public gActiveResolution = '1280x720';\n public gActiveResolution = '1920x1080';\n public selectedResolution = this.gActiveResolution;\n public selectedModel = null;\n public _templatePath: any = false;\n private publishOnlyVideos = false;\n private publishVideos = true;\n public lastSaveDateTime;\n public oldMinutes = 0;\n public previewEndPoint = {\n UserID: null,\n userName: null,\n Connection: 'FTP',\n IPAddress: '127.0.0.1',\n Port: 21,\n ServerName: 'preview end point'\n };\n public contentServer = {\n Name: '',\n UserID: null,\n userID: null,\n userName: null,\n Connection: 'FTP',\n IPAddress: '127.0.0.1',\n Port: 21,\n UserName: '',\n Password: '',\n ContentDirectory: '',\n TransferDirectory: '',\n FileMasks: '',\n ServerName: 'content server',\n EndpointLocationName: null,\n iD: null\n };\n public ezTvServer = {\n UserID: null,\n userName: null,\n Protocol: 'FTP',\n IPAddress: '127.0.0.1',\n UserName: '',\n Password: '',\n ServerName: 'ez tv server'\n };\n public userObj = {\n UserName: null,\n Password: null,\n UserRole: '',\n FirstName: null,\n LastName: null,\n EmailID: '',\n UserId: null,\n HomeDirectory: null\n };\n public userList = [];\n public userServersList = [];\n public editUserObj = {};\n public contentServerUserObj = { userID: null, userName: null };\n public contentServerObj = {};\n public publichContentServerObj = { endpointLocationName: '' };\n public isAddNewUser = false;\n public isAddNewUserServer = false;\n public dmbTVStatusList = [];\n public volumeLocally = false;\n public screenStatus = false;\n public active = false;\n public hideSlider = true;\n public showNotSet = false;\n public dateUpdatedOnSiteStatsTable = '';\n public playerRegistrationCode = '';\n public xValue = 0;\n public yValue = 0;\n public widthValue = 0;\n public heightValue = 0;\n public isObjectMoved = false;\n public dmbplayerName = '';\n public isPortraitView = false;\n public tod_no_of_players = 0;\n public isEditRule = false;\n // public editUserObj= {};\n // public userRoles = ['admin', 'user'];\n public userRoles: Array = [];\n dmbform = {\n Volume: '',\n ScreenStatus: '',\n ReebootTime: '',\n };\n\n value: number = 100;\n options: Options = {\n floor: 0,\n ceil: 100\n };\n\n zoomValue: number = 100;\n zoomOptions: Options = {\n floor: 40,\n ceil: 100\n };\n\n public timenow: number;\n TimeArray = [{ id: '-1', name: 'Not Set' }, { id: '0', name: 'Restart Now' }, { id: '01:00', name: '1:00 AM' }, { id: '02:00', name: '2:00 AM' }, { id: '03:00', name: '3:00 AM' }, { id: '04:00', name: '4:00 AM' }, { id: '05:00', name: '5:00 AM' }, { id: '06:00', name: '6:00 AM' }, { id: '07:00', name: '7:00 AM' }, { id: '08:00', name: '8:00 AM' }, { id: '09:00', name: '9:00 AM' }, { id: '10:00', name: '10:00 AM' }, { id: '11:00', name: '11:00 AM' }, { id: '12:00', name: '12:00 PM' }, { id: '13:00', name: '1:00 PM' }, { id: '14:00', name: '2:00 PM' }, { id: '15:00', name: '3:00 PM' }, { id: '16:00', name: '4:00 PM' }, { id: '17:00', name: '5:00 PM' }, { id: '18:00', name: '6:00 PM' }, { id: '19:00', name: '7:00 PM' }, { id: '20:00', name: '8:00 PM' }, { id: '21:00', name: '9:00 PM' }, { id: '22:00', name: '10:00 PM' }, { id: '23:00', name: '11:00 PM' }];\n public isSavingUser = false;\n public isDeletingUser = false;\n public screenAttributes = [\n { name: 'Sign Name', id: 'sign_name' },\n { name: 'Background Color', id: 'bkg_color' }\n ];\n public imageAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_image_options' },\n { name: 'FullScreen', id: '_fullscreen', ControlType: 'checkbox', ShowAsDetails: false },\n { name: 'Border', id: '_border', ControlType: 'checkbox', ShowAsDetails: false },\n // { name: 'IsBorder',id: '_isborder', hidden: false,ShowAsDetails: true },\n { name: '', id: '_def_source', ShowAsDetails: false },\n { name: 'Source', id: '_source', ShowAsDetails: false, maxlength: 2000 },\n { name: '', id: '_resize_to_source', ShowAsDetails: false, maxlength: 2000 },\n { name: 'Name', id: '_name', ShowAsDetails: true },\n { name: 'X', id: '_x', default: 20, ShowAsDetails: true },\n { name: 'Y', id: '_y', default: 20, ShowAsDetails: true },\n { name: 'Width', id: '_width', default: 400, ShowAsDetails: true },\n { name: 'Height', id: '_height', default: 300, ShowAsDetails: true },\n { name: 'PlayList', id: '_playlist', ControlType: 'checkbox', hidden: false, ShowAsDetails: true },\n // { name: 'File Name', id: '_file_name', hidden: true, ShowAsDetails: true },\n { name: 'Item Duration', id: '_item_duration', hidden: true, ShowAsDetails: true },\n // { name: 'Transition', id: '_transtion', hidden: true, ShowAsDetails: true }\n { name: 'FULLSCREEN SHUFFLE', id: '_image_wall', ControlType: 'checkbox', hidden: true, ShowAsDetails: true },\n ];\n public videoAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_video_options' },\n { name: 'FullScreen', id: '_fullscreen', ControlType: 'checkbox', ShowAsDetails: false },\n { name: 'Border', id: '_border', ControlType: 'checkbox', ShowAsDetails: false },\n { name: '', id: '_def_source', ShowAsDetails: false },\n { name: '', id: '_audio_def_source', ShowAsDetails: false },\n { name: 'Name', id: '_name', ShowAsDetails: false },\n { name: 'Source', id: '_source', ShowAsDetails: false, maxlength: 2000 },\n { name: 'X', id: '_x', ShowAsDetails: true },\n { name: 'Y', id: '_y', ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n // { name: 'Inc. Videos', id: '_publish_videos', ControlType: 'checkbox', hidden: false, ShowAsDetails: true },\n // { name: 'PlayList', id: '_playlist', ControlType: 'checkbox', hidden: false, ShowAsDetails: true },\n // { name: 'File Name', id: '_file_name', hidden: true, ShowAsDetails: true }\n ];\n public textAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_text_options' },\n { name: 'Source', id: '_source', defaultVal: '--Text--', ShowAsDetails: false, maxlength: 700 },\n { name: 'Name', id: '_name', ShowAsDetails: true },\n { name: 'X', id: '_x', ShowAsDetails: true },\n { name: 'Y', id: '_y', ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n { name: 'Background Color', id: '_txt_bkg_color', ShowAsDetails: true },\n { name: 'Background Transparency', id: '_txt_bkg_opacity', ShowAsDetails: true },\n { name: '', id: '_txt_opacity_label', ShowAsDetails: true },\n { name: 'Foreground Color', id: '_txt_font_color', ShowAsDetails: true },\n { name: 'Font', id: '_font', defaultVal: 'Default', ShowAsDetails: true },\n { name: 'Font Size', id: '_font_size', ShowAsDetails: true },\n { name: 'FONT INSET', id: '_font_special', ControlType: 'checkbox', ShowAsDetails: true }\n ];\n public browserAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_browser_options' },\n { name: 'FullScreen', id: '_fullscreen', ControlType: 'checkbox', ShowAsDetails: false },\n { name: 'Source', id: '_source', defaultVal: '-- Browser --', ShowAsDetails: false, maxlength: 2000 },\n { name: 'Name', id: '_name', ShowAsDetails: true },\n { name: 'X', id: '_x', ShowAsDetails: true },\n { name: 'Y', id: '_y', ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n { name: 'Refresh Interval', id: '_refresh_interval', ShowAsDetails: true }];\n public channelAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_channel_options' },\n { name: 'Name', id: '_name', ShowAsDetails: true },\n { name: 'X', id: '_x', ShowAsDetails: true },\n { name: 'Y', id: '_y', ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n { name: 'Background Color', id: '_txt_bkg_color', ShowAsDetails: true },\n { name: 'Background Transparency', id: '_txt_bkg_opacity', ShowAsDetails: true },\n { name: '', id: '_txt_opacity_label', ShowAsDetails: true },\n { name: 'Foreground Color', id: '_txt_font_color', ShowAsDetails: true },\n { name: 'Font', id: '_font', ShowAsDetails: true },\n { name: 'Font Size', id: '_font_size', ShowAsDetails: true }\n ];\n public clockAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_clock_options' },\n { name: 'Name', id: '_name', ShowAsDetails: true },\n { name: 'X', id: '_x', ShowAsDetails: true },\n { name: 'Y', id: '_y', ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n { name: 'Background Color', id: '_txt_bkg_color', ShowAsDetails: true },\n { name: 'Background Transparency', id: '_txt_bkg_opacity', ShowAsDetails: true },\n { name: '', id: '_txt_opacity_label', ShowAsDetails: true },\n { name: 'Foreground Color', id: '_txt_font_color', ShowAsDetails: true },\n { name: 'Date Format', id: '_date_format', defaultVal: 'MM/DD/YY', ShowAsDetails: true },\n { name: 'Time Format', id: '_time_format', defaultVal: '12h no seconds + AMPM', ShowAsDetails: true },\n { name: 'Time Zone', id: '_time_zone', defaultVal: 'Default', ShowAsDetails: true },\n { name: 'Font', id: '_font', defaultVal: 'Default', ShowAsDetails: true },\n { name: 'Font Size', id: '_font_size', ShowAsDetails: true }\n ];\n public rssAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_rss_options' },\n { name: 'Name', id: '_name', ShowAsDetails: true },\n { name: 'Source', id: '_source', defaultVal: '-- Options --', ShowAsDetails: true },\n { name: '', id: '_def_source', ShowAsDetails: true },\n { name: 'X', id: '_x', ShowAsDetails: true },\n { name: 'Y', id: '_y', ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n { name: 'Background Color', id: '_txt_bkg_color', ShowAsDetails: true },\n { name: 'Background Transparency', id: '_txt_bkg_opacity', ShowAsDetails: true },\n { name: '', id: '_txt_opacity_label', ShowAsDetails: true },\n { name: 'Foreground Color', id: '_txt_font_color', ShowAsDetails: true },\n { name: 'Font', id: '_font', ShowAsDetails: true },\n { name: 'Direction', id: '_direction', ShowAsDetails: true },\n { name: 'Rate', id: '_rate', ShowAsDetails: true },\n { name: 'Font Size', id: '_font_size', ShowAsDetails: true }\n ];\n public textScrollAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_textscroll_options' },\n { name: 'Source', id: '_source', defaultVal: '-- Text Scroll --', ShowAsDetails: false, maxlength: 700 },\n { name: 'Name', id: '_name', ShowAsDetails: true },\n { name: 'X', id: '_x', ShowAsDetails: true },\n { name: 'Y', id: '_y', ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n { name: 'Background Color', id: '_txt_bkg_color', ShowAsDetails: true },\n { name: 'Background Transparency', id: '_txt_bkg_opacity', ShowAsDetails: true },\n { name: '', id: '_txt_opacity_label', ShowAsDetails: true },\n { name: 'Foreground Color', id: '_txt_font_color', ShowAsDetails: true },\n { name: 'Font', id: '_font', defaultVal: 'Default', ShowAsDetails: true },\n // { name: 'Direction', id: '_direction', ShowAsDetails: true },\n { name: 'Rate', id: '_rate', ShowAsDetails: true },\n { name: 'Font Size', id: '_font_size', ShowAsDetails: true },\n { name: 'FONT INSET', id: '_font_special', ControlType: 'checkbox', ShowAsDetails: true }\n ];\n public textMultilineAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_textmultiline_options' },\n { name: 'Name', id: '_name', ShowAsDetails: true },\n { name: 'Source', id: '_source', defaultVal: '-- Text Multiline --', ShowAsDetails: true },\n { name: 'X', id: '_x', ShowAsDetails: true },\n { name: 'Y', id: '_y', ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n { name: 'Background Color', id: '_txt_bkg_color', ShowAsDetails: true },\n { name: 'Background Transparency', id: '_txt_bkg_opacity', ShowAsDetails: true },\n { name: '', id: '_txt_opacity_label', ShowAsDetails: true },\n { name: 'Foreground Color', id: '_txt_font_color', ShowAsDetails: true },\n { name: 'Font', id: '_font', ShowAsDetails: true },\n { name: 'Font Size', id: '_font_size', ShowAsDetails: true }\n ];\n public youtubeAttributes = [\n // { name: 'Type', id: '_type' },\n { name: '', id: '_youtube_options' },\n { name: 'FullScreen', id: '_fullscreen', ControlType: 'checkbox', ShowAsDetails: false },\n { name: 'Name', id: '_name', ShowAsDetails: false },\n { name: '', id: '_search_youtube', ShowAsDetails: false },\n { name: 'Playlist ID', id: '_source', ShowAsDetails: false, maxlength: 700 },\n { name: 'X', id: '_x', default: 20, ShowAsDetails: true },\n { name: 'Y', id: '_y', default: 20, ShowAsDetails: true },\n { name: 'Width', id: '_width', ShowAsDetails: true },\n { name: 'Height', id: '_height', ShowAsDetails: true },\n {\n name: '', id: '_note', message: 'Note: Take the following steps to find your YouTube Channel ID:
' +\n '1) Log into your YouTube account
' +\n '2) Click on your profile image in the top right corner
' +\n '3) Choose Settings in the menu
' +\n '4) Click on the link: View advanced settings
' +\n '5) You can copy your YouTube Channel ID on this page with the Copy button

Each video in the playlist must support embedded playback in order to play as part of the digital signage screen.', ShowAsDetails: true\n }\n ];\n public isPlayListAcitve = false;\n public playListItems = [];\n private allowPreview = false;\n ////////////\n // public fontOption = [\n // '', 'Andale Mono', 'Addale Sans', 'Arial', 'Aurora Bold Condenced', 'Avenir-Pro',\n // 'Clearface Gothic', 'College', 'Copper', 'Copper Italic', 'Courier Bold', 'Courier Bold Italic',\n // 'DIN Alternate', 'DIN Condensed', 'DIN Office', 'DIN Office Black', 'DIN Office Black Italic', 'DIN Office Bold',\n // 'DIN Office Bold Italic', 'DIN Office Italic', 'DIN Office Light', 'DIN Office Light Italic', 'DIN Office Medium',\n // 'DOM Casual', 'DOM Casual Italic', 'DTV TG', 'DTV TG Italic', 'Frankfurt', 'Frutiger Italic', 'Frutiger Mono',\n // 'Frutiger Mono Italic', 'Frutiger Roman', 'Gotham Black', 'Gotham Bold', 'Gotham Medium', 'Helvetica',\n // 'Helvetica Narrow', 'Helvetica-Black-SemiBold', 'Kaufmann Bold', 'Kaufmann Bold Italic', 'Kefa', 'Minion Pro',\n // 'moderna', 'Nasalization', 'Open Sans', 'PresicavLt-Regular', 'PresicavRg-Regular', 'Smudgie Crayon',\n // 'Times Europa', 'Times Europa Italic'\n // ];\n public fontOption = [\n { value: 'Default', text: 'Default' }, { value: 'Arial', text: 'Arial' }, { value: 'Arial-Italic', text: 'Arial (w/ Italic)' },\n { value: 'Verdana', text: 'Verdana' }, { value: 'Georgia', text: 'Georgia' }, { value: 'Times New Roman', text: 'Times New Roman' },\n { value: 'Times New Roman-Italic', text: 'Times New Roman (w/ Italic)' },\n { value: 'Courier New', text: 'Courier New' }, { value: 'Courier New-Italic', text: 'Courier New (w/ Italic)' }\n ];\n public dateFormatOptions = [\n '', 'MM/DD/YYYY', 'MM/DD/YY', 'MMM DD YY', 'MMM DD YYYY', 'DD/MM/YYYY', 'DD/MM/YY', 'DD MMM YY', 'DD MMM YYYY'\n ];\n public timeFormatOptions = [\n '', '24h + seconds', '24h + no seconds', '12h + seconds + AMPM', '12h + seconds no AMPM',\n '12h no seconds + AMPM', ' 12h no seconds no AMPM'\n ];\n public directionOptions = [\n '', 'left-to-right', 'right-to-left'\n ];\n // public rateOption = [\n // '', '1', '2', '3', '4', '5'\n // ];\n public rateOption = [\n { value: '', text: '' }, { value: '1', text: 'Slow ' }, { value: '2', text: 'Medium' }, { value: '3', text: 'Fast ' }\n ];\n public rssValueOptions = [\n { \"title\": \"- Select -\", \"value\": \"\" }\n ];\n // public timezoneOption = ['', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau'\n // , 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta'\n // , 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown'\n // , 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum'\n // , 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville'\n // , 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru'\n // , 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou'\n // , 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak'\n // , 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina'\n // , 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis',\n // 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan'\n // , 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem'\n // , 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise'\n // , 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas'\n // , 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao'\n // , 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit'\n // , 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador'\n // , 'America/Fort_Nelson', 'America/Fortaleza'\n // , 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk'\n // , 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana'\n // , 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis'\n // , 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City'\n // , 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica',\n // 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Kralendijk', 'America/La_Paz'\n // , 'America/Lima', 'America/Los_Angeles', 'America/Lower_Princes', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique'\n // , 'America/Matamoros', 'America/Mazatlan', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton'\n // , 'America/Monterrey', 'America/Montevideo', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/North_Dakota/Beulah'\n // , 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo'\n // , 'America/Phoenix', 'America/Port_of_Spain', 'America/Port-au-Prince', 'America/Porto_Velho'\n // , 'America/Puerto_Rico', 'America/Punta_Arenas', 'America/Rainy_River', 'America/Rankin_Inlet'\n // , 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo'\n // , 'America/Scoresbysund', 'America/Sitka', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent'\n // , 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto'\n // , 'America/Tortola', 'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife',\n // 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson',\n // 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/Syowa', 'Antarctica/Troll'\n // , 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr'\n // , 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok'\n // , 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus'\n // , 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Hebron'\n // , 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka'\n // , 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk'\n // , 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qyzylorda', 'Asia/Riyadh'\n // , 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent'\n // , 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Ust-Nera'\n // , 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faroe',\n // 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley'\n // , 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla'\n // , 'Australia/Hobart', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/Perth', 'Australia/Sydney'];\n\n public timezoneOption = [{ value: 'Default', text: 'Default' }, { value: 'America/New_York', text: 'America/Eastern' }\n , { value: 'America/New_York/DST', text: 'America/Eastern/DST' }, { value: 'America/Chicago', text: 'America/Central' }\n , { value: 'America/Chicago/DST', text: 'America/Central/DST' }, { value: 'America/Denver', text: 'America/Mountain' }\n , { value: 'America/Denver/DST', text: 'America/Mountain/DST' }, { value: 'America/Los_Angeles', text: 'America/Pacific' }\n , { value: 'America/Los_Angeles/DST', text: 'America/Pacific/DST' }, { value: 'Europe/Madrid', text: 'Europe/Madrid' }\n , { value: 'Europe/Madrid/DST', text: 'Europe/Madrid/DST' }, { value: 'Europe/London', text: 'Europe/London' }\n , { value: 'Europe/London/DST', text: 'Europe/London/DST' }, { value: 'Europe/Paris', text: 'Europe/Paris' }\n , { value: 'Europe/Paris/DST', text: 'Europe/Paris/DST' }, { value: 'Europe/Moscow', text: 'Europe/Moscow' }];\n\n public transitionOption = ['Image Wall', 'Dissolve', 'Slide from top', 'Slide from left', 'Slide from bottom', 'Slide from right', 'Open from top', 'Open from left', 'Open from bottom', 'Open from right', 'Open from center', 'Blinds from top', 'Blinds from left', 'Blinds from bottom', 'Blinds from right', 'Expand from top', 'Expand from left', 'Expand from bottom', 'Expand from right', 'Expand and rotate', 'All – sequential', 'All – random'];\n\n public channels: Array = [{ channelId: 'Channel 0 ( Default )', channelValue: 0 }, { channelId: 'Channel 1', channelValue: 1 }, { channelId: 'Channel 2', channelValue: 2 }, { channelId: 'Channel 3', channelValue: 3 }, { channelId: 'Channel 4', channelValue: 4 }, { channelId: 'Channel 5', channelValue: 5 }, { channelId: 'Channel 6', channelValue: 6 }, { channelId: 'Channel 7', channelValue: 7 }, { channelId: 'Channel 8', channelValue: 8 }, { channelId: 'Channel 9', channelValue: 9 }];\n public myElement: Array = [];\n\n ////////\n public shadowOffset = 20;\n public tween = null;\n public blockSnapSize = 30;\n public shadowRectangle: any;\n public gridLayer: any;\n public snapToEnabled = true;\n\n public gActiveScreenlistFile = 'dmb.screenlist.00.xml'; // 'dmb.screenlist.0.xml';\n public isScreenSaved = false;\n public savigFile = false;\n public subscriptionDetails: any;\n public isAddDaysView: boolean = false;\n\n @ViewChild('fileNameModel') private fileNameModel;\n @ViewChild('screenSettingsModal') private screenSettingsModal;\n @ViewChild('signPreviewModal') private signPreviewModal;\n @ViewChild('confirmResolutionChange') private confirmResolutionChange;\n @ViewChild('uploadImageModal') private uploadImageModal;\n @ViewChild('uploadVideoModal') private uploadVideoModal;\n @ViewChild('updateChannelModal') private updateChannelModal;\n @ViewChild('screenShotModal') private screenShotModal;\n @ViewChild('logWebModal') private logWebModal;\n @ViewChild('updateChannelLineupModal') private updateChannelLineupModal;\n @ViewChild('publishServerModal') private publishServerModal;\n @ViewChild('publishToPlayerModal') private publishToPlayerModal;\n @ViewChild('viewSelectPlayersModal') private viewSelectPlayersModal;\n @ViewChild('playerRegistrationModal') private playerRegistrationModal;\n @ViewChild('invalidPlayerIdModal') private invalidPlayerIdModal;\n @ViewChild('editPlayerModal') private editPlayerModal;\n @ViewChild('editScreenModal') private editScreenModal;\n @ViewChild('playerStatusModal') private playerStatusModal;\n @ViewChild('timeOfDayModal') private timeOfDayModal;\n @ViewChild('viewScreenshotModal') private viewScreenshotModal;\n @ViewChild('deleteImageModal') private deleteImageModal;\n @ViewChild('deleteAudioModal') private deleteAudioModal;\n @ViewChild('deleteVideoModal') private deleteVideoModal;\n @ViewChild('searchYoutubeModal') private searchYoutubeModal;\n @ViewChild('dmbTVModel') private dmbTVModel;\n @ViewChild('accountSubscriptionModal') private accountSubscriptionModal;\n // @ViewChild('noSubscriptionModal') private noSubscriptionModal;\n\n private screenSettingsModalObj;\n public mediaUrl: any = null;\n public previewUrl = null;\n public filePath = null;\n public counter = 0;\n public username = null;\n public userIdleTime = 0;\n public currentTime = new Date;\n userInactive: Subject = new Subject();\n\n public accountDaysRemaining = 0;\n\n constructor(\n private authService: AuthService,\n private modalService: NgbModal,\n private screenService: ScreenService,\n private registrationService: RegistrationService,\n private spinnerService: Ng4LoadingSpinnerService,\n private data: DataService,\n public sanitizer: DomSanitizer,\n private elRef: ElementRef,\n private userService: UserService,\n private appSettings: AppSettingsService,\n private subscriptionService: SubscriptionService) {\n this.mediaUrl = this.appSettings.getConfig('MEDIA_URL');\n this.previewUrl = this.appSettings.getConfig('PREVIEW_URL');\n this.filePath = this.appSettings.getConfig('FILE_PATH') + this.authService.currentUser.userName;\n this.username = this.authService.currentUser.userName;\n this.data.currentFile.subscribe(fileName => {\n if (fileName !== '' && fileName !== null) {\n this.load_screenlist(fileName);\n }\n });\n (window).ReceivePlayListID = this.ReceivePlayListID.bind(this);\n }\n // userActivity:any;\n // userInactive: Subject = new Subject();\n // checkUserIdle() {\n // this.counter =0;\n // //start timer\n\n // // setTimeout(function() {\n\n // setInterval(()=>{\n // this.counter = this.counter +1;\n // //alert(this.counter);\n // if(this.counter == 50)\n // {\n // this.counter =0;\n // this.onLogout();\n // }\n // }, 10000);\n // },1000);\n\n //debugger;\n // this.userActivity = setTimeout(() => this.userInactive.next(undefined), 3000);\n //}\n\n //userActivity:any;\n\n\n public imageUploadconfig = {\n // Change this to your upload POST address:\n url: this.appSettings.getConfig('API_ENDPOINT') + 'upload',\n //maxFilesize: 50,\n maxFiles: 2,\n parallelUploads: 2,\n acceptedFiles: 'image/*',\n // init: function () {\n // this.on(\"thumbnail\", function (file) {\n // file.acceptDimensions();\n // });\n // },\n // accept: function (file, done) {\n // file.acceptDimensions = done;\n // file.rejectDimensions = function () {\n // //done(\"The maximum image file upload resolution is 1920x1080\"); \n // ng.authService.showNotification('', 'The maximum image file upload
resolution is 1920x1080', 'error');\n // ng.closeModal();\n // };\n // },\n // transformFile: function (file, done) {\n // const width = file.width;\n // const height = file.height;\n\n // if(this.gActiveResolution === '1080x1920') {\n // // (a) Resize if width > 1080px AND height > 1920px\n // if (width > 1080 && height > 1920) {\n // return this.resizeImage(file, 1080, 1920, 'contain', done);\n // }\n // // (b) Upload as-is if width <= 1920px AND height <= 1080px\n // else if (width <= 1080 && height <= 1920) {\n // return done(file); // Proceed without resizing\n // }\n // // (c) Reject if width > 1920px AND height < 1080px\n // else if (width > 1080 && height < 1920) {\n // ng.authService.showNotification('', 'Please re-size the image before uploading', 'error');\n // return this.removeFile(file);\n // }\n // // (d) Reject if height > 1080px AND width < 1920px\n // else if (height > 1920 && width < 1080) {\n // ng.authService.showNotification('', 'Please re-size the image before uploading', 'error');\n // return this.removeFile(file);\n // }\n // else {\n // ng.authService.showNotification('', 'Please re-size the image before uploading', 'error');\n // return this.removeFile(file);\n // }\n // } else {\n\n // // (a) Resize if width > 1920px AND height > 1080px\n // if (width > 1920 && height > 1080) {\n // return this.resizeImage(file, 1920, 1080, 'contain', done);\n // }\n // // (b) Upload as-is if width <= 1920px AND height <= 1080px\n // else if (width <= 1920 && height <= 1080) {\n // return done(file); // Proceed without resizing\n // }\n // // (c) Reject if width > 1920px AND height < 1080px\n // else if (width > 1920 && height < 1080) {\n // ng.authService.showNotification('', 'Please re-size the image before uploading', 'error');\n // return this.removeFile(file);\n // }\n // // (d) Reject if height > 1080px AND width < 1920px\n // else if (height > 1080 && width < 1920) {\n // ng.authService.showNotification('', 'Please re-size the image before uploading', 'error');\n // return this.removeFile(file);\n // }\n // else {\n // ng.authService.showNotification('', 'Please re-size the image before uploading', 'error');\n // return this.removeFile(file);\n // }\n // }\n // },\n success: function (response) {\n var jsonresp = JSON.parse(response.xhr.response);\n if (jsonresp.status === 'error') {\n ng.authService.showNotification('', jsonresp.message, 'error');\n }\n else {\n ng.authService.showNotification('', 'Images uploaded successfully', 'success');\n }\n }\n };\n\n public videoUploadconfig = {\n // Change this to your upload POST address:\n url: this.appSettings.getConfig('API_ENDPOINT') + 'upload',\n // maxFilesize: 24,\n // acceptedFiles: 'video/*'\n maxFiles: 1,\n parallelUploads: 1,\n acceptedFiles: 'video/mp4, video/quicktime, video/3gp, video/3gpp, .3gp, .mp3',\n init: function () {\n // this.on(\"maxfilesexceeded\", function(file){\n // this.removeAllFiles();\n // ng.authService.showNotification('', 'Cannot upload more than 3 files together', 'error');\n // });\n this.on(\"addedfile\", function (file) {\n if (this.files[1] != null) {\n this.removeAllFiles();\n // ng.authService.showNotification('', 'Cannot upload more than 2
files together', 'error');\n ng.authService.showNotification('', 'Upload only one file at a time', 'error');\n ng.closeModal();\n } else if (parseFloat((file.size / (1024 * 1024)).toFixed(2)) > 80) {\n this.removeAllFiles();\n ng.authService.showNotification('', 'The maximum audio/video file
upload size is 80MB', 'error');\n ng.closeModal();\n }\n });\n },\n success: function (response) {\n var jsonresp = JSON.parse(response.xhr.response);\n if (jsonresp.status === 'error') {\n ng.authService.showNotification('', jsonresp.message, 'error');\n }\n else {\n ng.authService.showNotification('', 'Files uploaded successfully', 'success');\n }\n }\n };\n\n public currentAssets = []; // the current (active) list of assets currently on the stage (note: this is a javascript object not array)\n public currentAssetsAnchors: Array = []; // the current list of assets' 'Anchors' that are used to resize the assets\n\n public configStage = Observable.of({\n width: this.stageWidth,\n height: this.stageHeight\n });\n private imageSliderLoaded = false;\n private videoSliderLoaded = false;\n public isSavingFile = false;\n public isRegisterPlayer = false;\n private color_picker_canvas;\n private modalRef;\n\n public isSavingpreviewEndPoint = false;\n public isSavingContentServer = false;\n public isSavingEzTvServer = false;\n private registeredPlayers: Array = [];\n public currentTimeOfDay: any;\n public currentRules: any = [];\n public currentRule: any;\n private playerStatusObject;\n private players;\n pipe = new DatePipe('en-US');\n public ngOnInit() {\n this.authService.currentUserObj.subscribe(res => {\n if (res === 'string') {\n this.currentUser = JSON.parse(res);\n // console.log(res);\n } else {\n this.currentUser = res;\n }\n // console.log('user aupdate');\n // console.log(this.currentUser);\n // console.log('====================================');\n });\n\n ng = this;\n\n document.addEventListener('mousemove', function (this) {\n\n ng.resetUserIdleTime();\n });\n\n\n\n document.addEventListener('mousewheel', function (this) {\n ng.resetUserIdleTime();\n });\n\n document.addEventListener('click', function (this) {\n\n ng.resetUserIdleTime();\n });\n\n document.addEventListener('keypress', function (this) {\n ng.resetUserIdleTime();\n });\n\n document.addEventListener('mouseover', function () {\n ng.mousein = true;\n ng.resetUserIdleTime();\n })\n\n this.checkUserIdleTime();\n\n this.shadowRectangle = new Konva.Rect({\n x: 0,\n y: 0,\n width: this.blockSnapSize * 6,\n height: this.blockSnapSize * 3,\n fill: '#FF7B17',\n opacity: 0.6,\n stroke: '#CF6412',\n strokeWidth: 3,\n dash: [20, 2]\n });\n\n document.getElementById('full-hd').classList.add('hd');\n this.stage = new Konva.Stage({\n container: 'canvasContainer',\n width: this.stageWidth,\n height: this.stageHeight\n });\n const gridLayer = this.createGridLayer();\n this.stage.add(gridLayer);\n this.layer = new Konva.Layer();\n\n this.shadowRectangle.hide();\n this.layer.add(this.shadowRectangle);\n\n // console.log(this.stage);\n this.stage.add(this.layer);\n\n // create color picker\n const canvasBgInput = document.getElementById('bkg_color');\n this.color_picker_canvas = new jscolor(canvasBgInput, {\n valueElement: null\n });\n this.color_picker_canvas.onFineChange = function () {\n // console.log('bkg_color')\n ng.updateColor(ng.color_picker_canvas, 'bkg_color');\n };\n this.color_picker_canvas.fromRGB(255, 255, 255);\n this.getUserList();\n this.getCurrentUserServers();\n this.getUserRoleList();\n this.TogglePlayerRegistrationLink();\n\n this.username = this.authService.currentUser.userName;\n // if (this.username) {\n // this.subscriptionService.getSubscriptionDetails(this.username).subscribe(\n // (response) => {\n // if (response && response.data) {\n\n // if(response.status === 'error') {\n // this.accountDaysRemaining = 0;\n // $(\".navAccountDaysValidation\").hide();\n // this.openModel(this.noSubscriptionModal, { size: 'lg' });\n // } else {\n\n // this.accountDaysRemaining = response.data.accountDaysRemaining;\n // if(this.accountDaysRemaining <= 0) {\n // $(\".navAccountDaysValidation\").hide();\n // this.openModel(this.noSubscriptionModal, { size: 'lg' });\n // }\n // }\n // } else {\n // this.accountDaysRemaining = 0;\n // $(\".navAccountDaysValidation\").hide();\n // this.openModel(this.noSubscriptionModal, { size: 'lg' });\n // }\n // },\n // (error) => {\n // this.accountDaysRemaining = 0;\n // $(\".navAccountDaysValidation\").hide();\n // this.openModel(this.noSubscriptionModal, { size: 'lg' });\n // }\n // );\n // }\n \n $(\"#signResolution\").selectpicker();\n }\n\n checkUserIdleTime() {\n setInterval(function () {\n var now = new Date(); // poll new current time\n var second = ((now.getTime() / 1000) - (ng.currentTime.getTime() / 1000))\n //console.log(second); \n //ng.userIdleTime++;\n if (second >= 1200) {\n ng.onLogout();\n }\n }, 1000);\n }\n\n resetUserIdleTime() {\n // ng.userIdleTime = 0;\n ng.currentTime = new Date();\n }\n\n\n changeCanvasColor(): void {\n // console.log(this.color);\n }\n\n onDragStart(ev): void {\n ev.dataTransfer.setData('text', ev.target.id);\n // console.log('onDragStart');\n }\n\n onDragEnd(ev): void {\n // console.log('onDragEnd');\n ev.preventDefault(); // prevent the browser default handling of the data (default is open as link on drop)\n const data = ev.dataTransfer.getData('text');\n ev.target.appendChild(document.getElementById(data));\n }\n\n allowDrop(ev): void {\n ev.preventDefault(); // prevent the browser default handling of the data (default is open as link on drop)\n }\n\n /* --------------------------------------------------------------------------------------------------------------------- */\n /* This function drops a new image (copy) onto the target AND DOES NOT removes the image from the 'old' location */\n\n /* --------------------------------------------------------------------------------------------------------------------- */\n dropcopy(ev): void {\n ev.preventDefault(); // prevent the browser default handling of the data (default is open as link on drop)\n const data = ev.dataTransfer.getData('Text');\n const original = document.getElementById(data) as HTMLInputElement;\n if (this.gActiveResolution === '1920x1080') {\n if (original.id === 'image') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false);\n } else if (original.id === 'video') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 1000, 600, 30, 30, false);\n } else if (original.id === 'text') {\n // this.add_new_asset(original.id, original.src, 350, 65, 20, 20, false); // id, source, width, height, x, y\n this.add_new_asset(original.id, 'Text', 1900, 100, 10, 850, false); // id, source, width, height, x, y\n } else if (original.id === 'browser') {\n this.add_new_asset(original.id, original.src, 600, 600, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'channel_number') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'text_crawl') {\n this.add_new_asset(original.id, 'Text Scroll', 1900, 100, 10, 850, false); // id, source, width, height, x, y\n } else if (original.id === 'clock') {\n this.add_new_asset(original.id, original.src, 500, 200, 30, 30, false); // id, source, width, height, x, y\n } else if (original.id === 'rss') {\n this.add_new_asset(original.id, original.src, 1170, 65, 60, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'overlay') {\n this.add_new_asset(original.id, original.src, 150, 150, 35, 35, false); // id, source, width, height, x, y\n } else if (original.id === 'text_multiline') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'youtube') {\n this.add_new_asset(original.id, original.src, 1000, 600, 30, 30, false); // id, source, width, height, x, y\n }\n } else if (this.gActiveResolution === '1080x1920') {\n if (original.id === 'image') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 200, 200, 20, 20, false);\n } else if (original.id === 'video') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 600, 400, 30, 30, false);\n } else if (original.id === 'text') {\n // this.add_new_asset(original.id, original.src, 350, 65, 20, 20, false); // id, source, width, height, x, y\n this.add_new_asset(original.id, 'Text', 1060, 75, 10, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'browser') {\n this.add_new_asset(original.id, original.src, 450, 450, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'channel_number') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'text_crawl') {\n this.add_new_asset(original.id, 'Text Scroll', 1060, 75, 10, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'clock') {\n this.add_new_asset(original.id, original.src, 400, 100, 30, 30, false); // id, source, width, height, x, y\n } else if (original.id === 'rss') {\n this.add_new_asset(original.id, original.src, 1170, 65, 60, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'overlay') {\n this.add_new_asset(original.id, original.src, 150, 150, 35, 35, false); // id, source, width, height, x, y\n } else if (original.id === 'text_multiline') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'youtube') {\n this.add_new_asset(original.id, original.src, 600, 400, 30, 30, false); // id, source, width, height, x, y\n }\n } else {\n if (original.id === 'image') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 200, 200, 20, 20, false);\n } else if (original.id === 'video') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 600, 400, 30, 30, false);\n } else if (original.id === 'text') {\n // this.add_new_asset(original.id, original.src, 350, 65, 20, 20, false); // id, source, width, height, x, y\n this.add_new_asset(original.id, 'Text', 1260, 75, 10, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'browser') {\n this.add_new_asset(original.id, original.src, 450, 450, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'channel_number') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'text_crawl') {\n this.add_new_asset(original.id, 'Text Scroll', 1260, 75, 10, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'clock') {\n this.add_new_asset(original.id, original.src, 400, 100, 30, 30, false); // id, source, width, height, x, y\n } else if (original.id === 'rss') {\n this.add_new_asset(original.id, original.src, 1170, 65, 60, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'overlay') {\n this.add_new_asset(original.id, original.src, 150, 150, 35, 35, false); // id, source, width, height, x, y\n } else if (original.id === 'text_multiline') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'youtube') {\n this.add_new_asset(original.id, original.src, 600, 400, 30, 30, false); // id, source, width, height, x, y\n }\n }\n }\n\n onAssetDoubleClick(ev) {\n ev.preventDefault();\n const original = ev.target;\n\n if (this.gActiveResolution === '1920x1080') {\n if (original.id === 'image') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false);\n } else if (original.id === 'video') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 1000, 600, 30, 30, false);\n } else if (original.id === 'text') {\n // this.add_new_asset(original.id, original.src, 350, 65, 20, 20, false); // id, source, width, height, x, y\n this.add_new_asset(original.id, 'Text', 1900, 100, 10, 850, false); // id, source, width, height, x, y\n } else if (original.id === 'browser') {\n this.add_new_asset(original.id, original.src, 600, 600, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'channel_number') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'text_crawl') {\n this.add_new_asset(original.id, 'Text Scroll', 1900, 100, 10, 850, false); // id, source, width, height, x, y\n } else if (original.id === 'clock') {\n this.add_new_asset(original.id, original.src, 500, 200, 30, 30, false); // id, source, width, height, x, y\n } else if (original.id === 'rss') {\n this.add_new_asset(original.id, original.src, 1170, 65, 60, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'overlay') {\n this.add_new_asset(original.id, original.src, 150, 150, 35, 35, false); // id, source, width, height, x, y\n } else if (original.id === 'text_multiline') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'youtube') {\n this.add_new_asset(original.id, original.src, 1000, 600, 30, 30, false); // id, source, width, height, x, y\n }\n }\n else {\n if (original.id === 'image') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 200, 200, 20, 20, false);\n } else if (original.id === 'video') {\n // this.add_new_asset(original.id, original.src, original.dataset.width, original.dataset.height, 20, 20, false);\n this.add_new_asset(original.id, original.src, 600, 400, 30, 30, false);\n } else if (original.id === 'text') {\n // this.add_new_asset(original.id, original.src, 350, 65, 20, 20, false); // id, source, width, height, x, y\n this.add_new_asset(original.id, 'Text', 1260, 75, 10, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'browser') {\n this.add_new_asset(original.id, original.src, 450, 450, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'channel_number') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'text_crawl') {\n this.add_new_asset(original.id, 'Text Scroll', 1260, 75, 10, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'clock') {\n this.add_new_asset(original.id, original.src, 400, 100, 30, 30, false); // id, source, width, height, x, y\n } else if (original.id === 'rss') {\n this.add_new_asset(original.id, original.src, 1170, 65, 60, 600, false); // id, source, width, height, x, y\n } else if (original.id === 'overlay') {\n this.add_new_asset(original.id, original.src, 150, 150, 35, 35, false); // id, source, width, height, x, y\n } else if (original.id === 'text_multiline') {\n this.add_new_asset(original.id, original.src, 300, 300, 20, 20, false); // id, source, width, height, x, y\n } else if (original.id === 'youtube') {\n this.add_new_asset(original.id, original.src, 600, 400, 30, 30, false); // id, source, width, height, x, y\n }\n }\n }\n\n add_new_asset(assetType, url, w, h, x, y, reopen, assetReObj?: any): void {\n if (typeof assetReObj === 'undefined') {\n assetReObj = {};\n }\n\n var aCount = 0;\n var browserCount = 0;\n var clockCount = 0;\n\n for (const key in this.currentAssets) {\n aCount++;\n }\n if (aCount === 5) {\n this.authService.showNotification('Error', 'A screen is permitted up to five assets only', 'error');\n return;\n }\n\n for (const key in this.currentAssets) {\n if (this.currentAssets[key].Type === 'browser')\n browserCount++;\n }\n if (assetType === 'browser' && browserCount === 4) {\n this.authService.showNotification('Error', 'A screen is permitted up to
four browser assets only', 'error');\n return;\n }\n for (const key in this.currentAssets) {\n if (this.currentAssets[key].Type === 'clock')\n clockCount++;\n }\n if (assetType === 'clock' && clockCount === 4) {\n this.authService.showNotification('Error', 'A screen is permitted up to
four clock assets only', 'error');\n return;\n }\n\n if (assetType === 'video' || assetType === 'youtube') {\n for (const key in this.currentAssets) {\n if (this.currentAssets[key].Type === 'video' || this.currentAssets[key].Type === 'youtube') {\n this.authService.showNotification('Error', 'A screen is permitted only one
Video or YouTube asset', 'error');\n return;\n }\n }\n }\n\n if (assetType === 'clock') {\n for (const key in this.currentAssets) {\n if (this.currentAssets[key].Type === 'image' && this.currentAssets[key].playlist) {\n this.authService.showNotification('Error', 'There is a image playlist on the screen.
Adding a clock asset is not permitted', 'error');\n return;\n }\n }\n }\n\n const asset_id = this.ramdomid(); // get an id for this new asset\n let assetGroup;\n let assetObj;\n\n var aFontFamily = typeof assetReObj.font !== 'undefined' && assetReObj.font !== null\n && assetReObj.font !== '' ? assetReObj.font.replace('-Italic', '') : 'Calibri';\n var afontStyle = typeof assetReObj.font !== 'undefined' && assetReObj.font !== null\n && assetReObj.font.includes('-Italic') ? 'Italic' : 'Normal';\n var afontSize = typeof assetReObj.font_size !== 'undefined' && assetReObj.font !== null\n && assetReObj.font_size !== '' ? assetReObj.font_size :\n assetType === 'text' || assetType === 'text_crawl' ? 40 : 30;\n\n if (assetType === 'image') {\n let imgSrc = (assetType === 'video') ? 'assets/img/video_skewed.png' : url;\n if (reopen && (assetReObj.source === null || assetReObj.source === \"\")) {\n imgSrc = 'assets/img/layout/asset_icons/600x600-app-icon_IMAGE.png';\n }\n const imageObj1 = new Image();\n assetObj = new Konva.Image({\n width: w,\n height: h,\n image: imageObj1,\n id: asset_id\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n\n imageObj1.onload = function () {\n assetObj.image(imageObj1);\n ng.layer.draw();\n };\n imageObj1.src = imgSrc;\n\n } else if (assetType === 'video') {\n const imgSrc = (reopen && assetType === 'video' && url.split('.').pop().toLowerCase() === 'mp3') ? 'assets/img/Audio-Circle-Icon-1920x1080.png'\n : 'assets/img/video_skewed.png';\n\n const imageObj1 = new Image();\n assetObj = new Konva.Image({\n width: w,\n height: h,\n image: imageObj1,\n id: asset_id,\n fill: '#a31627'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n\n imageObj1.onload = function () {\n assetObj.image(imageObj1);\n ng.layer.draw();\n };\n imageObj1.src = imgSrc;\n\n } else if (assetType === 'text') {\n // console.log(url);\n assetObj = new Konva.Rect({\n width: w,\n height: h,\n stroke: '#666',\n fill: 'black',\n strokeWidth: 2,\n name: asset_id,\n id: asset_id\n });\n let textSource = url;\n if (reopen && assetType === 'text') {\n textSource = url;\n }\n const assetObjText = new Konva.Text({\n x: 0,\n y: 0,\n //offsetY: this.gActiveResolution === '1920x1080' ? 0 - (((assetObj.getHeight()) / 2) - 21) : 0 - (((assetObj.getHeight()) / 2) - 19),\n width: assetObj.getWidth(),\n text: textSource,\n fontSize: afontSize,\n fontFamily: aFontFamily,\n fontStyle: afontStyle,\n fill: 'white',\n align: 'center',\n name: asset_id + '-Text',\n id: asset_id + '-Text'\n });\n assetObjText.offsetY(assetObjText.getHeight() / 2 - assetObj.getHeight() / 2);\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n assetGroup.add(assetObjText);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n this.layer.draw();\n } else if (assetType === 'browser') {\n assetObj = new Konva.Rect({\n width: w,\n height: h,\n stroke: '#666',\n fill: 'black',\n strokeWidth: 2,\n name: asset_id,\n id: asset_id\n });\n const textSource = 'Browser';\n const assetObjText = new Konva.Text({\n x: 0,\n y: 0,\n offsetY: 0 - (((assetObj.getHeight()) / 2) - 17),\n width: assetObj.getWidth(),\n text: textSource,\n fontSize: 30,\n fontFamily: 'Calibri',\n fill: 'white',\n align: 'center',\n name: asset_id + '-Text',\n id: asset_id + '-Text'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n assetGroup.add(assetObjText);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n this.layer.draw();\n } else if (assetType === 'channel_number') {\n assetObj = new Konva.Rect({\n width: w,\n height: h,\n stroke: '#666',\n fill: 'black',\n strokeWidth: 2,\n name: asset_id,\n id: asset_id\n });\n let textSource = 'Channel Number';\n const assetObjText = new Konva.Text({\n x: 0,\n y: 0,\n offsetY: 0 - (((assetObj.getHeight()) / 2) - 17),\n width: assetObj.getWidth(),\n text: textSource,\n fontSize: 30,\n fontFamily: 'Calibri',\n fill: 'white',\n align: 'center',\n name: asset_id + '-Text',\n id: asset_id + '-Text'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n assetGroup.add(assetObjText);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n this.layer.draw();\n } else if (assetType === 'clock') {\n assetObj = new Konva.Rect({\n width: w,\n height: h,\n stroke: '#666',\n fill: 'black',\n strokeWidth: 2,\n name: asset_id,\n id: asset_id\n });\n let textSource = 'Clock';\n const assetObjText = new Konva.Text({\n x: 0,\n y: 0,\n offsetY: this.gActiveResolution === '1920x1080' ? 0 - (((assetObj.getHeight()) / 2) - 10) : 0 - (((assetObj.getHeight()) / 2) - 12),\n width: assetObj.getWidth(),\n text: textSource,\n fontSize: afontSize,\n fontFamily: aFontFamily,\n fontStyle: afontStyle,\n fill: 'white',\n align: 'center',\n name: asset_id + '-Text',\n id: asset_id + '-Text'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n assetGroup.add(assetObjText);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n this.layer.draw();\n } else if (assetType === 'rss') {\n assetObj = new Konva.Rect({\n width: w,\n height: h,\n stroke: '#666',\n fill: 'black',\n strokeWidth: 2,\n name: asset_id,\n id: asset_id\n });\n let textSource = 'RSS';\n const assetObjText = new Konva.Text({\n x: 0,\n y: 0,\n offsetY: 0 - (((assetObj.getHeight()) / 2) - 17),\n width: assetObj.getWidth(),\n text: textSource,\n fontSize: 30,\n fontFamily: 'Calibri',\n fill: 'white',\n align: 'center',\n name: asset_id + '-Text',\n id: asset_id + '-Text'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n assetGroup.add(assetObjText);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n this.layer.draw();\n } else if (assetType === 'overlay') {\n assetObj = new Konva.Rect({\n width: w,\n height: h,\n stroke: '#666',\n fill: 'black',\n strokeWidth: 2,\n name: asset_id,\n id: asset_id\n });\n let textSource = 'Overlay';\n const assetObjText = new Konva.Text({\n x: 0,\n y: 0,\n offsetY: 0 - (((assetObj.getHeight()) / 2) - 17),\n width: assetObj.getWidth(),\n text: textSource,\n fontSize: 30,\n fontFamily: 'Calibri',\n fill: 'white',\n align: 'center',\n name: asset_id + '-Text',\n id: asset_id + '-Text'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n assetGroup.add(assetObjText);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n this.layer.draw();\n } else if (assetType === 'text_multiline') {\n assetObj = new Konva.Rect({\n width: w,\n height: h,\n stroke: '#666',\n fill: 'black',\n strokeWidth: 2,\n name: asset_id,\n id: asset_id\n });\n let textSource = 'Text Multiline';\n const assetObjText = new Konva.Text({\n x: 0,\n y: 0,\n offsetY: 0 - (((assetObj.getHeight()) / 2) - 17),\n width: assetObj.getWidth(),\n text: textSource,\n fontSize: 30,\n fontFamily: 'Calibri',\n fill: 'white',\n align: 'center',\n name: asset_id + '-Text',\n id: asset_id + '-Text'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n assetGroup.add(assetObjText);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n this.layer.draw();\n } else if (assetType === 'text_crawl') {\n assetObj = new Konva.Rect({\n width: w,\n height: h,\n stroke: '#666',\n fill: 'black',\n strokeWidth: 2,\n name: asset_id,\n id: asset_id\n });\n // let textSource = 'Text Scroll';\n let textSource = url;\n if (reopen && assetType === 'text_crawl') {\n textSource = url;\n }\n textSource = textSource.length > 20 ? textSource.substring(0, 20) + '...' : textSource;\n const assetObjText = new Konva.Text({\n x: 0,\n y: 0,\n offsetY: this.gActiveResolution === '1920x1080' ? 0 - (((assetObj.getHeight()) / 2) - 21) : 0 - (((assetObj.getHeight()) / 2) - 19),\n width: assetObj.getWidth(),\n text: textSource,\n fontSize: afontSize,\n fontFamily: aFontFamily,\n fontStyle: afontStyle,\n fill: 'white',\n align: 'center',\n name: asset_id + '-Text',\n id: asset_id + '-Text'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n assetGroup.add(assetObjText);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n this.layer.draw();\n } if (assetType === 'youtube') {\n const imgSrc = (assetType === 'youtube') ? 'assets/img/video_skewed.png' : url;\n\n const imageObj1 = new Image();\n assetObj = new Konva.Image({\n width: w,\n height: h,\n image: imageObj1,\n id: asset_id,\n fill: '#a31627'\n });\n assetGroup = new Konva.Group({\n x: x,\n y: y,\n draggable: true,\n id: asset_id + '-Group',\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, assetObj.width(), assetObj.height(), asset_id, this.getAbsolutePosition());\n }\n });\n assetGroup.setAttr('asset_type', assetType);\n this.layer.add(assetGroup);\n assetGroup.add(assetObj);\n const lW = (parseInt(w, 0) - 10);\n const lH = (parseInt(h, 0) - 10);\n this.addAnchor(assetGroup, 0, 0, 'topLeft-' + asset_id);\n this.addAnchor(assetGroup, lW, 0, 'topRight-' + asset_id);\n this.addAnchor(assetGroup, lW, lH, 'bottomRight-' + asset_id, true);\n this.addAnchor(assetGroup, 0, lH, 'bottomLeft-' + asset_id);\n\n imageObj1.onload = function () {\n assetObj.image(imageObj1);\n ng.layer.draw();\n };\n imageObj1.src = imgSrc;\n }\n assetGroup.attrs._assetId = asset_id;\n assetGroup.attrs.name = (reopen && (assetReObj.name !== null || assetReObj.name !== \"\")) ? assetReObj.name : asset_id;\n this.myElement.push(assetGroup);\n this.show_attributes(assetType, asset_id);\n\n // when the user 'mouses' over the asset\n assetGroup.on('mouseenter', function () {\n document.body.style.cursor = 'pointer';\n });\n\n // when the user 'mouses' away from the asset\n assetGroup.on('mouseleave', function () {\n document.body.style.cursor = 'default';\n });\n\n // when the asset is clicked .....\n assetGroup.on('click', function () {\n // console.log(asset_id);\n ng.show_attributes(this.getAttr('asset_type'), asset_id); // show image attributes\n //ng.currentAssets[asset_id].playlist = false;\n ng.newAssetClicked(this, asset_id);\n });\n\n assetGroup.on('mousedown', function () {\n // console.log(asset_id);\n ng.setCurrentActiveAsset(assetGroup);\n });\n\n // when the asset is moved ...\n assetGroup.on('dragmove', function () {\n if (asset_id === ng.activeAssetId) {\n // make sure the user first 'clicks' the asset before dragging it on the stage\n ng.updateStats(this, asset_id);\n }\n if (ng.snapToEnabled) {\n // console.log('J')\n const assRect = assetGroup.getClientRect();\n ng.shadowRectangle.height(parseInt(assRect.height + 10));\n ng.shadowRectangle.width(parseInt(assRect.width + 10));\n ng.shadowRectangle.position({\n\n x: Math.round(assetGroup.x() / ng.blockSnapSize) * ng.blockSnapSize,\n y: Math.round(assetGroup.y() / ng.blockSnapSize) * ng.blockSnapSize\n });\n ng.stage.batchDraw();\n }\n if (assetType === 'browser') {\n ng.hideBrowserFrame(asset_id);\n }\n });\n\n assetGroup.on('dragstart', (e) => {\n if (ng.snapToEnabled) {\n // ng.shadowRectangle.show();\n // ng.shadowRectangle.moveToTop();\n }\n //assetGroup.moveToTop();\n });\n\n assetGroup.on('dragend', (e) => {\n if (ng.snapToEnabled) {\n\n\n assetGroup.position({\n x: Math.round(assetGroup.x() / ng.blockSnapSize) * ng.blockSnapSize,\n y: Math.round(assetGroup.y() / ng.blockSnapSize) * ng.blockSnapSize\n });\n this.isObjectMoved = true;\n // alert(this.isObjectMoved);\n this.widthValue = ng.stage.findOne('#' + asset_id).getWidth();\n this.heightValue = ng.stage.findOne('#' + asset_id).getHeight();\n //this.xValue = assetGroup.x();\n // this.yValue = assetGroup.y();\n\n this.xValue = Math.round(assetGroup.x() / ng.blockSnapSize) * ng.blockSnapSize;\n this.yValue = Math.round(assetGroup.y() / ng.blockSnapSize) * ng.blockSnapSize;\n // alert(Math.round(assetGroup.x() / ng.blockSnapSize) * ng.blockSnapSize);\n // alert(Math.round(assetGroup.y() / ng.blockSnapSize) * ng.blockSnapSize);\n ng.stage.batchDraw();\n ng.shadowRectangle.hide();\n }\n //ng.repositionBrowserFrame(this, asset_id);\n });\n\n // show the initial coordinate values\n if (document.getElementById(asset_id + '_x') != null) {\n (document.getElementById(asset_id + '_x')).value = x;\n (document.getElementById(asset_id + '_y')).value = y;\n (document.getElementById(asset_id + '_width')).value = w;\n (document.getElementById(asset_id + '_height')).value = h;\n }\n\n // by default, make the asset just added to the stage the active one\n this.activeImageParent = assetObj.getParent();\n if (reopen !== true) {\n this.show_assets(assetType);\n }\n\n // set the global var for the asset id to the one just selected\n this.activeAssetId = asset_id;\n\n // const opacityMapping = {\n // 0: 0,\n // 26: 0.1,\n // 51: 0.2,\n // 77: 0.3,\n // 102: 0.4,\n // 128: 0.5,\n // 153: 0.6,\n // 179: 0.7,\n // 204: 0.8,\n // 230: 0.9,\n // 255: 1.0\n // };\n\n const opacityMapping = {\n 255: 0,\n 230: 0.1,\n 204: 0.2,\n 179: 0.3,\n 153: 0.4,\n 128: 0.5,\n 102: 0.6,\n 77: 0.7,\n 51: 0.8,\n 26: 0.9,\n 0: 1\n };\n\n // add this new asset to the list of current assets on the stage (note that this is a js object not an array)\n const aUrl = url.split('/');\n var default_font_size = '30';\n if (assetType === 'clock')\n default_font_size = '30';\n else if (assetType === 'text' || assetType === 'text_crawl')\n default_font_size = '40';\n else\n default_font_size = '30';\n\n var isfullscreen = false;\n if (reopen && this.gActiveResolution.split('x')[0].toString() === w.toString() && this.gActiveResolution.split('x')[1].toString() === h.toString()) {\n isfullscreen = true;\n }\n\n this.currentAssets[asset_id] = {\n 'Type': assetType,\n 'Name': (reopen && (assetReObj.name !== null || assetReObj.name !== \"\")) ? assetReObj.name : asset_id,\n 'Source': assetReObj.source ? assetReObj.source : (reopen === true ? aUrl[aUrl.length - 1] : ''),\n 'full_screen': isfullscreen,\n 'border': (reopen && (assetReObj.border !== null || assetReObj.border !== \"\")) ? assetReObj.border : \"No\",\n 'X': x,\n 'Y': y,\n 'Width': w,\n 'Height': h,\n 'background_color': assetReObj.background_color,\n 'opacity': typeof assetReObj.opacity !== 'undefined' ? opacityMapping[parseInt(assetReObj.opacity)] : 0,\n 'font_color': assetReObj.font_color,\n 'time_zone': (typeof assetReObj.time_zone !== 'undefined' ? assetReObj.time_zone : 'America/New_York'),\n 'time_format': (typeof assetReObj.time_format !== 'undefined' ? assetReObj.time_format : '12h no seconds + AMPM'),\n 'date_format': (typeof assetReObj.date_format !== 'undefined' ? assetReObj.date_format : 'MM/DD/YY'),\n 'direction': (typeof assetReObj.direction !== 'undefined' ? assetReObj.direction : ''),\n 'Rate': (typeof assetReObj.rate !== 'undefined' ? assetReObj.rate : ''),\n 'Font': (typeof assetReObj.font !== 'undefined' && assetReObj.font !== '' ? assetReObj.font : 'Default'),\n 'font_size': (typeof assetReObj.font_size !== 'undefined' ? assetReObj.font_size : default_font_size),\n 'font_special': (typeof assetReObj.font_special !== 'undefined' ? assetReObj.font_special : false),\n 'RefreshInterval': (typeof assetReObj.refresh_interval !== 'undefined' ? assetReObj.refresh_interval : ''),\n };\n this.applyColor(asset_id, '_txt_bkg_color', assetReObj.background_color);\n this.changeOpacity(opacityMapping[parseInt(assetReObj.opacity)], asset_id);\n this.applyColor(asset_id, '_txt_font_color', assetReObj.font_color);\n try {\n\n (document.getElementById(asset_id + '_name')).value = this.currentAssets[asset_id].Name;\n\n } catch (error) {\n\n }\n if (reopen && assetType === 'clock') {\n (document.getElementById(asset_id + '_date_format')).value = this.currentAssets[asset_id].date_format;\n (document.getElementById(asset_id + '_time_format')).value = this.currentAssets[asset_id].time_format;\n (document.getElementById(asset_id + '_time_zone')).value = this.currentAssets[asset_id].time_zone;\n (document.getElementById(asset_id + '_font')).value = this.currentAssets[asset_id].Font;\n (document.getElementById(asset_id + '_font_size')).value = this.currentAssets[asset_id].font_size;\n }\n if (reopen && assetType === 'rss') {\n (document.getElementById(asset_id + '_font')).value = this.currentAssets[asset_id].Font;\n (document.getElementById(asset_id + '_direction')).value = this.currentAssets[asset_id].direction;\n (document.getElementById(asset_id + '_rate')).value = this.currentAssets[asset_id].Rate;\n (document.getElementById(asset_id + '_source')).value = this.currentAssets[asset_id].Source;\n (document.getElementById(asset_id + '_font_size')).value = this.currentAssets[asset_id].font_size;\n this.currentAssets[asset_id].source = assetReObj.source;\n (document.getElementById(asset_id + '_def_source')).value = assetReObj.source;\n }\n if (reopen && assetType === 'browser') {\n (document.getElementById(asset_id + '_refresh_interval')).value = this.currentAssets[asset_id].RefreshInterval;\n (document.getElementById(asset_id + '_source')).value = this.currentAssets[asset_id].Source;\n }\n if (reopen && assetType === 'text_crawl') {\n (document.getElementById(asset_id + '_font')).value = this.currentAssets[asset_id].Font;\n // (document.getElementById(asset_id + '_direction')).value = this.currentAssets[asset_id].direction;\n (document.getElementById(asset_id + '_rate')).value = this.currentAssets[asset_id].Rate;\n (document.getElementById(asset_id + '_source')).value = this.currentAssets[asset_id].Source;\n (document.getElementById(asset_id + '_font_size')).value = this.currentAssets[asset_id].font_size;\n }\n if (reopen && assetType === 'text_multiline') {\n (document.getElementById(asset_id + '_font')).value = this.currentAssets[asset_id].Font;\n (document.getElementById(asset_id + '_source')).value = this.currentAssets[asset_id].Source;\n (document.getElementById(asset_id + '_font_size')).value = this.currentAssets[asset_id].font_size;\n }\n if (reopen && (assetType === 'image' || assetType === 'video') && assetReObj.playlist) {\n // console.log(assetReObj);\n this.currentAssets[asset_id].playlist = assetReObj.playlist;\n this.currentAssets[asset_id].file_name = assetReObj.file_name;\n this.currentAssets[asset_id].playlist_items = assetReObj.playlist_items;\n //(document.getElementById(asset_id + '_playlist')).value = this.currentAssets[asset_id].playlist;\n if (this.currentAssets[asset_id].playlist) {\n this.isPlayListAcitve = true;\n const playListChkBox = (document.getElementById(asset_id + '_playlist'));\n playListChkBox.checked = true;\n $('.attr_hidden').show();\n $('#sortable').html('');\n // /addItemToPlayList\n if (this.currentAssets[asset_id].playlist_items !== null) {\n this.currentAssets[asset_id].playlist_items.forEach((item, itemIndex) => {\n this.addItemToPlayList(item.name, item.type, item.assetUrl);\n // console.log('add new PlayList item' + item.name);\n const _asset_src = (item.asset_src === null) ? item.name : item.asset_src;\n // this.createPlayListItem(itemIndex, _asset_src, item.type, item.assetUrl);\n });\n }\n this.show_assets(assetType);\n if (assetType === 'image') {\n setTimeout(function () {\n ng.playListUpdate();\n }, 2000);\n }\n }\n if (assetType === 'image') {\n this.currentAssets[asset_id].item_duration = assetReObj.item_duration;\n this.currentAssets[asset_id].transtion = assetReObj.transtion;\n this.currentAssets[asset_id].image_wall = assetReObj.transition === 'image_wall' ? true : false;\n (document.getElementById(asset_id + '_item_duration')).value = this.currentAssets[asset_id].item_duration;\n //(document.getElementById(asset_id + '_transtion')).value = this.currentAssets[asset_id].transtion;\n (document.getElementById(asset_id + '_image_wall')).checked = this.currentAssets[asset_id].image_wall;\n }\n // (document.getElementById(asset_id + '_file_name')).value = this.currentAssets[asset_id].file_name;\n }\n if (reopen && assetType === 'text') {\n (document.getElementById(asset_id + '_font')).value = this.currentAssets[asset_id].Font;\n (document.getElementById(asset_id + '_font_size')).value = this.currentAssets[asset_id].font_size;\n }\n\n if (reopen && assetType === 'channel_number') {\n (document.getElementById(asset_id + '_font')).value = this.currentAssets[asset_id].Font;\n (document.getElementById(asset_id + '_font_size')).value = this.currentAssets[asset_id].font_size;\n }\n if (reopen && assetType === 'youtube') {\n (document.getElementById(asset_id + '_source')).value = this.currentAssets[asset_id].Source;\n }\n\n $('.selectpicker').selectpicker('refresh');\n }\n applyColor(id, asset, refColor): any {\n if (id && asset && refColor &&\n (this.currentAssets[id].Type !== 'video' && this.currentAssets[id].Type !== 'image' && this.currentAssets[id].Type !== 'browser' && this.currentAssets[id].Type !== 'youtube') // Added Check to not to fill backgroud color\n ) {\n const screen_bkg_color = refColor;\n const color = screen_bkg_color.split('.');\n const sel_color = 'rgb(' + color[1] + ',' + color[2] + ',' + color[3] + ')';\n const ele = document.getElementById(id + asset);\n if (ele) {\n ele.style.backgroundColor = sel_color;\n }\n\n // Apply color on actual asset\n if (asset === '_txt_font_color') { // if the user has selected to update the font color of a text asset\n const active_txt_asset_font = this.stage.findOne('#' + this.activeAssetId + '-Text');\n active_txt_asset_font.fill(sel_color);\n } else if (asset === '_txt_bkg_color') { // background color of the text asset\n const active_txt_asset = this.stage.findOne('#' + this.activeAssetId);\n active_txt_asset.fill(sel_color);\n }\n }\n }\n\n ramdomid(): string {\n let text = '';\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (let i = 0; i < 5; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n // image resize function\n updateImage(activeAsset): void {\n // console.log(activeAsset)\n const group = activeAsset.getParent();\n const aType = activeAsset.getName().split('-');\n const position = aType[0];\n const unique_id = aType[1];\n const topLeft = group.get('.' + 'topLeft-' + unique_id)[0];\n const topRight = group.get('.' + 'topRight-' + unique_id)[0];\n const bottomRight = group.get('.' + 'bottomRight-' + unique_id)[0];\n const bottomLeft = group.get('.' + 'bottomLeft-' + unique_id)[0];\n const anchorX = activeAsset.getX();\n const anchorY = activeAsset.getY();\n\n // update anchor positions\n switch (position) {\n case 'topLeft':\n topRight.setY(anchorY);\n bottomLeft.setX(anchorX);\n break;\n case 'topRight':\n topLeft.setY(anchorY);\n bottomRight.setX(anchorX);\n break;\n case 'bottomRight':\n bottomLeft.setY(anchorY);\n topRight.setX(anchorX);\n break;\n case 'bottomLeft':\n bottomRight.setY(anchorY);\n topLeft.setX(anchorX);\n break;\n }\n\n const width = topRight.getX() - topLeft.getX() + 10;\n const height = bottomLeft.getY() - topLeft.getY() + 10;\n\n // re-size the object (e.g., image) inside of the konva group\n const group_child = group.getChildren()[0];\n const group_child_two = group.getChildren()[1];\n group_child.position(topLeft.position());\n if (width && height) {\n group_child.width(width);\n group_child.height(height);\n // If this object is a text or text crawl then it has an extra text box that we need to re-size\n if ((group.getAttr('asset_type') === 'text') || (group.getAttr('asset_type') === 'text_crawl')) {\n group_child_two.width(group_child.getWidth());\n const offsetY = 0 - (((topLeft.getY() + bottomLeft.getY()) / 2) - 23);\n group_child_two.offsetY(offsetY);\n }\n else if ((group.getAttr('asset_type') === 'browser') || (group.getAttr('asset_type') === 'clock')) {\n group_child_two.width(group_child.getWidth());\n const offsetY = 0 - (((topLeft.getY() + bottomLeft.getY()) / 2) - 12);\n group_child_two.offsetY(offsetY);\n }\n }\n }\n\n addAnchor(group, x, y, name, is_dragaable = false): void {\n // first, add this new Anchor to the list\n this.currentAssetsAnchors.push(name);\n const stage = group.getStage();\n const layer = group.getLayer();\n\n var asset_id = name.split('-')[1];\n if (name.includes('bottomRight-')) {\n x = x + 10;\n y = y + 10;\n }\n const anchor = new Konva.Circle({\n x: x,\n y: y,\n radius: is_dragaable ? 10 : 0,\n // width: is_dragaable ? 10 : 0,\n // height: is_dragaable ? 10 : 0,\n stroke: '#FFCC99',\n fill: '#FFCC99',\n strokeWidth: 2,\n name: name,\n id: name,\n draggable: is_dragaable,\n dragBoundFunc: function (pos) {\n return ng.restrictDragWithinStage(pos, 10, 10, asset_id, this.getAbsolutePosition());\n }\n });\n\n anchor.on('dragmove', function () {\n if (is_dragaable) {\n ng.updateImage(this);\n layer.draw();\n }\n });\n\n anchor.on('mousedown touchstart', function () {\n if (is_dragaable) {\n group.setDraggable(false);\n //this.moveToTop();\n }\n });\n\n anchor.on('dragend', function () {\n if (is_dragaable) {\n group.setDraggable(true);\n layer.draw();\n }\n });\n\n // add hover styling\n anchor.on('mouseover', function () {\n if (is_dragaable) {\n const layer2 = this.getLayer();\n document.body.style.cursor = 'pointer';\n this.setStrokeWidth(4);\n layer2.draw();\n }\n });\n\n anchor.on('mouseout', function () {\n if (is_dragaable) {\n const layer2 = this.getLayer();\n document.body.style.cursor = 'default';\n this.setStrokeWidth(2);\n if (layer2 !== null) {\n layer2.draw();\n }\n }\n });\n\n group.add(anchor);\n }\n\n restrictDragWithinStage(pos, assetWidth, assetHeight, asset_id, absPos) {\n let currentX = pos.x < 0 ? 0 : pos.x;\n let currentY = pos.y < 0 ? 0 : pos.y;\n const currentWidth = assetWidth;\n const currentHeight = assetHeight;\n\n if (asset_id && this.activeAssetId !== asset_id) {\n return absPos;\n }\n if (pos.x + currentWidth > this.stageWidth) {\n currentX = this.stageWidth - currentWidth;\n }\n\n if (pos.y + currentHeight > this.stageHeight) {\n currentY = this.stageHeight - currentHeight;\n }\n\n return {\n x: currentX,\n y: currentY\n };\n }\n\n /**\n * After a new asset is droped onto the stage, this function builds (and shows) the list of attributes for that asset type\n * @param assetType\n * @param assetId\n */\n show_attributes(assetType, assetId): void {\n //\n $('.pl-asset-item').removeClass('pl-asset-item-active');\n $('#' + assetId + '-asset-item').addClass('pl-asset-item-active');\n\n setTimeout(() => {\n $('.pl-asset-item').removeClass('pl-asset-item-active');\n $('#' + assetId + '-asset-item').addClass('pl-asset-item-active');\n }, 200);\n // first, clear out any old attributes that may already be showing\n document.getElementById('attributes').innerHTML = '';\n\n // second, determine which asset's attributes to show\n let aAttributes = [];\n let attributes_div;\n switch (assetType) {\n case 'screen':\n aAttributes = this.screenAttributes;\n attributes_div = document.getElementById('screen_attributes');\n break;\n case 'image':\n aAttributes = this.imageAttributes;\n attributes_div = document.getElementById('attributes');\n break;\n case 'text':\n aAttributes = this.textAttributes;\n attributes_div = document.getElementById('attributes');\n break;\n case 'video':\n aAttributes = this.videoAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n case 'browser':\n aAttributes = this.browserAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n case 'channel_number':\n aAttributes = this.channelAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n case 'clock':\n aAttributes = this.clockAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n case 'rss':\n aAttributes = this.rssAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n case 'overlay':\n aAttributes = this.rssAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n case 'text_multiline':\n aAttributes = this.textMultilineAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n case 'text_crawl':\n aAttributes = this.textScrollAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n case 'youtube':\n aAttributes = this.youtubeAttributes; // NOTE: Doesn't exist yet ...\n attributes_div = document.getElementById('attributes');\n break;\n }\n let addPlayListBox = false;\n // then, loop over each attribute and add it to the attributes div on the screen\n for (let i = 0; i < aAttributes.length; i++) {\n // console.log(aAttributes[i].id)\n const attribute = document.createElement('div');\n let attrClass = '';\n if (typeof aAttributes[i].hidden !== 'undefined' && aAttributes[i].hidden\n && typeof aAttributes[i].ShowAsDetails !== 'undefined' && aAttributes[i].ShowAsDetails) {\n attrClass = 'attribute_div form-group attr_hidden attr_showasdetails';\n attribute.style.display = 'none';\n } else if (typeof aAttributes[i].hidden !== 'undefined' && aAttributes[i].hidden) {\n attrClass = 'attribute_div form-group attr_hidden';\n attribute.style.display = 'none';\n } else if (typeof aAttributes[i].ShowAsDetails !== 'undefined' && aAttributes[i].ShowAsDetails) {\n attrClass = 'attribute_div form-group attr_showasdetails';\n attribute.style.display = 'none';\n } else {\n attrClass = 'attribute_div form-group ';\n }\n\n attribute.setAttribute('class', attrClass);\n if (typeof aAttributes[i].ControlType !== 'undefined' && aAttributes[i].ControlType === 'checkbox') {\n attribute.classList.add('pretty');\n attribute.classList.add('p-default');\n attribute.classList.add('p-thick');\n attribute.classList.add('p-pulse');\n }\n\n if (aAttributes[i].name === 'PlayList') {\n attribute.style.marginTop = '10px';\n }\n\n // if(assetType === 'youtube' && aAttributes[i].id === '_source') {\n // const attribute_searchbutton = document.createElement('button');\n // attribute_searchbutton.setAttribute('class', 'btn btn-secondary');\n // attribute_searchbutton.style.width = '100%';\n // attribute_searchbutton.style.marginTop = '10px';\n // attribute_searchbutton.innerText = 'Search YouTube';\n // attribute_searchbutton.addEventListener('click', function (event) {\n // ng.openSearchYoutubeModal();\n // });\n // attribute.appendChild(attribute_searchbutton);\n\n // }\n\n if (aAttributes[i].name != undefined && aAttributes[i].name != '') {\n const attribute_title = document.createElement('label');\n attribute_title.innerHTML = aAttributes[i].name;\n if (aAttributes[i].name === 'Refresh Interval') {\n attribute_title.innerHTML = 'Refresh Interval';\n } else if (aAttributes[i].name === 'Item Duration') {\n attribute_title.innerHTML = 'Item Duration';\n } else if (aAttributes[i].name === 'PlayList') {\n attribute_title.innerHTML = 'Playlist';\n }\n\n // if (aAttributes[i].name === 'Type') {\n // attribute_title.setAttribute('class', 'attribute_title attribute_title_bold');\n // } else\n if (aAttributes[i].name === 'PlayList') {\n attribute_title.setAttribute('class', 'attribute_title chk_attribute_title');\n } else if (aAttributes[i].id === '_publish_videos') {\n attribute_title.setAttribute('class', 'attribute_title chk_attribute_title');\n } else {\n attribute_title.setAttribute('class', 'attribute_title ');\n }\n\n attribute_title.setAttribute('class', 'custom-label-normal');\n\n attribute_title.setAttribute('for', assetId + aAttributes[i].id);\n\n if (aAttributes[i].ControlType !== 'checkbox') {\n attribute.appendChild(attribute_title);\n }\n }\n // if(aAttributes[i].name == \"Background Color\"){ //if this attribute requires a 'special' input\n // if this attribute requires a 'special' Color Picker input\n if ((aAttributes[i].id === 'bkg_color') || (aAttributes[i].id === '_txt_bkg_color') || (aAttributes[i].id === '_txt_font_color')) {\n\n // create a button that can be used to update the stage background color\n const attribute_button = document.createElement('input');\n attribute_button.setAttribute('id', assetId + aAttributes[i].id);\n attribute_button.setAttribute('class', 'form-control jscolor-input');\n attribute_button.readOnly = true;\n const color_picker = new jscolor(attribute_button, {\n valueElement: null\n });\n color_picker.onFineChange = function () {\n ng.updateColor(color_picker, aAttributes[i].id);\n };\n if (aAttributes[i].id === '_txt_bkg_color') {\n color_picker.fromRGB(0, 0, 0); // set the default stage color to black\n } else {\n color_picker.fromRGB(255, 255, 255); // set the default stage color to white\n }\n attribute.appendChild(attribute_button); // add the button to the div\n } else if (aAttributes[i].id === '_txt_bkg_opacity') {\n\n const attribute_range = document.createElement('input');\n attribute_range.type = 'range';\n attribute_range.setAttribute('name', assetId + aAttributes[i].id);\n attribute_range.setAttribute('id', assetId + aAttributes[i].id);\n attribute_range.setAttribute('class', 'attribute_text_box form-control-slider slider');\n attribute_range.setAttribute('style', 'border:none');\n attribute_range.setAttribute('min', '0');\n attribute_range.setAttribute('max', '1');\n attribute_range.setAttribute('step', '0.1');\n attribute_range.setAttribute('value', '0');\n attribute.appendChild(attribute_range);\n\n attribute_range.addEventListener('change', function (this) {\n ng.changeOpacity(this.value, assetId);\n });\n } else if (aAttributes[i].id === '_txt_opacity_label') {\n\n const attribute_range = document.createElement('input');\n attribute_range.type = 'text';\n attribute_range.setAttribute('name', assetId + aAttributes[i].id);\n attribute_range.setAttribute('id', assetId + aAttributes[i].id);\n attribute_range.setAttribute('class', 'attribute_text_box form-control txt_opacity');\n attribute_range.setAttribute('disabled', 'disabled');\n attribute.appendChild(attribute_range);\n } else if (assetType === 'rss' && aAttributes[i].id === '_def_source') {\n // console.log('_def_source');\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n attribute_select.setAttribute('value', '');\n\n for (let i = 0; i < this.rssValueOptions.length; i++) {\n const option = document.createElement('option');\n option.value = this.rssValueOptions[i].value;\n option.text = this.rssValueOptions[i].title;\n attribute_select.appendChild(option);\n }\n attribute.appendChild(attribute_select);\n\n attribute_select.addEventListener('change', function () {\n ng.updateAsset(assetId + '_def_source', '_def_source');\n // ng.updateRssSource(assetId + aAttributes[i].text, aAttributes[i].value);\n });\n } else if (aAttributes[i].id === '_fullscreen') {\n const attribute_checkbox = document.createElement('input');\n attribute_checkbox.type = 'checkbox';\n attribute_checkbox.setAttribute('id', assetId + aAttributes[i].id);\n attribute_checkbox.setAttribute('class', 'attribute_text_box form-control');\n attribute.appendChild(attribute_checkbox);\n\n attribute_checkbox.addEventListener('change', function (this) {\n ng.updateFullScreenStats(assetType, assetId, this.checked);\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n }\n else if (aAttributes[i].id === '_border') {\n const attribute_checkbox = document.createElement('input');\n attribute_checkbox.type = 'checkbox';\n attribute_checkbox.setAttribute('id', assetId + aAttributes[i].id);\n attribute_checkbox.setAttribute('class', 'attribute_text_box form-control');\n attribute.setAttribute('style', 'display:block!important');\n attribute.appendChild(attribute_checkbox);\n\n attribute_checkbox.addEventListener('change', function (this) {\n if ((document.getElementById(assetId + '_fullscreen')).checked)\n ng.updateFullScreenStats(assetType, assetId, false);\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n }\n else if (aAttributes[i].id === '_image_wall') {\n\n const attribute_checkbox = document.createElement('input');\n attribute_checkbox.type = 'checkbox';\n attribute_checkbox.setAttribute('id', assetId + aAttributes[i].id);\n attribute_checkbox.setAttribute('class', 'attribute_text_box form-control');\n attribute.appendChild(attribute_checkbox);\n\n attribute_checkbox.addEventListener('change', function (this) {\n if ((document.getElementById(assetId + '_fullscreen')).checked !== attribute_checkbox.checked) {\n (document.getElementById(assetId + '_fullscreen')).click();\n }\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n }\n // else if (aAttributes[i].name === 'Type') { // else, just show the name of the attribute, no input field\n\n // const attribute_name = document.createElement('b');\n // if (assetType === 'text_crawl') {\n // attribute_name.innerHTML = 'Text Scroll';\n // } else if (assetType === 'text_multiline') {\n // attribute_name.innerHTML = 'Text Multiline';\n // } else if (assetType === 'channel_number') {\n // attribute_name.innerHTML = 'Channel Number';\n // } else if (assetType === 'rss') {\n // attribute_name.innerHTML = 'RSS';\n // } else if (assetType === 'image') {\n // if (this.currentUser.userRole == 'admin' || this.currentUser.userRole == 'user_with_image_upload' || this.currentUser.userRole == 'user_with_image_and_video_upload') {\n // // attribute_name.innerHTML = assetType + ' [Upload New]';\n // // attribute_name.addEventListener('click', function () {\n // // ng.uploadImageAsset();\n // // });\n // attribute_name.innerHTML = assetType;\n // } else {\n // attribute_name.innerHTML = assetType;\n // }\n // } else if (assetType === 'video') {\n // if (this.currentUser.userRole === 'admin' || this.currentUser.userRole === 'user_with_image_and_video_upload') {\n // // attribute_name.innerHTML = assetType + ' [Upload New]';\n // // attribute_name.addEventListener('click', function () {\n // // ng.uploadVideoAsset();\n // // });\n\n // attribute_name.innerHTML = assetType;\n // attribute.appendChild(attribute_name);\n // } else {\n // attribute_name.innerHTML = assetType;\n // }\n // } else {\n // attribute_name.innerHTML = assetType;\n // }\n // attribute_name.setAttribute('class', 'attribute_title title-bold');\n // attribute_name.setAttribute('class', 'custom-label-normal');\n // attribute_name.setAttribute('style', 'padding-left: 4.3em;');\n // attribute.appendChild(attribute_name);\n // }\n else if (aAttributes[i].id === '_image_options') {\n if (this.currentUser.userRole === 'admin'\n || this.currentUser.userRole === 'user_with_image_and_video_upload'\n || this.currentUser.userRole === 'user_with_image_upload') {\n\n // const attribute_select3 = document.createElement('select');\n\n // attribute_select3.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select3.setAttribute('id', assetId + aAttributes[i].id);\n // attribute_select3.setAttribute('value', 'Video');\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n // attribute_opt_div.setAttribute('class', 'attribute_text_box hovr-dropdown');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'Image');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'Image';\n // drpbtn.setAttribute('class', 'btn btn-success hovr-dropdown-btn');\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n const imageOptions = [\n // { val: '1', text: '- Select -' },\n // { val: '1', text: 'Image', hidden: true },\n { val: '2', text: 'Upload Image(s)', hidden: false },\n { val: '4', text: 'Delete Image(s)', hidden: false },\n { val: '3', text: 'Show Details', hidden: false }\n // { val: '3', text: 'Webpage Screenshot' }\n ];\n\n imageOptions.forEach(element => {\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select3.appendChild(option);\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('id', assetId + '_image_options_a_' + element.val)\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n ng.uploadImageAsset();\n } else if (element.val === '3') {\n // ng.openScreenshotPopUp();\n if ($(\"#\" + assetId + '_image_options_a_' + element.val).text() === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n $(\"#\" + assetId + '_image_options_a_' + element.val).text('Hide Details');\n }\n else if ($(\"#\" + assetId + '_image_options_a_' + element.val).text() === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n $(\"#\" + assetId + '_image_options_a_' + element.val).text('Show Details');\n }\n if (!ng.currentAssets[assetId].playlist) {\n $('.attr_hidden').hide();\n }\n } else if (element.val === '4') {\n ng.imagefilename = '';\n ng.openModel(ng.deleteImageModal);\n ng.BindImageSources(document.getElementById('ddlSelectedImage'));\n $('.selectpicker').selectpicker('refresh');\n $(\".bootstrap-select\").removeClass('dropup')\n }\n });\n });\n\n attribute.appendChild(attribute_opt_div);\n\n //attribute.appendChild(attribute_select3);\n // attribute_select3.addEventListener('change', function () {\n // if (this.value === '2') {\n // ng.uploadImageAsset();\n // } else if (this.value == '3') {\n // // ng.openScreenshotPopUp();\n // $('.attr_showasdetails').show();\n // }\n // attribute_select3.value = '1';\n // });\n }\n } else if (aAttributes[i].id === '_video_options') {\n // if (this.currentUser.userRole === 'admin' || this.currentUser.userRole === 'user_with_image_and_video_upload') {\n\n // const attribute_select2 = document.createElement('select');\n // attribute_select2.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select2.setAttribute('id', assetId + aAttributes[i].id);\n // attribute_select2.setAttribute('value', 'Video');\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'Video');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'Audio / Video';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n const videoOptions = [\n // { val: '1', text: '- Select -' },\n // { val: '1', text: 'Video', hidden: true },\n { val: '2', text: 'Upload New File(s)', hidden: false },\n { val: '6', text: 'Delete .MP3 File(s)', hidden: false },\n { val: '7', text: 'Delete Video(s)', hidden: false },\n // { val: '3', text: 'Edit Streaming Channels', hidden: false },\n // { val: '4', text: 'Edit Channel Lineup', hidden: false },\n { val: '5', text: 'Show Details', hidden: false }\n ];\n\n videoOptions.forEach(element => {\n if (element.val === '2' && this.currentUser.userRole !== 'admin'\n && this.currentUser.userRole !== 'user_with_image_and_video_upload') {\n return;\n }\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select2.appendChild(option);\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n ng.videoOptionAction(element, anchoritem);\n });\n });\n\n attribute.appendChild(attribute_opt_div);\n\n // attribute.appendChild(attribute_select2);\n\n // attribute_select2.addEventListener('change', function () {\n // ng.videoOptionAction(this.value);\n // attribute_select2.value = '1';\n // });\n\n // ng.uploadVideoAsset();\n // }\n } else if (aAttributes[i].id === '_text_options') {\n\n // const attribute_select3 = document.createElement('select');\n\n // attribute_select3.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select3.setAttribute('id', assetId + aAttributes[i].id);\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'Text');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'Text';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n const textOptions = [\n // { val: '1', text: 'Text', hidden: true },\n { val: '2', text: 'Show Details', hidden: false }\n ];\n\n textOptions.forEach(element => {\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select3.appendChild(option);\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n }\n });\n\n });\n\n attribute.appendChild(attribute_opt_div);\n\n // attribute.appendChild(attribute_select3);\n // attribute_select3.addEventListener('change', function () {\n // if (this.value == '2') {\n // $('.attr_showasdetails').show();\n // }\n // attribute_select3.value = '1';\n // });\n } else if (aAttributes[i].id === '_browser_options') {\n\n // const attribute_select3 = document.createElement('select');\n\n // attribute_select3.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select3.setAttribute('id', assetId + aAttributes[i].id);\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'Browser');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'Browser';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n const browserOptions = [\n // { val: '1', text: 'Browser', hidden: true },\n { val: '2', text: 'Show Details', hidden: false }\n ];\n\n browserOptions.forEach(element => {\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select3.appendChild(option);\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n }\n });\n });\n\n attribute.appendChild(attribute_opt_div);\n\n // attribute.appendChild(attribute_select3);\n // attribute_select3.addEventListener('change', function () {\n // if (this.value == '2') {\n // $('.attr_showasdetails').show();\n // }\n // attribute_select3.value = '1';\n // });\n } else if (aAttributes[i].id === '_channel_options') {\n\n // const attribute_select3 = document.createElement('select');\n\n // attribute_select3.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select3.setAttribute('id', assetId + aAttributes[i].id);\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'Channel Number');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'Channel Number';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n\n const channelOptions = [\n // { val: '1', text: 'Channel Number', hidden: true },\n { val: '2', text: 'Show Details', hidden: false }\n ];\n\n channelOptions.forEach(element => {\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select3.appendChild(option);\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n }\n });\n\n });\n\n attribute.appendChild(attribute_opt_div);\n\n // attribute.appendChild(attribute_select3);\n // attribute_select3.addEventListener('change', function () {\n // if (this.value == '2') {\n // $('.attr_showasdetails').show();\n // }\n // attribute_select3.value = '1';\n // });\n } else if (aAttributes[i].id === '_clock_options') {\n\n // const attribute_select3 = document.createElement('select');\n\n // attribute_select3.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select3.setAttribute('id', assetId + aAttributes[i].id);\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'Clock');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'Clock';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n const clockOptions = [\n // { val: '1', text: 'Clock', hidden: true },\n { val: '2', text: 'Show Details', hidden: false }\n ];\n\n clockOptions.forEach(element => {\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select3.appendChild(option);\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n }\n });\n });\n\n attribute.appendChild(attribute_opt_div);\n\n // attribute.appendChild(attribute_select3);\n // attribute_select3.addEventListener('change', function () {\n // if (this.value == '2') {\n // $('.attr_showasdetails').show();\n // }\n // attribute_select3.value = '1';\n // });\n } else if (aAttributes[i].id === '_rss_options') {\n\n // const attribute_select3 = document.createElement('select');\n\n // attribute_select3.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select3.setAttribute('id', assetId + aAttributes[i].id);\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'RSS');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'RSS';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n const rssOptions = [\n // { val: '1', text: 'RSS', hidden: true },\n { val: '2', text: 'Show Details', hidden: false }\n ];\n\n rssOptions.forEach(element => {\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select3.appendChild(option);\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n }\n });\n\n });\n\n attribute.appendChild(attribute_opt_div);\n\n // attribute.appendChild(attribute_select3);\n // attribute_select3.addEventListener('change', function () {\n // if (this.value == '2') {\n // $('.attr_showasdetails').show();\n // }\n // attribute_select3.value = '1';\n // });\n } else if (aAttributes[i].id === '_textmultiline_options') {\n\n // const attribute_select3 = document.createElement('select');\n\n // attribute_select3.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select3.setAttribute('id', assetId + aAttributes[i].id);\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'Text Multiline');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'Text Multiline';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n\n const textmultilineOptions = [\n // { val: '1', text: 'Text Multiline', hidden: true },\n { val: '2', text: 'Show Details', hidden: false }\n ];\n\n textmultilineOptions.forEach(element => {\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select3.appendChild(option);\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n }\n });\n\n });\n\n attribute.appendChild(attribute_opt_div);\n\n // attribute.appendChild(attribute_select3);\n // attribute_select3.addEventListener('change', function () {\n // if (this.value == '2') {\n // $('.attr_showasdetails').show();\n // }\n // attribute_select3.value = '1';\n // });\n } else if (aAttributes[i].id === '_textscroll_options') {\n\n // const attribute_select3 = document.createElement('select');\n\n // attribute_select3.setAttribute('class', 'attribute_text_box form-control');\n // attribute_select3.setAttribute('id', assetId + aAttributes[i].id);\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'Text Scroll');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'Text Scroll';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n const textscrollOptions = [\n // { val: '1', text: 'Text Scroll', hidden: true },\n { val: '2', text: 'Show Details', hidden: false }\n ];\n\n textscrollOptions.forEach(element => {\n // const option = document.createElement('option');\n // option.value = '' + element.val;\n // option.text = element.text;\n // option.hidden = element.hidden;\n // attribute_select3.appendChild(option);\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n }\n });\n\n });\n\n attribute.appendChild(attribute_opt_div);\n\n // attribute.appendChild(attribute_select3);\n // attribute_select3.addEventListener('change', function () {\n // if (this.value == '2') {\n // $('.attr_showasdetails').show();\n // }\n // attribute_select3.value = '1';\n // });\n } else if (aAttributes[i].id === '_youtube_options') {\n\n const attribute_opt_div = document.createElement('div');\n attribute_opt_div.setAttribute('class', 'dropdown w-100');\n attribute_opt_div.setAttribute('id', assetId + aAttributes[i].id);\n attribute_opt_div.setAttribute('value', 'YouTube');\n\n const drpbtn = document.createElement('button');\n drpbtn.setAttribute('type', 'button');\n drpbtn.setAttribute('color', 'primary');\n drpbtn.setAttribute('class', 'mdb-btn mdb-btn-primary dropdown-toggle mr-4 waves-effect waves-light drp_attr_font w-100');\n drpbtn.setAttribute('data-toggle', 'dropdown');\n drpbtn.setAttribute('aria-haspopup', 'true');\n drpbtn.setAttribute('aria-expanded', 'false');\n drpbtn.textContent = 'YouTube';\n\n attribute_opt_div.appendChild(drpbtn);\n\n const divcontent = document.createElement('div');\n divcontent.setAttribute('class', 'dropdown-menu dropdown-primary w-100');\n\n attribute_opt_div.appendChild(divcontent);\n\n const youtubeOptions = [\n // { val: '1', text: 'YouTube', hidden: true },\n { val: '2', text: 'Show Details', hidden: false }\n ];\n\n youtubeOptions.forEach(element => {\n\n const anchoritem = document.createElement('a');\n anchoritem.href = 'javascript:void(0)';\n anchoritem.text = element.text;\n anchoritem.setAttribute('class', 'dropdown-item drp_attr_font');\n\n divcontent.appendChild(anchoritem);\n\n anchoritem.addEventListener('click', function () {\n if (element.val === '2') {\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n }\n });\n\n });\n\n attribute.appendChild(attribute_opt_div);\n } else if (aAttributes[i].name === 'Font') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n //attribute_select.setAttribute('value', '');\n\n for (let i = 0; i < this.fontOption.length; i++) {\n const option = document.createElement('option');\n option.value = this.fontOption[i].value;\n option.text = this.fontOption[i].text;\n attribute_select.appendChild(option);\n }\n attribute.appendChild(attribute_select);\n\n attribute_select.addEventListener('change', function () {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n attribute_select.value = aAttributes[i].defaultVal;\n } else if (aAttributes[i].id === '_font_special') {\n\n const attribute_checkbox = document.createElement('input');\n attribute_checkbox.type = 'checkbox';\n attribute_checkbox.setAttribute('id', assetId + aAttributes[i].id);\n attribute_checkbox.setAttribute('class', 'attribute_text_box form-control');\n attribute.appendChild(attribute_checkbox);\n\n attribute_checkbox.addEventListener('change', function (this) {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n } else if (aAttributes[i].name === 'Rate') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control attribute_text_box_rate');\n attribute_select.setAttribute('value', '');\n\n for (let i = 0; i < this.rateOption.length; i++) {\n const option = document.createElement('option');\n option.value = this.rateOption[i].value;\n option.text = this.rateOption[i].text;\n attribute_select.appendChild(option);\n }\n attribute.appendChild(attribute_select);//\n attribute_select.addEventListener('change', function () {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n } else if (aAttributes[i].name === 'Direction') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control attribute_text_box_direction');\n attribute_select.setAttribute('value', '');\n\n for (let i = 0; i < this.directionOptions.length; i++) {\n const option = document.createElement('option');\n option.value = this.directionOptions[i];\n option.text = this.directionOptions[i];\n attribute_select.appendChild(option);\n }\n attribute.appendChild(attribute_select);//Direction\n attribute_select.addEventListener('change', function () {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n } else if (aAttributes[i].name === 'Date Format') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n attribute_select.setAttribute('value', aAttributes[i].defaultVal);\n\n for (let i = 0; i < this.dateFormatOptions.length; i++) {\n const option = document.createElement('option');\n option.value = this.dateFormatOptions[i];\n option.text = this.dateFormatOptions[i];\n attribute_select.appendChild(option);\n }\n attribute.appendChild(attribute_select);//Direction\n attribute_select.addEventListener('change', function () {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n // console.log(aAttributes[i])\n attribute_select.value = aAttributes[i].defaultVal;\n } else if (aAttributes[i].name === 'Time Format') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n attribute_select.setAttribute('value', '');\n\n for (let i = 0; i < this.timeFormatOptions.length; i++) {\n const option = document.createElement('option');\n option.value = this.timeFormatOptions[i];\n option.text = this.timeFormatOptions[i];\n attribute_select.appendChild(option);\n }\n attribute.appendChild(attribute_select); // Direction\n attribute_select.addEventListener('change', function () {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n attribute_select.value = aAttributes[i].defaultVal;\n } else if (aAttributes[i].name === 'Time Zone') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n //attribute_select.setAttribute('value', '');\n\n for (let i = 0; i < this.timezoneOption.length; i++) {\n const option = document.createElement('option');\n option.value = this.timezoneOption[i].value;\n option.text = this.timezoneOption[i].text;\n attribute_select.appendChild(option);\n }\n attribute.appendChild(attribute_select); // Direction\n attribute_select.addEventListener('change', function () {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n attribute_select.value = aAttributes[i].defaultVal;\n } else if (aAttributes[i].name === 'Transition') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n attribute_select.setAttribute('value', '');\n\n for (let i = 0; i < this.transitionOption.length; i++) {\n const option = document.createElement('option');\n option.value = this.transitionOption[i];\n option.text = this.transitionOption[i];\n attribute_select.appendChild(option);\n }\n attribute.appendChild(attribute_select);//Direction\n attribute_select.addEventListener('change', function () {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n } else if (aAttributes[i].name === 'PlayList') {\n addPlayListBox = true;\n\n const attribute_checkbox = document.createElement('input');\n attribute_checkbox.type = 'checkbox';\n attribute_checkbox.setAttribute('id', assetId + aAttributes[i].id);\n attribute_checkbox.setAttribute('class', 'attribute_text_box form-control play_list_checkbox');\n attribute_checkbox.setAttribute('value', '1');\n attribute.appendChild(attribute_checkbox); //Direction\n\n // add span\n let _span = document.createElement('span');\n _span.setAttribute('class', 'box');\n attribute.appendChild(_span); //Direction\n\n attribute_checkbox.addEventListener('change', function (this) {\n\n var isPlayListExist = false;\n for (const key in ng.currentAssets) {\n if (ng.currentAssets[key].playlist) {\n isPlayListExist = true;\n break;\n }\n }\n\n if (attribute_checkbox.checked && isPlayListExist) {\n attribute_checkbox.checked = false;\n ng.authService.showNotification('', 'There is already an image with
a playlist on the stage', 'error');\n return;\n }\n\n for (const key in ng.currentAssets) {\n if (ng.currentAssets[key].Type === 'clock' && attribute_checkbox.checked) {\n attribute_checkbox.checked = false;\n ng.authService.showNotification('Error', 'There is a clock asset on the screen.
Adding Playlist is not permitted', 'error');\n return;\n }\n }\n\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n ng.togglePlaylistAttributes(this, assetType);\n ng.mediaSelected((document.getElementById(assetId + '_source')).value, 'image');\n\n if(assetType === 'image') {\n ng.ImageSourceChanged();\n }\n });\n } else if (aAttributes[i].id === '_publish_videos') {\n addPlayListBox = true;\n const attribute_checkbox = document.createElement('input');\n attribute_checkbox.type = 'checkbox';\n attribute_checkbox.setAttribute('id', assetId + aAttributes[i].id);\n attribute_checkbox.setAttribute('class', 'attribute_text_box form-control play_list_checkbox');\n attribute_checkbox.setAttribute('value', '1');\n attribute_checkbox.setAttribute('checked', 'checked');\n // attribute_checkbox.setAttribute('checked', 'false');\n attribute.appendChild(attribute_checkbox); //Direction\n\n // add span\n let _span = document.createElement('span');\n _span.setAttribute('class', 'box');\n attribute.appendChild(_span); //Direction\n\n attribute_checkbox.addEventListener('change', function (this) {\n ng.toggleVideosPublish(this);\n });\n } else if (assetType === 'image' && aAttributes[i].id === '_def_source') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n attribute_select.setAttribute('value', '');\n const heading = document.createElement('option');\n heading.value = '0';\n heading.text = '-- Images --';\n attribute_select.appendChild(heading);\n\n this.currentImages.forEach(image => {\n const option = document.createElement('option');\n option.value = image.name;\n option.text = image.name;\n attribute_select.appendChild(option);\n });\n attribute.appendChild(attribute_select);\n\n attribute_select.addEventListener('change', function () {\n ng.mediaSelected(this.value, 'image');\n attribute_select.selectedIndex = 0;\n // ng.updateRssSource(assetId + aAttributes[i].text, aAttributes[i].value);\n });\n } else if (assetType === 'video' && aAttributes[i].id === '_def_source') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n attribute_select.setAttribute('value', '');\n\n ng.BindVideoSources(attribute_select);\n // let streamingAdded = false;\n // const heading = document.createElement('option');\n // heading.value = '0';\n // heading.text = '-- Videos --';\n // attribute_select.appendChild(heading);\n\n // const heading3 = document.createElement('option');\n // heading3.value = '1';\n // heading3.text = '-- Video Files --';\n // attribute_select.appendChild(heading3);\n\n // // const heading6 = document.createElement('option');\n // // heading6.value = '6';\n // // heading6.text = 'Play All Videos';\n // // attribute_select.appendChild(heading6);\n\n // this.currentVideos.forEach(video => {\n // const option = document.createElement('option');\n // if (video.isEztvItem && !streamingAdded) {\n // const heading2 = document.createElement('option');\n // heading2.value = '2';\n // heading2.text = '-- Video Streams -- ';\n // attribute_select.appendChild(heading2);\n // streamingAdded = true;\n // }\n // if (video.isEztvItem) {\n // option.value = video.url;\n // option.text = video.name;\n // } else {\n // option.value = video.name;\n // option.text = video.name;\n // }\n // attribute_select.appendChild(option);\n // });\n\n // const publishHeading = document.createElement('option');\n // publishHeading.value = '4';\n // publishHeading.text = '-- Publish --';\n // attribute_select.appendChild(publishHeading);\n\n // const publishOption = document.createElement('option');\n // publishOption.value = '3';\n // publishOption.text = 'Publish All Videos';\n // attribute_select.appendChild(publishOption);\n\n // const publishOption5 = document.createElement('option');\n // publishOption5.value = '5';\n // publishOption5.text = 'Publish Channel Line-Up File';\n // attribute_select.appendChild(publishOption5);\n\n attribute.appendChild(attribute_select);\n\n attribute_select.addEventListener('change', function () {\n // ng.updateAsset(assetId + '_def_source', '_def_source');\n ng.mediaSelected(this.value, 'video');\n attribute_select.selectedIndex = 0;\n // ng.updateRssSource(assetId + aAttributes[i].text, aAttributes[i].value);\n });\n } else if (assetType === 'video' && aAttributes[i].id === '_audio_def_source') {\n const attribute_select = document.createElement('select');\n attribute_select.setAttribute('id', assetId + aAttributes[i].id);\n attribute_select.setAttribute('class', 'selectpicker attribute_text_box form-control');\n attribute_select.setAttribute('value', '');\n\n ng.BindAudioSources(attribute_select);\n\n attribute.appendChild(attribute_select);\n\n attribute_select.addEventListener('change', function () {\n // ng.updateAsset(assetId + '_def_source', '_def_source');\n ng.mediaSelected(this.value, 'audio');\n attribute_select.selectedIndex = 0;\n // ng.updateRssSource(assetId + aAttributes[i].text, aAttributes[i].value);\n });\n } else if (aAttributes[i].id === '_note') {\n\n const attribute_label = document.createElement('label');\n attribute_label.setAttribute('class', 'attribute_text_box');\n attribute_label.style.color = 'white';\n attribute_label.innerHTML = aAttributes[i].message;\n attribute.appendChild(attribute_label);\n\n } else if (aAttributes[i].id === '_search_youtube') {\n const attribute_searchbutton = document.createElement('button');\n attribute_searchbutton.setAttribute('class', 'btn btn-secondary');\n attribute_searchbutton.style.width = '100%';\n attribute_searchbutton.style.marginTop = '10px';\n attribute_searchbutton.innerText = 'Search YouTube';\n attribute_searchbutton.addEventListener('click', function (event) {\n ng.openSearchYoutubeModal();\n });\n attribute.appendChild(attribute_searchbutton);\n } else if (aAttributes[i].id === '_resize_to_source') {\n const attribute_resizebutton = document.createElement('button');\n attribute_resizebutton.setAttribute('id', aAttributes[i].id);\n attribute_resizebutton.setAttribute('class', 'btn btn-secondary disabled');\n attribute_resizebutton.style.width = '70%';\n attribute_resizebutton.style.marginTop = '10px';\n attribute_resizebutton.innerText = 'Resize To Source';\n attribute_resizebutton.addEventListener('click', function (event) {\n ng.ResizeImageAssetToSource();\n });\n attribute.appendChild(attribute_resizebutton);\n } else {\n // else, this attribute can use a text input\n var attribute_text_box;\n if (assetType === 'text' && aAttributes[i].id === '_source') {\n attribute_text_box = document.createElement('textarea');\n }\n else {\n attribute_text_box = document.createElement('input');\n }\n if (aAttributes[i].id === '_refresh_interval') {\n attribute_text_box.setAttribute('type', 'number');\n }\n\n if (assetType === 'screen') { // if this is a screen attribute then we don't connect the id it to the asset id\n attribute_text_box.setAttribute('id', aAttributes[i].id);\n } else {\n attribute_text_box.setAttribute('id', assetId + aAttributes[i].id);\n if (assetType === 'image' && aAttributes[i].id === '_source') {\n attribute_text_box.addEventListener('blur', function (event) {\n const imgSource = (event.target).value;\n ng.updateImageAsset(imgSource, 'image', imgSource, true, imgSource);\n ng.ImageSourceChanged();\n });\n } else {\n attribute_text_box.addEventListener('blur', function () {\n ng.updateAsset(assetId + aAttributes[i].id, aAttributes[i].id);\n });\n }\n }\n\n attribute_text_box.setAttribute('class', 'attribute_text_box form-control');\n attribute_text_box.setAttribute('value', '');\n if (aAttributes[i].id === '_font_size') {\n //attribute_text_box.setAttribute('type', 'number');\n if (assetType === 'clock')\n attribute_text_box.setAttribute('value', '30');\n else if (assetType === 'text' || assetType === 'text_crawl')\n attribute_text_box.setAttribute('value', '40');\n else\n attribute_text_box.setAttribute('value', '30');\n\n attribute_text_box.addEventListener('keypress', function (e) {\n var result = ng.onlyNumberKey(e);\n if (!result) {\n e.preventDefault();\n }\n });\n\n } else if (aAttributes[i].id === '_item_duration') {\n attribute_text_box.setAttribute('value', '10');\n }\n\n if (aAttributes[i].id === '_source' && typeof aAttributes[i].maxlength !== 'undefined') {\n attribute_text_box.setAttribute('maxlength', aAttributes[i].maxlength);\n }\n\n // if(typeof aAttributes[i].defaultVal !== 'undefined') {\n // console.log(aAttributes[i].defaultVal);\n // attribute_text_box.setAttribute('value', aAttributes[i].defaultVal);\n // }\n attribute.appendChild(attribute_text_box);\n\n // if(assetType === 'browser' && aAttributes[i].id === '_source') {\n // const attribute_testbutton = document.createElement('button');\n // attribute_testbutton.setAttribute('class', 'btn btn-secondary');\n // attribute_testbutton.style.marginTop = '10px';\n // attribute_testbutton.innerText = 'Test Webpage';\n // attribute_testbutton.addEventListener('click', function (event) {\n // const browserUrl = (document.getElementById(assetId + '_source')).value;\n // ng.loadBrowserSource(assetId, browserUrl);\n // });\n // attribute.appendChild(attribute_testbutton);\n // }\n }\n\n if (typeof aAttributes[i].ControlType !== 'undefined' && aAttributes[i].ControlType === 'checkbox') {\n const title_div = document.createElement('div');\n const attribute_title = document.createElement('label');\n attribute_title.innerHTML = aAttributes[i].name;\n attribute_title.setAttribute('class', 'custom-label-normal');\n attribute_title.setAttribute('for', assetId + aAttributes[i].id);\n title_div.setAttribute('class', 'state p-warning-o');\n title_div.appendChild(attribute_title);\n attribute.appendChild(title_div);\n }\n\n attributes_div.appendChild(attribute); // add this attribute to the list\n\n }\n if (addPlayListBox) {\n const playListDiv = document.createElement('div');\n // playListDiv.setAttribute('class', 'play-list-box attr_hidden row mt10');\n playListDiv.setAttribute('class', 'play-list-box attr_hidden attr_showasdetails mt10');\n playListDiv.style.display = 'none';\n const inHtml = '
' + assetType +\n ' Playlist
\\n
';\n playListDiv.innerHTML = inHtml;\n attributes_div.appendChild(playListDiv);\n $('#sortable').sortable({\n stop: function (event, ui) {\n ng.playListUpdate();\n },\n });\n }\n $(\".selectpicker\").selectpicker();\n }\n\n BindImageSources(attribute_select): void {\n $(\"#\" + attribute_select.id).empty();\n const heading = document.createElement('option');\n heading.value = '0';\n heading.text = '-- Images --';\n attribute_select.appendChild(heading);\n\n this.currentImages.forEach(image => {\n const option = document.createElement('option');\n option.value = image.name;\n option.text = image.name;\n attribute_select.appendChild(option);\n });\n }\n\n BindVideoSources(attribute_select): void {\n $(\"#\" + attribute_select.id).empty();\n let streamingAdded = false;\n const heading = document.createElement('option');\n heading.value = '0';\n heading.text = '-- Videos --';\n attribute_select.appendChild(heading);\n\n const heading3 = document.createElement('option');\n heading3.value = '1';\n heading3.text = '-- Video Files --';\n attribute_select.appendChild(heading3);\n\n // const heading6 = document.createElement('option');\n // heading6.value = '6';\n // heading6.text = 'Play All Videos';\n // attribute_select.appendChild(heading6);\n\n this.currentVideos.forEach(video => {\n const option = document.createElement('option');\n if (video.isEztvItem && !streamingAdded) {\n const heading2 = document.createElement('option');\n heading2.value = '2';\n heading2.text = '-- Video Streams -- ';\n attribute_select.appendChild(heading2);\n streamingAdded = true;\n }\n if (video.isEztvItem) {\n option.value = video.url;\n option.text = video.name;\n } else {\n option.value = video.name;\n option.text = video.name;\n }\n attribute_select.appendChild(option);\n });\n }\n\n BindVideoOnlySources(attribute_select): void {\n $(\"#\" + attribute_select.id).empty();\n const heading = document.createElement('option');\n heading.value = '0';\n heading.text = '-- Videos --';\n attribute_select.appendChild(heading);\n\n const heading3 = document.createElement('option');\n heading3.value = '1';\n heading3.text = '-- Video Files --';\n attribute_select.appendChild(heading3);\n\n this.currentVideos.forEach(video => {\n if (!video.isEztvItem) {\n const option = document.createElement('option');\n option.value = video.name;\n option.text = video.name;\n attribute_select.appendChild(option);\n }\n });\n }\n\n BindAudioSources(attribute_select): void {\n $(\"#\" + attribute_select.id).empty();\n\n const heading = document.createElement('option');\n heading.value = '0';\n heading.text = '-- .MP3 Files --';\n attribute_select.appendChild(heading);\n\n // const heading3 = document.createElement('option');\n // heading3.value = '1';\n // heading3.text = '-- Audio Files --';\n // attribute_select.appendChild(heading3);\n\n this.currentAudios.forEach(audio => {\n const option = document.createElement('option');\n option.value = audio.name;\n option.text = audio.name;\n\n attribute_select.appendChild(option);\n });\n }\n\n toggleVideosPublish(item) {\n this.publishVideos = item.checked;\n }\n\n mediaSelected(imgName, type) {\n\n // const active_asset = this.stage.findOne('#' + this.activeAssetId + '-Group'); // get the Konva asset object\n // const group_child = active_asset.getChildren()[0];\n\n // if(type === 'audio') {\n\n // } else if(type === 'video') {\n\n // }\n\n if (imgName === '5' && type === 'video') {\n this.publishLineup = true;\n this.openModel(this.publishServerModal);\n } else if (imgName === '3' && type === 'video') {\n this.show_publish_modal(false);\n } else if (imgName === '6' && type === 'video') {\n ng.updateImageAsset('folder', type, null, true, 'folder');\n } else if (type === 'image') {\n this.currentImages.forEach(image => {\n if (image.name === imgName) {\n ng.updateImageAsset('assets/content/' + image.name, type, image.url);\n this.ImageSourceChanged();\n }\n });\n } else if (type === 'audio') {\n this.currentAudios.forEach(audio => {\n if (audio.name === imgName) {\n ng.updateImageAsset('assets/content/' + audio.name, type, audio.url);\n }\n });\n\n } else {\n this.currentVideos.forEach(video => {\n if (video.name === imgName || video.url === imgName) {\n if (video.isEztvItem) {\n ng.updateImageAsset(video.url, type, null, true, video.name);\n } else {\n ng.updateImageAsset('assets/content/' + video.name, type, null, false, video.name);\n }\n }\n });\n }\n }\n\n newAssetClicked(asset_group, asset_id): void {\n // Get and show the X, Y, Width, Height values for the asset just clikced\n const active_x = asset_group.getX();\n const active_y = asset_group.getY();\n const active_width = ng.stage.findOne('#' + asset_id).getWidth();\n const active_height = ng.stage.findOne('#' + asset_id).getHeight();\n this.show_assets(this.currentAssets[asset_id].Type);\n\n const assetObj = ng.stage.findOne('#' + asset_id);\n this.activeImageParent = assetObj.getParent();\n (document.getElementById(asset_id + '_x')).value = active_x;\n (document.getElementById(asset_id + '_y')).value = active_y;\n (document.getElementById(asset_id + '_width')).value = active_width;\n (document.getElementById(asset_id + '_height')).value = active_height;\n\n if (this.currentAssets[asset_id].Type === 'image' || this.currentAssets[asset_id].Type === 'video' || this.currentAssets[asset_id].Type === 'browser' || this.currentAssets[asset_id].Type === 'youtube') {\n (document.getElementById(asset_id + '_fullscreen')).checked = this.currentAssets[asset_id].full_screen;\n if (this.currentAssets[asset_id].Type === 'image' || this.currentAssets[asset_id].Type === 'video') {\n (document.getElementById(asset_id + '_border')).checked = this.currentAssets[asset_id].border == 'yes' ? true : false;\n }\n }\n\n if (this.currentAssets[asset_id].Name !== 'undefined') {\n try {\n (document.getElementById(asset_id + '_name')).value = this.currentAssets[asset_id].Name;\n } catch (error) {\n\n }\n }\n if ((this.currentAssets[asset_id].Type === 'image' || this.currentAssets[asset_id].Type === 'text' || this.currentAssets[asset_id].Type === 'video' || this.currentAssets[asset_id].Type === 'browser' || this.currentAssets[asset_id].Type === 'rss' || this.currentAssets[asset_id].Type === 'text_multiline' || this.currentAssets[asset_id].Type === 'text_crawl' || this.currentAssets[asset_id].Type === 'youtube') && this.currentAssets[asset_id].Source.length > 0) {\n if (!this.currentAssets[asset_id].playlist) {\n (document.getElementById(asset_id + '_source')).value = this.currentAssets[asset_id].Source;\n }\n }\n if (this.currentAssets[asset_id].Type === 'browser') {\n (document.getElementById(asset_id + '_refresh_interval')).value = this.currentAssets[asset_id].RefreshInterval;\n }\n if (this.currentAssets[asset_id].Type === 'clock') {\n (document.getElementById(asset_id + '_time_format')).value = this.currentAssets[asset_id].time_format;\n (document.getElementById(asset_id + '_date_format')).value = this.currentAssets[asset_id].date_format;\n (document.getElementById(asset_id + '_time_zone')).value = this.currentAssets[asset_id].time_zone;\n (document.getElementById(asset_id + '_font')).value = this.currentAssets[asset_id].Font;\n (document.getElementById(asset_id + '_font_size')).value = this.currentAssets[asset_id].font_size;\n }\n if (this.currentAssets[asset_id].Type === 'rss' || this.currentAssets[asset_id].Type === 'text_multiline' || this.currentAssets[asset_id].Type === 'text_crawl' || this.currentAssets[asset_id].Type === 'text' || this.currentAssets[asset_id].Type === 'channel_number') {\n (document.getElementById(asset_id + '_font')).value = this.currentAssets[asset_id].Font;\n (document.getElementById(asset_id + '_font_size')).value = this.currentAssets[asset_id].font_size;\n }\n if (this.currentAssets[asset_id].Type === 'text' || this.currentAssets[asset_id].Type === 'text_crawl') {\n (document.getElementById(asset_id + '_font_special')).checked = this.currentAssets[asset_id].font_special;\n }\n if (this.currentAssets[asset_id].Type === 'rss') { // || this.currentAssets[asset_id].Type === 'text_crawl') {\n (document.getElementById(asset_id + '_rate')).value = this.currentAssets[asset_id].Rate;\n (document.getElementById(asset_id + '_direction')).value = this.currentAssets[asset_id].direction;\n }\n if (this.currentAssets[asset_id].Type === 'text_crawl') {\n (document.getElementById(asset_id + '_rate')).value = this.currentAssets[asset_id].Rate;\n }\n \n if (this.currentAssets[asset_id].Type === 'image' || this.currentAssets[asset_id].Type === 'video') {\n //(document.getElementById(asset_id + '_playlist')).value = this.currentAssets[asset_id].playlist;\n if (this.currentAssets[asset_id].playlist) {\n const playListChkBox = (document.getElementById(asset_id + '_playlist'));\n playListChkBox.checked = true;\n $('.attr_showasdetails').show();\n $('.attr_hidden').show();\n $(\"#\" + asset_id + '_image_options_a_3').text('Hide Details');\n $('#sortable').html('');\n // /addItemToPlayList\n this.currentAssets[asset_id].playlist_items.forEach((item, itemIndex) => {\n // this.addItemToPlayList(item.asset_src, item.type, item.assetUrl );\n const _asset_src = (item && item.asset_src) ? item.asset_src : item.name;\n this.createPlayListItem(itemIndex, _asset_src, item.type, item.assetUrl);\n });\n if (this.currentAssets[asset_id].Type === 'image') {\n setTimeout(function () {\n ng.playListUpdate();\n }, 2000);\n }\n }\n if (this.currentAssets[asset_id].Type === 'image') {\n if (typeof this.currentAssets[asset_id].item_duration === 'undefined') {\n this.currentAssets[asset_id].item_duration = 10;\n }\n (document.getElementById(asset_id + '_item_duration')).value = this.currentAssets[asset_id].item_duration;\n //(document.getElementById(asset_id + '_transtion')).value = this.currentAssets[asset_id].transtion;\n (document.getElementById(asset_id + '_image_wall')).checked = this.currentAssets[asset_id].image_wall;\n }\n // (document.getElementById(asset_id + '_file_name')).value = this.currentAssets[asset_id].file_name; \n }\n\n // Turn each assets' 'Anchors to the default color\n for (let i = 0; i < this.currentAssetsAnchors.length; i++) {\n const anchor = this.stage.findOne('#' + this.currentAssetsAnchors[i]);\n anchor.setFill('#ddd');\n }\n\n // Turn the selected asset's 'Anchors' (e.g., highlight) green\n const topLeft = this.stage.findOne('#topLeft-' + asset_id);\n topLeft.setFill('green');\n const topRight = this.stage.findOne('#topRight-' + asset_id);\n topRight.setFill('green');\n const bottomRight = this.stage.findOne('#bottomRight-' + asset_id);\n bottomRight.setFill('#FFCC99');\n const bottomLeft = this.stage.findOne('#bottomLeft-' + asset_id);\n bottomLeft.setFill('green');\n this.stage.draw();\n\n // set the global var for the asset id to the one just selected\n this.activeAssetId = asset_id;\n\n if (this.currentAssets[asset_id].Type === 'image') {\n this.ImageSourceChanged(); \n }\n\n var startHide = false;\n\n for (const key in this.currentAssets) {\n const assetGrp = ng.stage.findOne('#' + key + '-Group');\n assetGrp.show();\n if (startHide) {\n assetGrp.hide();\n }\n if (key === asset_id) {\n startHide = true;\n }\n }\n\n this.layer.draw();\n\n this.applyColor(asset_id, '_txt_bkg_color', this.currentAssets[asset_id].background_color);\n this.applyColor(asset_id, '_txt_font_color', this.currentAssets[asset_id].font_color);\n if (this.currentAssets[asset_id].opacity) {\n const opacity = this.currentAssets[asset_id].opacity\n // this.changeOpacity(asset_id, this.currentAssets[asset_id].opacity);\n $('#' + asset_id + '_txt_opacity_label').val(((opacity ? opacity : 0) * 100) + \"%\");\n const opacElement = document.getElementById(asset_id + '_txt_bkg_opacity');\n if (opacElement) {\n (opacElement).value = opacity;\n }\n }\n $('.selectpicker').selectpicker('refresh');\n }\n\n /* ------------------------------------------------------------------------------------------------------ */\n /* While the user is re-sizing and moving the active asset on the stage, this function shows the\n current attribute values */\n\n /* ------------------------------------------------------------------------------------------------------ */\n adjustTextPosition(asset_group): void {\n let group_child = asset_group.getChildren()[0];\n let group_child_two = asset_group.getChildren()[1];\n if (asset_group.getAttr('asset_type') === 'text' || asset_group.getAttr('asset_type') === 'text_crawl') {\n group_child_two.offsetY(group_child_two.getHeight() / 2 - group_child.getHeight() / 2);\n }\n }\n updateStats(asset_group, asset_id): void {\n const active_x = asset_group.getX();\n const active_y = asset_group.getY();\n const active_width = this.stage.findOne('#' + asset_id).getWidth();\n const active_height = this.stage.findOne('#' + asset_id).getHeight();\n\n let group_child = asset_group.getChildren()[0];\n let group_child_two = asset_group.getChildren()[1];\n if (asset_group.getAttr('asset_type') === 'text' || asset_group.getAttr('asset_type') === 'text_crawl') {\n group_child_two.offsetY(group_child_two.getHeight() / 2 - group_child.getHeight() / 2);\n }\n\n // update X value\n const xObject = (document.getElementById(asset_id + '_x'));\n this.currentAssets[this.activeAssetId].X = active_x;\n xObject.value = active_x;\n xObject.focus();\n xObject.blur();\n\n // update Y value\n const yObject = (document.getElementById(asset_id + '_y'));\n this.currentAssets[this.activeAssetId].Y = active_y;\n yObject.value = active_y;\n yObject.focus();\n yObject.blur();\n\n // update Width value\n const wObject = (document.getElementById(asset_id + '_width'));\n this.currentAssets[this.activeAssetId].Width = active_width;\n wObject.value = active_width;\n wObject.focus();\n wObject.blur();\n\n // update Height value\n const hObject = (document.getElementById(asset_id + '_height'));\n this.currentAssets[this.activeAssetId].Height = active_height;\n hObject.value = active_height;\n hObject.focus();\n hObject.blur();\n\n try {\n if ((this.gActiveResolution.split('x')[0].toString() !== active_x.toString()\n || this.gActiveResolution.split('x')[1].toString() !== active_y.toString())\n && (document.getElementById(asset_id + '_fullscreen')).checked) {\n (document.getElementById(asset_id + '_fullscreen')).checked = false;\n this.currentAssets[asset_id].full_screen = false;\n }\n } catch (e) { }\n }\n\n updateFullScreenStats(assetType, asset_id, isfullscreen): void {\n var active_x = 0;\n var active_y = 0;\n var active_width = 0;\n var active_height = 0;\n if (isfullscreen) {\n if (this.gActiveResolution === '1920x1080') {\n active_width = 1920;\n active_height = 1080;\n } else if (this.gActiveResolution === '1080x1920') {\n active_width = 1080;\n active_height = 1920;\n } else if (this.gActiveResolution === '1280x720') {\n active_width = 1280;\n active_height = 720;\n }\n }\n else {\n if (this.gActiveResolution === '1920x1080' || this.gActiveResolution === '1080x1920') {\n if (assetType === 'image') {\n active_x = 20;\n active_y = 20;\n active_width = 300;\n active_height = 300;\n } else if (assetType === 'video') {\n active_x = 30;\n active_y = 30;\n active_width = 1000;\n active_height = 600;\n } else if (assetType === 'browser') {\n active_x = 20;\n active_y = 20;\n active_width = 600;\n active_height = 600;\n } else if (assetType === 'youtube') {\n active_x = 30;\n active_y = 30;\n active_width = 1000;\n active_height = 600;\n }\n }\n else {\n if (assetType === 'image') {\n active_x = 20;\n active_y = 20;\n active_width = 200\n active_height = 200\n\n } else if (assetType === 'video') {\n active_x = 30;\n active_y = 30;\n active_width = 600;\n active_height = 400;\n } else if (assetType === 'browser') {\n active_x = 20;\n active_y = 20;\n active_width = 450;\n active_height = 450;\n } else if (assetType === 'youtube') {\n active_x = 30;\n active_y = 30;\n active_width = 600;\n active_height = 400;\n }\n }\n }\n // update X value\n const xObject = (document.getElementById(asset_id + '_x'));\n this.currentAssets[this.activeAssetId].X = active_x;\n xObject.value = active_x.toString();\n ng.updateAsset(asset_id + '_x', '_x');\n\n // update Y value\n const yObject = (document.getElementById(asset_id + '_y'));\n this.currentAssets[this.activeAssetId].Y = active_y;\n yObject.value = active_y.toString();\n ng.updateAsset(asset_id + '_y', '_y');\n\n // update Width value\n const wObject = (document.getElementById(asset_id + '_width'));\n this.currentAssets[this.activeAssetId].Width = active_width;\n wObject.value = active_width.toString();\n ng.updateAsset(asset_id + '_width', '_width');\n\n // update Height value\n const hObject = (document.getElementById(asset_id + '_height'));\n this.currentAssets[this.activeAssetId].Height = active_height;\n hObject.value = active_height.toString();\n ng.updateAsset(asset_id + '_height', '_height');\n }\n\n updateAsset(assetId, type): void {\n if ((Object.keys(this.currentAssets).length > 0) && (((document.getElementById(assetId)).value.length > 0) || (type === '_source') || (type === '_refresh_interval'))) { // verify that there are assets on the stage and the value for the text box is not empty ....\n /* ---------------------------------------------------- */\n /* resize and move the selected as necessary */\n /* ---------------------------------------------------- */\n\n // update border value\n //const sourceObject = (document.getElementById(assetId + '_isborder'));\n // this.currentAssets[this.activeAssetId].IsBorder = 'yes';\n //sourceObject.value = 'test';\n //ng.updateAsset(assetId + '_isborder', '_isborder');\n\n const active_asset = this.stage.findOne('#' + this.activeAssetId + '-Group'); // get the Konva asset object\n let image = active_asset.get('Image')[0]; // get the image of the asset to update\n if (image === undefined) { // if there is no image as part of this asset group then make the image just the asset itself\n image = active_asset;\n }\n\n // get each of the current anchor positions to be used if the width or height of the asset is updated\n const topLeft = this.stage.findOne('#topLeft-' + this.activeAssetId);\n const topRight = this.stage.findOne('#topRight-' + this.activeAssetId);\n const bottomRight = this.stage.findOne('#bottomRight-' + this.activeAssetId);\n const bottomLeft = this.stage.findOne('#bottomLeft-' + this.activeAssetId);\n\n // determine what current value to update (e.g., Width or Height or X or Y)\n let group_child;\n switch (type) {\n case '_name':\n this.currentAssets[this.activeAssetId].Name = ((document.getElementById(assetId)).value);\n active_asset.attrs.name = ((document.getElementById(assetId)).value);\n // update active list of assets with new value\n break;\n case '_fullscreen':\n this.currentAssets[this.activeAssetId].full_screen = ((document.getElementById(assetId)).checked);\n // update active list of assets with new value\n this.currentAssets[this.activeAssetId].border = 'no';\n (document.getElementById(this.activeAssetId + '_border')).checked = false;\n group_child = active_asset.getChildren()[0];\n group_child.stroke('');\n // if(this.currentAssets[this.activeAssetId].border === 'yes') {\n // (document.getElementById(this.activeAssetId + '_border')).checked = false;\n // group_child = active_asset.getChildren()[0];\n // group_child.stroke('');\n // }\n\n // (document.getElementById(assetId + '_border')).checked = false;\n break;\n case '_border':\n this.currentAssets[this.activeAssetId].border = (document.getElementById(assetId)).checked ? 'yes' : 'no';\n // update active list of assets with new value\n // if(this.currentAssets[this.activeAssetId].border === 'yes') {\n // alert(' border');\n // }\n group_child = active_asset.getChildren()[0];\n // console.log(this.currentAssets);\n if (this.currentAssets[this.activeAssetId].border === 'yes') {\n (document.getElementById(this.activeAssetId + '_fullscreen')).checked = false;\n group_child.stroke('#CCCCCC');\n if (this.currentAssets[this.activeAssetId].Type === 'image') {\n if (this.currentAssets[this.activeAssetId].Source != \"\") {\n group_child.strokeWidth(20);\n }\n else {\n group_child.strokeWidth(10);\n }\n }\n else {\n group_child.strokeWidth(10);\n }\n //}\n group_child.lineJoin('bevel');\n group_child.lineCap('bevel');\n\n } else {\n group_child.stroke('');\n }\n\n // group_child.setAttrs({\n // borderSize: 5,\n // borderColor: 'red',\n // });\n // const group_child_two2 = active_asset.getChildren()[1];\n\n // group_child_two2.style.border = 5;\n //group_child.borderColor('red');\n break;\n\n case '_x':\n // if((document.getElementById(this.activeAssetId + '_fullscreen')).checked) {\n //,0 removed\n active_asset.setX(parseInt((document.getElementById(assetId)).value)); // update the X value of the asset\n this.currentAssets[this.activeAssetId].X = parseInt((document.getElementById(assetId)).value);\n // }\n // update active list of assets with new value\n break;\n case '_y':\n // if((document.getElementById(this.activeAssetId + '_fullscreen')).checked) {\n active_asset.setY(parseInt((document.getElementById(assetId)).value)); // update the Y value of the asset\n this.currentAssets[this.activeAssetId].Y = parseInt((document.getElementById(assetId)).value);\n\n // }\n // update active list of assets with new value\n break;\n case '_width':\n let currentwidth1 = (document.getElementById(assetId)).value;\n if (this.gActiveResolution.split('x')[0].toString() !== currentwidth1\n && document.getElementById(this.activeAssetId + '_fullscreen') !== null\n && (document.getElementById(this.activeAssetId + '_fullscreen')).checked) {\n (document.getElementById(this.activeAssetId + '_fullscreen')).checked = false;\n this.currentAssets[this.activeAssetId].full_screen = false;\n (document.getElementById(assetId)).value = currentwidth1;\n }\n image.width(parseInt(currentwidth1), 0); // update the Width of the asset\n //image.height(parseInt(currentheight1), 0);\n\n topRight.setX((topLeft.getX() + image.getWidth()));\n bottomRight.setX((bottomLeft.getX() + image.getWidth()));\n\n group_child = active_asset.getChildren()[0];\n const w = parseInt(currentwidth1);\n group_child.width(w);\n //group_child.height(h);\n\n // If this object is a text or text crawl then it has an extra text box that we need to re-size\n if (\n (active_asset.getAttr('asset_type') === 'text') || (active_asset.getAttr('asset_type') === 'text_crawl')\n || (active_asset.getAttr('asset_type') === 'browser')\n || (active_asset.getAttr('asset_type') === 'channel_number')\n || (active_asset.getAttr('asset_type') === 'rss')\n || (active_asset.getAttr('asset_type') === 'text_multiline')\n || (active_asset.getAttr('asset_type') === 'clock')\n ) {\n let group_child_two = active_asset.getChildren()[1];\n group_child_two.width(group_child.getWidth());\n //group_child_two.height(group_child.getHeight());\n }\n\n this.currentAssets[this.activeAssetId].Width = parseInt(currentwidth1); //update active list of assets with new value\n break;\n case '_height':\n let currentheight2 = (document.getElementById(assetId)).value;\n if (this.gActiveResolution.split('x')[1].toString() !== currentheight2\n && document.getElementById(this.activeAssetId + '_fullscreen') !== null\n && (document.getElementById(this.activeAssetId + '_fullscreen')).checked) {\n (document.getElementById(this.activeAssetId + '_fullscreen')).checked = false;\n this.currentAssets[this.activeAssetId].full_screen = false;\n (document.getElementById(assetId)).value = currentheight2;\n }\n image.height(parseInt(currentheight2)); // update the Height of the asset\n\n bottomLeft.setY((topLeft.getY() + image.getHeight()));\n bottomRight.setY((topRight.getY() + image.getHeight()));\n\n group_child = active_asset.getChildren()[0];\n const h1 = parseInt(currentheight2);\n group_child.height(h1);\n\n // If this object is a text or text crawl then it has an extra text box that we need to re-size\n if ((active_asset.getAttr('asset_type') === 'text') || (active_asset.getAttr('asset_type') === 'text_crawl')) {\n // console.log(active_asset.getAttr('asset_type'));\n this.adjustTextPosition(active_asset);\n }\n else if ((active_asset.getAttr('asset_type') === 'browser')\n || (active_asset.getAttr('asset_type') === 'channel_number')\n || (active_asset.getAttr('asset_type') === 'rss')\n || (active_asset.getAttr('asset_type') === 'text_multiline')\n || (active_asset.getAttr('asset_type') === 'clock')\n ) {\n // console.log(active_asset.getAttr('asset_type'));\n const group_child_two = active_asset.getChildren()[1];\n const offsetY = 0 - (((topLeft.getY() + bottomLeft.getY()) / 2) - 12);\n group_child_two.offsetY(offsetY);\n }\n this.currentAssets[this.activeAssetId].Height = parseInt(currentheight2); // update active list of assets with new value\n break;\n case '_source':\n this.currentAssets[this.activeAssetId].Source = (document.getElementById(assetId)).value;\n if ((document.getElementById(assetId)).value.length > 0) {\n if ((active_asset.getAttr('asset_type') === 'text') || (active_asset.getAttr('asset_type') === 'text_multiline')) {\n const active_asset_text_msg = this.stage.findOne('#' + this.activeAssetId + '-Text');\n active_asset_text_msg.setText((document.getElementById(assetId)).value);\n } else if (active_asset.getAttr('asset_type') === 'text_crawl') {\n const active_asset_text_msg = this.stage.findOne('#' + this.activeAssetId + '-Text');\n const assetText = (document.getElementById(assetId)).value;\n active_asset_text_msg.setText(assetText.length > 20 ? assetText.substring(0, 20) + '...' : assetText);\n }\n } else {\n if (active_asset.getAttr('asset_type') === 'text') {\n const active_asset_text_msg = this.stage.findOne('#' + this.activeAssetId + '-Text');\n active_asset_text_msg.setText('Text');\n } else if (active_asset.getAttr('asset_type') === 'text_crawl') {\n const active_asset_text_msg = this.stage.findOne('#' + this.activeAssetId + '-Text');\n active_asset_text_msg.setText('Text Scroll');\n }\n }\n group_child = active_asset.getChildren()[0];\n if (active_asset.getAttr('asset_type') === 'text') {\n const group_child_two = active_asset.getChildren()[1];\n group_child_two.offsetY(group_child_two.getHeight() / 2 - group_child.getHeight() / 2);\n }\n break;\n case '_font':\n this.currentAssets[this.activeAssetId].Font = ((document.getElementById(assetId)).value);\n const group_child_two = active_asset.getChildren()[1];\n if (this.currentAssets[this.activeAssetId].Font === 'Default') {\n this.currentAssets[this.activeAssetId].Font = '';\n group_child_two.fontFamily('Calibri');\n }\n else {\n group_child_two.fontFamily(this.currentAssets[this.activeAssetId].Font.replace('-Italic', ''));\n }\n group_child_two.fontStyle(this.currentAssets[this.activeAssetId].Font.includes('-Italic') ? 'Italic' : 'Normal');\n // update active list of assets with new value\n this.adjustTextPosition(active_asset);\n break;\n case '_font_size':\n if (parseInt((document.getElementById(assetId)).value) > 100) {\n (document.getElementById(assetId)).value = '100';\n return;\n }\n this.currentAssets[this.activeAssetId].font_size = ((document.getElementById(assetId)).value);\n const group_child_2 = active_asset.getChildren()[1];\n group_child_2.fontSize(this.currentAssets[this.activeAssetId].font_size);\n // update active list of assets with new value\n\n this.adjustTextPosition(active_asset);\n break;\n case '_font_special':\n this.currentAssets[this.activeAssetId].font_special = ((document.getElementById(assetId)).checked);\n // update active list of assets with new value\n break;\n case '_rate':\n this.currentAssets[this.activeAssetId].Rate = ((document.getElementById(assetId)).value);\n // update active list of assets with new value\n break;\n case '_direction':\n this.currentAssets[this.activeAssetId].direction = ((document.getElementById(assetId)).value);\n // update active list of assets with new value\n break;\n case '_time_zone':\n this.currentAssets[this.activeAssetId].time_zone = ((document.getElementById(assetId)).value);\n // update active list of assets with new value\n break;\n case '_time_format':\n this.currentAssets[this.activeAssetId].time_format = ((document.getElementById(assetId)).value);\n // update active list of assets with new value\n break;\n case '_date_format':\n this.currentAssets[this.activeAssetId].date_format = ((document.getElementById(assetId)).value);\n // update active list of assets with new value\n break;\n case '_refresh_interval':\n this.currentAssets[this.activeAssetId].RefreshInterval = ((document.getElementById(assetId)).value);\n break;\n case '_file_name':\n this.currentAssets[this.activeAssetId].file_name = ((document.getElementById(assetId)).value);\n break;\n case '_item_duration':\n this.currentAssets[this.activeAssetId].item_duration = ((document.getElementById(assetId)).value);\n break;\n case '_transtion':\n this.currentAssets[this.activeAssetId].transtion = ((document.getElementById(assetId)).value);\n break;\n case '_image_wall':\n this.currentAssets[this.activeAssetId].image_wall = ((document.getElementById(assetId)).checked);\n break;\n case '_def_source':\n const value = (document.getElementById(assetId)).value;\n const tempAssetId = assetId.replace('_def_source', '') + '_source';\n\n if (!value || value === '0' || value === '1' || value === '2' || value === '4') {\n ((document.getElementById(tempAssetId)).value) = '';\n break;\n } if (value === '6') {\n ((document.getElementById(tempAssetId)).value) = 'folder';\n break;\n } else if (value === '3') {\n this.show_publish_modal(false);\n break;\n }\n this.currentAssets[this.activeAssetId].Source = value;\n ((document.getElementById(tempAssetId)).value) = this.currentAssets[this.activeAssetId].Source;\n // console.log(tempAssetId);\n break;\n case '_audio_def_source':\n const audioSourceValue = (document.getElementById(assetId)).value;\n const sourceAssetId = assetId.replace('_audio_def_source', '') + '_source';\n this.currentAssets[this.activeAssetId].Source = audioSourceValue;\n ((document.getElementById(sourceAssetId)).value) = this.currentAssets[this.activeAssetId].Source;\n break;\n }\n\n this.layer.draw();\n }\n }\n\n /* ------------------------------------------------------------------------------------------------------ */\n /* When the user wants to delete the active asset on the stage */\n\n /* ------------------------------------------------------------------------------------------------------ */\n delete_active_asset(): boolean {\n const group = this.stage.findOne('#' + this.activeAssetId + '-Group'); // get the asset that needs to be removed\n if (typeof group === 'undefined') {\n return false;\n }\n group.destroy(); // remove the asset from the stage\n this.layer.draw();\n\n // Remove the anchors for this asset from the array of list of asset' anchors\n this.remove_anchors('topLeft-' + this.activeAssetId);\n this.remove_anchors('topRight-' + this.activeAssetId);\n this.remove_anchors('bottomRight-' + this.activeAssetId);\n this.remove_anchors('bottomLeft-' + this.activeAssetId);\n // this.currentAssetsAnchors.remove_from_array('topLeft-' + this.activeAssetId);\n // this.currentAssetsAnchors.remove_from_array('topRight-' + this.activeAssetId);\n // this.currentAssetsAnchors.remove_from_array('bottomRight-' + this.activeAssetId);\n // this.currentAssetsAnchors.remove_from_array('bottomLeft-' + this.activeAssetId);\n\n // Then, remove this asset from the list of active assets array\n delete this.currentAssets[this.activeAssetId];\n // currentAssets.remove_from_array(activeAssetId);\n\n // Lastly, clear out the coordinates values that are showing for this asset\n // show the initial coordinate values\n (document.getElementById(this.activeAssetId + '_x')).value = '';\n (document.getElementById(this.activeAssetId + '_y')).value = '';\n (document.getElementById(this.activeAssetId + '_width')).value = '';\n (document.getElementById(this.activeAssetId + '_height')).value = '';\n\n this.show_assets('');\n this.show_attributes('', '');\n return true;\n }\n\n openScreenshotPopUp() {\n // this.screenshotAppPath = this.sanitizer.bypassSecurityTrustResourceUrl('https://www.digitalmediabridge.tv/Screen-Builder/assets/content/admin/manageclients/UpdateScreenshot/ss.html');\n this.screenshotAppPath = this.sanitizer.bypassSecurityTrustResourceUrl(this.appSettings.getConfig('APP_NAME') + 'assets/content/' + this.currentUser.homeDirectory + '/manageclients/UpdateScreenshot/ss.html');\n\n // this.screenshotAppPath = this.sanitizer.bypassSecurityTrustResourceUrl('/assets/content/' + this.currentUser.homeDirectory + '/manageclients/UpdateScreenshot/ss.html');\n this.openModel(this.screenShotModal, { windowClass: 'screenshotModalClass' }, 'screenshot');\n }\n\n openSiteLogModal() {\n this.siteLogAppPath = this.sanitizer.bypassSecurityTrustResourceUrl(this.appSettings.getConfig('APP_NAME') + 'assets/content/' + this.currentUser.homeDirectory + '/manageclients/UpdateSiteLogs/lf.html');\n this.openModel(this.logWebModal, { windowClass: 'siteLogModalClass' }, 'siteLog');\n }\n\n delete_an_asset(assetId): boolean {\n const group = this.stage.findOne('#' + assetId + '-Group'); // get the asset that needs to be removed\n if (typeof group === 'undefined') {\n return false;\n }\n group.destroy(); // remove the asset from the stage\n this.layer.draw();\n\n if (this.currentAssets[assetId].Type === 'browser') {\n\n try {\n document.getElementById('canvasContainer').removeChild(document.getElementById(assetId + '_div_browser_source'));\n document.getElementById('canvasContainer').removeChild(document.getElementById(assetId + '_lbl_browser_timer'));\n }\n catch (e) {\n\n }\n }\n\n // Remove the anchors for this asset from the array of list of asset' anchors\n this.remove_anchors('topLeft-' + assetId);\n this.remove_anchors('topRight-' + assetId);\n this.remove_anchors('bottomRight-' + assetId);\n this.remove_anchors('bottomLeft-' + assetId);\n\n // Then, remove this asset from the list of active assets array\n delete this.currentAssets[assetId];\n // currentAssets.remove_from_array(activeAssetId);\n\n // Lastly, clear out the coordinates values that are showing for this asset\n // show the initial coordinate values\n if ((document.getElementById(assetId + '_x')) !== null) {\n (document.getElementById(assetId + '_x')).value = '';\n (document.getElementById(assetId + '_y')).value = '';\n (document.getElementById(assetId + '_width')).value = '';\n (document.getElementById(assetId + '_height')).value = '';\n }\n\n this.show_assets('');\n this.show_attributes('', '');\n return true;\n }\n setCurrentActiveAsset(asset) {\n // console.log(asset);\n const myAsset = this.stage.findOne('#' + asset.getAttr('_assetId') + '-Group');\n if (typeof myAsset !== 'undefined') {\n ng.show_attributes(asset.getAttr('asset_type'), asset.getAttr('_assetId')); // show image attributes\n //this.currentAssets[asset.getAttr('_assetId')].playlist = false;\n ng.newAssetClicked(asset, asset.getAttr('_assetId'));\n }\n }\n deleteAssetFromList($event, asset) {\n this.myElement.splice($event, 1);\n // console.log('dssfsfsdf first ', this.currentAssets, asset);\n // this.currentAssets.splice(0);\n this.delete_an_asset(asset.attrs._assetId);\n // console.log('dssfsfsdf last', this.currentAssets);\n }\n\n\n remove_anchors(what: string): void {\n const a = arguments;\n let L = a.length;\n let ax;\n while (L && this.currentAssetsAnchors.length) {\n what = a[--L];\n while ((ax = this.currentAssetsAnchors.indexOf(what)) !== -1) {\n this.currentAssetsAnchors.splice(ax, 1);\n }\n }\n }\n // @HostListener('window:mousemove') refreshUserState() {\n // debugger;\n // this.counter = 0;\n // this.checkUserIdle();\n // //clearTimeout(this.userActivity);\n // //this.checkUserIdle();\n\n // // if(this.counter >= 5) //2 minutes\n // // {\n // // //reset counter value = 0\n // // this.counter =0;\n // // this.onLogout();\n // // //clearTimeout(this.userActivity);\n // // //this.setTimeout();\n // // }\n // // else{\n // // // this.counter = 0;\n // // }\n // }\n\n @HostListener('document:keydown', ['$event'])\n public handleKeyboardEvent(event: KeyboardEvent): void {\n event.stopPropagation();\n if (event.keyCode === 46 && document.activeElement.tagName === 'BODY') {\n this.delete_active_asset();\n }\n }\n\n updateColor(picker, asset) {\n const sel_color = picker.toHEXString();\n let sel_color_hex = picker.toRGBString();\n sel_color_hex = sel_color_hex.replace(/rgb/g, '').replace(/\\(/g, '').replace(/\\)/g, '').replace(/\\,/g, '.');\n sel_color_hex = '255.' + sel_color_hex;\n if (asset === 'bkg_color') { // c hange the sign background color\n const stage = document.getElementById('canvasContainer');\n stage.style.backgroundColor = sel_color;\n } else if (asset === '_txt_font_color') { // if the user has selected to update the font color of a text asset\n const active_txt_asset_font = this.stage.findOne('#' + this.activeAssetId + '-Text');\n active_txt_asset_font.fill(sel_color);\n this.currentAssets[this.activeAssetId].font_color = sel_color_hex;\n } else if (asset === '_txt_bkg_color') { // background color of the text asset\n const active_txt_asset = this.stage.findOne('#' + this.activeAssetId);\n active_txt_asset.fill(sel_color);\n this.currentAssets[this.activeAssetId].background_color = sel_color_hex;//+ '.0';\n }\n this.layer.draw();\n }\n\n changeOpacity(opacity, assetId) {\n if (this.currentAssets[assetId].Type != 'image' && this.currentAssets[assetId].Type != 'video') {\n const active_txt_asset = this.stage.findOne('#' + assetId);\n active_txt_asset.opacity(1 - opacity);\n this.layer.draw();\n this.currentAssets[assetId].opacity = opacity;\n $('#' + assetId + '_txt_opacity_label').val(((opacity ? opacity : 0) * 100) + \"%\");\n }\n }\n\n ngAfterViewInit() {\n\n this.changeCanvasResolution();\n this.setZoomLevel();\n\n $('[data-toggle=\"tooltip\"]').tooltip({\n trigger: 'hover'\n });\n $('[data-submenu]').submenupicker();\n // $('.mdb-select').materialSelect();\n // this.ezTVLogin();\n $(\".card-block\").click(function () {\n ng.isScreenSaved = false;\n });\n }\n\n updateImageAsset(asset_src, type, assetUrl?: any, isEzTv?: boolean, asset_name?: string): any {\n // if (this.isPlayListAcitve && type === 'video' && isEzTv) {\n // this.authService.showNotification('Please select files.', 'error');\n // return false;\n // }\n var playlist_count = 0;\n if (this.currentAssets[this.activeAssetId].playlist) {\n for (const key in this.currentAssets[this.activeAssetId].playlist_items) {\n playlist_count++;\n }\n }\n\n if (playlist_count == 10) {\n this.authService.showNotification('', 'You cannot add more than 10
images in a playlist', 'error');\n return;\n }\n\n if (type === 'image') {\n //if (this.isPlayListAcitve) {\n const active_asset = this.stage.findOne('#' + this.activeAssetId + '-Group');\n const group_child_border = active_asset.getChildren(0);\n // group_child_border.strokeWidth(20);\n\n if (this.currentAssets[this.activeAssetId].playlist) {\n const fileName = asset_name ? asset_name : asset_src.replace(/^.*[\\\\\\/]/, '');\n var isExistingItem = false;\n for (const key in this.currentAssets[this.activeAssetId].playlist_items) {\n if (this.currentAssets[this.activeAssetId].playlist_items[key].name === fileName) {\n isExistingItem = true;\n break;\n }\n }\n if (!isExistingItem) {\n (document.getElementById(this.activeAssetId + '_source')).value = '';\n this.addItemToPlayList(asset_src, type, assetUrl, asset_name);\n }\n }\n const currentSrs = this.currentAssets[this.activeAssetId].Source;\n if (this.currentAssets[this.activeAssetId].playlist && currentSrs !== '') {\n return false;\n }\n } else if (type === 'audio') {\n const active_group = this.stage.findOne('#' + this.activeAssetId + '-Group');\n let group_child = active_group.getChildren()[0];\n const imageSrc = 'assets/img/Audio-Circle-Icon-1920x1080.png';\n const imageObj1 = new Image();\n imageObj1.onload = function () {\n group_child.image(imageObj1);\n ng.layer.draw();\n };\n imageObj1.src = imageSrc;\n } else if (type === 'video') {\n const active_group = this.stage.findOne('#' + this.activeAssetId + '-Group');\n let group_child = active_group.getChildren()[0];\n const imageSrc = 'assets/img/video_skewed.png';\n const imageObj1 = new Image();\n imageObj1.onload = function () {\n group_child.image(imageObj1);\n ng.layer.draw();\n };\n imageObj1.src = imageSrc;\n }\n this.updateImageAttributes(asset_src, type, assetUrl, isEzTv, asset_name);\n\n if (type === 'image') {\n this.ImageSourceChanged();\n }\n }\n\n updateImageAttributes(asset_src, type, assetUrl?: any, isEzTv?: boolean, asset_name?: string): any {\n\n if (type == \"image\") {\n if (asset_src) {\n var dotIndex = asset_src.lastIndexOf('.');\n var ext = asset_src.substring(dotIndex);\n if (asset_src.includes('http')) {\n //if http error then load default images\n var url = window.location + \"/assets/img/layout/asset_icons/600x600-app-icon_IMAGE.png\";\n assetUrl = url;\n }\n else {\n if (ext == '.jpg' || ext == '.png' || ext == '.jpeg' || ext == '.gif' || ext == '.bmp' || ext == '.svg' || ext == '.ico') {\n if (asset_src.includes('assets/content/')) {\n assetUrl = assetUrl;\n }\n else {\n var imageExist = false;\n this.currentImages.forEach(image => {\n if (image.name === asset_src) {\n const user = this.authService.currentUser;\n var url = window.location + \"/assets/content/\" + user.userName + \"/images/\" + asset_src;\n assetUrl = url;\n imageExist = true;\n }\n\n });\n if (!imageExist) {\n //if image not exist then load default images\n var url = window.location + \"/assets/img/layout/asset_icons/600x600-app-icon_IMAGE.png\";\n assetUrl = url;\n }\n }\n }\n else {\n //if type error then load default images\n var url = window.location + \"/assets/img/layout/asset_icons/600x600-app-icon_IMAGE.png\";\n assetUrl = url;\n }\n }\n }\n\n }\n\n const active_group = this.stage.findOne('#' + this.activeAssetId + '-Group');\n if (type === 'image') {\n // first, get the Object for the just added (or clicked) asset\n const imageObj = this.activeImageParent.get('Image')[0];\n // then, create a new Image object and replace the old with the new\n const NewImageObj = new Image();\n NewImageObj.onload = function () {\n imageObj.image(NewImageObj);\n ng.layer.draw();\n };\n\n NewImageObj.src = assetUrl; // asset_src is passed into the function as: 'img/myimage.jpg'\n }\n // Lastly, update the list of assets object to include the source image just selected\n if (!isEzTv) {\n asset_src = (typeof asset_src === 'undefined') ? '' : asset_src;\n const url = asset_src.split('/');\n const just_file = url[url.length - 1];\n this.currentAssets[this.activeAssetId].Source = just_file.trim();\n } else {\n const url = asset_src;\n this.currentAssets[this.activeAssetId].Source = url;\n }\n if (type === 'audio') {\n let val = this.currentAssets[this.activeAssetId].Source;\n let name = $(\"#\" + this.activeAssetId + \"_audio_def_source\" + \" option[value='\" + val + \"']\").text();\n this.currentAssets[this.activeAssetId].Name = name.substr(0, 30);\n active_group.attrs.name = this.currentAssets[this.activeAssetId].Name;\n } else if (type === 'video') {\n let val = this.currentAssets[this.activeAssetId].Source;\n let name = $(\"#\" + this.activeAssetId + \"_def_source\" + \" option[value='\" + val + \"']\").text();\n this.currentAssets[this.activeAssetId].Name = name.substr(0, 30);\n active_group.attrs.name = this.currentAssets[this.activeAssetId].Name;\n }\n if (((typeof this.currentAssets[this.activeAssetId].playlist === 'undefined' || !this.currentAssets[this.activeAssetId].playlist) && type === 'image') || type === 'audio' || type === 'video') {\n this.currentAssets[this.activeAssetId].Source = this.currentAssets[this.activeAssetId].Source.substring(0, 2000);\n (document.getElementById(this.activeAssetId + '_source')).value = this.currentAssets[this.activeAssetId].Source;\n (document.getElementById(this.activeAssetId + '_name')).value = this.currentAssets[this.activeAssetId].Name;\n // if (asset_name) {\n // this.currentAssets[this.activeAssetId].Name = asset_name;\n // (document.getElementById(this.activeAssetId + '_name')).value = this.currentAssets[this.activeAssetId].Name;\n // }\n }\n }\n\n ImageSourceChanged(): any {\n // alert(this.currentAssets[this.activeAssetId].Type);\n // alert((document.getElementById(this.activeAssetId + '_source')).value);\n if(this.currentAssets[this.activeAssetId].Type === 'image' &&\n (document.getElementById(this.activeAssetId + '_source')).value.trim() !== '' &&\n !this.currentAssets[this.activeAssetId].playlist) {\n $(\"#_resize_to_source\").removeClass('disabled');\n } else {\n $(\"#_resize_to_source\").addClass('disabled');\n }\n\n if((document.getElementById(this.activeAssetId + '_source')).value.trim() === '' &&\n !this.currentAssets[this.activeAssetId].playlist) {\n const imageObj = this.activeImageParent.get('Image')[0];\n // then, create a new Image object and replace the old with the new\n const NewImageObj = new Image();\n NewImageObj.onload = function () {\n imageObj.image(NewImageObj);\n ng.layer.draw();\n };\n\n // Load default image\n var assetUrl = window.location + \"/assets/img/layout/asset_icons/600x600-app-icon_IMAGE.png\";\n NewImageObj.src = assetUrl;\n }\n }\n\n ResizeImageAssetToSource(): any {\n var assetId = this.activeAssetId + '_source';\n var srcImg = new Image();\n srcImg.src = 'assets/content/' + this.username + '/images/' + encodeURIComponent((document.getElementById(assetId)).value);\n srcImg.onload = \n function () {\n var width = srcImg.width;\n var height = srcImg.height;\n \n if(ng.isPortraitView && width > height) {\n ng.authService.showNotification('Error', 'Resize to source is not allowed for this image', 'error');\n return;\n\n } else if(!ng.isPortraitView && width < height) {\n ng.authService.showNotification('Error', 'Resize to source is not allowed for this image', 'error');\n return;\n }\n\n var active_x = 0;\n var active_y = 0;\n var active_width = width;\n var active_height = height;\n \n // update X value\n const xObject = (document.getElementById(ng.activeAssetId + '_x'));\n ng.currentAssets[ng.activeAssetId].X = active_x;\n xObject.value = active_x.toString();\n ng.updateAsset(ng.activeAssetId + '_x', '_x');\n\n // update Y value\n const yObject = (document.getElementById(ng.activeAssetId + '_y'));\n ng.currentAssets[ng.activeAssetId].Y = active_y;\n yObject.value = active_y.toString();\n ng.updateAsset(ng.activeAssetId + '_y', '_y');\n\n // update Width value\n const wObject = (document.getElementById(ng.activeAssetId + '_width'));\n ng.currentAssets[ng.activeAssetId].Width = active_width;\n wObject.value = active_width.toString();\n ng.updateAsset(ng.activeAssetId + '_width', '_width');\n\n // update Height value\n const hObject = (document.getElementById(ng.activeAssetId + '_height'));\n ng.currentAssets[ng.activeAssetId].Height = active_height;\n hObject.value = active_height.toString();\n ng.updateAsset(ng.activeAssetId + '_height', '_height');\n }; \n }\n\n show_assets(asset_type): void {\n // Console.log(asset_type)\n let aAssets = [];\n switch (asset_type) {\n\n case 'image':\n aAssets = this.currentImages;\n $('#video-slider-parent').hide();\n $('#no-slider-parent').hide();\n if (this.currentImages.length > 0) {\n $('#image-slider-parent').show();\n if (this.imageSliderLoaded === false) {\n const elements = document.getElementsByClassName('lSAction');\n while (elements.length > 0) {\n elements[0].parentNode.removeChild(elements[0]);\n }\n\n $('#image-slider').lightSlider({\n keyPress: false,\n pager: false,\n item: 5,\n loop: false,\n onSliderLoad: function () {\n $('#image-slider').removeClass('cS-hidden');\n }\n });\n this.imageSliderLoaded = true;\n this.videoSliderLoaded = false;\n }\n }\n break;\n case 'video':\n aAssets = this.currentVideos;\n $('#image-slider-parent').hide();\n $('#no-slider-parent').hide();\n if (this.currentVideos.length > 0) {\n $('#video-slider-parent').show();\n if (this.videoSliderLoaded === false) {\n const elements = document.getElementsByClassName('lSAction');\n while (elements.length > 0) {\n elements[0].parentNode.removeChild(elements[0]);\n }\n\n $('#video-slider').lightSlider({\n keyPress: false,\n pager: false,\n item: 5,\n loop: false,\n onSliderLoad: function () {\n $('#video-slider').removeClass('cS-hidden');\n }\n });\n this.videoSliderLoaded = true;\n this.imageSliderLoaded = false;\n }\n }\n break;\n default:\n $('#image-slider-parent').hide();\n $('#video-slider-parent').hide();\n $('#no-slider-parent').show();\n this.imageSliderLoaded = false;\n this.videoSliderLoaded = false;\n break;\n }\n // before showing the user the list of available assets, make sure that there are some to show\n if (aAssets.length === 0 && asset_type !== 'text') {\n if (this.authService.isLoggedIn) {\n // this.authService.showNotification('There are no ' + asset_type + ' assets for user.', 'error');\n } else {\n this.authService.showNotification('',\n 'Please login to see the list of available ' + asset_type + ' assets you can add to the sign.', 'error');\n }\n return;\n }\n }\n\n /**\n * When the user clicks the Save button from the toolbar open the pop-up window and ask for the screenlist file name\n */\n save_screenlist(isShowNotification: boolean): void {\n // debugger;\n var currentDate = new Date();\n\n if (typeof this.lastSaveDateTime !== 'undefined' && this.lastSaveDateTime !== '') {\n var diff = (currentDate.valueOf() - this.lastSaveDateTime.valueOf());\n var resultInMinutes = Math.round(diff / 60000);\n if (resultInMinutes >= 120) {\n this.onLogout();\n return;\n }\n }\n\n this.lastSaveDateTime = currentDate;\n\n this.gActiveScreenlistFile = 'dmb.screenlist.01.xml';\n var isValid = true;\n\n if (this.authService.isLoggedIn) {\n if (Object.keys(this.currentAssets).length === 0) {\n if (isShowNotification) {\n this.authService.showNotification('', 'You must add at least one
asset to the screen.', 'info');\n }\n } else {\n for (const key in this.currentAssets) {\n if ((this.currentAssets[key].Type === 'image' || this.currentAssets[key].Type === 'video'\n || this.currentAssets[key].Type === 'text' || this.currentAssets[key].Type === 'browser'\n || this.currentAssets[key].Type === 'text_crawl' || this.currentAssets[key].Type === 'youtube')\n && (typeof this.currentAssets[key].Source === 'undefined' || this.currentAssets[key].Source === '')) {\n if (isShowNotification) {\n this.authService.showNotification('Error', 'Please provide a Source value for each asset', 'error');\n }\n isValid = false;\n break;\n } else if (this.currentAssets[key].Type === 'text' || this.currentAssets[key].Type === 'text_crawl') {\n const active_group = this.stage.findOne('#' + key + '-Group');\n let group_child = active_group.getChildren()[0];\n const group_child_two = active_group.getChildren()[1];\n\n if ((group_child_two.getHeight() - group_child.getHeight()) > 10) {\n if (this.currentAssets[key].Type === 'text') {\n if (isShowNotification) {\n this.authService.showNotification('Error', 'The text inside the Text asset
must fit inside the asset', 'error');\n }\n } else if (this.currentAssets[key].Type === 'text_crawl') {\n if (isShowNotification) {\n this.authService.showNotification('Error', 'The text inside the Text Scroll
asset must fit inside the asset', 'error');\n }\n }\n isValid = false;\n break;\n }\n } else if (this.currentAssets[key].Type === 'browser') {\n if (typeof this.currentAssets[key].RefreshInterval !== 'undefined' && this.currentAssets[key].RefreshInterval !== '') {\n var rI = parseFloat(this.currentAssets[key].RefreshInterval)\n if (rI < 15 || rI > 86400) {\n if (isShowNotification) {\n this.authService.showNotification('Error', 'The value of refresh interval
must be between 15 and 86400', 'error');\n }\n isValid = false;\n break;\n }\n }\n }\n }\n if (isValid) {\n this.create_screenlist_file(isShowNotification);\n }\n }\n } else {\n if (isShowNotification) {\n this.authService.showNotification('', 'Please login first.', 'info');\n }\n }\n\n //OLD CODE COMMENTED ON 04/29/2021 SOUNAK\n\n // this.gActiveScreenlistFile = 'dmb.screenlist.00.xml';\n // if (this.authService.isLoggedIn) {\n // if (Object.keys(this.currentAssets).length === 0) {\n // this.authService.showNotification('You must add at least one asset to the screen.', 'error');\n // } else {\n // this.openModel(this.fileNameModel);\n // }\n // } else {\n // this.authService.showNotification('Please login first.', 'error');\n // }\n\n //OLD CODE END\n }\n\n openModel(content, config?: object, type?: string) {\n if (typeof config === 'undefined') {\n config = {};\n }\n this.modalRef = this.modalService.open(content, config);\n\n if (type === 'channel-modal') {\n this.modalRef.result.then((result) => {\n this.updateVideoChannelList();\n }, (reason) => {\n this.updateVideoChannelList();\n });\n } else if (type === 'screenshot') {\n this.modalRef.result.then((result) => {\n // console.log('`Closed with: ${result}`');\n }, (reason) => {\n this.screenService.readScreenShotData('admin').subscribe((data) => {\n data = data.split('\\n');\n this.updateImageAsset(data[1], 'image', data[1], true, data[0]);\n });\n });\n\n } else if (type === 'player_status') {\n this.modalRef.result.then((result) => {\n // console.log('`Closed with: ${result}`');\n }, (reason) => {\n clearInterval(ng.playerStatusIntervalID);\n });\n } else {\n this.modalRef.result.then((result) => {\n // console.log('`Closed with: ${result}`');\n\n }, (reason) => {\n if (this.selectedModel === 'resolution' && this.gActiveResolution !== this.selectedResolution) {\n this.gActiveResolution = this.selectedResolution;\n }\n this.selectedModel = null;\n // console.log('`Dismissed ${this.getDismissReason(reason)}`');\n });\n }\n }\n\n closeModal(): void {\n if (this.modalRef) {\n if (this.selectedModel === 'resolution' && this.gActiveResolution !== this.selectedResolution) {\n this.gActiveResolution = this.selectedResolution;\n }\n this.selectedModel = null;\n this.modalRef.close();\n }\n }\n\n valid_asset_position(asset) {\n if (asset.X < 0 || asset.Y < 0 || asset.X + asset.Width > this.stageWidth || asset.Y + asset.Height > this.stageHeight) {\n return false;\n }\n return true;\n }\n\n getBackGroundColor(key) {\n let backGroudColor = this.currentAssets[key].background_color ? this.currentAssets[key].background_color : '255.0.0.0';\n if (this.currentAssets[key].opacity) {\n // const opacityMapping = {\n // 0: 0,\n // 0.1: 26,\n // 0.2: 51,\n // 0.3: 77,\n // 0.4: 102,\n // 0.5: 128,\n // 0.6: 153,\n // 0.7: 179,\n // 0.8: 204,\n // 0.9: 230,\n // 1: 255\n // };\n\n const opacityMapping = {\n 0: 255,\n 0.1: 230,\n 0.2: 204,\n 0.3: 179,\n 0.4: 153,\n 0.5: 128,\n 0.6: 102,\n 0.7: 77,\n 0.8: 51,\n 0.9: 26,\n 1: 0\n };\n\n opacityMapping[this.currentAssets[key].opacity]\n backGroudColor = opacityMapping[this.currentAssets[key].opacity] + '.' + backGroudColor.split('.').splice(1, 3).join('.')\n }\n return backGroudColor;\n\n }\n\n create_screenlist_array(): object {\n // first, tell the user that the saving process has started\n this.savigFile = true;\n\n this.gFilesToBeDelivered = [];\n // set the global var0iable name to the just provided screenlist name\n\n // *****************************************************\n // ** Get each of the required values to be entered into the file **\n // *****************************************************\n const now = new Date();\n const dmb_attributes = {\n 'version': '1.0',\n 'timestamp': this.currentTimeStamp()\n };\n const screenlist_attributes = {\n 'filename': this.gActiveScreenlistFile,\n 'name': ((document.getElementById('sign-name')).value.length > 0 ?\n (document.getElementById('sign-name')).value : this.signName.length > 0 ?\n this.signName : 'Screen ' + this.ramdomid()),\n 'resolution': this.gActiveResolution,\n 'content_directory': this.gContentDirectory\n };\n // the screen background color is from the global 'color_picker' object's current RGB color values\n const bkg_color = '255.' + Math.round(this.color_picker_canvas.rgb[0]) + '.' + Math.round(this.color_picker_canvas.rgb[1]) + '.' + Math.round(this.color_picker_canvas.rgb[2]);\n let screen_attributes = {\n 'name': ((document.getElementById('sign-name')).value.length > 0 ?\n (document.getElementById('sign-name')).value : this.signName.length > 0 ?\n this.signName : 'Screen ' + this.ramdomid()),\n 'on_boot_only': 'no',\n 'active': 'yes',\n 'background_color': bkg_color,\n 'exit_on_video_end': 'no'\n };\n\n\n // *****************************************************\n // ** Loop over each asset on the stage to add to object before\n // sending the object to PHP file **\n // *****************************************************\n const assets = [];\n for (const key in this.currentAssets) {\n if (this.currentAssets.hasOwnProperty(key)) {\n // check if all assets are within range\n if (!this.valid_asset_position(this.currentAssets[key])) {\n this.authService.showNotification('Assets cannot be placed outside of stage', 'error', 'error');\n return;\n }\n this.getBackGroundColor(key);\n\n const aType = this.currentAssets[key].Type;\n const assetItem = {\n 'type': aType,\n // 'name': this.currentAssets[key].Type === 'youtube' ? 'YouTubePlayer' : this.currentAssets[key].Name,\n 'name': this.currentAssets[key].Name,\n 'x': this.currentAssets[key].X,\n 'y': this.currentAssets[key].Y,\n 'width': this.currentAssets[key].Width,\n 'height': this.currentAssets[key].Height,\n 'source': this.currentAssets[key].Source,\n 'fit': 'yes',\n 'background_color': this.getBackGroundColor(key),\n 'font_color': this.currentAssets[key].font_color,\n 'direction': this.currentAssets[key].direction,\n 'rate': this.currentAssets[key].Rate,\n 'font': this.currentAssets[key].Font === 'Default' ? '' : this.currentAssets[key].Font,\n 'font_size': this.currentAssets[key].font_size,\n 'time_zone': this.currentAssets[key].time_zone,\n 'refresh_interval': this.currentAssets[key].RefreshInterval,\n };\n if (this.currentAssets[key].Type === 'video' && this.currentAssets[key].Source === 'folder') {\n assetItem['playlist'] = true;\n assetItem['file_name'] = 'folder';\n // assetItem['x'] = '0';\n // assetItem['y'] = '0';\n // assetItem['width'] = '1152';\n // assetItem['height'] = '648';\n // assetItem['background_color'] = '0.0.0.0';\n assetItem['item_order'] = 'random';\n }\n if ((this.currentAssets[key].Type === 'image' || this.currentAssets[key].Type === 'video')\n && typeof this.currentAssets[key].playlist !== 'undefined' && this.currentAssets[key].playlist) {\n if (this.currentAssets[key].Type === 'image') {\n assetItem['item_duration'] = this.currentAssets[key].item_duration;\n // assetItem['transition'] = this.currentAssets[key].transtion;\n if (typeof this.currentAssets[key].image_wall !== 'undefined' && this.currentAssets[key].image_wall)\n assetItem['transition'] = 'image_wall';\n else\n assetItem['transition'] = 'none';\n assetItem['background_color'] = '0.0.0.0';\n }\n assetItem['playlist'] = this.currentAssets[key].playlist;\n assetItem['playlist_items'] = this.currentAssets[key].playlist_items;\n assetItem['file_name'] = this.currentAssets[key].file_name;\n }\n if (this.currentAssets[key].Type === 'image') {\n assetItem['background_color'] = '0.0.0.0';\n }\n if (this.currentAssets[key].Type === 'image' || this.currentAssets[key].Type === 'video') {\n if (this.currentAssets[key].border != null) {\n assetItem['border'] = this.currentAssets[key].border.toLowerCase();\n }\n // debugger;\n // alert(JSON.stringify(this.currentAssets));\n const active_asset = this.stage.findOne('#' + this.activeAssetId + '-Group');\n const group_child_border = active_asset.getChildren(0);\n if (assetItem['border'] == 'yes') {\n if (this.currentAssets[key].Type === 'image') {\n group_child_border.stroke('#CCCCCC');\n group_child_border.strokeWidth(10);\n group_child_border.lineJoin('bevel');\n group_child_border.lineCap('bevel');\n }\n else {\n group_child_border.stroke('#CCCCCC');\n group_child_border.strokeWidth(10);\n group_child_border.lineJoin('bevel');\n group_child_border.lineCap('bevel');\n }\n }\n else {\n group_child_border.stroke('');\n }\n }\n if (this.currentAssets[key].Type === 'clock') {\n assetItem['time_format'] = this.currentAssets[key].time_format;\n assetItem['date_format'] = this.currentAssets[key].date_format;\n }\n if (this.currentAssets[key].Type === 'text' || this.currentAssets[key].Type === 'text_crawl') {\n if (this.currentAssets[key].font_special) {\n assetItem['font_special'] = 'inset';\n }\n }\n\n // add this asset to the list of assets that need to be included when the screenlist file is built\n assets.push(assetItem);\n // if necessary, check to see if we need to include a seperate file that is required for this asset that should be delivered\n if (this.currentAssets[key].Type !== 'text' && this.currentAssets[key].Source.length > 0) {\n const file_to_send = $.grep(this.gContentAllFiles, function (element, index) {\n return element.name === ng.currentAssets[key].Source;\n });\n // console.log(file_to_send)\n if (typeof file_to_send[0] !== 'undefined') {\n this.gFilesToBeDelivered.push({\n 'name': file_to_send[0].name,\n 'last_modified': file_to_send[0].last_modified,\n 'size': file_to_send[0].size\n });\n }\n }\n }\n }\n const user = this.authService.currentUser;\n let fileData;\n if (this._templatePath === false) {\n fileData = {\n UserName: user.userName,\n userID: user.userID,\n DmbAttributes: dmb_attributes,\n ScreenlistAttributes: screenlist_attributes,\n ScreenAttributes: screen_attributes,\n ScreenAssets: assets\n };\n } else {\n fileData = {\n UserName: user.userName,\n userID: user.userID,\n DmbAttributes: dmb_attributes,\n ScreenlistAttributes: screenlist_attributes,\n ScreenAttributes: screen_attributes,\n ScreenAssets: assets,\n RelativePath: this._templatePath\n };\n }\n return fileData;\n }\n\n /**\n * Once the user has entered the screenlist file name, create or update the xml file in the 'Contnet' directory\n */\n create_screenlist_file(isShowNotification: boolean): void {\n\n const data = this.create_screenlist_array();\n\n if (!data) {\n //this.modalRef.close();\n return;\n }\n\n this.isSavingFile = true;\n this.screenService.saveXmlFile(data).subscribe((response) => {\n this.getUserFilesList();\n //this.authService.showNotification(response.message, 'success');\n if (isShowNotification) {\n if (response.status === 'error') {\n this.authService.showNotification(response.message, '', 'error');\n } else {\n this.authService.showNotification('Screen saved successfully', 'success', 'success');\n }\n }\n this.isSavingFile = false;\n this.isScreenSaved = true;\n //ng.modalRef.close();\n // setInterval(function () {\n //\n // // window.location.reload();\n // // ng.resetCompleteScreen();\n // }, 3000);\n //this.isSavingFile = false;\n }, error => {\n if (isShowNotification) {\n //this.authService.showNotification(error.message, 'error');\n this.authService.showNotification('', 'Some error occured. please try again later', 'error');\n }\n //this.modalRef.close();\n this.isSavingFile = false;\n });\n }\n\n register_player(): void {\n $(\"#lbl_registerplayer_errmsg\").hide();\n\n const data = {\n\n RegistrationCode: this.registrationCode.toUpperCase(),\n PlayerName: this.playerName,\n Account: this.authService.currentUser.username\n }\n\n if (!data) {\n this.modalRef.close();\n return;\n }\n\n this.isRegisterPlayer = true;\n this.registrationService.registerPlayer(data).subscribe((response) => {\n if (response.status == 'success') {\n this.TogglePlayerRegistrationLink();\n this.authService.showNotification('Success', 'Player Registered successfully', 'success');\n this.isRegisterPlayer = false;\n ng.modalRef.close();\n }\n else if (response.status == 'error') {\n\n if (response.message.includes(' does not exist')) {\n this.openinvalidPlayerIdModal();\n }\n else {\n $(\"#lbl_registerplayer_errmsg\").text(response.message);\n $(\"#lbl_registerplayer_errmsg\").show();\n }\n //this.authService.showNotification('Failure', response.message, 'error');\n this.isRegisterPlayer = false;\n }\n\n }, error => {\n this.authService.showNotification('Error', 'Some error occured. please try again later', 'error');\n this.modalRef.close();\n this.isRegisterPlayer = false;\n });\n }\n\n update_player(): void {\n $(\"#lbl_updateplayer_errmsg\").hide();\n\n const data = {\n\n RegistrationCode: this.registrationCode.toUpperCase(),\n PlayerName: this.playerName,\n Account: this.authService.currentUser.username\n }\n\n if (!data) {\n this.modalRef.close();\n return;\n }\n\n this.registrationService.updatePlayer(data).subscribe((response) => {\n if (response.status == 'success') {\n this.authService.showNotification('Success', 'Player updated successfully', 'success');\n ng.modalRef.close();\n }\n else if (response.status == 'error') {\n $(\"#lbl_updateplayer_errmsg\").text(response.message);\n $(\"#lbl_updateplayer_errmsg\").show();\n //this.authService.showNotification('Failure', response.message, 'error');\n }\n\n }, error => {\n this.authService.showNotification('Error', 'Some error occured. please try again later', 'error');\n this.modalRef.close();\n });\n }\n delete_player(): void {\n $(\"#lbl_updateplayer_errmsg\").hide();\n\n const data = {\n\n RegistrationCode: this.registrationCode.toUpperCase(),\n PlayerName: this.playerName,\n Account: this.authService.currentUser.username\n }\n\n if (!data) {\n this.modalRef.close();\n return;\n }\n\n this.registrationService.deletePlayer(data).subscribe((response) => {\n if (response.status == 'success') {\n this.TogglePlayerRegistrationLink();\n this.authService.showNotification('Success', 'Player deleted successfully', 'success');\n ng.modalRef.close();\n }\n else if (response.status == 'error') {\n $(\"#lbl_updateplayer_errmsg\").text(response.message);\n $(\"#lbl_updateplayer_errmsg\").show();\n //this.authService.showNotification('Failure', response.message, 'error');\n }\n }, error => {\n this.authService.showNotification('Error', 'Some error occured. please try again later', 'error');\n this.modalRef.close();\n });\n }\n\n update_screenName(): void {\n $(\"#lbl_updatescreen_errmsg\").hide();\n\n const data = {\n\n screenName: this.screenName,\n newScreenName: this.newScreenName,\n userName: this.authService.currentUser.username\n }\n\n if (!data) {\n this.modalRef.close();\n return;\n }\n\n this.screenService.updateScreenName(data).subscribe((response) => {\n if (response.status == 'success') {\n this.getUserFilesList();\n this.authService.showNotification('Success', 'Screen name updated successfully', 'success');\n ng.modalRef.close();\n }\n else if (response.status == 'error') {\n $(\"#lbl_updatescreen_errmsg\").text(response.message);\n $(\"#lbl_updatescreen_errmsg\").show();\n //this.authService.showNotification('Failure', response.message, 'error');\n }\n\n }, error => {\n this.authService.showNotification('Error', 'Some error occured. please try again later', 'error');\n this.modalRef.close();\n });\n }\n\n delete_screen(): void {\n $(\"#lbl_updatescreen_errmsg\").hide();\n\n const data = {\n\n screenName: this.screenName,\n userName: this.authService.currentUser.username\n }\n\n if (!data) {\n this.modalRef.close();\n return;\n }\n\n this.screenService.deleteScreen(data).subscribe((response) => {\n if (response.status == 'success') {\n this.getUserFilesList();\n this.authService.showNotification('Success', 'Screen deleted successfully', 'success');\n ng.modalRef.close();\n }\n else if (response.status == 'error') {\n $(\"#lbl_updatescreen_errmsg\").text(response.message);\n $(\"#lbl_updatescreen_errmsg\").show();\n //this.authService.showNotification('Failure', response.message, 'error');\n }\n }, error => {\n this.authService.showNotification('Error', 'Some error occured. please try again later', 'error');\n this.modalRef.close();\n });\n }\n\n currentTimeStamp(): string {\n const date = new Date(); // had to remove the colon (:) after the T in order to make it work\n const day = date.getDate();\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n const minutes = date.getMinutes();\n const hours = date.getHours();\n const seconds = date.getSeconds();\n const myFormattedDate = day + '-' + (monthIndex + 1) + '-' + year + ' ' + hours + ':' + minutes + ':' + seconds;\n return myFormattedDate;\n }\n\n openSettingsModal(): void {\n // screenSettingsModal\n\n this.openModel(this.screenSettingsModal, { size: 'lg' });\n this.resetContentServerObj();\n this.resetUserObj();\n }\n\n resetCompleteScreen(): void {\n this.snapToEnabled = true;\n this.stage.destroyChildren();\n this.layer.destroyChildren();\n\n this.currentAssetsAnchors = [];\n this.currentAssets = [];\n this.stage = new Konva.Stage({\n container: 'canvasContainer',\n width: this.stageWidth,\n height: this.stageHeight\n });\n const gridLayer = this.createGridLayer();\n this.stage.add(gridLayer);\n\n this.layer = new Konva.Layer();\n this.shadowRectangle.hide();\n this.layer.add(this.shadowRectangle);\n // console.log(this.stage);\n this.stage.add(this.layer);\n //this.gActiveResolution = '1280x720';\n //this.changeCanvasResolution();\n\n this.color_picker_canvas.fromRGB(255, 255, 255);\n this.updateColor(this.color_picker_canvas, 'bkg_color');\n\n $('#image-slider-parent').hide();\n $('#video-slider-parent').hide();\n this.signName = '';\n this.isScreenSaved = false;\n this.show_attributes(null, null);\n this.isPlayListAcitve = false;\n this.myElement = [];\n }\n\n getUserFilesList(refreshAttributes = null): void {\n this.screenService.getCurrentUserFiles().subscribe((response) => {\n if (response.data !== '') {\n\n this.currentTemplates = { hdTemplate: [], fullHdTemplate: [], allTemplates: [], fullScreenWithImageTemplate: [], fullScreenWithVideoTemplate: [], menuTemplates: [] };\n this.currentImages = [];\n this.currentAudios = [];\n this.currentVideos = [];\n this.videoChannelAssets = [];\n this.videoAssets = [];\n this.templateMenu = [];\n // this.imageList = response.data.images;\n // this.currentImages = response.data.images;\n response.data.images.forEach(element => {\n // element.url = element.url.replace(/^http:\\/\\//i, 'https://');\n // element.url = element.url.replace(/^https:\\/\\//i, 'http://');\n // console.log(element.url);\n this.currentImages.push(element);\n });\n\n response.data.audios.forEach(element => {\n this.currentAudios.push(element);\n });\n // this.videoLlist = response.data.videos;\n response.data.videos.forEach(element => {\n element.isEztvItem = false;\n this.videoAssets.push(element);\n });\n this.currentVideos = this.videoAssets;\n this.ezTVLogin();\n this.currentXmls = response.data.xmls;\n this.currentScreens = response.data.screens;\n //alert(JSON.stringify(response.data.screens));\n\n response.data.templateMenus.forEach(element => {\n if (element.fileType.indexOf('TemplateMenu') > 0) {\n this.currentTemplates.menuTemplates.push(element);\n }\n\n })\n\n response.data.templates.forEach(element => {\n if (element.relativePath.indexOf('HD Template') > 0) {\n this.currentTemplates.hdTemplate.push(element);\n } else if (element.relativePath.indexOf('Full HD Template') > 0) {\n this.currentTemplates.fullHdTemplate.push(element);\n } else if (element.relativePath.indexOf('Full Screen with Image') > 0) {\n this.currentTemplates.fullScreenWithImageTemplate.push(element);\n } else if (element.relativePath.indexOf('Full Screen with Video') > 0) {\n this.currentTemplates.fullScreenWithVideoTemplate.push(element);\n }\n else {\n this.currentTemplates.allTemplates.push(element);\n }\n\n });\n\n this.currentTemplates.menuTemplates = response.data.templateMenus;\n // console.log(this.currentTemplates);\n this.readScreenlistFileDetails();\n this.gContentAllFiles = this.imageList.concat(this.videoLlist, this.currentXmls);\n this.data.changeMessage(this.currentXmls);\n this.data.changeScreen(this.currentScreens);\n this.data.changeTemplate(this.currentTemplates);\n\n if (refreshAttributes === 'video') {\n const active_group = this.stage.findOne('#' + this.activeAssetId + '-Group'); // get the Konva asset object\n // this.show_attributes(refreshAttributes, this.activeAssetId);\n // this.newAssetClicked(active_group, this.activeAssetId);\n //active_group.fire('click');\n // this.BindAudioSources(document.getElementById(this.activeAssetId + '_audio_def_source'));\n // this.BindVideoSources(document.getElementById(this.activeAssetId + '_def_source'));\n }\n else if (refreshAttributes) {\n //this.show_attributes(refreshAttributes, this.activeAssetId);\n }\n\n setTimeout(function () {\n $('[data-toggle=\"tooltip\"]').tooltip({\n trigger: 'hover'\n });\n }, 1000);\n }\n }, (error) => {\n console.log(error);\n });\n }\n\n ngAfterContentInit(): void {\n this.getUserFilesList();\n this.getServerSettings();\n }\n\n /**\n * Once the user has entered the screenlist file name, create or update the xml file in the 'Contnet' directory\n */\n preview_screenlist_file(): any {\n //\n if (!this.isScreenSaved) {\n this.authService.showNotification('', 'Please save file first to preview', 'info');\n return false;\n }\n this.openWindowCustomClass(this.signPreviewModal);\n // this.openModel(this.signPreviewModal);\n if (1 === 1) {\n return false;\n }\n let userName = '';\n if (!this.isScreenSaved) {\n this.authService.showNotification('', 'Please save the screen first

Note: Saving the screen will
overwrite the existing screen', 'error');\n return false;\n }\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n let filesToUpload = {\n images: [],\n videos: [],\n xmls: [this.gActiveScreenlistFile],\n userName: userName,\n serverName: 'preview end point',\n };\n if (Object.keys(this.currentAssets).length > 0) {\n for (const key in this.currentAssets) {\n const value = this.currentAssets[key];\n if (value.Type === 'video' && this.publishVideos) {\n filesToUpload.videos.push(value.Source);\n } else if (value.Type === 'image') {\n filesToUpload.images.push(value.Source);\n }\n }\n this.spinnerService.show();\n this.screenService.previewScreenlistFile(filesToUpload).subscribe((response) => {\n this.spinnerService.hide();\n this.authService.showNotification(response.message, 'success');\n }, error => {\n this.spinnerService.hide();\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n } else {\n this.authService.showNotification('', 'You must add at least one asset to the screen', 'info');\n }\n }\n\n /**\n * Once the user has entered the screenlist file name, create or update the xml file in the 'Contnet' directory\n */\n ep_preview_screenlist_file(): any {\n if (!this.isScreenSaved) {\n this.authService.showNotification('', 'Please save file first to preview');\n return false;\n }\n\n\n let userName = '';\n if (!this.isScreenSaved) {\n this.authService.showNotification('', 'Please save the screen first

Note: Saving the screen will
overwrite the existing screen', 'error');\n return false;\n }\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n let filesToUpload = {\n images: [],\n videos: [],\n xmls: [this.gActiveScreenlistFile],\n userName: userName,\n serverName: 'preview end point',\n };\n if (Object.keys(this.currentAssets).length > 0) {\n for (const key in this.currentAssets) {\n const value = this.currentAssets[key];\n if (value.Type === 'video' && this.publishVideos) {\n filesToUpload.videos.push(value.Source);\n } else if (value.Type === 'image') {\n filesToUpload.images.push(value.Source);\n }\n }\n this.spinnerService.show();\n this.screenService.previewScreenlistFile(filesToUpload).subscribe((response) => {\n this.spinnerService.hide();\n this.authService.showNotification('', response.message, 'success');\n }, error => {\n this.spinnerService.hide();\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n } else {\n this.authService.showNotification('', 'You must add at least one asset to the screen', 'info');\n }\n }\n\n getRegisteredPlayersByUser(): any {\n const userName = this.username;\n this.registrationService.getTop10RegisteredPlayersByUser(userName).subscribe((response) => {\n this.registeredPlayers = response.data;\n });\n }\n getPlayerStatusObjectByUser(): any {\n const userName = this.username;\n this.registrationService.getPlayerStatusObjectByUser(userName).subscribe((response) => {\n this.playerStatusObject = response.data;\n\n this.playerStatusObject.activePlayers.forEach(element => {\n\n var dateUpdatedOnOld = localStorage.getItem('dateUpdatedOn');\n var registrationCode = localStorage.getItem('registrationCode');\n var oldTime = localStorage.getItem('oldMinutes');\n\n var diff = (new Date().getTime() - parseInt(oldTime)) / 1000;\n diff /= 60;\n // alert(diff);\n\n if (dateUpdatedOnOld != \"\" && registrationCode != \"\") {\n if (element.registrationCode == registrationCode) {\n if (dateUpdatedOnOld != element.dateUpdated) {\n element.groupName = 'dmbtv';\n }\n else {\n //As per client wait up to 2 min interval\n if (diff <= 2) {\n element.groupName = 'dmbtvHide';\n }\n else {\n element.groupName = 'dmbtv';\n }\n }\n\n }\n }\n\n if (element.status == 'Active' && element.isActionFileExist == true) {\n if (element.action == \"restart_app\") {\n element.status = 'Restarting Signage App...';\n }\n else if (element.action == \"create_screenshot\") {\n element.status = 'Creating Screenshot...';\n }\n }\n });\n this.playerStatusObject.inactivePlayers.forEach(element => {\n if (element.status == 'Unknown' && element.isActionFileExist == true) {\n if (element.action == \"restart_app\") {\n element.status = 'Restarting Signage App...';\n }\n else if (element.action == \"create_screenshot\") {\n element.status = 'Creating Screenshot...';\n }\n }\n });\n 0 // console.log(this.playerStatusObject);\n });\n }\n\n show_publish_modal(publishScreen = true): any {\n this.publishOnlyVideos = !publishScreen;\n if (this.isScreenSaved === false && publishScreen === true) {\n this.authService.showNotification('', 'Please save the screen first

Note: Saving the screen will
overwrite the existing screen', 'info');\n return false;\n }\n this.getRegisteredPlayersByUser();\n this.openModel(this.publishToPlayerModal, { size: 'xl' });\n setTimeout(function () {\n $('[data-toggle=\"tooltip\"]').tooltip({\n trigger: 'hover'\n });\n }, 1000);\n //OLD CODE COMMENTED ON 05/04/2021 SOUNAK\n //this.openModel(this.publishServerModal);\n //OLD CODE END\n }\n\n openViewSelectPlayersModal() {\n // this.getRegisteredPlayersByUser();\n\n // try{\n // this.currentRule.players.forEach(element => { \n // this.registeredPlayers.find(p=>p.playerName === element.name).isSelected = true;\n // });\n // }catch(error){}\n\n this.openModel(this.viewSelectPlayersModal, { size: 'xl' });\n setTimeout(function () {\n $('[data-toggle=\"tooltip\"]').tooltip({\n trigger: 'hover'\n });\n }, 1000);\n }\n\n openChangeResolutionModel(event) {\n this.selectedResolution = this.gActiveResolution;\n this.gActiveResolution = event.target.value;\n this.selectedModel = 'resolution';\n this.openModel(this.confirmResolutionChange);\n setTimeout(() => {\n $('#signResolution').val(this.selectedResolution);\n }, 100);\n }\n\n openPlayerRegistrationModal(): void {\n this.registrationCode = '';\n this.playerName = '';\n this.openModel(this.playerRegistrationModal);\n }\n\n openinvalidPlayerIdModal(): void {\n this.closeModal();\n this.openModel(this.invalidPlayerIdModal);\n }\n\n openEditPlayerModal(): void {\n this.registrationCode = '';\n this.playerName = '';\n\n const userName = this.username;\n this.registrationService.getTop10RegisteredPlayersByUser(userName).subscribe((response) => {\n this.registeredPlayers = response.data;\n\n this.openModel(this.editPlayerModal);\n\n var selected_player = document.getElementById('ddlSelectedPlayer');\n\n $(\"#\" + selected_player.id).empty();\n\n const heading = document.createElement('option');\n heading.value = '';\n heading.text = '-- Select Player --';\n selected_player.appendChild(heading);\n\n this.registeredPlayers.forEach(rp => {\n const option = document.createElement('option');\n option.value = rp.registrationCode;\n option.text = rp.playerName + ' (ID: ' + rp.registrationCode + ')';\n\n selected_player.appendChild(option);\n });\n $('.selectpicker').selectpicker();\n });\n }\n\n openEditScreenModal(): void {\n this.screenName = '';\n this.newScreenName = '';\n\n const userName = this.username;\n\n this.openModel(this.editScreenModal);\n\n var selected_screen = document.getElementById('ddlSelectedScreen');\n\n $(\"#\" + selected_screen.id).empty();\n\n const heading = document.createElement('option');\n heading.value = '';\n heading.text = '-- Select Screen --';\n selected_screen.appendChild(heading);\n\n this.currentScreens.forEach(cs => {\n const option = document.createElement('option');\n option.value = cs.name;\n option.text = cs.name;\n\n selected_screen.appendChild(option);\n });\n\n $('.selectpicker').selectpicker();\n }\n\n openPlayerStatusModal(): void {\n const userName = this.username;\n this.registrationService.getPlayerStatusObjectByUser(userName).subscribe((response) => {\n this.playerStatusObject = response.data;\n this.playerStatusObject.activePlayers.forEach(element => {\n\n if (element.status == 'Active' && element.isActionFileExist == true) {\n if (element.action == \"restart_app\") {\n element.status = 'Restarting Signage App...';\n }\n else if (element.action == \"create_screenshot\") {\n element.status = 'Creating Screenshot...';\n }\n }\n });\n this.playerStatusObject.inactivePlayers.forEach(element => {\n\n if (element.status == 'Unknown' && element.isActionFileExist == true) {\n if (element.action == \"restart_app\") {\n element.status = 'Restarting Signage App...';\n }\n else if (element.action == \"create_screenshot\") {\n element.status = 'Creating Screenshot...';\n }\n }\n });\n // console.log(this.playerStatusObject)\n this.openModel(this.playerStatusModal, { size: 'fullscreen_sm' }, 'player_status');\n\n // setTimeout(function () {\n // $('[data-toggle=\"tooltip\"]').tooltip({\n // trigger : 'hover'\n // });\n // }, 1000);\n\n ng.playerStatusIntervalID = setInterval(function () {\n //debugger;\n var currentDate = new Date();\n // console.log(currentDate);\n ng.getPlayerStatusObjectByUser();\n\n // $('[data-toggle=\"tooltip\"]').tooltip({\n // trigger : 'hover'\n // }); // data-toggle not wroking so used ngTooltip\n\n }, 10000); //set as 10 sec interval as per client\n\n });\n }\n\n openTimeOfdayModal(): void {\n const userName = this.username;\n var reqData = {\n userName: userName\n };\n this.spinnerService.show();\n this.screenService.readTimeOfDayFile(reqData).subscribe((response) => {\n if (response.status === 'error') {\n this.spinnerService.hide();\n this.authService.showNotification('', response.message, 'error');\n } else {\n this.currentTimeOfDay = response.data;\n this.currentRules = response.data.rules;\n this.tod_no_of_players = 0;\n this.openModel(this.timeOfDayModal, { size: 'xl' }, 'time_of_day');\n $(\"#divTodModalBody\").addClass('disabled');\n $(\".selectpicker\").selectpicker();\n setTimeout(function () {\n $(\".selectpicker\").selectpicker('refresh');\n $(\"#divTodModalBody\").removeClass('disabled');\n $(\"#divTimeOfDayLoad\").addClass('d-none');\n $(\"#divTimeOfDayStart\").removeClass('d-none');\n }, 2000);\n this.spinnerService.hide();\n }\n }, error => {\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n }\n\n ddlSelectedPlayer_change(): void {\n\n var selectedPlayerName = $(\"#ddlSelectedPlayer\").val() === '' ? '' : $.trim($(\"#ddlSelectedPlayer option:selected\").text().substr(0, $(\"#ddlSelectedPlayer option:selected\").text().indexOf('(ID') - 1));\n this.playerName = selectedPlayerName;\n }\n\n ddlSelectedScreen_change(): void {\n\n var selectedScreenName = $(\"#ddlSelectedScreen\").val();\n this.newScreenName = selectedScreenName;\n }\n\n publish_screenlist_file(): any {\n $(\"#lbl_publish_errmsg\").hide();\n let userName = '';\n\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n\n const filesToUpload = {\n images: [],\n videos: [],\n xmls: this.publishOnlyVideos ? [] : [this.gActiveScreenlistFile],\n userName: userName,\n others: [],\n players: []\n };\n\n if (this.publishLineup) {\n filesToUpload.xmls = [];\n filesToUpload.others = ['Channel.Lineup.db'];\n } else {\n if (this.isScreenSaved === false && this.publishOnlyVideos === false) {\n this.authService.showNotification('', 'Please save the screen first

Note: Saving the screen will
overwrite the existing screen', 'error');\n return false;\n }\n\n if (Object.keys(this.currentAssets).length > 0) {\n if (this.publishOnlyVideos === false) {\n // tslint:disable-next-line:forin\n for (const key in this.currentAssets) {\n const value = this.currentAssets[key];\n if (value.Type === 'video' && this.publishVideos) {\n if (value.playlist) {\n filesToUpload.others.push(value.file_name);\n // tslint:disable-next-line:forin\n for (const plKey in value.playlist_items) {\n filesToUpload.videos.push(value.playlist_items[plKey].name);\n // filesToUpload.images.push(value.playlist_items[plKey].name);\n }\n } else {\n filesToUpload.videos.push(value.Source);\n }\n } else if (value.Type === 'image') {\n if (value.playlist) {\n filesToUpload.others.push(value.file_name);\n // tslint:disable-next-line:forin\n for (const plKey in value.playlist_items) {\n filesToUpload.images.push(value.playlist_items[plKey].name);\n // filesToUpload.images.push(value.playlist_items[plKey].name);\n }\n } else {\n filesToUpload.images.push(value.Source);\n }\n }\n }\n } else {\n this.currentVideos.forEach(element => {\n if (element.isEztvItem) {\n filesToUpload.videos.push(element.url);\n } else {\n filesToUpload.videos.push(element.name);\n }\n });\n }\n\n filesToUpload.players = this.registeredPlayers;\n\n } else {\n this.authService.showNotification('', 'You must add at least one asset to the screen', 'error');\n return;\n }\n }\n\n this.spinnerService.show();\n this.screenService.publishScreenlistFile(filesToUpload).subscribe((response) => {\n if (response.status == 'success') {\n this.authService.showNotification('Publish Successful', 'success', 'success');\n this.closeModal();\n }\n else if (response.status == 'error') {\n $(\"#lbl_publish_errmsg\").text(response.message);\n $(\"#lbl_publish_errmsg\").show();\n }\n this.spinnerService.hide();\n this.publishLineup = false;\n }, error => {\n //alert(error.status);\n //console.log(error.status);\n this.spinnerService.hide();\n this.publishLineup = false;\n this.authService.showNotification('Error', 'Some error occured please try again later', 'error');\n });\n\n //OLD CODE COMMENTED ON 05/05/2021 SOUNAK\n\n // let userName = '';\n // let endpointLocationName = '';\n\n // if (typeof this.publichContentServerObj.endpointLocationName === 'undefined'\n // || this.publichContentServerObj.endpointLocationName === '') {\n // this.authService.showNotification('Please select publish profile.', 'error');\n // return false;\n // } else {\n // endpointLocationName = this.publichContentServerObj.endpointLocationName.toLowerCase();\n // }\n\n // if (typeof this.authService.currentUser.username !== 'undefined') {\n // userName = this.authService.currentUser.username;\n // }\n\n // const filesToUpload = {\n // images: [],\n // videos: [],\n // xmls: this.publishOnlyVideos ? [] : [this.gActiveScreenlistFile],\n // userName: userName,\n // serverName: 'content server',\n // others: [],\n // EndpointLocationName: endpointLocationName,\n // endpointLocationName: endpointLocationName,\n // };\n\n // if (this.publishLineup) {\n // filesToUpload.xmls = [];\n // filesToUpload.others = ['Channel.Lineup.db'];\n // } else {\n // if (this.isScreenSaved === false && this.publishOnlyVideos === false) {\n // this.authService.showNotification('Please save the screen first', 'error');\n // return false;\n // }\n\n // if (Object.keys(this.currentAssets).length > 0) {\n // if (this.publishOnlyVideos === false) {\n // // tslint:disable-next-line:forin\n // for (const key in this.currentAssets) {\n // const value = this.currentAssets[key];\n // if (value.Type === 'video' && this.publishVideos) {\n // if (value.playlist) {\n // filesToUpload.others.push(value.file_name);\n // // tslint:disable-next-line:forin\n // for (const plKey in value.playlist_items) {\n // filesToUpload.videos.push(value.playlist_items[plKey].name);\n // // filesToUpload.images.push(value.playlist_items[plKey].name);\n // }\n // } else {\n // filesToUpload.videos.push(value.Source);\n // }\n // } else if (value.Type === 'image') {\n // if (value.playlist) {\n // filesToUpload.others.push(value.file_name);\n // // tslint:disable-next-line:forin\n // for (const plKey in value.playlist_items) {\n // filesToUpload.images.push(value.playlist_items[plKey].name);\n // // filesToUpload.images.push(value.playlist_items[plKey].name);\n // }\n // } else {\n // filesToUpload.images.push(value.Source);\n // }\n // }\n // }\n // } else {\n // this.currentVideos.forEach(element => {\n // if (element.isEztvItem) {\n // filesToUpload.videos.push(element.url);\n // } else {\n // filesToUpload.videos.push(element.name);\n // }\n // });\n // }\n // } else {\n // this.authService.showNotification('You must add at least one asset to the screen.', 'error');\n // return;\n // }\n // }\n\n // this.spinnerService.show();\n // this.screenService.previewScreenlistFile(filesToUpload).subscribe((response) => {\n // if (response.status === 'error') {\n // // this.authService.showNotification('', response.message, 'error');\n // this.authService.showNotification('', 'Error: Publish failed', 'error');\n // } else {\n // // this.authService.showNotification(response.message, 'success');\n // this.authService.showNotification('Publish Successful', 'success', 'success');\n // }\n // this.spinnerService.hide();\n // this.closeModal();\n // this.publishLineup = false;\n // }, error => {\n // this.spinnerService.hide();\n // this.publishLineup = false;\n // this.authService.showNotification('Some error occured please try again later.', 'error');\n // });\n //OLD CODE END\n }\n\n select_tod_players() {\n this.closeModal();\n this.tod_no_of_players = this.registeredPlayers.filter(p => p.isSelected === true).length;\n }\n\n load_screenlist(xml_file): void {\n // console.log(xml_file);\n this.resetCompleteScreen();\n let userName = '';\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n let reqData = {};\n if (xml_file.templatePath !== false) {\n reqData = {\n userName: userName,\n fileName: xml_file.fileName,\n templatesRelativePath: xml_file.templatePath\n };\n this._templatePath = xml_file.templatePath;\n } else {\n reqData = {\n userName: userName,\n fileName: xml_file.fileName,\n subDirectory: xml_file.subDirectory,\n screenName: xml_file.screenName\n };\n this._templatePath = false;\n }\n\n this.spinnerService.show();\n this.screenService.readScreenlistFile(reqData).subscribe((response) => {\n if (response.status === 'error') {\n //this.isScreenSaved = false;\n this.spinnerService.hide();\n this.authService.showNotification('', response.message, 'error');\n } else {\n //this.gActiveScreenlistFile = xml_file;\n this.gActiveScreenlistFile = xml_file.fileName;\n const fileData = response.data;\n // console.log('response');\n const oScreenlist = fileData['screenlist'];\n const oScreen = fileData['screenlist']['screen'];\n const aAssets = fileData['screenlist']['screen']['asset'];\n this.gActiveResolution = response.data.screenlist.resolution;\n this.changeCanvasResolution();\n // if there is only one asset on the screen that the type will be an object\n const type = (aAssets.constructor === Object ? 'object' : 'array');\n // console.log(aAssets)\n for (let y = 0; y < (type === 'object' ? 1 : aAssets.length); y++) {\n // loop over each asset/object on the screen to add to the stage\n\n // get attributes defined in the xml file\n const oAsset = (type === 'object' ? aAssets : aAssets[y]);\n const asset_type = oAsset.type;\n const asset_name = oAsset.name;\n const asset_x = oAsset.x;\n const asset_y = oAsset.y;\n const asset_width = oAsset.width;\n const asset_height = oAsset.height;\n const asset_fit = oAsset.fit;\n const asset_source = oAsset.source;\n oAsset.opacity = oAsset.background_color ? oAsset.background_color.split('.')[0] : '255';\n oAsset.background_color = oAsset.background_color ? \"255.\" + oAsset.background_color.split('.').splice(1, 3).join('.') : '255.255.255.255';\n\n // use the same funtion used to create a screenlist file from scratch ...\n let assetUrl = '';\n if (asset_type === 'image') {\n\n if (xml_file.templatePath !== false) {\n // console.log(xml_file.templatePath);\n assetUrl = this.mediaUrl + xml_file.templatePath + '/images/' + asset_source;\n } else if (asset_source != null && asset_source.includes('http')) {\n var url = window.location + \"/assets/img/layout/asset_icons/600x600-app-icon_IMAGE.png\";\n assetUrl = url;\n } else if (asset_source != null && asset_source != \"\") {\n var dotIndex = asset_source.lastIndexOf('.');\n var ext = asset_source.substring(dotIndex);\n if (ext == '.jpg' || ext == '.png' || ext == '.jpeg' || ext == '.gif' || ext == '.bmp' || ext == '.svg' || ext == '.ico') {\n if (asset_source.includes('assets/content/')) {\n assetUrl = this.mediaUrl + this.authService.currentUser.username + '/images/' + asset_source;\n }\n else {\n var imageExist = false;\n this.currentImages.forEach(image => {\n if (image.name === asset_source) {\n const user = this.authService.currentUser;\n var url = window.location + \"/assets/content/\" + user.userName + \"/images/\" + asset_source;\n assetUrl = url;\n imageExist = true;\n }\n\n });\n if (!imageExist) {\n //if image not exist then load default images\n var url = window.location + \"/assets/img/layout/asset_icons/600x600-app-icon_IMAGE.png\";\n assetUrl = url;\n }\n }\n }\n else {\n //if type error then load default images\n var url = window.location + \"/assets/img/layout/asset_icons/600x600-app-icon_IMAGE.png\";\n assetUrl = url;\n }\n }\n } else if (asset_type === 'video') {\n // assetUrl = asset_source; // 'assets/img/video_skewed.png';\n assetUrl = this.mediaUrl + this.authService.currentUser.username + '/videos/' + asset_source;\n } else if (asset_type === 'text') {\n assetUrl = asset_source;\n } else if (asset_type === 'browser' || asset_type === 'text_crawl' || asset_type === 'text_multiline' || asset_type === 'rss' || asset_type === 'youtube') {\n assetUrl = asset_source;\n }\n // console.log(assetUrl);\n this.add_new_asset(asset_type,\n assetUrl,\n asset_width,\n asset_height,\n asset_x,\n asset_y,\n true,\n oAsset\n );\n }\n // Set the background color for the screen\n // console.log(oScreen);\n\n if (fileData.screenName === '') {\n this.signName = oScreen.name;\n } else {\n this.signName = fileData.screenName;\n }\n\n const screen_bkg_color = oScreen.background_color;\n const color = screen_bkg_color.split('.');\n this.color_picker_canvas.fromRGB(color[1], color[2], color[3]); // set the default stage color that is defined in the screenlist\n const sel_color = this.color_picker_canvas.toHEXString();\n const stage = document.getElementById('canvasContainer');\n stage.style.backgroundColor = sel_color;\n this.layer.draw();\n\n // all proceess done hide the spinner\n this.spinnerService.hide();\n\n this.save_screenlist(false);\n this.isScreenSaved = true;\n\n if (xml_file.templatePath === false && xml_file.subDirectory === false) {\n // this.save_screenlist(false);\n // this.isScreenSaved = true;\n }\n\n // Set the Last element as active\n const lastEle = this.myElement[this.myElement.length - 1];\n ng.newAssetClicked(lastEle, lastEle.getAttr('_assetId'));\n }\n }, error => {\n this.isScreenSaved = false;\n this.spinnerService.hide();\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n }\n\n getServerSettings(): any {\n const userID = this.authService.currentUser.userID;\n this.screenService.getServerSettings(userID, '').subscribe((response) => {\n if (response.data) {\n for (let i = 0; i < response.data.length; i++) {\n if (response.data[i]['serverName'] === 'preview end point') {\n this.previewEndPoint.Connection = response.data[i]['connection'];\n this.previewEndPoint.IPAddress = response.data[i]['iPAddress'];\n this.previewEndPoint.Port = response.data[i]['port'];\n } else if (response.data[i]['serverName'] === 'content server') {\n this.contentServer.Connection = response.data[i]['connection'];\n this.contentServer.IPAddress = response.data[i]['iPAddress'];\n this.contentServer.Port = response.data[i]['port'];\n this.contentServer.UserName = response.data[i]['userName'];\n this.contentServer.Password = response.data[i]['password'];\n this.contentServer.ContentDirectory = response.data[i]['contentDirectory'];\n this.contentServer.TransferDirectory = response.data[i]['transferDirectory'];\n this.contentServer.FileMasks = response.data[i]['fileMasks'];\n } else if (response.data[i]['serverName'] === 'ez tv server') {\n this.ezTvServer.IPAddress = response.data[i]['iPAddress'];\n // this.ezTvServer.Protocol = response.data[i]['protocol'];\n this.ezTvServer.UserName = response.data[i]['userName'];\n this.ezTvServer.Password = response.data[i]['password'];\n\n // this.ezTVLogin(this.ezTvServer.IPAddress, this.ezTvServer.UserName, this.ezTvServer.Password);\n }\n }\n }\n }, error => {\n console.log(error);\n });\n }\n\n savePreviewPoint(): any {\n this.previewEndPoint.UserID = this.authService.currentUser.userID;\n this.previewEndPoint.userName = this.authService.currentUser.userName;\n this.isSavingpreviewEndPoint = true;\n this.screenService.saveServerSettings(this.previewEndPoint).subscribe((response) => {\n this.spinnerService.hide();\n this.isSavingpreviewEndPoint = false;\n this.closeModal();\n this.authService.showNotification('', 'Saved Successfully', 'success');\n }, error => {\n this.spinnerService.hide();\n this.isSavingpreviewEndPoint = false;\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n }\n\n saveContentServer(myForm: NgForm): any {\n if (myForm.valid) {\n // console.log(this.contentServerUserObj);\n this.contentServer.UserID = this.contentServerUserObj.userID;\n // this.contentServer.userID = this.contentServerUserObj.userID;\n this.contentServer.userName = this.contentServerUserObj.userName;\n this.contentServer.EndpointLocationName = this.contentServer.Name.toLowerCase();\n // if(1==1){console.log(this.contentServer); return false;}\n this.isSavingContentServer = true;\n console.clear();\n // console.log(this.contentServer);\n const reqData = {\n UserID: this.contentServer.UserID,\n Connection: this.contentServer.Connection,\n IPAddress: this.contentServer.IPAddress,\n Port: this.contentServer.Port,\n UserName: this.contentServer.UserName,\n Password: this.contentServer.Password,\n ContentDirectory: this.contentServer.ContentDirectory,\n TransferDirectory: this.contentServer.TransferDirectory,\n ServerName: this.contentServer.ServerName,\n EndpointLocationName: this.contentServer.EndpointLocationName,\n Name: this.contentServer.Name.toLowerCase(),\n // iD: this.concreate_screenlist_arraytentServer.iD\n };\n // console.log(this.contentServer.iD);\n // console.log(reqData); // if(1==1){return false;}\n this.screenService.saveServerSettings(reqData).subscribe((response) => {\n this.spinnerService.hide();\n this.isSavingContentServer = false;\n this.closeModal();\n // this.authService.showNotification(response.message, 'success', 'success');\n this.authService.showNotification('', 'Saved Successfully', 'success');\n this.isAddNewUserServer = false;\n this.closeModal();\n }, error => {\n this.spinnerService.hide();\n this.isSavingContentServer = false;\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n } else {\n this.authService.showNotification('', 'All field are required', 'error');\n }\n }\n\n saveEzTvServer(): any {\n this.ezTvServer.UserID = this.authService.currentUser.userID;\n this.isSavingEzTvServer = true;\n this.screenService.saveServerSettings(this.ezTvServer).subscribe((response) => {\n this.spinnerService.hide();\n this.isSavingEzTvServer = false;\n this.closeModal();\n // this.authService.showNotification(response.message, 'success', 'success');\n this.authService.showNotification('', 'Saved Successfully', 'success');\n }, error => {\n this.spinnerService.hide();\n this.isSavingEzTvServer = false;\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n }\n\n changeCanvasResolution(): void {\n this.selectedResolution = this.gActiveResolution;\n this.selectedModel = null;\n this.closeModal();\n $('#signResolution').val(this.gActiveResolution);\n if (this.gActiveResolution === '1920x1080') {\n this.stageHeight = 1080;\n this.stageWidth = 1920;\n this.stage.setHeight(1080);\n this.stage.setWidth(1920);\n document.getElementById('full-hd').classList.add('full-hd');\n document.getElementById('full-hd').classList.remove('hd');\n this.isPortraitView = false;\n } else if (this.gActiveResolution === '1080x1920') {\n this.stageHeight = 1920;\n this.stageWidth = 1080;\n this.stage.setHeight(1920);\n this.stage.setWidth(1080);\n document.getElementById('full-hd').classList.add('full-hd');\n document.getElementById('full-hd').classList.remove('hd');\n this.isPortraitView = true;\n } else if (this.gActiveResolution === '1280x720') {\n this.stageHeight = 720;\n this.stageWidth = 1280;\n this.stage.setHeight(720);\n this.stage.setWidth(1280);\n document.getElementById('full-hd').classList.add('hd');\n document.getElementById('full-hd').classList.remove('full-hd');\n this.isPortraitView = false;\n } else if (this.gActiveResolution === '745x300') {\n this.stageHeight = 300;\n this.stageWidth = 745;\n this.stage.setHeight(300);\n this.stage.setWidth(745);\n document.getElementById('full-hd').classList.add('hd');\n document.getElementById('full-hd').classList.remove('full-hd');\n this.isPortraitView = false;\n }\n\n this.gridLayer.destroy();\n const gridLayer = this.createGridLayer();\n this.stage.add(gridLayer);\n\n if (this.snapToEnabled) {\n this.gridLayer.show();\n this.gridLayer.moveToBottom();\n } else {\n this.gridLayer.hide();\n }\n\n this.changeZoomLevel();\n }\n\n getTheIframeUrl(): any {\n // {{ previewUrl }}?path={{ filePath }}&file=xmls/{{ gActiveScreenlistFile }}\n // const url = this.previewUrl + '?path=' + this.filePath + '&file=xmls/' + this.gActiveScreenlistFile;\n const url = this.previewUrl + '?path=' + this.filePath + '/&file=' + this.gActiveScreenlistFile;\n // const url = 'http://digiprima.com/';\n return url;\n // return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n openWindowCustomClass(content) {\n this.modalService.open(content, { windowClass: 'mod-preview', size: 'lg' });\n // console.log(this.gActiveResolution);\n if (this.gActiveResolution == '1280x720') {\n $('.mod-inner-preview').parent('.modal-content').css({\n width: this.stageWidth + 40,\n position: 'absolute',\n 'left': '72%',\n 'top': '25.5em',\n 'transform': 'translate(-50%,-50%)'\n });\n } else {\n $('.mod-inner-preview').parent('.modal-content').css({\n width: this.stageWidth + 40,\n position: 'absolute',\n 'left': '65%',\n 'top': '35.5em',\n 'transform': 'translate(-50%,-50%)'\n });\n }\n }\n\n removePlaylistItem(filename, id) {\n // $('*[data-customerID=\"22\"]');\n // console.log(this.playListItems);\n // $('#' + id ).remove();\n var index = this.currentAssets[this.activeAssetId].playlist_items.map(function (o) { return o.name; }).indexOf(filename);\n $('[data-index=\"' + id + '\"]').remove();\n this.playListItems.splice(index, 1);\n this.currentAssets[this.activeAssetId].playlist_items.splice(index, 1);\n\n if (this.currentAssets[this.activeAssetId].playlist_items.count() === 0) {\n $(\"#\" + this.activeAssetId + '_playlist').click();\n $(\"#\" + this.activeAssetId + '_item_duration').val('10');\n }\n\n // console.log(this.playListItems);\n }\n\n togglePlaylistAttributes(item, assetType) {\n this.isPlayListAcitve = item.checked;\n if (item.checked) {\n const file_name = this.currentAssets[this.activeAssetId].Name + '.pl';\n $('.attr_hidden').show();\n this.playListItems = [];\n this.currentAssets[this.activeAssetId].playlist = true;\n this.currentAssets[this.activeAssetId].item_duration = '10';\n this.currentAssets[this.activeAssetId].transtion = '';\n this.currentAssets[this.activeAssetId].image_wall = false;\n this.currentAssets[this.activeAssetId].playlist_items = [];\n this.currentAssets[this.activeAssetId].file_name = file_name;\n // (document.getElementById(this.activeAssetId + '_file_name')).value = file_name;\n } else {\n $('.attr_hidden').hide();\n this.playListItems = [];\n $('#sortable').html('');\n this.currentAssets[this.activeAssetId].playlist = false;\n delete this.currentAssets[this.activeAssetId].item_duration;\n delete this.currentAssets[this.activeAssetId].transtion;\n delete this.currentAssets[this.activeAssetId].image_wall;\n delete this.currentAssets[this.activeAssetId].playlist_items;\n delete this.currentAssets[this.activeAssetId].file_name;\n }\n }\n\n playListUpdate() {\n if (this.currentAssets[this.activeAssetId].Type === 'image') {\n const idsInOrder = $(\"#sortable\").sortable('toArray');\n // console.log(idsInOrder[0]);\n const id = idsInOrder[0];\n const asset_src = $('#' + id).data('asset_src');\n const type = $('#' + id).data('type');\n const assetUrl = $('#' + id).data('asseturl');\n\n this.updateImageAttributes(asset_src, type, assetUrl);\n // console.log(this.playListItems[idsInOrder[0]]);\n\n const temp = [];\n idsInOrder.forEach(item => {\n temp.push(this.playListItems[item]);\n });\n // this.playListItems = temp;\n this.currentAssets[this.activeAssetId].playlist_items = temp;\n }\n }\n\n addItemToPlayList(asset_src, type, assetUrl?: any, assetName?: String) {\n if (type === 'image') {\n const id = this.ramdomid();\n const fileName = assetName ? assetName : asset_src.replace(/^.*[\\\\\\/]/, '');\n const itemIndex = '' + this.playListItems.length; // - 1;\n this.playListItems[itemIndex] = { name: fileName, asset_src: asset_src, type: type, assetUrl: assetUrl };\n this.createPlayListItem(itemIndex, asset_src, type, assetUrl);\n this.playListUpdate();\n }\n }\n\n createPlayListItem(itemIndex, asset_src, type, assetUrl) {\n if (type === 'image') {\n // console.log(asset_src, assetUrl)\n asset_src = (asset_src === null) ? '' : asset_src;\n const id = this.ramdomid();\n const fileName = asset_src.replace(/^.*[\\\\\\/]/, '');\n const liItem = document.createElement('div');\n // assetUrl = assetUrl.replace(/^https:\\/\\//i, 'http://');\n liItem.setAttribute('class', 'play-list-item row');\n liItem.setAttribute('style', 'height:50px');\n liItem.setAttribute('data-index', id);\n liItem.setAttribute('data-asset_src', asset_src);\n liItem.setAttribute('data-type', type);\n liItem.setAttribute('data-asseturl', assetUrl);\n liItem.setAttribute('id', itemIndex);\n\n const liChild1 = document.createElement('div');\n liChild1.setAttribute('class', 'col-lg-9 text-left playlist_item_text');\n liChild1.setAttribute('style', 'padding-left:0');\n\n const liChild1span = document.createElement('span');\n liChild1span.setAttribute('class', 'playlist_item_text');\n\n var itemText = fileName.length > 27 ? fileName.substr(0, 24) + '...' : fileName;\n\n liChild1span.innerText = itemText;\n liChild1.appendChild(liChild1span);\n liItem.appendChild(liChild1);\n\n const liChild2 = document.createElement('div');\n liChild2.setAttribute('class', 'col-lg-1 text-right');\n\n const liChild3 = document.createElement('a');\n liChild3.setAttribute('class', 'text-danger play-item-rm-btn');\n liChild3.innerHTML = '';\n\n liChild3.addEventListener('click', function () {\n // console.log(itemIndex, id)\n ng.removePlaylistItem(fileName, id);\n });\n\n liChild2.appendChild(liChild3);\n liItem.appendChild(liChild2);\n document.getElementById('sortable').appendChild(liItem);\n }\n }\n\n ezTVLogin() {\n // let data = {'username': UserName, 'password': Password};\n const userName = this.authService.currentUser.userName;\n // console.log(userName);\n this.screenService.getVideoChannelList(userName).subscribe((response) => {\n // console.log(response);\n this.videoChannelAssets = [];\n response.data.channels.forEach(element => {\n element.isEztvItem = true;\n this.videoChannelAssets.push(element);\n });\n this.currentVideos = this.currentVideos.concat(this.videoChannelAssets);\n this.rssValueOptions = [\n { \"title\": \"- Select -\", \"value\": \"\" }\n ];\n // response.data.rss.forEach(element => {\n // this.rssValueOptions.push({ 'title': element.name, 'value': element.url });\n // });\n\n }, error => {\n console.log(error);\n });\n }\n\n uploadImageAsset() {\n // console.log('Upload Image');\n this.openModel(this.uploadImageModal, { size: 'lg' });\n }\n\n uploadVideoAsset() {\n // console.log('Upload Video');\n this.openModel(this.uploadVideoModal, { size: 'lg' });\n }\n\n onImageUploadError(e) {\n // console.log(e);\n // this.authService.showNotification('', 'The maximum image file upload
resolution is 1920x1080', 'error');\n // this.authService.showNotification('', 'Some images did not get uploaded. Error occurred', 'error');\n // this.closeModal();\n }\n\n onVideoUploadError(e) {\n // console.log(e);\n // this.authService.showNotification('', 'The maximum video file upload
size is 24MB', 'error');\n this.authService.showNotification('', 'Some files did not get uploaded. Error occurred', 'error');\n this.closeModal();\n }\n\n onUploadSuccess(e) {\n //console.log(e);\n this.getUserFilesList('image');\n //this.authService.showNotification('', 'Images uploaded successfully', 'success');\n $('.selectpicker').selectpicker('refresh');\n window.setTimeout(function () {\n const active_group = ng.stage.findOne('#' + ng.activeAssetId + '-Group'); // get the Konva asset object\n active_group.fire('click');\n ng.closeModal();\n }, 2000);\n }\n\n onVideoUploadSuccess(e) {\n const totalCurrentVideos = this.currentVideos.length;\n //this.authService.showNotification('', 'Files uploaded successfully', 'success');\n this.getUserFilesList('video');\n $('.selectpicker').selectpicker('refresh');\n // this.timer = setInterval(() => {\n // this.getUserFilesList('video');\n // this.BindVideoSources(document.getElementById(this.activeAssetId + '_def_source'));\n // if (totalCurrentVideos !== this.currentVideos.length) {\n // clearInterval(this.timer);\n // }\n // }, 2000);\n window.setTimeout(function () {\n const active_group = ng.stage.findOne('#' + ng.activeAssetId + '-Group'); // get the Konva asset object\n active_group.fire('click');\n ng.closeModal();\n }, 2000);\n }\n\n /// create grid layer\n createGridLayer() {\n this.gridLayer = new Konva.Layer();\n const padding = this.blockSnapSize;\n let gridHeight = this.stageHeight;\n let gridWidth = this.stageWidth;\n // console.log(this.gActiveResolution);\n\n for (let i = 0; i < gridWidth / padding; i++) {\n this.gridLayer.add(new Konva.Line({\n points: [Math.round(i * padding) + 0.5, 0, Math.round(i * padding) + 0.5, gridHeight],\n stroke: '#ddd',\n strokeWidth: 1,\n }));\n }\n\n this.gridLayer.add(new Konva.Line({ points: [0, 0, 10, 10] }));\n for (let j = 0; j < gridHeight / padding; j++) {\n this.gridLayer.add(new Konva.Line({\n points: [0, Math.round(j * padding), gridWidth, Math.round(j * padding)],\n stroke: '#ddd',\n strokeWidth: 0.5,\n }));\n }\n return this.gridLayer;\n }\n\n changeSnapTo() {\n this.snapToEnabled = !this.snapToEnabled;\n if (this.snapToEnabled) {\n this.gridLayer.show();\n this.gridLayer.moveToBottom();\n //console.log(this.gridLayer);\n // console.log('show');\n } else {\n this.gridLayer.hide();\n // console.log('hide');\n }\n }\n\n sendingFile(data, filetype, username) {\n const formData = data[2];\n // alert(data[0].width);\n // console.log(filetype, username, formData);\n formData.append('file', data[0]);\n formData.append('filetype', filetype);\n formData.append('username', username);\n formData.append('fileWidth', data[0].width);\n formData.append('fileHeight', data[0].height);\n }\n\n saveUser() {\n this.isSavingUser = true;\n // console.log(this.userObj)\n if (this.userObj.UserName == null || this.userObj.UserName === '') {\n this.authService.showNotification('', 'Please enter username', 'error');\n this.isSavingUser = false;\n return false;\n }\n if (this.userObj.Password == null || this.userObj.Password == '') {\n this.authService.showNotification('', 'Please enter password', 'error');\n this.isSavingUser = false;\n return false;\n }\n if (this.userObj.UserRole == null || this.userObj.UserRole == '') {\n this.authService.showNotification('', 'Please select user role', 'error');\n this.isSavingUser = false;\n return false;\n }\n let tempUser = this.userObj;\n tempUser.FirstName = this.userObj.UserName;\n tempUser.LastName = this.userObj.UserName;\n tempUser.EmailID = this.userObj.UserName + '@signbuider.com';\n tempUser.HomeDirectory = this.userObj.HomeDirectory;\n\n this.userService.saveUser(tempUser).subscribe((response) => {\n // console.log(response);\n if (response.status == 'error') {\n this.authService.showNotification('', response.message, 'error');\n } else {\n this.authService.showNotification('', response.message, 'success');\n this.resetUserObj();\n this.getUserList();\n this.closeModal();\n }\n this.isSavingUser = false;\n }, error => {\n console.log(error);\n this.isSavingUser = false;\n });\n // console.log('saveUser');\n }\n\n getUserRoleList() {\n this.userService.getUserRoleList().subscribe((response) => {\n if (response.status == 'success') {\n for (let i = 0; i < response.data.length; i++) {\n this.userRoles.push(response.data[i]);\n }\n // console.log('listed type user',this.userRoles);\n }\n }, error => {\n console.log(error);\n });\n }\n\n getUserList() {\n this.userService.getUserList().subscribe((response) => {\n if (response.status == 'success') {\n this.userList = response.data;\n }\n }, error => {\n console.log(error);\n });\n }\n //deleteAssetFromListUser\n onChangeUser(obj) {\n // console.log(obj);\n this.userObj.UserName = obj.userName;\n this.userObj.FirstName = obj.firstName;\n this.userObj.LastName = obj.lastName;\n this.userObj.UserId = obj.userID;\n this.userObj.EmailID = obj.emailID;\n this.userObj.UserRole = obj.userRole;\n this.userObj.HomeDirectory = obj.homeDirectory;\n }\n\n resetUserObj() {\n this.userObj = { UserName: null, Password: null, UserRole: '', FirstName: null, LastName: null, EmailID: '', UserId: null, HomeDirectory: null };\n this.isAddNewUser = false;\n // this.userList = [];\n this.editUserObj = {};\n }\n\n addNewUser() {\n // console.log('add new user');\n this.resetUserObj();\n this.isAddNewUser = true;\n }\n\n editExistingUser() {\n // console.log('edit existing user');\n this.resetUserObj();\n this.isAddNewUser = false;\n }\n\n cancleAddEditUser() {\n this.resetUserObj();\n this.closeModal();\n }\n cancleAddEditContentServer() {\n this.resetContentServerObj();\n this.closeModal();\n }\n\n onChangeServerUser(obj) {\n // console.log(obj)\n this.contentServerUserObj = obj;\n this.getUserServerList(obj.userID);\n }\n\n deleteUser(user) {\n // console.log(this.authService.currentUser.userID);\n // console.log(user.UserId);\n this.isDeletingUser = true;\n this.userService.deleteUser(this.authService.currentUser.userID, user.UserId).subscribe((response) => {\n // console.log(response);\n if (response.status == 'error') {\n this.authService.showNotification('', response.message, 'error');\n } else {\n this.authService.showNotification('', response.message, 'success');\n this.resetUserObj();\n this.getUserList();\n this.closeModal();\n }\n this.isDeletingUser = false;\n }, error => {\n console.log(error);\n this.isDeletingUser = false;\n });\n }\n\n getUserServerList(userId) {\n this.screenService.getUserServerList(userId).subscribe((response) => {\n // console.log(response);\n if (response.status == 'success') {\n const serverList = (typeof response.data == 'string') ? [] : response.data;\n this.userServersList = serverList;\n }\n }, error => {\n console.log(error);\n });\n\n }\n\n addNewContentServer() {\n // console.log('add new server');\n this.contentServerUserObj = { userID: '', userName: '' };\n this.resetContentServerObj();\n this.isAddNewUserServer = true;\n }\n\n editNewContentServer() {\n // console.log('edit new server');\n this.contentServerUserObj = { userID: '', userName: '' };\n this.resetContentServerObj();\n this.isAddNewUserServer = false;\n }\n\n resetContentServerObj() {\n this.contentServer = {\n Name: '',\n UserID: null,\n userID: null,\n userName: null,\n Connection: 'FTP',\n IPAddress: '127.0.0.1',\n Port: 21,\n UserName: '',\n Password: '',\n ContentDirectory: '',\n TransferDirectory: '',\n FileMasks: '',\n ServerName: 'content server',\n EndpointLocationName: null,\n iD: null\n };\n this.isAddNewUserServer = false;\n this.contentServerUserObj = { userID: null, userName: null };\n this.contentServerObj = {};\n }\n\n onChangeUserServer(obj) {\n // console.log(obj)\n this.contentServer = obj;\n\n this.contentServer = {\n Name: obj.endpointLocationName,\n UserID: obj.userID,\n userID: obj.userID,\n userName: obj.userName,\n Connection: obj.connection,\n IPAddress: obj.iPAddress,\n Port: obj.port,\n UserName: obj.userName,\n Password: obj.password,\n ContentDirectory: obj.contentDirectory,\n TransferDirectory: obj.transferDirectory,\n FileMasks: obj.fileMasks,\n ServerName: 'content server',\n EndpointLocationName: obj.endpointLocationName,\n iD: obj.iD\n };\n }\n deleteContentServer() {\n // console.log(this.contentServer)\n const data = { \"ID\": this.contentServer.iD, \"UserID\": this.contentServer.userID };\n this.screenService.deleteContentServer(data).subscribe((response) => {\n // console.log(response);\n if (response.status === 'success') {\n this.authService.showNotification('', 'Deleted Successfully', 'success');\n // console.log(this.contentServerUserObj)\n this.getUserServerList(this.contentServerUserObj.userID);\n } else {\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n }\n }, error => {\n console.log(error);\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n }\n\n getCurrentUserServers() {\n //console.log('Get User videos');\n //console.log(this.authService.currentUser.userID);\n this.screenService.getUserServerList(this.authService.currentUser.userID).subscribe((response) => {\n this.currentUserServers = response.data;\n }, (error) => {\n console.log(error);\n });\n }\n\n readScreenlistFileDetails() {\n let userName = '';\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n const reqData = {\n userName: userName,\n fileName: null,\n templatesRelativePath: null\n };\n for (let i = 0; i < this.currentXmls.length; i++) {\n reqData.fileName = this.currentXmls[i].name;\n this.screenService.readScreenlistFile(reqData).subscribe((response) => {\n this.currentXmls[i].screenName = response.data.screenlist.name;\n this.currentXmls[i].channelNumber = this.getChannelNumber(this.currentXmls[i].name);\n // console.log(i, response.data.screenlist.name);\n this.data.changeMessage(this.currentXmls);\n }, (error) => {\n console.log(error);\n });\n }\n // for (let i = 0; i < this.currentTemplates.hdTemplate.length; i++) {\n // reqData.fileName = this.currentTemplates.hdTemplate[i].name;\n // reqData.templatesRelativePath = \"templates\\\\HD Template\";\n // // console.log(reqData);\n // this.screenService.readScreenlistFile(reqData).subscribe((response) => {\n // this.currentTemplates.hdTemplate[i].screenName = response.data.screenlist.screen.name;\n // // console.log(i, response.data.screenlist.name);\n // this.data.changeTemplate(this.currentTemplates);\n // }, (error) => {\n // console.log(error);\n // });\n // }\n // for (let i = 0; i < this.currentTemplates.fullHdTemplate.length; i++) {\n // reqData.fileName = this.currentTemplates.fullHdTemplate[i].name;\n // reqData.templatesRelativePath = 'templates\\\\Full HD Template';\n // // console.log(reqData);\n // this.screenService.readScreenlistFile(reqData).subscribe((response) => {\n // this.currentTemplates.fullHdTemplate[i].screenName = response.data.screenlist.screen.name;\n // // console.log(i, response.data.screenlist.name);\n // this.data.changeTemplate(this.currentTemplates);\n // }, (error) => {\n // console.log(error);\n // });\n // }\n\n\n for (let i = 0; i < this.currentTemplates.allTemplates.length; i++) {\n reqData.fileName = this.currentTemplates.allTemplates[i].name;\n reqData.templatesRelativePath = 'templates\\\\All Templates';\n // console.log(reqData);\n this.screenService.readScreenlistFile(reqData).subscribe((response) => {\n\n this.currentTemplates.allTemplates[i].screenName = response.data.screenlist.screen.name;\n this.data.changeTemplate(this.currentTemplates);\n }, (error) => {\n console.log(error);\n });\n }\n }\n\n onKeyupEvent($event): void {\n // console.log($event);\n this.contentServer.Name = this.contentServer.Name.toLowerCase();\n }\n\n removeSubString(string, stringToRemove, stringToRemoveWith) {\n return string.replace(stringToRemove, stringToRemoveWith);\n }\n\n showAssetsTitle(string) {\n let res = string;\n if (string === 'rss') {\n res = 'RSS';\n } else if (string === 'text_crawl') {\n res = 'Text Scroll';\n } else if (string === 'text_multiline') {\n res = 'Text Multiline';\n } else if (string === 'channel_number') {\n res = 'Channel Number';\n } else if (string === 'youtube') {\n res = 'YouTube';\n } else if (string === 'video') {\n res = 'Audio / Video';\n } else {\n res = string.charAt(0).toUpperCase() + string.substr(1).toLowerCase();\n }\n return res;\n }\n\n getChannelNumber(fileName: String) {\n const fileContents = fileName.split('.');\n const channelNumber = parseInt(fileContents[fileContents.length - 2], 10);\n if (channelNumber === 0) {\n return 'Default';\n }\n return 'Ch. ' + channelNumber;\n }\n\n videoOptionAction(element, anchoritem) {\n if (element.val === '2') {\n this.openModel(this.uploadVideoModal, { size: 'lg' });\n } else if (element.val === '3') {\n this.channelUpdatePath = this.sanitizer.bypassSecurityTrustResourceUrl(this.appSettings.getConfig('APP_NAME') + 'assets/content/' + this.currentUser.homeDirectory + '/manageclients/UpdateChannels/uc.html');\n this.openModel(this.updateChannelModal, { size: 'lg' }, 'channel-modal');\n } else if (element.val === '4') {\n this.channelUpdatePath = this.sanitizer.bypassSecurityTrustResourceUrl(this.appSettings.getConfig('APP_NAME') + 'assets/content/' + this.currentUser.homeDirectory + '/manageclients/UpdateVoDLineup/uc.html');\n this.openModel(this.updateChannelLineupModal, { windowClass: 'customModalClass' }, 'channel-modal');\n } else if (element.val == '5') {\n // ng.openScreenshotPopUp();\n if (element.text === 'Show Details') {\n $('.attr_showasdetails').show();\n element.text = 'Hide Details';\n anchoritem.text = 'Hide Details';\n }\n else if (element.text === 'Hide Details') {\n $('.attr_showasdetails').hide();\n element.text = 'Show Details';\n anchoritem.text = 'Show Details';\n }\n } else if (element.val == '6') {\n this.audiofilename = '';\n this.openModel(this.deleteAudioModal);\n this.BindAudioSources(document.getElementById('ddlSelectedAudio'));\n $('.selectpicker').selectpicker();\n } else if (element.val == '7') {\n this.videofilename = '';\n this.openModel(this.deleteVideoModal);\n this.BindVideoOnlySources(document.getElementById('ddlSelectedVideo'));\n $('.selectpicker').selectpicker();\n }\n }\n\n updateVideoChannelList() {\n this.screenService.getVideoChannelList(this.currentUser.username).subscribe((response) => {\n // console.log(response);\n this.videoChannelAssets = [];\n this.currentVideos = [];\n response.data.channels.forEach(element => {\n element.isEztvItem = true;\n this.videoChannelAssets.push(element);\n });\n this.currentVideos = this.videoAssets;\n this.currentVideos = this.currentVideos.concat(this.videoChannelAssets);\n\n setTimeout(function () {\n $('[data-toggle=\"tooltip\"]').tooltip({\n trigger: 'hover'\n });\n }, 1000);\n });\n\n }\n\n loadScript(url: string) {\n const body = document.body;\n const script = document.createElement('script');\n script.innerHTML = '';\n script.src = url;\n script.async = false;\n script.defer = false;\n body.appendChild(script);\n }\n loadBrowserSource(assetId, url) {\n const asset_group = this.stage.findOne('#' + this.activeAssetId + '-Group');\n // const pos_x = document.getElementById('canvasContainer').offsetLeft + this.currentAssets[this.activeAssetId].X;\n // const pos_y = document.getElementById('canvasContainer').offsetTop + this.currentAssets[this.activeAssetId].Y;\n const pos_x = document.getElementById('canvasContainer').offsetLeft + asset_group.getX();\n const pos_y = document.getElementById('canvasContainer').offsetTop + asset_group.getY() - 1;\n const pos_width = this.currentAssets[this.activeAssetId].Width;\n const pos_height = this.currentAssets[this.activeAssetId].Height;\n const brdiv = document.createElement('div');\n brdiv.setAttribute('id', assetId + '_div_browser_source');\n brdiv.style.position = 'absolute';\n brdiv.style.left = pos_x.toString() + 'px';\n brdiv.style.top = pos_y.toString() + 'px';\n brdiv.style.zIndex = '1';\n const brframe = document.createElement('iframe');\n brframe.setAttribute('id', assetId + '_frame_browser_source');\n brframe.setAttribute('frameBorder', '0');\n brframe.setAttribute('scrolling', 'no');\n brframe.style.width = pos_width + 'px';\n brframe.style.height = pos_height + 'px';\n brframe.style.border = 'none';\n brframe.setAttribute('src', url);\n\n brdiv.appendChild(brframe);\n\n document.getElementById('canvasContainer').appendChild(brdiv);\n\n const timerlabel = document.createElement('label');\n timerlabel.setAttribute('id', assetId + '_lbl_browser_timer')\n timerlabel.style.fontSize = '200px';\n timerlabel.style.fontWeight = 'bold';\n timerlabel.style.color = 'green';\n timerlabel.style.position = 'absolute';\n timerlabel.style.zIndex = '100';\n timerlabel.style.top = brdiv.offsetTop + brdiv.offsetHeight / 2 - 120 + 'px';\n timerlabel.style.left = brdiv.offsetLeft + brdiv.offsetWidth / 2 - 70 + 'px';\n document.getElementById('canvasContainer').appendChild(timerlabel);\n\n var timeleft = 5;\n var downloadTimer = setInterval(function () {\n if (timeleft < 0) {\n clearInterval(downloadTimer);\n document.getElementById('canvasContainer').removeChild(timerlabel);\n document.getElementById('canvasContainer').removeChild(brdiv);\n }\n timerlabel.innerHTML = timeleft.toString();\n timeleft -= 1;\n }, 1000);\n }\n\n hideBrowserFrame(asset_id) {\n try {\n document.getElementById('canvasContainer').removeChild(document.getElementById(asset_id + '_div_browser_source'));\n document.getElementById('canvasContainer').removeChild(document.getElementById(asset_id + '_lbl_browser_timer'));\n } catch (e) { }\n }\n\n repositionBrowserFrame(asset_group, asset_id): void {\n const active_x = asset_group.getX();\n const active_y = asset_group.getY();\n const active_width = this.stage.findOne('#' + asset_id).getWidth();\n const active_height = this.stage.findOne('#' + asset_id).getHeight();\n\n const pos_x = document.getElementById('canvasContainer').offsetLeft + active_x;\n const pos_y = document.getElementById('canvasContainer').offsetTop + active_y;\n const pos_width = active_width;\n const pos_height = active_height;\n\n document.getElementById(asset_id + '_div_browser_source').style.left = pos_x + 'px';\n document.getElementById(asset_id + '_div_browser_source').style.top = pos_y + 'px';\n document.getElementById(asset_id + '_frame_browser_source').style.width = pos_width - 20 + 'px';\n document.getElementById(asset_id + '_frame_browser_source').style.height = pos_height - 20 + 'px';\n }\n\n ddlSelectedImage_change(file_name): void {\n if (file_name === '') {\n $(\"#imagetodelete\").hide();\n return;\n }\n this.currentImages.forEach(image => {\n if (image.name === file_name) {\n $(\"#imagetodelete\").attr(\"src\", image.url);\n $(\"#imagetodelete\").show();\n return;\n }\n });\n }\n\n delete_file(file_type, file_name): void {\n\n $(\".deletefileasset\").hide();\n\n let url = this.appSettings.getConfig('API_ENDPOINT') + 'deletefile';\n\n let userName = '';\n\n if (typeof this.authService.currentUser.username !== 'undefined') {\n userName = this.authService.currentUser.username;\n }\n\n let filesToDelete = {\n fileType: file_type,\n fileName: file_name === '0' ? '' : file_name,\n userName: userName,\n };\n\n this.screenService.deleteFilesFromServer(filesToDelete).subscribe((response) => {\n this.spinnerService.hide();\n $(\"#imagetodelete\").hide();\n $(\".deletefileasset\").text(response.message);\n $(\".deletefileasset\").show();\n\n this.getUserFilesList(file_type);\n\n if (file_type === 'image') {\n this.BindImageSources(document.getElementById('ddlSelectedImage'));\n $(\"#ddlSelectedImage option[value='\" + file_name + \"']\").remove();\n $(\"#\" + this.activeAssetId + \"_def_source option[value='\" + file_name + \"']\").remove();\n for (const key in this.currentAssets) {\n if (this.currentAssets[key].Type === 'image' && file_name !== '' && this.currentAssets[key].Source.includes(file_name)) {\n $('a.tm35.play-item-rm-btn[id=\"' + key + '-Group\"]')[0].click();\n } else if (this.currentAssets[key].Type === 'image' && file_name !== '' && typeof this.currentAssets[key].playlist !== 'undefined' && this.currentAssets[key].playlist) {\n this.currentAssets[key].playlist_items.forEach((item, itemIndex) => {\n if (item.name.includes(file_name)) {\n $('a.tm35.play-item-rm-btn[id=\"' + key + '-Group\"]')[0].click();\n }\n });\n }\n }\n }\n else if (file_type === 'audio') {\n this.BindAudioSources(document.getElementById('ddlSelectedAudio'));\n $(\"#ddlSelectedAudio option[value='\" + file_name + \"']\").remove();\n $(\"#\" + this.activeAssetId + \"_audio_def_source option[value='\" + file_name + \"']\").remove();\n }\n else if (file_type === 'video') {\n this.BindVideoOnlySources(document.getElementById('ddlSelectedVideo'));\n $(\"#ddlSelectedVideo option[value='\" + file_name + \"']\").remove();\n $(\"#\" + this.activeAssetId + \"_def_source option[value='\" + file_name + \"']\").remove();\n }\n\n $('.selectpicker').selectpicker('refresh');\n\n }, error => {\n this.spinnerService.hide();\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n });\n\n window.setTimeout(function () {\n $(\".deletefileasset\").text('');\n $(\".deletefileasset\").hide();\n }, 3000);\n }\n\n openSearchYoutubeModal(): void {\n this.openModel(this.searchYoutubeModal, { size: 'fullscreen_sm_youtube' });\n }\n ReceivePlayListID(playlist_id, playlist_title): void {\n const active_asset = this.stage.findOne('#' + this.activeAssetId + '-Group');\n this.currentAssets[this.activeAssetId].Name = playlist_title;\n this.currentAssets[this.activeAssetId].Source = playlist_id;\n active_asset.attrs.name = playlist_title;\n $(\"#\" + this.activeAssetId + \"_name\").val(playlist_title);\n $(\"#\" + this.activeAssetId + \"_source\").val(playlist_id);\n $(\"#\" + this.activeAssetId + \"_source\").focus();\n this.closeModal();\n }\n onLogout(): void {\n this.resetCompleteScreen();\n this.authService.logout();\n //this.router.navigate(['/login']);\n setTimeout(() => {\n window.location.reload();\n }, 500);\n }\n\n Publish_SelectAllPlayers(event: any): void {\n $(\"input:checkbox.chkPlayerName\").each(function () {\n if (!this.checked) {\n this.click();\n }\n });\n //$(\".chkPlayerName\").prop('checked', true);\n //$(\".chkPlayerName\").prop('checked', event.target.checked);\n //console.log(event);\n }\n onlyNumberKey(evt: any) {\n // Only ASCII character in that range allowed\n var ASCIICode = (evt.which) ? evt.which : evt.keyCode\n if (ASCIICode > 31 && (ASCIICode < 48 || ASCIICode > 57))\n return false;\n return true;\n }\n\n TogglePlayerRegistrationLink(): void {\n const userName = this.username;\n this.registrationService.getRegisteredPlayersByUser(userName).subscribe((response) => {\n\n if (response.data.length === 0) {\n $('#drplnkEditPlayer').addClass('menu-link-disabled');\n $('#drplnkEditPlayer').attr('style', 'color: #B1B8B9 !important');\n }\n else {\n $('#drplnkEditPlayer').removeClass('menu-link-disabled');\n $('#drplnkEditPlayer').attr('style', '');\n }\n if (response.data.length === 0) {\n $('#drplnkPlayerStatus').addClass('menu-link-disabled');\n $('#drplnkPlayerStatus').attr('style', 'color: #B1B8B9 !important');\n }\n else {\n $('#drplnkPlayerStatus').removeClass('menu-link-disabled');\n $('#drplnkPlayerStatus').attr('style', '');\n }\n\n if (response.data.length >= 10) {\n $('#drplnkRegisterNewPlayer').addClass('menu-link-disabled');\n $('#drplnkRegisterNewPlayer').attr('style', 'color: #B1B8B9 !important');\n }\n else {\n $('#drplnkRegisterNewPlayer').removeClass('menu-link-disabled');\n $('#drplnkRegisterNewPlayer').attr('style', '');\n }\n });\n }\n\n activePlayerAction(registrationCode, action): void {\n const data = {\n\n RegistrationCode: registrationCode,\n Action: action\n }\n if (!this.playerStatusObject.activePlayers.find(item => item.registrationCode === registrationCode).isActionFileExist) {\n\n if (action === 'restart_app') {\n this.playerStatusObject.activePlayers.find(item => item.registrationCode === registrationCode).status = 'Restarting Signage App...';\n } else if (action === 'create_screenshot') {\n this.playerStatusObject.activePlayers.find(item => item.registrationCode === registrationCode).status = 'Creating Screenshot...';\n }\n this.playerStatusObject.activePlayers.find(item => item.registrationCode === registrationCode).isActionFileExist = true;\n this.playerStatusObject.activePlayers.find(item => item.registrationCode === registrationCode).action = action;\n\n this.registrationService.playerAction(data).subscribe((response) => {\n if (response.status == 'success') {\n //this.authService.showNotification('Success', 'Player Registered successfully.', 'success');\n }\n else if (response.status == 'error') {\n // $(\"#lbl_registerplayer_errmsg\").text(response.message);\n // $(\"#lbl_registerplayer_errmsg\").show();\n // //this.authService.showNotification('Failure', response.message, 'error');\n // this.isRegisterPlayer = false;\n }\n\n }, error => {\n this.authService.showNotification('Error', 'Some error occured. please try again later', 'error');\n });\n }\n }\n\n unknownPlayerAction(registrationCode, action): void {\n const data = {\n\n RegistrationCode: registrationCode,\n Action: action\n }\n if (this.playerStatusObject.inactivePlayers.find(item => item.registrationCode === registrationCode).status === \"Unknown\"\n && !this.playerStatusObject.inactivePlayers.find(item => item.registrationCode === registrationCode).isActionFileExist) {\n\n if (action === 'restart_app') {\n this.playerStatusObject.inactivePlayers.find(item => item.registrationCode === registrationCode).status = 'Restarting Signage App...';\n } else if (action === 'create_screenshot') {\n this.playerStatusObject.inactivePlayers.find(item => item.registrationCode === registrationCode).status = 'Creating Screenshot...';\n }\n this.playerStatusObject.inactivePlayers.find(item => item.registrationCode === registrationCode).isActionFileExist = true;\n this.playerStatusObject.inactivePlayers.find(item => item.registrationCode === registrationCode).action = action;\n\n this.registrationService.playerAction(data).subscribe((response) => {\n if (response.status == 'success') {\n //this.authService.showNotification('Success', 'Player Registered successfully.', 'success');\n }\n else if (response.status == 'error') {\n // $(\"#lbl_registerplayer_errmsg\").text(response.message);\n // $(\"#lbl_registerplayer_errmsg\").show();\n // //this.authService.showNotification('Failure', response.message, 'error');\n // this.isRegisterPlayer = false;\n }\n\n }, error => {\n this.authService.showNotification('Error', 'Some error occured. please try again later', 'error');\n });\n }\n }\n\n viewScreenShot(registrationCode, playerName, isScreenshotExists): void {\n if (isScreenshotExists) {\n this.registrationService.getPlayerScreenshotTime(registrationCode).subscribe((response) => {\n ng.playerScreenshotHeader = playerName + ' @ ' + this.pipe.transform(response.data, 'M/d/yy h:mm a');\n var rand = Math.random();\n this.viewScreenshotfile = this.mediaUrl + 'Sites/' + registrationCode + '/screenshot.png?id=' + rand;\n //$(\"#imgScreenshot\").attr('src', '/assets/content/Sites/' + registrationCode + 'screenshot.png');\n this.openModel(this.viewScreenshotModal, { size: 'xl' });\n });\n }\n }\n\n\n viewDMBTVPopup(registrationCode, status, isScreenshotExists): void {\n\n if (status == 'Active') {\n this.dmbTVStatusList = this.playerStatusObject.activePlayers.filter(element => element.registrationCode == registrationCode)\n this.active = true;\n }\n else {\n this.dmbTVStatusList = this.playerStatusObject.inactivePlayers.filter(element => element.registrationCode == registrationCode)\n this.active = false;\n }\n // console.log(this.dmbTVStatusList[0]);\n var status = this.dmbTVStatusList[0].screenStatus;\n this.dmbplayerName = this.dmbTVStatusList[0].playerName;\n this.dateUpdatedOnSiteStatsTable = this.dmbTVStatusList[0].dateUpdated;\n this.volumeLocally = this.dmbTVStatusList[0].volume >= 0 ? false : true;\n this.hideSlider = this.dmbTVStatusList[0].volume == -1 ? false : true;\n this.showNotSet = this.dmbTVStatusList[0].dailyRebootTime == \"\" ? true : false;\n\n this.screenStatus = this.dmbTVStatusList[0].screenStatus != \"\" ? this.dmbTVStatusList[0].screenStatus == 'ON' ? true : false : true;\n if (this.dmbTVStatusList[0].dailyRebootTime == \"\") {\n this.dmbTVStatusList[0].dailyRebootTime = \"-1\";\n }\n this.value = this.dmbTVStatusList[0].volume;\n\n var data = this.TimeArray.filter(x => x.id == this.dmbTVStatusList[0].dailyRebootTime);\n if (data.length > 0) {\n $('#rebootTime').val(this.dmbTVStatusList[0].dailyRebootTime);\n }\n else {\n this.dmbTVStatusList[0].dailyRebootTime = \"-1\";\n $('#rebootTime').val(this.dmbTVStatusList[0].dailyRebootTime);\n }\n\n\n // alert(JSON.stringify(this.dmbTVStatusList));\n this.openModel(this.dmbTVModel, { size: 'lg' });\n }\n saveDMBTVAction(registrationCode): void {\n document.getElementById(registrationCode).style.display = 'none'\n this.playerRegistrationCode = registrationCode;\n localStorage.setItem('registrationCode', registrationCode);\n\n if (this.active) {\n this.dmbTVStatusList = this.playerStatusObject.activePlayers.filter(element => element.registrationCode == registrationCode)\n\n }\n else {\n this.dmbTVStatusList = this.playerStatusObject.inactivePlayers.filter(element => element.registrationCode == registrationCode)\n\n }\n // alert(this.dmbTVStatusList);\n // console.log(this.dmbTVStatusList[0].dateUpdated);\n // alert(this.dmbTVStatusList[0].dateUpdated);\n localStorage.setItem('dateUpdatedOn', this.dmbTVStatusList[0].dateUpdated);\n //var timeNow = new Date().toString().split(' ')[4];\n var oldtime = new Date().getTime().toString();\n localStorage.setItem('oldMinutes', oldtime);\n // setTimeout(function() {\n // alert('test');\n // this.dmbTVStatusList = this.playerStatusObject.activePlayers.filter(element => element.registrationCode == registrationCode)\n // if(this.dateUpdatedOnSiteStatsTable!= this.dmbTVStatusList[0].dateUpdated)\n // {\n // document.getElementById(registrationCode).style.display='inline'\n // }\n // }, 1*2000);\n\n var rebootTime = $('#rebootTime').val();\n var volume = this.value;\n\n if ($(\"#screenStatus\").is(':checked')) {\n var screenStatus = 'ON';\n }\n else {\n var screenStatus = 'OFF';\n }\n\n if ($(\"#isVolumeLocally\").is(':checked')) {\n var volumeLocally = true;\n volume = -1;\n }\n else {\n var volumeLocally = true;\n }\n\n if (this.active) {\n this.dmbTVStatusList = this.playerStatusObject.activePlayers.filter(element => element.registrationCode == registrationCode)\n }\n else {\n this.dmbTVStatusList = this.playerStatusObject.inactivePlayers.filter(element => element.registrationCode == registrationCode)\n }\n const data = {\n\n RegistrationCode: registrationCode,\n Action: 'dmbTVScreen',\n Volume: volume,\n ScreenStatus: screenStatus,\n DailyRebootTime: rebootTime,\n VolumeSetLocally: volumeLocally\n }\n ng.closeModal();\n this.registrationService.dmbTVAction(data).subscribe((response) => {\n if (response.status == 'success') {\n this.authService.showNotification('Success', 'dmb settings created successfully.', 'success');\n }\n else if (response.status == 'error') {\n this.authService.showNotification('Failure', response.message, 'error');\n }\n\n }, error => {\n this.authService.showNotification('Error', 'Some error occured. please try again later', 'error');\n });\n }\n showVolumeSlider(): void {\n if ($(\"#isVolumeLocally\").is(':checked')) {\n this.hideSlider = false;\n }\n else {\n this.hideSlider = true;\n }\n }\n\n allowDropPlayListItem(ev) {\n\n ev.preventDefault(); // prevent the browser default handling of the data (default is open as link on drop)\n //var dropParent = ev.target.parentElement.parentElement;\n\n //if(dropParent.classList.contains('playListItemParent')) {\n // dropParent.classList.add('playlistitem-dragover');\n //}\n }\n\n dragStartPlayListItem(ev, draggedAssetId) {\n ev.dataTransfer.setData(\"targetId\", ev.target.id);\n ev.dataTransfer.setData(\"draggedAssetId\", draggedAssetId);\n\n draggedPlayListItemId = ev.target.id;\n\n var dragItem = document.getElementById(ev.target.id);\n var dragParent = dragItem.parentElement;\n\n $('.pl-asset-item').each(function () {\n this.classList.remove('pl-asset-item-active');\n });\n\n dragItem.classList.add('playlistitem-drag');\n\n // dragItem.style.opacity = '0.4';\n // dragItem.style.border = '3px dashed red';\n //dragParent.classList.remove('playListItemParent-allowDrop');\n }\n\n dragEnterPlayListItem(ev) {\n\n var dragItem = document.getElementById(draggedPlayListItemId);\n\n var dropItem = ev.target;\n var dropParent = dropItem.parentElement;\n\n if (dropParent.parentElement.classList.contains('playListItemParent')) {\n if (dragItem !== dropItem && dragItem !== dropParent) {\n //dragItem.classList.remove('playlistitem-drag');\n dropParent.classList.add('playlistitem-droppable');\n }\n }\n\n //alert(ev.target.id);\n\n // if(!dropItem.classList.contains('playlistitem-drag') && !dropParent.classList.contains('playlistitem-drag')) {\n\n // //alert();\n // dragItem.classList.remove('playlistitem-drag');\n // dragItem.classList.add('playlistitem-droppable');\n // }\n }\n\n dragLeavePlayListItem(ev) {\n\n var dragItem = document.getElementById(draggedPlayListItemId);\n var dropItem = ev.target;\n var dropParent = dropItem.parentElement;\n //var dragParent = dragItem.parentElement;\n\n //dragItem.classList.add('playlistitem-drag');\n dropParent.classList.remove('playlistitem-droppable');\n\n //dragItem.classList.remove('playlistitem-droppable');\n //dragItem.classList.add('playlistitem-drag');\n }\n\n dragEndPlayListItem(ev, draggedAssetId) {\n\n var dragItem = document.getElementById(ev.target.id);\n var dragParent = dragItem.parentElement;\n\n $('.pl-asset-item').each(function () {\n this.classList.remove('playlistitem-drag');\n this.classList.remove('playlistitem-droppable');\n\n if (this.children[0]) {\n this.children[0].classList.remove('playlistitem-drag');\n this.children[0].classList.remove('playlistitem-droppable');\n }\n });\n\n //dragItem.classList.remove('playlistitem-drag');\n //dragItem.classList.remove('playlistitem-allowdrop');\n\n const draggedAssetGroup = this.stage.findOne('#' + draggedAssetId + '-Group');\n this.setCurrentActiveAsset(draggedAssetGroup);\n\n //dragItem.style.opacity = '1';\n }\n\n dropPlayListItem(ev, currentAssetId) {\n //alert(ev.target.id);\n //alert(currentAssetId);\n ev.preventDefault();\n var targetId = ev.dataTransfer.getData(\"targetId\");\n var draggedAssetId = ev.dataTransfer.getData(\"draggedAssetId\");\n var elm = document.getElementById(targetId);\n var dragParent = elm.parentElement;\n //alert(ev.dataTransfer.getData(\"targetId\"));\n //alert(draggedAssetId);\n //alert(data);\n //alert(ev.target.id);\n //ev.target = ev.target.parentElement.parentElement;\n var dropParent = ev.target.parentElement.parentElement;\n //var dropParent = ev.target;\n //alert(dropParent.children[0]);\n\n //dragParent.classList.remove('playListItemParent-allowDrop');\n //dropParent.classList.remove('playListItemParent-allowDrop');\n\n if (dropParent.classList.contains('playListItemParent')) {\n\n //elm.parentElement.appendChild(dropParent.children[0]);\n //dropParent.innerHTML = \"\";\n //dropParent.appendChild(elm);\n\n //var currentAsset = this.currentAssets[currentAssetId];\n //var draggedAsset = this.currentAssets[draggedAssetId];\n\n //var currentIndex = this.currentAssets.indexOf(currentAsset);\n //var draggedIndex = this.currentAssets.indexOf(draggedAsset);\n //this.currentAssets.splice(1, 0, this.currentAssets.splice(0, 1)[0]);\n\n //if(currentIndex < draggedIndex){\n //this.currentAssets.splice(0, 0, this.currentAssets.splice(1, 1)[0]);\n //this.currentAssets.splice(draggedIndex + 1, 0, this.currentAssets.splice(currentIndex + 1, 1)[0]);\n //} else {\n //this.currentAssets.splice(draggedIndex, 0, this.currentAssets.splice(currentIndex, 1)[0]);\n //this.currentAssets.splice(currentIndex + 1, 0, this.currentAssets.splice(draggedIndex + 1, 1)[0]);\n //}\n\n //var lastAsset = this.currentAssets[this.currentAssets.length - 1];\n\n //alert(lastAsset);\n //alert(currentAssetId);\n //alert(draggedAssetId);\n var newAssetList = [];\n var NewElementList: Array = [];\n var assetId = '';\n\n for (const key in this.currentAssets) {\n if (key === currentAssetId) {\n newAssetList[draggedAssetId] = this.currentAssets[draggedAssetId];\n assetId = draggedAssetId;\n } else if (key === draggedAssetId) {\n newAssetList[currentAssetId] = this.currentAssets[currentAssetId];\n assetId = currentAssetId;\n } else {\n newAssetList[key] = this.currentAssets[key];\n assetId = key;\n }\n\n const assetGroup = this.stage.findOne('#' + assetId + '-Group');\n NewElementList.push(assetGroup);\n\n //const group = this.stage.findOne('#' + assetId + '-Group'); // get the asset that needs to be removed\n\n assetGroup.moveToTop();\n ng.stage.batchDraw();\n }\n\n this.currentAssets = newAssetList;\n this.myElement = NewElementList;\n }\n }\n\n ScreenName_keyPress(event) {\n\n let keycode = event.which || event.keyCode;\n\n if (keycode === 34 || keycode === 42 || keycode === 47 || keycode === 58 || keycode === 60 || keycode === 62 ||\n keycode === 63 || keycode === 92 || keycode === 124) {\n event.preventDefault();\n return false;\n }\n }\n\n ddlRules_change(): void {\n\n const userName = this.username;\n this.registrationService.getRegisteredPlayersByUser(userName).subscribe((response) => {\n this.registeredPlayers = response.data;\n\n (document.getElementById('chkSunday')).checked = false;\n (document.getElementById('chkMonday')).checked = false;\n (document.getElementById('chkTuesday')).checked = false;\n (document.getElementById('chkWednesday')).checked = false;\n (document.getElementById('chkThursday')).checked = false;\n (document.getElementById('chkFriday')).checked = false;\n (document.getElementById('chkSaturday')).checked = false;\n\n this.isEditRule = false;\n\n if ($(\"#ddlRules\").val() !== '') {\n\n $(\"#divTimeOfDayStart\").addClass('d-none');\n $(\"#divTimeOfDayContent\").removeClass('d-none');\n\n if ($(\"#ddlRules\").val() === '0') {\n $(\"#txtRuleName\").val('');\n $(\"#ddlTimeZone\").val('');\n $(\"#ddlHour\").val('');\n $(\"#ddlMeridiem\").val('AM');\n $(\"#ddlScreenName\").val('');\n\n this.tod_no_of_players = 0;\n\n $(\".selectpicker\").selectpicker('refresh');\n $(\"#txtRuleName\").removeClass('d-none');\n $(\"#btnDeleteRule\").addClass('d-none');\n\n return;\n }\n\n $(\"#btnDeleteRule\").removeClass('d-none');\n this.isEditRule = true;\n $(\"#txtRuleName\").val($(\"#ddlRules\").val());\n $(\"#txtRuleName\").addClass('d-none');\n // alert(JSON.stringify(this.currentTimeOfDay));\n this.currentRule = this.currentTimeOfDay.rules.find(r => r.name == $(\"#ddlRules\").val());\n\n // alert(this.currentTimeOfDay.timeZone);\n $(\"#ddlTimeZone\").val(this.currentTimeOfDay.timeZone);\n $(\"#ddlScreenName\").val(this.currentRule.screenName);\n\n var startDays = this.currentRule.startDay.split(',');\n\n for (var i = 0; i < startDays.length; i++) {\n\n if (startDays[i] === 'SUN') {\n (document.getElementById('chkSunday')).checked = true;\n }\n if (startDays[i] === 'MON') {\n (document.getElementById('chkMonday')).checked = true;\n }\n if (startDays[i] === 'TUES') {\n (document.getElementById('chkTuesday')).checked = true;\n }\n if (startDays[i] === 'WED') {\n (document.getElementById('chkWednesday')).checked = true;\n }\n if (startDays[i] === 'THURS') {\n (document.getElementById('chkThursday')).checked = true;\n }\n if (startDays[i] === 'FRI') {\n (document.getElementById('chkFriday')).checked = true;\n }\n if (startDays[i] === 'SAT') {\n (document.getElementById('chkSaturday')).checked = true;\n }\n }\n\n var rStartH = 0;\n var rStartM = '';\n\n if (this.currentRule.startHour === '0') {\n rStartH = 12;\n rStartM = 'AM';\n } else if (this.currentRule.startHour === '12') {\n rStartH = this.currentRule.startHour;\n rStartM = 'PM';\n } else if (parseInt(this.currentRule.startHour) > 12) {\n rStartH = parseInt(this.currentRule.startHour) - 12;\n rStartM = 'PM';\n } else {\n rStartH = this.currentRule.startHour;\n rStartM = 'AM';\n }\n\n $(\"#ddlHour\").val(rStartH);\n $(\"#ddlMeridiem\").val(rStartM);\n\n this.tod_no_of_players = this.currentRule.players.length;\n\n this.currentRule.players.forEach(element => {\n this.registeredPlayers.find(p => p.playerName == element.name).isSelected = true;\n });\n\n $(\".selectpicker\").selectpicker('refresh');\n // this.currentTimeOfDay.rules.array.forEach(element => {\n\n // });\n\n } else {\n $(\"#divTimeOfDayStart\").removeClass('d-none');\n $(\"#divTimeOfDayContent\").addClass('d-none');\n\n $(\"#txtRuleName\").addClass('d-none');\n $(\"#btnDeleteRule\").addClass('d-none');\n $(\"#ddlTimeZone\").val('');\n $(\".selectpicker\").selectpicker('refresh');\n }\n\n });\n }\n\n deleteTodRule(isShowNotification: boolean): void {\n\n const data = this.create_timeofday_array(true);\n\n const userName = this.username;\n var reqData = {\n userName: userName\n };\n\n this.screenService.saveTimeOfDay(data).subscribe((response) => {\n // this.closeModal();\n if (isShowNotification) {\n if (response.status === 'error') {\n this.authService.showNotification(response.message, '', 'error');\n } else {\n this.authService.showNotification('Rule deleted successfully', 'success', 'success');\n\n this.fetchTimeOfDayData(reqData);\n }\n }\n }, error => {\n if (isShowNotification) {\n //this.authService.showNotification(error.message, 'error');\n this.authService.showNotification('', 'Some error occured. please try again later', 'error');\n }\n //this.modalRef.close();\n });\n }\n\n resetTimeOfDayModal(): void {\n\n $(\"#ddlRules\").val('');\n $(\"#txtRuleName\").val('');\n $(\"#txtRuleName\").addClass('d-none');\n $(\"#btnDeleteRule\").addClass('d-none');\n $(\"#ddlTimeZone\").val('');\n $(\"#ddlScreenName\").val('');\n $(\"#ddlHour\").val('');\n $(\"#ddlMeridiem\").val('AM');\n\n (document.getElementById('chkSunday')).checked = false;\n (document.getElementById('chkMonday')).checked = false;\n (document.getElementById('chkTuesday')).checked = false;\n (document.getElementById('chkWednesday')).checked = false;\n (document.getElementById('chkThursday')).checked = false;\n (document.getElementById('chkFriday')).checked = false;\n (document.getElementById('chkSaturday')).checked = false;\n\n this.tod_no_of_players = 0;\n this.registeredPlayers.forEach(rp => {\n rp.isSelected = false;\n });\n\n $('.selectpicker').selectpicker('refresh');\n\n $(\"#divTimeOfDayStart\").removeClass('d-none');\n $(\"#divTimeOfDayContent\").addClass('d-none');\n }\n\n // showZoomLevel(value) {\n // //alert(3);\n // //(document.getElementById('zoomValue')).value = value.toString() + '%';\n // }\n\n changeZoomLevel() {\n //alert(1);\n var value = this.zoomValue;\n\n var stageWidth = (parseInt(this.gActiveResolution.split('x')[0]) * value) / 100;\n var stageHeight = (parseInt(this.gActiveResolution.split('x')[1]) * value) / 100;\n\n $('#canvasContainer').css({\n width: stageWidth + 'px',\n height: stageHeight + 'px',\n overflow: 'auto'\n });\n //(document.getElementById('#no-slider-parent')).style.width = '800px!important';\n // $('#nosliderlabel').css({\n // 'text-align': 'left!important',\n // 'padding-right': '800px!important'\n // });\n var padding_base = 0;\n if (this.gActiveResolution == '1080x1920') {\n padding_base = 100 - (value - 60);\n } else {\n padding_base = 100 - value;\n }\n\n var text_padding = (padding_base * parseInt(this.gActiveResolution.split('x')[0])) / 100;\n\n if ($('#no-slider-parent').css('display') === 'none') {\n $('#no-slider-parent').attr(\"style\", \"margin-bottom: 10px;height: 90px;padding-right:\" + text_padding + \"px!important;display:none\");\n } else {\n $('#no-slider-parent').attr(\"style\", \"margin-bottom: 10px;height: 90px;padding-right:\" + text_padding + \"px!important\");\n }\n\n\n //alert($('#no-slider-parent'));\n\n //document.body.style.zoom = value.toString() + '%';\n //(document.getElementById('canvasContainer')).value = value.toString() + '%';\n //this.resetCompleteScreen();\n // this.gridLayer.destroy();\n // const gridLayer = this.createGridLayer();\n // this.stage.add(gridLayer);\n\n // if (this.snapToEnabled) {\n // this.gridLayer.show();\n // this.gridLayer.moveToBottom();\n // } else {\n // this.gridLayer.hide();\n // }\n }\n\n setZoomLevel() {\n\n var targetWidth = 2688;\n var targetHeight = 910;\n\n var browserWidth = window.innerWidth;\n var browserHeight = window.innerHeight;\n\n if (browserWidth < targetWidth) {\n var zoomPercent = Math.round((browserWidth / targetWidth) * 100);\n zoomPercent = zoomPercent - 10;\n\n var stageWidth = (parseInt(this.gActiveResolution.split('x')[0]) * zoomPercent) / 100;\n var stageHeight = (parseInt(this.gActiveResolution.split('x')[1]) * zoomPercent) / 100;\n\n // if(zoomPercent<100) {\n // zoomPercent = 50;\n // } else {\n // zoomPercent = 100;\n // }\n //zoomPercent = zoomPercent - 10;\n // if(zoomPercent >= 30 && zoomPercent <= 130){ //if we have to reduce the browser screen size to fit the app\t\t\t\t\t\n if (zoomPercent >= 40 && zoomPercent <= 100) {\n\n $('#canvasContainer').css({\n width: stageWidth + 'px',\n height: stageHeight + 'px',\n overflow: 'auto'\n });\n\n var padding_base = 0;\n if (this.gActiveResolution == '1080x1920') {\n padding_base = 100 - (zoomPercent + 20);\n } else {\n padding_base = 100 - zoomPercent;\n }\n\n var text_padding = (padding_base * parseInt(this.gActiveResolution.split('x')[0])) / 100;\n $('#no-slider-parent').attr(\"style\", \"margin-bottom: 10px;height: 90px;padding-right:\" + text_padding + \"px!important;\");\n\n //document.body.style.zoom = zoomPercent.toString() + \"%\";\n //document.body.style.transformOrigin = 'left center';\n // var transform = zoomPercent/100;\n // $('body').css({\n // transform: 'scale(' + transform + ')', // set zoom\n // transformOrigin: 'top center' // set transform scale base\n // });\n // if(zoomPercent-10>100) $('body').css({ width: ((zoomPercent-10)*1.2)+'%' });\n // else $('body').css({ width: '100%' });\n //(document.getElementById('zoom-level')).value = zoomPercent.toString();\n //(document.getElementById('zoomValue')).value = zoomPercent.toString() + \"%\";\n\n this.zoomValue = zoomPercent;\n }\n }\n //this.resetCompleteScreen();\n //this.resetScreenAfterZoomChange();\n\n //$('#zoom-level').blur();\n\n // if(zoomPercent === 50) {\n // //this.gActiveResolution = '745x300';\n // }\n //this.changeCanvasResolution();\n //let zoom = ((window.outerWidth - 10) / window.innerWidth) * 100;\n //alert(Math.ceil(zoom));\n\n //this.resetCompleteScreen();\n //this.changeCanvasResolution(); \n // this.gridLayer.destroy();\n // const gridLayer = this.createGridLayer();\n // this.stage.add(gridLayer);\n\n // this.layer.draw();\n\n // if (this.snapToEnabled) {\n // this.gridLayer.show();\n // this.gridLayer.moveToBottom();\n // } else {\n // this.gridLayer.hide();\n // }\n }\n\n create_timeofday_array(deleteRule: boolean): object {\n\n var ruleStartDay = '';\n var isSunday = (document.getElementById('chkSunday')).checked;\n var isMonday = (document.getElementById('chkMonday')).checked;\n var isTuesday = (document.getElementById('chkTuesday')).checked;\n var isWednesday = (document.getElementById('chkWednesday')).checked;\n var isThursday = (document.getElementById('chkThursday')).checked;\n var isFriday = (document.getElementById('chkFriday')).checked;\n var isSaturday = (document.getElementById('chkSaturday')).checked;\n\n if (isSunday) {\n ruleStartDay = 'SUN';\n }\n if (isMonday) {\n ruleStartDay = ruleStartDay === '' ? 'MON' : ruleStartDay + ',MON';\n }\n if (isTuesday) {\n ruleStartDay = ruleStartDay === '' ? 'TUES' : ruleStartDay + ',TUES';\n }\n if (isWednesday) {\n ruleStartDay = ruleStartDay === '' ? 'WED' : ruleStartDay + ',WED';\n }\n if (isThursday) {\n ruleStartDay = ruleStartDay === '' ? 'THURS' : ruleStartDay + ',THURS';\n }\n if (isFriday) {\n ruleStartDay = ruleStartDay === '' ? 'FRI' : ruleStartDay + ',FRI';\n }\n if (isSaturday) {\n ruleStartDay = ruleStartDay === '' ? 'SAT' : ruleStartDay + ',SAT';\n }\n\n var ruleStartHour = parseInt($(\"#ddlHour\").val());\n var meridiem = $(\"#ddlMeridiem\").val();\n\n if (meridiem === 'AM' && ruleStartHour === 12) {\n ruleStartHour = 0;\n }\n if (meridiem === 'PM') {\n if (ruleStartHour !== 12) {\n ruleStartHour = ruleStartHour + 12;\n }\n }\n\n var todPlayers = []\n\n var regPlayers = this.registeredPlayers.filter(p => p.isSelected === true);\n regPlayers.forEach(rp => {\n var todPlayer = {\n name: rp.playerName\n };\n todPlayers.push(todPlayer);\n });\n\n var todRule = {\n name: $(\"#txtRuleName\").val(),\n startDay: ruleStartDay,\n startHour: ruleStartHour,\n screenName: $(\"#ddlScreenName\").val(),\n players: todPlayers,\n deleteRule: deleteRule\n };\n var todRules = [];\n todRules.push(todRule);\n\n var objTimeOfDay = {\n id: Math.floor(Math.random()),\n account: this.username,\n name: 'time-of-day.xml',\n timeZone: $(\"#ddlTimeZone\").val(),\n rules: todRules,\n };\n\n return objTimeOfDay;\n }\n\n /**\n * Once the user has entered the screenlist file name, create or update the xml file in the 'Contnet' directory\n */\n save_timeofday_file(isShowNotification: boolean): void {\n\n var isSunday = (document.getElementById('chkSunday')).checked;\n var isMonday = (document.getElementById('chkMonday')).checked;\n var isTuesday = (document.getElementById('chkTuesday')).checked;\n var isWednesday = (document.getElementById('chkWednesday')).checked;\n var isThursday = (document.getElementById('chkThursday')).checked;\n var isFriday = (document.getElementById('chkFriday')).checked;\n var isSaturday = (document.getElementById('chkSaturday')).checked;\n\n if ($(\"#ddlRules\").val() === '') {\n this.authService.showNotification('Please select a rule', '', 'error');\n return;\n }\n if ($(\"#txtRuleName\").val().trim() === '') {\n this.authService.showNotification('Please enter rule name', '', 'error');\n return;\n }\n if ($(\"#ddlTimeZone\").val() === '') {\n this.authService.showNotification('Please select time zone', '', 'error');\n return;\n }\n if (!isSunday && !isMonday && !isTuesday && !isWednesday && !isThursday && !isFriday && !isSaturday) {\n this.authService.showNotification('Please select day of week', '', 'error');\n return;\n }\n if ($(\"#ddlHour\").val() === '') {\n this.authService.showNotification('Please select hour', '', 'error');\n return;\n }\n if ($(\"#ddlScreenName\").val() === '') {\n this.authService.showNotification('Please select screen name', '', 'error');\n return;\n }\n if (this.tod_no_of_players === 0) {\n this.authService.showNotification('Please select players', '', 'error');\n return;\n }\n if (this.currentRules.length >= 5 && this.isEditRule === false) {\n this.authService.showNotification('Cannot create more than 5
rules', '', 'error');\n return;\n }\n\n const data = this.create_timeofday_array(false);\n\n if (!data) {\n return;\n }\n\n const userName = this.username;\n var reqData = {\n userName: userName\n };\n\n this.screenService.saveTimeOfDay(data).subscribe((response) => {\n // this.closeModal();\n if (isShowNotification) {\n if (response.status === 'error') {\n this.authService.showNotification(response.message, '', 'error');\n } else {\n this.authService.showNotification('Rules saved successfully', 'success', 'success');\n this.fetchTimeOfDayData(reqData);\n }\n }\n }, error => {\n if (isShowNotification) {\n //this.authService.showNotification(error.message, 'error');\n this.authService.showNotification('', 'Some error occured. please try again later', 'error');\n }\n //this.modalRef.close();\n });\n }\n\n private fetchTimeOfDayData(reqData: any): void {\n this.screenService.readTimeOfDayFile(reqData).subscribe(\n response => this.handleApiResponse(response),\n error => this.handleApiError(error)\n );\n }\n\n private handleApiResponse(response: any): void {\n if (response.status === 'error') {\n this.spinnerService.hide();\n this.authService.showNotification('', response.message, 'error');\n } else {\n this.currentTimeOfDay = response.data;\n this.currentRules = response.data.rules;\n this.tod_no_of_players = 0;\n this.configureModalElements();\n this.spinnerService.hide();\n this.resetTimeOfDayModal();\n }\n }\n\n private handleApiError(error: any): void {\n this.spinnerService.hide();\n this.authService.showNotification('', 'Some error occurred please try again later', 'error');\n }\n\n private configureModalElements(): void {\n $(\".selectpicker\").selectpicker();\n setTimeout(() => {\n $(\".selectpicker\").selectpicker('refresh');\n $(\"#divTodModalBody\").removeClass('disabled');\n }, 2000);\n }\n\n openSubscriptionsModal() {\n if (this.username) {\n this.spinnerService.show();\n this.subscriptionService.getSubscriptionDetails(this.username).subscribe(\n (response) => {\n if (response && response.data) {\n if(response.status === 'error') {\n this.spinnerService.hide();\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n } else {\n this.subscriptionDetails = response.data;\n this.spinnerService.hide();\n this.isAddDaysView = false;\n this.openModel(this.accountSubscriptionModal, { size: 'fullscreen_sm' });\n $('.selectpicker').selectpicker('refresh');\n }\n } else {\n this.spinnerService.hide();\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n }\n },\n (error) => {\n console.error('Error fetching subscription details:', error);\n this.spinnerService.hide();\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\n }\n );\n }\n }\n\n GetEncodedComponent(url): any {\n return encodeURIComponent(url);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/screen-builder/screen-builder.component.ts","module.exports = \".form-control {\\r\\n background-color: white !important;\\r\\n color: black !important;\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: #FF0000;\\r\\n}\\r\\n\\r\\n#addDaysLeft {\\r\\n width: 50%;\\r\\n padding: 20px;\\r\\n padding-top: 0px;\\r\\n}\\r\\n\\r\\n#addDaysRight {\\r\\n width: 50%;\\r\\n border-left: 2px solid gray;\\r\\n padding: 20px;\\r\\n padding-top: 0px;\\r\\n padding-left: 30px;\\r\\n}\\r\\n\\r\\n#card-number-element{\\r\\n padding-top: 12px;\\r\\n padding-bottom: 8px;\\r\\n}\\r\\n\\r\\n#card-expiry-element{\\r\\n padding-top: 12px;\\r\\n padding-bottom: 8px;\\r\\n}\\r\\n\\r\\n#card-cvc-element{\\r\\n padding-top: 12px;\\r\\n padding-bottom: 8px;\\r\\n}\\r\\n\\r\\n.not_req_ctrl {\\r\\n background-color: gray !important;\\r\\n color: white !important;\\r\\n}\\r\\n\\r\\n.not_req_ctrl::-webkit-input-placeholder {\\r\\n color: white !important;\\r\\n}\\r\\n\\r\\n.not_req_ctrl::-moz-placeholder {\\r\\n color: white !important;\\r\\n}\\r\\n\\r\\n.not_req_ctrl::-ms-input-placeholder {\\r\\n color: white !important;\\r\\n}\\r\\n\\r\\n.not_req_ctrl::placeholder {\\r\\n color: white !important;\\r\\n}\\r\\n\\r\\n.lbl_req_ctrl{\\r\\n padding-left: 10px;\\r\\n -ms-flex-line-pack: end;\\r\\n align-content: flex-end;\\r\\n}\\r\\n\\r\\n#accountFooterLeft {\\r\\n width: 50%;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: end;\\r\\n -ms-flex-pack: end;\\r\\n justify-content: flex-end;\\r\\n padding-right: 20px;\\r\\n}\\r\\n\\r\\n#accountFooterRight {\\r\\n width: 50%;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: end;\\r\\n -ms-flex-pack: end;\\r\\n justify-content: flex-end;\\r\\n}\\r\\n\\r\\n.grid-toggle-label {\\r\\n text-align: left!important;\\r\\n width: 100%!important;\\r\\n}\\r\\n\\r\\n#lblTotalAmount {\\r\\n font-size: larger;\\r\\n}\\r\\n\\r\\n.cardExpiryContainer {\\r\\n -webkit-box-flex: 0;\\r\\n -ms-flex: 0 0 20%;\\r\\n flex: 0 0 20%;\\r\\n max-width: 20%;\\r\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/subscription/subscription.component.css\n// module id = ./src/app/components/subscription/subscription.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ subscriptionDetails.accountDaysRemaining }}
\\r\\n
Days Remaining
\\r\\n
The number of days remaining that your account will have all of functionality necessary to build and deliver digital signage screens
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/subscription/subscription.component.html\n// module id = ./src/app/components/subscription/subscription.component.html\n// module chunks = main","import { Component, ElementRef, Input, OnInit, EventEmitter, TemplateRef, ViewChild, Output } from '@angular/core';\r\nimport { Stripe, StripeElements, StripeCardNumberElement, StripeCardExpiryElement, StripeCardCvcElement } from '@stripe/stripe-js';\r\nimport { SubscriptionService } from '../../services/subscription.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { Ng4LoadingSpinnerService } from 'ng4-loading-spinner';\r\n\r\ndeclare var jquery: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-subscription',\r\n templateUrl: './subscription.component.html',\r\n styleUrls: ['subscription.component.css']\r\n})\r\nexport class SubscriptionComponent implements OnInit {\r\n @ViewChild('cardNumberElement') cardNumberElement: ElementRef;\r\n @ViewChild('cardExpiryElement') cardExpiryElement: ElementRef;\r\n @ViewChild('cardCvcElement') cardCvcElement: ElementRef;\r\n\r\n // Accepting subscriptionDetails and userName as inputs\r\n @Input() public subscriptionDetails: any;\r\n @Input() public userName: string;\r\n\r\n @Output() subscriptionDetailsChange = new EventEmitter<{ dailyReport: boolean }>();\r\n\r\n public isAddDaysView: boolean = false;\r\n public daysToPurchase: number;\r\n public errorMessage: string | null = null;\r\n public username = null;\r\n \r\n private stripe: Stripe | null = null;\r\n private elements: StripeElements | null = null;\r\n\r\n private cardNumber: StripeCardNumberElement | null = null;\r\n private cardExpiry: StripeCardExpiryElement | null = null;\r\n private cardCvc: StripeCardCvcElement | null = null;\r\n\r\n constructor(private authService: AuthService,\r\n private subscriptionService: SubscriptionService,\r\n private spinnerService: Ng4LoadingSpinnerService,) { \r\n this.username = this.authService.currentUser.userName;\r\n }\r\n\r\n async ngOnInit() {\r\n this.stripe = await this.subscriptionService.getStripeInstance();\r\n }\r\n\r\n async ngAfterViewInit() {\r\n // Stripe elements will be initialized when `isAddDaysView` becomes true\r\n $('.selectpicker').selectpicker('refresh');\r\n }\r\n\r\n async addMoreDays() {\r\n this.isAddDaysView = true;\r\n // Initialize Stripe elements after `isAddDaysView` is true and elements are in the DOM\r\n this.setupStripeElement();\r\n }\r\n\r\n async showAccountSettings() {\r\n this.isAddDaysView = false;\r\n }\r\n\r\n private async setupStripeElement() {\r\n if (!this.stripe) {\r\n this.authService.showNotification('', 'Stripe instance is not available.', 'error');\r\n return;\r\n }\r\n\r\n this.elements = this.stripe.elements();\r\n\r\n // Ensure the view is fully loaded and elements are in the DOM\r\n setTimeout(() => {\r\n if (this.cardNumberElement && this.cardExpiryElement && this.cardCvcElement) {\r\n this.cardNumber = this.elements.create('cardNumber');\r\n this.cardNumber.mount(this.cardNumberElement.nativeElement);\r\n\r\n this.cardExpiry = this.elements.create('cardExpiry');\r\n this.cardExpiry.mount(this.cardExpiryElement.nativeElement);\r\n\r\n this.cardCvc = this.elements.create('cardCvc');\r\n this.cardCvc.mount(this.cardCvcElement.nativeElement);\r\n }\r\n }, 0);\r\n }\r\n\r\n async handleAccountSubscriptionSubmit(event: Event) {\r\n event.preventDefault();\r\n\r\n // Call the PaymentService to create the token\r\n if (this.cardNumber) {\r\n\r\n var max = 365;\r\n var min = 7;\r\n if (this.daysToPurchase < min || this.daysToPurchase > max) {\r\n this.spinnerService.hide();\r\n this.authService.showNotification('', 'Number of days should be between
7 and 365', 'error');\r\n return;\r\n }\r\n\r\n this.spinnerService.show();\r\n const { token, error } = await this.subscriptionService.createPaymentToken(this.cardNumber);\r\n\r\n if (error) {\r\n this.spinnerService.hide();\r\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\r\n console.log('Payment Error:', error);\r\n } else if (token) {\r\n let request = {\r\n token: token.id,\r\n userName: this.userName,\r\n noOfDaysToPurchase: this.daysToPurchase,\r\n FirstName: $(\"#txtFirstName\").val(),\r\n LastName: $(\"#txtLastName\").val(),\r\n Address: $(\"#txtAddress\").val(),\r\n Address2: $(\"#txtAddress2\").val(),\r\n Country: $(\"#txtCountry\").val(),\r\n City: $(\"#txtCity\").val(),\r\n State: $(\"#txtState\").val(),\r\n Zip: $(\"#txtZip\").val()\r\n }\r\n\r\n this.subscriptionService.processPayment(request).subscribe(\r\n (response) => this.handleProcessPaymentResponse(response),\r\n (err) => this.handleProcessPaymentError(err)\r\n );\r\n }\r\n }\r\n }\r\n\r\n handleProcessPaymentResponse(response: any) {\r\n this.spinnerService.hide();\r\n\r\n if (response.status == \"success\") {\r\n this.authService.showNotification('', response.message, 'success');\r\n this.spinnerService.show();\r\n\r\n this.subscriptionService.getSubscriptionDetails(this.userName).subscribe(\r\n (response) => {\r\n if (response && response.data) {\r\n this.subscriptionDetails = response.data;\r\n this.daysToPurchase = 1;\r\n this.isAddDaysView = false;\r\n this.spinnerService.hide();\r\n }\r\n },\r\n (error) => {\r\n this.spinnerService.hide();\r\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\r\n }\r\n );\r\n } else {\r\n this.authService.showNotification('', response.message, 'error');\r\n }\r\n }\r\n \r\n handleProcessPaymentError(error) {\r\n console.log('Payment error:', error)\r\n this.spinnerService.hide();\r\n this.authService.showNotification('', 'Some error occured please try again later', 'error');\r\n }\r\n\r\n isValid(): boolean {\r\n \r\n this.errorMessage = null;\r\n if($(\"#txtFirstName\").val() === '') {\r\n this.errorMessage = 'First Name is mandatory.';\r\n return false;\r\n }\r\n if($(\"#txtLastName\").val() === '') {\r\n this.errorMessage = 'Last Name is mandatory.';\r\n return false;\r\n }\r\n if (this.daysToPurchase === null || this.daysToPurchase === undefined) {\r\n this.errorMessage = 'Input cannot be empty.';\r\n return false;\r\n }\r\n // if (this.daysToPurchase < 7) {\r\n // this.errorMessage = 'Minimum value is 7.';\r\n // return false;\r\n // }\r\n // if (this.daysToPurchase > 365) {\r\n // this.errorMessage = 'Maximum value is 365.';\r\n // return false;\r\n // }\r\n return true;\r\n }\r\n\r\n onToggleDailyReport(event) {\r\n this.subscriptionDetails.dailyReport = event.target.checked;\r\n this.subscriptionDetailsChange.emit(this.subscriptionDetails);\r\n }\r\n\r\n saveAccountSettings() {\r\n this.spinnerService.show();\r\n this.subscriptionService.UpdateAccountSettings(this.subscriptionDetails).subscribe((response) => {\r\n this.spinnerService.hide();\r\n if (response.status === 'error') {\r\n this.authService.showNotification(response.message, '', 'error');\r\n } else {\r\n $(\"button.close\").click();\r\n this.authService.showNotification('Account settings saved successfully', 'success', 'success');\r\n }\r\n }, error => {\r\n this.spinnerService.hide();\r\n this.authService.showNotification('', 'Some error occured. please try again later', 'error');\r\n });\r\n }\r\n\r\n btnFullYearClick() {\r\n this.daysToPurchase = 365;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/subscription/subscription.component.ts","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport {AuthService} from '../services/auth.service';\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/operator/take';\nimport 'rxjs/add/operator/map';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(\n private authService: AuthService,\n private router: Router\n ) {}\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean {\n return this.authService.isLoggedIn.take(1)\n .map((isLoggedIn: boolean) => {\n if ( !isLoggedIn && this.router.url.indexOf('new-account')==-1) {\n this.router.navigate(['/login']); // {4}\n return false;\n }\n return true;\n });\n // if (localStorage.getItem('currentUser')) {\n // return true;\n // }\n // // not logged in so redirect to login page with the return url\n // this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }});\n // return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/guards/auth.guard.ts","export * from './auth.guard';\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/guards/index.ts","export class User {\n email: string;\n password: string;\n newPassword: string;\n username: string;\n userRole: string;\n homeDirectory: string;\n constructor() {}\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/user.ts","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe'\n})\nexport class SafePipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) {}\n transform(url) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/safe.pipe.ts","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { NotificationsService } from 'angular2-notifications';\nimport { AppSettingsService } from './app-settings.service';\nimport { AuthService } from './auth.service';\nimport { Observable } from 'rxjs/Observable';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable()\nexport class RegistrationService {\n\n private apiEndpoint;\n\n constructor(private http: HttpClient, private notificationService: NotificationsService, private AppSettings: AppSettingsService, private authService: AuthService) {\n this.apiEndpoint = this.AppSettings.getConfig('API_ENDPOINT');\n }\n\n getRegisteredPlayersByUser(userName): Observable {\n return this.http.get(this.apiEndpoint + 'Player/GetRegisteredPlayersByUser/' + userName).map(response => {\n return response;\n });\n }\n\n getTop10RegisteredPlayersByUser(userName): Observable {\n return this.http.get(this.apiEndpoint + 'Player/GetTop10RegisteredPlayersByUser/' + userName).map(response => {\n return response;\n });\n }\n\n registerPlayer(data): Observable {\n return this.http.post(this.apiEndpoint + 'player/register', data).map(response => {\n return response;\n });\n }\n\n updatePlayer(data): Observable {\n return this.http.post(this.apiEndpoint + 'player/update', data).map(response => {\n return response;\n });\n }\n\n deletePlayer(data): Observable {\n return this.http.post(this.apiEndpoint + 'player/delete', data).map(response => {\n return response;\n });\n }\n\n getPlayerStatusObjectByUser(userName): Observable {\n return this.http.get(this.apiEndpoint + 'Player/getPlayerStatusObjectByUser/' + userName).map(response => {\n return response;\n });\n }\n\n playerAction(data): Observable {\n return this.http.post(this.apiEndpoint + 'player/action', data).map(response => {\n return response;\n });\n }\n\n dmbTVAction(data): Observable {\n return this.http.post(this.apiEndpoint + 'player/dmbTVAction', data).map(response => {\n return response;\n });\n }\n\n getPlayerScreenshotTime(registrationCode): Observable {\n return this.http.get(this.apiEndpoint + 'Player/getPlayerScreenshotTime/' + registrationCode).map(response => {\n return response;\n });\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/Registration.service.ts","import { Injectable } from '@angular/core';\nimport { Http } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable()\nexport class AppSettingsService {\n // public static API_ENDPOINT = 'http://localhost:55166/api/';\n // public static MEDIA_URL = 'http://localhost:4200/assets/content/';\n\n private config: Object = null;\n\n constructor(private http: Http) {\n }\n\n /**\n * Use to get the data found in the second file (config file)\n */\n public getConfig(key: any) {\n return this.config[key];\n }\n\n /**\n * This method:\n * a) Loads \"config.json\" to get the current working environment (e.g.: 'production', 'development')\n * b) Loads \"config.[env].json\" to get all env's variables (e.g.: 'config.development.json')\n */\n public load() {\n return new Promise((resolve, reject) => {\n let request: any = null;\n request = this.http.get('assets/config/config.json');\n if (request) {\n request\n .map(res => res.json())\n .subscribe((responseData: any) => {\n this.config = responseData;\n resolve(true);\n });\n } else {\n console.error('Env config file \"env.json\" is not valid');\n resolve(true);\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/app-settings.service.ts","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/operator/toPromise';\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\n// import { Router } from '@angular/router';\nimport { NotificationsService } from 'angular2-notifications';\nimport { AppSettingsService } from './app-settings.service';\nimport { User } from '../models/user';\nimport { Headers } from '@angular/http';\nimport { Ng2DeviceService } from 'ng2-device-detector';\nimport {timer} from 'rxjs/observable/timer'\nimport { Subject } from 'rxjs';\n\ndeclare var videojs: any;\ndeclare var jquery: any;\ndeclare var $: any;\n\n@Injectable()\nexport class AuthService {\n\n private headers: Headers = new Headers({ 'Content-Type': 'application/json' });\n private loggedIn = new BehaviorSubject(false); // {1}\n public userObj = new BehaviorSubject(null);\n private user: User;\n public deviceInfo = null;\n private apiEndpoint;\n //public videoJS = videojs.default;\n constructor(private http: HttpClient, private notificationService: NotificationsService, private AppSettings: AppSettingsService, private deviceService: Ng2DeviceService) {\n if (localStorage.getItem('currentUser')) {\n this.loggedIn.next(true);\n this.userObj.next(JSON.parse(localStorage.getItem('currentUser')));\n // console.log(JSON.parse(localStorage.getItem('currentUser')));\n }\n this.deviceInfo = this.deviceService.getDeviceInfo();\n this.apiEndpoint = this.AppSettings.getConfig('API_ENDPOINT');\n // console.log(this.deviceInfo.browser);\n }\n\n public sessionWarningTimer$ = new Subject();\n \n /***\n * Get logged in status\n * @returns {Observable}\n */\n get isLoggedIn() {\n return this.loggedIn.asObservable(); // {2}\n }\n\n get currentUser(): any {\n this.user = JSON.parse(localStorage.getItem('currentUser'));\n return this.user;\n }\n\n get currentUserObj(): any {\n return this.userObj.asObservable();\n }\n\n /**\n *\n * @param {string} username\n * @param {string} password\n * @returns {Observable}\n */\n login(username: string, password: string): Observable {\n return this.http.post(this.apiEndpoint + 'login', { EmailID: username, Password: password }).map(user => {\n // login successful if there's a jwt token in the response\n if (user.data) {\n user.data.username = username;\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n localStorage.setItem('currentUser', JSON.stringify(user.data));\n this.loggedIn.next(true);\n console.log((user.data));\n this.userObj.next(user.data);\n // console.log(this.userObj);\n }\n return user;\n });\n }\n\n resetPassword(username: string, password: string, newPassword: string): Observable {\n return this.http.post(this.apiEndpoint + 'users/ResetPassword', { EmailID: username, Password: password, NewPassword: newPassword }).map(user => {\n return user;\n });\n }\n\n logout() {\n // remove user from local storage to log user out\n localStorage.removeItem('currentUser');\n this.loggedIn.next(false);\n this.userObj.next({});\n // this.createStuff();\n // bg-video-login\n }\n\n showNotification(title: string, message: string, type?: string): void {\n console.log(type);\n switch (type) {\n case 'success':\n this.notificationService.success(title, message, {\n timeOut: 2000,\n showProgressBar: false,\n pauseOnHover: false,\n clickToClose: false,\n clickIconToClose: true,\n });\n break;\n case 'Error':\n case 'error':\n this.notificationService.error(title, message, {\n timeOut: 5000,\n showProgressBar: true,\n pauseOnHover: true,\n clickToClose: false,\n clickIconToClose: true\n });\n break;\n case 'warn':\n this.notificationService.warn(title, message, {\n timeOut: 5000,\n showProgressBar: true,\n pauseOnHover: true,\n clickToClose: false,\n clickIconToClose: true\n });\n break;\n case 'info':\n this.notificationService.info(title, message, {\n timeOut: 5000,\n showProgressBar: true,\n pauseOnHover: true,\n clickToClose: false,\n clickIconToClose: true\n });\n break;\n default:\n this.notificationService.alert(title, message, {\n timeOut: 3000,\n showProgressBar: true,\n pauseOnHover: true,\n clickToClose: false,\n clickIconToClose: true\n });\n break;\n }\n }\n\n getBannerVideo() {\n \n // return this.http.get(this.AppSettings.getConfig('SETTING_FILE_URL')).map(response => {\n // return response;\n // });\n\n return this.AppSettings.getConfig('SETTING_FILE_URL');\n }\n\n createStuff(): void {\n // this.getBannerVideo().subscribe((response) => {\n // console.log(response.videoUrl);\n // this.crreateVideoPlayer(response.videoUrl);\n // }, (error) => {\n // console.log(error);\n // });\n\n var response = this.getBannerVideo();\n this.crreateVideoPlayer(response.videoUrl);\n }\n\n crreateVideoPlayer(videoUrl) {\n let isChrome = (this.deviceInfo.browser === 'chrome');\n let isOpera = (this.deviceInfo.browser === 'opera');\n let isIE = (this.deviceInfo.browser === 'chrome');\n \n // console.log($('#bg-video-login'))\n const videoCont = document.createElement(\"div\");\n // videoCont.style.cssText = \"position:absolute; left:0px; top:0px;\";\n // const vElement = '';\n // const vElement = '';\n // const vElement = '';\n const vElement = '';\n // const vElement =''\n videoCont.innerHTML = vElement;\n $('#bg-video-login').append(videoCont);\n\n if (isChrome || isOpera) {\n const player = videojs('myVideo1', { autoplay: 'muted' });\t// load and start to play the video\n player.bigPlayButton.hide();\n //player.width(1920);\n //player.height(1080);\n player.fluid(true);\n player.on('ended', function () {\n player.play();\n }); // re-start the video when it is done playing\n } else if (isIE) { // if this is an IE browser ....\n const player = videojs('myVideo1', { autoplay: true }); // load and start to play the video\n player.muted(true);\n player.autoplay();\n player.bigPlayButton.hide()\n // resize video (and div)\n // $('#video-cont ').width(1920).height(1080);\n //player.width(1920);\n //player.height(1080);\n player.fluid(true);\n player.on('ended', function () { player.play(); }); // re-start the video when it is done playing\n }\n\n // const player = videojs('myVideo1', {\n // autoplay: 'muted',\n // controls: false\n // });\n }\n\n setSessionTimeout()\n {\n const SessioTimeoutMinutes = 2\n timer(5000).subscribe(this.sessionWarningTimer$)\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/auth.service.ts","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\n\n@Injectable()\nexport class DataService {\n public data = [];\n public fileName = '';\n public tempalte = [];\n private messageSource = new BehaviorSubject(this.data);\n private screenSource = new BehaviorSubject(this.data);\n private openFileSource = new BehaviorSubject(this.fileName);\n private templateSource = new BehaviorSubject(this.tempalte);\n currentMessage = this.messageSource.asObservable();\n currentScreen = this.screenSource.asObservable();\n currentFile = this.openFileSource.asObservable();\n currentTemplate = this.templateSource.asObservable();\n\n constructor() { }\n\n changeMessage(message: any) {\n this.messageSource.next(message);\n }\n\n changeScreen(message: any) {\n this.screenSource.next(message);\n }\n\n openFile(fileName) {\n this.openFileSource.next(fileName);\n }\n\n changeTemplate(template){\n this.templateSource.next(template);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/data.service.ts","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { NotificationsService } from 'angular2-notifications';\nimport { AppSettingsService } from './app-settings.service';\nimport { AuthService } from './auth.service';\nimport { Observable } from 'rxjs/Observable';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable()\nexport class ScreenService {\n\n private apiEndpoint;\n\n constructor(private http: HttpClient, private notificationService: NotificationsService, private AppSettings: AppSettingsService, private authService: AuthService) {\n this.apiEndpoint = this.AppSettings.getConfig('API_ENDPOINT');\n }\n\n saveXmlFile(data): Observable {\n return this.http.post(this.apiEndpoint + 'image/savefile', data).map(response => {\n return response;\n });\n }\n\n saveTimeOfDay(data): Observable {\n return this.http.post(this.apiEndpoint + 'image/savetimeofday', data).map(response => {\n return response;\n });\n }\n\n readScreenShotData(userDir = 'admin'): Observable {\n return this.http.get(this.AppSettings.getConfig('MEDIA_URL') + userDir + '/manageclients/UpdateScreenshot/webpage_data/data.txt', { responseType: \"text\" as \"json\" }).map(response => {\n return response;\n });\n };\n\n saveScheduleXmlFile(data): Observable {\n return this.http.post(this.apiEndpoint + 'schedule/savefile', data).map(response => {\n return response;\n });\n }\n savePopupXmlFile(data): Observable {\n return this.http.post(this.apiEndpoint + 'popup/savefile', data).map(response => {\n return response;\n });\n }\n previewScreenlistFile(data): Observable {\n return this.http.post(this.apiEndpoint + 'file/UploadToFTP', data).map(response => {\n return response;\n });\n }\n publishScreenlistFile(data): Observable {\n return this.http.post(this.apiEndpoint + 'file/publishToPlayer', data).map(response => {\n return response;\n });\n }\n getCurrentUserFiles(): Observable {\n // alert();\n const currentUser = this.authService.currentUser;\n const username = (currentUser.hasOwnProperty('username')) ? currentUser.username : '';\n return this.http.get(this.apiEndpoint + 'file/GetFiles/' + username).map(response => {\n console.log(response);\n // alert(JSON.stringify(response.data.templates));\n return response;\n });\n }\n readScreenlistFile(data): Observable {\n return this.http.post(this.apiEndpoint + 'file/ReadXml', data).map(response => {\n return response;\n });\n }\n readTimeOfDayFile(data): Observable {\n return this.http.post(this.apiEndpoint + 'file/ReadTimeOfDay', data).map(response => {\n return response;\n });\n }\n readScheduleFile(data): Observable {\n return this.http.post(this.apiEndpoint + 'file/ReadScheduleXml', data).map(response => {\n return response;\n });\n }\n saveServerSettings(data): Observable {\n return this.http.post(this.apiEndpoint + 'server/InsertUpdateServerSetting', data).map(response => {\n return response;\n });\n }\n getServerSettings(userID, ServerName): Observable {\n return this.http.get(this.apiEndpoint + 'server/GetServerDetails/' + userID).map(response => {\n return response;\n });\n }\n // loginToEzTvServer(IPAddress, data): Observable {\n // return this.http.post(IPAddress + '/login', data).map(response => {\n // return response;\n // });\n // }\n // getEztvChannelList(IPAddress, token) {\n // return this.http.get(AppSettingsService.EZTV_API + '/channels?offset=0&limit=100&targetuseragent=PC_Mac', {\n // headers: new HttpHeaders().set('Authorization', 'Bearer ' + token)\n // }).map(response => {\n // return response;\n // });\n // }\n getVideoChannelList(userName) {\n return this.http.get(this.apiEndpoint + '/xml/ManageClients/' + userName).map(response => {\n return response;\n });\n }\n getUserServerList(UserId) {\n return this.http.get(this.apiEndpoint + '/Server/GetServerDetails/' + UserId + '?ServerName=content%20server', {\n // headers: new HttpHeaders().set('Authorization', 'Bearer ' + token)\n }).map(response => {\n return response;\n });\n }\n deleteContentServer(data) {\n return this.http.post(this.apiEndpoint + '/Server/DeleteServerSetting', data).map(response => {\n return response;\n });\n }\n deleteFilesFromServer(data): Observable {\n return this.http.post(this.apiEndpoint + 'deletefile', data).map(response => {\n return response;\n });\n }\n updateScreenName(data): Observable {\n return this.http.post(this.apiEndpoint + 'screen/updatename', data).map(response => {\n return response;\n });\n }\n deleteScreen(data): Observable {\n return this.http.post(this.apiEndpoint + 'screen/delete', data).map(response => {\n return response;\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/screen.service.ts","import { Injectable } from '@angular/core';\r\nimport { CreatePaymentMethodCardData, loadStripe, Stripe, StripeCardElement, StripeCardNumberElement, StripeElements } from '@stripe/stripe-js';\r\nimport { AppSettingsService } from './app-settings.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SubscriptionService {\r\n private stripe: Stripe | null = null;\r\n private elements: StripeElements | null = null;\r\n\r\n private apiEndpoint;\r\n private publishableKey;\r\n\r\n constructor(private AppSettings: AppSettingsService, private http: HttpClient) {\r\n this.apiEndpoint = this.AppSettings.getConfig('API_ENDPOINT');\r\n this.publishableKey = this.AppSettings.getConfig('STRIPE_PUBLISHABLE_KEY');\r\n this.initializeStripe();\r\n }\r\n\r\n private async initializeStripe() {\r\n this.stripe = await loadStripe(this.publishableKey);\r\n }\r\n\r\n public getStripeInstance(): Stripe | null {\r\n return this.stripe;\r\n }\r\n\r\n getSubscriptionDetails(userName: string): Observable {\r\n return this.http.get(`${this.apiEndpoint}Subscription/Details/${userName}`);\r\n }\r\n\r\n processPayment(processPaymentRequest: any): Observable {\r\n return this.http.post(`${this.apiEndpoint}Subscription/ProcessPayment`, processPaymentRequest, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n UpdateAccountSettings(subscriptionDetails: any): Observable {\r\n return this.http.post(`${this.apiEndpoint}Subscription/UpdateSettings`, subscriptionDetails, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n async createElements() {\r\n if (!this.elements && this.stripe) {\r\n this.elements = this.stripe.elements();\r\n }\r\n return this.elements;\r\n }\r\n\r\n async createPaymentToken(cardNumberElement: StripeCardNumberElement) {\r\n // Ensure Stripe is loaded before proceeding\r\n if (!this.stripe) {\r\n this.stripe = await loadStripe(this.publishableKey);\r\n }\r\n \r\n // Generate the token from the cardNumber element\r\n const { token, error } = await this.stripe.createToken(cardNumberElement);\r\n\r\n if (error) {\r\n console.error('Token creation error:', error.message);\r\n return { token: null, error };\r\n }\r\n\r\n return { token, error: null };\r\n }\r\n\r\n async createPaymentMethod(cardElement: StripeCardElement): Promise {\r\n if (!this.stripe) {\r\n throw new Error('Stripe.js has not been loaded.');\r\n } \r\n\r\n const paymentMethodData: CreatePaymentMethodCardData = {\r\n type: 'card',\r\n card: cardElement\r\n };\r\n\r\n return this.stripe.createPaymentMethod(paymentMethodData);\r\n }\r\n\r\n async createPaymentIntent(productId: string) {\r\n const response = await fetch(`${this.apiEndpoint}Subscription/CreatePaymentIntent`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n productId: productId\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n return data.data;\r\n }\r\n\r\n confirmCardPayment(clientSecret: string, cardElement: any) {\r\n return this.stripe.confirmCardPayment(clientSecret, {\r\n payment_method: {\r\n card: cardElement\r\n }\r\n });\r\n }\r\n\r\n notifyPaymentSuccess(userName: string, paymentIntentId: string) {\r\n // Call your backend API with payment success details\r\n return fetch(`${this.apiEndpoint}Subscription/PaymentSuccess`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n userName: userName,\r\n paymentIntentId: paymentIntentId\r\n })\r\n }).then(response => {\r\n if (!response.ok) {\r\n throw new Error('Failed to notify backend');\r\n }\r\n return response.json();\r\n });\r\n }\r\n\r\n async getStripeProductDetails(productId: string): Promise {\r\n const response = await fetch(`${this.apiEndpoint}Subscription/ProductDetails/${productId}`, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n });\r\n\r\n const data = await response.json();\r\n return data.data;\r\n }\r\n} \r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/subscription.service.ts","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { NotificationsService } from 'angular2-notifications';\nimport { AppSettingsService } from './app-settings.service';\nimport { AuthService } from './auth.service';\nimport { Observable } from 'rxjs/Observable';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable()\nexport class UserService {\n\n private apiEndpoint;\n constructor(private http: HttpClient, private notificationService: NotificationsService, private AppSettings: AppSettingsService, private authService: AuthService) {\n this.apiEndpoint = this.AppSettings.getConfig('API_ENDPOINT');\n }\n\n\n saveUser(data): Observable {\n return this.http.post(this.apiEndpoint + 'users/AddOrModifyUser', data).map(response => {\n return response;\n });\n }\n\n deleteUser(loggedinuserid, deleteduserid): Observable {\n return this.http.delete(this.apiEndpoint + 'users/DeleteUser?loggedinuserid=' + loggedinuserid + '&deleteduserid=' + deleteduserid).map(response => {\n return response;\n });\n }\n\n getUserList(): Observable {\n return this.http.get(this.apiEndpoint + 'Users/list').map(response => {\n return response;\n });\n }\n\n getUserRoleList(): Observable {\n return this.http.get(this.apiEndpoint + 'Users/Role').map(response => {\n return response;\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/user.service.ts","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: true\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\nimport {toPromise} from 'rxjs/operator/toPromise';\n\nif (environment.production) {\n enableProdMode();\n if (window) {\n window.console.log = function(){};\n }\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts"],"sourceRoot":"webpack:///"}