@uiapplib/ngx-ui-web-lib 0.0.37 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,7 +71,7 @@ function AccountSuccessPage_app_associate_ssn_19_Template(rf, ctx) { if (rf & 1)
71
71
  function AccountSuccessPage_app_dua_request_popup_20_Template(rf, ctx) { if (rf & 1) {
72
72
  const _r18 = i0.ɵɵgetCurrentView();
73
73
  i0.ɵɵelementStart(0, "app-dua-request-popup", 19);
74
- i0.ɵɵlistener("successDua", function AccountSuccessPage_app_dua_request_popup_20_Template_app_dua_request_popup_successDua_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.saveDuaSuccess($event)); })("onClose", function AccountSuccessPage_app_dua_request_popup_20_Template_app_dua_request_popup_onClose_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.logout()); });
74
+ i0.ɵɵlistener("successDua", function AccountSuccessPage_app_dua_request_popup_20_Template_app_dua_request_popup_successDua_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.saveDuaSuccess($event)); });
75
75
  i0.ɵɵelementEnd();
76
76
  } }
77
77
  export class AccountSuccessPage extends BasePage {
@@ -305,7 +305,7 @@ export class AccountSuccessPage extends BasePage {
305
305
  this.showLoaderTheme = false;
306
306
  }
307
307
  static { this.ɵfac = function AccountSuccessPage_Factory(t) { return new (t || AccountSuccessPage)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.UtilService), i0.ɵɵdirectiveInject(i3.LoggerService), i0.ɵɵdirectiveInject(i4.ClaimantService), i0.ɵɵdirectiveInject(i5.NavController), i0.ɵɵdirectiveInject(i6.LoginService), i0.ɵɵdirectiveInject(i7.ClaimService), i0.ɵɵdirectiveInject(i5.Platform)); }; }
308
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccountSuccessPage, selectors: [["account-success"]], outputs: { success: "success", error: "error" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 21, vars: 14, consts: [[3, "secondToolbar", "displayLogo"], [3, "showHelp", "hideFooter", "showError"], ["class", "ion-text-center", 4, "ngIf"], ["style", "color:var(--ion-color-grey);", 4, "ngIf"], [4, "ngIf"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "8", "sizeLg", "4", "sizeXl", "4", "offsetMd", "2", "offsetXl", "4", "offsetLg", "4", 1, "ion-text-center", "ion-padding"], [3, "error", "success"], [3, "email", "redirectPage", "onClose", "onSuccess", 4, "ngIf"], [3, "inputData", "onClose", "onSuccess", 4, "ngIf"], [3, "success", 4, "ngIf"], [3, "successDua", "onClose", 4, "ngIf"], [1, "ion-text-center"], ["name", "dots"], [2, "color", "var(--ion-color-grey)"], [2, "padding-left", "25px"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "10", "sizeLg", "8", "sizeXl", "8", "offsetMd", "1", "offsetXl", "2", "offsetLg", "2", 1, "ion-text-center", "ion-padding"], [3, "email", "redirectPage", "onClose", "onSuccess"], [3, "inputData", "onClose", "onSuccess"], [3, "success"], [3, "successDua", "onClose"]], template: function AccountSuccessPage_Template(rf, ctx) { if (rf & 1) {
308
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccountSuccessPage, selectors: [["account-success"]], outputs: { success: "success", error: "error" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 21, vars: 14, consts: [[3, "secondToolbar", "displayLogo"], [3, "showHelp", "hideFooter", "showError"], ["class", "ion-text-center", 4, "ngIf"], ["style", "color:var(--ion-color-grey);", 4, "ngIf"], [4, "ngIf"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "8", "sizeLg", "4", "sizeXl", "4", "offsetMd", "2", "offsetXl", "4", "offsetLg", "4", 1, "ion-text-center", "ion-padding"], [3, "error", "success"], [3, "email", "redirectPage", "onClose", "onSuccess", 4, "ngIf"], [3, "inputData", "onClose", "onSuccess", 4, "ngIf"], [3, "success", 4, "ngIf"], [3, "successDua", 4, "ngIf"], [1, "ion-text-center"], ["name", "dots"], [2, "color", "var(--ion-color-grey)"], [2, "padding-left", "25px"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "10", "sizeLg", "8", "sizeXl", "8", "offsetMd", "1", "offsetXl", "2", "offsetLg", "2", 1, "ion-text-center", "ion-padding"], [3, "email", "redirectPage", "onClose", "onSuccess"], [3, "inputData", "onClose", "onSuccess"], [3, "success"], [3, "successDua"]], template: function AccountSuccessPage_Template(rf, ctx) { if (rf & 1) {
309
309
  i0.ɵɵelementStart(0, "ion-header");
310
310
  i0.ɵɵelement(1, "app-header", 0);
311
311
  i0.ɵɵelementEnd();
@@ -345,11 +345,11 @@ export class AccountSuccessPage extends BasePage {
345
345
  }
346
346
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccountSuccessPage, [{
347
347
  type: Component,
348
- args: [{ selector: 'account-success', template: "<ion-header>\r\n <app-header [secondToolbar]=\"false\" [displayLogo]=\"true\"></app-header>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <app-content [showHelp]=\"false\" [hideFooter]=\"true\" [showError]=\"true\">\r\n <div *ngIf=\"showLoaderTheme\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n <div style=\"color:var(--ion-color-grey);\" *ngIf=\"!errorOccured\">\r\n <h1 style=\"padding-left: 25px;\">You'all are set!</h1>\r\n </div>\r\n <br /><br /><br /><br />\r\n <ion-grid>\r\n <ion-row *ngIf=\"isProcessNewLogin\">\r\n <ion-col class=\"ion-text-center ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"8\" sizeXl=\"8\"\r\n offsetMd=\"1\" offsetXl=\"2\" offsetLg=\"2\">\r\n <h3>Please login to activate your account.</h3>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isProcessNewLogin\">\r\n <ion-col class=\"ion-text-center ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"8\" sizeXl=\"8\"\r\n offsetMd=\"1\" offsetXl=\"2\" offsetLg=\"2\">\r\n <h3>Let's activate your account.</h3>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isProcessNewLogin\">\r\n <ion-col class=\"ion-text-center ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"8\" sizeXl=\"8\"\r\n offsetMd=\"1\" offsetXl=\"2\" offsetLg=\"2\">\r\n <h3>Please login to continue with your application.</h3>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-center ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"8\" sizeLg=\"4\" sizeXl=\"4\"\r\n offsetMd=\"2\" offsetXl=\"4\" offsetLg=\"4\">\r\n <app-user-login (error)=\"loginError($event)\" (success)=\"fetchQuestionnaire()\"></app-user-login>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </app-content>\r\n</ion-content>\r\n<app-profile-redirect [email]=\"userEmail\" [redirectPage]=\"accountActivePage\" *ngIf=\"showRedirectProfileDialog\" (onClose)=\"logout()\" (onSuccess)=\"redirectSuccess()\"></app-profile-redirect>\r\n<app-ssn-reverify *ngIf=\"showSsnReverifyDialog\" [inputData]=\"userDataForSSNVerifyModel\" (onClose)=\"logout()\" (onSuccess)=\"reVerifySSNForClaimant($event)\"></app-ssn-reverify>\r\n<app-associate-ssn *ngIf=\"showAssociateSsnPopup\" (success)=\"associateSsnSuccess()\"></app-associate-ssn>\r\n<app-dua-request-popup *ngIf=\"showDuaPopup\" (successDua)=\"saveDuaSuccess($event)\" (onClose)=\"logout()\"></app-dua-request-popup>\r\n", styles: [".bottom{position:absolute;bottom:15%;right:5%}.centered{position:fixed;top:30%;left:50%;transform:translate(-50%,-50%)}\n"] }]
348
+ args: [{ selector: 'account-success', template: "<ion-header>\r\n <app-header [secondToolbar]=\"false\" [displayLogo]=\"true\"></app-header>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <app-content [showHelp]=\"false\" [hideFooter]=\"true\" [showError]=\"true\">\r\n <div *ngIf=\"showLoaderTheme\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n <div style=\"color:var(--ion-color-grey);\" *ngIf=\"!errorOccured\">\r\n <h1 style=\"padding-left: 25px;\">You'all are set!</h1>\r\n </div>\r\n <br /><br /><br /><br />\r\n <ion-grid>\r\n <ion-row *ngIf=\"isProcessNewLogin\">\r\n <ion-col class=\"ion-text-center ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"8\" sizeXl=\"8\"\r\n offsetMd=\"1\" offsetXl=\"2\" offsetLg=\"2\">\r\n <h3>Please login to activate your account.</h3>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isProcessNewLogin\">\r\n <ion-col class=\"ion-text-center ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"8\" sizeXl=\"8\"\r\n offsetMd=\"1\" offsetXl=\"2\" offsetLg=\"2\">\r\n <h3>Let's activate your account.</h3>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isProcessNewLogin\">\r\n <ion-col class=\"ion-text-center ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"8\" sizeXl=\"8\"\r\n offsetMd=\"1\" offsetXl=\"2\" offsetLg=\"2\">\r\n <h3>Please login to continue with your application.</h3>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-center ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"8\" sizeLg=\"4\" sizeXl=\"4\"\r\n offsetMd=\"2\" offsetXl=\"4\" offsetLg=\"4\">\r\n <app-user-login (error)=\"loginError($event)\" (success)=\"fetchQuestionnaire()\"></app-user-login>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </app-content>\r\n</ion-content>\r\n<app-profile-redirect [email]=\"userEmail\" [redirectPage]=\"accountActivePage\" *ngIf=\"showRedirectProfileDialog\" (onClose)=\"logout()\" (onSuccess)=\"redirectSuccess()\"></app-profile-redirect>\r\n<app-ssn-reverify *ngIf=\"showSsnReverifyDialog\" [inputData]=\"userDataForSSNVerifyModel\" (onClose)=\"logout()\" (onSuccess)=\"reVerifySSNForClaimant($event)\"></app-ssn-reverify>\r\n<app-associate-ssn *ngIf=\"showAssociateSsnPopup\" (success)=\"associateSsnSuccess()\"></app-associate-ssn>\r\n<app-dua-request-popup *ngIf=\"showDuaPopup\" (successDua)=\"saveDuaSuccess($event)\"></app-dua-request-popup>\r\n", styles: [".bottom{position:absolute;bottom:15%;right:5%}.centered{position:fixed;top:30%;left:50%;transform:translate(-50%,-50%)}\n"] }]
349
349
  }], () => [{ type: i1.ActivatedRoute }, { type: i2.UtilService }, { type: i3.LoggerService }, { type: i4.ClaimantService }, { type: i5.NavController }, { type: i6.LoginService }, { type: i7.ClaimService }, { type: i5.Platform }], { success: [{
350
350
  type: Output
351
351
  }], error: [{
352
352
  type: Output
353
353
  }] }); })();
354
354
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccountSuccessPage, { className: "AccountSuccessPage", filePath: "lib\\components\\questionnaire\\account-success\\account-success.page.ts", lineNumber: 24 }); })();
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zdWNjZXNzLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9hY2NvdW50LXN1Y2Nlc3MvYWNjb3VudC1zdWNjZXNzLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9hY2NvdW50LXN1Y2Nlc3MvYWNjb3VudC1zdWNjZXNzLnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNSeEUsK0JBQXFEO0lBQ25ELGtDQUF1QztJQUN6QyxpQkFBTTs7O0lBQ04sK0JBQWdFLGFBQUE7SUFDOUIsZ0NBQWdCO0lBQUEsaUJBQUssRUFBQTs7O0lBSXJELCtCQUFtQyxrQkFBQSxTQUFBO0lBRzNCLHNEQUFzQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7O0lBR25ELCtCQUFvQyxrQkFBQSxTQUFBO0lBRzVCLDRDQUE0QjtJQUFBLGlCQUFLLEVBQUEsRUFBQTs7O0lBR3pDLCtCQUFvQyxrQkFBQSxTQUFBO0lBRzVCLCtEQUErQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7OztJQVlsRSxnREFBb0s7SUFBckQsb01BQVcsZUFBQSxlQUFRLENB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VSxnRUFBQSxnRUFBQTtZQWFWLGdDQUFTLGtCQUFBLHlCQUFBO1lBR1csOEdBQVMsc0JBQWtCLElBQUMsK0ZBQVksd0JBQW9CLElBQWhDO1lBQWtDLGlCQUFpQixFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUE7WUFNekcsdUdBQTJMLGtGQUFBLG9GQUFBLDZGQUFBOztZQXhDN0ssZUFBdUI7WUFBdkIscUNBQXVCLHFCQUFBO1lBSXRCLGVBQWtCO1lBQWxCLGdDQUFrQixvQkFBQSxtQkFBQTtZQUN2QixlQUFxQjtZQUFyQiwwQ0FBcUI7WUFHZ0IsZUFBbUI7WUFBbkIsd0NBQW1CO1lBS2xELGVBQXVCO1lBQXZCLDRDQUF1QjtZQU12QixlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFNeEIsZUFBd0I7WUFBeEIsNkNBQXdCO1lBZXNDLGVBQStCO1lBQS9CLG9EQUErQjtZQUMxRixlQUEyQjtZQUEzQixnREFBMkI7WUFDMUIsZUFBMkI7WUFBM0IsZ0RBQTJCO1lBQ3ZCLGVBQWtCO1lBQWxCLHVDQUFrQjs7O2lGRHJCN0Isa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsaUJBQWlCOzRPQTRCM0IsT0FBTztrQkFETixNQUFNO1lBSVAsS0FBSztrQkFESixNQUFNOztrRkExQkksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCAsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBsYXRmb3JtIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgU3VjY2Vzc1BhZ2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvU3VjY2Vzc1BhZ2VFbGVtZW50JztcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xhaW1hbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtc2VydmljZS9jbGFpbWFudC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1ZhbGlkYXRpb25Nb2RlbCc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2xhaW1zL2NsYWltcy5zZXJ2aWNlJztcbmltcG9ydCB7IFNzYVZlcmlmaWNhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL1NzYVZlcmlmaWNhdGlvbk1vZGVsJztcbmltcG9ydCB7IEtleVZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9LZXlWYWx1ZU1vZGVsJztcbmltcG9ydCB7IER1YVJlcXVlc3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9EdWFSZXF1ZXN0TW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2NvdW50LXN1Y2Nlc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3VudC1zdWNjZXNzLnBhZ2UuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY291bnQtc3VjY2Vzcy5wYWdlLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFN1Y2Nlc3NQYWdlIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG5cbiAgcHVibGljIHNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICBwdWJsaWMgZXJyb3JPY2N1cmVkID0gdHJ1ZTtcbiAgcHVibGljIGNsYWltSWRlbnRpZmllcjogc3RyaW5nO1xuICBwdWJsaWMgdW5pcXVlS2V5OiBzdHJpbmc7XG4gIHB1YmxpYyBwcm9jZXNzVHlwZTogc3RyaW5nO1xuICBwdWJsaWMgZXJyb3JUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBpc1Byb2Nlc3NOZXdMb2dpbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd1JlZGlyZWN0UHJvZmlsZURpYWxvZyA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd1NzblJldmVyaWZ5RGlhbG9nID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93QXNzb2NpYXRlU3NuUG9wdXAgPSBmYWxzZTtcbiAgcHVibGljIHVzZXJFbWFpbDogc3RyaW5nO1xuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XG4gIHB1YmxpYyB1c2VyRGF0YUZvclNTTlZlcmlmeU1vZGVsIDogU3NhVmVyaWZpY2F0aW9uTW9kZWwgPSBuZXcgU3NhVmVyaWZpY2F0aW9uTW9kZWwoKTtcbiAgcHVibGljIG5leHRQYWdlUGF0aDogc3RyaW5nO1xuICBwdWJsaWMgYWNjb3VudEFjdGl2ZVBhZ2U6IHN0cmluZyA9ICdhY2NvdW50QWN0aXZlUGFnZSdcbiAgcHVibGljIHNob3dEdWFQb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYWN0aXZlRGlzYXN0ZXJzRm91bmQgOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBsaXN0T2ZEaXNhc3RlcnM6IEtleVZhbHVlTW9kZWxbXTtcbiAgZWxlbWVudHM6IEJlaGF2aW9yU3ViamVjdDxTdWNjZXNzUGFnZUVsZW1lbnQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdWNjZXNzUGFnZUVsZW1lbnQ+KG51bGwpO1xuXG4gIEBPdXRwdXQoKSBcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIFxuICBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwdWJsaWMgY2xhaW1hbnRTZXJ2aWNlOiBDbGFpbWFudFNlcnZpY2UsIHB1YmxpYyBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxuICAgIHB1YmxpYyBsb2dpblNlcnZpY2U6TG9naW5TZXJ2aWNlLCBwdWJsaWMgY2xhaW1TZXJ2aWNlIDogQ2xhaW1TZXJ2aWNlLCBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFjdGl2YXRlQWNjb3VudCgpO1xuICAgIHRoaXMuY2xhaW1TZXJ2aWNlLmZldGNoTGlzdE9mRGlzYXRlcnMoKS5zdWJzY3JpYmUoXG4gICAgICByZXMgPT4ge1xuICAgICAgIHRoaXMubGlzdE9mRGlzYXN0ZXJzID0gcmVzO1xuICAgICAgICBpZih0aGlzLmxpc3RPZkRpc2FzdGVycyAhPSBudWxsICYmIHRoaXMubGlzdE9mRGlzYXN0ZXJzLmxlbmd0aCA+IDApe1xuICAgICAgICAgIHRoaXMuYWN0aXZlRGlzYXN0ZXJzRm91bmQgPSB0cnVlO1xuICAgICAgfX0pO1xuICB9XG5cbiAgYWN0aXZhdGVBY2NvdW50KCkge1xuICAgIHRoaXMuZXJyb3JPY2N1cmVkID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgdGhpcy5jbGFpbUlkZW50aWZpZXIgPSBwYXJhbXNbJ2NsYWltSWRlbnRpZmllciddO1xuICAgICAgdGhpcy51bmlxdWVLZXkgPSBwYXJhbXNbJ3VuaXF1ZUtleSddO1xuICAgICAgdGhpcy5wcm9jZXNzVHlwZSA9IHBhcmFtc1sncHJvY2Vzc1R5cGUnXTtcbiAgICAgIHRoaXMuaXNQcm9jZXNzTmV3TG9naW4gPSB0aGlzLnByb2Nlc3NUeXBlID09ICduZXctbG9naW4nID8gdHJ1ZTpmYWxzZTsgLy8gdmFsdWUgc2V0IGZvciBNUyBvbmx5LCByZXN0IGlzIGZhbHNlO1xuICAgIH0pO1xuXG4gIH1cblxuICBhY3RpdmF0ZSgpe1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCduZXZlciBjYWxsZWQnKVxuICAgIHRoaXMuY2xhaW1hbnRTZXJ2aWNlLnZhbGlkYXRlRW1haWwodGhpcy5jbGFpbUlkZW50aWZpZXIsIHRoaXMudW5pcXVlS2V5KVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JPY2N1cmVkID0gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0Vycm9yJywgZXJyKTtcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLmVycm9yVGV4dCA9IGVyci5tc2c7XG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lcnJvck9jY3VyZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgfVxuXG4gIGxvZ2luRXJyb3IoZXJyKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlcnIpO1xuICB9XG5cbiAgZmV0Y2hRdWVzdGlvbm5haXJlKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdoZXJlIGluIGZldGNoIHFlJyArIHRoaXMucHJvY2Vzc1R5cGUpO1xuICAgIHRoaXMudXNlck1vZGVsID0gdGhpcy5sb2dpblNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWx1ZXMgZm9yIGJvb2xlYW4gY2FzZXMgPSAnLCB0aGlzLnNob3dEdWFQb3B1cCwgdGhpcy5pc1Byb2Nlc3NOZXdMb2dpbik7XG4gICAgaWYoIXRoaXMuaXNQcm9jZXNzTmV3TG9naW4pe1xuICAgICAgdGhpcy5jbGFpbWFudFNlcnZpY2UudmFsaWRhdGVBbmRVcGRhdGVFbWFpbCh0aGlzLmNsYWltSWRlbnRpZmllciwgdGhpcy51bmlxdWVLZXkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIHZhciBtb2RlbDogVmFsaWRhdGlvbk1vZGVsID0ge307XG4gICAgICAgICAgbW9kZWwgPSByZXM7XG4gICAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTsgICAgIFxuICAgICAgICAgIHRoaXMuY2xhaW1TZXJ2aWNlLmZldGNoU1NBU3RhdHVzRm9yQ2xhaW1BcHBsaWNhdGlvbih0aGlzLmNsYWltSWRlbnRpZmllcikuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzcCA9PiB7XG4gICAgICAgICAgICAgIHZhciBzc2FNb2RlbCA6IFNzYVZlcmlmaWNhdGlvbk1vZGVsID0gcmVzcDtcbiAgICAgICAgICAgICAgaWYoc3NhTW9kZWwuc3NhVmVyaWZpZWQgPT09IGZhbHNlKXtcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGFGb3JTU05WZXJpZnlNb2RlbCA9IHNzYU1vZGVsO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NzblJldmVyaWZ5RGlhbG9nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYodGhpcy5hY3RpdmVEaXNhc3RlcnNGb3VuZCA9PT0gdHJ1ZSl7XG4gICAgICAgICAgICAgICAgdGhpcy5yZURpcmVjdFRvRHVhKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZihtb2RlbC5wYXRoLnN1YnN0cmluZygwLDQpPT0nL3NmYicpe1xuICAgICAgICAgICAgICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlRm9yd2FyZChbbW9kZWwucGF0aF0se3F1ZXJ5UGFyYW1zOntpZGVudGlmaWVyOnRoaXMuY2xhaW1JZGVudGlmaWVyLCB1bmlxdWVLZXk6dGhpcy51bmlxdWVLZXl9fSlcbiAgICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgbW9kZWwucGF0aCAsICdfc2VsZicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIClcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgIHRoaXMuZXJyb3JUZXh0ID0gZXJyLm1zZztcbiAgICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dvdXQoKTtcbiAgICAgICAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3JPY2N1cmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmKHRoaXMudXRpbC5pc1N0YXRlKFwiTVNcIikpe1xuICAgICAgICAgIHRoaXMuc2hvd1JlZGlyZWN0UHJvZmlsZURpYWxvZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy51c2VyRW1haWwgPSB0aGlzLnVzZXJNb2RlbC5lbWFpbElkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzaG91bGQgbG9naW4gdG8gYXBwbGljYXRpb24nKTtcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3NvY2lhdGVTc25TdWNjZXNzKCl7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2Fzc29jaWF0ZVNzblN1Y2Nlc3MnKTtcbiAgICB0aGlzLnNob3dBc3NvY2lhdGVTc25Qb3B1cCA9IGZhbHNlO1xuICAgIGlmKHRoaXMudXRpbC5pc1N0YXRlKFwiTVNcIikpe1xuICAgICAgdGhpcy5zaG93UmVkaXJlY3RQcm9maWxlRGlhbG9nID0gdHJ1ZTtcbiAgICAgIHRoaXMudXNlckVtYWlsID0gdGhpcy51c2VyTW9kZWwuZW1haWxJZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Nob3VsZCBsb2dpbiB0byBhcHBsaWNhdGlvbicpO1xuICAgICAgdGhpcy5yZWRpcmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZGlyZWN0KCkge1xuICAgIGlmKHRoaXMubG9naW5TZXJ2aWNlLmlzQ2xhaW1hbnQoKSl7ICAgICAgXG4gICAgICBjb25zdCBpc0NhcGFjaXRvciA9IHRoaXMucGxhdGZvcm0uaXMoJ2NhcGFjaXRvcicpO1xuICAgICAgaWYoaXNDYXBhY2l0b3Ipe1xuICAgICAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoXCJ3ZWxjb21lXCIpO1xuICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICB9IGVsc2V7XG4gICAgICAgIGxldCBzaG93TW9iaWxlVmlldyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ21vYmlsZScpID09ICd0cnVlJztcbiAgICAgICAgaWYoc2hvd01vYmlsZVZpZXcpe1xuICAgICAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoXCJ3ZWxjb21lXCIpO1xuICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgIH0gZWxzZSBpZighc2hvd01vYmlsZVZpZXcgJiYgTGliQ29uc3RhbnRzLmxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJyl7XG4gICAgICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChcIndlbGNvbWVcIik7XG4gICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgfSBlbHNle1xuICAgICAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsRXh0ZXJuYWx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dGhpcy51c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dGhpcy51c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgICAgIH1cbiAgICAgIH0gIFxuICAgIH1cbiAgfVxuXG4gIHJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsKCkge1xuICAgIHRoaXMuc2hvd0xvYWRlclRoZW1lID0gZmFsc2U7XG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICB0aGlzLmNsYWltSWRlbnRpZmllciA9IHBhcmFtc1snY2xhaW1JZGVudGlmaWVyJ107XG4gICAgICB0aGlzLmNsYWltYW50U2VydmljZS5yZXNlbmRWZXJpZmljYXRpb25FbWFpbCh0aGlzLmNsYWltSWRlbnRpZmllcilcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlclRoZW1lID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmVycm9yT2NjdXJlZCA9IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLmVycm9yVGV4dCA9IGVyci5tc2c7XG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lcnJvck9jY3VyZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG4gICAgKTtcblxuICB9XG5cbiAgcmVWZXJpZnlTU05Gb3JDbGFpbWFudChkYXRhIDogU3NhVmVyaWZpY2F0aW9uTW9kZWwpe1xuICAgIHRoaXMuc2hvd1NzblJldmVyaWZ5RGlhbG9nID0gZmFsc2U7XG5cbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgIHRoaXMuY2xhaW1TZXJ2aWNlLnJlVmVyaWZ5U1NBU3RhdHVzRm9yQ2xhaW1BcHBsaWNhdGlvbihkYXRhLCB0aGlzLmNsYWltSWRlbnRpZmllcikuc3Vic2NyaWJlKFxuICAgICAgcmVzcCA9PiB7XG4gICAgICAgIHZhciBzc2FNb2RlbCA6IFNzYVZlcmlmaWNhdGlvbk1vZGVsID0gcmVzcDtcbiAgICAgICAgaWYoc3NhTW9kZWwucmVWZXJpZnlTdWNjZXNzID09PSB0cnVlKXtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIlNTTiByZS12ZXJpZmljYXRpb24gZG9uZS4gTW92ZSBmb3Jld2FyZFwiKTtcbiAgICAgICAgICBpZih0aGlzLmFjdGl2ZURpc2FzdGVyc0ZvdW5kID09PSB0cnVlKXtcbiAgICAgICAgICAgIHRoaXMucmVEaXJlY3RUb0R1YSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZihzc2FNb2RlbC5yZURpcmVjdFBhdGguc3Vic3RyaW5nKDAsNCk9PScvc2ZiJyl7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlRm9yd2FyZChbc3NhTW9kZWwucmVEaXJlY3RQYXRoXSx7cXVlcnlQYXJhbXM6e2lkZW50aWZpZXI6dGhpcy5jbGFpbUlkZW50aWZpZXIsIHVuaXF1ZUtleTp0aGlzLnVuaXF1ZUtleX19KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICB9XG4gICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgdGhpcy5lcnJvclRleHQgPSBlcnIubXNnO1xuICAgICAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yT2NjdXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ291dCgpO1xuICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG4gICAgICB9XG4gICAgKTtcblxuICB9XG5cbiAgbG9nb3V0KCl7XG4gICAgdGhpcy5zaG93UmVkaXJlY3RQcm9maWxlRGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5zaG93U3NuUmV2ZXJpZnlEaWFsb2cgPSBmYWxzZTtcbiAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dvdXQoKTtcbiAgfVxuXG4gIHJlZGlyZWN0U3VjY2Vzcygpe1xuICAgIHRoaXMuc2hvd1JlZGlyZWN0UHJvZmlsZURpYWxvZyA9IGZhbHNlO1xuICAgIGlmKCgoTGliQ29uc3RhbnRzLnNzb0Nvb2tpZU5hbWUgKyBcIlwiKS5pbmNsdWRlcygnVUFUJykgfHwgKExpYkNvbnN0YW50cy5zc29Db29raWVOYW1lICsgXCJcIikuaW5jbHVkZXMoJ1BST0QnKSkgJiYgdGhpcy51dGlsLmlzU3RhdGUoJ21zJykpe1xuICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLm1zd29ya3NVcmx9YCwgJ19zZWxmJyk7XG4gICAgfWVsc2V7XG4gICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt0aGlzLnVzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt0aGlzLnVzZXJNb2RlbC5yZWZyZXNoX3Rva2VufSZ2PTIyOTlgLCAnX3NlbGYnKTtcbiAgICB9XG4gIH1cblxuICBzYXZlRHVhU3VjY2VzcyhkYXRhIDogRHVhUmVxdWVzdE1vZGVsKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy4uc2F2ZUR1YVN1Y2Nlc3MgPT09ICcgLCBkYXRhKTtcbiAgICB0aGlzLnNob3dEdWFQb3B1cCA9IGZhbHNlO1xuICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XG4gICAgICB0aGlzLmNsYWltU2VydmljZS5zYXZlRGlhc3RlckltcGFjdE9uRXhpc3RpbmdDbGFpbUFwcChkYXRhKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlc3AgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Jlc3BvbnNlID09PT0nLCByZXNwKTtcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVGb3J3YXJkKFsnL3NmYi9maWxlLWNsYWltJ10se3F1ZXJ5UGFyYW1zOntpZGVudGlmaWVyOnRoaXMuY2xhaW1JZGVudGlmaWVyLCB1bmlxdWVLZXk6dGhpcy51bmlxdWVLZXl9fSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImVyciA9IFwiLCBlcnIpO1xuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JUZXh0ID0gZXJyLm1zZztcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlclRoZW1lID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmVycm9yT2NjdXJlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dvdXQoKTtcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7ICAgIFxuICB9XG5cbiAgcmVEaXJlY3RUb0R1YSgpe1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdkdWEgcG9wdXAgc2hvdWxkIG9wZW4gbm93Jyk7XG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICB0aGlzLnNob3dEdWFQb3B1cCA9IHRydWU7XG4gICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XHJcbiAgPGFwcC1oZWFkZXIgW3NlY29uZFRvb2xiYXJdPVwiZmFsc2VcIiBbZGlzcGxheUxvZ29dPVwidHJ1ZVwiPjwvYXBwLWhlYWRlcj5cclxuPC9pb24taGVhZGVyPlxyXG5cclxuPGlvbi1jb250ZW50PlxyXG4gIDxhcHAtY29udGVudCBbc2hvd0hlbHBdPVwiZmFsc2VcIiBbaGlkZUZvb3Rlcl09XCJ0cnVlXCIgW3Nob3dFcnJvcl09XCJ0cnVlXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0xvYWRlclRoZW1lXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCI+PC9pb24tc3Bpbm5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cImNvbG9yOnZhcigtLWlvbi1jb2xvci1ncmV5KTtcIiAqbmdJZj1cIiFlcnJvck9jY3VyZWRcIj5cclxuICAgICAgPGgxIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAyNXB4O1wiPllvdSdhbGwgYXJlIHNldCE8L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnIgLz48YnIgLz48YnIgLz48YnIgLz5cclxuICAgIDxpb24tZ3JpZD5cclxuICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpc1Byb2Nlc3NOZXdMb2dpblwiPlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjEwXCIgc2l6ZUxnPVwiOFwiIHNpemVYbD1cIjhcIlxyXG4gICAgICAgICAgb2Zmc2V0TWQ9XCIxXCIgb2Zmc2V0WGw9XCIyXCIgb2Zmc2V0TGc9XCIyXCI+XHJcbiAgICAgICAgICA8aDM+UGxlYXNlIGxvZ2luIHRvIGFjdGl2YXRlIHlvdXIgYWNjb3VudC48L2gzPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZj1cIiFpc1Byb2Nlc3NOZXdMb2dpblwiPlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjEwXCIgc2l6ZUxnPVwiOFwiIHNpemVYbD1cIjhcIlxyXG4gICAgICAgICAgb2Zmc2V0TWQ9XCIxXCIgb2Zmc2V0WGw9XCIyXCIgb2Zmc2V0TGc9XCIyXCI+XHJcbiAgICAgICAgICA8aDM+TGV0J3MgYWN0aXZhdGUgeW91ciBhY2NvdW50LjwvaDM+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDxpb24tcm93ICpuZ0lmPVwiIWlzUHJvY2Vzc05ld0xvZ2luXCI+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXIgaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiMTBcIiBzaXplTGc9XCI4XCIgc2l6ZVhsPVwiOFwiXHJcbiAgICAgICAgICBvZmZzZXRNZD1cIjFcIiBvZmZzZXRYbD1cIjJcIiBvZmZzZXRMZz1cIjJcIj5cclxuICAgICAgICAgIDxoMz5QbGVhc2UgbG9naW4gdG8gY29udGludWUgd2l0aCB5b3VyIGFwcGxpY2F0aW9uLjwvaDM+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjhcIiBzaXplTGc9XCI0XCIgc2l6ZVhsPVwiNFwiXHJcbiAgICAgICAgICBvZmZzZXRNZD1cIjJcIiBvZmZzZXRYbD1cIjRcIiBvZmZzZXRMZz1cIjRcIj5cclxuICAgICAgICAgIDxhcHAtdXNlci1sb2dpbiAoZXJyb3IpPVwibG9naW5FcnJvcigkZXZlbnQpXCIgKHN1Y2Nlc3MpPVwiZmV0Y2hRdWVzdGlvbm5haXJlKClcIj48L2FwcC11c2VyLWxvZ2luPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuICA8L2FwcC1jb250ZW50PlxyXG48L2lvbi1jb250ZW50PlxyXG48YXBwLXByb2ZpbGUtcmVkaXJlY3QgW2VtYWlsXT1cInVzZXJFbWFpbFwiIFtyZWRpcmVjdFBhZ2VdPVwiYWNjb3VudEFjdGl2ZVBhZ2VcIiAqbmdJZj1cInNob3dSZWRpcmVjdFByb2ZpbGVEaWFsb2dcIiAob25DbG9zZSk9XCJsb2dvdXQoKVwiIChvblN1Y2Nlc3MpPVwicmVkaXJlY3RTdWNjZXNzKClcIj48L2FwcC1wcm9maWxlLXJlZGlyZWN0PlxyXG48YXBwLXNzbi1yZXZlcmlmeSAqbmdJZj1cInNob3dTc25SZXZlcmlmeURpYWxvZ1wiIFtpbnB1dERhdGFdPVwidXNlckRhdGFGb3JTU05WZXJpZnlNb2RlbFwiIChvbkNsb3NlKT1cImxvZ291dCgpXCIgKG9uU3VjY2Vzcyk9XCJyZVZlcmlmeVNTTkZvckNsYWltYW50KCRldmVudClcIj48L2FwcC1zc24tcmV2ZXJpZnk+XHJcbjxhcHAtYXNzb2NpYXRlLXNzbiAqbmdJZj1cInNob3dBc3NvY2lhdGVTc25Qb3B1cFwiIChzdWNjZXNzKT1cImFzc29jaWF0ZVNzblN1Y2Nlc3MoKVwiPjwvYXBwLWFzc29jaWF0ZS1zc24+XHJcbjxhcHAtZHVhLXJlcXVlc3QtcG9wdXAgKm5nSWY9XCJzaG93RHVhUG9wdXBcIiAoc3VjY2Vzc0R1YSk9XCJzYXZlRHVhU3VjY2VzcygkZXZlbnQpXCIgKG9uQ2xvc2UpPVwibG9nb3V0KClcIj48L2FwcC1kdWEtcmVxdWVzdC1wb3B1cD5cclxuIl19
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zdWNjZXNzLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9hY2NvdW50LXN1Y2Nlc3MvYWNjb3VudC1zdWNjZXNzLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9hY2NvdW50LXN1Y2Nlc3MvYWNjb3VudC1zdWNjZXNzLnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNSeEUsK0JBQXFEO0lBQ25ELGtDQUF1QztJQUN6QyxpQkFBTTs7O0lBQ04sK0JBQWdFLGFBQUE7SUFDOUIsZ0NBQWdCO0lBQUEsaUJBQUssRUFBQTs7O0lBSXJELCtCQUFtQyxrQkFBQSxTQUFBO0lBRzNCLHNEQUFzQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7O0lBR25ELCtCQUFvQyxrQkFBQSxTQUFBO0lBRzVCLDRDQUE0QjtJQUFBLGlCQUFLLEVBQUEsRUFBQTs7O0lBR3pDLCtCQUFvQyxrQkFBQSxTQUFBO0lBRzVCLCtEQUErQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7OztJQVlsRSxnREFBb0s7SUFBckQsb01BQVcsZUFBQSxlQUFRLENB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QSx5QkFBQTtZQUdXLDhHQUFTLHNCQUFrQixJQUFDLCtGQUFZLHdCQUFvQixJQUFoQztZQUFrQyxpQkFBaUIsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBO1lBTXpHLHVHQUEyTCxrRkFBQSxvRkFBQSw2RkFBQTs7WUF4QzdLLGVBQXVCO1lBQXZCLHFDQUF1QixxQkFBQTtZQUl0QixlQUFrQjtZQUFsQixnQ0FBa0Isb0JBQUEsbUJBQUE7WUFDdkIsZUFBcUI7WUFBckIsMENBQXFCO1lBR2dCLGVBQW1CO1lBQW5CLHdDQUFtQjtZQUtsRCxlQUF1QjtZQUF2Qiw0Q0FBdUI7WUFNdkIsZUFBd0I7WUFBeEIsNkNBQXdCO1lBTXhCLGVBQXdCO1lBQXhCLDZDQUF3QjtZQWVzQyxlQUErQjtZQUEvQixvREFBK0I7WUFDMUYsZUFBMkI7WUFBM0IsZ0RBQTJCO1lBQzFCLGVBQTJCO1lBQTNCLGdEQUEyQjtZQUN2QixlQUFrQjtZQUFsQix1Q0FBa0I7OztpRkRyQjdCLGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLGlCQUFpQjs0T0E0QjNCLE9BQU87a0JBRE4sTUFBTTtZQUlQLEtBQUs7a0JBREosTUFBTTs7a0ZBMUJJLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQgLCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyLCBQbGF0Zm9ybSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFN1Y2Nlc3NQYWdlRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1N1Y2Nlc3NQYWdlRWxlbWVudCc7XG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IENsYWltYW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LXNlcnZpY2UvY2xhaW1hbnQuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9WYWxpZGF0aW9uTW9kZWwnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XG5pbXBvcnQgeyBTc2FWZXJpZmljYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9Tc2FWZXJpZmljYXRpb25Nb2RlbCc7XG5pbXBvcnQgeyBLZXlWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvS2V5VmFsdWVNb2RlbCc7XG5pbXBvcnQgeyBEdWFSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvRHVhUmVxdWVzdE1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNjb3VudC1zdWNjZXNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY291bnQtc3VjY2Vzcy5wYWdlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2NvdW50LXN1Y2Nlc3MucGFnZS5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRTdWNjZXNzUGFnZSBleHRlbmRzIEJhc2VQYWdlIGltcGxlbWVudHMgT25Jbml0IHtcblxuXG4gIHB1YmxpYyBzaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgcHVibGljIGVycm9yT2NjdXJlZCA9IHRydWU7XG4gIHB1YmxpYyBjbGFpbUlkZW50aWZpZXI6IHN0cmluZztcbiAgcHVibGljIHVuaXF1ZUtleTogc3RyaW5nO1xuICBwdWJsaWMgcHJvY2Vzc1R5cGU6IHN0cmluZztcbiAgcHVibGljIGVycm9yVGV4dDogc3RyaW5nO1xuICBwdWJsaWMgaXNQcm9jZXNzTmV3TG9naW4gPSBmYWxzZTtcbiAgcHVibGljIHNob3dSZWRpcmVjdFByb2ZpbGVEaWFsb2cgPSBmYWxzZTtcbiAgcHVibGljIHNob3dTc25SZXZlcmlmeURpYWxvZyA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0Fzc29jaWF0ZVNzblBvcHVwID0gZmFsc2U7XG4gIHB1YmxpYyB1c2VyRW1haWw6IHN0cmluZztcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xuICBwdWJsaWMgdXNlckRhdGFGb3JTU05WZXJpZnlNb2RlbCA6IFNzYVZlcmlmaWNhdGlvbk1vZGVsID0gbmV3IFNzYVZlcmlmaWNhdGlvbk1vZGVsKCk7XG4gIHB1YmxpYyBuZXh0UGFnZVBhdGg6IHN0cmluZztcbiAgcHVibGljIGFjY291bnRBY3RpdmVQYWdlOiBzdHJpbmcgPSAnYWNjb3VudEFjdGl2ZVBhZ2UnXG4gIHB1YmxpYyBzaG93RHVhUG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGFjdGl2ZURpc2FzdGVyc0ZvdW5kIDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbGlzdE9mRGlzYXN0ZXJzOiBLZXlWYWx1ZU1vZGVsW107XG4gIGVsZW1lbnRzOiBCZWhhdmlvclN1YmplY3Q8U3VjY2Vzc1BhZ2VFbGVtZW50PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3VjY2Vzc1BhZ2VFbGVtZW50PihudWxsKTtcblxuICBAT3V0cHV0KCkgXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBcbiAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHVibGljIGNsYWltYW50U2VydmljZTogQ2xhaW1hbnRTZXJ2aWNlLCBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOkxvZ2luU2VydmljZSwgcHVibGljIGNsYWltU2VydmljZSA6IENsYWltU2VydmljZSwgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hY3RpdmF0ZUFjY291bnQoKTtcbiAgICB0aGlzLmNsYWltU2VydmljZS5mZXRjaExpc3RPZkRpc2F0ZXJzKCkuc3Vic2NyaWJlKFxuICAgICAgcmVzID0+IHtcbiAgICAgICB0aGlzLmxpc3RPZkRpc2FzdGVycyA9IHJlcztcbiAgICAgICAgaWYodGhpcy5saXN0T2ZEaXNhc3RlcnMgIT0gbnVsbCAmJiB0aGlzLmxpc3RPZkRpc2FzdGVycy5sZW5ndGggPiAwKXtcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpc2FzdGVyc0ZvdW5kID0gdHJ1ZTtcbiAgICAgIH19KTtcbiAgfVxuXG4gIGFjdGl2YXRlQWNjb3VudCgpIHtcbiAgICB0aGlzLmVycm9yT2NjdXJlZCA9IHRydWU7XG4gICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMuY2xhaW1JZGVudGlmaWVyID0gcGFyYW1zWydjbGFpbUlkZW50aWZpZXInXTtcbiAgICAgIHRoaXMudW5pcXVlS2V5ID0gcGFyYW1zWyd1bmlxdWVLZXknXTtcbiAgICAgIHRoaXMucHJvY2Vzc1R5cGUgPSBwYXJhbXNbJ3Byb2Nlc3NUeXBlJ107XG4gICAgICB0aGlzLmlzUHJvY2Vzc05ld0xvZ2luID0gdGhpcy5wcm9jZXNzVHlwZSA9PSAnbmV3LWxvZ2luJyA/IHRydWU6ZmFsc2U7IC8vIHZhbHVlIHNldCBmb3IgTVMgb25seSwgcmVzdCBpcyBmYWxzZTtcbiAgICB9KTtcblxuICB9XG5cbiAgYWN0aXZhdGUoKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnbmV2ZXIgY2FsbGVkJylcbiAgICB0aGlzLmNsYWltYW50U2VydmljZS52YWxpZGF0ZUVtYWlsKHRoaXMuY2xhaW1JZGVudGlmaWVyLCB0aGlzLnVuaXF1ZUtleSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlclRoZW1lID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmVycm9yT2NjdXJlZCA9IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdFcnJvcicsIGVycik7XG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5lcnJvclRleHQgPSBlcnIubXNnO1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JPY2N1cmVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gIH1cblxuICBsb2dpbkVycm9yKGVycil7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoZXJyKTtcbiAgfVxuXG4gIGZldGNoUXVlc3Rpb25uYWlyZSgpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnaGVyZSBpbiBmZXRjaCBxZScgKyB0aGlzLnByb2Nlc3NUeXBlKTtcbiAgICB0aGlzLnVzZXJNb2RlbCA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFVzZXIoKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsdWVzIGZvciBib29sZWFuIGNhc2VzID0gJywgdGhpcy5zaG93RHVhUG9wdXAsIHRoaXMuaXNQcm9jZXNzTmV3TG9naW4pO1xuICAgIGlmKCF0aGlzLmlzUHJvY2Vzc05ld0xvZ2luKXtcbiAgICAgIHRoaXMuY2xhaW1hbnRTZXJ2aWNlLnZhbGlkYXRlQW5kVXBkYXRlRW1haWwodGhpcy5jbGFpbUlkZW50aWZpZXIsIHRoaXMudW5pcXVlS2V5KVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICB2YXIgbW9kZWw6IFZhbGlkYXRpb25Nb2RlbCA9IHt9O1xuICAgICAgICAgIG1vZGVsID0gcmVzO1xuICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7ICAgICBcbiAgICAgICAgICB0aGlzLmNsYWltU2VydmljZS5mZXRjaFNTQVN0YXR1c0ZvckNsYWltQXBwbGljYXRpb24odGhpcy5jbGFpbUlkZW50aWZpZXIpLnN1YnNjcmliZShcbiAgICAgICAgICAgIHJlc3AgPT4ge1xuICAgICAgICAgICAgICB2YXIgc3NhTW9kZWwgOiBTc2FWZXJpZmljYXRpb25Nb2RlbCA9IHJlc3A7XG4gICAgICAgICAgICAgIGlmKHNzYU1vZGVsLnNzYVZlcmlmaWVkID09PSBmYWxzZSl7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhRm9yU1NOVmVyaWZ5TW9kZWwgPSBzc2FNb2RlbDtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTc25SZXZlcmlmeURpYWxvZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmKHRoaXMuYWN0aXZlRGlzYXN0ZXJzRm91bmQgPT09IHRydWUpe1xuICAgICAgICAgICAgICAgIHRoaXMucmVEaXJlY3RUb0R1YSgpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlclRoZW1lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYobW9kZWwucGF0aC5zdWJzdHJpbmcoMCw0KT09Jy9zZmInKXtcbiAgICAgICAgICAgICAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZUZvcndhcmQoW21vZGVsLnBhdGhdLHtxdWVyeVBhcmFtczp7aWRlbnRpZmllcjp0aGlzLmNsYWltSWRlbnRpZmllciwgdW5pcXVlS2V5OnRoaXMudW5pcXVlS2V5fX0pXG4gICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGxvY2F0aW9uLm9yaWdpbiArIG1vZGVsLnBhdGggLCAnX3NlbGYnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICB0aGlzLmVycm9yVGV4dCA9IGVyci5tc2c7XG4gICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UubG9nb3V0KCk7XG4gICAgICAgICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yT2NjdXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZih0aGlzLnV0aWwuaXNTdGF0ZShcIk1TXCIpKXtcbiAgICAgICAgICB0aGlzLnNob3dSZWRpcmVjdFByb2ZpbGVEaWFsb2cgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudXNlckVtYWlsID0gdGhpcy51c2VyTW9kZWwuZW1haWxJZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnc2hvdWxkIGxvZ2luIHRvIGFwcGxpY2F0aW9uJyk7XG4gICAgICAgICAgdGhpcy5yZWRpcmVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXNzb2NpYXRlU3NuU3VjY2Vzcygpe1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdhc3NvY2lhdGVTc25TdWNjZXNzJyk7XG4gICAgdGhpcy5zaG93QXNzb2NpYXRlU3NuUG9wdXAgPSBmYWxzZTtcbiAgICBpZih0aGlzLnV0aWwuaXNTdGF0ZShcIk1TXCIpKXtcbiAgICAgIHRoaXMuc2hvd1JlZGlyZWN0UHJvZmlsZURpYWxvZyA9IHRydWU7XG4gICAgICB0aGlzLnVzZXJFbWFpbCA9IHRoaXMudXNlck1vZGVsLmVtYWlsSWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzaG91bGQgbG9naW4gdG8gYXBwbGljYXRpb24nKTtcbiAgICAgIHRoaXMucmVkaXJlY3QoKTtcbiAgICB9XG4gIH1cblxuICByZWRpcmVjdCgpIHtcbiAgICBpZih0aGlzLmxvZ2luU2VydmljZS5pc0NsYWltYW50KCkpeyAgICAgIFxuICAgICAgY29uc3QgaXNDYXBhY2l0b3IgPSB0aGlzLnBsYXRmb3JtLmlzKCdjYXBhY2l0b3InKTtcbiAgICAgIGlmKGlzQ2FwYWNpdG9yKXtcbiAgICAgICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFwid2VsY29tZVwiKTtcbiAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgfSBlbHNle1xuICAgICAgICBsZXQgc2hvd01vYmlsZVZpZXcgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdtb2JpbGUnKSA9PSAndHJ1ZSc7XG4gICAgICAgIGlmKHNob3dNb2JpbGVWaWV3KXtcbiAgICAgICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFwid2VsY29tZVwiKTtcbiAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICB9IGVsc2UgaWYoIXNob3dNb2JpbGVWaWV3ICYmIExpYkNvbnN0YW50cy5sZWdhY3lNZW51ID09ICdmYWxzZScpe1xuICAgICAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoXCJ3ZWxjb21lXCIpO1xuICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgIH0gZWxzZXtcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3RoaXMudXNlck1vZGVsLmFjY2Vzc190b2tlbn0mcj0ke3RoaXMudXNlck1vZGVsLnJlZnJlc2hfdG9rZW59JnY9MjI5OWAsICdfc2VsZicpO1xuICAgICAgICB9XG4gICAgICB9ICBcbiAgICB9XG4gIH1cblxuICByZXNlbmRWZXJpZmljYXRpb25FbWFpbCgpIHtcbiAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgdGhpcy5jbGFpbUlkZW50aWZpZXIgPSBwYXJhbXNbJ2NsYWltSWRlbnRpZmllciddO1xuICAgICAgdGhpcy5jbGFpbWFudFNlcnZpY2UucmVzZW5kVmVyaWZpY2F0aW9uRW1haWwodGhpcy5jbGFpbUlkZW50aWZpZXIpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lcnJvck9jY3VyZWQgPSBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5lcnJvclRleHQgPSBlcnIubXNnO1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JPY2N1cmVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICAgICk7XG5cbiAgfVxuXG4gIHJlVmVyaWZ5U1NORm9yQ2xhaW1hbnQoZGF0YSA6IFNzYVZlcmlmaWNhdGlvbk1vZGVsKXtcbiAgICB0aGlzLnNob3dTc25SZXZlcmlmeURpYWxvZyA9IGZhbHNlO1xuXG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICB0aGlzLmNsYWltU2VydmljZS5yZVZlcmlmeVNTQVN0YXR1c0ZvckNsYWltQXBwbGljYXRpb24oZGF0YSwgdGhpcy5jbGFpbUlkZW50aWZpZXIpLnN1YnNjcmliZShcbiAgICAgIHJlc3AgPT4ge1xuICAgICAgICB2YXIgc3NhTW9kZWwgOiBTc2FWZXJpZmljYXRpb25Nb2RlbCA9IHJlc3A7XG4gICAgICAgIGlmKHNzYU1vZGVsLnJlVmVyaWZ5U3VjY2VzcyA9PT0gdHJ1ZSl7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJTU04gcmUtdmVyaWZpY2F0aW9uIGRvbmUuIE1vdmUgZm9yZXdhcmRcIik7XG4gICAgICAgICAgaWYodGhpcy5hY3RpdmVEaXNhc3RlcnNGb3VuZCA9PT0gdHJ1ZSl7XG4gICAgICAgICAgICB0aGlzLnJlRGlyZWN0VG9EdWEoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYoc3NhTW9kZWwucmVEaXJlY3RQYXRoLnN1YnN0cmluZygwLDQpPT0nL3NmYicpe1xuICAgICAgICAgICAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZUZvcndhcmQoW3NzYU1vZGVsLnJlRGlyZWN0UGF0aF0se3F1ZXJ5UGFyYW1zOntpZGVudGlmaWVyOnRoaXMuY2xhaW1JZGVudGlmaWVyLCB1bmlxdWVLZXk6dGhpcy51bmlxdWVLZXl9fSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgfVxuICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiZXJyXCIsIGVycik7XG4gICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgIHRoaXMuZXJyb3JUZXh0ID0gZXJyLm1zZztcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyVGhlbWUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lcnJvck9jY3VyZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dvdXQoKTtcbiAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xuICAgICAgfVxuICAgICk7XG5cbiAgfVxuXG4gIGxvZ291dCgpe1xuICAgIHRoaXMuc2hvd1JlZGlyZWN0UHJvZmlsZURpYWxvZyA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd1NzblJldmVyaWZ5RGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5sb2dpblNlcnZpY2UubG9nb3V0KCk7XG4gIH1cblxuICByZWRpcmVjdFN1Y2Nlc3MoKXtcbiAgICB0aGlzLnNob3dSZWRpcmVjdFByb2ZpbGVEaWFsb2cgPSBmYWxzZTtcbiAgICBpZigoKExpYkNvbnN0YW50cy5zc29Db29raWVOYW1lICsgXCJcIikuaW5jbHVkZXMoJ1VBVCcpIHx8IChMaWJDb25zdGFudHMuc3NvQ29va2llTmFtZSArIFwiXCIpLmluY2x1ZGVzKCdQUk9EJykpICYmIHRoaXMudXRpbC5pc1N0YXRlKCdtcycpKXtcbiAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5tc3dvcmtzVXJsfWAsICdfc2VsZicpO1xuICAgIH1lbHNle1xuICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsRXh0ZXJuYWx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dGhpcy51c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dGhpcy51c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZUR1YVN1Y2Nlc3MoZGF0YSA6IER1YVJlcXVlc3RNb2RlbCl7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuLnNhdmVEdWFTdWNjZXNzID09PSAnICwgZGF0YSk7XG4gICAgdGhpcy5zaG93RHVhUG9wdXAgPSBmYWxzZTtcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgICAgdGhpcy5jbGFpbVNlcnZpY2Uuc2F2ZURpYXN0ZXJJbXBhY3RPbkV4aXN0aW5nQ2xhaW1BcHAoZGF0YSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICByZXNwID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXNwb25zZSA9PT09JywgcmVzcCk7XG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlRm9yd2FyZChbJy9zZmIvZmlsZS1jbGFpbSddLHtxdWVyeVBhcmFtczp7aWRlbnRpZmllcjp0aGlzLmNsYWltSWRlbnRpZmllciwgdW5pcXVlS2V5OnRoaXMudW5pcXVlS2V5fX0pXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJlcnIgPSBcIiwgZXJyKTtcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLmVycm9yVGV4dCA9IGVyci5tc2c7XG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXJUaGVtZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lcnJvck9jY3VyZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UubG9nb3V0KCk7XG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG4gICAgICAgICAgfVxuICAgICAgICApOyAgICBcbiAgfVxuXG4gIHJlRGlyZWN0VG9EdWEoKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZHVhIHBvcHVwIHNob3VsZCBvcGVuIG5vdycpO1xuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgdGhpcy5zaG93RHVhUG9wdXAgPSB0cnVlO1xuICAgIHRoaXMuc2hvd0xvYWRlclRoZW1lID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyPlxyXG4gIDxhcHAtaGVhZGVyIFtzZWNvbmRUb29sYmFyXT1cImZhbHNlXCIgW2Rpc3BsYXlMb2dvXT1cInRydWVcIj48L2FwcC1oZWFkZXI+XHJcbjwvaW9uLWhlYWRlcj5cclxuXHJcbjxpb24tY29udGVudD5cclxuICA8YXBwLWNvbnRlbnQgW3Nob3dIZWxwXT1cImZhbHNlXCIgW2hpZGVGb290ZXJdPVwidHJ1ZVwiIFtzaG93RXJyb3JdPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dMb2FkZXJUaGVtZVwiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiPjwvaW9uLXNwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgc3R5bGU9XCJjb2xvcjp2YXIoLS1pb24tY29sb3ItZ3JleSk7XCIgKm5nSWY9XCIhZXJyb3JPY2N1cmVkXCI+XHJcbiAgICAgIDxoMSBzdHlsZT1cInBhZGRpbmctbGVmdDogMjVweDtcIj5Zb3UnYWxsIGFyZSBzZXQhPC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+XHJcbiAgICA8aW9uLWdyaWQ+XHJcbiAgICAgIDxpb24tcm93ICpuZ0lmPVwiaXNQcm9jZXNzTmV3TG9naW5cIj5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIxMFwiIHNpemVMZz1cIjhcIiBzaXplWGw9XCI4XCJcclxuICAgICAgICAgIG9mZnNldE1kPVwiMVwiIG9mZnNldFhsPVwiMlwiIG9mZnNldExnPVwiMlwiPlxyXG4gICAgICAgICAgPGgzPlBsZWFzZSBsb2dpbiB0byBhY3RpdmF0ZSB5b3VyIGFjY291bnQuPC9oMz5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3cgKm5nSWY9XCIhaXNQcm9jZXNzTmV3TG9naW5cIj5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIxMFwiIHNpemVMZz1cIjhcIiBzaXplWGw9XCI4XCJcclxuICAgICAgICAgIG9mZnNldE1kPVwiMVwiIG9mZnNldFhsPVwiMlwiIG9mZnNldExnPVwiMlwiPlxyXG4gICAgICAgICAgPGgzPkxldCdzIGFjdGl2YXRlIHlvdXIgYWNjb3VudC48L2gzPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZj1cIiFpc1Byb2Nlc3NOZXdMb2dpblwiPlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjEwXCIgc2l6ZUxnPVwiOFwiIHNpemVYbD1cIjhcIlxyXG4gICAgICAgICAgb2Zmc2V0TWQ9XCIxXCIgb2Zmc2V0WGw9XCIyXCIgb2Zmc2V0TGc9XCIyXCI+XHJcbiAgICAgICAgICA8aDM+UGxlYXNlIGxvZ2luIHRvIGNvbnRpbnVlIHdpdGggeW91ciBhcHBsaWNhdGlvbi48L2gzPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI4XCIgc2l6ZUxnPVwiNFwiIHNpemVYbD1cIjRcIlxyXG4gICAgICAgICAgb2Zmc2V0TWQ9XCIyXCIgb2Zmc2V0WGw9XCI0XCIgb2Zmc2V0TGc9XCI0XCI+XHJcbiAgICAgICAgICA8YXBwLXVzZXItbG9naW4gKGVycm9yKT1cImxvZ2luRXJyb3IoJGV2ZW50KVwiIChzdWNjZXNzKT1cImZldGNoUXVlc3Rpb25uYWlyZSgpXCI+PC9hcHAtdXNlci1sb2dpbj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvaW9uLWdyaWQ+XHJcbiAgPC9hcHAtY29udGVudD5cclxuPC9pb24tY29udGVudD5cclxuPGFwcC1wcm9maWxlLXJlZGlyZWN0IFtlbWFpbF09XCJ1c2VyRW1haWxcIiBbcmVkaXJlY3RQYWdlXT1cImFjY291bnRBY3RpdmVQYWdlXCIgKm5nSWY9XCJzaG93UmVkaXJlY3RQcm9maWxlRGlhbG9nXCIgKG9uQ2xvc2UpPVwibG9nb3V0KClcIiAob25TdWNjZXNzKT1cInJlZGlyZWN0U3VjY2VzcygpXCI+PC9hcHAtcHJvZmlsZS1yZWRpcmVjdD5cclxuPGFwcC1zc24tcmV2ZXJpZnkgKm5nSWY9XCJzaG93U3NuUmV2ZXJpZnlEaWFsb2dcIiBbaW5wdXREYXRhXT1cInVzZXJEYXRhRm9yU1NOVmVyaWZ5TW9kZWxcIiAob25DbG9zZSk9XCJsb2dvdXQoKVwiIChvblN1Y2Nlc3MpPVwicmVWZXJpZnlTU05Gb3JDbGFpbWFudCgkZXZlbnQpXCI+PC9hcHAtc3NuLXJldmVyaWZ5PlxyXG48YXBwLWFzc29jaWF0ZS1zc24gKm5nSWY9XCJzaG93QXNzb2NpYXRlU3NuUG9wdXBcIiAoc3VjY2Vzcyk9XCJhc3NvY2lhdGVTc25TdWNjZXNzKClcIj48L2FwcC1hc3NvY2lhdGUtc3NuPlxyXG48YXBwLWR1YS1yZXF1ZXN0LXBvcHVwICpuZ0lmPVwic2hvd0R1YVBvcHVwXCIgKHN1Y2Nlc3NEdWEpPVwic2F2ZUR1YVN1Y2Nlc3MoJGV2ZW50KVwiPjwvYXBwLWR1YS1yZXF1ZXN0LXBvcHVwPlxyXG4iXX0=