{"version":3,"sources":["webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/_models/error-type.ts","webpack:///./src/app/_models/roles.ts","webpack:///./src/app/_models/test-status.ts","webpack:///./src/app/_services/Paginator-intl.service.ts","webpack:///./src/app/_services/auth.service.ts","webpack:///./src/app/_services/check-for-update.service.ts","webpack:///./src/app/_services/common-dialog.service.ts","webpack:///./src/app/_services/date.service.ts","webpack:///./src/app/_services/evaluator.service.ts","webpack:///./src/app/_services/language.service.ts","webpack:///./src/app/_services/layout.service.ts","webpack:///./src/app/_services/localization.service.ts","webpack:///./src/app/_services/notification-log.service.ts","webpack:///./src/app/_services/notification.service.ts","webpack:///./src/app/_services/profession.service.ts","webpack:///./src/app/_services/province.service.ts","webpack:///./src/app/_services/scores.ts","webpack:///./src/app/_services/siteConfig.service.ts","webpack:///./src/app/_services/skill-area.service.ts","webpack:///./src/app/_services/title.service.ts","webpack:///./src/app/_services/user-notification.service.ts","webpack:///./src/app/_services/user-profile.service.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routing.ts","webpack:///./src/app/auth/auth-card/auth-card-footer/auth-card-footer.component.html","webpack:///./src/app/auth/auth-card/auth-card-footer/auth-card-footer.component.ts","webpack:///./src/app/auth/auth-card/auth-card-header/auth-card-header.component.html","webpack:///./src/app/auth/auth-card/auth-card-header/auth-card-header.component.ts","webpack:///./src/app/auth/auth-card/auth-card.component.html","webpack:///./src/app/auth/auth-card/auth-card.component.ts","webpack:///./src/app/auth/auth.component.html","webpack:///./src/app/auth/auth.component.scss","webpack:///./src/app/auth/auth.component.ts","webpack:///./src/app/auth/auth.guard.ts","webpack:///./src/app/auth/auth.interceptor.ts","webpack:///./src/app/auth/auth.module.ts","webpack:///./src/app/auth/auth.routing.ts","webpack:///./src/app/auth/create-new-password/create-new-password.component.html","webpack:///./src/app/auth/create-new-password/create-new-password.component.scss","webpack:///./src/app/auth/create-new-password/create-new-password.component.ts","webpack:///./src/app/auth/login.guard.ts","webpack:///./src/app/auth/login/forgot-password-popup/forgot-password-popup.component.html","webpack:///./src/app/auth/login/forgot-password-popup/forgot-password-popup.component.ts","webpack:///./src/app/auth/login/login.component.html","webpack:///./src/app/auth/login/login.component.scss","webpack:///./src/app/auth/login/login.component.ts","webpack:///./src/app/auth/login/unsupported-browser-warning/unsupported-browser-warning.component.html","webpack:///./src/app/auth/login/unsupported-browser-warning/unsupported-browser-warning.component.scss","webpack:///./src/app/auth/login/unsupported-browser-warning/unsupported-browser-warning.component.ts","webpack:///./src/app/auth/register/details/details.component.html","webpack:///./src/app/auth/register/details/details.component.scss","webpack:///./src/app/auth/register/details/details.component.ts","webpack:///./src/app/auth/register/details/user-registration.store.ts","webpack:///./src/app/auth/register/register.component.html","webpack:///./src/app/auth/register/register.component.scss","webpack:///./src/app/auth/register/register.component.ts","webpack:///./src/app/cookie-config.ts","webpack:///./src/app/dashboard/receive-certification-popup/receive-certification-popup.component.html","webpack:///./src/app/dashboard/receive-certification-popup/receive-certification-popup.component.ts","webpack:///./src/app/layout/header-layout/header-layout.component.html","webpack:///./src/app/layout/header-layout/header-layout.component.scss","webpack:///./src/app/layout/header-layout/header-layout.component.ts","webpack:///./src/app/layout/layout.module.ts","webpack:///./src/app/layout/main-layout/main-layout.component.html","webpack:///./src/app/layout/main-layout/main-layout.component.scss","webpack:///./src/app/layout/main-layout/main-layout.component.ts","webpack:///./src/app/layout/sidebar-layout/sidebar-layout.component.html","webpack:///./src/app/layout/sidebar-layout/sidebar-layout.component.scss","webpack:///./src/app/layout/sidebar-layout/sidebar-layout.component.ts","webpack:///./src/app/nocache.interceptor.ts","webpack:///./src/app/shared/app-components.module.ts","webpack:///./src/app/shared/components/box/box-body/box-body.component.html","webpack:///./src/app/shared/components/box/box-body/box-body.component.scss","webpack:///./src/app/shared/components/box/box-body/box-body.component.ts","webpack:///./src/app/shared/components/box/box-divider/box-divider.component.html","webpack:///./src/app/shared/components/box/box-divider/box-divider.component.scss","webpack:///./src/app/shared/components/box/box-divider/box-divider.component.ts","webpack:///./src/app/shared/components/box/box-header/box-header.component.html","webpack:///./src/app/shared/components/box/box-header/box-header.component.scss","webpack:///./src/app/shared/components/box/box-header/box-header.component.ts","webpack:///./src/app/shared/components/box/box.component.html","webpack:///./src/app/shared/components/box/box.component.scss","webpack:///./src/app/shared/components/box/box.component.ts","webpack:///./src/app/shared/components/communication-popup/communication-popup.component.html","webpack:///./src/app/shared/components/communication-popup/communication-popup.component.scss","webpack:///./src/app/shared/components/communication-popup/communication-popup.component.ts","webpack:///./src/app/shared/components/contact-us-popup/contact-us-popup.component.html","webpack:///./src/app/shared/components/contact-us-popup/contact-us-popup.component.ts","webpack:///./src/app/shared/components/language-toggle/language-toggle.component.html","webpack:///./src/app/shared/components/language-toggle/language-toggle.component.scss","webpack:///./src/app/shared/components/language-toggle/language-toggle.component.ts","webpack:///./src/app/shared/components/popup-support/popup-support.component.html","webpack:///./src/app/shared/components/popup-support/popup-support.component.scss","webpack:///./src/app/shared/components/popup-support/popup-support.component.ts","webpack:///./src/app/shared/components/privacy-popup/privacy-popup.component.html","webpack:///./src/app/shared/components/privacy-popup/privacy-popup.component.ts","webpack:///./src/app/shared/components/terms-popup/terms-popup.component.html","webpack:///./src/app/shared/components/terms-popup/terms-popup.component.ts","webpack:///./src/app/shared/components/test-date-time-selector/test-date-time-selector.component.html","webpack:///./src/app/shared/components/test-date-time-selector/test-date-time-selector.component.scss","webpack:///./src/app/shared/components/test-date-time-selector/test-date-time-selector.component.ts","webpack:///./src/app/shared/directives/auto-focus.directive.ts","webpack:///./src/app/shared/directives/confirm-equal-validator.directive.ts","webpack:///./src/app/shared/directives/has-role.directive.ts","webpack:///./src/app/shared/directives/preloader.directive.ts","webpack:///./src/app/shared/guards/prevent-leaving.guard.ts","webpack:///./src/app/shared/kj-controls/kj-error/kj-error.component.html","webpack:///./src/app/shared/kj-controls/kj-error/kj-error.component.scss","webpack:///./src/app/shared/kj-controls/kj-error/kj-error.component.ts","webpack:///./src/app/shared/kj-controls/kj-input/kj-input.component.html","webpack:///./src/app/shared/kj-controls/kj-input/kj-input.component.scss","webpack:///./src/app/shared/kj-controls/kj-input/kj-input.component.ts","webpack:///./src/app/shared/kj-controls/kj-time-selector/kj-time-selector.component.html","webpack:///./src/app/shared/kj-controls/kj-time-selector/kj-time-selector.component.scss","webpack:///./src/app/shared/kj-controls/kj-time-selector/kj-time-selector.component.ts","webpack:///./src/app/shared/kj-validators/kj-validators.ts","webpack:///./src/app/shared/notification/confirm-dialog/confirm-dialog.component.html","webpack:///./src/app/shared/notification/confirm-dialog/confirm-dialog.component.scss","webpack:///./src/app/shared/notification/confirm-dialog/confirm-dialog.component.ts","webpack:///./src/app/shared/notification/error-dialog/error-dialog.component.html","webpack:///./src/app/shared/notification/error-dialog/error-dialog.component.scss","webpack:///./src/app/shared/notification/error-dialog/error-dialog.component.ts","webpack:///./src/app/shared/notification/error-snackbar/error.component.html","webpack:///./src/app/shared/notification/error-snackbar/error.component.scss","webpack:///./src/app/shared/notification/error-snackbar/error.component.ts","webpack:///./src/app/shared/notification/ok-dialog/ok-dialog.component.css","webpack:///./src/app/shared/notification/ok-dialog/ok-dialog.component.html","webpack:///./src/app/shared/notification/ok-dialog/ok-dialog.component.ts","webpack:///./src/app/shared/notification/success-snackbar/success.component.html","webpack:///./src/app/shared/notification/success-snackbar/success.component.scss","webpack:///./src/app/shared/notification/success-snackbar/success.component.ts","webpack:///./src/app/shared/pipes/gettranslation.pipe.ts","webpack:///./src/app/shared/pipes/korto-date-long.pipe.ts","webpack:///./src/app/shared/pipes/korto-date-time.pipe.ts","webpack:///./src/app/shared/pipes/korto-date.pipe.ts","webpack:///./src/app/shared/pipes/korto-time-short.pipe.ts","webpack:///./src/app/shared/pipes/korto-time.pipe.ts","webpack:///./src/app/shared/pipes/safe-html.pipe.ts","webpack:///./src/app/shared/pipes/safe-url.pipe.ts","webpack:///./src/app/shared/pipes/time-span.pipe.ts","webpack:///./src/app/shared/pipes/tminus.pipe.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/user/personal-details/personal-details.component.html","webpack:///./src/app/user/personal-details/personal-details.component.scss","webpack:///./src/app/user/personal-details/personal-details.component.ts","webpack:///./src/app/user/personal-details/personal-details.module.ts","webpack:///./src/app/user/personal-details/profession-not-listed-popup/profession-not-listed-popup.component.html","webpack:///./src/app/user/personal-details/profession-not-listed-popup/profession-not-listed-popup.component.ts","webpack:///./src/app/user/user-certifications/user-certification/completed-certification-details/completed-certification-details.component.html","webpack:///./src/app/user/user-certifications/user-certification/completed-certification-details/completed-certification-details.component.scss","webpack:///./src/app/user/user-certifications/user-certification/completed-certification-details/completed-certification-details.component.ts","webpack:///./src/app/user/user-certifications/user-certification/skill-area-resume/skill-area-resume.component.html","webpack:///./src/app/user/user-certifications/user-certification/skill-area-resume/skill-area-resume.component.scss","webpack:///./src/app/user/user-certifications/user-certification/skill-area-resume/skill-area-resume.component.ts","webpack:///./src/app/user/user-certifications/user-certification/third-party-emails/edit-row/edit-row.component.html","webpack:///./src/app/user/user-certifications/user-certification/third-party-emails/edit-row/edit-row.component.scss","webpack:///./src/app/user/user-certifications/user-certification/third-party-emails/edit-row/edit-row.component.ts","webpack:///./src/app/user/user-certifications/user-certification/third-party-emails/third-party-emails.component.html","webpack:///./src/app/user/user-certifications/user-certification/third-party-emails/third-party-emails.component.scss","webpack:///./src/app/user/user-certifications/user-certification/third-party-emails/third-party-emails.component.ts","webpack:///./src/app/user/user-certifications/user-certification/user-certification-test-item/user-certification-test-item.component.html","webpack:///./src/app/user/user-certifications/user-certification/user-certification-test-item/user-certification-test-item.component.scss","webpack:///./src/app/user/user-certifications/user-certification/user-certification-test-item/user-certification-test-item.component.ts","webpack:///./src/environments/environment.ts","webpack:///./src/hmr.ts","webpack:///./src/main.ts","webpack:///./util.inspect (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;ACxSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;ACpHA;AAAA;AAAA;;;GAGG;AAEH,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,8BAAiB;IACjB,sCAAyB;IACzB,4BAAe;AACjB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;;;;;;;;;;;;;ACTD;AAAA;AAAA;;;GAGG;AAEH;IAAA;IAKA,CAAC;IAJiB,WAAK,GAAW,OAAO,CAAC;IACxB,eAAS,GAAW,WAAW,CAAC;IAChC,gBAAU,GAAW,aAAa,CAAC;IACnC,eAAS,GAAW,WAAW,CAAC;IAClD,YAAC;CAAA;AALiB;;;;;;;;;;;;;ACLlB;AAAA;AAAA;;;GAGG;AAEH,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,+BAAiB;IACjB,iCAAmB;IACnB,qCAAuB;IACvB,qCAAuB;IACvB,iCAAmB;AACrB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX0C;AACU;AAMrD;IAA0C,wCAAgB;IAH1D;QAAA,qEA4CC;QAvCC,uBAAiB,GAAG,gBAAgB,CAAC;QACrC,mBAAa,GAAG,WAAW,CAAC;QAC5B,uBAAiB,GAAG,eAAe,CAAC;QACpC,mBAAa,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE,MAAM;YAC9C,IAAM,EAAE,GAAG,IAAI,CAAC,SAAS;gBACvB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC;gBAC/C,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClC,OAAO,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC;aACjC;YACD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;YACnC,2FAA2F;YAC3F,IAAM,QAAQ,GACZ,UAAU,GAAG,MAAM;gBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,EAAE,MAAM,CAAC;gBACzC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC;YAC5B,OAAO,UAAU,GAAG,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC;QACrE,CAAC,CAAC;;IAqBJ,CAAC;IAnBC,qDAAsB,GAAtB,UAAuB,SAA2B;QAAlD,iBAQC;QAPC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC;YACpC,KAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,8CAAe,GAAf;QACE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAC7C,+BAA+B,CAChC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAC7C,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAxCU,oBAAoB;QAHhC,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;OACW,oBAAoB,CAyChC;IAAD,2BAAC;CAAA,CAzCyC,kEAAgB,GAyCzD;AAzCgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPkB;AACD;AACI;AACL;AAIR;AAEP;AAGI;AACQ;AAK9C;IAgDE,qBACU,IAAgB,EAChB,MAAc,EACM,OAAe,EACnC,SAAoB;QAHpB,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;QACM,YAAO,GAAP,OAAO,CAAQ;QACnC,cAAS,GAAT,SAAS,CAAW;QAnD9B,qBAAgB,GAAG,IAAI,mEAAgB,EAAE,CAAC;QAC1C,WAAM,GAAG,EAAE,CAAC;QACJ,oBAAe,GAAG,KAAK,CAAC;QAmD9B,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,uBAAoB,CAAC;IACpD,CAAC;IAjDD,sBAAW,uCAAc;aAAzB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;aAED,UAA0B,KAAc;YACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;;;OALA;IAOD,sBAAW,iCAAQ;aAAnB;YACE,IAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YACrD,IAAI,GAAG,KAAK,CAAC,EAAE;gBACb,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;aACnB;YACD,OAAO,GAAG,CAAC;QACb,CAAC;aACD,UAAoB,KAAa;YAC/B,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;;;OAHA;IAKD,sBAAY,oCAAW;aAAvB;YACE,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;aACD,UAAwB,KAAa;YACnC,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAClC;iBAAM;gBACL,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACtC;QACH,CAAC;;;OAPA;IASD,sBAAY,qCAAY;aAAxB;YACE,OAAO,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;aACD,UAAyB,KAAa;YACpC,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;aACpC;iBAAM;gBACL,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACxC;QACH,CAAC;;;OAPA;IAkBD,8BAAQ,GAAR,UAAS,iBAAoC;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,IAAI,CAAC,MAAM,cAAW,EAAE,iBAAiB,CAAC,CAAC;IACzF,CAAC;IAED,2BAAK,GAAL,UAAM,cAA8B;QAApC,iBAeC;QAdC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,IAAI,CAAC,MAAM,WAAQ,EAAE,cAAc,CAAC,CAAC,IAAI,CAC5E,0DAAG,CAAC,kBAAQ;YACV,0DAA0D;YAC1D,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;gBACpC,kGAAkG;gBAClG,KAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;gBACxC,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC5B,4EAA4E;gBAC5E,KAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;gBAC1C,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACnD;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,oCAAc,GAAtB,UAAuB,KAAa,EAAE,QAAgB;QACpD,+DAA+D;QAC/D,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,mEAAmE;QACnE,6CAA6C;QAC7C,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;QACnC,IAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxF,kDAAkD;QAClD,IAAI,IAAI,GAAG,IAAI,GAAG,IAAK,EAAE;YACvB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/F,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAEO,+BAAS,GAAjB,UAAkB,QAAQ,EAAE,KAAa;QAAE,iBAAiB;aAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;YAAjB,gCAAiB;;QAC1D,QAAQ,CAAC,IAAI,OAAb,QAAQ,GAAM,KAAK,SAAK,OAAO,GAAE;IACnC,CAAC;IAEO,qCAAe,GAAvB,UAAwB,QAAgB;QAAxC,iBAkCC;QAjCC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,IAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxF,IAAI,QAAQ,GAAG,QAAQ,IAAI,IAAI,GAAG,IAAI,EAAE;YACtC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxF,OAAO;SACR;QAED,IAAI,CAAC,IAAI;aACN,IAAI,CAAgB,IAAI,CAAC,MAAM,mBAAgB,EAAE;YAChD,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,IAAI,CAAC,YAAY;SAClB,CAAC;aACf,IAAI,CACH,iEAAU,CAAC,eAAK;YACd,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,KAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,uDAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CACH;aACA,SAAS,CAAC,kBAAQ;YACjB,IAAI,QAAQ,CAAC,WAAW,EAAE;gBACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,KAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;gBACxC,KAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;gBAC1C,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;aACrD;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,KAAI,CAAC,SAAS,EAAE,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,4BAAM,GAAN;QACE,4BAA4B;QAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAE1B,iDAAiD;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,wBAAwB;QACxB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,IAAI,CAAC,MAAM,YAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,+BAAS,GAAT;QAAA,iBAEC;QADC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,WAAC,IAAI,YAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAhC,CAAgC,CAAC,CAAC;IACjE,CAAC;IAED,8BAAQ,GAAR;QACE,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACjE,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;SAC1D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAAS,GAAT,UAAU,YAAY;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,YAAY,CAAC,OAAO,CAAC,iBAAO;YAC1B,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC/B,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO;aACR;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,6BAAO,GAAP;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAqB,CAAC;IACtE,CAAC;IACO,6BAAO,GAAf,UAAgB,KAAuB;QACrC,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACjC;aAAM;YACL,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACrD;IACH,CAAC;IAED,+BAAS,GAAT;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC,EAAE,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,mCAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CACf,IAAI,CAAC,MAAM,mBAAgB,EAC9B,EAAE,EACF;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM;aACf;SACF,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,oCAAc,GAAd,UAAe,KAAa,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CACf,IAAI,CAAC,MAAM,oBAAiB,EAC/B,EAAE,EACF;YACE,MAAM,EAAE;gBACN,KAAK;gBACL,MAAM;aACP;SACF,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,uCAAiB,GAAjB,UAAkB,KAAa,EAAE,KAAa,EAAE,WAAmB;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAS,IAAI,CAAC,MAAM,uBAAoB,EAAE;YAC5D,KAAK;YACL,KAAK;YACL,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,oCAAc,GAAd,UAAe,SAA8B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,IAAI,CAAC,MAAM,oBAAiB,EAAE,SAAS,CAAC,CAAC;IAChG,CAAC;IAED,8BAAQ,GAAR;QACE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,4CAAsB,GAAtB;QACE,OAAO,IAAI,CAAC,WAAW,CAAC,mDAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,wCAAkB,GAAlB;QACE,OAAO,IAAI,CAAC,WAAW,CAAC,mDAAK,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,4CAAsB,GAAtB;QACE,OAAO,IAAI,CAAC,WAAW,CAAC,mDAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,6CAAuB,GAAvB;QACE,OAAO,IAAI,CAAC,WAAW,CAAC,mDAAK,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,2DAAqC,GAArC;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,gDAA0B,GAA1B;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAEO,qCAAe,GAAvB;QACE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3C,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IAEO,iCAAW,GAAnB,UAAoB,IAAY;QAC9B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEO,kCAAY,GAApB;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAkB,CAAC;IACtD,CAAC;IA/SU,WAAW;QAHvB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAoDG,uEAAM,CAAC,UAAU,CAAC;yCAFL,+DAAU;YACR,sDAAM,UAEH,2DAAS;OApDnB,WAAW,CAgTvB;IAAD,kBAAC;CAAA;AAhTuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBmB;AACK;AACG;AACL;AACe;AAK7D;IAGE,+BAAY,OAAiB,EAAU,QAAqB,EAAU,eAAoC;QAA1G,iBAgBC;QAhBsC,aAAQ,GAAR,QAAQ,CAAa;QAAU,oBAAe,GAAf,eAAe,CAAqB;QAExG,mCAAmC;QACnC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,aAAG;YAC7B,qGAAqG;YACrG,2GAA2G;YAC3G,sDAAsD;YACtD,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YACjD,KAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,iEAAiE;YACjE,IAAI,KAAI,CAAC,IAAI,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,KAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5D,KAAI,CAAC,IAAI,GAAG,qDAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;gBACpC,KAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+CAAe,GAAf;QAAA,iBAcC;QAbC,IAAI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,MAAM,EAAE;YACvD,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC9B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,wBAAwB,CAAC,EACtD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAC9C,CAAC;YAEF,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC;gBACzB,KAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxB,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;SAEJ;IACH,CAAC;IAnCU,qBAAqB;QAHjC,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAIqB,gEAAQ,EAAoB,6DAAW,EAA2B,yEAAmB;OAH/F,qBAAqB,CAoCjC;IAAD,4BAAC;CAAA;AApCiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTS;AACU;AAC6C;AACR;AACN;AAKpF;IACE,6BAAmB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAExC,uCAAS,GAAT;QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iGAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,yCAAW,GAAX;QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uGAAqB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,yCAAW,GAAX;QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+GAAuB,CAAC,CAAC;IAC5C,CAAC;IAbU,mBAAmB;QAH/B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAE2B,kEAAS;OADzB,mBAAmB,CAe/B;IAAD,0BAAC;CAAA;AAf+B;;;;;;;;;;;;;ACThC;AAAA;AAAA;AAAA;AAAA;;;;GAIG;AACI,SAAS,IAAI,CAAC,MAAc;IAAE,oBAAuB;SAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;QAAvB,mCAAuB;;IAC1D,IAAI,CAAC,MAAM,IAAI,MAAM,YAAY,IAAI,EAAE;QACrC,OAAO;KACR;SAAM,IAAI,MAAM,YAAY,KAAK,EAAE;QAClC,MAAM,CAAC,OAAO,CAAC,cAAI,IAAI,WAAI,gBAAC,IAAI,SAAK,UAAU,IAAxB,CAAyB,CAAC,CAAC;KACnD;SAAM;QACL,UAAU,CAAC,OAAO,CAAC,kBAAQ;YACzB,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;aACpC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBACpC,IAAI,gBAAC,KAAK,SAAK,UAAU,GAAE;aAC5B;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAED;;;;GAIG;AACI,SAAS,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7D,CAAC;AAEM,SAAS,uBAAuB,CAAC,IAAuB;IAAvB,kCAAiB,IAAI,EAAE;IAC7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCkD;AACD;AACR;AACJ;AAYtC;IAIE,0BAAoB,IAAgB,EAA8B,OAAe;QAA7D,SAAI,GAAJ,IAAI,CAAY;QAA8B,YAAO,GAAP,OAAO,CAAQ;QAC/E,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,mBAAgB,CAAC;IAChD,CAAC;IAEO,0CAAe,GAAvB,UAAwB,OAAY;QAClC,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACjB,MAAM,CAAC,WAAC,IAAI,cAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAnB,CAAmB,CAAC;aAChC,OAAO,CAAC,WAAC;YACR,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,yBAAyB;IACjB,uCAAY,GAApB,UAAqB,KAAK;QACxB,OAAO,0DAAI,CACT,KAAK,EACL,cAAc,EACd,OAAO,EACP,KAAK,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED,0DAA+B,GAA/B,UAAgC,KAAqC,EAAE,WAAmB;QAA1F,iBAIC;QAJsE,iDAAmB;QACxF,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAsC,IAAI,CAAC,MAAM,SAAI,KAAK,CAAC,WAAW,qBAAgB,WAAa,EAAE,KAAK,CAAC;aAC/G,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,YAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAApB,CAAoB,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,0DAA+B,GAA/B,UAAgC,KAAqC,EAAE,WAAmB;QAA1F,iBAIC;QAJsE,iDAAmB;QACxF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAsC,IAAI,CAAC,MAAM,SAAI,KAAK,CAAC,EAAE,qBAAgB,WAAa,EAAE,KAAK,CAAC;aACrG,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,YAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAApB,CAAoB,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,0DAA+B,GAA/B,UAAgC,KAAqC,EAAE,WAAmB;QAA1F,iBAQC;QARsE,iDAAmB;QACxF,OAAO,IAAI,CAAC,IAAI;aACb,MAAM,CACF,IAAI,CAAC,MAAM,SAAI,KAAK,CAAC,WAAW,SAAI,KAAK,CAAC,EAAE,gBAC7C,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,sBACpC,WAAa,CAC9B;aACA,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,YAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAApB,CAAoB,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,iEAAsC,GAAtC,UAAuC,WAAmB,EAAE,KAAW;QAAvE,iBAQC;QAPC,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAqC,IAAI,CAAC,MAAM,qCAA+B,WAAW,IAAI,EAAE,CAAE,EAAE;YACtG,MAAM,EAAE;gBACN,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE;aAC1B;SACF,CAAC;aACD,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,YAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAApB,CAAoB,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,iBAAiB;IACjB,2CAAgB,GAAhB,UAAiB,WAAmB;QAClC,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAgC,IAAI,CAAC,MAAM,SAAI,WAAW,iBAAc,CAAC;aAC5E,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,iEAAI,CAAC,CAAC,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAvF,CAAuF,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED,+BAA+B;IAC/B,uDAA4B,GAA5B,UACE,UAAkB,EAClB,YAAkB,EAClB,oBAAmC,EACnC,iBAAgC;QADhC,kEAAmC;QACnC,4DAAgC;QAEhC,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAuB,IAAI,CAAC,MAAM,mCAA8B,UAAY,EAAE;YAChF,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;gBAC3B,oBAAoB;gBACpB,iBAAiB;gBACjB,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE;aACjC,CAAC;SACH,CAAC;aACD,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,iEAAI,CAAC,CAAC,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,WAAW,CAAC,EAAtE,CAAsE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,iDAAsB,GAAtB,UAAuB,UAAoB;QACzC,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAuB,IAAI,CAAC,MAAM,6BAAwB,UAAY,CAAC;aAC1E,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,iEAAI,CAAC,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,EAA3C,CAA2C,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,2CAAgB,GAAhB,UAAiB,UAAkB,EAAE,oBAAmC,EAAE,iBAAgC;QAArE,kEAAmC;QAAE,4DAAgC;QACxG,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAc,IAAI,CAAC,MAAM,uBAAkB,UAAY,EAAE;YAC3D,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;gBAC3B,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBACrE,oBAAoB;gBACpB,iBAAiB;aAClB,CAAC;SACH,CAAC;aACD,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAhE,CAAgE,CAAC,EAA5E,CAA4E,CAAC,CAAC,CAAC;IAClG,CAAC;IAED;;;;OAIG;IACH,oCAAS,GAAT,UAAU,UAAkB,EAAE,gBAAsB;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,IAAI,CAAC,MAAM,mBAAc,UAAY,EAAE,gBAAgB,CAAC,CAAC;IACpF,CAAC;IACD,sCAAW,GAAX,UAAY,UAAkB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,IAAI,CAAC,MAAM,qBAAgB,UAAY,CAAC,CAAC;IACtE,CAAC;IAED,wCAAa,GAAb;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,KAAG,IAAI,CAAC,MAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,8CAAmB,GAAnB;QACE,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAgC,IAAI,CAAC,MAAM,sBAAmB,CAAC;aAClE,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,iEAAI,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,EAAnC,CAAmC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,6CAAkB,GAAlB,UAAmB,UAAkB;QACnC,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAmC,IAAI,CAAC,MAAM,yBAAoB,UAAY,CAAC;aAClF,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,iEAAI,CAAC,CAAC,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EAAjD,CAAiD,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,gDAAqB,GAArB,UAAsB,eAA8C;QAClE,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CACA,IAAI,CAAC,MAAM,yBAAoB,eAAe,CAAC,UAAY,EAC9D,eAAe,CAChB;aACA,IAAI,CAAC,0DAAG,CAAC,WAAC,IAAI,iEAAI,CAAC,CAAC,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EAAjD,CAAiD,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,iDAAsB,GAAtB,UAAuB,UAAkB,EAAE,UAAmB;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,IAAI,CAAC,MAAM,6BAAwB,UAAU,oBAAe,UAAY,CAAC,CAAC;IACtH,CAAC;IAED,oDAAyB,GAAzB,UACE,UAAkB,EAClB,cAAsB,EACtB,UAAmB,EACnB,SAAe,EACf,eAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,IAAI,CAAC,MAAM,mCAA8B,UAAY,EAAE;YAC/F,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;gBAC3B,cAAc;gBACd,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;gBACjC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;gBACrD,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE;aAC5C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAtKU,gBAAgB;QAH5B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAKuC,uEAAM,CAAC,UAAU,CAAC;yCAA/B,+DAAU;OAJzB,gBAAgB,CAkL5B;IAAD,uBAAC;CAAA;AAlL4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfsB;AACD;AAER;AAEI;AACe;AAK7D;IAME,yBACU,IAAgB,EACI,OAAe,EACnC,mBAAwC;QAFxC,SAAI,GAAJ,IAAI,CAAY;QACI,YAAO,GAAP,OAAO,CAAQ;QACnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAPlD,cAAS,GAAG,WAAW,CAAC;QAStB,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,iBAAc,CAAC;IAC9C,CAAC;wBAZU,eAAe;IAe1B,sCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,KAAG,IAAI,CAAC,MAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,2CAAiB,GAAjB;QAAA,iBAKC;QAJC,OAAO,IAAI,+CAAU,CAAuB,oBAAU;YACpD,KAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACvC,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG,IAAI,YAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAA/B,CAA+B,CAAC,CAAC;QACjG,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,+CAAqB,GAA7B,UAA8B,UAA4C;QACxE,IAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAElD,IAAI,iBAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,iBAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,IAAI,CAAC,MAAM,WAAQ,CAAC,CAAC,SAAS,CACnE,mBAAS;YACP,iBAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YACxC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,EACD,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACJ,CAAC;;IArCM,qBAAK,GAAQ,EAAE,CAAC;IAWvB;QADC,+DAAS,EAAE;;;;uDAGX;IAjBU,eAAe;QAH3B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QASG,uEAAM,CAAC,UAAU,CAAC;yCADL,+DAAU,UAEK,yEAAmB;OATvC,eAAe,CA0C3B;IAAD,sBAAC;CAAA;AA1C2B;;;;;;;;;;;;;;;;;;;;;;;ACXe;AACZ;AAK/B;IAHA;QAKU,yBAAoB,GAAG,IAAI,4CAAO,EAAU,CAAC;QAErD,oBAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;IAM7D,CAAC;IAJC,4CAAoB,GAApB,UAAqB,KAAa;QAChC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IATU,aAAa;QAHzB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;OACW,aAAa,CAUzB;IAAD,oBAAC;CAAA;AAVyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNiB;AACY;AACJ;AACiC;AACzC;AAK3C;IAOE,6BACU,gBAAkC,EAClC,aAA4B,EAC5B,oBAA6C;QAF7C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,kBAAa,GAAb,aAAa,CAAe;QAC5B,yBAAoB,GAApB,oBAAoB,CAAyB;QAR7C,iBAAY,GAAG,IAAI,KAAK,EAAO,CAAC;QAClC,iBAAY,GAAG,IAAI,4CAAO,EAAU,CAAC;QAE5B,uBAAkB,GAAG,qBAAqB;IAMxD,CAAC;IAEI,qDAAuB,GAA/B;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACjC,IAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;QAC9D,OAAO,WAAW,IAAI,YAAY,CAAC;IACrC,CAAC;IAED,8CAAgB,GAAhB,UAAiB,MAAc;QAC7B,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAK,MAAM,aAAQ,MAAQ,CAAC,CAAC;QAEjH,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,uCAAS,GAAT,UAAU,MAAc;QACtB,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAK,MAAM,aAAQ,MAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAE1F,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,uCAAS,GAAT;QACE,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC;IAC7F,CAAC;IAED;;;OAGG;IACH,uCAAS,GAAT,UAAU,GAAsB,EAAE,iBAA0B;QAC1D,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,qCAAO,GAAP,UAAQ,GAAsB,EAAE,iBAA0B;QACxD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,+CAAiB,GAAjB,UAAkB,UAA2B,EAAE,MAAwB;QACrE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAED,4CAAc,GAAd;QAAA,iBAWC;QAVC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,eAAK;YAChD,IAAI,KAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC5B,mDAAmD;gBACnD,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,aAAG,IAAI,QAAE,GAAG,CAAC,UAA8B,CAAC,MAAM,EAA3C,CAA2C,CAAC,CAAC;gBACjG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC;gBACrD,KAAkB,UAAiB,EAAjB,UAAI,CAAC,YAAY,EAAjB,cAAiB,EAAjB,IAAiB,EAAE;oBAAhC,IAAM,GAAG;oBACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iBAC5B;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IA7EU,mBAAmB;QAH/B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAS4B,oEAAgB;YACnB,gEAAa;YACN,yEAAuB;OAV5C,mBAAmB,CA8E/B;IAAD,0BAAC;CAAA;AA9E+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTmB;AACW;AACZ;AACR;AACJ;AACO;AAIgB;AAK7D;IAGE,gCACU,IAAgB,EAChB,WAAwB,EACJ,OAAe,EACnC,mBAAwC;QAHxC,SAAI,GAAJ,IAAI,CAAY;QAChB,gBAAW,GAAX,WAAW,CAAa;QACJ,YAAO,GAAP,OAAO,CAAQ;QACnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,2BAAwB,CAAC;IACxD,CAAC;IAED,mDAAkB,GAAlB,UAAmB,EAAU;QAA7B,iBAOC;QANC,OAAO,IAAI,+CAAU,CAAuB,oBAAU;YACpD,KAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAC5C,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG;gBACxD,YAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,GAAG,CAAC;YAApC,CAAoC,CACrC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACO,uDAAsB,GAA9B,UACE,EAAU,EACV,UAA4C;QAE5C,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAA0B,IAAI,CAAC,MAAM,aAAQ,EAAI,CAAC;aACrD,SAAS,CACR,cAAI,IAAI,iBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAArB,CAAqB,EAC7B,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACN,CAAC;IAED,oDAAmB,GAAnB;QAAA,iBAOC;QANC,OAAO,IAAI,+CAAU,CAAyB,oBAAU;YACtD,KAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACzC,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG;gBACxD,YAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC;YAAjC,CAAiC,CAClC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACO,wDAAuB,GAA/B,UACE,UAA8C;QADhD,iBAaC;QAVC,IAAI,CAAC,IAAI;aACN,GAAG,CAA4B,IAAI,CAAC,MAAM,UAAO,CAAC;aAClD,IAAI,CACH,0DAAG,CAAC,WAAC,IAAI,iEAAI,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,EAAlC,CAAkC,CAAC,EAC5C,0DAAG,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,CAAC,KAAI,CAAC,cAAc,CAAC,EAA3B,CAA2B,CAAC,CACtC;aACA,SAAS,CACR,0BAAgB,IAAI,iBAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAjC,CAAiC,EACrD,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACN,CAAC;IAEO,+CAAc,GAAtB,UAAuB,CAAuB,EAAE,CAAuB;QACrE,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,yCAAQ,GAAR,UAAS,EAAwB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,IAAI,CAAC,MAAM,cAAW,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,+CAAc,GAAd;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,IAAI,CAAC,MAAM,iBAAc,CAAC,CAAC;IAC7D,CAAC;IAhEU,sBAAsB;QAHlC,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAOG,uEAAM,CAAC,UAAU,CAAC;yCAFL,+DAAU;YACH,yDAAW,UAEH,yEAAmB;OAPvC,sBAAsB,CAiElC;IAAD,6BAAC;CAAA;AAjEkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdqB;AACG;AACZ;AACuD;AAEX;AACN;AACW;AAEnC;AAE0B;AAKvF;IAKE,6BACS,MAAiB,EAChB,QAAqB,EACrB,mBAAwC;QAFzC,WAAM,GAAN,MAAM,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAa;QACrB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAP1C,yBAAoB,GAAkB;YAC5C,IAAI,EAAE,IAAI;SACX,CAAC;IAMC,CAAC;IAEJ;;;;OAIG;IACH,gDAAkB,GAAlB,UAAmB,UAAkB,EAAE,QAAe;QAAtD,iBAIC;QAJsC,0CAAe;QACpD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;YACvD,IAAI,EAAE,iBAAO,IAAI,YAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAvC,CAAuC;SACzD,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,6CAAe,GAAf,UAAgB,OAAe,EAAE,QAAe;QAAf,0CAAe;QAC9C,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,wGAAgB,EAAE;YAChD,QAAQ;YACR,IAAI,EAAE;gBACJ,OAAO;aACR;SACF,CAAC,CAAC;IACL,CAAC;IACD,2CAAa,GAAb,UAAc,OAAe;QAC3B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,kGAAc,EAAE;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC,OAAO,CAAC;aACnB;SACF,CAAC,CAAC;IACL,CAAC;IACD,6CAAe,GAAf,UAAgB,OAAe;QAC7B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,wGAAgB,EAAE;YAChD,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,MAAM;YAC1B,UAAU,EAAE,iBAAiB;YAC7B,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;IACL,CAAC;IAED,0CAAY,GAAZ,UAAa,OAAiB,EAAE,SAAc;QAC5C,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE;YACzC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO;aACjB;SACF,CAAC,CAAC;IACL,CAAC;IAED,4CAAc,GAAd,UAAe,UAAU,EAAE,SAAuC;QAAlE,iBAIC;QAJ0B,wCAAuB,4DAAS,CAAC,MAAM;QAChE,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,iBAAO;YAC9D,KAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;QACxC,CAAC,CAAC;IACJ,CAAC;IAED,yCAAW,GAAX,UAAY,OAAiB,EAAE,SAAuC;QAAvC,wCAAuB,4DAAS,CAAC,MAAM;QACpE,IAAI,SAAS,KAAK,4DAAS,CAAC,UAAU,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,kGAAc,CAAC,CAAC;SAC5C;QAED,IAAI,SAAS,KAAK,4DAAS,CAAC,MAAM,EAAE;YAClC,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACvD,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6GAAoB,EAAE,OAAO,CAAC,CAAC;SACjD;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,2CAAa,GAAb,UAAc,OAAsB;QAClC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mHAAsB,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,sCAAQ,GAAR,UAAS,OAAsB;QAC7B,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oGAAiB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,wCAAU,GAAV,UAAW,KAAU;QACnB,IAAM,GAAG,GAAkB,KAAK,CAAC,KAAK,CAAC;QACvC,IAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SACtC;QAED,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,sDAAwB,GAAxB,UAA4B,UAAkB;QAA9C,iBAQC;QAPC,OAAO;YACL,IAAI,EAAE,WAAC;gBACL,YAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,mBAAiB,UAAY,CAAC,CAAC,SAAS,CAAC;oBAC1E,IAAI,EAAE,iBAAO,IAAI,YAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAA7B,CAA6B;iBAC/C,CAAC;YAFF,CAEE;YACJ,KAAK,EAAE,eAAK,IAAI,YAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAtB,CAAsB;SACvC,CAAC;IACJ,CAAC;IApJU,mBAAmB;QAH/B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAOiB,2DAAS;YACN,6DAAW;YACA,yEAAmB;OARvC,mBAAmB,CAqJ/B;IAAD,0BAAC;CAAA;AArJ+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBmB;AACD;AAEJ;AACe;AACxB;AAKrC;IAKE,2BACU,IAAgB,EACI,OAAe,EACnC,mBAAwC;QAFxC,SAAI,GAAJ,IAAI,CAAY;QACI,YAAO,GAAP,OAAO,CAAQ;QACnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,oBAAiB,CAAC;IACjD,CAAC;0BAXU,iBAAiB;IAa5B,0CAAc,GAAd;QAAA,iBAKC;QAJC,OAAO,IAAI,+CAAU,CAAoB,oBAAU;YACjD,KAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACpC,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG,IAAI,YAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAA5B,CAA4B,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,8CAAkB,GAA1B,UAA2B,UAAyC;QAClE,IAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAElD,IAAI,mBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACjC,UAAU,CAAC,IAAI,CAAC,mBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,OAAO;SACR;QAED,IAAI,CAAC,IAAI;aACN,GAAG,CAAoB,KAAG,IAAI,CAAC,MAAQ,CAAC;aACxC,IAAI,CACH,0DAAG,CAAC,qBAAW;YACb,mFAAmF;YACnF,IAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,cAAc,EAAzB,CAAyB,CAAC,CAAC;YACtE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,IAAI,YAAY,EAAjB,CAAiB,CAAC,CAAC;YACzD,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAApC,CAAoC,CAAC,CAAC,CAAC,8IAA8I;YAC9N,OAAW,WAAW,SAAE,YAAY,GAAE;QACxC,CAAC,CAAC,CACH;aACA,SAAS,CACR,qBAAW;YACT,mBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YAC5C,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC,EACD,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACN,CAAC;;IA3CM,uBAAK,GAAQ,EAAE,CAAC;IAHZ,iBAAiB;QAH7B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAQG,uEAAM,CAAC,UAAU,CAAC;yCADL,+DAAU,UAEK,yEAAmB;OARvC,iBAAiB,CA+C7B;IAAD,wBAAC;CAAA;AA/C6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVqB;AACD;AAEJ;AACe;AAK7D;IAKE,yBACU,IAAgB,EACI,OAAe,EACnC,mBAAwC;QAFxC,SAAI,GAAJ,IAAI,CAAY;QACI,YAAO,GAAP,OAAO,CAAQ;QACnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,kBAAe,CAAC;IAC/C,CAAC;wBAXU,eAAe;IAa1B,sCAAY,GAAZ;QAAA,iBAKC;QAJC,OAAO,IAAI,+CAAU,CAAkB,oBAAU;YAC/C,KAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAClC,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG,IAAI,YAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAA1B,CAA0B,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,0CAAgB,GAAxB,UAAyB,UAAuC;QAC9D,IAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAElD,IAAI,iBAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,iBAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,KAAG,IAAI,CAAC,MAAQ,CAAC,CAAC,SAAS,CACxD,mBAAS;YACP,iBAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YACxC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,EACD,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACJ,CAAC;;IAhCM,qBAAK,GAAQ,EAAE,CAAC;IAHZ,eAAe;QAH3B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAQG,uEAAM,CAAC,UAAU,CAAC;yCADL,+DAAU,UAEK,yEAAmB;OARvC,eAAe,CAoC3B;IAAD,sBAAC;CAAA;AApC2B;;;;;;;;;;;;;;;;;;;;;;ACTe;AAE3C,IAAM,MAAM,GAAG;IACb,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACtG,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;CACvG,CAAC;AAKF;IAAA;IAaA,CAAC;IAZC,sBAAK,GAAL,UAAM,QAAgB;QACpB,OAAO,UAAC,KAAa;YACnB,OAAO,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;IAED,sBAAK,GAAL,UAAM,KAAa,EAAE,QAAgB;QACnC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAC;SACX;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAZU,MAAM;QAHlB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;OACW,MAAM,CAalB;IAAD,aAAC;CAAA;AAbkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVgC;AACD;AACJ;AACe;AAM7D;IAKE,2BACU,IAAgB,EACI,OAAe,EACnC,mBAAwC;QAFxC,SAAI,GAAJ,IAAI,CAAY;QACI,YAAO,GAAP,OAAO,CAAQ;QACnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,mBAAgB,CAAC;IAChD,CAAC;0BAXU,iBAAiB;IAa5B,yCAAa,GAAb;QAAA,iBAKC;QAJC,OAAO,IAAI,+CAAU,CAAkB,oBAAU;YAC/C,KAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACnC,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG,IAAI,YAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAA3B,CAA2B,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,6CAAiB,GAAzB,UAA0B,UAAuC;QAC/D,IAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAElD,IAAI,mBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACjC,UAAU,CAAC,IAAI,CAAC,mBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,KAAG,IAAI,CAAC,MAAQ,CAAC,CAAC,SAAS,CACxD,oBAAU;YACR,mBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC,EACD,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACJ,CAAC;;IAhCM,uBAAK,GAAQ,EAAE,CAAC;IAHZ,iBAAiB;QAH7B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAQG,uEAAM,CAAC,UAAU,CAAC;yCADL,+DAAU,UAEK,yEAAmB;OARvC,iBAAiB,CAoC7B;IAAD,wBAAC;CAAA;AApC6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTqB;AACD;AAEJ;AACe;AAK7D;IAGE,0BACU,IAAgB,EACI,OAAe,EACnC,mBAAwC;QAFxC,SAAI,GAAJ,IAAI,CAAY;QACI,YAAO,GAAP,OAAO,CAAQ;QACnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,mBAAgB,CAAC;IAChD,CAAC;IAED,uCAAY,GAAZ;QAAA,iBAOC;QANC,OAAO,IAAI,+CAAU,CAA2B,oBAAU;YACxD,KAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAClC,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG;gBACxD,YAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YAA1B,CAA0B,CAC3B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4CAAiB,GAAjB,UAAkB,mBAAmB;QAArC,iBAOC;QANC,OAAO,IAAI,+CAAU,CAA2B,oBAAU;YACxD,KAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;YAC5D,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG;gBACxD,YAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,GAAG,CAAC;YAApD,CAAoD,CACrD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,2CAAgB,GAAxB,UAAyB,UAAgD;QACvE,IAAI,CAAC,IAAI;aACN,GAAG,CAA8B,IAAI,CAAC,MAAM,eAAY,CAAC;aACzD,SAAS,CACR,mBAAS,IAAI,iBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAA1B,CAA0B,EACvC,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACN,CAAC;IAEO,gDAAqB,GAA7B,UACE,mBAA2B,EAC3B,UAAgD;QAEhD,IAAI,CAAC,IAAI;aACN,GAAG,CACC,IAAI,CAAC,MAAM,wBAAmB,mBAAmB,eAAY,CACjE;aACA,SAAS,CACR,mBAAS,IAAI,iBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAA1B,CAA0B,EACvC,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACN,CAAC;IAlDU,gBAAgB;QAH5B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAMG,uEAAM,CAAC,UAAU,CAAC;yCADL,+DAAU,UAEK,yEAAmB;OANvC,gBAAgB,CAmD5B;IAAD,uBAAC;CAAA;AAnD4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTsB;AAEL;AACI;AACW;AAK7D;IAKE,sBACU,IAAgB,EACI,OAAe,EACnC,mBAAwC;QAFxC,SAAI,GAAJ,IAAI,CAAY;QACI,YAAO,GAAP,OAAO,CAAQ;QACnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,eAAY,CAAC;IAC5C,CAAC;qBAXU,YAAY;IAavB,gCAAS,GAAT;QAAA,iBAKC;QAJC,OAAO,IAAI,+CAAU,CAAe,oBAAU;YAC5C,KAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC/B,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG,IAAI,YAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAvB,CAAuB,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oCAAa,GAArB,UAAsB,UAAoC;QAA1D,iBAeC;QAdC,IAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAElD,IAAI,cAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAClC,UAAU,CAAC,IAAI,CAAC,cAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,KAAG,IAAI,CAAC,MAAQ,CAAC,CAAC,SAAS,CACrD,gBAAM;YACJ,cAAY,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;YACjE,UAAU,CAAC,IAAI,CAAC,cAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC,EACD,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACJ,CAAC;IAED,6EAA6E;IACrE,oCAAa,GAArB,UAAsB,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC;aAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC,CAAC;;YAClC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;;IAvCM,wBAAW,GAAQ,EAAE,CAAC;IAHlB,YAAY;QAHxB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAQG,uEAAM,CAAC,UAAU,CAAC;yCADL,+DAAU,UAEK,yEAAmB;OARvC,YAAY,CA2CxB;IAAD,mBAAC;CAAA;AA3CwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACT0B;AACW;AACZ;AACb;AACQ;AAEgB;AAK7D;IAGE,iCACU,IAAgB,EAChB,WAAwB,EACJ,OAAe,EACnC,mBAAwC;QAHxC,SAAI,GAAJ,IAAI,CAAY;QAChB,gBAAW,GAAX,WAAW,CAAa;QACJ,YAAO,GAAP,OAAO,CAAQ;QACnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,2BAAwB,CAAC;IACxD,CAAC;IAED,qDAAmB,GAAnB,UAAoB,SAAiB;QAArC,iBAOC;QANC,OAAO,IAAI,+CAAU,CAAwB,oBAAU;YACrD,KAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACpD,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG;gBACxD,YAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC;YAA5C,CAA4C,CAC7C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACO,yDAAuB,GAA/B,UACE,SAAiB,EACjB,UAA6C;QAE7C,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAA2B,IAAI,CAAC,MAAM,SAAI,SAAW,CAAC;aACzD,SAAS,CACR,cAAI,IAAI,iBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAArB,CAAqB,EAC7B,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACN,CAAC;IAED,sDAAoB,GAApB;QAAA,iBAOC;QANC,OAAO,IAAI,+CAAU,CAA0B,oBAAU;YACvD,KAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;YAC1C,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAG;gBACxD,YAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;YAAlC,CAAkC,CACnC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACO,0DAAwB,GAAhC,UACE,UAA+C;QAE/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,KAAG,IAAI,CAAC,MAAQ,CAAC,CAAC,SAAS,CAChE,cAAI,IAAI,iBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAArB,CAAqB,EAC7B,eAAK,IAAI,iBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CACjC,CAAC;IACJ,CAAC;IAED,qDAAmB,GAAnB,UAAoB,qBAA4C;QAC9D,0CAA0C;QAC1C,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAI,IAAI,CAAC,MAAM,SAAI,qBAAqB,CAAC,EAAI,EAAE,qBAAqB,CAAC;aACxE,IAAI,CACH,0DAAG,CAAC,WAAC;YACH,oBAAY,qBAAqB,EAAG;QACtC,CAAC,CAAC,CACH,CAAC;IACN,CAAC;IAED,0CAAQ,GAAR,UAAS,KAAa;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,IAAI,CAAC,MAAM,kBAAa,KAAO,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,6CAAW,GAAX,UAAY,aAAqB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAChB,IAAI,CAAC,MAAM,qBAAgB,aAAe,EAC7C,EAAE,EACF;YACE,OAAO,EAAE,UAAU;SACpB,CACF,CAAC;IACJ,CAAC;IAxEU,uBAAuB;QAHnC,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAOG,uEAAM,CAAC,UAAU,CAAC;yCAFL,+DAAU;YACH,yDAAW,UAEH,yEAAmB;OAPvC,uBAAuB,CAyEnC;IAAD,8BAAC;CAAA;AAzEmC;AA2EpC,0DAA0D;AAC1D,2DAA2D;AAC3D,IAAI;AAEJ,2BAA2B;AAC3B,2BAA2B;AAC3B,qDAAqD;AACrD,uBAAuB;AACvB,yBAAyB;AACzB,wCAAwC;AACxC,sBAAsB;AACtB,2CAA2C;AAC3C,UAAU;AACV,6DAA6D;AAC7D,+BAA+B;AAC/B,iBAAiB;AACjB,OAAO;AACP,IAAI;AAEJ,sEAAsE;AACtE,oCAAoC;AACpC,yBAAyB;AACzB,uBAAuB;AACvB,cAAc;AACd,wDAAwD;AACxD,gCAAgC;AAChC,UAAU;AACV,eAAe;AACf,uBAAuB;AACvB,iDAAiD;AACjD,aAAa;AACb,WAAW;AACX,aAAa;AACb,oBAAoB;AACpB,uBAAuB;AACvB,8EAA8E;AAC9E,eAAe;AACf,oCAAoC;AACpC,gEAAgE;AAChE,YAAY;AACZ,WAAW;AACX,MAAM;AACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChI+C;AACD;AAEpC;AAKd;IAGE,4BACU,IAAgB,EACI,OAAe;QADnC,SAAI,GAAJ,IAAI,CAAY;QACI,YAAO,GAAP,OAAO,CAAQ;QAE3C,IAAI,CAAC,MAAM,GAAM,IAAI,CAAC,OAAO,oBAAiB,CAAC;IACjD,CAAC;IAED,oCAAO,GAAP,UAAQ,EAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,IAAI,CAAC,MAAM,SAAI,EAAI,CAAC,CAAC;IACjE,CAAC;IAED,oCAAO,GAAP,UAAQ,EAAU,EAAE,gBAAkC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,MAAM,SAAI,EAAI,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAED,yDAA4B,GAA5B,UAA6B,EAAU;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,IAAI,CAAC,MAAM,4BAAuB,EAAI,CAAC,CAAC;IAC3E,CAAC;IApBU,kBAAkB;QAH9B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;QAMG,uEAAM,CAAC,UAAU,CAAC;yCADL,+DAAU;OAJf,kBAAkB,CAqB9B;IAAD,yBAAC;CAAA;AArB8B;;;;;;;;;;;;ACR/B,iK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAwE;AACd;AACW;AACd;AACF;AACI;AACL;AACA;AACC;AACL;AAC2B;AAOhD;AACwB;AACgD;AAMnG;IASE,sBACE,SAA2B,EACnB,YAAiC,EACjC,WAAwB,EACxB,KAAqB,EACrB,MAAc,EACd,OAAyB,EACzB,gBAAkC,EAClC,qBAA4C,EAAE,iEAAiE;IAC/G,SAAkC,EAClC,aAA4B;QAR5B,iBAAY,GAAZ,YAAY,CAAqB;QACjC,gBAAW,GAAX,WAAW,CAAa;QACxB,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAkB;QACzB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,cAAS,GAAT,SAAS,CAAyB;QAClC,kBAAa,GAAb,aAAa,CAAe;QAlBtC,UAAK,GAAG,KAAK,CAAC;QACd,QAAG,GAAG,qEAAW,CAAC;QAEV,UAAK,GAAmB,EAAE,CAAC;QAiBjC,mBAAmB;QACnB,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvC,wCAAwC;QAExC,IAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpD,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SACtC;aAAM;YACL,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACjC;IACH,CAAC;IAhCD,sBAAY,gCAAM;aAAlB,UAAmB,GAAiB;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;;;OAAA;IAgCD,+BAAQ,GAAR;QAAA,iBAgBC;QAfC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,eAAK;YAChD,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,KAAI,CAAC,6BAA6B,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,WAAC;gBACnC,IAAI,KAAI,CAAC,KAAK,IAAI,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE;oBAC7F,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAClC;YACH,CAAC,CAAC,CAAC;SACJ;QACD,0EAAkB,CAAC,oEAAO,EAAE,OAAO,CAAC,CAAC;QACrC,0EAAkB,CAAC,oEAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,8CAAuB,GAAvB;QAAA,iBAyCC;QAxCC,iEAAiE;QACjE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;YAChD,wDAAwD;YACxD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC;YACjD,wDAAwD;YACxD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,2BAA2B;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,UAAC,KAAyB;YAC3E,uDAAuD;YACvD,0GAA0G;YAC1G,OAAO,CAAC,GAAG,CAAC,iCAA+B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAG,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,UAAC,KAA2B;YAC/E,wDAAwD;YACxD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,KAAK,EAAE,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YACpF,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;gBAC3B,oDAAoD;gBACpD,IAAM,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBACxC,KAAwB,UAAgB,EAAhB,WAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAhB,cAAgB,EAAhB,IAAgB,EAAE;oBAArC,IAAM,SAAS;oBAClB,IAAI,SAAS,KAAK,0EAA0B;wBAAE,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;iBACpF;aACF;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC;YACnD,wDAAwD;YACxD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,kCAAkC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,KAA0B;YAC7E,wDAAwD;YACxD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oDAA6B,GAA7B;QAAA,iBAwBC;QAvBC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,oFAAoC,CAAC,CAAC,SAAS,CAAC,uBAAa;YACrF,IAAM,MAAM,GAAG,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAEtC,qDAAqD;YACrD,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAE9C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,+DAAS,EAAE,CAAC,CAAC;YACtC,oBAAoB;YACpB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YAEtB,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,qDAAqD;YAC/E,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2CAA2C;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAW,GAAX;QACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAC,IAAI,QAAC,CAAC,WAAW,EAAE,EAAf,CAAe,CAAC,CAAC;IAC3C,CAAC;IAhIU,YAAY;QAJxB,+DAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,yFAAmC;SACpC,CAAC;yCAWa,oEAAgB;YACL,kFAAmB;YACpB,kEAAW;YACjB,8DAAc;YACb,sDAAM;YACL,6DAAW;YACF,oEAAgB;YACX,yFAAqB;YACjC,0EAAuB;YACnB,iEAAa;OAnB3B,YAAY,CAiIxB;IAAD,mBAAC;CAAA;AAjIwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBU;AACM;AAKX;AACyB;AACwB;AAC5B;AAET;AACM;AACM;AACP;AACsB;AACJ;AAKpC;AACiC;AACJ;AACA;AACG;AACX;AACkB;AACf;AAQ1B;AACuB;AACS;AACgC;AAIjD;AAC8B;AACb;AACZ;AAE/C,kDAAkD;AAC3C,SAAS,iBAAiB,CAAC,IAAgB;IAChD,OAAO,IAAI,+EAAmB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AA2ED;IACE,mBAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACzC,+BAA+B;QAC/B,wCAAwC;IAC1C,CAAC;IAJU,SAAS;QAzErB,8DAAQ,CAAC;YACR,YAAY,EAAE,CAAC,2DAAY,CAAC;YAC5B,OAAO,EAAE;gBACP,kFAAmB;gBACnB,uEAAa,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;gBACjE,qEAAgB;gBAChB,4FAAuB;gBACvB,4DAAU;gBACV,kEAAY;gBACZ,mEAAY;gBACZ,sEAAmB;gBACnB,qFAAmB;gBACnB,uBAAuB;gBACvB,4EAAmB,CAAC,QAAQ,CAAC,gBAAgB,EAAE;oBAC7C,OAAO,EAAE,sEAAW,CAAC,UAAU;iBAChC,CAAC;gBACF,oEAAe,CAAC,OAAO,CAAC;oBACtB,MAAM,EAAE;wBACN,OAAO,EAAE,oEAAe;wBACxB,UAAU,EAAE,iBAAiB;wBAC7B,IAAI,EAAE,CAAC,+DAAU,CAAC;qBACnB;iBACF,CAAC;gBACF,yGAAyB,CAAC,OAAO,EAAE;gBACnC,yEAAsB,CAAC,OAAO,CAAC,4DAAY,CAAC;gBAC5C,uDAAuD;gBACvD,sDAAS;gBACT,wCAAwC;aACzC;YACD,SAAS,EAAE;gBACT,sEAAmB;gBACnB,qFAAmB;gBACnB,uBAAuB;gBACvB,gEAAY;gBACZ,mFAAmB;gBACnB,gEAAa;gBACb,2EAAe;gBACf;oBACE,OAAO,EAAE,mEAAgB;oBACzB,QAAQ,EAAE;wBACR,KAAK,EAAE;4BACL,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;yBACvB;wBACD,OAAO,EAAE;4BACP,SAAS,EAAE,GAAG;4BACd,cAAc,EAAE,UAAU;4BAC1B,aAAa,EAAE,IAAI;4BACnB,kBAAkB,EAAE,WAAW;yBAChC;qBACF;iBACF;gBACD,EAAE,OAAO,EAAE,iGAA+B,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBACxE,EAAE,OAAO,EAAE,+EAAqB,EAAE,QAAQ,EAAE,gEAAa,EAAE;gBAC3D,EAAE,OAAO,EAAE,sEAAiB,EAAE,QAAQ,EAAE,uEAAe,EAAE,KAAK,EAAE,IAAI,EAAE;gBACtE,EAAE,OAAO,EAAE,sEAAiB,EAAE,QAAQ,EAAE,wEAAkB,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzE;oBACE,OAAO,EAAE,6EAA0B;oBACnC,QAAQ,eAAO,IAAI,kEAAe,EAAE,IAAE,KAAK,EAAE,GAAG,GAAE;iBACnD;gBACD;oBACE,+CAA+C;oBAC/C,OAAO,EAAE,mEAAgB;oBACzB,UAAU,EAAE,mBAAS;wBACnB,IAAM,OAAO,GAAG,IAAI,sFAAoB,EAAE,CAAC;wBAC3C,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;wBAC1C,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,IAAI,EAAE,CAAC,qEAAgB,CAAC;iBACzB;aACF;YACD,SAAS,EAAE,CAAC,2DAAY,CAAC;YACzB,OAAO,EAAE,CAAC,4DAAY,CAAC;SACxB,CAAC;yCAEqC,sDAAM;OADhC,SAAS,CAKrB;IAAD,gBAAC;CAAA;AALqB;;;;;;;;;;;;;ACjItB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuD;AAE0B;AACnC;AACR;AAEtC,IAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,6FAAmB;QAC9B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,EAAE;gBACR,YAAY,EAAE,8CAA8C;aAC7D;SACF;QACD,OAAO,EAAE,CAAC,0DAAS,CAAC;QACpB,WAAW,EAAE,CAAC,0DAAS,CAAC;QACxB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,mDAAK,CAAC,SAAS,EAAE,mDAAK,CAAC,UAAU,EAAE,mDAAK,CAAC,SAAS,EAAE,mDAAK,CAAC,KAAK,CAAC;SACzE;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,6FAAmB;QAC9B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,EAAE;gBACR,YAAY,EAAE,+BAA+B;aAC9C;SACF;QACD,OAAO,EAAE,CAAC,0DAAS,CAAC;QACpB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,mDAAK,CAAC,KAAK,EAAE,mDAAK,CAAC,SAAS,CAAC;SACtC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,6FAAmB;QAC9B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,EAAE;gBACR,YAAY,EAAE,kEAAkE;aACjF;SACF;QACD,OAAO,EAAE,CAAC,0DAAS,CAAC;QACpB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,mDAAK,CAAC,SAAS,EAAE,mDAAK,CAAC,KAAK,EAAE,mDAAK,CAAC,SAAS,CAAC;SACvD;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,6FAAmB;QAC9B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,EAAE;gBACR,YAAY,EAAE,+BAA+B;aAC9C;SACF;QACD,OAAO,EAAE,CAAC,0DAAS,CAAC;QACpB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,mDAAK,CAAC,SAAS,EAAE,mDAAK,CAAC,KAAK,EAAE,mDAAK,CAAC,SAAS,EAAE,mDAAK,CAAC,UAAU,CAAC;SACzE;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,kCAAkC;QAChD,OAAO,EAAE,CAAC,0DAAS,CAAC;QACpB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,mDAAK,CAAC,SAAS,EAAE,mDAAK,CAAC,KAAK,EAAE,mDAAK,CAAC,UAAU,CAAC;SACxD;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,mDAAmD;QACjE,OAAO,EAAE,CAAC,0DAAS,CAAC;QACpB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,mDAAK,CAAC,KAAK,EAAE,mDAAK,CAAC,UAAU,CAAC;SACvC;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,8CAA8C;QAC5D,OAAO,EAAE,CAAC,0DAAS,CAAC;QACpB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,mDAAK,CAAC,KAAK,EAAE,mDAAK,CAAC,SAAS,CAAC;SACtC;KACF;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,YAAY,EAAE,oFAAoF;QAClG,OAAO,EAAE,CAAC,0DAAS,CAAC;QACpB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,mDAAK,CAAC,KAAK,EAAE,mDAAK,CAAC,SAAS,CAAC;SACtC;KACF;IAED,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;CAC5D,CAAC;AAEK,IAAM,SAAS,GAAG,4DAAY,CAAC,OAAO,CAAC,MAAM,EAAE;IACpD,aAAa,EAAE,KAAK,CAAC,8BAA8B;CACpD,CAAC,CAAC;;;;;;;;;;;;ACtGH,yF;;;;;;;;;;;;;;;;;;;;;;;;ACAkD;AAMlD;IACE;IAAe,CAAC;IAEhB,0CAAQ,GAAR,cAAY,CAAC;IAHF,uBAAuB;QAJnC,+DAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,mJAAgD;SACjD,CAAC;;OACW,uBAAuB,CAInC;IAAD,8BAAC;CAAA;AAJmC;;;;;;;;;;;;ACNpC,8E;;;;;;;;;;;;;;;;;;;;;;;;ACAkD;AAMlD;IACE;IAAe,CAAC;IAEhB,0CAAQ,GAAR,cAAY,CAAC;IAHF,uBAAuB;QAJnC,+DAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,mJAAgD;SACjD,CAAC;;OACW,uBAAuB,CAInC;IAAD,8BAAC;CAAA;AAJmC;;;;;;;;;;;;ACNpC,uCAAuC,yEAAyE,0BAA0B,yCAAyC,WAAW,SAAS,yS;;;;;;;;;;;;;;;;;;;;;;;;ACA9I;AAMzD;IAGE;QAFS,SAAI,GAAG,KAAK,CAAC;IAEP,CAAC;IAEhB,oCAAQ,GAAR,cAAY,CAAC;IAJJ;QAAR,2DAAK,EAAE;;mDAAc;IADX,iBAAiB;QAJ7B,+DAAS,CAAC;YACT,QAAQ,EAAE,eAAe;YACzB,oHAAyC;SAC1C,CAAC;;OACW,iBAAiB,CAM7B;IAAD,wBAAC;CAAA;AAN6B;;;;;;;;;;;;ACN9B,6W;;;;;;;;;;;ACAA,+DAA+D,uI;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAb;AACsB;AAEM;AACtB;AAOxD;IAGE,uBACU,MAAc,EACd,cAA8B,EAC9B,uBAAgD;QAH1D,iBAmBC;QAlBS,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAgB;QAC9B,4BAAuB,GAAvB,uBAAuB,CAAyB;QAL1D,eAAU,GAAG,KAAK,CAAC;QAOjB,mEAAmE;QACnE,IAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE;YACT,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;SACrD;QACD,IAAI,CAAC,MAAM,CAAC,MAAM;aACf,IAAI,CACH,6DAAM,CAAC,eAAK,IAAI,YAAK,YAAY,6DAAa,EAA9B,CAA8B,CAAC,EAC/C,0DAAG,CAAC,cAAM,YAAI,CAAC,cAAc,EAAnB,CAAmB,CAAC,EAC9B,gEAAS,CAAC,eAAK,IAAI,YAAK,CAAC,UAAU,CAAC,IAAI,EAArB,CAAqB,CAAC,CAC1C;aACA,SAAS,CAAC,cAAI;YACb,KAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gCAAQ,GAAR,cAAkB,CAAC;IAxBR,aAAa;QALzB,+DAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,gGAAoC;;SAErC,CAAC;yCAKkB,sDAAM;YACE,8DAAc;YACL,2FAAuB;OAN/C,aAAa,CAyBzB;IAAD,oBAAC;CAAA;AAzByB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXiB;AACwE;AAE9D;AACgB;AACA;AAC/B;AAKtC;IACE,mBACU,WAAwB,EACxB,MAAc,EACd,mBAAwC,EACzC,mBAAwC;QAHvC,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAQ;QACd,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAC9C,CAAC;IAEJ,+BAAW,GAAX,UAAY,KAA6B,EAAE,KAA0B;QACnE,2GAA2G;QAC3G,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE;gBAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,OAAO,KAAK,CAAC;aACd;SACF;QAED,EAAE;QACF,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;YAC7C,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAkB,CAAC;YAC9D,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC;aACd;SACF;QAED,8FAA8F;QAC9F,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;SACd;QAED,uGAAuG;QACvG,IAAI,CAAC,IAAI,CAAC,8BAA8B,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,mDAAK,CAAC,SAAS,CAAC,CAAC,EAAE;YACzF,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC;YAC7F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAClD,OAAO,KAAK,CAAC;SACd;QAED,qGAAqG;QACrG,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE;YAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,mDAAK,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aAClC;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,mDAAK,CAAC,UAAU,CAAC,CAAC,EAAE;gBACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;aACxC;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,mDAAK,CAAC,SAAS,CAAC,CAAC,EAAE;gBACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;aACtC;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAAO,GAAP,UAAQ,KAAY;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;YACvB,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAkB,CAAC;YACnD,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,oCAAgB,GAAxB;QAAA,iBAIC;QAHC,IAAI,CAAC,mBAAmB;aACrB,SAAS,CAAC,4BAA4B,CAAC;aACvC,SAAS,CAAC,sBAAY,IAAI,YAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAApD,CAAoD,CAAC,CAAC;IACrF,CAAC;IA5EU,SAAS;QAHrB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAGuB,kEAAW;YAChB,sDAAM;YACO,kFAAmB;YACpB,kFAAmB;OALtC,SAAS,CA6ErB;IAAD,gBAAC;CAAA;AA7EqB;;;;;;;;;;;;;;;;;;;;;;;;;;ACXqB;AAQU;AAGrD;IACE,yBAAoB,qBAAkC;QAAlC,0BAAqB,GAArB,qBAAqB,CAAa;IAAG,CAAC;IAE1D,mCAAS,GAAT,UACE,OAAyB,EACzB,IAAiB;QAEjB,uDAAuD;QACvD,IAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACpD,IAAI,KAAK,EAAE;YACT,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;gBACtB,UAAU,EAAE;oBACV,aAAa,EAAE,YAAU,KAAO;iBACjC;aACF,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAlBU,eAAe;QAD3B,gEAAU,EAAE;yCAEgC,kEAAW;OAD3C,eAAe,CAmB3B;IAAD,sBAAC;CAAA;AAnB2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXa;AACM;AACmB;AAET;AACb;AACsB;AAC2C;AAExD;AACe;AACA;AAC8B;AACA;AACjD;AACuB;AACO;AACrB;AACiC;AACA;AACM;AAC8B;AA6B/H;IAAA;IAAyB,CAAC;IAAb,UAAU;QA3BtB,8DAAQ,CAAC;YACR,OAAO,EAAE;gBACP,4DAAY;gBACZ,0DAAW;gBACX,kEAAmB;gBACnB,wEAAa;gBACb,6FAAuB;gBACvB,wDAAU;gBACV,iFAAmB;gBACnB,kEAAY;gBACZ,yGAAqB;gBACrB,yGAAyB;aAC1B;YACD,eAAe,EAAE,CAAC,yHAA4B,CAAC;YAC/C,YAAY,EAAE;gBACZ,8DAAa;gBACb,qEAAc;gBACd,8EAAiB;gBACjB,qFAAgB;gBAChB,yHAA4B;gBAC5B,8GAA0B;gBAC1B,gFAAiB;gBACjB,+GAAuB;gBACvB,+GAAuB;gBACvB,4IAAkC;aACnC;SACF,CAAC;OACW,UAAU,CAAG;IAAD,iBAAC;CAAA;AAAH;;;;;;;;;;;;;AClDvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuD;AAEvD,QAAQ;AACyC;AACQ;AACS;AACvB;AAC6B;AACK;AACoB;AAEjG,IAAM,UAAU,GAAW;IACzB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,6DAAa;QACxB,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,qEAAc;gBACzB,WAAW,EAAE,CAAC,uDAAU,CAAC;aAC1B;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,6GAA0B;gBACrC,4BAA4B;aAC7B;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,8EAAiB;gBAC5B,WAAW,EAAE,CAAC,uDAAU,CAAC;aAC1B;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,oFAAgB;gBAC3B,aAAa,EAAE,CAAC,0FAAqB,CAAC;gBACtC,IAAI,EAAE;oBACJ,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;SAC1D;KACF;CACF,CAAC;AAEK,IAAM,UAAU,GAAG,4DAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;;;;;;;;;;;;AC5C5D,0CAA0C,0CAA0C,gsBAAgsB,mCAAmC,mFAAmF,uCAAuC,89DAA89D,0CAA0C,sXAAsX,uCAAuC,sGAAsG,6BAA6B,8E;;;;;;;;;;;ACAz9G,+DAA+D,uL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAF;AACqC;AAC7C;AACgB;AACA;AAEZ;AAYzD;IAWE,oCACU,WAAwB;IAChC,0BAA0B;IAClB,KAAqB,EACrB,MAAc,EACd,WAAwB,EACxB,mBAAwC,EACzC,mBAAwC;QAPjD,iBA8BC;QA7BS,gBAAW,GAAX,WAAW,CAAa;QAExB,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QACxB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAVjD,aAAQ,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC9G,oBAAe,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAWzD,iFAAiF;QACjF,mEAAmE;QACnE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAM;YACrC,KAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,KAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,KAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEhD,IAAI,KAAI,CAAC,KAAK,KAAK,WAAW,IAAI,KAAI,CAAC,KAAK,KAAK,WAAW,IAAI,KAAI,CAAC,MAAM,KAAK,WAAW,EAAE;gBAC3F,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aAClC;iBAAM;gBACL,IAAI,KAAI,CAAC,MAAM,KAAK,WAAW,EAAE;oBAC/B,mBAAmB,CAAC,SAAS,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;iBAC5C;aACF;YAED,kBAAkB;YAClB,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACjC,QAAQ,EAAE,KAAI,CAAC,QAAQ;gBACvB,eAAe,EAAE,KAAI,CAAC,eAAe;aACtC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAAQ,GAAR;QAAA,iBAIC;QAHC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,aAAG;YAC9E,KAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gDAAW,GAAX;QACE,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SACzC;IACH,CAAC;IACD,kEAAkE;IAClE,8CAAS,GAAT,cAAmB,CAAC;IAEpB,+CAAU,GAAV,UAAW,IAAoC;QAC7C,IAAM,QAAQ,GAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;YACzC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACnC;IACH,CAAC;IACD,sDAAiB,GAAjB;QACE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,6DAAwB,GAAxB,UAAyB,CAAc;QACrC,sFAAsF;QAEtF,IAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,IAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvC,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAEhC,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;;YAElE,OAAO;gBACL,wBAAwB,EAAE;oBACxB,KAAK,EAAE,KAAK;iBACb;aACF,CAAC;IACN,CAAC;IAED,2CAAM,GAAN;QAAA,iBAeC;QAdC,wCAAwC;QACxC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,CAC5F,aAAG;gBACD,IAAI,GAAG,EAAE;oBACP,KAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC;oBAC1G,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAClC;YACH,CAAC,EACD,aAAG;gBACD,KAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC,CACF,CAAC;SACH;IACH,CAAC;IApGU,0BAA0B;QAVtC,+DAAS,CAAC;YACT,QAAQ,EAAE,yBAAyB;YACnC,kJAAmD;;SAEpD,CAAC;QACF;;;;WAIG;;yCAasB,kEAAW;YAEjB,8DAAc;YACb,sDAAM;YACD,0DAAW;YACH,kFAAmB;YACpB,kFAAmB;OAlBtC,0BAA0B,CAqGtC;IAAD,iCAAC;CAAA;AArGsC;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBI;AAOlB;AAE4B;AAKrD;IACE,oBAAoB,WAAwB,EAAU,MAAc;QAAhD,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAExE,gCAAW,GAAX,UAAY,KAA6B;QACvC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IATU,UAAU;QAHtB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;yCAEiC,kEAAW,EAAkB,sDAAM;OADzD,UAAU,CAUtB;IAAD,iBAAC;CAAA;AAVsB;;;;;;;;;;;;ACdvB,yCAAyC,4CAA4C,iHAAiH,8CAA8C,6RAA6R,6BAA6B,8aAA8a,+BAA+B,oPAAoP,8BAA8B,gBAAgB,4CAA4C,6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAvxC;AAC+B;AACZ;AAChB;AACgB;AACb;AACS;AAOjE;IAKE,sCACU,WAAwB,EACxB,WAAwB,EACxB,MAA2B,EAC5B,mBAAwC,EACvC,SAAqD,EACrD,iBAAoC;QALpC,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAqB;QAC5B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACvC,cAAS,GAAT,SAAS,CAA4C;QACrD,sBAAiB,GAAjB,iBAAiB,CAAmB;QAT9C,UAAK,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAWnE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IACD,+CAAQ,GAAR;QAAA,iBAIC;QAHC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,oBAAU;YACzD,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAAM,GAAN;QAAA,iBASC;QARC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW;iBACb,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;iBAC5F,SAAS,CAAC,aAAG;gBACZ,KAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IAhCU,4BAA4B;QAJxC,+DAAS,CAAC;YACT,QAAQ,EAAE,2BAA2B;YACrC,8JAAqD;SACtD,CAAC;yCAOuB,kEAAW;YACX,0DAAW;YAChB,kFAAmB;YACP,kFAAmB;YAC5B,qEAAY;YACJ,8EAAiB;OAXnC,4BAA4B,CAiCxC;IAAD,mCAAC;CAAA;AAjCwC;;;;;;;;;;;;ACbzC,0CAA0C,6BAA6B,qYAAqY,6BAA6B,6fAA6f,gCAAgC,kUAAkU,8BAA8B,uGAAuG,kCAAkC,kGAAkG,kDAAkD,mC;;;;;;;;;;;ACAnoD,8BAA8B,mBAAmB,qBAAqB,EAAE,sBAAsB,iCAAiC,sBAAsB,EAAE,+CAA+C,2jB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA5J;AAMlB;AAC6B;AACZ;AACK;AACyD;AAClC;AAEA;AAOrE;IAME,wBACU,WAAwB,EACxB,MAAc,EACd,WAAwB,EACxB,mBAAwC,EACzC,MAAiB,EACjB,mBAAwC;QALvC,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QACxB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzC,WAAM,GAAN,MAAM,CAAW;QACjB,wBAAmB,GAAnB,mBAAmB,CAAqB;QATjD,UAAK,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,aAAQ,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAUpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACtC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED,8BAAK,GAAL;QAAA,iBAyBC;QAxBC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAE9D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAEzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CACnD;gBACE,KAAI,CAAC,mBAAmB;qBACrB,SAAS,CAAC,+BAA+B,CAAC;qBAC1C,SAAS,CAAC,wBAAc;oBACvB,KAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBACzD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACL,KAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC,EACD,eAAK;gBACH,KAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC3C,KAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC,EACD;gBACE,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACvC,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,mCAAU,GAAV;QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mHAA4B,EAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC,CAAC;IAClE,CAAC;IAjDU,cAAc;QAL1B,+DAAS,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,wGAAqC;;SAEtC,CAAC;yCAQuB,kEAAW;YAChB,sDAAM;YACD,0DAAW;YACH,kFAAmB;YACjC,2DAAS;YACI,kFAAmB;OAZtC,cAAc,CAkD1B;IAAD,qBAAC;CAAA;AAlD0B;;;;;;;;;;;;ACpB3B,4FAA4F,+BAA+B,eAAe,iCAAiC,gB;;;;;;;;;;;ACA3K,4BAA4B,gBAAgB,0BAA0B,iBAAiB,wBAAwB,EAAE,qBAAqB,kBAAkB,mBAAmB,wBAAwB,sBAAsB,wBAAwB,EAAE,+CAA+C,26B;;;;;;;;;;;;;;;;;;;;;ACAxP;AAO1C;IAAA;IAIA,CAAC;IAHC,sBAAI,kEAAkB;aAAtB;YACE,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/D,CAAC;;;OAAA;IAHU,kCAAkC;QAL9C,+DAAS,CAAC;YACT,QAAQ,EAAE,iCAAiC;YAC3C,gLAA2D;;SAE5D,CAAC;OACW,kCAAkC,CAI9C;IAAD,yCAAC;CAAA;AAJ8C;;;;;;;;;;;;ACP/C,sc;;;;;;;;;;;ACAA,+DAA+D,mK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAF;AACpB;AACY;AAE4C;AAC/B;AACG;AACA;AASrE;IAIE,0BACU,MAAc,EACd,mBAAwC,EACxC,WAAwB,EACzB,KAA4B,EACnC,KAA0B;QAL5B,iBAQC;QAPS,WAAM,GAAN,MAAM,CAAQ;QACd,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,gBAAW,GAAX,WAAW,CAAa;QACzB,UAAK,GAAL,KAAK,CAAuB;QAGnC,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,KAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAvB,CAAuB,CAAC,CAAC;IAC9E,CAAC;IAED,mCAAQ,GAAR;QACE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,mCAAQ,GAAR;QACE,OAAO,CACL,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ;YAClC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAC1C,CAAC;IACJ,CAAC;IAED,4CAAiB,GAAjB,UAAkB,WAA6B;QAA/C,iBAKC;QAJC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,CACjD,cAAM,YAAI,CAAC,yBAAyB,EAAE,EAAhC,CAAgC,EACtC,eAAK,IAAI,YAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,EAA1C,CAA0C,CACpD,CAAC;IACJ,CAAC;IAED,iCAAM,GAAN;QAAA,iBAeC;QAdC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,CACjC,kBAAQ;YACN,KAAI,CAAC,mBAAmB,CAAC,eAAe,CACtC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAChC,CAAC;QACJ,CAAC,EACD,eAAK;YACH,KAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,EACD;YACE,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,oDAAyB,GAAjC;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACxC,IACE,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;YACzC,CAAC,IAAI,CAAC,8BAA8B,EACpC;YACA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;SACnD;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;IA1D6B;QAA7B,+DAAS,CAAC,iBAAiB,CAAC;kCAAkB,8GAAwB;6DAAC;IAD7D,gBAAgB;QAN5B,+DAAS,CAAC;YACT,QAAQ,EAAE,aAAa;YACvB,uHAAuC;YAEvC,SAAS,EAAE,CAAC,8EAAqB,CAAC;;SACnC,CAAC;yCAMkB,sDAAM;YACO,kFAAmB;YAC3B,kEAAW;YAClB,8EAAqB;YAC5B,kFAAmB;OATjB,gBAAgB,CA4D5B;IAAD,uBAAC;CAAA;AA5D4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfiB;AACH;AACyB;AACf;AAChB;AAGrC;IAA2C,yCAAuB;IAChE,+BACU,kBAAsC,EACtC,WAAwB;QAFlC,YAIE,kBAAM;YACJ,OAAO,EAAE,EAAE;SACQ,CAAC,SACvB;QANS,wBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,iBAAW,GAAX,WAAW,CAAa;;IAKlC,CAAC;IAED,oCAAI,GAAJ;QAAA,iBAGC;QAFC,IAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC,CAAC;IAC3E,CAAC;IAED,iDAAiB,GAAjB,UAAkB,WAA6B;QAA/C,iBAWC;QAVC,OAAO,IAAI,CAAC,kBAAkB;aAC3B,OAAO,CAAC,WAAW,CAAC,EAAE,eAAO,WAAW,EAAG;aAC3C,IAAI,CACH,0DAAG,CAAC;YACF,KAAI,CAAC,QAAQ,cACR,WAAW,EACd,CAAC;YACH,KAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,CAAC;QAChD,CAAC,CAAC,CACH,CAAC;IACN,CAAC;IA1BU,qBAAqB;QADjC,gEAAU,EAAE;yCAGmB,iFAAkB;YACzB,kEAAW;OAHvB,qBAAqB,CA2BjC;IAAD,4BAAC;CAAA,CA3B0C,2DAAK,GA2B/C;AA3BiC;;;;;;;;;;;;ACRlC,0CAA0C,gCAAgC,yWAAyW,oCAAoC,oSAAoS,mCAAmC,kRAAkR,gCAAgC,+mBAA+mB,mCAAmC,yFAAyF,uCAAuC,22DAA22D,0CAA0C,oWAAoW,uCAAuC,qIAAqI,uCAAuC,0ZAA0Z,iCAAiC,0IAA0I,qCAAqC,oC;;;;;;;;;;;ACAx5J,+CAA+C,wBAAwB,EAAE,+CAA+C,mb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACMjG;AAC8B;AACZ;AAOjB;AAC6C;AAEA;AAEvB;AACwB;AAStE;IAaE,2BACU,WAAwB,EACxB,MAAc,EACd,WAAwB,EACxB,mBAAwC,EACxC,MAAiB,EAClB,mBAAwC,EACxC,mBAAwC;QANvC,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QACxB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,WAAM,GAAN,MAAM,CAAW;QAClB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAfjD,WAAW;QACX,cAAS,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC,CAAC;QACrD,aAAQ,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC,CAAC;QACpD,UAAK,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,aAAQ,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC9G,oBAAe,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC,CAAC;QAC3D,kBAAa,GAAG,IAAI,0DAAW,CAAC,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAWlE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;IACL,CAAC;IAED,oCAAQ,GAAR;QAAA,iBAIC;QAHC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,aAAG;YACtF,KAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAW,GAAX;QACE,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IACD,kEAAkE;IAClE,qCAAS,GAAT,cAAmB,CAAC;IAEpB,kDAAsB,GAAtB,UAAuB,CAAc;QACnC,IAAI,CAAC,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO;YACL,cAAc,EAAE;gBACd,KAAK,EAAE,KAAK;aACb;SACF,CAAC;IACJ,CAAC;IAGD,sCAAU,GAAV,UAAW,IAAoC;QAC7C,IAAM,QAAQ,GAAoB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;YACzC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACnC;IACH,CAAC;IACD,6CAAiB,GAAjB;QACE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,oCAAQ,GAAR;QAAA,iBAmBC;QAlBC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC3B,IAAM,mBAAiB,GAAsB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACxF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAiB,CAAC,CAAC,SAAS,CACpD;gBACE,KAAI,CAAC,mBAAmB;qBACrB,SAAS,CAAC,sCAAsC,CAAC;qBACjD,SAAS,CAAC,wBAAc,IAAI,YAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,cAAc,CAAC,EAAxD,CAAwD,CAAC,CAAC;YAC3F,CAAC,EACD,eAAK;gBACH,KAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC,EACD;gBACE,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAiB,CAAC,CAAC,SAAS,CAAC;oBAClD,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,oDAAwB,GAAxB,UAAyB,CAAc;QACrC,sFAAsF;QAEtF,IAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,IAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvC,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAEhC,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;;YAElE,OAAO;gBACL,wBAAwB,EAAE;oBACxB,KAAK,EAAE,KAAK;iBACb;aACF,CAAC;IACN,CAAC;IArGU,iBAAiB;QAP7B,+DAAS,CAAC;YACT,QAAQ,EAAE,cAAc;YACxB,iHAAwC;YAExC,aAAa,EAAE,+DAAiB,CAAC,IAAI;YACrC,eAAe,EAAE,qEAAuB,CAAC,MAAM;;SAChD,CAAC;yCAeuB,kEAAW;YAChB,sDAAM;YACD,0DAAW;YACH,kFAAmB;YAChC,2DAAS;YACG,kFAAmB;YACnB,mFAAmB;OApBtC,iBAAiB,CAsG7B;IAAD,wBAAC;CAAA;AAtG6B;;;;;;;;;;;;;AC5B9B;AAAA;AAAA;AAAA;AAAA,qGAAqG;AAC9F,IAAM,oCAAoC,GAAG,eAAe,CAAC;AAEpE,kFAAkF;AAC3E,IAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAE3D,IAAM,YAAY,GAA2B;IAClD;;OAEG;IACH,OAAO,EAAE,KAAK;IAEd;;OAEG;IACH,MAAM,EAAE;QACN,6IAA6I;QAC7I,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ;QAClC,IAAI,EAAE,0BAA0B;KACjC;IAED;;;;;;;;;;;;OAYG;IACH,+BAA+B;IAC/B,OAAO,EAAE;QACP,KAAK,EAAE;YACL,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;SACb;QACD,MAAM,EAAE;YACN,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;SAChB;QACD,SAAS,EAAE;YACT,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,MAAM;SACb;KACF;IACD,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,aAAa;IAEvB;;OAEG;IACH,2BAA2B;IAC3B,yCAAyC;IACzC,uDAAuD;IAEvD;;OAEG;IAEH,oCAAoC;IACpC,+BAA+B;IAE/B;;;;;OAKG;IACH,8BAA8B;IAE9B;;;;OAIG;IACH,mBAAmB;IAEnB;;;OAGG;IACH,sBAAsB;IACtB,0CAA0C;IAE1C;;OAEG;IACH,8BAA8B;IAE9B;;OAEG;IACH,wBAAwB;IAExB;;OAEG;IACH,4BAA4B;IAE5B;;;;;;;OAOG;IACH,0BAA0B;IAE1B;;;OAGG;IACH,oBAAoB;IAEpB;;;OAGG;IACH,uBAAuB;IACvB,0CAA0C;IAC1C,mBAAmB;IACnB,oBAAoB;IAEpB;;OAEG;IACH,iCAAiC;IAEjC,4IAA4I;IAC5I,qJAAqJ;IACrJ,gBAAgB,EAAE,IAAI;IAEtB;;;OAGG;IACH,sBAAsB;IAEtB,8KAA8K;IAC9K,QAAQ,EAAE,KAAK;CAyEhB,CAAC;;;;;;;;;;;;AC9NF,8TAA8T,8BAA8B,wB;;;;;;;;;;;;;;;;;;;;;;;;ACAlT;AAM1C;IACE;IAAe,CAAC;IADL,kCAAkC;QAJ9C,+DAAS,CAAC;YACT,QAAQ,EAAE,iCAAiC;YAC3C,+KAA2D;SAC5D,CAAC;;OACW,kCAAkC,CAE9C;IAAD,yCAAC;CAAA;AAF8C;;;;;;;;;;;;ACN/C,moDAAmoD,uCAAuC,wGAAwG,kCAAkC,sO;;;;;;;;;;;ACApzD,gCAAgC,iBAAiB,EAAE,qBAAqB,gBAAgB,iBAAiB,uBAAuB,sBAAsB,gCAAgC,EAAE,uBAAuB,kHAAkH,uDAAuD,EAAE,+CAA+C,miC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAjW;AAC/B;AAC4B;AAChB;AACgB;AAOrE;IAIE,+BACU,WAAwB,EACxB,MAAc,EACf,mBAAwC,EAC/C,KAA0B;QAJ5B,iBAOC;QANS,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAQ;QACf,wBAAmB,GAAnB,mBAAmB,CAAqB;QANvC,gBAAW,GAAuB,IAAI,0DAAY,EAAE,CAAC;QAS7D,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,KAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAvB,CAAuB,CAAC,CAAC;IACvE,CAAC;IAED,wCAAQ,GAAR,cAAY,CAAC;IAEb,sCAAM,GAAN;QAAA,iBAmBC;QAlBC,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzB,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,CACjC,kBAAQ;YACN,KAAI,CAAC,mBAAmB,CAAC,eAAe,CACtC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAChC,CAAC;QACJ,CAAC,EACD,eAAK;YACH,KAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,EACD;YACE,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC,CACF,CAAC;IACJ,CAAC;IAED,mDAAmB,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,iDAAiB,GAAjB;QACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,4CAAY,GAAZ;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IA7CS;QAAT,4DAAM,EAAE;kCAAc,0DAAY;8DAA4B;IADpD,qBAAqB;QALjC,+DAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;YAC7B,kIAA6C;;SAE9C,CAAC;yCAMuB,kEAAW;YAChB,sDAAM;YACM,kFAAmB;YACxC,kFAAmB;OARjB,qBAAqB,CA+CjC;IAAD,4BAAC;CAAA;AA/CiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXO;AACM;AAC2B;AACS;AACH;AACjC;AACM;AACe;AAWpE;IAAA;IAA2B,CAAC;IAAf,YAAY;QATxB,8DAAQ,CAAC;YACR,OAAO,EAAE,CAAC,4DAAY,EAAE,kEAAY,EAAE,4DAAY,EAAE,iFAAmB,CAAC;YACxE,OAAO,EAAE,CAAC,sFAAmB,CAAC;YAC9B,YAAY,EAAE;gBACZ,sFAAmB;gBACnB,+FAAsB;gBACtB,4FAAqB;aACtB;SACF,CAAC;OACW,YAAY,CAAG;IAAD,mBAAC;CAAA;AAAH;;;;;;;;;;;;AClBzB,snB;;;;;;;;;;;ACAA,+DAA+D,mK;;;;;;;;;;;;;;;;;;;;;;;;;;ACAb;AACG;AACf;AAOtC;IAEE,6BAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAD5C,iBAAY,GAAG,KAAK,CAAC;IAC0B,CAAC;IAEhD,sCAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,mDAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,yCAAW,GAAlB;QACE,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;IAEM,0CAAY,GAAnB;QACE,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;IApBU,mBAAmB;QAL/B,+DAAS,CAAC;YACT,QAAQ,EAAE,iBAAiB;YAC3B,4HAA2C;;SAE5C,CAAC;yCAGiC,kEAAW;OAFjC,mBAAmB,CAqB/B;IAAD,0BAAC;CAAA;AArB+B;;;;;;;;;;;;ACThC,seAAse,mCAAmC,4TAA4T,iCAAiC,uUAAuU,SAAS,uKAAuK,wCAAwC,2RAA2R,SAAS,iKAAiK,kCAAkC,irBAAirB,oBAAoB,uHAAuH,sCAAsC,4gBAA4gB,2DAA2D,4mBAA4mB,wCAAwC,6XAA6X,+BAA+B,+YAA+Y,+BAA+B,0lBAA0lB,4CAA4C,+bAA+b,uCAAuC,uYAAuY,8BAA8B,kjBAAkjB,wCAAwC,8eAA8e,uDAAuD,8fAA8f,qDAAqD,waAAwa,8BAA8B,kF;;;;;;;;;;;ACA53Q,gCAAgC,sBAAsB,kBAAkB,2BAA2B,EAAE,mCAAmC,mBAAmB,kBAAkB,EAAE,0CAA0C,+BAA+B,EAAE,uDAAuD,gDAAgD,0BAA0B,yBAAyB,2BAA2B,EAAE,WAAW,iBAAiB,EAAE,4BAA4B,uBAAuB,yBAAyB,EAAE,sBAAsB,6BAA6B,mBAAmB,4BAA4B,yBAAyB,yBAAyB,4BAA4B,yBAAyB,KAAK,iCAAiC,uBAAuB,aAAa,iBAAiB,0BAA0B,uBAAuB,sBAAsB,iBAAiB,iBAAiB,kBAAkB,uBAAuB,EAAE,WAAW,qBAAqB,uBAAuB,EAAE,qBAAqB,eAAe,EAAE,2BAA2B,mBAAmB,EAAE,iDAAiD,2rJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA7kC;AAClC;AACe;AACgB;AACO;AACP;AACC;AAOtE;IAQE,gCACU,sBAA8C,EAC9C,mBAAwC,EACxC,mBAAwC,EACxC,WAAwB,EACzB,mBAAwC;QAJvC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,gBAAW,GAAX,WAAW,CAAa;QACzB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAXjD,mBAAc,GAAG,IAAI,CAAC;QAEtB,UAAK,GAAG,mDAAK,CAAC;QAEJ,gBAAW,GAAuB,IAAI,0DAAY,EAAE,CAAC;QACrD,iBAAY,GAAuB,IAAI,0DAAY,EAAE,CAAC;IAO7D,CAAC;IAEJ,yCAAQ,GAAR;QAAA,iBAgDC;QA/CC,gFAAgF;QAChF,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACxC,IACE,CAAC,IAAI,CAAC,8BAA8B;YACpC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,mDAAK,CAAC,SAAS,CAAC,CAAC,EAC7C;YACA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,OAAO;SACR;QAED,2EAA2E;QAC3E,IACE,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;YACzC,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,EAC1C;YACA,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,WAAC;gBACtD,KAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAC1B,IAAM,eAAe,GAAW,CAAC,cAAc,CAAC,OAAO,CACrD,iBAAiB,CAClB,CAAC;gBACF,4FAA4F;gBAC5F,IAAM,OAAO,GAAG,CAAC,GAAG,eAAe,CAAC;gBACpC,cAAc,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxD,iFAAiF;gBACjF,IAAM,cAAc,GAClB,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;gBACtD,IAAI,CAAC,cAAc,IAAI,OAAO,EAAE;oBAC9B,IAAI,YAAY,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,GAAG,CAAC,EAAE;wBACT,YAAY,GAAG,4BAA4B,CAAC;qBAC7C;yBAAM,IAAI,CAAC,KAAK,CAAC,EAAE;wBAClB,YAAY,GAAG,2BAA2B,CAAC;qBAC5C;oBAED,IAAI,YAAY,KAAK,EAAE,EAAE;wBACvB,KAAI,CAAC,mBAAmB;6BACrB,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;6BACrC,SAAS,CAAC;4BACT,IAAI,EAAE,iBAAO;gCACX,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;gCACjD,KAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;4BACpD,CAAC;yBACF,CAAC,CAAC;qBACN;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAGD,gDAAe,GAAf;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,iDAAgB,GAAhB;QACE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAlES;QAAT,4DAAM,EAAE;kCAAc,0DAAY;+DAA4B;IACrD;QAAT,4DAAM,EAAE;kCAAe,0DAAY;gEAA4B;IAPrD,sBAAsB;QALlC,+DAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,qIAA8C;;SAE/C,CAAC;yCAUkC,yFAAsB;YACzB,kFAAmB;YACnB,kFAAmB;YAC3B,kEAAW;YACJ,mFAAmB;OAbtC,sBAAsB,CAyElC;IAAD,6BAAC;CAAA;AAzEkC;;;;;;;;;;;;;;;;;;;;;;ACbQ;AAQ3C;IAAA;IAYA,CAAC;IAXC,sCAAS,GAAT,UAAU,GAAqB,EAAE,IAAiB;QAChD,IAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;YAC5B,UAAU,EAAE;gBACV,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,+BAA+B;aACzC;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAXU,kBAAkB;QAD9B,gEAAU,EAAE;OACA,kBAAkB,CAY9B;IAAD,yBAAC;CAAA;AAZ8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRU;AACuD;AACjD;AACA;AAC6B;AACvB;AACqC;AAC7B;AACkB;AACS;AACH;AACT;AAC7B;AAC4F;AACV;AACiD;AACV;AAIhI;AACgG;AACpD;AACc;AACR;AACS;AACmB;AAClC;AAkDpF;IAAA;IAAkC,CAAC;IAAtB,mBAAmB;QAhD/B,8DAAQ,CAAC;YACR,OAAO,EAAE,CAAC,4DAAY,EAAE,2DAAY,EAAE,kEAAmB,EAAE,6DAAY,CAAC;YACxE,YAAY,EAAE;gBACZ,yFAAgB;gBAChB,0FAAgB;gBAChB,iHAAuB;gBACvB,mFAAqB;gBACrB,oIAA6B;gBAC7B,6GAAuB;gBACvB,kGAAmB;gBACnB,gHAAuB;gBACvB,wGAAqB;gBACrB,uGAAqB;gBACrB,0EAAY;gBACZ,4FAAgB;gBAChB,qGAAmB;gBACnB,mGAAkB;gBAClB,oLAAkC;gBAClC,uJAAyB;gBACzB,6IAAgB;gBAChB,8LAAsC;gBACtC,oJAAwB;aACzB;YACD,SAAS,EAAE,CAAC,kFAAmB,EAAE,oFAAqB,CAAC;YACvD,eAAe,EAAE;gBACf,kGAAmB;gBACnB,gHAAuB;gBACvB,wGAAqB;aACtB;YACD,OAAO,EAAE;gBACP,yFAAgB;gBAChB,0FAAgB;gBAChB,iHAAuB;gBACvB,mFAAqB;gBACrB,oIAA6B;gBAC7B,6GAAuB;gBACvB,uGAAqB;gBACrB,0EAAY;gBACZ,4FAAgB;gBAChB,qGAAmB;gBACnB,mGAAkB;gBAClB,oLAAkC;gBAClC,uJAAyB;gBACzB,6IAAgB;gBAChB,8LAAsC;gBACtC,oJAAwB;aACzB;SACF,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAA;AAAH;;;;;;;;;;;;AC7EhC,8C;;;;;;;;;;;ACAA,+DAA+D,+K;;;;;;;;;;;;;;;;;;;;;;;;ACAO;AAOtE;IAGE;QAFS,UAAK,GAAG,EAAE,CAAC;IAEL,CAAC;IAGhB,sBAAI,yCAAW;aAAf;YACE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;;;OAAA;IAPQ;QAAR,2DAAK,EAAE;;mDAAY;IAKpB;QADC,iEAAW,CAAC,OAAO,CAAC;;;uDAGpB;IARU,gBAAgB;QAL5B,+DAAS,CAAC;YACT,QAAQ,EAAE,gBAAgB;YAC1B,kIAAwC;;SAEzC,CAAC;;OACW,gBAAgB,CAS5B;IAAD,uBAAC;CAAA;AAT4B;;;;;;;;;;;;ACP7B,mB;;;;;;;;;;;ACAA,+DAA+D,uL;;;;;;;;;;;;;;;;;;;;;;;;ACAO;AAOtE;IAGE;QAFS,UAAK,GAAG,EAAE,CAAC;IAEL,CAAC;IAGhB,sBAAI,4CAAW;aAAf;YACE,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;;;OAAA;IAPQ;QAAR,2DAAK,EAAE;;sDAAY;IAKpB;QADC,iEAAW,CAAC,OAAO,CAAC;;;0DAGpB;IARU,mBAAmB;QAL/B,+DAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;YAC7B,2IAA2C;;SAE5C,CAAC;;OACW,mBAAmB,CAS/B;IAAD,0BAAC;CAAA;AAT+B;;;;;;;;;;;;ACPhC,8C;;;;;;;;;;;ACAA,+DAA+D,uL;;;;;;;;;;;;;;;;;;;;;;;;ACAO;AAOtE;IAGE;QAFS,UAAK,GAAG,EAAE,CAAC;IAEL,CAAC;IAGhB,sBAAI,2CAAW;aAAf;YACE,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;;;OAAA;IAPQ;QAAR,2DAAK,EAAE;;qDAAY;IAKpB;QADC,iEAAW,CAAC,OAAO,CAAC;;;yDAGpB;IARU,kBAAkB;QAL9B,+DAAS,CAAC;YACT,QAAQ,EAAE,kBAAkB;YAC5B,wIAA0C;;SAE3C,CAAC;;OACW,kBAAkB,CAS9B;IAAD,yBAAC;CAAA;AAT8B;;;;;;;;;;;;ACP/B,8C;;;;;;;;;;;ACAA,wBAAwB,mBAAmB,EAAE,sBAAsB,qBAAqB,EAAE,uBAAuB,qBAAqB,EAAE,oBAAoB,qBAAqB,EAAE,aAAa,mBAAmB,EAAE,4BAA4B,qBAAqB,EAAE,6BAA6B,qBAAqB,EAAE,0BAA0B,qBAAqB,EAAE,+CAA+C,u/B;;;;;;;;;;;;;;;;;;;;;;;;ACAtV;AAOtE;IAGE;QAFS,UAAK,GAAG,EAAE,CAAC;IAEL,CAAC;IAGhB,sBAAI,qCAAW;aAAf;YACE,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;;;OAAA;IAPQ;QAAR,2DAAK,EAAE;;+CAAY;IAKpB;QADC,iEAAW,CAAC,OAAO,CAAC;;;mDAGpB;IARU,YAAY;QALxB,+DAAS,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,+GAAmC;;SAEpC,CAAC;;OACW,YAAY,CASxB;IAAD,mBAAC;CAAA;AATwB;;;;;;;;;;;;ACPzB,sOAAsO,8BAA8B,qGAAqG,6BAA6B,8CAA8C,4CAA4C,UAAU,yCAAyC,idAAid,4CAA4C,mD;;;;;;;;;;;ACAhhC,2BAA2B,kBAAkB,mCAAmC,0BAA0B,EAAE,mBAAmB,oBAAoB,EAAE,gBAAgB,kBAAkB,2BAA2B,mCAAmC,8BAA8B,sBAAsB,EAAE,wBAAwB,iBAAiB,sBAAsB,EAAE,+CAA+C,2uC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAjW;AACQ;AAEG;AASrE;IAGE,qCACS,MAAiD,EACxB,SAAc,EACvC,aAAkC;QAFlC,WAAM,GAAN,MAAM,CAA2C;QACxB,cAAS,GAAT,SAAS,CAAK;QACvC,kBAAa,GAAb,aAAa,CAAqB;QAEzC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,8CAAQ,GAAR;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;IACpD,CAAC;IAbU,2BAA2B;QAPvC,+DAAS,CAAC;YACT,QAAQ,EAAE,yBAAyB;YACnC,+JAAmD;;SAEpD,CAAC;QAEF,2DAA2D;;QAMtD,uEAAM,CAAC,iEAAe,CAAC;yCADT,8DAAY,UAEL,kFAAmB;OANhC,2BAA2B,CAcvC;IAAD,kCAAC;CAAA;AAduC;;;;;;;;;;;;ACZxC,4SAA4S,8BAA8B,wB;;;;;;;;;;;;;;;;;;;;;;;;ACAxR;AAMlD;IACE;IAAe,CAAC;IAEhB,0CAAQ,GAAR,cAAY,CAAC;IAHF,uBAAuB;QAJnC,+DAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,sJAAgD;SACjD,CAAC;;OACW,uBAAuB,CAInC;IAAD,8BAAC;CAAA;AAJmC;;;;;;;;;;;;ACNpC,+CAA+C,WAAW,wBAAwB,2CAA2C,GAAG,WAAW,yCAAyC,mBAAmB,kLAAkL,+BAA+B,0GAA0G,gCAAgC,yB;;;;;;;;;;;ACAliB,+DAA+D,+L;;;;;;;;;;;;;;;;;;;;;;;;;;ACAgB;AACxB;AACc;AAOrE;IAQE,iCACS,mBAAwC,EACvC,gBAAkC;QADnC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACvC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAPlC,WAAM,GAAyB,IAAI,0DAAY,EAAE,CAAC;QAS1D,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,0CAAQ,GAAR;QAAA,iBAOC;QANC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;QACnD,IAAI,CAAC,gBAAgB;aAClB,GAAG,CAAC,YAAU,IAAI,CAAC,MAAQ,CAAC;aAC5B,SAAS,CAAC,UAAC,GAAW;YACrB,KAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2CAAS,GAAT,UAAU,MAAc;QAAxB,iBAOC;QANC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAU,MAAQ,CAAC,CAAC,SAAS,CAAC,UAAC,GAAW;YAClE,KAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IA/BQ;QAAR,2DAAK,EAAE;;8DAAmB;IAClB;QAAR,2DAAK,EAAE;;8DAAmB;IACjB;QAAT,4DAAM,EAAE;kCAAS,0DAAY;2DAA8B;IAHjD,uBAAuB;QALnC,+DAAS,CAAC;YACT,QAAQ,EAAE,qBAAqB;YAC/B,mJAA+C;;SAEhD,CAAC;yCAU8B,kFAAmB;YACrB,oEAAgB;OAVjC,uBAAuB,CAiCnC;IAAD,8BAAC;CAAA;AAjCmC;;;;;;;;;;;;ACTpC,8EAA8E,6BAA6B,KAAK,6BAA6B,uBAAuB,0BAA0B,gBAAgB,6BAA6B,wC;;;;;;;;;;;ACA3O,+DAA+D,uL;;;;;;;;;;;;;;;;;;;;;;;;;ACAb;AAEe;AAOjE;IAEE,+BAAmB,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAE3D,wCAAQ,GAAR;QAAA,iBAIC;QAHC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,oBAAU;YACzD,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IARU,qBAAqB;QALjC,+DAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;YAC7B,6IAA6C;;SAE9C,CAAC;yCAGsC,8EAAiB;OAF5C,qBAAqB,CASjC;IAAD,4BAAC;CAAA;AATiC;;;;;;;;;;;;ACTlC,0+XAA0+X,8BAA8B,oB;;;;;;;;;;;;;;;;;;;;;;;;ACA99X;AAM1C;IACE;IAAe,CAAC;IADL,qBAAqB;QAJjC,+DAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;YAC7B,6IAA6C;SAC9C,CAAC;;OACW,qBAAqB,CAEjC;IAAD,4BAAC;CAAA;AAFiC;;;;;;;;;;;;ACNlC,+zDAA+zD,iHAAiH,i1HAAi1H,yFAAyF,mlEAAmlE,8BAA8B,wB;;;;;;;;;;;;;;;;;;;;;;;;ACAj6P;AAM1C;IACE;IAAe,CAAC;IADL,mBAAmB;QAJ/B,+DAAS,CAAC;YACT,QAAQ,EAAE,iBAAiB;YAC3B,uIAA2C;SAC5C,CAAC;;OACW,mBAAmB,CAE/B;IAAD,0BAAC;CAAA;AAF+B;;;;;;;;;;;;ACNhC,2UAA2U,oEAAoE,6mBAA6mB,4EAA4E,QAAQ,8CAA8C,mkBAAmkB,sCAAsC,yGAAyG,6DAA6D,kK;;;;;;;;;;;ACA74D,oCAAoC,kBAAkB,oBAAoB,aAAa,EAAE,0BAA0B,oBAAoB,sBAAsB,mBAAmB,yBAAyB,6BAA6B,EAAE,eAAe,iBAAiB,oBAAoB,EAAE,+CAA+C,m/B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA9P;AAEhB;AACM;AACjC;AAQpC;IAkBE,uCAAoB,gBAAkC,EAAU,mBAAwC;QAApF,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAU,wBAAmB,GAAnB,mBAAmB,CAAqB;QAb9F,qBAAgB,GAAuB,IAAI,0DAAY,EAAE,CAAC;QAC1D,qBAAgB,GAA6C,IAAI,0DAAY,EAAE,CAAC;QAE1F,YAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,YAAO,GAAG,yDAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAClC,mBAAc,GAAW,EAAE,CAAC;QAE5B,wBAAmB,GAAiC,EAAE,CAAC;QACvD,qBAAgB,GAA+B,IAAI,CAAC;QACpD,mBAAc,GAAW,CAAC,CAAC;QAC3B,cAAS,GAAG,IAAI,CAAC;QAIf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,gDAAQ,GAAR;QACE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,2DAAmB,GAAnB,UAAoB,UAAkB;QAAtC,iBAqBC;QApBC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,gBAAgB;aAClB,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,CAAC;aAC3E,SAAS,CAAC,eAAK;YACd,yHAAyH;YACzH,IAAM,qBAAqB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,iDAAiD;YACjD,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAApC,CAAoC,CAAC,CAAC;YACzE,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACtC,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEnE,IAAI,CAAC,KAAI,CAAC,SAAS;gBAAE,KAAI,CAAC,SAAS,GAAG,qBAAqB,IAAI,KAAI,CAAC,OAAO,CAAC;YAC5E,IAAI,KAAI,CAAC,SAAS;gBAAE,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAExG,sEAAsE;YACtE,IAAI,qBAAqB;gBAAE,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kDAAU,GAAV,UAAW,CAAgB;QACzB,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,IAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,OAAO,EAAE,EAAX,CAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,4DAAoB,GAApB,UAAqB,MAAc,EAAE,IAAY;QAC/C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,sDAAc,GAAd,UAAe,MAAc,EAAE,IAAkC;QAAjE,iBAoBC;QApB8B,8BAAa,IAAI,CAAC,gBAAgB;QAC/D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,mCAAmC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,gBAAgB;aAClB,4BAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,CAAC;aACzF,SAAS,CAAC,iBAAO;YAChB,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,KAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,wBAAwB;iBACxD,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAlC,CAAkC,CAAC;iBAC/C,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAxD,CAAwD,CAAC,CAAC;YAE5E,oCAAoC;YACpC,IAAI,OAAO,CAAC,kBAAkB;gBAC5B,KAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAC3D,WAAC,IAAI,QAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAA9D,CAA8D,CACpE,CAAC;YACJ,KAAI,CAAC,cAAc,GAAG,OAAO,CAAC,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,sDAAc,GAAd,UAAe,KAAiC;QAC9C,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE;YAClG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;;YAC1B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAEnC,4CAA4C;QAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC;IA5FQ;QAAR,2DAAK,EAAE;;qEAAoB;IACnB;QAAR,2DAAK,EAAE;kCAAY,IAAI;oEAAC;IAChB;QAAR,2DAAK,EAAE;;6EAA4B;IAC3B;QAAR,2DAAK,EAAE;;0EAAyB;IACvB;QAAT,4DAAM,EAAE;kCAAmB,0DAAY;2EAA4B;IAC1D;QAAT,4DAAM,EAAE;kCAAmB,0DAAY;2EAAkD;IAN/E,6BAA6B;QALzC,+DAAS,CAAC;YACT,QAAQ,EAAE,6BAA6B;YACvC,2KAAuD;;SAExD,CAAC;yCAmBsC,4EAAgB,EAA+B,kFAAmB;OAlB7F,6BAA6B,CA8FzC;IAAD,oCAAC;CAAA;AA9FyC;;;;;;;;;;;;;;;;;;;;;;;;;ACNnB;AAKvB;IACE,4BAAoB,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;QACrC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAED,+CAAkB,GAAlB;QACE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IARU,kBAAkB;QAH9B,+DAAS,CAAC;YACT,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;yCAE6B,wDAAU;OAD5B,kBAAkB,CAS9B;IAAD,yBAAC;CAAA;AAT8B;;;;;;;;;;;;;;;;;;;;;;;;;;ACX4C;AAC1B;AAYjD;IAAA;IAYA,CAAC;wCAZY,+BAA+B;IAE1C,kDAAQ,GAAR,UAAS,OAAwB;QAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QACD,IAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAE3E,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;YAChE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;SACvC;IACH,CAAC;;IAVQ;QAAR,2DAAK,EAAE;;qFAAkC;IAD/B,+BAA+B;QAV3C,+DAAS,CAAC;YACT,QAAQ,EAAE,4BAA4B;YACtC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,4DAAa;oBACtB,WAAW,EAAE,iCAA+B;oBAC5C,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC;OACW,+BAA+B,CAY3C;IAAD,sCAAC;CAAA;AAZ2C;;;;;;;;;;;;;;;;;;;;;;;;;;ACPrB;AAC8B;AAKrD;IAUE,0BACU,cAAgC,EAChC,YAA8B,EAC9B,WAAwB;QAFxB,mBAAc,GAAd,cAAc,CAAkB;QAChC,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,gBAAW,GAAX,WAAW,CAAa;QALlC,cAAS,GAAG,KAAK,CAAC;IAMf,CAAC;IAEJ,mCAAQ,GAAR;QACE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;SAC7B;IACH,CAAC;IA3BiB;QAAjB,2DAAK,CAAC,SAAS,CAAC;;mDAA+B;IAE5B;QAAnB,2DAAK,CAAC,WAAW,CAAC;;6DAAyB;IAErB;QAAtB,2DAAK,CAAC,cAAc,CAAC;;+DAA2B;IANtC,gBAAgB;QAH5B,+DAAS,CAAC;YACT,QAAQ,EAAE,WAAW;SACtB,CAAC;yCAY0B,8DAAgB;YAClB,yDAAW;YACZ,kEAAW;OAbvB,gBAAgB,CA8B5B;IAAD,uBAAC;CAAA;AA9B4B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLN;AAQE;AACgC;AAMzD;IAGE,4BACU,EAAc,EACtB,MAAc,EACd,aAA4B,EACpB,QAAmB;QAJ7B,iBAeC;QAdS,OAAE,GAAF,EAAE,CAAY;QAGd,aAAQ,GAAR,QAAQ,CAAW;QAE3B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAC,KAAkB;YACzC,KAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,eAAK;YAC/D,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4CAAe,GAAf,cAAmB,CAAC;IAEpB,mCAAM,GAAN;QACE,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;SAChE;IACH,CAAC;IAED,iCAAI,GAAJ;QACE,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACvE;IACH,CAAC;IAED,iEAAiE;IACjE,kDAAqB,GAArB,UAAsB,KAAkB;QACtC,IAAI,KAAK,YAAY,+DAAe,EAAE;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;QACD,IAAI,KAAK,YAAY,6DAAa,EAAE;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QAED,qGAAqG;QACrG,IAAI,KAAK,YAAY,gEAAgB,EAAE;YACrC,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QACD,IAAI,KAAK,YAAY,+DAAe,EAAE;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAED,EAAE;IACF,4CAAe,GAAf,UAAgB,KAAK;QACnB,8BAA8B;QAC9B,IAAI,KAAK,KAAK,QAAQ,EAAE;YACtB,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;QAED,IAAI,KAAK,KAAK,MAAM,EAAE;YACpB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAED,wCAAW,GAAX;QACE,+CAA+C;QAC/C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAnEU,kBAAkB;QAH9B,+DAAS,CAAC;YACT,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;yCAKc,wDAAU;YACd,sDAAM;YACC,sEAAa;YACV,uDAAS;OAPlB,kBAAkB,CAoE9B;IAAD,yBAAC;CAAA;AApE8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBY;AACA;AACqC;AAC3B;AAGrD;IACE,+BACU,IAAiB,EACR,MAAc,EACd,QAAkB;QAF3B,SAAI,GAAJ,IAAI,CAAa;QACR,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAU;IAClC,CAAC;IAEJ,6CAAa,GAAb,UACE,SAA4B,EAC5B,YAAoC;QAEpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;YACzB,IAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,EAAE;gBACjB,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;gBACnE,IAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;aAC9B;YAED,OAAO,YAAY,CAAC;SACrB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAzBU,qBAAqB;QADjC,gEAAU,EAAE;yCAGK,kEAAW;YACA,sDAAM;YACJ,wDAAQ;OAJ1B,qBAAqB,CA0BjC;IAAD,4BAAC;CAAA;AA1BiC;AA6BlC;IACE,6BAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IAAG,CAAC;IAEzC,2CAAa,GAAb,UAAc,SAA4B;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;YACzB,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAZU,mBAAmB;QAD/B,gEAAU,EAAE;yCAEe,kEAAW;OAD1B,mBAAmB,CAa/B;IAAD,0BAAC;CAAA;AAb+B;;;;;;;;;;;;ACnChC,+EAA+E,uCAAuC,iFAAiF,yCAAyC,uFAAuF,wCAAwC,qFAAqF,gDAAgD,oGAAoG,8CAA8C,8FAA8F,8CAA8C,oFAAoF,+CAA+C,iGAAiG,mDAAmD,+FAA+F,wCAAwC,wFAAwF,2DAA2D,wFAAwF,2DAA2D,wGAAwG,2FAA2F,uCAAuC,yBAAyB,0BAA0B,wCAAwC,e;;;;;;;;;;;ACA3xD,+DAA+D,2K;;;;;;;;;;;;;;;;;;;;;;;;;ACAd;AACJ;AAO7C;IAAA;IAEA,CAAC;IADU;QAAR,2DAAK,EAAE;kCAAU,0DAAW;qDAAC;IADnB,gBAAgB;QAL5B,+DAAS,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,+HAAwC;;SAEzC,CAAC;OACW,gBAAgB,CAE5B;IAAD,uBAAC;CAAA;AAF4B;;;;;;;;;;;;ACR7B,+KAA+K,eAAe,iBAAiB,QAAQ,+BAA+B,QAAQ,kKAAkK,eAAe,iBAAiB,QAAQ,iBAAiB,QAAQ,6KAA6K,oBAAoB,6F;;;;;;;;;;;ACAlqB,+DAA+D,2K;;;;;;;;;;;;;;;;;;;;;;;;;ACAN;AACiB;AAO1E;IAaE,0BAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL7C,2BAAsB,GAAG,KAAK,CAAC;IAKiB,CAAC;IAE1D,mCAAQ,GAAR;QACE,IAAI,CAAC,IAAI,GAAc,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QACrD,IAAI,CAAC,OAAO,GAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAfQ;QAAR,2DAAK,EAAE;;yDAAqB;IACpB;QAAR,2DAAK,EAAE;;kDAAc;IACb;QAAR,2DAAK,EAAE;;sDAAkB;IACjB;QAAR,2DAAK,EAAE;;yDAAqB;IACpB;QAAR,2DAAK,EAAE;;kDAAc;IACb;QAAR,2DAAK,EAAE;;oEAAgC;IAC/B;QAAR,2DAAK,EAAE;;0DAAsB;IATnB,gBAAgB;QAL5B,+DAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,+HAAwC;;SAEzC,CAAC;yCAcsC,+DAAgB;OAb3C,gBAAgB,CAmB5B;IAAD,uBAAC;CAAA;AAnB4B;;;;;;;;;;;;ACR7B,4FAA4F,SAAS,gIAAgI,oBAAoB,+HAA+H,mDAAmD,2D;;;;;;;;;;;ACA3a,kCAAkC,gBAAgB,iBAAiB,EAAE,+CAA+C,2iB;;;;;;;;;;;;;;;;;;;;;;;;;ACAhD;AACmB;AAOvF;IAcE,iCAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAR5C,qCAAqC;QAC5B,cAAS,GAAG,CAAC,CAAC;QACd,YAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACvB,iBAAY,GAAG,EAAE,CAAC;QAEpB,UAAK,GAAa,EAAE,CAAC;QAI1B,IAAI,CAAC,iBAAiB,EAAE;QAExB,qHAAqH;QACrH,2BAA2B;QAC3B,qEAAqE;QACrE,mCAAmC;IACrC,CAAC;IAED;;OAEG;IACK,mDAAiB,GAAzB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YACpF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzB;IACH,CAAC;IAED,0CAAQ,GAAR;QACE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,6CAAW,GAAX;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,sBAAW,kDAAa;aAAxB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,CAAC;;;OAAA;IAED;;;;OAIG;IACH,4CAAU,GAAV,UAAW,YAAoB;QAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM,GAAG,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,OAAU,IAAI,UAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAG,MAAM,SAAI,IAAM,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,iDAAe,GAAf,UAAgB,OAAe;QAC7B,8CAA8C;QAC9C,IAAM,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,4BAA4B;QAC5B,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC/F,qCAAqC;QACrC,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IArEQ;QAAR,2DAAK,EAAE;kCAAU,0DAAW;4DAAC;IACrB;QAAR,2DAAK,EAAE;;0DAAe;IAGd;QAAR,2DAAK,EAAE;;8DAAe;IACd;QAAR,2DAAK,EAAE;;4DAAwB;IACvB;QAAR,2DAAK,EAAE;;iEAAmB;IAThB,uBAAuB;QALnC,+DAAS,CAAC;YACT,QAAQ,EAAE,kBAAkB;YAC5B,uJAAgD;;SAEjD,CAAC;yCAeiC,0DAAW;OAdjC,uBAAuB,CAyEnC;IAAD,8BAAC;CAAA;AAzEmC;;;;;;;;;;;;;;;;;;;;;;;;;;ACRsE;AAChE;AACR;AAYlC;IAAA;IAIA,CAAC;8BAJY,qBAAqB;IAChC,wCAAQ,GAAR,UAAS,OAAwB;QAC/B,OAAO,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;;IAHU,qBAAqB;QAVjC,+DAAS,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,4DAAa;oBACtB,WAAW,EAAE,uBAAqB;oBAClC,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC;OACW,qBAAqB,CAIjC;IAAD,4BAAC;CAAA;AAJiC;AAMlC;IAAA;IAmCA,CAAC;IAlCC;;;;OAIG;IACI,yCAA4B,GAAnC,UAAoC,OAAwB;QAC1D,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAChD,OAAO,EAAE,mBAAmB,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,gCAAmB,GAA1B,UAA2B,OAAwB;QACjD,OAAO,YAAY,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,6BAAgB,GAAvB,UAAwB,OAA0B;QAA1B,wCAAoB,IAAI,EAAE;QAChD,OAAO,UAAC,OAAwB;YAC9B,IAAI,KAAK,GAAS,uDAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACnF,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChC,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC1C,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,SAAE,OAAO,WAAE,EAAE,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC;;;;;;;;;;;;;ACvDD,+CAA+C,6EAA6E,mDAAmD,4DAA4D,yIAAyI,mBAAmB,6GAA6G,oBAAoB,8B;;;;;;;;;;;ACAxgB,+DAA+D,+L;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAL;AACQ;AACG;AAOrE;IAGE,gCACS,SAA+C,EAC9C,mBAAwC,EAChB,IAAS;QAFlC,cAAS,GAAT,SAAS,CAAsC;QAC9C,wBAAmB,GAAnB,mBAAmB,CAAqB;QAChB,SAAI,GAAJ,IAAI,CAAK;IACxC,CAAC;IAEJ,yCAAQ,GAAR;QAAA,iBASC;QARC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,gBAAM;YAC3D,KAAI,CAAC,QAAQ,GAAG;gBACd,SAAS,EAAE,MAAM,CAAC,OAAO;gBACzB,UAAU,EAAE,MAAM,CAAC,MAAM;gBACzB,WAAW,EAAE,MAAM,CAAC,OAAO;aAC5B,CAAC;YACF,KAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAI,CAAC,QAAQ,EAAE,KAAI,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAlBU,sBAAsB;QALlC,+DAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,kJAA8C;;SAE/C,CAAC;QAOG,uEAAM,CAAC,iEAAe,CAAC;yCAFN,8DAAY;YACD,kFAAmB;OALvC,sBAAsB,CAmBlC;IAAD,6BAAC;CAAA;AAnBkC;;;;;;;;;;;;ACTnC,qFAAqF,gBAAgB,8J;;;;;;;;;;;ACArG,+DAA+D,uL;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAL;AACQ;AAOlE;IACE,8BACS,SAA6C,EACpB,IAAS;QADlC,cAAS,GAAT,SAAS,CAAoC;QACpB,SAAI,GAAJ,IAAI,CAAK;IACxC,CAAC;IAEJ,wCAAS,GAAT;QACE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IARU,oBAAoB;QALhC,+DAAS,CAAC;YACT,QAAQ,EAAE,kBAAkB;YAC5B,4IAA4C;;SAE7C,CAAC;QAIG,uEAAM,CAAC,iEAAe,CAAC;yCADN,8DAAY;OAFrB,oBAAoB,CAShC;IAAD,2BAAC;CAAA;AATgC;;;;;;;;;;;;ACRjC,iEAAiE,QAAQ,kE;;;;;;;;;;;ACAzE,+DAA+D,mL;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAE;AACM;AAOvE;IACE,wBACS,WAA2C,EACf,IAAS;QADrC,gBAAW,GAAX,WAAW,CAAgC;QACf,SAAI,GAAJ,IAAI,CAAK;IAC3C,CAAC;IAJO,cAAc;QAL1B,+DAAS,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,gIAAqC;;SAEtC,CAAC;QAIG,uEAAM,CAAC,oEAAkB,CAAC;yCADP,gEAAc;OAFzB,cAAc,CAK1B;IAAD,qBAAC;CAAA;AAL0B;;;;;;;;;;;;ACR3B,+DAA+D,+K;;;;;;;;;;;ACA/D,6CAA6C,gEAAgE,uCAAuC,+CAA+C,2HAA2H,uDAAuD,wB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA3T;AACQ;AACG;AAOrE;IAGE,2BACS,SAA0C,EACzC,mBAAwC,EAChB,IAAS;QAFlC,cAAS,GAAT,SAAS,CAAiC;QACzC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAChB,SAAI,GAAJ,IAAI,CAAK;IACxC,CAAC;IAEJ,oCAAQ,GAAR;QAAA,iBAQC;QAPC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,gBAAM;YAC3D,KAAI,CAAC,QAAQ,GAAG;gBACd,SAAS,EAAE,MAAM,CAAC,OAAO;gBACzB,MAAM,EAAE,MAAM,CAAC,OAAO;aACvB,CAAC;YACF,KAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAI,CAAC,QAAQ,EAAE,KAAI,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAjBU,iBAAiB;QAL7B,+DAAS,CAAC;YACT,QAAQ,EAAE,eAAe;YACzB,mIAAyC;;SAE1C,CAAC;QAOG,uEAAM,CAAC,iEAAe,CAAC;yCAFN,8DAAY;YACD,kFAAmB;OALvC,iBAAiB,CAkB7B;IAAD,wBAAC;CAAA;AAlB6B;;;;;;;;;;;;ACT9B,0GAA0G,MAAM,MAAM,6CAA6C,gBAAgB,gDAAgD,+BAA+B,qEAAqE,MAAM,MAAM,qHAAqH,8CAA8C,kH;;;;;;;;;;;ACAtf,+BAA+B,uBAAuB,EAAE,kBAAkB,iBAAiB,EAAE,+CAA+C,+lB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAlF;AACa;AAOvE;IACE,0BACS,WAA6C,EACjB,IAAS;QADrC,gBAAW,GAAX,WAAW,CAAkC;QACjB,SAAI,GAAJ,IAAI,CAAK;IAC3C,CAAC;IAJO,gBAAgB;QAL5B,+DAAS,CAAC;YACT,QAAQ,EAAE,aAAa;YACvB,sIAAuC;;SAExC,CAAC;QAIG,uEAAM,CAAC,oEAAkB,CAAC;yCADP,gEAAc;OAFzB,gBAAgB,CAK5B;IAAD,uBAAC;CAAA;AAL4B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR0C;AAChB;AAClB;AAMrC;IAEE,4BAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QADtD,gBAAW,GAAW,EAAE,CAAC;IACgC,CAAC;IAE1D,sCAAS,GAAT,UAAU,KAAU,EAAE,YAA8B;QAApD,iBAeC;QAfqB,qDAA8B;QAClD,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,gBAAgB;iBAClB,cAAc,CAAC,YAAY,CAAC;iBAC5B,IAAI,CACH,0DAAG,CAAC,sBAAY;gBACd,OAAO,KAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC,CAAC,CACH;iBACA,SAAS,CAAC,aAAG;gBACZ,KAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACzB,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAnBU,kBAAkB;QAJ9B,0DAAI,CAAC;YACJ,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,KAAK;SACZ,CAAC;yCAGsC,oEAAgB;OAF3C,kBAAkB,CAoB9B;IAAD,yBAAC;CAAA;AApB8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRY;AACS;AACiB;AAMrE;IAAuC,qCAAQ;IAC7C,2BAAoB,YAAiC;QAArD,YACE,kBAAM,YAAY,CAAC,SAAS,EAAE,CAAC,SAChC;QAFmB,kBAAY,GAAZ,YAAY,CAAqB;;IAErD,CAAC;IACD,qCAAS,GAAT,UAAU,KAAU,EAAE,IAAU;QAC9B,OAAO,iBAAM,SAAS,YAAC,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3F,CAAC;IANU,iBAAiB;QAJ7B,0DAAI,CAAC;YACJ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,KAAK,CAAC,sFAAsF;SACnG,CAAC;yCAEkC,kFAAmB;OAD1C,iBAAiB,CAO7B;IAAD,wBAAC;CAAA,CAPsC,wDAAQ,GAO9C;AAP6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRa;AACS;AACa;AAKjE;IAAuC,qCAAQ;IAA/C;;IAMA,CAAC;IALC,qCAAS,GAAT,UAAU,KAAU,EAAE,IAAU;QAC9B,IAAM,QAAQ,GACZ,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sFAAuB,EAAE,CAAC;QACpD,OAAO,iBAAM,SAAS,YAAC,KAAK,EAAE,yBAAuB,QAAQ,MAAG,CAAC,CAAC;IACpE,CAAC;IALU,iBAAiB;QAH7B,0DAAI,CAAC;YACJ,IAAI,EAAE,eAAe;SACtB,CAAC;OACW,iBAAiB,CAM7B;IAAD,wBAAC;CAAA,CANsC,wDAAQ,GAM9C;AAN6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPa;AACS;AAKpD;IAAmC,iCAAQ;IAA3C;;IAIA,CAAC;IAHC,iCAAS,GAAT,UAAU,KAAU,EAAE,IAAU;QAC9B,OAAO,iBAAM,SAAS,YAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAHU,aAAa;QAHzB,0DAAI,CAAC;YACJ,IAAI,EAAE,WAAW;SAClB,CAAC;OACW,aAAa,CAIzB;IAAD,oBAAC;CAAA,CAJkC,wDAAQ,GAI1C;AAJyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNiB;AACS;AAKpD;IAAwC,sCAAQ;IAAhD;;IASA,CAAC;IARC,sCAAS,GAAT,UAAU,SAAc,EAAE,IAAU;QAClC,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACvC,IAAM,CAAC,GAAG,iBAAM,SAAS,YAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,IAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,OAAO,KAAG,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAG,CAAG,CAAC;IACnE,CAAC;IARU,kBAAkB;QAH9B,0DAAI,CAAC;YACJ,IAAI,EAAE,gBAAgB;SACvB,CAAC;OACW,kBAAkB,CAS9B;IAAD,yBAAC;CAAA,CATuC,wDAAQ,GAS/C;AAT8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNY;AACS;AACa;AAKjE;IAAmC,iCAAQ;IAA3C;;IAOA,CAAC;IANC,iCAAS,GAAT,UAAU,SAAc,EAAE,IAAU;QAClC,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACvC,IAAM,QAAQ,GACZ,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sFAAuB,EAAE,CAAC;QACpD,OAAO,iBAAM,SAAS,YAAC,SAAS,EAAE,aAAW,QAAQ,MAAG,CAAC,CAAC;IAC5D,CAAC;IANU,aAAa;QAHzB,0DAAI,CAAC;YACJ,IAAI,EAAE,WAAW;SAClB,CAAC;OACW,aAAa,CAOzB;IAAD,oBAAC;CAAA,CAPkC,wDAAQ,GAO1C;AAPyB;;;;;;;;;;;;;;;;;;;;;;;;;;ACP0B;AACK;AAKzD;IACE,sBAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,gCAAS,GAAT,UAAU,KAAU,EAAE,IAAU;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IALU,YAAY;QAHxB,0DAAI,CAAC;YACJ,IAAI,EAAE,UAAU;SACjB,CAAC;yCAE+B,sEAAY;OADhC,YAAY,CAMxB;IAAD,mBAAC;CAAA;AANwB;;;;;;;;;;;;;;;;;;;;;;;;;;ACN2B;AACK;AAKzD;IACE,qBAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,+BAAS,GAAT,UAAU,KAAU,EAAE,CAAO;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IALU,WAAW;QAHvB,0DAAI,CAAC;YACJ,IAAI,EAAE,SAAS;SAChB,CAAC;yCAE+B,sEAAY;OADhC,WAAW,CAMvB;IAAD,kBAAC;CAAA;AANuB;;;;;;;;;;;;;;;;;;;;;;ACN4B;AAKpD;IAAA;IAIA,CAAC;IAHC,gCAAS,GAAT,UAAU,OAAe,EAAE,IAAU;QACnC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAHU,YAAY;QAHxB,0DAAI,CAAC;YACJ,IAAI,EAAE,UAAU;SACjB,CAAC;OACW,YAAY,CAIxB;IAAD,mBAAC;CAAA;AAJwB;;;;;;;;;;;;;;;;;;;;;;;;;ACAF;AAMvB;IASE,oBAAoB,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;IAAG,CAAC;mBATnC,UAAU;IAWrB,8BAAS,GAAT,UAAU,KAAU,EAAE,MAAuB,EAAE,MAAmB;QAAlE,iBA2DC;QA3DqB,wCAAuB;QAAE,sCAAmB;QAChE,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACf,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;oBACvB,KAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC1B,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SACF;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE;YACrB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;QAED,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE;YAC5B,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,SAAS,CAAC;YACf,KAAK,SAAS;gBACZ,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3C,MAAM;SACT;QAED,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,OAAO,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;YACnB,IAAI,GAAG,EAAE;gBACP,GAAG,IAAI,CAAC,CAAC;aACV;iBAAM,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtD,GAAG,IAAI,GAAG,CAAC;aACZ;iBAAM;gBACL,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,UAAC,KAAK,EAAE,EAAE;oBAC1C,IAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;oBACvB,QAAQ,EAAE,EAAE;wBACV,KAAK,GAAG,CAAC;wBACT,KAAK,GAAG;4BACN,OAAO,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,YAAU,CAAC,GAAG,CAAC,CAAC;wBAC9C,KAAK,GAAG;4BACN,OAAO,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,YAAU,CAAC,IAAI,CAAC,CAAC;wBAC/C,KAAK,GAAG;4BACN,OAAO,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,YAAU,CAAC,MAAM,CAAC,CAAC;wBACjD,KAAK,GAAG;4BACN,OAAO,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,YAAU,CAAC,MAAM,CAAC,CAAC;wBACjD,KAAK,GAAG;4BACN,OAAO,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,YAAU,CAAC,IAAI,EAAE,YAAU,CAAC,GAAG,CAAC,CAAC;wBAC/D,KAAK,GAAG;4BACN,OAAO,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,YAAU,CAAC,MAAM,EAAE,YAAU,CAAC,IAAI,CAAC,CAAC;wBAClE,KAAK,GAAG;4BACN,OAAO,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,YAAU,CAAC,MAAM,EAAE,YAAU,CAAC,MAAM,CAAC,CAAC;wBACpE;4BACE,OAAO,KAAK,CAAC;qBAChB;gBACH,CAAC,CAAC,CAAC;aACJ;YACD,GAAG,GAAG,CAAC,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gCAAW,GAAX;QACE,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;IACH,CAAC;IAEO,2BAAM,GAAd,UACE,MAAc,EACd,MAAc,EACd,IAAY,EACZ,OAAmB;QAAnB,qCAAmB;QAEnB,IAAI,OAAO,GAAG,CAAC,EAAE;YACf,MAAM,IAAI,OAAO,CAAC;SACnB;QACD,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE;YACvB,OAAO,CAAC,YAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;SAC/C;QACD,OAAO,GAAG,CAAC;IACb,CAAC;;IA3FuB,iBAAM,GAAG,IAAI,CAAC;IACd,iBAAM,GAAG,EAAE,GAAG,YAAU,CAAC,MAAM,CAAC;IAChC,eAAI,GAAG,EAAE,GAAG,YAAU,CAAC,MAAM,CAAC;IAC9B,cAAG,GAAG,EAAE,GAAG,YAAU,CAAC,IAAI,CAAC;IAC3B,cAAG,GAAG,YAAY,CAAC;IALhC,UAAU;QAJtB,0DAAI,CAAC;YACJ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,KAAK;SACZ,CAAC;yCAUyB,+DAAiB;OAT/B,UAAU,CA6FtB;IAAD,iBAAC;CAAA;AA7FsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXkB;AAEa;AACtD,mBAAmB;AAiCQ;AAE0C;AAC2B;AAC9B;AAClB;AAC+B;AACW;AACL;AACW;AACjD;AACuB;AACT;AACV;AACA;AACa;AACX;AACE;AACS;AAC4C;AACvD;AAC4B;AAC1B;AACS;AACE;AAmIlE;IAAA;IAA2B,CAAC;IAAf,YAAY;QAjIxB,8DAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,cAAc;gBACd,kFAAkB;gBAClB,6GAA+B;gBAC/B,+EAAgB;gBAChB,oFAAkB;gBAClB,SAAS;gBACT,6DAAU;gBACV,iEAAW;gBACX,mEAAY;gBACZ,8EAAkB;gBAClB,qEAAa;gBACb,8EAAiB;gBACjB,8EAAiB;gBACjB,qEAAa;gBACb,gFAAkB;gBAClB,mEAAY;gBACZ,gBAAgB;gBAChB,2FAAc;gBACd,sGAAoB;gBACpB,iGAAgB;gBAChB,6GAAsB;gBACtB,8FAAiB;gBACjB,0HAA2B;aAC5B;YACD,OAAO,EAAE;gBACP,6DAAY;gBACZ,mEAAe;gBACf,mBAAmB;gBACnB,uEAAqB;gBACrB,iEAAe;gBACf,uEAAqB;gBACrB,+DAAa;gBACb,mEAAiB;gBACjB,gEAAc;gBACd,kEAAgB;gBAChB,qEAAmB;gBACnB,iEAAe;gBACf,oEAAkB;gBAClB,mEAAiB;gBACjB,+DAAa;gBACb,gEAAc;gBACd,+DAAa;gBACb,+DAAa;gBAEb,oEAAkB;gBAClB,sEAAoB;gBACpB,0EAAwB;gBACxB,gEAAc;gBACd,iEAAe;gBACf,iEAAe;gBACf,kEAAgB;gBAChB,iEAAe;gBACf,sEAAoB;gBACpB,mEAAiB;gBACjB,+DAAa;gBACb,gEAAc;gBACd,+DAAa;gBACb,kEAAgB;gBAChB,kEAAgB;gBAChB,oEAAkB;gBAClB,2EAAmB;gBACnB,iEAAgB;aACjB;YACD,OAAO,EAAE;gBACP,mEAAe;gBACf,cAAc;gBACd,kFAAkB;gBAClB,6GAA+B;gBAC/B,+EAAgB;gBAChB,oFAAkB;gBAClB,SAAS;gBACT,6DAAU;gBACV,iEAAW;gBACX,8EAAkB;gBAClB,mEAAY;gBACZ,qEAAa;gBACb,8EAAiB;gBACjB,8EAAiB;gBACjB,qEAAa;gBACb,gFAAkB;gBAClB,mEAAY;gBACZ,mBAAmB;gBACnB,uEAAqB;gBACrB,iEAAe;gBACf,uEAAqB;gBACrB,+DAAa;gBACb,mEAAiB;gBACjB,gEAAc;gBACd,kEAAgB;gBAChB,qEAAmB;gBACnB,iEAAe;gBACf,oEAAkB;gBAClB,mEAAiB;gBACjB,+DAAa;gBACb,gEAAc;gBACd,+DAAa;gBACb,+DAAa;gBAEb,oEAAkB;gBAClB,sEAAoB;gBACpB,0EAAwB;gBACxB,gEAAc;gBACd,iEAAe;gBACf,iEAAe;gBACf,kEAAgB;gBAChB,iEAAe;gBACf,sEAAoB;gBACpB,mEAAiB;gBACjB,+DAAa;gBACb,gEAAc;gBACd,+DAAa;gBACb,kEAAgB;gBAChB,kEAAgB;gBAChB,oEAAkB;gBAClB,2EAAmB;gBACnB,iEAAgB;gBAChB,0HAA2B;aAC5B;YACD,eAAe,EAAE;gBACf,2FAAc;gBACd,iGAAgB;gBAChB,sGAAoB;gBACpB,6GAAsB;gBACtB,8FAAiB;gBACjB,0HAA2B;aAC5B;SACF,CAAC;OACW,YAAY,CAAG;IAAD,mBAAC;CAAA;AAAH;;;;;;;;;;;;AC/LzB,6PAA6P,oCAAoC,8QAA8Q,0CAA0C,iPAAiP,eAAe,0FAA0F,4CAA4C,w+BAAw+B,4CAA4C,kRAAkR,wCAAwC,qdAAqd,uCAAuC,kdAAkd,0CAA0C,sfAAsf,MAAM,wCAAwC,MAAM,uMAAuM,uCAAuC,iLAAiL,2CAA2C,oOAAoO,kBAAkB,+kBAA+kB,2CAA2C,sRAAsR,sCAAsC,4fAA4f,uCAAuC,0fAA0f,uCAAuC,qNAAqN,kBAAkB,quBAAquB,yCAAyC,gdAAgd,qDAAqD,kFAAkF,kDAAkD,iNAAiN,sDAAsD,yOAAyO,yCAAyC,2tBAA2tB,yCAAyC,yNAAyN,oBAAoB,wmBAAwmB,sDAAsD,2nBAA2nB,uCAAuC,yIAAyI,uCAAuC,2UAA2U,sCAAsC,0PAA0P,gDAAgD,kD;;;;;;;;;;;ACA5xX,qCAAqC,wBAAwB,EAAE,qBAAqB,oBAAoB,EAAE,+BAA+B,uBAAuB,EAAE,+CAA+C,2vB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACU1L;AACyF;AAElE;AAC0E;AAC3D;AAEI;AAEJ;AAEE;AAEJ;AAChB;AAEU;AACiB;AACH;AAOnE;IAyBE,kCACU,WAAwB,EACzB,MAAiB,EACjB,mBAAwC,EACvC,eAAgC,EAChC,iBAAoC,EACpC,eAAgC,EAChC,YAA0B,EAC3B,WAAwB;QARjC,iBAgBC;QAfS,gBAAW,GAAX,WAAW,CAAa;QACzB,WAAM,GAAN,MAAM,CAAW;QACjB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACvC,oBAAe,GAAf,eAAe,CAAiB;QAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAC3B,gBAAW,GAAX,WAAW,CAAa;QA9BxB,aAAQ,GAAY,KAAK,CAAC;QACzB,sBAAiB,GAAG,IAAI,0DAAY,EAAoB,CAAC;QAYnE,YAAO,GAAS,IAAI,IAAI,EAAE,CAAC;QAE3B,aAAQ,GAAG,IAAI,4CAAO,EAAW,CAAC;QAElC,WAAM,GAAG,GAAG,CAAC;QACb,eAAU,GAAG,EAAE,CAAC;QAChB,uBAAkB,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,YAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,KAAI,CAAC,MAAM,GAAG,CAAC,EAA5C,CAA4C,CAAC,CAAC;QAkOhH,uCAAkC,GAAgB,UAAC,gBAA2B;YAC5E,IAAI,KAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9D,OAAO,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC,CAAC;QAxNA,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CACjF,gEAAS,CAAC,EAAE,CAAC,EACb,0DAAG,CAAC,eAAK,IAAI,YAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,cAAI,IAAI,WAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA/B,CAA+B,CAAa,EAAnF,CAAmF,CAAC,CAClG,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,kDAAe,GAAf;QACE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO;QAEjD,4BAA4B;QAC5B,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,yCAAsC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,OAAG,CAAC,CAAC;QAE/G,OAAO,CAAC,cAAc,CAAC;YACrB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;IACL,CAAC;IAED,2CAAQ,GAAR;QAAA,iBA+BC;QA9BC,IAAI,CAAC,YAAY;aACd,SAAS,EAAE;aACX,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,UAAC,MAAoB;YAC9B,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,UAAC,SAA0B;YACvE,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,mBAAS;YAC1D,KAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB;aACnB,cAAc,EAAE;aAChB,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,UAAC,WAA8B;YACxC,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QACjC,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,eAAe;aACjB,YAAY,EAAE;aACd,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,UAAC,SAA0B;YACpC,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,KAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yCAAM,GAAN,UAAO,KAAa,EAAE,IAAY;QAAlC,iBAEC;QADC,UAAU,CAAC,WAAC,IAAI,YAAI,CAAC,QAAM,IAAI,UAAO,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAA7C,CAA6C,EAAE,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,6CAAU,GAAV,UAAW,IAAY;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAI,IAAI,OAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAI,IAAI,UAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,2CAAQ,GAAR,UAAS,CAAQ,EAAE,SAAiB,EAAE,WAAqB,EAAE,WAAkB;QAAzC,mDAAqB;QAAE,gDAAkB;QAC7E,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,WAAW,CAAC,KAAK,SAAS,EAA5B,CAA4B,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,CAAC;IAED,2CAAQ,GAAR;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,8CAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,gDAAa,GAAb;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAED,kDAAe,GAAf;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;IAED,kDAAe,GAAf;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACjF,CAAC;IAED,8CAAW,GAAX,UAAY,OAAY;QACtB,IAAI,OAAO,CAAC,WAAW,EAAE;YACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;IAED,8CAAW,GAAX;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED,yCAAM,GAAN;QACE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;YAC7E,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;SACd;QAED,IAAM,IAAI,GAAG,aACR,IAAI,CAAC,IAAI,CAAC,KAAK,CACC,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEvE,iDAAiD;QACjD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAElC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEO,2CAAQ,GAAhB;QACE,uHAAuH;QACvH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,4CAAS,GAAT;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CACvC;YACE,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACpD,IAAI,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC9C,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACpD,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAChF,EACD;YACE,UAAU,EAAE,IAAI,CAAC,kCAAkC;SACpD,CACF,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAChC;YACE,EAAE,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACjD,UAAU,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC/B,SAAS,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACnD,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAClD,WAAW,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE;gBAC/B,yDAAU,CAAC,QAAQ;gBACnB,yDAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxD,yDAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC1C,iFAAY,CAAC,4BAA4B;aAC1C,CAAC;YACF,kBAAkB,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC5D,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,uBAAuB,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACjE,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACtD,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC;SAChE,EACD;YACE,UAAU,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;SACjD,CACF,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,uDAAoB,GAApB,UAAqB,IAAa;QAAlC,iBASC;QARC,OAAO,UAAC,EAAa;;YACnB,IAAI,EAAE,CAAC,QAAQ,CAAI,IAAI,OAAI,CAAC,CAAC,KAAK,KAAK,KAAI,CAAI,IAAI,YAAS,CAAC;gBAC3D,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAI,IAAI,UAAO,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAI,IAAI,UAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;oBAC1F,EAAE,CAAC,QAAQ,CAAI,IAAI,UAAO,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvD,gBAAS,GAAI,IAAI,UAAO,IAAG,IAAI,KAAG;iBACnC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC;IAED,yDAAsB,GAAtB,UAAuB,CAAc;QACnC,IAAI,CAAC,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO;YACL,cAAc,EAAE;gBACd,KAAK,EAAE,KAAK;aACb;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,qDAAkB,GAAlB,UAAmB,CAAc;QAC/B,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAE1B,IAAM,cAAc,GAAG,+EAA+E,CAAC;QACvG,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACtD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,kBAAkB,EAAE;oBAClB,KAAK,EAAE,KAAK;iBACb;aACF,CAAC;IACR,CAAC;IAED,wDAAqB,GAArB;QACE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAOD;;;;OAIG;IACH,wDAAqB,GAArB,UAAsB,gBAA2B;QAC/C,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB;;;;;;;;;;;;;;;;;;;;;;oBAsBD;YAEC,IAAM,qBAAqB,GAAG;gBAC5B,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;gBACnB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;gBAC7B,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,CAAC,GAAG,CAAC;aACV,CAAC;YAEF,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAnD,CAAmD,CAAC,CAAC;YAE3F,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;gBACxE,IAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChF,IAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC/D,OAAO,IAAI,CAAC;iBACb;qBAAM;oBACL,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6CAAU,GAAV;QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oIAAiC,CAAC,CAAC;IACtD,CAAC;IA5TQ;QAAR,2DAAK,EAAE;;gEAAoB;IACnB;QAAR,2DAAK,EAAE;;iEAA+B;IAC9B;QAAR,2DAAK,EAAE;;8DAA2B;IACzB;QAAT,4DAAM,EAAE;;uEAA0D;IACvC;QAA3B,+DAAS,CAAC,eAAe,CAAC;kCAAgB,wDAAU;mEAAC;IAL3C,wBAAwB;QALpC,+DAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,yIAAgD;;SAEjD,CAAC;yCA2BuB,0DAAW;YACjB,2DAAS;YACI,oFAAmB;YACtB,0EAAe;YACb,8EAAiB;YACnB,0EAAe;YAClB,oEAAY;YACd,mEAAW;OAjCtB,wBAAwB,CA8TpC;IAAD,+BAAC;CAAA;AA9ToC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCI;AACM;AACmB;AACb;AACe;AACoD;AAChD;AAcxE;IAAA;IAAoC,CAAC;IAAxB,qBAAqB;QAZjC,8DAAQ,CAAC;YACR,OAAO,EAAE;gBACP,4DAAY;gBACZ,0DAAW;gBACX,kEAAmB;gBACnB,kEAAY;gBACZ,iFAAmB;aACpB;YACD,eAAe,EAAE,CAAC,oIAAiC,CAAC;YACpD,YAAY,EAAE,CAAC,oFAAwB,EAAE,oIAAiC,CAAC;YAC3E,OAAO,EAAE,CAAC,oFAAwB,CAAC;SACpC,CAAC;OACW,qBAAqB,CAAG;IAAD,4BAAC;CAAA;AAAH;;;;;;;;;;;;ACpBlC,yCAAyC,wCAAwC,8CAA8C,0CAA0C,iJAAiJ,8BAA8B,wB;;;;;;;;;;;;;;;;;;;;;;;;ACA9S;AAM1C;IACE;IAAe,CAAC;IADL,iCAAiC;QAJ7C,+DAAS,CAAC;YACT,QAAQ,EAAE,iCAAiC;YAC3C,2LAA2D;SAC5D,CAAC;;OACW,iCAAiC,CAE7C;IAAD,wCAAC;CAAA;AAF6C;;;;;;;;;;;;ACN9C,4NAA4N,qCAAqC,OAAO,gCAAgC,6DAA6D,iIAAiI,6CAA6C,OAAO,gCAAgC,qCAAqC,iIAAiI,wCAAwC,OAAO,gCAAgC,8BAA8B,qIAAqI,0CAA0C,OAAO,gCAAgC,2CAA2C,gIAAgI,sCAAsC,OAAO,gCAAgC,wCAAwC,wRAAwR,YAAY,iBAAiB,wQAAwQ,oCAAoC,uO;;;;;;;;;;;ACAp6D,oDAAoD,0BAA0B,EAAE,4CAA4C,4BAA4B,oBAAoB,qCAAqC,EAAE,+CAA+C,u7B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAzM;AAEf;AACI;AACwF;AAOtI;IAIE,gDAAmB,MAAiB,EAAS,MAAc;QAAxC,WAAM,GAAN,MAAM,CAAW;QAAS,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/D,yDAAQ,GAAR,cAAY,CAAC;IAEb,kEAAiB,GAAjB;QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mJAAkC,CAAC,CAAC;IACvD,CAAC;IATQ;QAAR,2DAAK,EAAE;;iFAAuC;IACtC;QAAR,2DAAK,EAAE;;oGAA2C;IAFxC,sCAAsC;QALlD,+DAAS,CAAC;YACT,QAAQ,EAAE,qCAAqC;YAC/C,6NAA+D;;SAEhE,CAAC;yCAK2B,2DAAS,EAAiB,uDAAM;OAJhD,sCAAsC,CAWlD;IAAD,6CAAC;CAAA;AAXkD;;;;;;;;;;;;ACXnD,6GAA6G,kBAAkB,8EAA8E,uBAAuB,iGAAiG,gBAAgB,KAAK,qBAAqB,4C;;;;;;;;;;;ACA/W,+DAA+D,uO;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA+B;AAE9B;AACrB;AACZ;AACsC;AAOrE;IAKE,kCAAoB,gBAAkC,EAAU,mBAAwC;QAApF,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAU,wBAAmB,GAAnB,mBAAmB,CAAqB;QAJhG,aAAQ,GAAG,IAAI,4CAAO,EAAW,CAAC;IAIiE,CAAC;IAC5G,2CAAQ,GAAR;QACE,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,sDAAmB,GAAnB;QAAA,iBAUC;QATC,IAAI,CAAC,gBAAgB;aAClB,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC;aAC3C,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CACR,iBAAO;YACL,KAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QACpC,CAAC,EACD,eAAK,IAAI,YAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,EAA1C,CAA0C,CACpD,CAAC;IACN,CAAC;IAED,8CAAW,GAAX,UAAY,OAAsB;QAChC,IAAI,qBAAqB,IAAI,OAAO,EAAE;YACpC,oFAAoF;YACpF,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;IACH,CAAC;IAED,8CAAW,GAAX;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IA7BQ;QAAR,2DAAK,EAAE;;yEAA6B;IAH1B,wBAAwB;QALpC,+DAAS,CAAC;YACT,QAAQ,EAAE,uBAAuB;YACjC,mLAAiD;;SAElD,CAAC;yCAMsC,6EAAgB,EAA+B,kFAAmB;OAL7F,wBAAwB,CAiCpC;IAAD,+BAAC;CAAA;AAjCoC;;;;;;;;;;;;ACZrC,sFAAsF,wIAAwI,0CAA0C,+JAA+J,eAAe,8RAA8R,2GAA2G,wCAAwC,mTAAmT,2GAA2G,uCAAuC,wTAAwT,2GAA2G,oCAAoC,6XAA6X,6BAA6B,+MAA+M,+BAA+B,gM;;;;;;;;;;;ACA33E,+DAA+D,uO;;;;;;;;;;;;;;;;;;;;;;;;;ACAQ;AAC5B;AAO3C;IALA;QAOY,WAAM,GAAG,IAAI,0DAAY,EAAE,CAAC;IAExC,CAAC;IAHU;QAAR,2DAAK,EAAE;kCAAO,wDAAS;kDAAC;IACf;QAAT,4DAAM,EAAE;;oDAA6B;IAC7B;QAAR,2DAAK,EAAE;;uDAAW;IAHR,gBAAgB;QAL5B,+DAAS,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,2KAAwC;;SAEzC,CAAC;OACW,gBAAgB,CAI5B;IAAD,uBAAC;CAAA;AAJ4B;;;;;;;;;;;;ACR7B,oGAAoG,wCAAwC,6QAA6Q,0CAA0C,uBAAuB,wCAAwC,uBAAuB,uCAAuC,uBAAuB,oCAAoC,oJAAoJ,iMAAiM,0CAA0C,yBAAyB,4BAA4B,yBAAyB,2BAA2B,yBAAyB,wBAAwB,kQAAkQ,6BAA6B,+UAA+U,+BAA+B,yvCAAyvC,sDAAsD,6DAA6D,wDAAwD,6C;;;;;;;;;;;ACArsG,kCAAkC,4BAA4B,uBAAuB,mBAAmB,mBAAmB,oBAAoB,yCAAyC,kBAAkB,EAAE,+CAA+C,25B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOpO;AAMC;AAE6C;AACd;AAExB;AACY;AAO3C;IAcE,mCACU,WAAwB,EACxB,YAA0B,EAC1B,mBAAwC;QAFxC,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QAfzC,aAAQ,GAAY,KAAK,CAAC;QACzB,WAAM,GAAG,IAAI,0DAAY,EAAE,CAAC;QAC5B,eAAU,GAAG,IAAI,0DAAY,EAAE,CAAC;QAChC,iBAAY,GAAG,IAAI,0DAAY,EAAE,CAAC;QAClC,iBAAY,GAAG,IAAI,0DAAY,EAAE,CAAC;QAC5C,iBAAY,GAAG,KAAK,CAAC;QAIrB,aAAQ,GAAG,IAAI,4CAAO,EAAW,CAAC;IAO/B,CAAC;IAEJ,4CAAQ,GAAR;QAAA,iBAWC;QAVC,IAAI,CAAC,YAAY;aACd,SAAS,EAAE;aACX,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,UAAC,MAAoB;YAC9B,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;IACH,CAAC;IAED,+CAAW,GAAX;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED,uCAAG,GAAH;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,0CAAM,GAAN;QACE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;gBACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEtD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClC;iBAAM;gBACL,IAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAgC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aAC3C;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAED,wCAAI,GAAJ,UAAK,mBAA4C,EAAE,KAAa;QAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,0CAAM,GAAN,UAAO,mBAA4C;QAAnD,iBAqBC;QApBC,IAAI,CAAC,mBAAmB;aACrB,aAAa,CAAC;YACb,IAAI,EAAE;gBACJ,UAAU,EAAE,oCAAoC;aACjD;SACF,CAAC;aACD,WAAW,EAAE;aACb,SAAS,CAAC,qBAAW;YACpB,IAAI,WAAW,EAAE;gBACf,IAAM,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;gBAChE,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAEtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAClE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAE5C,IAAI,KAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;oBACrC,KAAI,CAAC,GAAG,EAAE,CAAC;iBACZ;aACF;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0CAAM,GAAN;QACE,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,8CAAU,GAAV,UAAW,OAAgB;QACzB,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM;YACL,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;IACH,CAAC;IAEO,2CAAO,GAAf;QACE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAEO,0CAAM,GAAd;QACE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC;IAEO,yCAAK,GAAb;QACE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEO,6CAAS,GAAjB;QACE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,EAAE,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACjD,SAAS,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACnD,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAClD,KAAK,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,EAAE,yDAAU,CAAC,KAAK,CAAC,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAED,kDAAc,GAAd,UAAe,EAAU;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAI;gBACjC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE;gBACT,OAAO,KAAK,CAAC,KAAK,CAAC;aACpB;SACF;IACH,CAAC;IA5IQ;QAAR,2DAAK,EAAE;;sEAA4C;IAC3C;QAAR,2DAAK,EAAE;;+DAA2B;IACzB;QAAT,4DAAM,EAAE;;6DAA6B;IAC5B;QAAT,4DAAM,EAAE;;iEAAiC;IAChC;QAAT,4DAAM,EAAE;;mEAAmC;IAClC;QAAT,4DAAM,EAAE;;mEAAmC;IANjC,yBAAyB;QALrC,+DAAS,CAAC;YACT,QAAQ,EAAE,wBAAwB;YAClC,sLAAkD;;SAEnD,CAAC;yCAgBuB,0DAAW;YACV,oEAAY;YACL,kFAAmB;OAjBvC,yBAAyB,CA8IrC;IAAD,gCAAC;CAAA;AA9IqC;;;;;;;;;;;;AC1BtC,gGAAgG,qFAAqF,yCAAyC,KAAK,cAAc,obAAob,YAAY,yGAAyG,6DAA6D,IAAI,oCAAoC,4SAA4S,+CAA+C,kGAAkG,2CAA2C,+GAA+G,qDAAqD,khBAAkhB,YAAY,qEAAqE,ySAAyS,YAAY,oCAAoC,4WAA4W,sFAAsF,YAAY,qHAAqH,KAAK,4BAA4B,OAAO,6BAA6B,2CAA2C,uOAAuO,mdAAmd,oBAAoB,yGAAyG,YAAY,gDAAgD,okB;;;;;;;;;;;ACA7+H,sDAAsD,gBAAgB,kBAAkB,mCAAmC,EAAE,qBAAqB,uCAAuC,EAAE,eAAe,qBAAqB,EAAE,+CAA+C,miC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAvN;AAER;AACP;AACY;AAQtD;IAUE,4CAAmB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QARxB,2BAAsB,GAAG,KAAK,CAAC;QAC/B,2BAAsB,GAAG,IAAI,CAAC;QAC9B,cAAS,GAAG,KAAK,CAAC;QAC3B,eAAU,GAAG,8DAAU,CAAC;QAExB,mEAAmE;QACnE,iBAAY,GAAG,mEAAY,CAAC;IAEQ,CAAC;IAErC,qDAAQ,GAAR,cAAY,CAAC;IAEb,oDAAoD;IACpD,mEAAsB,GAAtB;QACE,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAEhC,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,8DAAU,CAAC,MAAM;eACpC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,8DAAU,CAAC,OAAO,EAAC;YAC3C,mBAAmB,GAAG,IAAI,CAAC;SAC5B;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAvBQ;QAAR,2DAAK,EAAE;;oEAAkC;IACjC;QAAR,2DAAK,EAAE;;sFAAgC;IAC/B;QAAR,2DAAK,EAAE;;sFAA+B;IAC9B;QAAR,2DAAK,EAAE;;yEAAmB;IAJhB,kCAAkC;QAN9C,+DAAS,CAAC;YACT,QAAQ,EAAE,kCAAkC;YAC5C,oNAA4D;YAE5D,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;;SAClC,CAAC;yCAW2B,uDAAM;OAVtB,kCAAkC,CAyB9C;IAAD,yCAAC;CAAA;AAzB8C;;;;;;;;;;;;;ACZ/C;AAAA;AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,gEAAgE;AAEzD,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,GAAG,EAAE,KAAK;CACX,CAAC;AAEF;;;;;GAKG;AACH,mEAAmE;;;;;;;;;;;;;ACfnE;AAAA;AAAA;AAAA;AAAA;AAA4D;AACT;AAE5C,IAAM,YAAY,GAAG,UAAC,MAAW,EAAE,SAA0C;IAClF,IAAI,QAA0B,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,CAAC,IAAI,CAAC,aAAG,IAAI,eAAQ,GAAG,GAAG,EAAd,CAAc,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QACjB,IAAM,MAAM,GAAmB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,4DAAc,CAAC,CAAC;QACrE,IAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,CAAC,aAAa,EAAxB,CAAwB,CAAC,CAAC;QACtE,IAAM,WAAW,GAAG,wEAAc,CAAC,QAAQ,CAAC,CAAC;QAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;;;;;;;;;;;;;ACdF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkB;AAC6B;AAC4B;AAE9B;AACY;AAEpB;AAErC,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAEM,SAAS,UAAU;IACxB,OAAO,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,IAAM,SAAS,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9E,IAAM,SAAS,GAAG;IAChB,uGAAsB,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,yDAAS,CAAC;AAA5D,CAA4D,CAAC;AAE/D,IAAI,qEAAW,CAAC,GAAG,EAAE;IACnB,IAAI,KAAa,EAAE,EAElB;SAAM;QACL,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;KAC3D;CACF;KAAM;IACL,SAAS,EAAE,CAAC;CACb;AAED,iCAAiC;AACjC,0DAA0D;AAC1D,IAAI;AAEJ,sBAAsB;AACtB,8DAA8D;AAC9D,KAAK;AAEL,gCAAgC;AAChC,sBAAsB;AACtB,IAAI;AAEJ,+DAA+D;AAC/D,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;AC7CrC,e","file":"main.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ps\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-ps.js\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku-kmr\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku-kmr.js\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","var map = {\n\t\"../user/user.module\": [\n\t\t\"./src/app/user/user.module.ts\",\n\t\t\"common\",\n\t\t\"user-user-module\"\n\t],\n\t\"./admin/admin.module\": [\n\t\t\"./src/app/admin/admin.module.ts\",\n\t\t\"admin-admin-module\"\n\t],\n\t\"./certifications/certifications.module\": [\n\t\t\"./src/app/admin/certifications/certifications.module.ts\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~exam-exam-module~t~b61df52e\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~tests-tests-module~44f7b112\",\n\t\t\"default~certifications-certifications-module~groups-groups-module~tests-tests-module\",\n\t\t\"default~certifications-certifications-module~tests-tests-module\",\n\t\t\"common\",\n\t\t\"certifications-certifications-module\"\n\t],\n\t\"./communications/communications.module\": [\n\t\t\"./src/app/admin/communications/communications.module.ts\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~exam-exam-module~t~b61df52e\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~tests-tests-module~44f7b112\",\n\t\t\"common\",\n\t\t\"communications-communications-module\"\n\t],\n\t\"./dashboard/dashboard.module\": [\n\t\t\"./src/app/dashboard/dashboard.module.ts\",\n\t\t\"default~dashboard-dashboard-module~exam-exam-module\",\n\t\t\"common\",\n\t\t\"dashboard-dashboard-module\"\n\t],\n\t\"./evaluator/evaluator.module\": [\n\t\t\"./src/app/evaluator/evaluator.module.ts\",\n\t\t\"default~evaluator-evaluator-module~groups-groups-module\",\n\t\t\"common\",\n\t\t\"evaluator-evaluator-module\"\n\t],\n\t\"./exam/exam.module\": [\n\t\t\"./src/app/exam/exam.module.ts\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~exam-exam-module~t~b61df52e\",\n\t\t\"default~exam-exam-module~video-conference-video-conference-module\",\n\t\t\"default~dashboard-dashboard-module~exam-exam-module\",\n\t\t\"common\",\n\t\t\"exam-exam-module\"\n\t],\n\t\"./groups/groups.module\": [\n\t\t\"./src/app/admin/groups/groups.module.ts\",\n\t\t\"default~certifications-certifications-module~groups-groups-module~tests-tests-module\",\n\t\t\"default~evaluator-evaluator-module~groups-groups-module\",\n\t\t\"common\",\n\t\t\"groups-groups-module\"\n\t],\n\t\"./register-certification/register-certification.module\": [\n\t\t\"./src/app/register-certification/register-certification.module.ts\",\n\t\t\"default~register-certification-register-certification-module~third-party-third-party-module\",\n\t\t\"common\",\n\t\t\"register-certification-register-certification-module\"\n\t],\n\t\"./tests/tests.module\": [\n\t\t\"./src/app/admin/tests/tests.module.ts\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~exam-exam-module~t~b61df52e\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~tests-tests-module~44f7b112\",\n\t\t\"default~certifications-certifications-module~groups-groups-module~tests-tests-module\",\n\t\t\"default~certifications-certifications-module~tests-tests-module\",\n\t\t\"common\",\n\t\t\"tests-tests-module\"\n\t],\n\t\"./third-party/third-party.module\": [\n\t\t\"./src/app/third-party/third-party.module.ts\",\n\t\t\"default~register-certification-register-certification-module~third-party-third-party-module\",\n\t\t\"common\",\n\t\t\"third-party-third-party-module\"\n\t],\n\t\"./user-notifications/user-notifications.module\": [\n\t\t\"./src/app/admin/user-notifications/user-notifications.module.ts\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~exam-exam-module~t~b61df52e\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~tests-tests-module~44f7b112\",\n\t\t\"common\",\n\t\t\"user-notifications-user-notifications-module\"\n\t],\n\t\"./user/user.module\": [\n\t\t\"./src/app/user/user.module.ts\",\n\t\t\"common\",\n\t\t\"user-user-module\"\n\t],\n\t\"./users/users.module\": [\n\t\t\"./src/app/admin/users/users.module.ts\",\n\t\t\"common\",\n\t\t\"users-users-module\"\n\t],\n\t\"./video-conference/video-conference.module\": [\n\t\t\"./src/app/video-conference/video-conference.module.ts\",\n\t\t\"default~certifications-certifications-module~communications-communications-module~exam-exam-module~t~b61df52e\",\n\t\t\"default~exam-exam-module~video-conference-video-conference-module\",\n\t\t\"common\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum ErrorType {\r\n SYSTEM = 'SYSTEM',\r\n VALIDATION = 'VALIDATION',\r\n TIMER = 'TIMER',\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class Roles {\r\n static readonly admin: string = 'Admin';\r\n static readonly evaluator: string = 'Evaluator';\r\n static readonly thirdParty: string = 'Third_Party';\r\n static readonly candidate: string = 'Candidate';\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum TestStatus {\r\n Active = 'Active',\r\n Started = 'Started',\r\n Submitted = 'Submitted',\r\n Completed = 'Completed',\r\n Expired = 'Expired',\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaginatorIntlService extends MatPaginatorIntl {\n translate: TranslateService;\n itemsPerPageLabel = 'Items per page';\n nextPageLabel = 'Next page';\n previousPageLabel = 'Previous page';\n getRangeLabel = function (page, pageSize, length) {\n const of = this.translate\n ? this.translate.instant('Global.Paginator.Of')\n : 'of';\n if (length === 0 || pageSize === 0) {\n return '0 ' + of + ' ' + length;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n // If the start index exceeds the list length, do not try and fix the end index to the end.\n const endIndex =\n startIndex < length\n ? Math.min(startIndex + pageSize, length)\n : startIndex + pageSize;\n return startIndex + 1 + ' - ' + endIndex + ' ' + of + ' ' + length;\n };\n\n injectTranslateService(translate: TranslateService) {\n this.translate = translate;\n\n this.translate.onLangChange.subscribe(() => {\n this.translateLabels();\n });\n\n this.translateLabels();\n }\n\n translateLabels() {\n this.itemsPerPageLabel = this.translate.instant(\n 'Global.Paginator.ItemsPerPage'\n );\n this.nextPageLabel = this.translate.instant('Global.Paginator.NextPage');\n this.previousPageLabel = this.translate.instant(\n 'Global.Paginator.PreviousPage'\n );\n }\n}\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { UserRegisterModel } from '@models/user-register-model';\r\nimport { UserSessionModel } from '@models/user-session-model';\r\nimport { UserLoginModel } from '@models/user-login-model';\r\nimport { Router } from '@angular/router';\r\nimport { TokenModel } from '@models/token-model';\r\nimport { throwError } from 'rxjs';\r\nimport { ChangePasswordModel } from '@models/change-password-model';\r\nimport { ChangePasswordResponseModel } from '@models/change-password-response-model';\r\nimport { Roles } from '@models/roles';\r\nimport { MatDialog } from '@angular/material';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n jwtHelperService = new JwtHelperService();\r\n apiUrl = '';\r\n private _examInProgress = false;\r\n private idleTimer: NodeJS.Timer;\r\n\r\n public get examInProgress(): boolean {\r\n return this._examInProgress;\r\n }\r\n\r\n public set examInProgress(value: boolean) {\r\n console.log('%cExam in progress: ', 'color: #fa0', value);\r\n this._examInProgress = value;\r\n }\r\n\r\n public get activity(): number {\r\n const act = Number(localStorage.getItem('activity'));\r\n if (act === 0) {\r\n return Date.now();\r\n }\r\n return act;\r\n }\r\n public set activity(value: number) {\r\n localStorage.setItem('activity', value.toString());\r\n }\r\n\r\n private get accessToken() {\r\n return localStorage.getItem('token');\r\n }\r\n private set accessToken(value: string) {\r\n if (value === null) {\r\n localStorage.removeItem('token');\r\n } else {\r\n localStorage.setItem('token', value);\r\n }\r\n }\r\n\r\n private get refreshToken() {\r\n return localStorage.getItem('refresh');\r\n }\r\n private set refreshToken(value: string) {\r\n if (value === null) {\r\n localStorage.removeItem('refresh');\r\n } else {\r\n localStorage.setItem('refresh', value);\r\n }\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private router: Router,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n private matDialog: MatDialog\r\n ) {\r\n this.apiUrl = `${this.baseUrl}api/authentication`;\r\n }\r\n\r\n register(userRegisterModel: UserRegisterModel) {\r\n return this.http.post(`${this.apiUrl}/register`, userRegisterModel);\r\n }\r\n\r\n login(userLoginModel: UserLoginModel) {\r\n return this.http.post(`${this.apiUrl}/login`, userLoginModel).pipe(\r\n map(response => {\r\n // login successful if there's a jwt token in the response\r\n if (response && response.accessToken) {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n this.accessToken = response.accessToken;\r\n this.setUser(response.user);\r\n // the jwt refresh token will wait until the access token is about to expire\r\n this.refreshToken = response.refreshToken;\r\n this.setIdleTimeout(this.accessToken, Date.now());\r\n }\r\n return response.user;\r\n })\r\n );\r\n }\r\n\r\n private setIdleTimeout(token: string, activity: number) {\r\n // if there is an exam in progress, that is considered activity\r\n if (this.examInProgress) {\r\n activity = Date.now();\r\n }\r\n this.activity = activity;\r\n // how long ago was the last time a message was sent to the server?\r\n // we want to subtract that from the timeout.\r\n const last = Date.now() - activity;\r\n const next = this.jwtHelperService.getTokenExpirationDate(token).getTime() - Date.now();\r\n // and only set the timer if it's in the positives\r\n if (next > last + 1_000) {\r\n this.idleTimer = setTimeout(this.scopeCall, next - last, this.refreshJwsToken, this, activity);\r\n console.log(new Date(Date.now() + next - last));\r\n return true;\r\n } else {\r\n console.log('Session expired');\r\n this.logoutNow();\r\n return false;\r\n }\r\n }\r\n\r\n private scopeCall(callback, $this: object, ...$params: any[]) {\r\n callback.call($this, ...$params);\r\n }\r\n\r\n private refreshJwsToken(previous: number) {\r\n if (!this.accessToken) return;\r\n const activity = this.activity;\r\n const token = this.accessToken;\r\n const next = this.jwtHelperService.getTokenExpirationDate(token).getTime() - Date.now();\r\n if (activity > previous && next > 1000) {\r\n console.log('Waiting a little longer');\r\n this.idleTimer = setTimeout(this.scopeCall, next, this.refreshJwsToken, this, activity);\r\n return;\r\n }\r\n\r\n this.http\r\n .post(`${this.apiUrl}/login/refresh`, {\r\n accessToken: token,\r\n refreshToken: this.refreshToken\r\n } as TokenModel)\r\n .pipe(\r\n catchError(error => {\r\n console.log('Failed to refresh token(2)');\r\n this.logoutNow();\r\n return throwError(error);\r\n })\r\n )\r\n .subscribe(response => {\r\n if (response.accessToken) {\r\n console.log('Refreshing token');\r\n this.accessToken = response.accessToken;\r\n this.refreshToken = response.refreshToken;\r\n this.setIdleTimeout(response.accessToken, activity);\r\n } else {\r\n console.log('Failed to refresh token(1)');\r\n this.logoutNow();\r\n }\r\n });\r\n }\r\n\r\n logout() {\r\n // Don't leave dialogs open.\r\n this.matDialog.closeAll();\r\n\r\n // remove user from local storage to log user out\r\n this.setUser(null);\r\n this.accessToken = null;\r\n\r\n // cancel the idle timer\r\n clearTimeout(this.idleTimer);\r\n this.idleTimer = null;\r\n this.refreshToken = null;\r\n return this.http.post(`${this.apiUrl}/logout`, {}, {});\r\n }\r\n\r\n logoutNow() {\r\n this.logout().subscribe(_ => this.router.navigate(['/login']));\r\n }\r\n\r\n loggedIn() {\r\n if (this.getUser() === null) {\r\n return false;\r\n } else if (this.jwtHelperService.isTokenExpired(this.accessToken)) {\r\n return false;\r\n } else if (!this.idleTimer) {\r\n return this.setIdleTimeout(this.accessToken, Date.now());\r\n }\r\n return true;\r\n }\r\n\r\n roleMatch(allowedRoles): boolean {\r\n let isMatch = false;\r\n\r\n const userRoles = this.getUserRoles();\r\n\r\n allowedRoles.forEach(element => {\r\n if (userRoles.includes(element)) {\r\n isMatch = true;\r\n return;\r\n }\r\n });\r\n\r\n return isMatch;\r\n }\r\n\r\n getUser() {\r\n return JSON.parse(localStorage.getItem('user')) as UserSessionModel;\r\n }\r\n private setUser(value: UserSessionModel) {\r\n if (value === null) {\r\n localStorage.removeItem('user');\r\n } else {\r\n localStorage.setItem('user', JSON.stringify(value));\r\n }\r\n }\r\n\r\n getUserId(): string {\r\n const user = this.getUser();\r\n if (user) {\r\n return user.id;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * For use by administrators to reset users' passwords for them\r\n * Resets a user's password to a randomly created password. The\r\n * admin will need to forward the new password to the user.\r\n * @param userId The ID of the user whose password will be reset.\r\n */\r\n resetPassword(userId: string) {\r\n return this.http.put<{ password: string }>(\r\n `${this.apiUrl}/resetPassword`,\r\n {},\r\n {\r\n params: {\r\n userId: userId\r\n }\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * For use by users.\r\n * Request that an email be sent to this email address if the address is valid.\r\n * A code will be sent in the email that can be used to create a new password.\r\n * @param email The user's email address.\r\n */\r\n forgotPassword(email: string, locale: string) {\r\n return this.http.put(\r\n `${this.apiUrl}/forgotPassword`,\r\n {},\r\n {\r\n params: {\r\n email,\r\n locale\r\n }\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Enables users to change they're own password if they forgot it.\r\n * @param email Users email address\r\n * @param token The code the user received in their email\r\n * @param newPassword The new password the user just created.\r\n */\r\n userResetPassword(email: string, token: string, newPassword: string) {\r\n return this.http.put(`${this.apiUrl}/userResetPassword`, {\r\n email,\r\n token,\r\n newPassword\r\n });\r\n }\r\n\r\n changePassword(passwords: ChangePasswordModel) {\r\n return this.http.put(`${this.apiUrl}/changePassword`, passwords);\r\n }\r\n\r\n getToken(): string {\r\n return this.accessToken;\r\n }\r\n\r\n isCurrentUserCandidate(): boolean {\r\n return this.userHasRole(Roles.candidate);\r\n }\r\n\r\n isCurrentUserAdmin(): boolean {\r\n return this.userHasRole(Roles.admin);\r\n }\r\n\r\n isCurrentUserEvaluator(): boolean {\r\n return this.userHasRole(Roles.evaluator);\r\n }\r\n\r\n isCurrentUserThirdParty(): boolean {\r\n return this.userHasRole(Roles.thirdParty);\r\n }\r\n\r\n setUserHasRegisteredForACertification() {\r\n const user = this.getUser();\r\n user.hasRegisteredForACertification = true;\r\n this.setUser(user);\r\n }\r\n\r\n setUserHasCompletedDetails() {\r\n const user = this.getUser();\r\n user.hasMissingDetails = false;\r\n this.setUser(user);\r\n }\r\n\r\n private getDecodedToken(): any {\r\n if (this.accessToken === null) return null;\r\n return this.jwtHelperService.decodeToken(this.accessToken);\r\n }\r\n\r\n private userHasRole(role: string) {\r\n return this.getUserRoles().indexOf(role) >= 0;\r\n }\r\n\r\n private getUserRoles(): Array {\r\n const token = this.getDecodedToken();\r\n return (token ? token.role : null) as Array;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material';\r\nimport { SwUpdate } from '@angular/service-worker';\r\nimport { interval, Subscription } from 'rxjs';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckForUpdateService {\r\n private subs: Subscription;\r\n\r\n constructor(updates: SwUpdate, private snackbar: MatSnackBar, private languageService: LocalizationService) {\r\n\r\n // Get notified of new deployments.\r\n updates.available.subscribe(evt => {\r\n // We're using a snackbar to display the message. If other snackbars are displayed for other reasons\r\n // those will overwrite this one. So we'll remember that there is an update and check on regular intervals\r\n // to see if we need to continue to show this message.\r\n localStorage.setItem('update-available', 'true');\r\n this.showUpdateSnack();\r\n\r\n // Every 30 seconds check if notification needs to be shown again\r\n if (this.subs && !this.subs.closed) this.subs.unsubscribe();\r\n this.subs = interval(30000).subscribe(() => {\r\n this.showUpdateSnack();\r\n });\r\n });\r\n }\r\n\r\n showUpdateSnack() {\r\n if (localStorage.getItem('update-available') === 'true') {\r\n const snack = this.snackbar.open(\r\n this.languageService.instant('Global.UpdateAvailable'),\r\n this.languageService.instant('Global.Reload')\r\n );\r\n\r\n snack.onAction().subscribe(() => {\r\n this.subs.unsubscribe();\r\n localStorage.setItem('update-available', 'false');\r\n window.location.reload();\r\n });\r\n\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ContactUsPopupComponent } from '@components/contact-us-popup/contact-us-popup.component';\r\nimport { PrivacyPopupComponent } from '@components/privacy-popup/privacy-popup.component';\r\nimport { TermsPopupComponent } from '@components/terms-popup/terms-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonDialogService {\r\n constructor(public dialog: MatDialog) {}\r\n\r\n showTerms() {\r\n this.dialog.open(TermsPopupComponent, { width: '80%' });\r\n }\r\n\r\n showPrivacy() {\r\n this.dialog.open(PrivacyPopupComponent, { width: '80%' });\r\n }\r\n\r\n showContact() {\r\n this.dialog.open(ContactUsPopupComponent);\r\n }\r\n\r\n}\r\n","/**\n * Convert the specified properties of the object (or array of objects) to Dates.\n * @param object An object, or an array of objects that have date properties.\n * @param properties The properties that should be made into dates.\n */\nexport function date(object: object, ...properties: string[]): void {\n if (!object || object instanceof Date) {\n return;\n } else if (object instanceof Array) {\n object.forEach(item => date(item, ...properties));\n } else {\n properties.forEach(property => {\n const value = object[property];\n if (typeof value === 'string') {\n object[property] = new Date(value);\n } else if (typeof value === 'object') {\n date(value, ...properties);\n }\n });\n }\n}\n\n/**\n * Check a date to see if it is in the future or not. Returns true if it is greater than now.\n * False if it is NULL or less than or equal to now.\n * @param date The date to check if it's after now\n */\nexport function isFutureDate(date: Date): boolean {\n return date && date.getTime && date.getTime() > Date.now();\n}\n\nexport function getTimezoneAbbreviation(date: Date = new Date()): string {\n return date.toLocaleTimeString('en-ca', { timeZoneName: 'short' }).split(' ')[2];\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map, tap } from 'rxjs/operators';\nimport { date } from './date.service';\nimport { EvaluatorAvailabilityTimeModel } from '@models/evaluator-availability-time-model';\nimport { EvaluatorAssignmentModel } from '@models/evaluator-assignment-model';\nimport { TestScheduleModel } from '@models/test-schedule-model';\nimport { AvailabilityAndAssignmentsModel } from '@models/availability-and-assignments-model';\nimport { EvaluatorModel } from '@models/evaluator-model';\nimport { UserCertificationTestModel } from '@models/user-certification-test-model';\nimport { EvaluatorUserTestDetailsModel } from '@models/evaluator-user-test-details-model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EvaluatorService {\n private apiUrl: string;\n private apiUrlSuffix: string;\n\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string) {\n this.apiUrl = `${this.baseUrl}api/evaluators`;\n }\n\n private createGetParams(options: any) {\n const params = {};\n Object.keys(options)\n .filter(x => options[x] !== null)\n .forEach(x => {\n params[x] = options[x].toString();\n });\n return params;\n }\n\n // Evaluator Availability\n private convertDates(event) {\n return date(\n event,\n 'availability',\n 'start',\n 'end',\n 'repeatGroup',\n 'repeatEnd',\n 'assignments',\n 'completedDate',\n 'evaluationDueDate',\n 'scheduledEndDate',\n 'scheduledStartDate'\n );\n }\n\n createEvaluatorAvailabilityTime(event: EvaluatorAvailabilityTimeModel, isReturnAll = false) {\n return this.http\n .post(`${this.apiUrl}/${event.evaluatorId}?isReturnAll=${isReturnAll}`, event)\n .pipe(tap(e => this.convertDates(e)));\n }\n\n updateEvaluatorAvailabilityTime(event: EvaluatorAvailabilityTimeModel, isReturnAll = false) {\n return this.http\n .put(`${this.apiUrl}/${event.id}?isReturnAll=${isReturnAll}`, event)\n .pipe(tap(e => this.convertDates(e)));\n }\n\n deleteEvaluatorAvailabilityTime(event: EvaluatorAvailabilityTimeModel, isReturnAll = false) {\n return this.http\n .delete(\n `${this.apiUrl}/${event.evaluatorId}/${event.id}?scope=${\n event.isUpdateFollowing ? 'following' : 'justThis'\n }&isReturnAll=${isReturnAll}`\n )\n .pipe(tap(x => this.convertDates(x)));\n }\n\n getEvaluatorAvailabilityAndAssignments(evaluatorId: string, month: Date) {\n return this.http\n .get(`${this.apiUrl}/availabilityAndAssignments/${evaluatorId || ''}`, {\n params: {\n date: month.toISOString()\n }\n })\n .pipe(tap(x => this.convertDates(x)));\n }\n\n // Assigned Tests\n getAssignedTests(evaluatorId: string) {\n return this.http\n .get(`${this.apiUrl}/${evaluatorId}/assignments`)\n .pipe(tap(x => date(x, 'scheduledStartDate', 'scheduledEndDate', 'completedDate', 'evaluationDueDate')));\n }\n\n // Registration - Schedule Test\n getTestScheduleOptionsForDay(\n userTestId: string,\n selectedDate: Date,\n inEvaluatorsRequired: number = null,\n inDurationMinutes: number = null\n ) {\n return this.http\n .get(`${this.apiUrl}/testScheduleOptionsForDay/${userTestId}`, {\n params: this.createGetParams({\n inEvaluatorsRequired,\n inDurationMinutes,\n date: selectedDate.toISOString()\n })\n })\n .pipe(tap(x => date(x, 'scheduledStartTime', 'startTimesWithEvaluators', 'startTime')));\n }\n\n getTestScheduleOptions(userTestId: string[]) {\n return this.http\n .get(`${this.apiUrl}/testScheduleOptions/${userTestId}`)\n .pipe(tap(x => date(x, 'scheduledStartTime', 'startTimes')));\n }\n\n getAvailableDays(userTestId: string, inEvaluatorsRequired: number = null, inDurationMinutes: number = null) {\n return this.http\n .get(`${this.apiUrl}/availableDays/${userTestId}`, {\n params: this.createGetParams({\n startOfToday: new Date(new Date().setHours(0, 0, 0, 0)).toISOString(),\n inEvaluatorsRequired,\n inDurationMinutes\n })\n })\n .pipe(map(x => x.map(d => (d === null ? null : new Date(new Date(d).setHours(0, 0, 0, 0))))));\n }\n\n /**\n * Temporarily blocks the date and time so that other people cannot select it. It will be finalized after payment.\n * @param userTestId\n * @param selectedDateTime\n */\n blockTime(userTestId: string, selectedDateTime: Date) {\n return this.http.post(`${this.apiUrl}/blockTime/${userTestId}`, selectedDateTime);\n }\n unBlockTime(userTestId: string) {\n return this.http.delete(`${this.apiUrl}/unBlockTime/${userTestId}`);\n }\n\n getEvaluators() {\n return this.http.get(`${this.apiUrl}`);\n }\n\n getUncompletedTests() {\n return this.http\n .get(`${this.apiUrl}/uncompletedTests`)\n .pipe(tap(x => date(x, 'assignedTo', 'expiryDate')));\n }\n\n getUserTestDetails(userTestId: string) {\n return this.http\n .get(`${this.apiUrl}/userTestDetails/${userTestId}`)\n .pipe(tap(x => date(x, 'scheduledStartTime', 'scheduledEndTime')));\n }\n\n updateUserTestDetails(userTestDetails: EvaluatorUserTestDetailsModel) {\n return this.http\n .post(\n `${this.apiUrl}/userTestDetails/${userTestDetails.userTestId}`,\n userTestDetails\n )\n .pipe(tap(x => date(x, 'scheduledStartTime', 'scheduledEndTime')));\n }\n\n getAvailableEvaluators(userTestId: string, isObserver: boolean) {\n return this.http.get(`${this.apiUrl}/availableEvaluators/${userTestId}?isObserver=${isObserver}`);\n }\n\n searchAvailableEvaluators(\n userTestId: string,\n searchCriteria: string,\n isObserver: boolean,\n startDate: Date,\n durationMinutes: number\n ) {\n return this.http.get(`${this.apiUrl}/searchAvailableEvaluators/${userTestId}`, {\n params: this.createGetParams({\n searchCriteria,\n isObserver: isObserver.toString(),\n startDate: startDate ? startDate.toISOString() : null,\n durationMinutes: durationMinutes.toString()\n })\n });\n }\n\n // Don't think these are needed anymore\n // assignEvaluator(userTestId: string, evaluatorId: string, isObserver: boolean) {\n // return this.http.post(\n // `${this.apiUrl}/assignEvaluator/${userTestId}/${evaluatorId}?isObserver=${isObserver}`,\n // {}\n // );\n // }\n // unassignEvaluator(userTestId: string, evaluatorId: string) {\n // return this.http.delete(`${this.apiUrl}/assignEvaluator/${userTestId}/${evaluatorId}`);\n // }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LanguageModel } from '@models/language-model';\nimport { Cacheable } from 'ngx-cacheable';\nimport { KnownLanguageModel } from '@models/known-language-model';\nimport { Subscriber, Observable } from 'rxjs';\nimport { LocalizationService } from './localization.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n apiUrl: string;\n CACHE_KEY = 'Languages';\n\n static cache: any = {};\n\n constructor(\n private http: HttpClient,\n @Inject('BASE_URL') private baseUrl: string,\n private localizationService: LocalizationService\n ) {\n this.apiUrl = `${this.baseUrl}api/Language`;\n }\n\n @Cacheable()\n getLanguages() {\n return this.http.get(`${this.apiUrl}`);\n }\n\n getKnownLanguages() {\n return new Observable(subscriber => {\n this.getKnownLanguagesCall(subscriber);\n this.localizationService.addLangSubscriber(subscriber, obs => this.getKnownLanguagesCall(obs));\n });\n }\n\n private getKnownLanguagesCall(subscriber: Subscriber) {\n const code = this.localizationService.getLocale();\n\n if (LanguageService.cache[code]) {\n subscriber.next(LanguageService.cache[code]);\n return;\n }\n\n this.http.get(`${this.apiUrl}/known`).subscribe(\n languages => {\n LanguageService.cache[code] = languages;\n subscriber.next(languages);\n },\n error => subscriber.error(error)\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutService {\n\n private preloaderStateSource = new Subject();\n\n preloaderState$ = this.preloaderStateSource.asObservable();\n\n updatePreloaderState(state: string) {\n console.log('preloader state: ' + state);\n this.preloaderStateSource.next(state);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { NgcCookieConsentService, NgcCookieConsentStatus } from 'ngx-cookieconsent';\r\nimport { Subject, Subscriber } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalizationService {\r\n\r\n private _subscribers = new Array();\r\n private _langSubject = new Subject();\r\n\r\n private readonly CULTURE_COOKIE_KEY = '.AspNetCore.Culture'\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private cookieService: CookieService,\r\n private cookieConsentService: NgcCookieConsentService\r\n ) {}\r\n\r\n private hasAnsweredAndConsented() {\r\n const config = this.cookieConsentService.getConfig();\r\n if (!config.enabled) return true;\r\n const hasAnswered = this.cookieConsentService.hasAnswered();\r\n const hasConsented = this.cookieConsentService.hasConsented();\r\n return hasAnswered && hasConsented;\r\n }\r\n\r\n setDefaultLocale(locale: string) {\r\n if (this.hasAnsweredAndConsented()) this.cookieService.set(this.CULTURE_COOKIE_KEY, `c=${locale}|uic=${locale}`);\r\n\r\n localStorage.setItem('default-locale', locale);\r\n }\r\n\r\n setLocale(locale: string) {\r\n if (this.hasAnsweredAndConsented())\r\n this.cookieService.set(this.CULTURE_COOKIE_KEY, `c=${locale}|uic=${locale}`, null, '/');\r\n\r\n localStorage.setItem('locale', locale);\r\n this.translateService.use(locale);\r\n }\r\n\r\n /**\r\n * Get the locale code. Example: fr-CA\r\n */\r\n getLocale() {\r\n return localStorage.getItem('locale') || localStorage.getItem('default-locale') || 'fr-CA';\r\n }\r\n\r\n /**\r\n * Gets the text for the currently selected locale. Returns an Observable.\r\n * @param key translation key\r\n */\r\n translate(key: string | string[], interpolateParams?: Object) {\r\n return this.translateService.get(key, interpolateParams);\r\n }\r\n\r\n /**\r\n * Instantly gets the text for the currently selected locale.\r\n * see: https://github.com/ngx-translate/core\r\n * @param key translation key\r\n */\r\n instant(key: string | string[], interpolateParams?: Object) {\r\n return this.translateService.instant(key, interpolateParams);\r\n }\r\n\r\n addLangSubscriber(subscriber: Subscriber, action: CallableFunction) {\r\n this._subscribers.push({\r\n subscriber: subscriber,\r\n action: action\r\n });\r\n }\r\n\r\n initLangChange() {\r\n this.translateService.onLangChange.subscribe(event => {\r\n if (this._subscribers.length) {\r\n // Filter out any subs that have been unsubscribed.\r\n this._subscribers = this._subscribers.filter(sub => !(sub.subscriber as Subscriber).closed);\r\n console.log('Lang Change Subs: ', this._subscribers);\r\n for (const sub of this._subscribers) {\r\n sub.action(sub.subscriber);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable, of, Subscriber } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport { date } from './date.service';\nimport { AuthService } from './auth.service';\nimport { NotificationLogModel } from '@models/notification-log-model';\nimport { SearchOptions } from '@models/search-options';\nimport { TriggerTypeModel } from '@models/trigger-type-model';\nimport { LocalizationService } from './localization.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationLogService {\n private apiUrl: string;\n\n constructor(\n private http: HttpClient,\n private authService: AuthService,\n @Inject('BASE_URL') private baseUrl: string,\n private localizationService: LocalizationService\n ) {\n this.apiUrl = `${this.baseUrl}api/user/notifications`;\n }\n\n getNotificationLog(id: string) {\n return new Observable(subscriber => {\n this.getNotificationLogCall(id, subscriber);\n this.localizationService.addLangSubscriber(subscriber, obs =>\n this.getNotificationLogCall(id, obs)\n );\n });\n }\n private getNotificationLogCall(\n id: string,\n subscriber: Subscriber\n ) {\n return this.http\n .get(`${this.apiUrl}/log/${id}`)\n .subscribe(\n nots => subscriber.next(nots),\n error => subscriber.error(error)\n );\n }\n\n getNotificationLogs() {\n return new Observable(subscriber => {\n this.getNotificationLogsCall(subscriber);\n this.localizationService.addLangSubscriber(subscriber, obs =>\n this.getNotificationLogsCall(obs)\n );\n });\n }\n private getNotificationLogsCall(\n subscriber: Subscriber\n ) {\n this.http\n .get(`${this.apiUrl}/logs`)\n .pipe(\n tap(n => date(n, 'dateRead', 'createdDate')),\n tap(n => n.sort(this.sortDescending))\n )\n .subscribe(\n NotificationLogs => subscriber.next(NotificationLogs),\n error => subscriber.error(error)\n );\n }\n\n private sortDescending(a: NotificationLogModel, b: NotificationLogModel) {\n return a.createdDate.getTime() > b.createdDate.getTime() ? -1 : 1;\n }\n\n markRead(nl: NotificationLogModel) {\n return this.http.put(`${this.apiUrl}/markRead`, nl);\n }\n getUnreadCount() {\n return this.http.get(`${this.apiUrl}/unreadCount`);\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { MatSnackBar, MatDialog } from '@angular/material';\r\nimport { ErrorType } from '@models/error-type';\r\nimport { ConfirmDialogComponent } from '@shared/notification/confirm-dialog/confirm-dialog.component';\r\nimport { DialogOptions } from '@models/dialog-options';\r\nimport { SuccessComponent } from '@shared/notification/success-snackbar/success.component';\r\nimport { ErrorComponent } from '@shared/notification/error-snackbar/error.component';\r\nimport { ErrorDialogComponent } from '@shared/notification/error-dialog/error-dialog.component';\r\nimport { PartialObserver } from 'rxjs';\r\nimport { LocalizationService } from './localization.service';\r\nimport { RequestResult } from '@models/request-result';\r\nimport { OkDialogComponent } from '@shared/notification/ok-dialog/ok-dialog.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n private dialogOptionDefaults: DialogOptions = {\r\n data: null\r\n };\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private localizationService: LocalizationService\r\n ) {}\r\n\r\n /**\r\n * Displays a success message along the bottom of the screen to let the user know that some action succeeded.\r\n * @param messageKey The key from the language file to use for the message.\r\n * @param duration The number of milliseconds the notification will be displayed for. Default: 4000.\r\n */\r\n successSnackBarKey(messageKey: string, duration = 4000) {\r\n this.localizationService.translate(messageKey).subscribe({\r\n next: message => this.successSnackBar(message, duration)\r\n });\r\n }\r\n\r\n /**\r\n * Show a small popup at the bottom of the screen with a short message for an amount of time.\r\n * @param message The text of the message that will be displayed.\r\n * @param duration The amount of time in ms the message will be shown. Default: 4000.\r\n */\r\n successSnackBar(message: string, duration = 4000) {\r\n this.snackBar.openFromComponent(SuccessComponent, {\r\n duration,\r\n data: {\r\n message\r\n }\r\n });\r\n }\r\n errorSnackBar(message: string) {\r\n this.snackBar.openFromComponent(ErrorComponent, {\r\n duration: 4000,\r\n data: {\r\n message: [message]\r\n }\r\n });\r\n }\r\n confirmSnackBar(message: string) {\r\n this.snackBar.openFromComponent(SuccessComponent, {\r\n verticalPosition: 'top',\r\n horizontalPosition: 'left',\r\n panelClass: 'confirmSnackBar',\r\n data: {\r\n message: message,\r\n confirm: true\r\n }\r\n });\r\n }\r\n\r\n openSnackBar(message: string[], component: any) {\r\n this.snackBar.openFromComponent(component, {\r\n duration: 4000,\r\n data: {\r\n message: message\r\n }\r\n });\r\n }\r\n\r\n errorDialogKey(messageKey, errorType: ErrorType = ErrorType.SYSTEM) {\r\n this.localizationService.translate(messageKey).subscribe(message => {\r\n this.errorDialog([message], errorType)\r\n })\r\n }\r\n\r\n errorDialog(message: string[], errorType: ErrorType = ErrorType.SYSTEM) {\r\n if (errorType === ErrorType.VALIDATION) {\r\n this.openSnackBar(message, ErrorComponent);\r\n }\r\n\r\n if (errorType === ErrorType.SYSTEM) {\r\n const options = Object.assign(this.dialogOptionDefaults, {\r\n data: { message: message }\r\n });\r\n this.dialog.open(ErrorDialogComponent, options);\r\n }\r\n }\r\n\r\n /**\r\n * Shows a Confirm Dialog. That is, a popup message with a \"Confirm\" and \"Cancel\" buttons that can be used to ask\r\n * the user if they are sure they'd like to continue with an action. Example use:\r\n * ```\r\n * this.notificationService.confirmDialog({\r\n * width: '400px',\r\n * data: {\r\n * messageKey: 'Notifications.ConfirmRemoveMessage'\r\n * params: {\r\n * testName: selectedTest.title,\r\n * userName: `${firstName} ${lastName}`\r\n * }\r\n * }\r\n * })\r\n * .afterClosed()\r\n * .subscribe(isConfirmed => {\r\n * if (isConfirmed) {\r\n * this.store.deleteCertification(certificationID);\r\n * }\r\n * });\r\n * }\r\n *\r\n * ```\r\n * The `key` parameters will be used to look up values in the currently selected language.\r\n * The dialog will look for the following parameters in `data`:\r\n * - titleKey: The key for the dialog title.\r\n * - titleText: The string to display as the title.\r\n * - messageKey: The key for the body of the dialog.\r\n * - message: the string that will be displayed in the body of the dialog.\r\n * - confirmText: The string that will be displayed on the `Confirm` button, \"Confirm\" by default.\r\n * - cancelText: The string that will be displayed on the `Cancel` button, \"Cancel\" by default.\r\n * - params: These are optional parameters that will be used with the keys if the localized strings have parameters in them.\r\n *\r\n * At the very least `data.message` or `data.messageKey` must be defined.\r\n * @param options The options for the dialog.\r\n */\r\n confirmDialog(options: DialogOptions) {\r\n options = Object.assign(this.dialogOptionDefaults, options);\r\n return this.dialog.open(ConfirmDialogComponent, options);\r\n }\r\n\r\n okDialog(options: DialogOptions) {\r\n options = Object.assign(this.dialogOptionDefaults, options);\r\n return this.dialog.open(OkDialogComponent, options);\r\n }\r\n\r\n showErrors(error: any) {\r\n const err = error.error;\r\n const messages: string[] = [];\r\n\r\n for (let i = 0; i < err.errors.length; i++) {\r\n messages.push(err.errors[i].message);\r\n }\r\n\r\n this.errorDialog(messages, err.type);\r\n }\r\n\r\n toastSuccessFailObserver(successKey: string): PartialObserver {\r\n return {\r\n next: _ =>\r\n this.localizationService.translate(`Notifications.${successKey}`).subscribe({\r\n next: message => this.successSnackBar(message)\r\n }),\r\n error: error => this.showErrors(error)\r\n };\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ProfessionModel } from '@models/profession-model';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { LocalizationService } from './localization.service';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfessionService {\r\n apiUrl: string;\r\n\r\n static cache: any = {};\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n private localizationService: LocalizationService\r\n ) {\r\n this.apiUrl = `${this.baseUrl}api/professions`;\r\n }\r\n\r\n getProfessions() {\r\n return new Observable(subscriber => {\r\n this.getProfessionsCall(subscriber);\r\n this.localizationService.addLangSubscriber(subscriber, obs => this.getProfessionsCall(obs));\r\n });\r\n }\r\n\r\n private getProfessionsCall(subscriber: Subscriber) {\r\n const code = this.localizationService.getLocale();\r\n\r\n if (ProfessionService.cache[code]) {\r\n subscriber.next(ProfessionService.cache[code]);\r\n return;\r\n }\r\n\r\n this.http\r\n .get(`${this.apiUrl}`)\r\n .pipe(\r\n map(professions => {\r\n // Sort by a - z, but make sure 'notCandidate' is always the last item in the list.\r\n const notCandidate = professions.find(p => p.type === 'NotCandidate');\r\n professions = professions.filter(p => p != notCandidate);\r\n professions = professions.sort((a, b) => a.label.localeCompare(b.label, 'fr')); // localCompare() is used so that 'É' is sorted properly. English doesn't have non-ASCII chars, so it can safely be sorted with the FR locale.\r\n return [...professions, notCandidate];\r\n })\r\n )\r\n .subscribe(\r\n professions => {\r\n ProfessionService.cache[code] = professions;\r\n subscriber.next(professions);\r\n },\r\n error => subscriber.error(error)\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ProvinceModel } from '@models/province-model';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProvinceService {\r\n apiUrl: string;\r\n\r\n static cache: any = {};\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n private localizationService: LocalizationService\r\n ) {\r\n this.apiUrl = `${this.baseUrl}api/provinces`;\r\n }\r\n\r\n getProvinces() {\r\n return new Observable(subscriber => {\r\n this.getProvincesCall(subscriber);\r\n this.localizationService.addLangSubscriber(subscriber, obs => this.getProvincesCall(obs));\r\n });\r\n }\r\n\r\n private getProvincesCall(subscriber: Subscriber) {\r\n const code = this.localizationService.getLocale();\r\n\r\n if (ProvinceService.cache[code]) {\r\n subscriber.next(ProvinceService.cache[code]);\r\n return;\r\n }\r\n\r\n this.http.get(`${this.apiUrl}`).subscribe(\r\n provinces => {\r\n ProvinceService.cache[code] = provinces;\r\n subscriber.next(provinces);\r\n },\r\n error => subscriber.error(error)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\n\nconst SCORES = {\n 'en-CA': ['X', 'LE1-', 'LE1=', 'LE1+', 'LE2-', 'LE2=', 'LE2+', 'LE3-', 'LE3=', 'LE3+', 'LE4-', 'LE4='],\n 'fr-CA': ['X', 'FJ1-', 'FJ1=', 'FJ1+', 'FJ2-', 'FJ2=', 'FJ2+', 'FJ3-', 'FJ3=', 'FJ3+', 'FJ4-', 'FJ4=']\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Scores {\n thumb(language: string) {\n return (score: number) => {\n return SCORES[language || 'en-CA'][score];\n };\n }\n\n label(score: number, language: string) {\n if (!language) {\n return '';\n }\n return SCORES[language][score];\n }\n}\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { LocalizationService } from './localization.service';\r\nimport { SiteConfigModel } from '@models/site-config-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SiteConfigService {\r\n apiUrl: string;\r\n\r\n static cache: any = {};\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n private localizationService: LocalizationService\r\n ) {\r\n this.apiUrl = `${this.baseUrl}api/siteConfig`;\r\n }\r\n\r\n getSiteConfig() {\r\n return new Observable(subscriber => {\r\n this.getSiteConfigCall(subscriber);\r\n this.localizationService.addLangSubscriber(subscriber, obs => this.getSiteConfigCall(obs));\r\n });\r\n }\r\n\r\n private getSiteConfigCall(subscriber: Subscriber) {\r\n const code = this.localizationService.getLocale();\r\n\r\n if (SiteConfigService.cache[code]) {\r\n subscriber.next(SiteConfigService.cache[code]);\r\n return;\r\n }\r\n\r\n this.http.get(`${this.apiUrl}`).subscribe(\r\n siteConfig => {\r\n SiteConfigService.cache[code] = siteConfig;\r\n subscriber.next(siteConfig);\r\n },\r\n error => subscriber.error(error)\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { SkillAreaQuestionModel } from '@models/skill-area-question-model';\nimport { Subscriber, Observable } from 'rxjs';\nimport { LocalizationService } from './localization.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SkillAreaService {\n private apiUrl: string;\n\n constructor(\n private http: HttpClient,\n @Inject('BASE_URL') private baseUrl: string,\n private localizationService: LocalizationService\n ) {\n this.apiUrl = `${this.baseUrl}api/skillareas`;\n }\n\n getQuestions() {\n return new Observable(subscriber => {\n this.getQuestionsCall(subscriber);\n this.localizationService.addLangSubscriber(subscriber, obs =>\n this.getQuestionsCall(obs)\n );\n });\n }\n\n getUserSkillsArea(userCertificationId) {\n return new Observable(subscriber => {\n this.getUserSkillsAreaCall(userCertificationId, subscriber);\n this.localizationService.addLangSubscriber(subscriber, obs =>\n this.getUserSkillsAreaCall(userCertificationId, obs)\n );\n });\n }\n\n private getQuestionsCall(subscriber: Subscriber) {\n this.http\n .get(`${this.apiUrl}/questions`)\n .subscribe(\n questions => subscriber.next(questions),\n error => subscriber.error(error)\n );\n }\n\n private getUserSkillsAreaCall(\n userCertificationId: string,\n subscriber: Subscriber\n ) {\n this.http\n .get(\n `${this.apiUrl}/certifications/${userCertificationId}/questions`\n )\n .subscribe(\n questions => subscriber.next(questions),\n error => subscriber.error(error)\n );\n }\n}\n","import { Injectable, Inject } from '@angular/core';\r\nimport { TitleModel } from './../_models/title-model';\r\nimport { Subscriber, Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TitleService {\r\n apiUrl: string;\r\n\r\n static cacheTitles: any = {};\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n private localizationService: LocalizationService\r\n ) {\r\n this.apiUrl = `${this.baseUrl}api/titles`;\r\n }\r\n\r\n getTitles() {\r\n return new Observable(subscriber => {\r\n this.getTitlesCall(subscriber);\r\n this.localizationService.addLangSubscriber(subscriber, obs => this.getTitlesCall(obs));\r\n });\r\n }\r\n\r\n private getTitlesCall(subscriber: Subscriber) {\r\n const code = this.localizationService.getLocale();\r\n\r\n if (TitleService.cacheTitles[code]) {\r\n subscriber.next(TitleService.cacheTitles[code]);\r\n return;\r\n }\r\n\r\n this.http.get(`${this.apiUrl}`).subscribe(\r\n titles => {\r\n TitleService.cacheTitles[code] = titles.sort(this.sortOtherLast);\r\n subscriber.next(TitleService.cacheTitles[code]);\r\n },\r\n error => subscriber.error(error)\r\n );\r\n }\r\n\r\n // Make sure 'Other' is always at the end of the list no matter the language.\r\n private sortOtherLast(a, b) {\r\n if (a.type === 'Other') return 1;\r\n else if (b.type === 'Other') return -1;\r\n else return a.label < b.label ? -1 : 1;\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable, of, Subscriber } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AuthService } from './auth.service';\nimport { UserNotificationModel } from '@models/user-notification-model';\nimport { LocalizationService } from './localization.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserNotificationService {\n private apiUrl: string;\n\n constructor(\n private http: HttpClient,\n private authService: AuthService,\n @Inject('BASE_URL') private baseUrl: string,\n private localizationService: LocalizationService\n ) {\n this.apiUrl = `${this.baseUrl}api/user/notifications`;\n }\n\n getUserNotification(triggerId: string) {\n return new Observable(subscriber => {\n this.getUserNotificationCall(triggerId, subscriber);\n this.localizationService.addLangSubscriber(subscriber, obs =>\n this.getUserNotificationCall(triggerId, obs)\n );\n });\n }\n private getUserNotificationCall(\n triggerId: string,\n subscriber: Subscriber\n ) {\n return this.http\n .get(`${this.apiUrl}/${triggerId}`)\n .subscribe(\n nots => subscriber.next(nots),\n error => subscriber.error(error)\n );\n }\n\n getUserNotifications() {\n return new Observable(subscriber => {\n this.getUserNotificationsCall(subscriber);\n this.localizationService.addLangSubscriber(subscriber, obs =>\n this.getUserNotificationsCall(obs)\n );\n });\n }\n private getUserNotificationsCall(\n subscriber: Subscriber\n ) {\n this.http.get(`${this.apiUrl}`).subscribe(\n mods => subscriber.next(mods),\n error => subscriber.error(error)\n );\n }\n\n putUserNotification(userNotificationModel: UserNotificationModel) {\n // always an update, user can't create new\n return this.http\n .put(`${this.apiUrl}/${userNotificationModel.id}`, userNotificationModel)\n .pipe(\n map(_ => {\n return { ...userNotificationModel };\n })\n );\n }\n\n markRead(logId: string) {\n return this.http.post(`${this.apiUrl}/markRead/${logId}`, {});\n }\n\n sendPreview(triggerTypeId: string) {\n return this.http.post(\n `${this.apiUrl}/sendPreview/${triggerTypeId}`,\n {},\n {\n observe: 'response'\n }\n );\n }\n}\n\n// markUserNotificationRead(comm: UserNotificationModel) {\n// return this.http.put(`${this.apiUrl}/markRead`, comm);\n// }\n\n// searchUserNotifications(\n// options: SearchOptions\n// ): Observable {\n// const params = {};\n// Object.keys(options)\n// .filter(x => options[x] !== null)\n// .forEach(x => {\n// params[x] = options[x].toString();\n// });\n// return this.http.get(\n// `${this.apiUrl}/search`,\n// { params }\n// );\n// }\n\n// setUserNotification(usernotificationModel: UserNotificationModel) {\n// if (usernotificationModel.id) {\n// // Update existing\n// return this.http\n// .put(\n// `${this.apiUrl}/${usernotificationModel.id}`,\n// usernotificationModel\n// )\n// .pipe(\n// map((_) => {\n// return { ...usernotificationModel };\n// })\n// );\n// } else {\n// // Create new\n// return this.http\n// .post(`${this.apiUrl}`, usernotificationModel)\n// .pipe(\n// tap((usernotification) =>\n// date(usernotification, 'publishDate', 'expiryDate')\n// )\n// );\n// }\n// }\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { UserProfileModel } from '@models/user-profile-model';\nimport 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserProfileService {\n private apiUrl: string;\n\n constructor(\n private http: HttpClient,\n @Inject('BASE_URL') private baseUrl: string\n ) {\n this.apiUrl = `${this.baseUrl}api/userprofile`;\n }\n\n getUser(id: string) {\n return this.http.get(`${this.apiUrl}/${id}`);\n }\n\n putUser(id: string, userProfileModel: UserProfileModel) {\n return this.http.put(`${this.apiUrl}/${id}`, userProfileModel);\n }\n\n isProvincePostalCodeMismatch(id: string) {\n return this.http.get(`${this.apiUrl}/postalCodeMismatch/${id}`);\n }\n}\n","module.exports = \"\\n
\\n \\n
\\n\\n\"","import { Component, OnDestroy, OnInit, isDevMode } from '@angular/core';\r\nimport { environment } from '../environments/environment';\r\nimport { LocalizationService } from '@services/localization.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from '@services/auth.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport localEn from '@angular/common/locales/en-CA';\r\nimport localFr from '@angular/common/locales/fr-CA';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport { DateAdapter } from '@angular/material';\r\nimport { CheckForUpdateService } from '@services/check-for-update.service';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n NgcCookieConsentService,\r\n NgcInitializeEvent,\r\n NgcNoCookieLawEvent,\r\n NgcStatusChangeEvent\r\n} from 'ngx-cookieconsent';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { COOKIE_CONSENT_COOKIE_NAME, COOKIE_CONSENT_LANGUAGE_RESOURCE_KEY } from './cookie-config';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n title = 'app';\r\n env = environment;\r\n\r\n private _subs: Subscription[] = [];\r\n private set addSub(sub: Subscription) {\r\n this._subs.push(sub);\r\n }\r\n\r\n constructor(\r\n translate: TranslateService,\r\n private localization: LocalizationService,\r\n private authService: AuthService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private adapter: DateAdapter,\r\n private translateService: TranslateService,\r\n private checkForUpdateService: CheckForUpdateService, // Doesn't need to be called, its constructor will start it up.\r\n private ccService: NgcCookieConsentService,\r\n private cookieService: CookieService\r\n ) {\r\n // Cookie Consent\r\n this.initCookieConsentLocalization();\r\n this.initCookieConsentEvents();\r\n\r\n translate.addLangs(['en-CA', 'fr-CA']);\r\n translate.setDefaultLang('fr-CA');\r\n localization.setDefaultLocale('fr-CA');\r\n // use locale from storage if available\r\n\r\n const storedLocale = localStorage.getItem('locale');\r\n localStorage.setItem('update-available', 'false');\r\n if (storedLocale) {\r\n localization.setLocale(storedLocale);\r\n } else {\r\n localization.setLocale('fr-CA');\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.localization.initLangChange();\r\n this.translateService.onLangChange.subscribe(event => {\r\n this.adapter.setLocale(event.lang);\r\n this.initCookieConsentLocalization();\r\n });\r\n\r\n if (!this.authService.loggedIn()) {\r\n this.authService.logout().subscribe(_ => {\r\n if (this.route && this.route.routeConfig && this.route.routeConfig.path !== '/reset-password') {\r\n this.router.navigate(['/login']);\r\n }\r\n });\r\n }\r\n registerLocaleData(localEn, 'en-CA');\r\n registerLocaleData(localFr, 'fr-CA');\r\n }\r\n\r\n initCookieConsentEvents() {\r\n // subscribe to cookieConsent observables to react to main events\r\n this.addSub = this.ccService.popupOpen$.subscribe(() => {\r\n // you can use this.ccService.getConfig() to do stuff...\r\n console.log('Cookie Consent Popup Open ');\r\n });\r\n\r\n this.addSub = this.ccService.popupClose$.subscribe(() => {\r\n // you can use this.ccService.getConfig() to do stuff...\r\n console.log('Cookie Consent Closed ');\r\n // this.ccService.destroy()\r\n });\r\n\r\n this.addSub = this.ccService.initialize$.subscribe((event: NgcInitializeEvent) => {\r\n // the cookieConsent has been successfully initialized.\r\n // It's now safe to use methods on NgcCookieConsentService that require it, like `hasAnswered()` for eg...\r\n console.log(`Cookie Consent initialized: ${JSON.stringify(event)}`);\r\n });\r\n\r\n this.addSub = this.ccService.statusChange$.subscribe((event: NgcStatusChangeEvent) => {\r\n // you can use this.ccService.getConfig() to do stuff...\r\n console.log('Cookie Consent Status Changed ', event, this.cookieService.getAll());\r\n if (event.status === 'deny') {\r\n // Delete all cookies except the cookie consent one.\r\n const all = this.cookieService.getAll();\r\n for (const cookieKey of Object.keys(all)) {\r\n if (cookieKey !== COOKIE_CONSENT_COOKIE_NAME) this.cookieService.delete(cookieKey);\r\n }\r\n }\r\n });\r\n\r\n this.addSub = this.ccService.revokeChoice$.subscribe(() => {\r\n // you can use this.ccService.getConfig() to do stuff...\r\n console.log('Cookie Consent Revoke Choice ');\r\n // this.cookieService.deleteAll();\r\n });\r\n\r\n this.addSub = this.ccService.noCookieLaw$.subscribe((event: NgcNoCookieLawEvent) => {\r\n // you can use this.ccService.getConfig() to do stuff...\r\n console.log('Cookie Consent No Cookie Law ');\r\n });\r\n }\r\n\r\n initCookieConsentLocalization() {\r\n this.translateService.get(COOKIE_CONSENT_LANGUAGE_RESOURCE_KEY).subscribe(localizedText => {\r\n const config = this.ccService.getConfig();\r\n config.content = config.content || {};\r\n\r\n // Override default messages with the translated ones\r\n config.content.allow = localizedText['Allow'];\r\n config.content.deny = localizedText['Deny'];\r\n config.content.dismiss = localizedText['Dismiss'];\r\n config.content.header = localizedText['Header'];\r\n config.content.href = localizedText['Href'];\r\n config.content.link = localizedText['Link'];\r\n config.content.message = localizedText['Message'];\r\n config.content.policy = localizedText['Policy'];\r\n config.content.target = localizedText['Target'];\r\n config.content.close = localizedText['Close'];\r\n\r\n console.log('isDevMode', isDevMode());\r\n // if (!isDevMode())\r\n config.enabled = true;\r\n\r\n this.ccService.destroy(); // remove previous cookie bar (with default messages)\r\n this.ccService.init(config); // update config with translated messages\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n}\r\n","import {\r\n BrowserModule,\r\n HAMMER_GESTURE_CONFIG\r\n} from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n HttpClientModule,\r\n HttpClient,\r\n HTTP_INTERCEPTORS\r\n} from '@angular/common/http';\r\nimport { Router, RouterModule } from '@angular/router';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\nimport { AppRoutes } from './app.routing';\r\nimport { AuthModule } from './auth/auth.module';\r\nimport { LayoutModule } from './layout/layout.module';\r\nimport { AppComponent } from './app.component';\r\nimport { NotificationService } from '@services/notification.service';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport {\r\n TranslateModule,\r\n TranslateLoader,\r\n TranslateService\r\n} from '@ngx-translate/core';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { environment } from '../environments/environment';\r\nimport { AuthInterceptor } from './auth/auth.interceptor';\r\nimport { LanguageService } from '@services/language.service';\r\nimport { CdkColumnDef } from '@angular/cdk/table';\r\nimport { AppComponentsModule } from '@shared/app-components.module';\r\nimport { SharedModule } from '@shared/shared.module';\r\nimport {\r\n MAT_DIALOG_DEFAULT_OPTIONS,\r\n MatDialogConfig,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MAT_DATE_FORMATS,\r\n MatPaginatorIntl\r\n} from '@angular/material';\r\nimport { GestureConfig } from '@angular/material';\r\nimport { NocacheInterceptor } from './nocache.interceptor';\r\nimport { MatPasswordStrengthModule } from '@angular-material-extensions/password-strength';\r\nimport {\r\n MatMomentDateModule,\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS\r\n} from '@angular/material-moment-adapter';\r\nimport { PaginatorIntlService } from '@services/Paginator-intl.service';\r\nimport { NgcCookieConsentModule } from 'ngx-cookieconsent';\r\nimport { cookieConfig } from './cookie-config';\r\n\r\n// AoT requires an exported function for factories\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [\r\n AppComponentsModule,\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n AuthModule,\r\n LayoutModule,\r\n SharedModule,\r\n MatDatepickerModule,\r\n MatMomentDateModule,\r\n // MatNativeDateModule,\r\n ServiceWorkerModule.register('ngsw-worker.js', {\r\n enabled: environment.production\r\n }),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n MatPasswordStrengthModule.forRoot(),\r\n NgcCookieConsentModule.forRoot(cookieConfig),\r\n // App Routing absolutely needs to be last in the list.\r\n AppRoutes\r\n // No more modules should be below this.\r\n ],\r\n providers: [\r\n MatDatepickerModule,\r\n MatMomentDateModule,\r\n // MatNativeDateModule,\r\n CdkColumnDef,\r\n NotificationService,\r\n CookieService,\r\n LanguageService,\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useValue: {\r\n parse: {\r\n dateInput: ['l', 'LL']\r\n },\r\n display: {\r\n dateInput: 'L',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n }\r\n }\r\n },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },\r\n { provide: HAMMER_GESTURE_CONFIG, useClass: GestureConfig },\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: NocacheInterceptor, multi: true },\r\n {\r\n provide: MAT_DIALOG_DEFAULT_OPTIONS,\r\n useValue: { ...new MatDialogConfig(), width: 500 }\r\n },\r\n {\r\n // Localize the paginators on the search pages.\r\n provide: MatPaginatorIntl,\r\n useFactory: translate => {\r\n const service = new PaginatorIntlService();\r\n service.injectTranslateService(translate);\r\n return service;\r\n },\r\n deps: [TranslateService]\r\n }\r\n ],\r\n bootstrap: [AppComponent],\r\n exports: [RouterModule]\r\n})\r\nexport class AppModule {\r\n constructor(private readonly router: Router) {\r\n // for debugging routing issues\r\n // router.events.subscribe(console.log);\r\n }\r\n}\r\n","import { RouterModule, Routes } from '@angular/router';\n\nimport { MainLayoutComponent } from './layout/main-layout/main-layout.component';\nimport { AuthGuard } from './auth/auth.guard';\nimport { Roles } from '@models/roles';\n\nconst routes: Routes = [\n {\n path: 'dashboard',\n component: MainLayoutComponent,\n children: [\n {\n path: '',\n loadChildren: './dashboard/dashboard.module#DashboardModule'\n }\n ],\n canLoad: [AuthGuard],\n canActivate: [AuthGuard],\n data: {\n roles: [Roles.evaluator, Roles.thirdParty, Roles.candidate, Roles.admin]\n }\n },\n {\n path: 'exam/:examId',\n component: MainLayoutComponent,\n children: [\n {\n path: '',\n loadChildren: './exam/exam.module#ExamModule'\n }\n ],\n canLoad: [AuthGuard],\n data: {\n roles: [Roles.admin, Roles.candidate]\n }\n },\n {\n path: 'video',\n component: MainLayoutComponent,\n children: [\n {\n path: '',\n loadChildren: './video-conference/video-conference.module#VideoConferenceModule'\n }\n ],\n canLoad: [AuthGuard],\n data: {\n roles: [Roles.evaluator, Roles.admin, Roles.candidate]\n }\n },\n {\n path: 'profile',\n component: MainLayoutComponent,\n children: [\n {\n path: '',\n loadChildren: './user/user.module#UserModule'\n }\n ],\n canLoad: [AuthGuard],\n data: {\n roles: [Roles.evaluator, Roles.admin, Roles.candidate, Roles.thirdParty]\n }\n },\n {\n path: 'admin',\n loadChildren: './admin/admin.module#AdminModule',\n canLoad: [AuthGuard],\n data: {\n roles: [Roles.evaluator, Roles.admin, Roles.thirdParty]\n }\n },\n {\n path: 'third-party',\n loadChildren: './third-party/third-party.module#ThirdPartyModule',\n canLoad: [AuthGuard],\n data: {\n roles: [Roles.admin, Roles.thirdParty]\n }\n },\n {\n path: 'evaluator',\n loadChildren: './evaluator/evaluator.module#EvaluatorModule',\n canLoad: [AuthGuard],\n data: {\n roles: [Roles.admin, Roles.evaluator]\n }\n },\n {\n path: 'register/certification',\n loadChildren: './register-certification/register-certification.module#RegisterCertificationModule',\n canLoad: [AuthGuard],\n data: {\n roles: [Roles.admin, Roles.candidate]\n }\n },\n\n { path: '**', redirectTo: '/dashboard', pathMatch: 'full' }\n];\n\nexport const AppRoutes = RouterModule.forRoot(routes, {\n enableTracing: false // <-- debugging purposes only\n});\n","module.exports = \"
\\n \\n
\\n\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-auth-card-footer',\n templateUrl: './auth-card-footer.component.html'\n})\nexport class AuthCardFooterComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","module.exports = \"

\\n\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-auth-card-header',\n templateUrl: './auth-card-header.component.html'\n})\nexport class AuthCardHeaderComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","module.exports = \"\\n
\\n \\n
\\n
\\n \\n \\n
\\n\\n\"","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-auth-card',\n templateUrl: './auth-card.component.html'\n})\nexport class AuthCardComponent implements OnInit {\n @Input() wide = false;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","module.exports = \"\\n
\\n
\\n \\n \\n \\n
\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2F1dGgvYXV0aC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { LocalizationService } from '@services/localization.service';\nimport { UserNotificationService } from '@services/user-notification.service';\nimport { filter, map, switchMap } from 'rxjs/operators';\n\n@Component({\n selector: 'app-auth',\n templateUrl: './auth.component.html',\n styleUrls: ['./auth.component.scss']\n})\nexport class AuthComponent implements OnInit {\n isWideCard = false;\n\n constructor(\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private userNotificationService: UserNotificationService\n ) {\n // if we got a logId then we have a notificationLog to mark as read\n const logId = activatedRoute.snapshot.queryParams['logId'];\n if (logId) {\n userNotificationService.markRead(logId).subscribe();\n }\n this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => this.activatedRoute),\n switchMap(route => route.firstChild.data)\n )\n .subscribe(data => {\n this.isWideCard = !!data.wideCard;\n });\n }\n\n ngOnInit(): void {}\n}\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, CanLoad, Route, RouterStateSnapshot } from '@angular/router';\r\n\r\nimport { AuthService } from '@services/auth.service';\r\nimport { NotificationService } from '@services/notification.service';\r\nimport { LocalizationService } from '@services/localization.service';\r\nimport { Roles } from '@models/roles';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate, CanLoad {\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router,\r\n private localizationService: LocalizationService,\r\n public notificationService: NotificationService\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n // If user is not logged in reroute them to the login screen unless they're trying to reset their password.\r\n if (!this.authService.loggedIn()) {\r\n if (route.routeConfig.path !== '/reset-password') {\r\n this.router.navigate(['/login']);\r\n return false;\r\n }\r\n }\r\n\r\n //\r\n if (route.firstChild && route.firstChild.data) {\r\n const roles = route.firstChild.data['roles'] as Array;\r\n if (roles && !this.authService.roleMatch(roles)) {\r\n this.showAccessDenied();\r\n return false;\r\n }\r\n }\r\n\r\n // If the user has not finished entering their personal details, then they must do that first.\r\n const user = this.authService.getUser();\r\n if (user.hasMissingDetails) {\r\n console.warn('User Registration is incomplete.')\r\n this.router.navigate(['/register/details']);\r\n return false;\r\n }\r\n\r\n // If the user is a candidate, but has not yet registered for certifications, go to the register pages.\r\n if (!user.hasRegisteredForACertification && this.authService.roleMatch([Roles.candidate])) {\r\n console.warn('Candidate has not registered for a certification. Re-routing to Registration')\r\n this.router.navigate(['/register/certification']);\r\n return false;\r\n }\r\n\r\n // If a non Candidate user is trying to goto the raw dashboard, then reroute them to the proper page.\r\n if (state.url === '/dashboard') {\r\n if (this.authService.roleMatch([Roles.admin])) {\r\n this.router.navigate(['/admin']);\r\n } else if (this.authService.roleMatch([Roles.thirdParty])) {\r\n this.router.navigate(['/third-party']);\r\n } else if (this.authService.roleMatch([Roles.evaluator])) {\r\n this.router.navigate(['/evaluator']);\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n canLoad(route: Route): boolean {\r\n if (!this.authService.loggedIn()) {\r\n return false;\r\n }\r\n\r\n if (route && route.data) {\r\n const roles = route.data['roles'] as Array;\r\n if (roles && !this.authService.roleMatch(roles)) {\r\n this.router.navigate(['/']);\r\n this.showAccessDenied();\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private showAccessDenied() {\r\n this.localizationService\r\n .translate('Notifications.AccessDenied')\r\n .subscribe(errorMessage => this.notificationService.errorDialog([errorMessage]));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '@services/auth.service';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n constructor(private authenticationService: AuthService) {}\n\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n // add authorization header with jwt token if available\n const token = this.authenticationService.getToken();\n if (token) {\n request = request.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n });\n }\n this.authenticationService.activity = Date.now();\n return next.handle(request);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { LoginComponent } from './login/login.component';\nimport { AuthRoutes } from './auth.routing';\nimport { RegisterComponent } from './register/register.component';\nimport { ForgotPasswordPopupComponent } from './login/forgot-password-popup/forgot-password-popup.component';\n\nimport { SharedModule } from '@shared/shared.module';\nimport { AppComponentsModule } from '@shared/app-components.module';\nimport { AuthCardComponent } from './auth-card/auth-card.component';\nimport { AuthCardFooterComponent } from './auth-card/auth-card-footer/auth-card-footer.component';\nimport { AuthCardHeaderComponent } from './auth-card/auth-card-header/auth-card-header.component';\nimport { AuthComponent } from './auth.component';\nimport { DetailsComponent } from './register/details/details.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { PersonalDetailsModule } from '@app/user/personal-details/personal-details.module';\nimport { MatPasswordStrengthModule } from '@angular-material-extensions/password-strength';\nimport { CreateNewPasswordComponent } from './create-new-password/create-new-password.component';\nimport { UnsupportedBrowserWarningComponent } from './login/unsupported-browser-warning/unsupported-browser-warning.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n BrowserAnimationsModule,\n AuthRoutes,\n AppComponentsModule,\n SharedModule,\n PersonalDetailsModule,\n MatPasswordStrengthModule\n ],\n entryComponents: [ForgotPasswordPopupComponent],\n declarations: [\n AuthComponent,\n LoginComponent,\n RegisterComponent,\n DetailsComponent,\n ForgotPasswordPopupComponent,\n CreateNewPasswordComponent,\n AuthCardComponent,\n AuthCardFooterComponent,\n AuthCardHeaderComponent,\n UnsupportedBrowserWarningComponent\n ]\n})\nexport class AuthModule {}\n","import { RouterModule, Routes } from '@angular/router';\n\n// Login\nimport { AuthComponent } from './auth.component';\nimport { LoginComponent } from './login/login.component';\nimport { RegisterComponent } from './register/register.component';\nimport { LoginGuard } from './login.guard';\nimport { DetailsComponent } from './register/details/details.component';\nimport { PreventLeavingConfirm } from '@shared/guards/prevent-leaving.guard';\nimport { CreateNewPasswordComponent } from './create-new-password/create-new-password.component';\n\nconst authRoutes: Routes = [\n {\n path: '',\n component: AuthComponent,\n children: [\n {\n path: 'login',\n component: LoginComponent,\n canActivate: [LoginGuard]\n },\n {\n path: 'reset-password',\n component: CreateNewPasswordComponent\n // canActivate: [LoginGuard]\n },\n {\n path: 'register',\n component: RegisterComponent,\n canActivate: [LoginGuard]\n },\n {\n path: 'register/details',\n component: DetailsComponent,\n canDeactivate: [PreventLeavingConfirm],\n data: {\n wideCard: true\n }\n },\n { path: '', redirectTo: '/dashboard', pathMatch: 'full' }\n ]\n }\n];\n\nexport const AuthRoutes = RouterModule.forChild(authRoutes);\n","module.exports = \"{{\\n 'ForgotPassword.Title' | translate\\n}}\\n\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n {{ passwordWithValidation.value.length }}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n >\\n \\n
\\n\\n \\n
\\n \\n \\n \\n \\n
\\n\\n
\\n\\n \\n {{ 'ForgotPassword.Button' | translate }}\\n \\n
\\n
\\n\\n\\n {{ 'Login.Title' | translate }}\\n \\n\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2F1dGgvY3JlYXRlLW5ldy1wYXNzd29yZC9jcmVhdGUtbmV3LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormGroup, FormControl, Validators, FormBuilder, AbstractControl } from '@angular/forms';\nimport { AuthService } from '@services/auth.service';\nimport { LocalizationService } from '@services/localization.service';\nimport { NotificationService } from '@services/notification.service';\nimport { Subscription } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-create-new-password',\n templateUrl: './create-new-password.component.html',\n styleUrls: ['./create-new-password.component.scss']\n})\n/**\n * This page allows users to reset/change their own password. This page can only be reached\n * by a link that is emailed to them when they click the \"Forgot Password\" link on the login\n * page.\n */\nexport class CreateNewPasswordComponent implements OnInit, OnDestroy {\n private passwordSubscription: Subscription;\n private email: string;\n private token: string;\n private locale: string;\n\n // Controls\n form: FormGroup;\n password = new FormControl('', [Validators.required, Validators.minLength(8), this.validatePasswordStrength]);\n confirmPassword = new FormControl('', Validators.required);\n\n constructor(\n private authService: AuthService,\n // private router: Router,\n private route: ActivatedRoute,\n private router: Router,\n private formBuilder: FormBuilder,\n private localizationService: LocalizationService,\n public notificationService: NotificationService\n ) {\n // The link in the email will include three url parameters: email, token, locale.\n // Get them here. If we don't get them all then re-route to login.\n this.route.queryParams.subscribe(params => {\n this.token = decodeURIComponent(params.token);\n this.email = decodeURIComponent(params.email);\n this.locale = decodeURIComponent(params.locale);\n\n if (this.token === 'undefined' || this.email === 'undefined' || this.locale === 'undefined') {\n this.router.navigate(['/login']);\n } else {\n if (this.locale !== 'undefined') {\n localizationService.setLocale(this.locale);\n }\n }\n\n // Build the form.\n this.form = this.formBuilder.group({\n password: this.password,\n confirmPassword: this.confirmPassword\n });\n });\n }\n\n ngOnInit() {\n this.passwordSubscription = this.form.get('password').valueChanges.subscribe(val => {\n this.revalidateConfirm();\n });\n }\n\n ngOnDestroy() {\n if (this.passwordSubscription) {\n this.passwordSubscription.unsubscribe();\n }\n }\n // Listening for Password change to revalidate the confirmPassword\n onChanges(): void {}\n\n revalidate(name: 'password' | 'confirmPassword') {\n const password: AbstractControl = this.form.controls[name];\n if (!password.invalid && password.touched) {\n password.updateValueAndValidity();\n }\n }\n revalidateConfirm() {\n this.revalidate('confirmPassword');\n }\n\n validatePasswordStrength(c: FormControl) {\n // const PASSWORD_EXP = RegExp('(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&]).{8,}');\n\n const isLower = /[a-z]/.test(c.value);\n const isUpper = /[A-Z]/.test(c.value);\n const isNumber = /[0-9]/.test(c.value);\n const isSpecial = /[^a-zA-Z0-9]/.test(c.value);\n const is8 = c.value.length >= 8;\n\n if (isLower && isUpper && isNumber && isSpecial && is8) return null;\n else\n return {\n validatePasswordStrength: {\n valid: false\n }\n };\n }\n\n submit() {\n // Relay the new password to the server.\n if (this.form.valid) {\n this.authService.userResetPassword(this.email, this.token, this.form.value.password).subscribe(\n res => {\n if (res) {\n this.notificationService.successSnackBar(this.localizationService.instant('PersonalInfo.PasswordUpdate'));\n this.router.navigate(['/login']);\n }\n },\n err => {\n this.notificationService.showErrors(err);\n }\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n CanActivate,\n Router,\n ActivatedRouteSnapshot,\n CanLoad,\n Route\n} from '@angular/router';\n\nimport { AuthService } from '@services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginGuard implements CanActivate {\n constructor(private authService: AuthService, private router: Router) {}\n\n canActivate(route: ActivatedRouteSnapshot): boolean {\n if (this.authService.loggedIn()) {\n this.router.navigate(['/dashboard']);\n return false;\n }\n return true;\n }\n}\n","module.exports = \"

{{ 'Popup.ForgotPassword.Title' | translate }}

\\r\\n
\\r\\n
\\r\\n

{{ 'Popup.ForgotPassword.Content' | translate }}

\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n

\\r\\n\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'Global.Cancel' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n {{ 'Popup.ForgotPassword.Title' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\r\nimport { NotificationService } from '@services/notification.service';\r\nimport { AuthService } from '@services/auth.service';\r\nimport { LocalizationService } from '@services/localization.service';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { SiteConfigService } from '@services/siteConfig.service';\r\nimport { SiteConfigModel } from '@models/site-config-model';\r\n\r\n@Component({\r\n selector: 'app-forgot-password-popup',\r\n templateUrl: './forgot-password-popup.component.html'\r\n})\r\nexport class ForgotPasswordPopupComponent implements OnInit {\r\n forgotPassForm: FormGroup;\r\n email = new FormControl('', [Validators.required, Validators.email]);\r\n siteConfig: SiteConfigModel;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private formBuilder: FormBuilder,\r\n private locale: LocalizationService,\r\n public notificationService: NotificationService,\r\n private dialogRef: MatDialogRef,\r\n private siteConfigService: SiteConfigService\r\n ) {\r\n this.forgotPassForm = this.formBuilder.group({\r\n email: this.email\r\n });\r\n }\r\n ngOnInit(): void {\r\n this.siteConfigService.getSiteConfig().subscribe(siteConfig => {\r\n this.siteConfig = siteConfig;\r\n });\r\n }\r\n\r\n submit() {\r\n if (this.forgotPassForm.valid) {\r\n this.forgotPassForm.disable();\r\n this.authService\r\n .forgotPassword(encodeURIComponent(this.forgotPassForm.value.email), this.locale.getLocale())\r\n .subscribe(res => {\r\n this.dialogRef.close();\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"{{ 'Login.Title' | translate }}\\n\\n\\n\\n
\\n
\\n \\n
\\n \\n
\\n\\n \\n \\n \\n \\n \\n\\n
\\n\\n \\n {{ 'Login.Button' | translate }}\\n \\n
\\n
\\n\\n {{ 'Login.SignUpLink' | translate }}\\n \\n {{\\n 'Login.ForgotPasswordLink' | translate\\n }}\\n\\n\"","module.exports = \".fake-link {\\n color: #636c72;\\n font-weight: 500; }\\n .fake-link:hover {\\n text-decoration: underline;\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9sb2dpbi9EOlxcV29ya3NwYWNlc1xcS29ydG9qdXJhXFxDbGllbnRBcHAvc3JjXFxhcHBcXGF1dGhcXGxvZ2luXFxsb2dpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQWM7RUFDZCxnQkFBZ0IsRUFBQTtFQUZsQjtJQUlJLDBCQUEwQjtJQUMxQixlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hdXRoL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZha2UtbGluayB7XG4gIGNvbG9yOiAjNjM2YzcyO1xuICBmb250LXdlaWdodDogNTAwO1xuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cbiJdfQ== */\"","import { Component } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormBuilder,\r\n FormControl,\r\n Validators\r\n} from '@angular/forms';\r\nimport { AuthService } from '@services/auth.service';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ForgotPasswordPopupComponent } from './forgot-password-popup/forgot-password-popup.component';\r\nimport { NotificationService } from '@services/notification.service';\r\nimport { UserLoginModel } from '@models/user-login-model';\r\nimport { LocalizationService } from '@services/localization.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent {\r\n loginForm: FormGroup;\r\n userLoginModel: UserLoginModel;\r\n email = new FormControl('', [Validators.required, Validators.email]);\r\n password = new FormControl('', [Validators.required]);\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private localizationService: LocalizationService,\r\n public dialog: MatDialog,\r\n public notificationService: NotificationService\r\n ) {\r\n this.loginForm = this.formBuilder.group({\r\n email: this.email,\r\n password: this.password\r\n });\r\n }\r\n\r\n login() {\r\n if (this.loginForm.valid) {\r\n this.userLoginModel = Object.assign({}, this.loginForm.value);\r\n\r\n this.loginForm.disable();\r\n\r\n this.authService.login(this.userLoginModel).subscribe(\r\n () => {\r\n this.localizationService\r\n .translate('Notifications.LoginSuccessful')\r\n .subscribe(successMessage => {\r\n this.notificationService.successSnackBar(successMessage);\r\n console.log(successMessage);\r\n });\r\n this.loginForm.enable();\r\n },\r\n error => {\r\n this.notificationService.showErrors(error);\r\n this.loginForm.enable();\r\n },\r\n () => {\r\n this.router.navigate(['/dashboard']);\r\n }\r\n );\r\n }\r\n }\r\n\r\n openDialog(): void {\r\n this.dialog.open(ForgotPasswordPopupComponent,{width: \"650px\"});\r\n }\r\n}\r\n","module.exports = \"
\\n {{ 'Login.Warning' | translate }}\\n {{ 'Login.IEWarning' | translate }}\\n
\\n\"","module.exports = \".warning {\\n width: 100%;\\n border: solid 1px red;\\n padding: 7px;\\n margin-bottom: 20px; }\\n .warning legend {\\n width: auto;\\n padding: 2px;\\n margin: 0 0 0 5px;\\n font-size: 120%;\\n font-weight: bold; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9sb2dpbi91bnN1cHBvcnRlZC1icm93c2VyLXdhcm5pbmcvRDpcXFdvcmtzcGFjZXNcXEtvcnRvanVyYVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxhdXRoXFxsb2dpblxcdW5zdXBwb3J0ZWQtYnJvd3Nlci13YXJuaW5nXFx1bnN1cHBvcnRlZC1icm93c2VyLXdhcm5pbmcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLFlBQVk7RUFDWixtQkFBbUIsRUFBQTtFQUpyQjtJQU1JLFdBQVc7SUFDWCxZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2F1dGgvbG9naW4vdW5zdXBwb3J0ZWQtYnJvd3Nlci13YXJuaW5nL3Vuc3VwcG9ydGVkLWJyb3dzZXItd2FybmluZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53YXJuaW5nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogc29saWQgMXB4IHJlZDtcbiAgcGFkZGluZzogN3B4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBsZWdlbmQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBtYXJnaW46IDAgMCAwIDVweDtcbiAgICBmb250LXNpemU6IDEyMCU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cbiJdfQ== */\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-unsupported-browser-warning',\n templateUrl: './unsupported-browser-warning.component.html',\n styleUrls: ['./unsupported-browser-warning.component.scss']\n})\nexport class UnsupportedBrowserWarningComponent {\n get isBrowserSupported() {\n return !/MSIE|Trident|Edge/.test(window.navigator.userAgent);\n }\n}\n","module.exports = \"\\n \\n\\n\\n \\n\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2F1dGgvcmVnaXN0ZXIvZGV0YWlscy9kZXRhaWxzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@services/auth.service';\r\nimport { UserProfileModel } from '@models/user-profile-model';\r\nimport { PersonalDetailsComponent } from '@app/user/personal-details/personal-details.component';\r\nimport { UserRegistrationStore } from './user-registration.store';\r\nimport { NotificationService } from '@services/notification.service';\r\nimport { LocalizationService } from '@services/localization.service';\r\nimport { CanPreventLeaving } from '@shared/guards/prevent-leaving.guard';\r\n\r\n@Component({\r\n selector: 'app-details',\r\n templateUrl: './details.component.html',\r\n styleUrls: ['./details.component.scss'],\r\n providers: [UserRegistrationStore]\r\n})\r\nexport class DetailsComponent implements OnInit, CanPreventLeaving {\r\n @ViewChild('personalDetails') personalDetails: PersonalDetailsComponent;\r\n leaveMessage: string;\r\n\r\n constructor(\r\n private router: Router,\r\n private notificationService: NotificationService,\r\n private authService: AuthService,\r\n public store: UserRegistrationStore,\r\n local: LocalizationService\r\n ) {\r\n local.translate('Register.Unsaved').subscribe(t => (this.leaveMessage = t));\r\n }\r\n\r\n ngOnInit() {\r\n this.store.init();\r\n }\r\n\r\n canLeave(): boolean {\r\n return (\r\n this.personalDetails.form.pristine &&\r\n this.personalDetails.addressForm.pristine\r\n );\r\n }\r\n\r\n submitUserProfile(userProfile: UserProfileModel) {\r\n this.store.submitUserProfile(userProfile).subscribe(\r\n () => this.submitUserProfileComplete(),\r\n error => this.notificationService.showErrors(error)\r\n );\r\n }\r\n\r\n logout() {\r\n this.authService.logout().subscribe(\r\n response => {\r\n this.notificationService.successSnackBar(\r\n response['logoutMessage'].value\r\n );\r\n },\r\n error => {\r\n this.notificationService.showErrors(error);\r\n console.log(error['logoutMessage'].value);\r\n },\r\n () => {\r\n this.router.navigate(['/login']);\r\n }\r\n );\r\n }\r\n\r\n private submitUserProfileComplete() {\r\n const user = this.authService.getUser();\r\n if (\r\n this.authService.isCurrentUserCandidate() &&\r\n !user.hasRegisteredForACertification\r\n ) {\r\n this.router.navigate(['/register/certification']);\r\n } else {\r\n this.router.navigate(['/dashboard']);\r\n }\r\n }\r\n}\r\n","import { UserProfileModel } from '@models/user-profile-model';\nimport { Store } from 'rxjs-observable-store';\nimport { Injectable } from '@angular/core';\nimport { UserProfileService } from '@services/user-profile.service';\nimport { AuthService } from '@services/auth.service';\nimport { tap } from 'rxjs/operators';\n\n@Injectable()\nexport class UserRegistrationStore extends Store {\n constructor(\n private userProfileService: UserProfileService,\n private authService: AuthService\n ) {\n super({\n address: {}\n } as UserProfileModel);\n }\n\n init() {\n const id = this.authService.getUserId();\n this.userProfileService.getUser(id).subscribe(res => this.setState(res));\n }\n\n submitUserProfile(userProfile: UserProfileModel) {\n return this.userProfileService\n .putUser(userProfile.id, { ...userProfile })\n .pipe(\n tap(() => {\n this.setState({\n ...userProfile\n });\n this.authService.setUserHasCompletedDetails();\n })\n );\n }\n}\n","module.exports = \"{{ 'Register.Title' | translate }}\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ passwordWithValidation.value.length }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n >\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n \\r\\n {{ 'Register.Terms.Prefix' | translate }}\\r\\n \\r\\n {{ 'Register.Terms.Middle' | translate }}\\r\\n \\r\\n

\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n {{ 'Register.Button' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n {{ 'Register.FooterText' | translate }}\\r\\n\\r\\n\"","module.exports = \".password-field,\\n.mat-card {\\n margin-bottom: 10px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9yZWdpc3Rlci9EOlxcV29ya3NwYWNlc1xcS29ydG9qdXJhXFxDbGllbnRBcHAvc3JjXFxhcHBcXGF1dGhcXHJlZ2lzdGVyXFxyZWdpc3Rlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFFRSxtQkFBbUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2F1dGgvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucGFzc3dvcmQtZmllbGQsXG4ubWF0LWNhcmQge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuIl19 */\"","import {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { AuthService } from '@services/auth.service';\r\nimport { Router } from '@angular/router';\r\nimport {\r\n FormBuilder,\r\n FormGroup,\r\n Validators,\r\n FormControl,\r\n AbstractControl\r\n} from '@angular/forms';\r\nimport { NotificationService } from '@services/notification.service';\r\nimport { UserRegisterModel } from '@models/user-register-model';\r\nimport { LocalizationService } from '@services/localization.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatDialog } from '@angular/material';\r\nimport { CommonDialogService } from '@services/common-dialog.service';\r\n\r\n@Component({\r\n selector: 'app-register',\r\n templateUrl: './register.component.html',\r\n styleUrls: ['./register.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class RegisterComponent implements OnInit, OnDestroy {\r\n registerForm: FormGroup;\r\n\r\n private passwordSubscription: Subscription;\r\n\r\n // Controls\r\n firstname = new FormControl('', Validators.required);\r\n lastname = new FormControl('', Validators.required);\r\n email = new FormControl('', [Validators.required, Validators.email]);\r\n password = new FormControl('', [Validators.required, Validators.minLength(8), this.validatePasswordStrength]);\r\n confirmPassword = new FormControl('', Validators.required);\r\n isAgreedToTOS = new FormControl(false, this.validateAgreementToTOS);\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private localizationService: LocalizationService,\r\n private dialog: MatDialog,\r\n public notificationService: NotificationService,\r\n public commonDialogService: CommonDialogService\r\n ) {\r\n this.registerForm = this.formBuilder.group({\r\n firstname: this.firstname,\r\n lastname: this.lastname,\r\n email: this.email,\r\n password: this.password,\r\n confirmPassword: this.confirmPassword,\r\n isAgreedToTOS: this.isAgreedToTOS\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.passwordSubscription = this.registerForm.get('password').valueChanges.subscribe(val => {\r\n this.revalidateConfirm();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.passwordSubscription.unsubscribe();\r\n }\r\n // Listening for Password change to revalidate the confirmPassword\r\n onChanges(): void {}\r\n\r\n validateAgreementToTOS(c: FormControl) {\r\n if (c.value) return null;\r\n return {\r\n mustAgreeToTOS: {\r\n valid: false\r\n }\r\n };\r\n }\r\n\r\n\r\n revalidate(name: 'password' | 'confirmPassword') {\r\n const password: AbstractControl = this.registerForm.controls[name];\r\n if (!password.invalid && password.touched) {\r\n password.updateValueAndValidity();\r\n }\r\n }\r\n revalidateConfirm() {\r\n this.revalidate('confirmPassword');\r\n }\r\n\r\n register() {\r\n if (this.registerForm.valid) {\r\n const userRegisterModel: UserRegisterModel = Object.assign({}, this.registerForm.value);\r\n this.authService.register(userRegisterModel).subscribe(\r\n () => {\r\n this.localizationService\r\n .translate('Notifications.RegistrationSuccessful')\r\n .subscribe(successMessage => this.notificationService.successSnackBar(successMessage));\r\n },\r\n error => {\r\n this.notificationService.showErrors(error);\r\n },\r\n () => {\r\n this.authService.login(userRegisterModel).subscribe(() => {\r\n this.router.navigate(['/register/details']);\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n validatePasswordStrength(c: FormControl) {\r\n // const PASSWORD_EXP = RegExp('(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&]).{8,}');\r\n\r\n const isLower = /[a-z]/.test(c.value);\r\n const isUpper = /[A-Z]/.test(c.value);\r\n const isNumber = /[0-9]/.test(c.value);\r\n const isSpecial = /[^a-zA-Z0-9]/.test(c.value);\r\n const is8 = c.value.length >= 8;\r\n\r\n if (isLower && isUpper && isNumber && isSpecial && is8) return null;\r\n else\r\n return {\r\n validatePasswordStrength: {\r\n valid: false\r\n }\r\n };\r\n }\r\n}\r\n","import { NgcCookieConsentConfig } from 'ngx-cookieconsent';\r\n\r\n/** All of the cookie consent text can be found under this key in the localization resource files. */\r\nexport const COOKIE_CONSENT_LANGUAGE_RESOURCE_KEY = 'CookieConsent';\r\n\r\n/** The name of the cookie that will store the user's choice on cookie consent. */\r\nexport const COOKIE_CONSENT_COOKIE_NAME = 'cookie-consent-status';\r\n\r\nexport const cookieConfig: NgcCookieConsentConfig = {\r\n /**\r\n * If false, this prevents the popup from showing (useful for giving to control to another piece of code)\r\n */\r\n enabled: false,\r\n\r\n /**\r\n * Defaults cookie options - it is RECOMMENDED to set these values to correspond with your server\r\n */\r\n cookie: {\r\n // domain: 'localhost', // or 'your.domain.com' // it is mandatory to set a domain, for cookies to work properly (see https://goo.gl/S2Hy2A)\r\n domain: document.location.hostname,\r\n name: COOKIE_CONSENT_COOKIE_NAME\r\n },\r\n\r\n /**\r\n * If you want custom colours, pass them in here. this object should look like this.\r\n * ideally, any custom colours/themes should be created in a separate style sheet, as this is more efficient.\r\n *\r\n * {\r\n * popup: {background: '#000000', text: '#fff', link: '#fff'},//\r\n * button: {background: 'transparent', border: '#f8e71c', text: '#f8e71c'},//\r\n * highlight: {background: '#f8e71c', border: '#f8e71c', text: '#000000'},//\r\n * }\r\n *\r\n * `highlight` is optional and extends `button`. if it exists, it will apply to the first button\r\n * only background needs to be defined for every element. if not set, other colors can be calculated from it\r\n */\r\n // palette?: NgcPaletteOptions;\r\n palette: {\r\n popup: {\r\n background: '#9B3328 ',\r\n link: '#fff',\r\n text: '#fff'\r\n },\r\n button: {\r\n background: '#fff',\r\n link: '#fff',\r\n text: '#9B3328'\r\n },\r\n highlight: {\r\n background: '#fff1',\r\n text: '#fff'\r\n }\r\n },\r\n theme: 'block',\r\n type: 'opt-out',\r\n position: 'bottom-left',\r\n\r\n /**\r\n * Optional (expecting a HTML element) if passed, the popup is appended to this element. default is `document.body`\r\n */\r\n // container?: HTMLElement;\r\n // This doesn't appear to have any affect\r\n // container: document.querySelector('app-root > body')\r\n\r\n /**\r\n * Each item defines the inner text for the element that it references\r\n */\r\n\r\n // content is set in `AppComponent`.\r\n // content?: NgcContentOptions;\r\n\r\n /**\r\n * This is the HTML for the elements above. The string {{header}} will be replaced with the equivalent text below.\r\n * You can remove '{{header}}' and write the content directly inside the HTML if you want.\r\n * - ARIA rules suggest to ensure controls are tabbable (so the browser can find the first control),\r\n * and to set the focus to the first interactive control (http://w3c.github.io/aria-in-html/)\r\n */\r\n // elements?: NgcHTMLElements;\r\n\r\n /**\r\n * The placeholders {{classes}} and {{children}} both get replaced during initialisation:\r\n * - {{classes}} is where additional classes get added\r\n * - {{children}} is where the HTML children are placed\r\n */\r\n // window?: string;\r\n\r\n /**\r\n * This is the html for the revoke button. This only shows up after the user has selected their level of consent\r\n * It can be enabled of disabled using the `revokable` option\r\n */\r\n // revokeBtn?: string;\r\n // revokeBtn: 'This is the revoke button',\r\n\r\n /**\r\n * Define types of 'compliance' here. '{{value}}' strings in here are linked to `elements`\r\n */\r\n // compliance?: NgcCompliance;\r\n\r\n /**\r\n * define layout layouts here\r\n */\r\n // layouts?: NgcLayouts;\r\n\r\n /**\r\n * Default layout (see above)\r\n */\r\n // layout?: NgcCookieLayout;\r\n\r\n /**\r\n * Available styles\r\n * - block (default, no extra classes)\r\n * - edgeless\r\n * - classic\r\n * Use your own style name and use `.cc-theme-STYLENAME` class in CSS to edit.\r\n * Note: style 'wire' is used for the configurator, but has no CSS styles of its own, only palette is used.\r\n */\r\n // theme?: NgcCookieTheme;\r\n\r\n /**\r\n * The popup is `fixed` by default, but if you want it to be static (inline with the page content), set this to false\r\n * Note: by default, we animate the height of the popup from 0 to full size\r\n */\r\n // static?: boolean;\r\n\r\n /**\r\n * Some countries REQUIRE that a user can change their mind. You can configure this yourself.\r\n * Most of the time this should be false, but the `cookieconsent.law` can change this to `true` if it detects that it should\r\n */\r\n // revokable?: boolean;\r\n // This doesn't appear to have any affect.\r\n // revokable: true,\r\n // revokable: false,\r\n\r\n /**\r\n * If true, the revokable button will tranlate in and out\r\n */\r\n // animateRevokable?: boolean;\r\n\r\n // The Revokable button is a little tab that sits at the bottom of the screen once the user has chosen \"deny\" or \"Accept\". Clicking it will\r\n // revoke the choice, causing the consent box to show again. If `true` then the tab will hide until mouseover. If `false` then it will always show.\r\n animateRevokable: true,\r\n\r\n /**\r\n * Used to disable link on existing layouts\r\n * replaces element messagelink with message and removes content of link\r\n */\r\n // showLink?: boolean;\r\n\r\n // Whether to show a link after the message. The URL for the link will be taken from the locale resource file: CookieConsent.Href and text will come from: CookieConsent.Link\r\n showLink: false,\r\n\r\n /**\r\n * Set value as scroll range to enable\r\n */\r\n // dismissOnScroll?: boolean | number;\r\n\r\n /**\r\n * Set value as time in milliseconds to autodismiss after set time\r\n */\r\n // dismissOnTimeout?: boolean | number;\r\n\r\n /**\r\n * The application automatically decide whether the popup should open.\r\n * Set this to false to prevent this from happening and to allow you to control the behaviour yourself\r\n */\r\n // autoOpen?: boolean;\r\n\r\n /**\r\n * By default the created HTML is automatically appended to the container (which defaults to ). You can prevent this behaviour\r\n * by setting this to false, but if you do, you must attach the `element` yourself, which is a public property of the popup instance:\r\n *\r\n * var instance = cookieconsent.factory(options);\r\n * document.body.appendChild(instance.element);\r\n *\r\n */\r\n // autoAttach?: boolean;\r\n\r\n /**\r\n * Simple whitelist for pages. specify page by:\r\n * - using a string : '/index.html' (matches '/index.html' exactly) OR\r\n * - using RegExp : /\\/page_[\\d]+\\.html/ (matched '/page_1.html' and '/page_2.html' etc)\r\n *\r\n */\r\n // whitelistPage?: string[];\r\n\r\n /**\r\n * Simple blacklist for pages. specify page by:\r\n * - using a string : '/index.html' (matches '/index.html' exactly) OR\r\n * - using RegExp : /\\/page_[\\d]+\\.html/ (matched '/page_1.html' and '/page_2.html' etc)\r\n *\r\n */\r\n // blacklistPage?: string[];\r\n\r\n /**\r\n * If this is defined, then it is used as the inner html instead of layout. This allows for ultimate customisation.\r\n * Be sure to use the classes `cc-btn` and `cc-allow`, `cc-deny` or `cc-dismiss`. They enable the app to register click\r\n * handlers. You can use other pre-existing classes too. See `src/styles` folder.\r\n *\r\n */\r\n // overrideHTML?: string;\r\n\r\n /**\r\n * Law Options\r\n */\r\n // law?: NgcLawOptions;\r\n // law: { countryCode: 'CA' }\r\n\r\n /**\r\n * Location Options\r\n */\r\n // location?: boolean | NgcLocationOptions;\r\n\r\n /**\r\n * Set value as click anything on the page, excluding the `ignoreClicksFrom` below (if we click on the revoke button etc)\r\n */\r\n // dismissOnWindowClick?: boolean;\r\n\r\n /**\r\n * If `dismissOnWindowClick` is true, we can click on 'revoke' and we'll still dismiss the banner, so we need exceptions.\r\n * Should be an array of class names (not CSS selectors).\r\n */\r\n // ignoreClicksFrom?: string[];\r\n};\r\n","module.exports = \"

\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-receive-certification-popup',\n templateUrl: './receive-certification-popup.component.html'\n})\nexport class ReceiveCertificationPopupComponent {\n constructor() {}\n}\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n menu\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","module.exports = \".brand-image {\\n height: 50px; }\\n\\n.kortojura-icon {\\n width: 40px;\\n height: 40px;\\n margin-right: 12px;\\n margin-left: 12px;\\n vertical-align: text-bottom; }\\n\\n.app-header-inner {\\n background: linear-gradient(335deg, #feb692 10%, #9c3329 100%) center center/cover no-repeat fixed !important;\\n background-image: url('trianglify.svg') !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbGF5b3V0L2hlYWRlci1sYXlvdXQvRDpcXFdvcmtzcGFjZXNcXEtvcnRvanVyYVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxsYXlvdXRcXGhlYWRlci1sYXlvdXRcXGhlYWRlci1sYXlvdXQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZLEVBQUE7O0FBR2Q7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsMkJBQTJCLEVBQUE7O0FBRzdCO0VBQ0UsNkdBQ3lDO0VBQ3pDLGtEQUF1RSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvbGF5b3V0L2hlYWRlci1sYXlvdXQvaGVhZGVyLWxheW91dC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5icmFuZC1pbWFnZSB7XG4gIGhlaWdodDogNTBweDtcbn1cblxuLmtvcnRvanVyYS1pY29uIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBtYXJnaW4tbGVmdDogMTJweDtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xufVxuXG4uYXBwLWhlYWRlci1pbm5lciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgzMzVkZWcsICNmZWI2OTIgMTAlLCAjOWMzMzI5IDEwMCUpIGNlbnRlclxuICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQgZml4ZWQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvdHJpYW5nbGlmeS5zdmcpICFpbXBvcnRhbnQ7XG59XG4iXX0= */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NotificationService } from '@services/notification.service';\nimport { AuthService } from '@services/auth.service';\nimport { LocalizationService } from '@services/localization.service';\n\n@Component({\n selector: 'app-header-layout',\n templateUrl: './header-layout.component.html',\n styleUrls: ['./header-layout.component.scss']\n})\nexport class HeaderLayoutComponent implements OnInit {\n @Output() openSidebar: EventEmitter = new EventEmitter();\n private leaveMessage: string;\n\n constructor(\n private authService: AuthService,\n private router: Router,\n public notificationService: NotificationService,\n local: LocalizationService\n ) {\n local.translate('Exam.Stay').subscribe(t => (this.leaveMessage = t));\n }\n\n ngOnInit() {}\n\n logout() {\n if (this.authService.examInProgress) {\n alert(this.leaveMessage);\n return;\n }\n this.authService.logout().subscribe(\n response => {\n this.notificationService.successSnackBar(\n response['logoutMessage'].value\n );\n },\n error => {\n this.notificationService.showErrors(error);\n console.log(error['logoutMessage'].value);\n },\n () => {\n this.router.navigate(['/login']);\n }\n );\n }\n\n navigateToDashboard() {\n this.router.navigate(['/dashboard']);\n }\n\n navigateToProfile() {\n this.router.navigate(['/profile']);\n }\n\n openSideMenu() {\n this.openSidebar.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MainLayoutComponent } from './main-layout/main-layout.component';\nimport { SidebarLayoutComponent } from './sidebar-layout/sidebar-layout.component';\nimport { HeaderLayoutComponent } from './header-layout/header-layout.component';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from '@shared/shared.module';\nimport { AppComponentsModule } from '@shared/app-components.module';\n\n@NgModule({\n imports: [CommonModule, SharedModule, RouterModule, AppComponentsModule],\n exports: [MainLayoutComponent],\n declarations: [\n MainLayoutComponent,\n SidebarLayoutComponent,\n HeaderLayoutComponent\n ]\n})\nexport class LayoutModule {}\n","module.exports = \"
\\n \\n\\n
\\n \\n\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9tYWluLWxheW91dC9tYWluLWxheW91dC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '@services/auth.service';\nimport { Roles } from '@models/roles';\n\n@Component({\n selector: 'app-main-layout',\n templateUrl: './main-layout.component.html',\n styleUrls: ['./main-layout.component.scss']\n})\nexport class MainLayoutComponent implements OnInit {\n hasAdminRole = false;\n constructor(private authService: AuthService) {}\n\n ngOnInit() {\n this.hasAdminRole = this.authService.roleMatch([Roles.admin]);\n }\n\n public openSidebar() {\n const div = document.querySelector('.app-sidebar');\n div.classList.add('show');\n document.body.addEventListener('click', this.closeSidebar);\n event.stopPropagation();\n }\n\n public closeSidebar() {\n const div = document.querySelector('.app-sidebar');\n div.classList.remove('show');\n document.body.removeEventListener('click', this.closeSidebar);\n event.stopPropagation();\n }\n}\n","module.exports = \"
\\r\\n
\\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n home\\r\\n {{ 'SideNav.Dashboard' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n person\\r\\n {{ 'SideNav.Profile' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n \\r\\n
  • \\r\\n \\r\\n class\\r\\n {{ 'SideNav.Certifications' | translate }}\\r\\n \\r\\n
  • \\r\\n
    \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n vpn_key\\r\\n {{ 'SideNav.Security' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n
  • \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
  • \\r\\n \\r\\n 0\\\" class=\\\"notebadge\\\">{{ unreadEmailCount }}\\r\\n email\\r\\n\\r\\n {{ 'SideNav.EmailHistory' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n \\r\\n {{ 'Communications.CommunicationsHistoryTitle' | translate }}\\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
  • \\r\\n \\r\\n class\\r\\n {{ 'SideNav.Certifications' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n assignment\\r\\n {{ 'SideNav.Tests' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n account_box\\r\\n {{ 'SideNav.Users' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n campaign\\r\\n \\r\\n {{ 'Communications.SearchTitle' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n email\\r\\n {{ 'SideNav.Notifications' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n
  • \\r\\n \\r\\n groups\\r\\n {{ 'Groups.Title' | translate }}\\r\\n \\r\\n
  • \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".app-sidebar {\\n padding-top: 60px;\\n display: flex;\\n flex-direction: column; }\\n .app-sidebar .sidebar-content {\\n flex-grow: 1;\\n height: 1px; }\\n .app-sidebar .sidebar-content ul.nav {\\n flex-direction: column; }\\n .app-sidebar .sidebar-content ul.nav .nav-divider {\\n background-color: rgba(0, 0, 0, 0.15);\\n min-height: 1px;\\n margin: 10px 0;\\n overflow: hidden; }\\n .show {\\n z-index: 999; }\\n .show .sidebar-content {\\n overflow-y: auto;\\n overflow-x: hidden; }\\n /*.enotification {\\r\\n background-color: #555;\\r\\n color: white;\\r\\n text-decoration: none;\\r\\n padding: 15px 26px;\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n border-radius: 2px;\\r\\n}*/\\n .enotification .notebadge {\\n position: absolute;\\n top: 0em;\\n right: 0.5em;\\n padding: 0.1em 0.35em;\\n border-radius: 50%;\\n background: black;\\n color: white;\\n width: 1.8em;\\n height: 1.8em;\\n text-align: center; }\\n .icon {\\n margin-left: 5px;\\n margin-right: 20px; }\\n .sidebar-footer {\\n z-index: 1; }\\n .sidebar-footer ul li {\\n flex-grow: 1; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbGF5b3V0L3NpZGViYXItbGF5b3V0L0Q6XFxXb3Jrc3BhY2VzXFxLb3J0b2p1cmFcXENsaWVudEFwcC9zcmNcXGFwcFxcbGF5b3V0XFxzaWRlYmFyLWxheW91dFxcc2lkZWJhci1sYXlvdXQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2xheW91dC9zaWRlYmFyLWxheW91dC9zaWRlYmFyLWxheW91dC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUVFLGlCQUFpQjtFQUVqQixhQUFhO0VBQ2Isc0JBQXNCLEVBQUE7RUFMeEI7SUFRSSxZQUFZO0lBSVosV0FBVyxFQUFBO0VBWmY7TUFlTSxzQkFBc0IsRUFBQTtFQWY1QjtRQW1CUSxxQ0FBMkI7UUFDM0IsZUFBZTtRQUNmLGNBQWM7UUFDZCxnQkFBZ0IsRUFBQTtFQU14QjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksZ0JBQWdCO0lBQ2hCLGtCQUFrQixFQUFBO0VBSXRCOzs7Ozs7OztFQ1JFO0VEa0JGO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixZQUFZO0VBQ1oscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLFlBQVk7RUFDWixhQUFhO0VBQ2Isa0JBQWtCLEVBQUE7RUFJcEI7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCLEVBQUE7RUFHcEI7RUFDRSxVQUFVLEVBQUE7RUFEWjtJQUlNLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9zaWRlYmFyLWxheW91dC9zaWRlYmFyLWxheW91dC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcHAtc2lkZWJhciB7XHJcbiAgLy8gTW92ZSB0aGUgc2lkZWJhciBkb3duIGEgYml0IHNvIHRoYXQgdGhlIGhlYWRlciBkb2VzIG5vdCBjb3ZlciB0aGUgZmlyc3QgaXRlbS5cclxuICBwYWRkaW5nLXRvcDogNjBweDtcclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAuc2lkZWJhci1jb250ZW50IHtcclxuICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIC8vIFRoZSBzaWRlYmFyIGNvbnRlbnQgaGVpZ2h0IHdpbGwgYmUgc2V0IGJ5IHRoZSBmbGV4LWdyb3cgcnVsZS4gIFRoYXQgd2lsbCBjYXVzZSB0aGF0IHNlY3Rpb24gdG8gZ3JvdyB0byBmaWxsIHRoZSBhdmFpbGFibGUgc3BhY2UuXHJcbiAgICAvLyBUaGUgaGVpZ2h0IHJ1bGUgaXMgbmVlZGVkIGFzIHdlbGwuICBJdCBkb2Vzbid0IHNldCB0aGUgYWN0dWFsIGhlaWdodC4gIEl0IHdpbGwgY2F1c2UgdGhlIG92ZXJmbG93OiBoaWRkZW4gdG8gdGFrZSBhZmZlY3QuXHJcbiAgICAvLyBLaW5kIG9mIHNlZW1zIGxpa2UgYSBidWcsIGJ1dCBpdCB3b3JrcyB0aGUgc2FtZSBpbiBDaHJvbWUgYW5kIEZGLlxyXG4gICAgaGVpZ2h0OiAxcHg7XHJcblxyXG4gICAgdWwubmF2IHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgLy8gZmxleC13cmFwOiBub3dyYXA7XHJcblxyXG4gICAgICAubmF2LWRpdmlkZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoIzAwMCwgMC4xNSk7XHJcbiAgICAgICAgbWluLWhlaWdodDogMXB4O1xyXG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zaG93IHtcclxuICB6LWluZGV4OiA5OTk7XHJcblxyXG4gIC5zaWRlYmFyLWNvbnRlbnQge1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICB9XHJcbn1cclxuXHJcbi8qLmVub3RpZmljYXRpb24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTU7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBwYWRkaW5nOiAxNXB4IDI2cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbn0qL1xyXG5cclxuLmVub3RpZmljYXRpb24gLm5vdGViYWRnZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMGVtO1xyXG4gIHJpZ2h0OiAwLjVlbTtcclxuICBwYWRkaW5nOiAwLjFlbSAwLjM1ZW07XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB3aWR0aDogMS44ZW07XHJcbiAgaGVpZ2h0OiAxLjhlbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi8vIFVzZWQgZm9yIG5vbi1tYXRlcmlhbCBpY29ucyBsaWtlIEV2YWx1YXRvciBNYW5hZ2VtZW50LlxyXG4uaWNvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcbi5zaWRlYmFyLWZvb3RlciB7XHJcbiAgei1pbmRleDogMTtcclxuICB1bCB7XHJcbiAgICBsaSB7XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmFwcC1zaWRlYmFyIHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmFwcC1zaWRlYmFyIC5zaWRlYmFyLWNvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBoZWlnaHQ6IDFweDsgfVxuICAgIC5hcHAtc2lkZWJhciAuc2lkZWJhci1jb250ZW50IHVsLm5hdiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAuYXBwLXNpZGViYXIgLnNpZGViYXItY29udGVudCB1bC5uYXYgLm5hdi1kaXZpZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uc2hvdyB7XG4gIHotaW5kZXg6IDk5OTsgfVxuICAuc2hvdyAuc2lkZWJhci1jb250ZW50IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG4vKi5lbm90aWZpY2F0aW9uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgcGFkZGluZzogMTVweCAyNnB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG59Ki9cbi5lbm90aWZpY2F0aW9uIC5ub3RlYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMGVtO1xuICByaWdodDogMC41ZW07XG4gIHBhZGRpbmc6IDAuMWVtIDAuMzVlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgY29sb3I6IHdoaXRlO1xuICB3aWR0aDogMS44ZW07XG4gIGhlaWdodDogMS44ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uaWNvbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDsgfVxuXG4uc2lkZWJhci1mb290ZXIge1xuICB6LWluZGV4OiAxOyB9XG4gIC5zaWRlYmFyLWZvb3RlciB1bCBsaSB7XG4gICAgZmxleC1ncm93OiAxOyB9XG4iXX0= */\"","import { Component, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { Roles } from '@models/roles';\r\nimport { AuthService } from '@services/auth.service';\r\nimport { LocalizationService } from '@services/localization.service';\r\nimport { NotificationLogService } from '@services/notification-log.service';\r\nimport { NotificationService } from '@services/notification.service';\r\nimport { CommonDialogService } from '@services/common-dialog.service';\r\n\r\n@Component({\r\n selector: 'app-sidebar-layout',\r\n templateUrl: './sidebar-layout.component.html',\r\n styleUrls: ['./sidebar-layout.component.scss']\r\n})\r\nexport class SidebarLayoutComponent implements OnInit {\r\n unreadEmailCount: number;\r\n isDoneRegister = true;\r\n\r\n Roles = Roles;\r\n\r\n @Output() openSidebar: EventEmitter = new EventEmitter();\r\n @Output() closeSidebar: EventEmitter = new EventEmitter();\r\n constructor(\r\n private notificationLogService: NotificationLogService,\r\n private notificationService: NotificationService,\r\n private localizationService: LocalizationService,\r\n private authService: AuthService,\r\n public commonDialogService: CommonDialogService\r\n ) {}\r\n\r\n ngOnInit() {\r\n // If the user has not finished entering their details, them must do that first.\r\n const user = this.authService.getUser();\r\n if (\r\n !user.hasRegisteredForACertification &&\r\n this.authService.roleMatch([Roles.candidate])\r\n ) {\r\n this.isDoneRegister = false;\r\n return;\r\n }\r\n\r\n // Get unread email count and display message if there more than last time.\r\n if (\r\n this.authService.isCurrentUserCandidate() ||\r\n this.authService.isCurrentUserThirdParty()\r\n ) {\r\n this.notificationLogService.getUnreadCount().subscribe(r => {\r\n this.unreadEmailCount = r;\r\n const lastUnreadCount: number = +sessionStorage.getItem(\r\n 'lastUnreadCount'\r\n );\r\n // if the unread count has increased since we have been using the app, toast the user again.\r\n const retoast = r > lastUnreadCount;\r\n sessionStorage.setItem('lastUnreadCount', r.toString());\r\n // use notification service for one-time per session popup to announce new emails\r\n const emailsNotified =\r\n sessionStorage.getItem('emailsNotified') === 'true';\r\n if (!emailsNotified || retoast) {\r\n let emailMessage = '';\r\n if (r > 1) {\r\n emailMessage = 'NotificationLogs.NewEmails';\r\n } else if (r === 1) {\r\n emailMessage = 'NotificationLogs.NewEmail';\r\n }\r\n\r\n if (emailMessage !== '') {\r\n this.localizationService\r\n .translate(emailMessage, { count: r })\r\n .subscribe({\r\n next: message => {\r\n sessionStorage.setItem('emailsNotified', 'true');\r\n this.notificationService.confirmSnackBar(message);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n openSidebarMenu() {\r\n this.openSidebar.emit();\r\n }\r\n closeSidebarMenu() {\r\n this.closeSidebar.emit();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpInterceptor\n} from '@angular/common/http';\n\n@Injectable()\nexport class NocacheInterceptor implements HttpInterceptor {\n intercept(req: HttpRequest, next: HttpHandler) {\n const httpRequest = req.clone({\n setHeaders: {\n 'Cache-Control': 'no-cache',\n Pragma: 'no-cache',\n Expires: 'Sat, 01 Jan 2000 00:00:00 GMT'\n }\n });\n\n return next.handle(httpRequest);\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { LanguageToggleComponent } from '@components/language-toggle/language-toggle.component';\r\nimport { SharedModule } from './shared.module';\r\nimport { CommonModule } from '@angular/common';\r\nimport { KJInputComponent } from '@kj-controls/kj-input/kj-input.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { PopupSupportComponent } from '@components/popup-support/popup-support.component';\r\nimport { BoxComponent } from '@components/box/box.component';\r\nimport { BoxBodyComponent } from '@components/box/box-body/box-body.component';\r\nimport { BoxDividerComponent } from '@components/box/box-divider/box-divider.component';\r\nimport { BoxHeaderComponent } from '@components/box/box-header/box-header.component';\r\nimport { KjErrorComponent } from '@kj-controls/kj-error/kj-error.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ThirdPartyEmailsComponent } from '../user/user-certifications/user-certification/third-party-emails/third-party-emails.component';\r\nimport { EditRowComponent } from '../user/user-certifications/user-certification/third-party-emails/edit-row/edit-row.component';\r\nimport { CompletedCertificationDetailsComponent } from '../user/user-certifications/user-certification/completed-certification-details/completed-certification-details.component';\r\nimport { UserCertificationTestItemComponent } from '../user/user-certifications/user-certification/user-certification-test-item/user-certification-test-item.component';\r\nimport {\r\n PreventLeavingAlert,\r\n PreventLeavingConfirm\r\n} from './guards/prevent-leaving.guard';\r\nimport { SkillAreaResumeComponent } from '../user/user-certifications/user-certification/skill-area-resume/skill-area-resume.component';\r\nimport { TermsPopupComponent } from '@components/terms-popup/terms-popup.component';\r\nimport { ContactUsPopupComponent } from '@components/contact-us-popup/contact-us-popup.component';\r\nimport { PrivacyPopupComponent } from '@components/privacy-popup/privacy-popup.component';\r\nimport { KjTimeSelectorComponent } from '@kj-controls/kj-time-selector/kj-time-selector.component';\r\nimport { TestDateTimeSelectorComponent } from '@components/test-date-time-selector/test-date-time-selector.component';\r\nimport { KjValidators, KjValidatorsDirective } from './kj-validators/kj-validators';\r\n\r\n@NgModule({\r\n imports: [CommonModule, SharedModule, ReactiveFormsModule, RouterModule],\r\n declarations: [\r\n KJInputComponent,\r\n KjErrorComponent,\r\n KjTimeSelectorComponent,\r\n KjValidatorsDirective,\r\n TestDateTimeSelectorComponent,\r\n LanguageToggleComponent,\r\n TermsPopupComponent,\r\n ContactUsPopupComponent,\r\n PrivacyPopupComponent,\r\n PopupSupportComponent,\r\n BoxComponent,\r\n BoxBodyComponent,\r\n BoxDividerComponent,\r\n BoxHeaderComponent,\r\n UserCertificationTestItemComponent,\r\n ThirdPartyEmailsComponent,\r\n EditRowComponent,\r\n CompletedCertificationDetailsComponent,\r\n SkillAreaResumeComponent\r\n ],\r\n providers: [PreventLeavingAlert, PreventLeavingConfirm],\r\n entryComponents: [\r\n TermsPopupComponent,\r\n ContactUsPopupComponent,\r\n PrivacyPopupComponent\r\n ],\r\n exports: [\r\n KJInputComponent,\r\n KjErrorComponent,\r\n KjTimeSelectorComponent,\r\n KjValidatorsDirective,\r\n TestDateTimeSelectorComponent,\r\n LanguageToggleComponent,\r\n PopupSupportComponent,\r\n BoxComponent,\r\n BoxBodyComponent,\r\n BoxDividerComponent,\r\n BoxHeaderComponent,\r\n UserCertificationTestItemComponent,\r\n ThirdPartyEmailsComponent,\r\n EditRowComponent,\r\n CompletedCertificationDetailsComponent,\r\n SkillAreaResumeComponent\r\n ]\r\n})\r\nexport class AppComponentsModule {}\r\n","module.exports = \"\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2JveC9ib3gtYm9keS9ib3gtYm9keS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: '[app-box-body]',\n templateUrl: './box-body.component.html',\n styleUrls: ['./box-body.component.scss']\n})\nexport class BoxBodyComponent {\n @Input() class = '';\n\n constructor() {}\n\n @HostBinding('class')\n get hostClasses(): string {\n return ['box-body', this.class].join(' ');\n }\n}\n","module.exports = \"\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2JveC9ib3gtZGl2aWRlci9ib3gtZGl2aWRlci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: '[app-box-divider]',\n templateUrl: './box-divider.component.html',\n styleUrls: ['./box-divider.component.scss']\n})\nexport class BoxDividerComponent {\n @Input() class = '';\n\n constructor() {}\n\n @HostBinding('class')\n get hostClasses(): string {\n return ['box-divider', this.class].join(' ');\n }\n}\n","module.exports = \"\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2JveC9ib3gtaGVhZGVyL2JveC1oZWFkZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: '[app-box-header]',\n templateUrl: './box-header.component.html',\n styleUrls: ['./box-header.component.scss']\n})\nexport class BoxHeaderComponent {\n @Input() class = '';\n\n constructor() {}\n\n @HostBinding('class')\n get hostClasses(): string {\n return ['box-header', this.class].join(' ');\n }\n}\n","module.exports = \"\\n\"","module.exports = \".box {\\n display: block; }\\n .box .box-header {\\n display: block; }\\n .box .box-divider {\\n display: block; }\\n .box .box-body {\\n display: block; }\\n app-box {\\n display: block; }\\n app-box app-box-header {\\n display: block; }\\n app-box app-box-divider {\\n display: block; }\\n app-box app-box-body {\\n display: block; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvYm94L0Q6XFxXb3Jrc3BhY2VzXFxLb3J0b2p1cmFcXENsaWVudEFwcC9zcmNcXGFwcFxcc2hhcmVkXFxjb21wb25lbnRzXFxib3hcXGJveC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQWMsRUFBQTtFQURoQjtJQUlJLGNBQWMsRUFBQTtFQUpsQjtJQU9JLGNBQWMsRUFBQTtFQVBsQjtJQVVJLGNBQWMsRUFBQTtFQUlsQjtFQUNFLGNBQWMsRUFBQTtFQURoQjtJQUlJLGNBQWMsRUFBQTtFQUpsQjtJQU9JLGNBQWMsRUFBQTtFQVBsQjtJQVVJLGNBQWMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2JveC9ib3guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYm94IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLmJveC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5ib3gtZGl2aWRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmJveC1ib2R5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5hcHAtYm94IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgYXBwLWJveC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIGFwcC1ib3gtZGl2aWRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgYXBwLWJveC1ib2R5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIl19 */\"","import { Component, OnInit, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: '[app-box]',\n templateUrl: './box.component.html',\n styleUrls: ['./box.component.scss']\n})\nexport class BoxComponent {\n @Input() class = '';\n\n constructor() {}\n\n @HostBinding('class')\n get hostClasses(): string {\n return ['box box-default', this.class].join(' ');\n }\n}\n","module.exports = \"\\n\\n
\\n
\\n
\\n

\\n {{ communication.englishTitle }}\\n

\\n

\\n {{ communication.frenchTitle }}\\n

\\n
\\n
\\n {{ 'Communications.PublishedOn' | translate }}\\n {{ communication.publishDate | kortoDate }}\\n
\\n
\\n\\n \\n\\n \\n
\\n \\n \\n \\n
\\n\"","module.exports = \".header {\\n display: flex;\\n justify-content: space-between;\\n align-items: baseline; }\\n\\n.close-button {\\n cursor: pointer; }\\n\\n.container {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n height: calc(100% - 25px);\\n min-height: 340px; }\\n\\nmat-dialog-content {\\n flex-grow: 1;\\n padding-top: 20px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvY29tbXVuaWNhdGlvbi1wb3B1cC9EOlxcV29ya3NwYWNlc1xcS29ydG9qdXJhXFxDbGllbnRBcHAvc3JjXFxhcHBcXHNoYXJlZFxcY29tcG9uZW50c1xcY29tbXVuaWNhdGlvbi1wb3B1cFxcY29tbXVuaWNhdGlvbi1wb3B1cC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIscUJBQXFCLEVBQUE7O0FBR3ZCO0VBQ0UsZUFBZSxFQUFBOztBQUdqQjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsOEJBQThCO0VBQzlCLHlCQUF5QjtFQUN6QixpQkFBaUIsRUFBQTs7QUFHbkI7RUFJRSxZQUFZO0VBQ1osaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvY29tcG9uZW50cy9jb21tdW5pY2F0aW9uLXBvcHVwL2NvbW11bmljYXRpb24tcG9wdXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG59XG5cbi5jbG9zZS1idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMjVweCk7XG4gIG1pbi1oZWlnaHQ6IDM0MHB4O1xufVxuXG5tYXQtZGlhbG9nLWNvbnRlbnQge1xuICAvLyBtYXgtaGVpZ2h0OiB1bnNldDtcbiAgLy8gbWFyZ2luLXRvcDogMTVweDtcbiAgLy8gbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgZmxleC1ncm93OiAxO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cbiJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { CommunicationModel } from '@models/communication-model';\nimport { LocalizationService } from '@services/localization.service';\n\n@Component({\n selector: 'app-communication-popup',\n templateUrl: './communication-popup.component.html',\n styleUrls: ['./communication-popup.component.scss']\n})\n\n// NOTE: Communications are called Announcements in the UI.\nexport class CommunicationPopupComponent implements OnInit {\n communication: CommunicationModel;\n\n constructor(\n public dialog: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public popupData: any,\n public localeService: LocalizationService\n ) {\n dialog.disableClose = true;\n }\n\n ngOnInit() {\n this.communication = this.popupData.communication;\n }\n}\n","module.exports = \"

\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-contact-us-popup',\n templateUrl: './contact-us-popup.component.html'\n})\nexport class ContactUsPopupComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","module.exports = \"\\n\\n \\n \\n\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2xhbmd1YWdlLXRvZ2dsZS9sYW5ndWFnZS10b2dnbGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LocalizationService } from '@services/localization.service';\n\n@Component({\n selector: 'app-language-toggle',\n templateUrl: './language-toggle.component.html',\n styleUrls: ['./language-toggle.component.scss']\n})\nexport class LanguageToggleComponent implements OnInit {\n @Input() colorName: string;\n @Input() className: string;\n @Output() change: EventEmitter = new EventEmitter();\n\n public localeText: string;\n public locale: string;\n\n constructor(\n public localizationService: LocalizationService,\n private translateService: TranslateService\n ) {\n this.colorName = '';\n this.className = '';\n }\n\n ngOnInit() {\n this.locale = this.localizationService.getLocale();\n this.translateService\n .get(`Locale.${this.locale}`)\n .subscribe((res: string) => {\n this.localeText = res;\n });\n }\n\n setLocale(locale: string) {\n this.locale = locale;\n this.localizationService.setLocale(locale);\n this.translateService.get(`Locale.${locale}`).subscribe((res: string) => {\n this.localeText = res;\n });\n this.change.emit(locale);\n }\n}\n","module.exports = \"\\r\\n {{ siteConfig.contactUsEmail }}\\r\\n

\\r\\n {{ 'Popup.Or' | translate }}
\\r\\n {{ siteConfig.contactUsPhone }}
\\r\\n

\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3BvcHVwLXN1cHBvcnQvcG9wdXAtc3VwcG9ydC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { SiteConfigModel } from '@models/site-config-model';\r\nimport { SiteConfigService } from '@services/siteConfig.service';\r\n\r\n@Component({\r\n selector: 'app-popup-support',\r\n templateUrl: './popup-support.component.html',\r\n styleUrls: ['./popup-support.component.scss']\r\n})\r\nexport class PopupSupportComponent implements OnInit {\r\n siteConfig: SiteConfigModel;\r\n constructor(public siteConfigService: SiteConfigService) {}\r\n\r\n ngOnInit() {\r\n this.siteConfigService.getSiteConfig().subscribe(siteConfig => {\r\n this.siteConfig = siteConfig;\r\n });\r\n }\r\n}\r\n","module.exports = \"
\\n
\\n
\\n

Conditions d'utilisation

\\n

\\n Veuillez lire l'intégralité de cette présente politique. En créant votre\\n compte sur la plateforme d’évaluation de\\n KortoJura inc., vous confirmez votre acceptation de\\n cette politique de confidentialité. Il s'agit d'un contrat entre vous et\\n KortoJura inc. appliqué à votre accès à ses produits et\\n services ainsi qu’à leur utilisation. Si vous n'acceptez pas cette\\n politique, vous ne devez pas compléter la création de votre compte sur\\n cette plateforme.\\n

\\n
1. Propriété du contenu
\\n

\\n Tous les documents affichés ou accessibles sur la plateforme de\\n KortoJura, y compris, notamment, les textes, les\\n graphiques, les vidéos, les photographies, les extraits sonores, les\\n marques de commerce, les logos et d'autres objets (collectivement, le «\\n contenu »), y compris le contenu créé avec les services ou soumis aux\\n services par vous ou par l'intermédiaire de votre compte, sont protégés\\n par les lois sur le droit d'auteur et sur les marques de commerce et\\n appartiennent à KortoJura inc. et à ses concédants de\\n licence ou à ses représentants autorisés à titre de fournisseur du\\n contenu. Sous réserve des droits accordés par la présente licence\\n restreinte, toute utilisation du contenu, y compris la modification, la\\n transmission, la présentation, la distribution, la publication ou toute\\n autre exploitation de la plateforme ou de son contenu, en totalité ou en\\n partie, sans l'autorisation préalable et écrite de\\n KortoJura est strictement interdite.\\n

\\n
2. Cueillette et utilisation de l’information
\\n

\\n KortoJura demande seulement les informations nécessaires à la\\n réalisation de sa mission, plus particulièrement pour les raisons\\n suivantes et dans les contextes suivants :\\n

\\n
    \\n
  • \\n Votre inscription à la plateforme (création de compte): Nom, prénom, courriel et mot de passe\\n
      \\n
    • \\n Vous seul pouvez accéder à votre compte à l’exception d’une tierce\\n partie que vous aurez désignée, ainsi que\\n KortoJura, pour des raisons administratives\\n seulement.\\n
    • \\n
    \\n
  • \\n
  • \\n Votre profil candidat : Titre, adresse complète,\\n langue maternelle, langue officielle de communication préférée et\\n profession ou occupation\\n
      \\n
    • \\n Ceci est pour personnaliser votre expérience sur la plateforme\\n d’évaluation (accessibilité à des tests pour la profession ou\\n l’occupation désignée) et pour la gestion administrative de votre\\n compte (facturation, etc.).\\n
    • \\n
    \\n
  • \\n
  • \\n Votre profil professionnel et linguistique :\\n
      \\n
    • \\n Ces données sont recueillies pour des fins de statistiques,\\n d’évaluation du rendement, d’étude de clientèle et de marketing.\\n
    • \\n
    \\n
  • \\n
\\n

\\n Vous êtes responsable de la gestion de votre compte et de sa mise à\\n jour. Vous convenez donc que l’information associée à votre compte est\\n juste et à jour\\n

\\n

\\n En aucun cas KortoJura ne vendra, échangera ou\\n divulguera votre information ou vos données à une tierce partie sans\\n votre consentement, à moins d’une obligation légale. Vos données\\n demeurent confidentielles.\\n

\\n
3. Protection de l’information
\\n

\\n KortoJura respecte la Loi sur la protection des\\n renseignements personnels et prend les mesures adéquates pour assurer\\n l’intégrité et la confidentialité de votre information.\\n

\\n

\\n La plateforme d’évaluation est hébergée sur un environnement sécurisé\\n derrière https et respecte les recommandations de sécurité des\\n applications web. Les mots de passe sont également protégés et\\n encryptés, et toute connexion à la plateforme exige la création d’un\\n compte.\\n

\\n

\\n Seul le personnel autorisé de KortoJura aura accès à\\n votre information et, ce, seulement pour des fins administratives. Les\\n membres du personnel acceptent, dans le cadre de leurs fonctions, la\\n politique de confidentialité de l’entreprise.\\n

\\n

\\n Votre information est conservée sur la plateforme pour la durée requise\\n par les services offerts et tant que votre compte est ouvert.\\n

\\n

\\n Lorsque le compte d’un utilisateur n’a pas été actif pendant la période\\n d’une année, ce compte sera fermé d’office par KortoJura, sauf\\n indication contraire donnée par l’utilisateur dans un délai de dix (10)\\n jours suivant l’envoi à cet utilisateur d’un avis à cet effet par\\n KortoJura.\\n

\\n

\\n Ainsi, à moins d’obligation légale contraire, KortoJura supprimera et\\n effacera toute information et documents d’information relatifs au compte\\n de l’utilisateur sur fermeture de ce dernier\\n

\\n

\\n Toute information collectée dans le cadre d’analyses statistiques peut\\n être conservée pendant une période indéterminée. Cependant,\\n l’utilisateur comprend et accepte que de tels rapports ne doivent en\\n aucun cas permettre de l’identifier ou d’avoir accès à d’autres\\n informations ne le concernant pas personnellement.\\n

\\n

\\n KortoJura se réserve le droit de modifier ou mettre à\\n jour cette politique sans préavis. La dernière date de modification de\\n ce document est disponible en tout temps.\\n

\\n
\\n
\\n

Privacy Policy

\\n

\\n Please read this policy in its entirety. By creating your account on\\n KortoJura's evaluation platform, you confirm your\\n acceptance of this privacy policy. This is a contract between you and\\n KortoJura Inc. that applies to your access to and use\\n of its products and services. If you do not agree to this policy, you\\n should not complete the creation of your account on this platform.\\n

\\n
1. Ownership of Content
\\n

\\n All documents displayed or accessible on\\n KortoJura's platform, including, without limitation,\\n text, graphics, videos, photographs, sound clips, trademarks, logos and\\n other objects (collectively, the \\\"Content\\\"), including content created\\n with the services or submitted to the services by you or through your\\n account, are protected by copyright and trademark laws and are owned by\\n KortoJura Inc. and its licensors or authorized\\n representatives as the content provider. Subject to the rights granted\\n by this limited license, any use of the content, including the\\n modification, transmission, presentation, distribution, publication or\\n other exploitation of the platform or its content, in whole or in part,\\n without the prior written consent of KortoJura is\\n strictly prohibited.\\n

\\n
\\n
\\n
2. Collection and Use of Information
\\n

\\n KortoJura only requests the information necessary to\\n carry out its mission, more particularly for the following reasons and\\n in the following contexts:\\n

\\n
    \\n
  • \\n Your registration to the platform (account creation):\\n Last name, first name, email and password\\n
      \\n
    • \\n Only you can access your account except for a third party you have\\n designated, as well as KortoJura, for\\n administrative purposes only\\n
    • \\n
    \\n
  • \\n
  • \\n Your candidate profile: Title, full address, mother\\n tongue, preferred official language of communication and profession or\\n occupation\\n
      \\n
    • \\n This is to personalize your experience on the evaluation platform\\n (accessibility to tests for the designated profession or\\n occupation) and for the administrative management of your account\\n (billing, etc.).\\n
    • \\n
    \\n
  • \\n
  • \\n Your professional and linguistic profile:\\n
      \\n
    • \\n This data is collected for statistical, performance evaluation,\\n customer research and marketing purposes.\\n
    • \\n
    \\n
  • \\n
\\n

\\n You are responsible for managing your account and updating it. You\\n therefore agree that the information associated with your account is\\n accurate and up to date.\\n

\\n

\\n Under no circumstances will KortoJura sell, trade or\\n disclose your information or data to a third party without your consent,\\n unless required by law. Your data remains confidential.\\n

\\n
3. Protection of Information
\\n

\\n KortoJura respects the Privacy Act and takes\\n appropriate measures to ensure the integrity and confidentiality of your\\n information.\\n

\\n

\\n The evaluation platform is hosted on a secure environment behind https\\n and complies with web application security recommendations. Passwords\\n are also protected and encrypted, and any connection to the platform\\n requires the creation of an account.\\n

\\n

\\n Only authorized KortoJura staff will have access to\\n your information and only for administrative purposes. Employees accept,\\n as part of their duties, the company's privacy policy.\\n

\\n

\\n Your information is kept on the platform for the duration required by\\n the services offered and as long as your account is open.\\n

\\n

\\n When a user's account has not been active for the one-year period, it\\n will be automatically closed by KortoJura, unless\\n otherwise specified by the user within ten (10) days of\\n KortoJura sending a notice to this effect to that user\\n

\\n

\\n Thus, unless otherwise required by law, KortoJura will\\n delete and erase all information and information documents relating to\\n the user's account upon the user's closure.\\n

\\n

\\n Any information collected in the context of statistical analyses may be\\n kept for an indefinite period of time. However, the user understands and\\n accepts that such reports must under no circumstances allow him/her to\\n be identified or to have access to other information that does not\\n concern him/her personally.\\n

\\n

\\n KortoJura reserves the right to change or update this\\n policy without notice. The latest modification date of this document is\\n available at any time.\\n

\\n
\\n
\\n
\\n
\\n \\n
\\n\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-privacy-popup',\n templateUrl: './privacy-popup.component.html'\n})\nexport class PrivacyPopupComponent {\n constructor() {}\n}\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Conditions d'utilisation

\\r\\n

\\r\\n Veuillez lire l'intégralité du présent accord. En créant votre compte\\r\\n sur la plateforme d’évaluation de KortoJura inc., vous\\r\\n confirmez votre acceptation de ces conditions. Il s'agit d'un contrat\\r\\n entre vous et KortoJura inc. relatif à votre accès à\\r\\n ses produits et services ainsi qu’à leur utilisation. Si vous n'acceptez\\r\\n pas ces conditions, vous ne devez pas finaliser la création de votre\\r\\n compte sur cette plateforme.\\r\\n

\\r\\n

\\r\\n Pour accepter ces conditions et pour créer un compte, vous devez être un\\r\\n adulte ayant atteint l'âge légal de la majorité selon la province\\r\\n canadienne où votre compte a été créé. Vous êtes responsable, sur le\\r\\n plan juridique et financier, de toutes les activités sur votre compte, y\\r\\n compris les activités d'enfants et de quiconque a accès à votre compte.\\r\\n

\\r\\n
1. Accès aux services
\\r\\n

\\r\\n KortoJura offre un service personnel, non-transférable,\\r\\n non-exclusif, et limité par un contrat d’utilisation et d’accès à la\\r\\n plateforme de service d’évaluation, tel qu’indiqué par ces conditions et\\r\\n cet accord\\r\\n

\\r\\n Outre ce qui est permis par cet accord ou par\\r\\n KortoJura par l’entremise d’une communication écrite\\r\\n officielle, ce contrat ne permet à quiconque de :\\r\\n
    \\r\\n
  • \\r\\n vendre, transférer, assigner, distribuer, ou exploiter d’une façon\\r\\n commerciale quelconque les services ou les contenus de la plateforme ;\\r\\n
  • \\r\\n
  • \\r\\n modifier ou copier les services ou les contenus de la plateforme ;\\r\\n
  • \\r\\n
  • \\r\\n accéder aux services et contenus de la plateforme dans le but de créer\\r\\n des services ou des contenus similaires ou compétitifs à ceux de\\r\\n KortoJura.\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
2. Compte et sécurité
\\r\\n

\\r\\n Pour utiliser les services offerts sur la plateforme d’évaluation, vous\\r\\n serez amené à vous créer un compte utilisateur, à nous fournir un nom\\r\\n d’utilisateur (adresse courriel), un mot de passe et certaines autres\\r\\n informations vous concernant, tel qu’indiqué dans la Politique de\\r\\n confidentialité.\\r\\n

\\r\\n

\\r\\n Vous êtes seul responsable des informations associées à votre compte et\\r\\n de tout ce qui s’y déroule. Vous devez maintenir la sécurité de votre\\r\\n compte et informer promptement KortoJura si vous\\r\\n découvrez ou soupçonnez qu’une personne a accédé à votre compte sans\\r\\n votre permission. Nous vous recommandons de créer un mot de passe\\r\\n robuste qui sera uniquement utilisé pour accéder à la plateforme\\r\\n d’évaluation.\\r\\n

\\r\\n

\\r\\n Il est formellement interdit de vendre ou transférer votre compte sans\\r\\n autorisation écrite officielle par KortoJura.\\r\\n

\\r\\n

\\r\\n KortoJura se réserve le droit de modifier, suspendre ou\\r\\n interrompre ses services (en totalité ou en partie) à tout moment, avec\\r\\n ou sans préavis. Toute version future, mise à jour ou autre ajout à la\\r\\n fonctionnalité des services de la plateforme d’évaluation sera soumis\\r\\n aux présentes conditions, qui peuvent être mises à jour sans préavis. La\\r\\n dernière date de modification de ce document est disponible en tout\\r\\n temps.\\r\\n

\\r\\n

\\r\\n Ainsi, vous convenez que KortoJura a ne sera pas tenu\\r\\n responsable de toute modification, suspension ou interruption de ses\\r\\n services ou de toute partie de ceux-ci.\\r\\n

\\r\\n
\\r\\n
\\r\\n

Terms and Conditions

\\r\\n

\\r\\n Please read this agreement in its entirety. By creating your account on\\r\\n KortoJura Inc.’s evaluation platform, you confirm your\\r\\n acceptance of these conditions. This is a contract between you and\\r\\n KortoJura Inc.relating to your access to and use of its\\r\\n products and services. If you do not accept these conditions, you should\\r\\n not finalize the creation of your account on this platform.\\r\\n

\\r\\n

\\r\\n To accept these terms and conditions and to create an account, you must\\r\\n be an adult of legal age of majority in the Canadian province in which\\r\\n your account was created. You are legally and financially responsible\\r\\n for all activities on your account, including the activities of children\\r\\n and anyone else who has access to your account.\\r\\n

\\r\\n
\\r\\n\\r\\n
1. Access to Services
\\r\\n

\\r\\n KortoJura offers a personal, non-transferable,\\r\\n non-exclusive service, and limited by a contract of use and access to\\r\\n the evaluation service platform, as indicated by these terms and\\r\\n conditions and this agreement.\\r\\n

\\r\\n In addition to what is permitted by this agreement or by\\r\\n KortoJura through formal written communication, this\\r\\n contract does not allow anyone to:\\r\\n
    \\r\\n
  • \\r\\n sell, transfer, assign, assign, distribute, or otherwise commercially\\r\\n exploit the services or content of the platform;\\r\\n
  • \\r\\n
  • modify or copy the services or contents of the platform;
  • \\r\\n
  • \\r\\n access the services and content of the platform in order to create\\r\\n services or content similar or competitive to those of\\r\\n KortoJura.\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
2. Account and Security
\\r\\n

\\r\\n To use the services offered on the evaluation platform, you will need to\\r\\n create a user account, provide us with a username (email address),\\r\\n password and certain other information about yourself, as indicated in\\r\\n the Privacy Policy.\\r\\n

\\r\\n

\\r\\n You are solely responsible for the information associated with your\\r\\n account and everything that happens on it. You must maintain the\\r\\n security of your account and promptly notify\\r\\n KortoJura if you discover or suspect that someone has\\r\\n accessed your account without your permission. We recommend that you\\r\\n create a strong password that will only be used to access the evaluation\\r\\n platform.\\r\\n

\\r\\n

\\r\\n It is strictly forbidden to sell or transfer your account without\\r\\n official written authorization by KortoJura.\\r\\n

\\r\\n

\\r\\n KortoJura reserves the right to modify, suspend or\\r\\n interrupt its services (in whole or in part) at any time, with or\\r\\n without notice. Any future version, update or other addition to the\\r\\n functionality of the evaluation platform services will be subject to\\r\\n these terms and conditions, which may be updated without notice. The\\r\\n latest modification date of this document is available at any time.\\r\\n

\\r\\n

\\r\\n Accordingly, you agree that KortoJura shall not be\\r\\n liable for any modification, suspension or interruption of its services\\r\\n or any part thereof.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-terms-popup',\n templateUrl: './terms-popup.component.html'\n})\nexport class TermsPopupComponent {\n constructor() {}\n}\n","module.exports = \"\\n\\n
\\n \\n \\n {{ 'RegisterCertification.ScheduleTests.ChooseTestDate' | translate }}\\n \\n \\n \\n \\n\\n \\n
\\n {{ 'RegisterCertification.ScheduleTests.CurrentlyScheduledTime' | translate }}\\n {{ selectedDateTime.startTime | kortoDateTime }}\\n
\\n\\n
\\n refresh\\n
\\n
\\n\\n\\n
\\n \\n \\n {{ time.startTime | kortoTime: 'noTz' }}\\n
\\n\\n\\n\\n
\\n {{ 'RegisterCertification.ScheduleTests.NoTimes' | translate }}\\n
\\n\\n\\n\"","module.exports = \".times-container {\\n display: flex;\\n flex-wrap: wrap;\\n gap: 5px; }\\n .times-container div {\\n padding: 10px;\\n cursor: pointer;\\n width: 100px;\\n text-align: center;\\n border: solid 1px #ddd; }\\n .disabled {\\n opacity: 0.4;\\n cursor: default; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvdGVzdC1kYXRlLXRpbWUtc2VsZWN0b3IvRDpcXFdvcmtzcGFjZXNcXEtvcnRvanVyYVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxzaGFyZWRcXGNvbXBvbmVudHNcXHRlc3QtZGF0ZS10aW1lLXNlbGVjdG9yXFx0ZXN0LWRhdGUtdGltZS1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2YsUUFBUSxFQUFBO0VBSFY7SUFNSSxhQUFhO0lBQ2IsZUFBZTtJQUNmLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsc0JBQXNCLEVBQUE7RUFJMUI7RUFDRSxZQUFZO0VBQ1osZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvdGVzdC1kYXRlLXRpbWUtc2VsZWN0b3IvdGVzdC1kYXRlLXRpbWUtc2VsZWN0b3IuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGltZXMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDVweDtcblxuICBkaXYge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2RkZDtcbiAgfVxufVxuXG4uZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbiJdfQ== */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TestScheduleEvaluatorModel } from '@models/test-schedule-evaluator-model';\nimport { EvaluatorService } from '@services/evaluator.service';\nimport { NotificationService } from '@services/notification.service';\nimport { addYears } from 'date-fns';\nimport { Moment } from 'moment';\n\n@Component({\n selector: 'app-test-date-time-selector',\n templateUrl: './test-date-time-selector.component.html',\n styleUrls: ['./test-date-time-selector.component.scss']\n})\nexport class TestDateTimeSelectorComponent implements OnInit {\n @Input() userTestId: string;\n @Input() startDate: Date;\n @Input() evaluatorsRequired: number;\n @Input() durationMinutes: number;\n @Output() initialSelection: EventEmitter = new EventEmitter();\n @Output() selectionChanged: EventEmitter = new EventEmitter();\n\n minDate = new Date();\n maxDate = addYears(new Date(), 1);\n availableDates: Date[] = [];\n\n availableStartTimes: TestScheduleEvaluatorModel[] = [];\n selectedDateTime: TestScheduleEvaluatorModel = null;\n testDurationMs: number = 0;\n isLoading = true;\n lastSelectedDate: Date;\n\n constructor(private evaluatorService: EvaluatorService, private notificationService: NotificationService) {\n this.dateFilter = this.dateFilter.bind(this);\n }\n\n ngOnInit() {\n this.getAllAvailableDays(this.userTestId);\n }\n\n getAllAvailableDays(userTestId: string) {\n this.isLoading = true;\n this.evaluatorService\n .getAvailableDays(userTestId, this.evaluatorsRequired, this.durationMinutes)\n .subscribe(dates => {\n // dates is an array of available dates, but the first item will be the currently selected date or null if there is none.\n const currentlySelectedDate = dates[0];\n this.availableDates = dates.slice(1);\n this.isLoading = false;\n\n // Constrain the date picker to what's available.\n this.availableDates.sort((a, b) => (a.getTime() < b.getTime() ? -1 : 1));\n this.minDate = this.availableDates[0];\n this.maxDate = this.availableDates[this.availableDates.length - 1];\n\n if (!this.startDate) this.startDate = currentlySelectedDate || this.minDate;\n if (this.startDate) this.showStartTimes(this.userTestId, new Date(this.startDate.setHours(0, 0, 0, 0)));\n\n // If there is a selected date let the parent component know about it.\n if (currentlySelectedDate) this.initialSelection.emit(currentlySelectedDate);\n });\n }\n\n dateFilter(d: Moment | null): boolean {\n if (!d) return true;\n const date = d.local(true).toDate();\n return this.availableDates.map(x => x.getTime()).includes(date.getTime());\n }\n\n dateSelectionChanged(testId: string, date: Moment) {\n this.showStartTimes(testId, date.utc().toDate());\n }\n\n showStartTimes(testId: string, date: Date = this.lastSelectedDate) {\n if (!date) return;\n this.lastSelectedDate = date;\n // Get list of possible start times\n this.isLoading = true;\n this.evaluatorService\n .getTestScheduleOptionsForDay(testId, date, this.evaluatorsRequired, this.durationMinutes)\n .subscribe(results => {\n this.isLoading = false;\n this.availableStartTimes = results.startTimesWithEvaluators\n .filter(x => x.startTime.getTime() > Date.now())\n .sort((a, b) => (a.startTime.getTime() < b.startTime.getTime() ? -1 : 1));\n\n // Is there a time selected already?\n if (results.scheduledStartTime)\n this.selectedDateTime = results.startTimesWithEvaluators.find(\n x => x.startTime.getTime() === results.scheduledStartTime.getTime()\n );\n this.testDurationMs = results.testDurationMinutes * 60 * 1000;\n });\n }\n\n /**\n * A time was selected. Toggle the selection and emit it.\n * @param testId The id of the user test\n * @param model the time that was selected.\n */\n selectDateTime(model: TestScheduleEvaluatorModel) {\n if (this.selectedDateTime && this.selectedDateTime.startTime.getTime() === model.startTime.getTime())\n this.selectedDateTime = null;\n else this.selectedDateTime = model;\n\n // Return the value to the parent component.\n this.selectionChanged.emit(this.selectedDateTime);\n }\n}\n","import {\n Directive,\n AfterContentInit,\n AfterViewInit,\n ElementRef,\n Inject\n} from '@angular/core';\n\n@Directive({\n selector: '[appAutoFocus]'\n})\nexport class AutoFocusDirective implements AfterContentInit {\n constructor(private element: ElementRef) {\n console.log('AutoFocusDirective constructor');\n }\n\n ngAfterContentInit(): void {\n console.log('AutoFocusDirective ngAfterViewInit');\n this.element.nativeElement.focus();\n }\n}\n","import { Validator, NG_VALIDATORS, AbstractControl } from '@angular/forms';\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[appConfirmEqualValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: ConfirmEqualValidationDirective,\n multi: true\n }\n ]\n})\nexport class ConfirmEqualValidationDirective implements Validator {\n @Input() appConfirmEqualValidator: string;\n validate(control: AbstractControl): { [key: string]: any } | null {\n if (!control.parent) {\n return null;\n }\n const controlToCompare = control.parent.get(this.appConfirmEqualValidator);\n\n if (controlToCompare && controlToCompare.value !== control.value) {\n return { notEqual: { valid: false } };\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n ViewContainerRef,\n TemplateRef\n} from '@angular/core';\nimport { AuthService } from '@services/auth.service';\n\n@Directive({\n selector: '[hasRole]'\n})\nexport class HasRoleDirective implements OnInit {\n // tslint:disable-next-line: no-input-rename\n @Input('hasRole') roles: string | Array;\n // tslint:disable-next-line: no-input-rename\n @Input('onHasRole') authorizedStyle: string;\n // tslint:disable-next-line: no-input-rename\n @Input('onNotHasRole') unauthorizedStyle: string;\n\n isVisible = false;\n\n constructor(\n private _viewContainer: ViewContainerRef,\n private _templateRef: TemplateRef,\n private authService: AuthService\n ) {}\n\n ngOnInit() {\n this.roles = Array.isArray(this.roles) ? this.roles : [this.roles];\n if (!this.roles) {\n this._viewContainer.clear();\n }\n\n if (this.authService.roleMatch(this.roles) && !this.isVisible) {\n this.isVisible = true;\n this._viewContainer.createEmbeddedView(this._templateRef);\n } else {\n this.isVisible = false;\n this._viewContainer.clear();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n AfterViewInit,\n OnDestroy,\n Renderer2\n} from '@angular/core';\nimport {\n Router,\n Event as RouterEvent,\n NavigationStart,\n NavigationEnd,\n NavigationCancel,\n NavigationError\n} from '@angular/router';\nimport { LayoutService } from '@services/layout.service';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[appPreloader]'\n})\nexport class PreloaderDirective implements AfterViewInit, OnDestroy {\n subscription: Subscription;\n\n constructor(\n private el: ElementRef,\n router: Router,\n layoutService: LayoutService,\n private renderer: Renderer2\n ) {\n console.log('PreloaderDirective constructor hit!');\n\n router.events.subscribe((event: RouterEvent) => {\n this.navigationInterceptor(event);\n });\n\n this.subscription = layoutService.preloaderState$.subscribe(state => {\n this.updatePreloader(state);\n });\n }\n\n ngAfterViewInit() {}\n\n active() {\n if (this.el.nativeElement) {\n this.renderer.removeAttribute(this.el.nativeElement, 'hidden');\n }\n }\n\n hide() {\n if (this.el.nativeElement) {\n this.renderer.setAttribute(this.el.nativeElement, 'hidden', 'hidden');\n }\n }\n\n // Shows and hides the loading spinner during RouterEvent changes\n navigationInterceptor(event: RouterEvent): void {\n if (event instanceof NavigationStart) {\n this.active();\n }\n if (event instanceof NavigationEnd) {\n this.hide();\n }\n\n // Set loading state to false in both of the below events to hide the spinner in case a request fails\n if (event instanceof NavigationCancel) {\n this.hide();\n }\n if (event instanceof NavigationError) {\n this.hide();\n }\n }\n\n //\n updatePreloader(state) {\n // console.log('change state')\n if (state === 'active') {\n this.active();\n }\n\n if (state === 'hide') {\n this.hide();\n }\n }\n\n ngOnDestroy() {\n // prevent memory leak when component destroyed\n this.subscription.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { CanDeactivate, Router, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '@services/auth.service';\n\n@Injectable()\nexport class PreventLeavingConfirm implements CanDeactivate {\n constructor(\n private auth: AuthService,\n private readonly router: Router,\n private readonly location: Location\n ) {}\n\n canDeactivate(\n component: CanPreventLeaving,\n currentRoute: ActivatedRouteSnapshot\n ) {\n if (!this.auth.loggedIn()) {\n return true;\n }\n if (!component.canLeave()) {\n const confirmation = confirm(component.leaveMessage);\n if (!confirmation) {\n const currentUrlTree = this.router.createUrlTree([], currentRoute);\n const currentUrl = currentUrlTree.toString();\n this.location.go(currentUrl);\n }\n\n return confirmation;\n }\n return true;\n }\n}\n\n@Injectable()\nexport class PreventLeavingAlert implements CanDeactivate {\n constructor(private auth: AuthService) {}\n\n canDeactivate(component: CanPreventLeaving) {\n if (!this.auth.loggedIn()) {\n return true;\n }\n if (!component.canLeave()) {\n alert(component.leaveMessage);\n return false;\n }\n return true;\n }\n}\n\nexport interface CanPreventLeaving {\n readonly leaveMessage: string;\n canLeave(): boolean;\n}\n","module.exports = \"\\r\\n {{ 'AuthErrors.EnterValue' | translate }}\\r\\n\\r\\n\\r\\n {{ 'AuthErrors.InvalidEmail' | translate }}\\r\\n\\r\\n\\r\\n {{ 'AuthErrors.EmailExists' | translate }}\\r\\n\\r\\n\\r\\n {{ 'AuthErrors.Password8Characters' | translate }}\\r\\n\\r\\n\\r\\n {{ 'AuthErrors.PasswordNotStrong' | translate }}\\r\\n\\r\\n\\r\\n {{ 'AuthErrors.PostalCodeInvalid' | translate }}\\r\\n\\r\\n\\r\\n {{ 'AuthErrors.PasswordsDontMatch' | translate }}\\r\\n\\r\\n\\r\\n {{ 'AdminErrors.Date.' + error.control | translate }}\\r\\n\\r\\n\\r\\n {{ 'AdminErrors.OneChecked' | translate }}\\r\\n\\r\\n\\r\\n {{ 'AdminErrors.Max' | translate : control.getError('max') }}\\r\\n\\r\\n\\r\\n {{ 'AdminErrors.Min' | translate : control.getError('min') }}\\r\\n\\r\\n\\r\\n {{ 'AdminErrors.PositiveWholeNumber' | translate : control.getError('positiveWholeNumber') }}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9rai1jb250cm9scy9rai1lcnJvci9rai1lcnJvci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: '[kj-error]',\r\n templateUrl: './kj-error.component.html',\r\n styleUrls: ['./kj-error.component.scss']\r\n})\r\nexport class KjErrorComponent {\r\n @Input() control: FormControl;\r\n}\r\n","module.exports = \"\\n \\n\\n \\n {{\\n iconName\\n }}\\n\\n \\n\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9rai1jb250cm9scy9rai1pbnB1dC9rai1pbnB1dC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { FormGroup, ControlContainer, FormControl } from '@angular/forms';\n\n@Component({\n selector: 'kj-input',\n templateUrl: './kj-input.component.html',\n styleUrls: ['./kj-input.component.scss']\n})\nexport class KJInputComponent implements OnInit {\n public form: FormGroup;\n public control: FormControl;\n @Input() controlName: string;\n @Input() name: string;\n @Input() iconName: string;\n @Input() placeholder: string;\n @Input() type: string;\n @Input() passwordMatchDirective = false;\n @Input() autocomplete: string;\n\n public loading: boolean;\n\n constructor(private controlContainer: ControlContainer) {}\n\n ngOnInit() {\n this.form = this.controlContainer.control;\n this.control = this.form.get(this.controlName);\n }\n}\n","module.exports = \"\\n\\n {{ label }}\\n \\n \\n {{ formatTime(time) }}\\n \\n \\n \\n \\n {{ 'Evaluators.Errors.startsInThePast' | translate }}\\n \\n \\n\\n\"","module.exports = \"mat-form-field {\\n width: 100%;\\n padding: 5px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2tqLWNvbnRyb2xzL2tqLXRpbWUtc2VsZWN0b3IvRDpcXFdvcmtzcGFjZXNcXEtvcnRvanVyYVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxzaGFyZWRcXGtqLWNvbnRyb2xzXFxrai10aW1lLXNlbGVjdG9yXFxrai10aW1lLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsV0FBVztFQUNYLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9rai1jb250cm9scy9rai10aW1lLXNlbGVjdG9yL2tqLXRpbWUtc2VsZWN0b3IuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbm1hdC1mb3JtLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuIl19 */\"","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { ControlContainer, FormBuilder, FormControl, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'kj-time-selector',\n templateUrl: './kj-time-selector.component.html',\n styleUrls: ['./kj-time-selector.component.scss']\n})\nexport class KjTimeSelectorComponent implements OnInit, OnChanges {\n // @Input() form: FormGroup;\n // @Input() controlName: string;\n @Input() control: FormControl;\n @Input() label: string;\n\n // Start and end time are in minutes.\n @Input() startTime = 0;\n @Input() endTime = 23 * 60 + 59;\n @Input() timeInterval = 15;\n\n public times: number[] = [];\n public firstSelected;\n\n constructor(private formBuilder: FormBuilder) {\n this.updateTimeOptions()\n\n // It'd be nice if the select box was scrolled down to noon when it opened, so users would not have to scroll as far.\n // Not sure how to do that.\n // this.firstSelected = this.times[Math.round(this.times.length / 2)]\n // console.warn(this.firstSelected)\n }\n\n /**\n * Make list of times (in minutes) for time select box\n */\n private updateTimeOptions() {\n this.times = [];\n for (let minute = this.startTime; minute < this.endTime; minute += this.timeInterval) {\n this.times.push(minute);\n }\n }\n\n ngOnInit() {\n this.control.setValue(this.roundToInterval(this.control.value));\n }\n\n ngOnChanges() {\n this.updateTimeOptions();\n }\n\n public get timeInMinutes(): number {\n return this.control.value;\n }\n\n /**\n * Format the time in minutes to hour:minute am or pm.\n * @param inputMinutes Minutes since midnight.\n * @returns Formatted time for display in UI.\n */\n formatTime(inputMinutes: number) {\n let hour = Math.floor(inputMinutes / 60);\n let minute = (inputMinutes - hour * 60) % 60;\n let ampm = hour < 12 ? 'am' : 'pm';\n hour = hour > 12 ? hour - 12 : hour < 1 ? 12 : hour;\n return `${hour}:${minute < 10 ? '0' : ''}${minute} ${ampm}`;\n }\n\n /**\n * Round the time (in minutes) to the nearest interval.\n * @param minutes The value (in minutes) that needs adjusting.\n * @returns\n */\n roundToInterval(minutes: number) {\n // Get the minutes since last nearest interval\n const diff = minutes % this.timeInterval;\n // Move value to the nearest\n minutes = diff < this.timeInterval / 2 ? minutes - diff : minutes + (this.timeInterval - diff);\n // Make sure we're still in the range\n minutes = minutes < this.startTime ? this.startTime : minutes;\n minutes = minutes > this.endTime ? this.endTime : minutes;\n return minutes;\n }\n}\n","import { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { Directive } from '@angular/core';\r\nimport { isMoment } from 'moment';\r\n\r\n@Directive({\r\n selector: '[minDate]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: KjValidatorsDirective,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class KjValidatorsDirective implements Validator {\r\n validate(control: AbstractControl): { [key: string]: any } | null {\r\n return KjValidators.futureDateValidator(control);\r\n }\r\n}\r\n\r\nexport class KjValidators {\r\n /**\r\n * Test whether the control's value is a positive whole number\r\n * @param control The control to test\r\n * @returns an error if the value of the control is not numeric\r\n */\r\n static positiveWholeNumberValidator(control: AbstractControl): ValidationErrors | null {\r\n if (control.value === null) return null;\r\n if (/^[0-9]*$/.test(control.value)) return null;\r\n return { positiveWholeNumber: { actualValue: control.value } };\r\n }\r\n\r\n /**\r\n * The value of this date control must be in the future.\r\n * @param control The form control\r\n * @returns\r\n */\r\n static futureDateValidator(control: AbstractControl): any | null {\r\n return KjValidators.minDateValidator(new Date())(control);\r\n }\r\n\r\n /**\r\n * The value of this date control must be equal to or larger than minDate.\r\n * @param minDate The smallest allowable date. Default is now.\r\n * @returns\r\n */\r\n static minDateValidator(minDate: Date = new Date()): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n let value: Date = isMoment(control.value) ? control.value.toDate() : control.value;\r\n if (value === null) return null;\r\n if (!(value instanceof Date)) return null;\r\n const isGood = value.getTime() >= minDate.getTime();\r\n return isGood ? null : { minDate: { value, minDate } };\r\n };\r\n }\r\n}\r\n","module.exports = \"

\\r\\n {{ data.titleKey ? (data.titleKey | translate: data.params) : data.titleText }}\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9ub3RpZmljYXRpb24vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\nimport { LocalizationService } from '@services/localization.service';\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss']\n})\nexport class ConfirmDialogComponent implements OnInit {\n defaults: any;\n\n constructor(\n public dialogRef: MatDialogRef,\n private localizationService: LocalizationService,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {}\n\n ngOnInit(): void {\n this.localizationService.translate('Global').subscribe(result => {\n this.defaults = {\n titleText: result.Confirm,\n cancelText: result.Cancel,\n confirmText: result.Confirm\n };\n this.data = Object.assign(this.defaults, this.data);\n });\n }\n}\n","module.exports = \"

Error

\\r\\n
\\r\\n {{ data.message }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9ub3RpZmljYXRpb24vZXJyb3ItZGlhbG9nL2Vycm9yLWRpYWxvZy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\n\n@Component({\n selector: 'app-error-dialog',\n templateUrl: './error-dialog.component.html',\n styleUrls: ['./error-dialog.component.scss']\n})\nexport class ErrorDialogComponent {\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {}\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n}\n","module.exports = \"
\\n {{ item }}\\n error\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9ub3RpZmljYXRpb24vZXJyb3Itc25hY2tiYXIvZXJyb3IuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material';\n\n@Component({\n selector: 'app-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss']\n})\nexport class ErrorComponent {\n constructor(\n public snackBarRef: MatSnackBarRef,\n @Inject(MAT_SNACK_BAR_DATA) public data: any\n ) {}\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9ub3RpZmljYXRpb24vb2stZGlhbG9nL29rLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"

\\n {{ data.titleKey ? (data.titleKey | translate) : data.titleText }}\\n

\\n
\\n {{ data.message || data.messageKey | translate }}\\n
\\n
\\n \\n
\\n\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { LocalizationService } from '@services/localization.service';\n\n@Component({\n selector: 'app-ok-dialog',\n templateUrl: './ok-dialog.component.html',\n styleUrls: ['./ok-dialog.component.css']\n})\nexport class OkDialogComponent implements OnInit {\n defaults: any;\n\n constructor(\n public dialogRef: MatDialogRef,\n private localizationService: LocalizationService,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {}\n\n ngOnInit() {\n this.localizationService.translate('Global').subscribe(result => {\n this.defaults = {\n titleText: result.Confirm,\n okText: result.Confirm\n };\n this.data = Object.assign(this.defaults, this.data);\n });\n }\n}\n","module.exports = \"
\\r\\n    \\r\\n {{ data.message }}\\r\\n {{ data.messageKey | translate }}\\r\\n    \\r\\n \\r\\n done\\r\\n
\\r\\n\"","module.exports = \".centertext {\\n text-align: center; }\\n\\n.rightbutton {\\n float: right; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL25vdGlmaWNhdGlvbi9zdWNjZXNzLXNuYWNrYmFyL0Q6XFxXb3Jrc3BhY2VzXFxLb3J0b2p1cmFcXENsaWVudEFwcC9zcmNcXGFwcFxcc2hhcmVkXFxub3RpZmljYXRpb25cXHN1Y2Nlc3Mtc25hY2tiYXJcXHN1Y2Nlc3MuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvbm90aWZpY2F0aW9uL3N1Y2Nlc3Mtc25hY2tiYXIvc3VjY2Vzcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZW50ZXJ0ZXh0IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5yaWdodGJ1dHRvbiB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcblxyXG4iXX0= */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material';\n\n@Component({\n selector: 'app-success',\n templateUrl: './success.component.html',\n styleUrls: ['./success.component.scss']\n})\nexport class SuccessComponent {\n constructor(\n public snackBarRef: MatSnackBarRef,\n @Inject(MAT_SNACK_BAR_DATA) public data: any\n ) {}\n}\n","import { Pipe, PipeTransform, ChangeDetectorRef } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { map } from 'rxjs/operators';\n\n@Pipe({\n name: 'getTranslation',\n pure: false\n})\nexport class GetTranslationPipe implements PipeTransform {\n translation: string = '';\n constructor(private translateService: TranslateService) {}\n\n transform(value: any, languageCode: string = 'en-CA'): any {\n if (this.translation === '') {\n this.translateService\n .getTranslation(languageCode)\n .pipe(\n map(translations => {\n return this.translateService.getParsedResult(translations, value);\n })\n )\n .subscribe(res => {\n this.translation = res;\n });\n }\n\n return this.translation;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from '@services/localization.service';\n\n@Pipe({\n name: 'kortoDateLong',\n pure: false // Set pure to false so that month/day names will update when the language is changed.\n})\nexport class KortoDateLongPipe extends DatePipe implements PipeTransform {\n constructor(private localService: LocalizationService) {\n super(localService.getLocale());\n }\n transform(value: any, args?: any): any {\n return super.transform(value, 'EEEE MMMM dd, yyyy', null, this.localService.getLocale());\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { getTimezoneAbbreviation } from '@services/date.service';\n\n@Pipe({\n name: 'kortoDateTime'\n})\nexport class KortoDateTimePipe extends DatePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n const zoneAbbr =\n args === 'noTz' ? ' ' : getTimezoneAbbreviation();\n return super.transform(value, `yyyy/MM/dd, h:mm a '${zoneAbbr}'`);\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kortoDate'\n})\nexport class KortoDatePipe extends DatePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n return super.transform(value, 'yyyy/MM/dd');\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kortoTimeShort'\n})\nexport class KortoTimeShortPipe extends DatePipe implements PipeTransform {\n transform(dateValue: any, args?: any): any {\n if (dateValue === undefined) return '';\n const d = super.transform(dateValue, 'h:mm:a').split(':');\n const h = d[0];\n const m = parseInt(d[1]);\n const a = d[2][0].toLowerCase();\n return `${h}${m ? ':' + m.toString().padStart(2, '0') : ''}${a}`;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { getTimezoneAbbreviation } from '@services/date.service';\n\n@Pipe({\n name: 'kortoTime'\n})\nexport class KortoTimePipe extends DatePipe implements PipeTransform {\n transform(dateValue: any, args?: any): any {\n if (dateValue === undefined) return '';\n const zoneAbbr =\n args === 'noTz' ? ' ' : getTimezoneAbbreviation();\n return super.transform(dateValue, `h:mm a '${zoneAbbr}'`);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(value: any, args?: any): any {\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeUrl'\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(value: any, _?: any): any {\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'timeSpan'\n})\nexport class TimeSpanPipe implements PipeTransform {\n transform(seconds: number, args?: any): any {\n return new Date(seconds * 1000).toISOString().substr(11, 8);\n }\n}\n","import {\r\n Pipe,\r\n PipeTransform,\r\n OnDestroy,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tminus',\r\n pure: false\r\n})\r\nexport class TMinusPipe implements PipeTransform, OnDestroy {\r\n private static readonly SECOND = 1000;\r\n private static readonly MINUTE = 60 * TMinusPipe.SECOND;\r\n private static readonly HOUR = 60 * TMinusPipe.MINUTE;\r\n private static readonly DAY = 24 * TMinusPipe.HOUR;\r\n private static readonly PAD = '0000000000';\r\n\r\n private timer: NodeJS.Timeout;\r\n\r\n constructor(private ref: ChangeDetectorRef) {}\r\n\r\n transform(value: any, format: string = 'DAYS', target: Date = null): any {\r\n if (!target) {\r\n target = new Date();\r\n if (!this.timer) {\r\n this.timer = setInterval(() => {\r\n this.ref.markForCheck();\r\n }, 1000);\r\n }\r\n } else if (this.timer) {\r\n clearInterval(this.timer);\r\n this.timer = null;\r\n }\r\n\r\n switch (format.toUpperCase()) {\r\n case 'DAYS':\r\n case 'HOURS':\r\n case 'MINUTES':\r\n case 'SECONDS':\r\n format = format.substr(0, 1).toUpperCase();\r\n break;\r\n }\r\n\r\n const date = new Date(value);\r\n const time = date.getTime() - target.getTime();\r\n const symbols = format.split('\"');\r\n let res = '';\r\n let str = false;\r\n symbols.forEach((s, i) => {\r\n if (str) {\r\n res += s;\r\n } else if (s === '' && i > 0 && i < symbols.length - 1) {\r\n res += '\"';\r\n } else {\r\n res += s.replace(/([DHMS])\\1*/gi, (match, p1) => {\r\n const l = match.length;\r\n switch (p1) {\r\n case 'D':\r\n case 'd':\r\n return this.reduce(time, l, TMinusPipe.DAY);\r\n case 'H':\r\n return this.reduce(time, l, TMinusPipe.HOUR);\r\n case 'M':\r\n return this.reduce(time, l, TMinusPipe.MINUTE);\r\n case 'S':\r\n return this.reduce(time, l, TMinusPipe.SECOND);\r\n case 'h':\r\n return this.reduce(time, l, TMinusPipe.HOUR, TMinusPipe.DAY);\r\n case 'm':\r\n return this.reduce(time, l, TMinusPipe.MINUTE, TMinusPipe.HOUR);\r\n case 's':\r\n return this.reduce(time, l, TMinusPipe.SECOND, TMinusPipe.MINUTE);\r\n default:\r\n return match;\r\n }\r\n });\r\n }\r\n str = !str;\r\n });\r\n return res;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.timer) {\r\n clearInterval(this.timer);\r\n }\r\n }\r\n\r\n private reduce(\r\n number: number,\r\n length: number,\r\n into: number,\r\n exclude: number = 0\r\n ): string {\r\n if (exclude > 0) {\r\n number %= exclude;\r\n }\r\n const res = Math.max(Math.floor(number / into), 0).toString();\r\n if (res.length < length) {\r\n return (TMinusPipe.PAD + res).substr(-length);\r\n }\r\n return res;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n// Material Modules\r\nimport {\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatFormFieldModule\r\n} from '@angular/material';\r\n\r\nimport { PreloaderDirective } from '@directives/preloader.directive';\r\nimport { ConfirmEqualValidationDirective } from '@directives/confirm-equal-validator.directive';\r\nimport { HasRoleDirective } from '@directives/has-role.directive';\r\nimport { TMinusPipe } from '@pipes/tminus.pipe';\r\nimport { ErrorComponent } from './notification/error-snackbar/error.component';\r\nimport { ErrorDialogComponent } from './notification/error-dialog/error-dialog.component';\r\nimport { SuccessComponent } from './notification/success-snackbar/success.component';\r\nimport { ConfirmDialogComponent } from './notification/confirm-dialog/confirm-dialog.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AutoFocusDirective } from '@directives/auto-focus.directive';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { FileUploadModule } from 'ng2-file-upload';\r\nimport { SafeUrlPipe } from '@pipes/safe-url.pipe';\r\nimport { GetTranslationPipe } from '@pipes/gettranslation.pipe';\r\nimport { SafeHtmlPipe } from '@pipes/safe-html.pipe';\r\nimport { KortoDatePipe } from '@pipes/korto-date.pipe';\r\nimport { KortoDateTimePipe } from '@pipes/korto-date-time.pipe';\r\nimport { CommunicationPopupComponent } from '@components/communication-popup/communication-popup.component';\r\nimport { TimeSpanPipe } from '@pipes/time-span.pipe';\r\nimport { OkDialogComponent } from './notification/ok-dialog/ok-dialog.component';\r\nimport { KortoTimePipe } from '@pipes/korto-time.pipe';\r\nimport { KortoDateLongPipe } from '@pipes/korto-date-long.pipe';\r\nimport { KortoTimeShortPipe } from '@pipes/korto-time-short.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n // Directives.\r\n PreloaderDirective,\r\n ConfirmEqualValidationDirective,\r\n HasRoleDirective,\r\n AutoFocusDirective,\r\n // Pipes.\r\n TMinusPipe,\r\n SafeUrlPipe,\r\n SafeHtmlPipe,\r\n GetTranslationPipe,\r\n KortoDatePipe,\r\n KortoDateLongPipe,\r\n KortoDateTimePipe,\r\n KortoTimePipe,\r\n KortoTimeShortPipe,\r\n TimeSpanPipe,\r\n // Notifications\r\n ErrorComponent,\r\n ErrorDialogComponent,\r\n SuccessComponent,\r\n ConfirmDialogComponent,\r\n OkDialogComponent,\r\n CommunicationPopupComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n // Material Modules\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n AngularEditorModule,\r\n FileUploadModule\r\n ],\r\n exports: [\r\n TranslateModule,\r\n // Directives.\r\n PreloaderDirective,\r\n ConfirmEqualValidationDirective,\r\n HasRoleDirective,\r\n AutoFocusDirective,\r\n // Pipes.\r\n TMinusPipe,\r\n SafeUrlPipe,\r\n GetTranslationPipe,\r\n SafeHtmlPipe,\r\n KortoDatePipe,\r\n KortoDateLongPipe,\r\n KortoDateTimePipe,\r\n KortoTimePipe,\r\n KortoTimeShortPipe,\r\n TimeSpanPipe,\r\n // Material Modules\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n AngularEditorModule,\r\n FileUploadModule,\r\n CommunicationPopupComponent\r\n ],\r\n entryComponents: [\r\n ErrorComponent,\r\n SuccessComponent,\r\n ErrorDialogComponent,\r\n ConfirmDialogComponent,\r\n OkDialogComponent,\r\n CommunicationPopupComponent\r\n ]\r\n})\r\nexport class SharedModule {}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
{{ 'PersonalInfo.Title' | translate }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ 'PersonalInfo.PersonTitle' | translate }}\\r\\n \\r\\n \\r\\n {{ title.label }}\\r\\n \\r\\n \\r\\n {{ 'PersonalInfo.TitleRequired' | translate }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n close\\r\\n {{ 'PersonalInfo.TitleRequired' | translate }} \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'PersonalInfo.YearOfBirth' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n {{year}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'PersonalInfo.MotherTongue' | translate }}\\r\\n \\r\\n \\r\\n {{ language.label }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'PersonalInfo.AddressTitle' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'PersonalInfo.Province' | translate }}\\r\\n \\r\\n \\r\\n {{ province.label }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'PersonalInfo.ProvincePostalMismatch' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'PersonalInfo.AdditionalInfoTitle' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'PersonalInfo.LanguageOfCommunication' | translate }}\\r\\n \\r\\n \\r\\n {{ 'Locale.' + language.code | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'PersonalInfo.Profession' | translate }}\\r\\n \\r\\n \\r\\n {{ profession.label }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'PersonalInfo.ProfessionNotListedLink' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n check_box\\r\\n check_box_outline_blank\\r\\n
\\r\\n {{ 'Register.Terms.Prefix' | translate }}\\r\\n \\r\\n {{ 'Register.Terms.Middle' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n {{ 'AuthErrors.MustAgree' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".profession-field {\\n margin-bottom: -5px; }\\n\\n.cursor-pointer {\\n cursor: pointer; }\\n\\n.mat-focused .placeholder {\\n color: transparent; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlci9wZXJzb25hbC1kZXRhaWxzL0Q6XFxXb3Jrc3BhY2VzXFxLb3J0b2p1cmFcXENsaWVudEFwcC9zcmNcXGFwcFxcdXNlclxccGVyc29uYWwtZGV0YWlsc1xccGVyc29uYWwtZGV0YWlscy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLGVBQWUsRUFBQTs7QUFHakI7RUFDRSxrQkFBa0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3VzZXIvcGVyc29uYWwtZGV0YWlscy9wZXJzb25hbC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJG1haW4tYm9keS1tYXgtd2lkdGg6IDEwMDBweDtcblxuLnByb2Zlc3Npb24tZmllbGQge1xuICBtYXJnaW4tYm90dG9tOiAtNXB4OyAvLyA8LS0gZm9yIHRoZSBsaW5rIHVuZGVyIHRoZSBmaWVsZFxufVxuXG4uY3Vyc29yLXBvaW50ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tYXQtZm9jdXNlZCAucGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4iXX0= */\"","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnChanges,\r\n OnDestroy,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormControl, Validators, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { UserProfileModel } from '@models/user-profile-model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ProfessionNotListedPopupComponent } from './profession-not-listed-popup/profession-not-listed-popup.component';\r\nimport { LanguageService } from '@services/language.service';\r\nimport { LanguageModel } from '@models/language-model';\r\nimport { ProfessionService } from '@services/profession.service';\r\nimport { ProfessionModel } from '@models/profession-model';\r\nimport { ProvinceService } from '@services/province.service';\r\nimport { ProvinceModel } from '@models/province-model';\r\nimport { TitleService } from './../../_services/title.service';\r\nimport { TitleModel } from '@models/title-model';\r\nimport { map, startWith, takeUntil } from 'rxjs/operators';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { KnownLanguageModel } from '@models/known-language-model';\r\nimport { AuthService } from '@services/auth.service';\r\nimport { CommonDialogService } from '@services/common-dialog.service';\r\nimport { KjValidators } from '@shared/kj-validators/kj-validators';\r\n\r\n@Component({\r\n selector: 'app-personal-details',\r\n templateUrl: './personal-details.component.html',\r\n styleUrls: ['./personal-details.component.scss']\r\n})\r\nexport class PersonalDetailsComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() buttonText: string;\r\n @Input() userProfile: UserProfileModel;\r\n @Input() readonly: boolean = false;\r\n @Output() submitUserProfile = new EventEmitter();\r\n @ViewChild('txtTitleOther') txtTitleOther: ElementRef;\r\n\r\n form: FormGroup;\r\n addressForm: FormGroup;\r\n\r\n languages: LanguageModel[];\r\n knownLanguages: KnownLanguageModel[];\r\n professions: ProfessionModel[];\r\n provinces: ProvinceModel[];\r\n titles: TitleModel[];\r\n titleOtherId: string;\r\n maxDate: Date = new Date();\r\n\r\n destroy$ = new Subject();\r\n\r\n maxAge = 100;\r\n defaultAge = 30;\r\n yearOfBirthOptions = new Array(this.maxAge).fill(0).map((y, i) => this.maxDate.getFullYear() - this.maxAge + i);\r\n filteredYearOfBirthOptions$: Observable;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public dialog: MatDialog,\r\n public commonDialogService: CommonDialogService,\r\n private languageService: LanguageService,\r\n private professionService: ProfessionService,\r\n private provinceService: ProvinceService,\r\n private titleService: TitleService,\r\n public authService: AuthService\r\n ) {\r\n this.setupForm();\r\n\r\n this.filteredYearOfBirthOptions$ = this.form.controls.yearOfBirth.valueChanges.pipe(\r\n startWith(''),\r\n map(value => this.yearOfBirthOptions.filter(year => year.toString().includes(value)) as number[])\r\n );\r\n }\r\n\r\n /**\r\n * Called when the year of birth selection box opens\r\n * If the value is null, scroll to the default age.\r\n * @returns\r\n */\r\n yearOfBirthOpen() {\r\n if (this.form.value.yearOfBirth !== null) return;\r\n\r\n // Get the item to scroll to\r\n const selItem = document.querySelector(`mat-option.year-of-birth:nth-child(${this.maxAge - this.defaultAge})`);\r\n\r\n selItem.scrollIntoView({\r\n block: 'center'\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.titleService\r\n .getTitles()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((titles: TitleModel[]) => {\r\n this.titles = titles;\r\n this.titleOtherId = this.getParam(this.titles, 'Other', 'id', 'type');\r\n });\r\n\r\n this.languageService.getLanguages().subscribe((languages: LanguageModel[]) => {\r\n this.languages = languages;\r\n });\r\n\r\n this.languageService.getKnownLanguages().subscribe(languages => {\r\n this.knownLanguages = languages;\r\n });\r\n\r\n this.professionService\r\n .getProfessions()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((professions: ProfessionModel[]) => {\r\n this.professions = professions;\r\n });\r\n\r\n this.provinceService\r\n .getProvinces()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((provinces: ProvinceModel[]) => {\r\n this.provinces = provinces;\r\n this.addressForm.updateValueAndValidity();\r\n });\r\n }\r\n\r\n select(value: string, type: string) {\r\n setTimeout(_ => this[`txt${type}Other`].nativeElement.focus(), 100);\r\n }\r\n\r\n clearOther(type: string) {\r\n this.form.controls[`${type}Id`].setValue(null);\r\n this.form.controls[`${type}Other`].setValue(null);\r\n }\r\n\r\n /**\r\n * Search an array of options by a parameter and return another parameter.\r\n * @param o The array of options that are available.\r\n * @param searchFor The value of the parameter to search for.\r\n * @param returnParam The name of the parameter whose value we want.\r\n * @param searchParam The name of the parameter to search by.\r\n */\r\n getParam(o: any[], searchFor: string, returnParam = 'label', searchParam = 'id') {\r\n return o && searchFor ? o.find(x => x[searchParam] === searchFor)[returnParam] : null;\r\n }\r\n\r\n getTitle() {\r\n return this.getParam(this.titles, this.userProfile.titleId);\r\n }\r\n\r\n getProvince() {\r\n return this.getParam(this.provinces, this.userProfile.address.provinceId);\r\n }\r\n\r\n getProfession() {\r\n return this.getParam(this.professions, this.userProfile.professionId);\r\n }\r\n\r\n getCommLanguage() {\r\n return this.getParam(this.languages, this.userProfile.communicationLanguageId, 'code');\r\n }\r\n\r\n getMotherTongue() {\r\n return this.getParam(this.knownLanguages, this.userProfile.maternalLanguageId);\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n if (changes.userProfile) {\r\n this.bindForm();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.unsubscribe();\r\n }\r\n\r\n submit() {\r\n if (this.form.invalid && this.authService.getUserId() === this.userProfile.id) {\r\n this.form.markAsTouched();\r\n return false;\r\n }\r\n\r\n const data = {\r\n ...this.form.value\r\n } as UserProfileModel;\r\n data.address.country = 'Canada';\r\n data.address.postalCode = data.address.postalCode.trim().toUpperCase();\r\n\r\n // prevents unsaved changes guard to be triggered\r\n this.form.markAsPristine();\r\n this.addressForm.markAsPristine();\r\n\r\n this.submitUserProfile.emit(data);\r\n }\r\n\r\n private bindForm() {\r\n // Clear the form before patching new values as some values could be missing and the form would keep the previous one.\r\n this.form.reset();\r\n this.form.patchValue(this.userProfile);\r\n }\r\n\r\n setupForm() {\r\n this.addressForm = this.formBuilder.group(\r\n {\r\n streetName: new FormControl('', Validators.required),\r\n city: new FormControl('', Validators.required),\r\n provinceId: new FormControl('', Validators.required),\r\n postalCode: new FormControl('', [Validators.required, this.validatePostalCode])\r\n },\r\n {\r\n validators: this.postalCodeMatchesProvinceValidator\r\n }\r\n );\r\n\r\n this.form = this.formBuilder.group(\r\n {\r\n id: new FormControl(''),\r\n titleId: new FormControl('', Validators.required),\r\n titleOther: new FormControl(''),\r\n firstName: new FormControl('', Validators.required),\r\n lastName: new FormControl('', Validators.required),\r\n yearOfBirth: new FormControl('', [\r\n Validators.required,\r\n Validators.min(this.maxDate.getFullYear() - this.maxAge),\r\n Validators.max(this.maxDate.getFullYear()),\r\n KjValidators.positiveWholeNumberValidator\r\n ]),\r\n maternalLanguageId: new FormControl('', Validators.required),\r\n address: this.addressForm,\r\n communicationLanguageId: new FormControl('', Validators.required),\r\n professionId: new FormControl('', Validators.required),\r\n isAgreedToTOS: new FormControl('', this.validateAgreementToTOS)\r\n },\r\n {\r\n validators: [this.validateOtherFactory('title')]\r\n }\r\n );\r\n }\r\n\r\n // Create a validator function for fields that have an OTHER option.\r\n validateOtherFactory(type: 'title') {\r\n return (fg: FormGroup) => {\r\n if (fg.controls[`${type}Id`].value === this[`${type}OtherId`])\r\n if (!fg.controls[`${type}Other`].value || !fg.controls[`${type}Other`].value.trim().length) {\r\n fg.controls[`${type}Other`].setErrors({ empty: true });\r\n return { [`${type}Empty`]: true };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n validateAgreementToTOS(c: FormControl) {\r\n if (c.value) return null;\r\n return {\r\n mustAgreeToTOS: {\r\n valid: false\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Make sure the postal code is in the correct format.\r\n * @param c The control that we're testing\r\n */\r\n validatePostalCode(c: FormControl) {\r\n if (!c.value) return null;\r\n\r\n const POSTALCODE_EXP = /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJKLMNPRSTVWXYZ][ -]?\\d[ABCEGHJKLMNPRSTVWXYZ]\\d$/;\r\n return POSTALCODE_EXP.test(c.value.trim().toUpperCase())\r\n ? null\r\n : {\r\n validatePostalCode: {\r\n valid: false\r\n }\r\n };\r\n }\r\n\r\n showPostalCodeWarning() {\r\n return !this.isPostalProvinceValid(this.addressForm);\r\n }\r\n\r\n postalCodeMatchesProvinceValidator: ValidatorFn = (addressFormGroup: FormGroup): ValidationErrors | null => {\r\n if (this.isPostalProvinceValid(addressFormGroup)) return null;\r\n return { provincePostalCodeMismatch: true };\r\n };\r\n\r\n /**\r\n * Make sure the postal code is valid for the selected province.\r\n * @returns true if the postal code matches the province or both fields are not yet populated.\r\n * false otherwise.\r\n */\r\n isPostalProvinceValid(addressFormGroup: FormGroup): boolean {\r\n if (this.provinces) {\r\n /*\r\n A Newfoundland Labrador\r\n B Nova Scotia\r\n C PEI\r\n E New Brunswick\r\n\r\n G Eastern PQ\r\n H Montreal PQ\r\n J Western PQ\r\n\r\n K Eastern Ont\r\n L Northern GTO Ont\r\n M Southern GTO Ont\r\n N Southern Ont\r\n P Northern Ont\r\n\r\n R Manitoba\r\n S Sask\r\n T Alberta\r\n V BC\r\n X NWT & Nunavut\r\n Y Yukon\r\n\t\t\t*/\r\n\r\n const provincePostalCodeMap = {\r\n NL: ['A'],\r\n NS: ['B'],\r\n PE: ['C'],\r\n NB: ['E'],\r\n QC: ['G', 'H', 'J'],\r\n ON: ['K', 'L', 'M', 'N', 'P'],\r\n MB: ['R'],\r\n SK: ['S'],\r\n AB: ['T'],\r\n BC: ['V'],\r\n YT: ['Y'],\r\n NT: ['X'],\r\n NU: ['X']\r\n };\r\n\r\n const prov = this.provinces.find(p => p.id === addressFormGroup.controls.provinceId.value);\r\n\r\n if (prov && prov.shortName && addressFormGroup.controls.postalCode.value) {\r\n const firstLetter = addressFormGroup.controls.postalCode.value[0].toUpperCase();\r\n if (provincePostalCodeMap[prov.shortName].includes(firstLetter)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n // No provinces, no validation\r\n return true;\r\n }\r\n\r\n openDialog(): void {\r\n this.dialog.open(ProfessionNotListedPopupComponent);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SharedModule } from '@shared/shared.module';\nimport { AppComponentsModule } from '@shared/app-components.module';\nimport { ProfessionNotListedPopupComponent } from './profession-not-listed-popup/profession-not-listed-popup.component';\nimport { PersonalDetailsComponent } from './personal-details.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SharedModule,\n AppComponentsModule\n ],\n entryComponents: [ProfessionNotListedPopupComponent],\n declarations: [PersonalDetailsComponent, ProfessionNotListedPopupComponent],\n exports: [PersonalDetailsComponent]\n})\nexport class PersonalDetailsModule {}\n","module.exports = \"

{{ 'Popup.Profession.Title' | translate }}

\\n
\\n

\\n {{ 'Popup.Profession.Content' | translate }}\\n
\\n

\\n \\n
\\n
\\n \\n
\\n\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-profession-not-listed-popup',\n templateUrl: './profession-not-listed-popup.component.html'\n})\nexport class ProfessionNotListedPopupComponent {\n constructor() {}\n}\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n assignment_turned_in
{{ 'Certification.Score' | translate }}: {{ scores.label(certification.score, certification.language) }}\\r\\n
\\r\\n
\\r\\n \\r\\n class
{{ 'Certification.CertificateNo' | translate }}: {{ certification.certificationNumber }}\\r\\n
\\r\\n
\\r\\n \\r\\n class
{{ 'Certification.SerialNo' | translate }}: {{ certification.serialNumber }}\\r\\n
\\r\\n
\\r\\n \\r\\n event_available{{ 'Certification.Completion' | translate }}: {{ certification.completedDate | kortoDate }}\\r\\n
\\r\\n
\\r\\n \\r\\n event_busy{{ 'Certification.Expiry' | translate }}: {{ certification.expiryDate | kortoDate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n more_horiz\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".completed-certification-details {\\n display: inline-block; }\\n .completed-certification-details > div {\\n margin-bottom: 0.5rem;\\n display: flex;\\n justify-content: space-between; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlci91c2VyLWNlcnRpZmljYXRpb25zL3VzZXItY2VydGlmaWNhdGlvbi9jb21wbGV0ZWQtY2VydGlmaWNhdGlvbi1kZXRhaWxzL0Q6XFxXb3Jrc3BhY2VzXFxLb3J0b2p1cmFcXENsaWVudEFwcC9zcmNcXGFwcFxcdXNlclxcdXNlci1jZXJ0aWZpY2F0aW9uc1xcdXNlci1jZXJ0aWZpY2F0aW9uXFxjb21wbGV0ZWQtY2VydGlmaWNhdGlvbi1kZXRhaWxzXFxjb21wbGV0ZWQtY2VydGlmaWNhdGlvbi1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UscUJBQXFCLEVBQUE7RUFEdkI7SUFHSSxxQkFBcUI7SUFDckIsYUFBYTtJQUNiLDhCQUE4QixFQUFBIiwiZmlsZSI6InNyYy9hcHAvdXNlci91c2VyLWNlcnRpZmljYXRpb25zL3VzZXItY2VydGlmaWNhdGlvbi9jb21wbGV0ZWQtY2VydGlmaWNhdGlvbi1kZXRhaWxzL2NvbXBsZXRlZC1jZXJ0aWZpY2F0aW9uLWRldGFpbHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29tcGxldGVkLWNlcnRpZmljYXRpb24tZGV0YWlscyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgPiBkaXYge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxufVxuIl19 */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UserCertificationModel } from '@models/user-certification-model';\r\nimport { Scores } from '@services/scores';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ReceiveCertificationPopupComponent } from '@app/dashboard/receive-certification-popup/receive-certification-popup.component';\r\n\r\n@Component({\r\n selector: 'app-completed-certification-details',\r\n templateUrl: './completed-certification-details.component.html',\r\n styleUrls: ['./completed-certification-details.component.scss']\r\n})\r\nexport class CompletedCertificationDetailsComponent implements OnInit {\r\n @Input() certification: UserCertificationModel;\r\n @Input() showCompletedCertificatonOptions: boolean;\r\n\r\n constructor(public dialog: MatDialog, public scores: Scores) {}\r\n\r\n ngOnInit() {}\r\n\r\n openReceiveDialog(): void {\r\n this.dialog.open(ReceiveCertificationPopupComponent);\r\n }\r\n}\r\n","module.exports = \"\\n

{{ question.label }}

\\n \\n

{{ question.userAnswer }}

\\n
\\n\\n \\n
  • {{ option.label }} : {{ option.userAnswer }}
  • \\n
    \\n
    \\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXIvdXNlci1jZXJ0aWZpY2F0aW9ucy91c2VyLWNlcnRpZmljYXRpb24vc2tpbGwtYXJlYS1yZXN1bWUvc2tpbGwtYXJlYS1yZXN1bWUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { SkillAreaQuestionModel } from '@models/skill-area-question-model';\r\nimport { SkillAreaService } from '@services/skill-area.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { NotificationService } from '@services/notification.service';\r\n\r\n@Component({\r\n selector: 'app-skill-area-resume',\r\n templateUrl: './skill-area-resume.component.html',\r\n styleUrls: ['./skill-area-resume.component.scss']\r\n})\r\nexport class SkillAreaResumeComponent implements OnInit, OnChanges, OnDestroy {\r\n private destroy$ = new Subject();\r\n skillAreaQuestions: SkillAreaQuestionModel[];\r\n @Input() userCertificationId: string;\r\n\r\n constructor(private skillAreaService: SkillAreaService, private notificationService: NotificationService) {}\r\n ngOnInit() {\r\n this.updateUserSkillArea();\r\n }\r\n\r\n updateUserSkillArea() {\r\n this.skillAreaService\r\n .getUserSkillsArea(this.userCertificationId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n results => {\r\n this.skillAreaQuestions = results;\r\n },\r\n error => this.notificationService.showErrors(error)\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('userCertificationId' in changes) {\r\n // When the selected user certification changes, update the questionnaire's answers.\r\n this.updateUserSkillArea();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"\\n \\n \\n \\n \\n {{ 'PersonalInfo.PersonTitle' | translate }}\\n \\n \\n \\n {{ title.label }}\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n save \\n \\n \\n cancel \\n \\n \\n\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXIvdXNlci1jZXJ0aWZpY2F0aW9ucy91c2VyLWNlcnRpZmljYXRpb24vdGhpcmQtcGFydHktZW1haWxzL2VkaXQtcm93L2VkaXQtcm93LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: '[edit-row]',\n templateUrl: './edit-row.component.html',\n styleUrls: ['./edit-row.component.scss']\n})\nexport class EditRowComponent {\n @Input() form: FormGroup;\n @Output() cancel = new EventEmitter();\n @Input() titleData;\n}\n","module.exports = \"
    \\n
    \\n
    \\n {{ 'UserProfile.GiveAccess' | translate }}\\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n\\n \\n\\n \\n \\n \\n
    {{ 'PersonalInfo.PersonTitle' | translate }}{{ 'PersonalInfo.FirstName' | translate }}{{ 'PersonalInfo.LastName' | translate }}{{ 'PersonalInfo.Email' | translate }}
    {{ titleIdtoLabel(emailRecipient.titleId) }}{{ emailRecipient.firstName }}{{ emailRecipient.lastName }}{{ emailRecipient.email }}\\n \\n edit \\n \\n \\n delete \\n \\n
    \\n
    \\n \\n person_add \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n

    \\n {{ 'RegisterCertification.ImportantTitle' | translate }}
    \\n

    \\n

    \\n {{ 'RegisterCertification.ImportantContent' | translate }}\\n

    \\n
    \\n
    \\n
    \\n\"","module.exports = \".add-recipient {\\n background-color: white;\\n text-align: center;\\n display: block;\\n padding: 0.5em;\\n cursor: pointer;\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n border-top: 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlci91c2VyLWNlcnRpZmljYXRpb25zL3VzZXItY2VydGlmaWNhdGlvbi90aGlyZC1wYXJ0eS1lbWFpbHMvRDpcXFdvcmtzcGFjZXNcXEtvcnRvanVyYVxcQ2xpZW50QXBwL3NyY1xcYXBwXFx1c2VyXFx1c2VyLWNlcnRpZmljYXRpb25zXFx1c2VyLWNlcnRpZmljYXRpb25cXHRoaXJkLXBhcnR5LWVtYWlsc1xcdGhpcmQtcGFydHktZW1haWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsdUJBQXVCO0VBQ3ZCLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsY0FBYztFQUNkLGVBQWU7RUFDZixvQ0FBb0M7RUFDcEMsYUFBYSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvdXNlci91c2VyLWNlcnRpZmljYXRpb25zL3VzZXItY2VydGlmaWNhdGlvbi90aGlyZC1wYXJ0eS1lbWFpbHMvdGhpcmQtcGFydHktZW1haWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFkZC1yZWNpcGllbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC41ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItdG9wOiAwO1xufVxuIl19 */\"","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n OnDestroy\n} from '@angular/core';\nimport {\n FormControl,\n Validators,\n FormBuilder,\n FormGroup\n} from '@angular/forms';\nimport { UserEmailRecipientModel } from '@models/user-email-recipient-model';\nimport { NotificationService } from '@services/notification.service';\nimport { TitleService } from '@services/title.service';\nimport { TitleModel } from '@models/title-model';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-third-party-emails',\n templateUrl: './third-party-emails.component.html',\n styleUrls: ['./third-party-emails.component.scss']\n})\nexport class ThirdPartyEmailsComponent implements OnInit, OnDestroy {\n @Input() emailRecipients: UserEmailRecipientModel[];\n @Input() readonly: boolean = false;\n @Output() change = new EventEmitter();\n @Output() emailAdded = new EventEmitter();\n @Output() emailUpdated = new EventEmitter();\n @Output() emailDeleted = new EventEmitter();\n isInEditMode = false;\n editIndex: number;\n titles: TitleModel[];\n\n destroy$ = new Subject();\n\n form: FormGroup;\n constructor(\n private formBuilder: FormBuilder,\n private titleService: TitleService,\n private notificationService: NotificationService\n ) {}\n\n ngOnInit() {\n this.titleService\n .getTitles()\n .pipe(takeUntil(this.destroy$))\n .subscribe((titles: TitleModel[]) => {\n this.titles = titles;\n });\n this.setupForm();\n if (this.emailRecipients.length === 0) {\n this.add();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n add() {\n this.isInEditMode = true;\n this.editIndex = -1;\n this.form.reset();\n }\n\n submit() {\n if (this.form.valid) {\n if (this.editIndex > -1) {\n const existing = this.emailRecipients[this.editIndex];\n\n Object.assign(existing, this.form.value);\n\n this.change.emit({ action: 'Edit', item: existing });\n this.emailUpdated.emit(existing);\n } else {\n const emailRecipientModel = this.form.value as UserEmailRecipientModel;\n this.emailRecipients.push(emailRecipientModel);\n\n this.change.emit({ action: 'Add', item: emailRecipientModel });\n this.emailAdded.emit(emailRecipientModel);\n }\n\n this.reset();\n }\n }\n\n edit(emailRecipientModel: UserEmailRecipientModel, index: number) {\n this.form.setValue(emailRecipientModel);\n this.isInEditMode = true;\n this.editIndex = index;\n }\n\n delete(emailRecipientModel: UserEmailRecipientModel) {\n this.notificationService\n .confirmDialog({\n data: {\n messageKey: 'Notifications.ConfirmRemoveMessage'\n }\n })\n .afterClosed()\n .subscribe(isConfirmed => {\n if (isConfirmed) {\n const index = this.emailRecipients.indexOf(emailRecipientModel);\n this.emailRecipients.splice(index, 1);\n\n this.change.emit({ action: 'Delete', item: emailRecipientModel });\n this.emailDeleted.emit(emailRecipientModel);\n\n if (this.emailRecipients.length === 0) {\n this.add();\n }\n }\n });\n }\n\n cancel() {\n this.reset();\n }\n\n setEnabled(enabled: boolean) {\n if (enabled) {\n this.enable();\n } else {\n this.disable();\n }\n }\n\n private disable() {\n this.form.disable();\n }\n\n private enable() {\n this.form.enable();\n }\n\n private reset() {\n this.form.reset();\n this.isInEditMode = false;\n this.editIndex = null;\n }\n\n private setupForm() {\n this.isInEditMode = false;\n this.form = this.formBuilder.group({\n id: new FormControl(''),\n titleId: new FormControl('', Validators.required),\n firstName: new FormControl('', Validators.required),\n lastName: new FormControl('', Validators.required),\n email: new FormControl('', [Validators.required, Validators.email])\n });\n }\n\n titleIdtoLabel(id: string) {\n if (this.titles) {\n const title = this.titles.find(item => {\n return item.id === id;\n });\n\n if (title) {\n return title.label;\n }\n }\n }\n}\n","module.exports = \"
    \\r\\n \\r\\n
    \\r\\n

    {{ test.title }}

    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'Dashboard.ActiveCertification.RemainingDays' | translate }}: {{ test.expiryDate | tminus: 'days' }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n today\\r\\n \\r\\n {{ 'VideoConference.ScheduledDate' | translate }}\\r\\n \\r\\n \\r\\n {{ test.scheduledStartTime | kortoDateTime }}\\r\\n \\r\\n \\r\\n {{ 'VideoConference.PendingConfirmation' | translate }}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n timer\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ 'Test.Score' | translate }}: \\r\\n {{ scores.label(test.score, test.language) }}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\"","module.exports = \".completed-certification-test-item {\\n width: 100%;\\n display: flex;\\n justify-content: space-between; }\\n\\n.test-list-item {\\n font-family: 'Raleway', sans-serif; }\\n\\n.form-row {\\n flex-wrap: unset; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlci91c2VyLWNlcnRpZmljYXRpb25zL3VzZXItY2VydGlmaWNhdGlvbi91c2VyLWNlcnRpZmljYXRpb24tdGVzdC1pdGVtL0Q6XFxXb3Jrc3BhY2VzXFxLb3J0b2p1cmFcXENsaWVudEFwcC9zcmNcXGFwcFxcdXNlclxcdXNlci1jZXJ0aWZpY2F0aW9uc1xcdXNlci1jZXJ0aWZpY2F0aW9uXFx1c2VyLWNlcnRpZmljYXRpb24tdGVzdC1pdGVtXFx1c2VyLWNlcnRpZmljYXRpb24tdGVzdC1pdGVtLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVztFQUNYLGFBQWE7RUFDYiw4QkFBOEIsRUFBQTs7QUFHaEM7RUFDRSxrQ0FBa0MsRUFBQTs7QUFHcEM7RUFDRSxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3VzZXIvdXNlci1jZXJ0aWZpY2F0aW9ucy91c2VyLWNlcnRpZmljYXRpb24vdXNlci1jZXJ0aWZpY2F0aW9uLXRlc3QtaXRlbS91c2VyLWNlcnRpZmljYXRpb24tdGVzdC1pdGVtLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbXBsZXRlZC1jZXJ0aWZpY2F0aW9uLXRlc3QtaXRlbSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbi50ZXN0LWxpc3QtaXRlbSB7XHJcbiAgZm9udC1mYW1pbHk6ICdSYWxld2F5Jywgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLmZvcm0tcm93IHtcclxuICBmbGV4LXdyYXA6IHVuc2V0O1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { UserCertificationTestModel } from '@models/user-certification-test-model';\nimport { TestStatus } from '@models/test-status';\nimport { Scores } from '@services/scores';\nimport { isFutureDate } from '@services/date.service';\n\n@Component({\n selector: 'app-user-certification-test-item',\n templateUrl: './user-certification-test-item.component.html',\n styleUrls: ['./user-certification-test-item.component.scss'],\n host: { class: 'test-list-item' }\n})\nexport class UserCertificationTestItemComponent implements OnInit {\n @Input() test: UserCertificationTestModel;\n @Input() certificationCompleted = false;\n @Input() certificationPurchased = true;\n @Input() canAccess = false;\n TestStatus = TestStatus;\n\n // Need to create local variable so it's available in the template.\n isFutureDate = isFutureDate;\n\n constructor(public scores: Scores) {}\n\n ngOnInit() {}\n\n //Show instruction link if is Active || Started only\n canShowTestInstruction() : boolean{\n let canShowInstructions = false;\n\n if(this.test.status === TestStatus.Active\n || this.test.status === TestStatus.Started){\n canShowInstructions = true;\n }\n\n return canShowInstructions;\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n hmr: false\n};\n\n/*\n * In development mode, to ignore zone related error stack frames such as\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\n * import the following file, but please comment it out in production mode\n * because it will have performance impact when throw error\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { NgModuleRef, ApplicationRef } from '@angular/core';\nimport { createNewHosts } from '@angularclass/hmr';\n\nexport const hmrBootstrap = (module: any, bootstrap: () => Promise>) => {\n let ngModule: NgModuleRef;\n module.hot.accept();\n bootstrap().then(mod => ngModule = mod);\n module.hot.dispose(() => {\n const appRef: ApplicationRef = ngModule.injector.get(ApplicationRef);\n const elements = appRef.components.map(c => c.location.nativeElement);\n const makeVisible = createNewHosts(elements);\n ngModule.destroy();\n makeVisible();\n });\n};\n","import 'hammerjs';\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nimport { hmrBootstrap } from './hmr';\n\nif (environment.production) {\n enableProdMode();\n}\n\nexport function getBaseUrl() {\n return document.getElementsByTagName('base')[0].href;\n}\n\nconst providers = [{ provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }];\nconst bootstrap = () =>\n platformBrowserDynamic(providers).bootstrapModule(AppModule);\n\nif (environment.hmr) {\n if (module['hot']) {\n hmrBootstrap(module, bootstrap);\n } else {\n console.error('HMR is not enabled for webpack-dev-server!');\n console.log('Are you using the --hmr flag for ng serve?');\n }\n} else {\n bootstrap();\n}\n\n// export function getBaseUrl() {\n// return document.getElementsByTagName('base')[0].href;\n// }\n\n// const providers = [\n// { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\n// ];\n\n// if (environment.production) {\n// enableProdMode();\n// }\n\n// platformBrowserDynamic(providers).bootstrapModule(AppModule)\n// .catch(err => console.log(err));\n","/* (ignored) */"],"sourceRoot":""}