@hmcts/ccd-case-ui-toolkit 7.1.56-srt-rc3 → 7.1.56-srt-rc5
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.
- package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +13 -5
- package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +6 -1
- package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +2 -2
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +18 -5
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +2 -0
- package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -87,6 +87,12 @@ export class CaseEditComponent {
|
|
|
87
87
|
this.cookieService = cookieService;
|
|
88
88
|
}
|
|
89
89
|
ngOnInit() {
|
|
90
|
+
this.initializeComponent();
|
|
91
|
+
this.route.queryParams.subscribe((params) => {
|
|
92
|
+
this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
initializeComponent() {
|
|
90
96
|
this.wizard = this.wizardFactory.create(this.eventTrigger);
|
|
91
97
|
this.initialUrl = this.sessionStorageService.getItem('eventUrl');
|
|
92
98
|
this.isPageRefreshed = JSON.parse(this.sessionStorageService.getItem('isPageRefreshed'));
|
|
@@ -99,9 +105,11 @@ export class CaseEditComponent {
|
|
|
99
105
|
description: ['']
|
|
100
106
|
})
|
|
101
107
|
});
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
108
|
+
}
|
|
109
|
+
ngOnChanges() {
|
|
110
|
+
if (this.eventTrigger) {
|
|
111
|
+
this.initializeComponent();
|
|
112
|
+
}
|
|
105
113
|
}
|
|
106
114
|
ngOnDestroy() {
|
|
107
115
|
/* istanbul ignore else */
|
|
@@ -538,7 +546,7 @@ export class CaseEditComponent {
|
|
|
538
546
|
return task.case_id === eventDetails.caseId && (task.description?.includes(eventDetails.eventId));
|
|
539
547
|
}
|
|
540
548
|
static ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.CaseNotifier), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i3.ActivatedRoute), i0.ɵɵdirectiveInject(i4.FieldsUtils), i0.ɵɵdirectiveInject(i4.FieldsPurger), i0.ɵɵdirectiveInject(i5.ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(i2.WizardFactoryService), i0.ɵɵdirectiveInject(i4.SessionStorageService), i0.ɵɵdirectiveInject(i4.WindowService), i0.ɵɵdirectiveInject(i4.FormValueService), i0.ɵɵdirectiveInject(i4.FormErrorService), i0.ɵɵdirectiveInject(i4.LoadingService), i0.ɵɵdirectiveInject(i6.ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(i2.WorkAllocationService), i0.ɵɵdirectiveInject(i4.AlertService), i0.ɵɵdirectiveInject(i7.AbstractAppConfig), i0.ɵɵdirectiveInject(i4.ReadCookieService)); };
|
|
541
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService])], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
|
|
549
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService]), i0.ɵɵNgOnChangesFeature], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
|
|
542
550
|
i0.ɵɵelement(0, "router-outlet");
|
|
543
551
|
} }, dependencies: [i3.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:0px}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
|
|
544
552
|
}
|
|
@@ -561,4 +569,4 @@ export class CaseEditComponent {
|
|
|
561
569
|
type: Output
|
|
562
570
|
}] }); })();
|
|
563
571
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditComponent, { className: "CaseEditComponent", filePath: "lib/shared/components/case-editor/case-edit/case-edit.component.ts", lineNumber: 37 }); })();
|
|
564
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBSVUsZ0JBQWdCLEVBQy9CLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFB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Q3ZHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxJQUFJLENBQUMsRUFBRSxzQkFBc0IsSUFBSSxDQUFDLFdBQVcsZ0JBQWdCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hKLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQzsyRUFwa0JVLGlCQUFpQjs2REFBakIsaUJBQWlCLHNRQUZqQixDQUFDLGNBQWMsQ0FBQztZQ2xDN0IsZ0NBQStCOzs7aUZEb0NsQixpQkFBaUI7Y0FON0IsU0FBUzsyQkFDRSxlQUFlLGFBR2QsQ0FBQyxjQUFjLENBQUM7c2tCQVNwQixZQUFZO2tCQURsQixLQUFLO1lBSUMsTUFBTTtrQkFEWixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsV0FBVztrQkFEakIsS0FBSztZQUlDLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFNBQVM7a0JBRGYsTUFBTTs7a0ZBeEJJLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlLCBHcmV5QmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgQ2FzZUVkaXRDYXNlU3VibWl0LCBDYXNlRWRpdEdlbmVyYXRlQ2FzZUV2ZW50RGF0YSwgQ2FzZUVkaXRHZXROZXh0UGFnZSxcbiAgQ2FzZUVkaXRTdWJtaXRGb3JtLFxuICBDYXNlRWRpdG9uRXZlbnRDYW5CZUNvbXBsZXRlZCxcbiAgQ2FzZUV2ZW50RGF0YSwgQ2FzZUV2ZW50VHJpZ2dlciwgQ2FzZUZpZWxkLFxuICBDYXNlVmlldywgRHJhZnQsIEh0dHBFcnJvciwgUHJvZmlsZVxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vdXNlci91c2VyLWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgRXZlbnREZXRhaWxzLCBUYXNrLCBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEZpZWxkc1B1cmdlciwgRmllbGRzVXRpbHMsIEZvcm1FcnJvclNlcnZpY2UsIEZvcm1WYWx1ZVNlcnZpY2UsIExvYWRpbmdTZXJ2aWNlLFxuICBSZWFkQ29va2llU2VydmljZSxcbiAgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLCBXaW5kb3dTZXJ2aWNlXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgV2l6YXJkLCBXaXphcmRQYWdlIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEV2ZW50Q29tcGxldGlvblBhcmFtcyB9IGZyb20gJy4uL2RvbWFpbi9ldmVudC1jb21wbGV0aW9uLXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIFdpemFyZEZhY3RvcnlTZXJ2aWNlLCBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92YWxpZC1wYWdlLWxpc3QtY2FzZUZpZWxkcy5zZXJ2aWNlJztcbmltcG9ydCB7IHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCB9IGZyb20gJy4uL2Nhc2UtZWRpdC11dGlscy9jYXNlLWVkaXQudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vY2FzZS1lZGl0LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbR3JleUJhclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SSUdJTl9RVUVSWV9QQVJBTSA9ICdvcmlnaW4nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFMRVJUX01FU1NBR0UgPSAnUGFnZSBpcyBiZWluZyByZWZyZXNoZWQgc28geW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgZmlyc3QgcGFnZSBvZiB0aGlzIGV2ZW50Lic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0xJRU5UX0NPTlRFWFQgPSAnY2xpZW50Q29udGV4dCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8gPSAndGFza0V2ZW50Q29tcGxldGlvbkluZm8nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Ym1pdDogKGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEsIHByb2ZpbGU/OiBQcm9maWxlKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRlOiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8b2JqZWN0PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2F2ZURyYWZ0OiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSkgPT4gT2JzZXJ2YWJsZTxEcmFmdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyB3aXphcmQ6IFdpemFyZDtcblxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbjtcblxuICBwdWJsaWMgbmF2aWdhdGlvbk9yaWdpbjogYW55O1xuXG4gIHB1YmxpYyBpbml0aWFsVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIGlzUGFnZVJlZnJlc2hlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNTdWJtaXR0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBldmVudENvbXBsZXRpb25QYXJhbXM6IEV2ZW50Q29tcGxldGlvblBhcmFtcztcblxuICBwdWJsaWMgc3VibWl0UmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgcHVibGljIGlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNDYXNlRmxhZ1N1Ym1pc3Npb24gPSBmYWxzZTtcblxuICBwdWJsaWMgaWdub3JlV2FybmluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBlcnJvcjogSHR0cEVycm9yO1xuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc1N1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIHZhbGlkUGFnZUxpc3Q6IFdpemFyZFBhZ2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1V0aWxzOiBGaWVsZHNVdGlscyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1B1cmdlcjogRmllbGRzUHVyZ2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0cmFyU2VydmljZTogQ29uZGl0aW9uYWxTaG93UmVnaXN0cmFyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpemFyZEZhY3Rvcnk6IFdpemFyZEZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dzU2VydmljZTogV2luZG93U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWx1ZVNlcnZpY2U6IEZvcm1WYWx1ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtRXJyb3JTZXJ2aWNlOiBGb3JtRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlOiBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrQWxsb2NhdGlvblNlcnZpY2U6IFdvcmtBbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWJzdHJhY3RDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogUmVhZENvb2tpZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMud2l6YXJkRmFjdG9yeS5jcmVhdGUodGhpcy5ldmVudFRyaWdnZXIpO1xuICAgIHRoaXMuaW5pdGlhbFVybCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgdGhpcy5pc1BhZ2VSZWZyZXNoZWQgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2lzUGFnZVJlZnJlc2hlZCcpKTtcblxuICAgIHRoaXMuY2hlY2tQYWdlUmVmcmVzaCgpO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBkYXRhOiBuZXcgRm9ybUdyb3VwKHt9KSxcbiAgICAgIGV2ZW50OiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgaWQ6IFt0aGlzLmV2ZW50VHJpZ2dlci5pZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgIHN1bW1hcnk6IFsnJ10sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBbJyddXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtczogUGFyYW1zKSA9PiB7XG4gICAgICB0aGlzLm5hdmlnYXRpb25PcmlnaW4gPSBwYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdCkge1xuICAgICAgdGhpcy5jYWxsYmFja0Vycm9yc1N1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hlY2tQYWdlUmVmcmVzaCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc1BhZ2VSZWZyZXNoZWQgJiYgdGhpcy5pbml0aWFsVXJsKSB7XG4gICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgICAgdGhpcy53aW5kb3dzU2VydmljZS5hbGVydChDYXNlRWRpdENvbXBvbmVudC5BTEVSVF9NRVNTQUdFKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmluaXRpYWxVcmxdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldFBhZ2UocGFnZUlkOiBzdHJpbmcpOiBXaXphcmRQYWdlIHtcbiAgICByZXR1cm4gdGhpcy53aXphcmQuZ2V0UGFnZShwYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXJzdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmaXJzdFBhZ2UgPSB0aGlzLndpemFyZC5maXJzdFBhZ2UodGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZmlyc3RQYWdlID8gZmlyc3RQYWdlLmlkIDogJ3N1Ym1pdCddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1BhZ2UocGFnZUlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5nZXRQYWdlKHBhZ2VJZCk7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYWdlID8gcGFnZS5pZCA6ICdzdWJtaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIG5leHQoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5pbml0aWFsVXJsID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnZXZlbnRVcmwnKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnJvdXRlci51cmwgJiYgIXRoaXMuaW5pdGlhbFVybCkge1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnZXZlbnRVcmwnLCB0aGlzLnJvdXRlci51cmwpO1xuICAgIH1cbiAgICB0aGlzLmZpZWxkc1B1cmdlci5jbGVhckhpZGRlbkZpZWxkcyh0aGlzLmZvcm0sIHRoaXMud2l6YXJkLCB0aGlzLmV2ZW50VHJpZ2dlciwgY3VycmVudFBhZ2VJZCk7XG4gICAgY29uc3QgbmV4dFBhZ2UgPSB0aGlzLmdldE5leHRQYWdlKHtcbiAgICAgIGN1cnJlbnRQYWdlSWQsXG4gICAgICB3aXphcmQ6IHRoaXMud2l6YXJkLFxuICAgICAgZXZlbnRUcmlnZ2VyOiB0aGlzLmV2ZW50VHJpZ2dlcixcbiAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICB9KTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCFuZXh0UGFnZSAmJlxuICAgICAgISh0aGlzLmV2ZW50VHJpZ2dlci5zaG93X3N1bW1hcnkgfHwgdGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5ID09PSBudWxsKSAmJlxuICAgICAgIXRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfZXZlbnRfbm90ZXMpIHtcbiAgICAgIHRoaXMuc3VibWl0Rm9ybSh7XG4gICAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICAgICAgc3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2FzZURldGFpbHM6IHRoaXMuY2FzZURldGFpbHMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lzdHJhclNlcnZpY2UucmVzZXQoKTtcblxuICAgIGNvbnN0IHRoZVF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSB7fTtcbiAgICB0aGVRdWVyeVBhcmFtc1tDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU1dID0gdGhpcy5uYXZpZ2F0aW9uT3JpZ2luO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbmV4dFBhZ2UgPyBuZXh0UGFnZS5pZCA6ICdzdWJtaXQnXSwgeyBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsIHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXMoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5maWVsZHNQdXJnZXIuY2xlYXJIaWRkZW5GaWVsZHModGhpcy5mb3JtLCB0aGlzLndpemFyZCwgdGhpcy5ldmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQpO1xuICAgIHRoaXMucmVnaXN0cmFyU2VydmljZS5yZXNldCgpO1xuXG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy53aXphcmQucHJldmlvdXNQYWdlKGN1cnJlbnRQYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghcHJldmlvdXNQYWdlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBjb25zdCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gICAgdGhlUXVlcnlQYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9IHRoaXMubmF2aWdhdGlvbk9yaWdpbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3ByZXZpb3VzUGFnZS5pZF0sIHsgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGhhc1ByZXZpb3VzKGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpemFyZC5oYXNQcmV2aW91c1BhZ2UoY3VycmVudFBhZ2VJZCwgdGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFN1Ym1pdHRlZChyZXNwb25zZTogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0dGVkLmVtaXQoeyBjYXNlSWQ6IHJlc3BvbnNlWydpZCddLCBzdGF0dXM6IHRoaXMuZ2V0U3RhdHVzKHJlc3BvbnNlKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0UGFnZSh7IHdpemFyZCwgY3VycmVudFBhZ2VJZCwgZXZlbnRUcmlnZ2VyLCBmb3JtIH06IENhc2VFZGl0R2V0TmV4dFBhZ2UpOiBXaXphcmRQYWdlIHtcbiAgICByZXR1cm4gd2l6YXJkLm5leHRQYWdlKFxuICAgICAgY3VycmVudFBhZ2VJZCxcbiAgICAgIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKGV2ZW50VHJpZ2dlciwgZm9ybSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbmZpcm0oY29uZmlybWF0aW9uOiBDb25maXJtYXRpb24pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbiA9IGNvbmZpcm1hdGlvbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjb25maXJtJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKHsgZXZlbnRUcmlnZ2VyLCBmb3JtLCBjYXNlRGV0YWlscywgc3VibWl0IH06IENhc2VFZGl0U3VibWl0Rm9ybSk6IHZvaWQge1xuICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAvLyBXZSBoYXZlIHRvIHJ1biB0aGUgZXZlbnQgY29tcGxldGlvbiBjaGVja3MgaWYgdGFzayBpbiBzZXNzaW9uIHN0b3JhZ2VcbiAgICAvLyBhbmQgaWYgdGhlIHRhc2sgaXMgaW4gc2Vzc2lvbiBzdG9yYWdlLCB0aGVuIGlzIGl0IGFzc29jaWF0ZWQgdG8gdGhlIGNhc2VcbiAgICBjb25zdCBjbGllbnRDb250ZXh0U3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCk7XG4gICAgY29uc3QgdXNlclRhc2sgPSBGaWVsZHNVdGlscy5nZXRVc2VyVGFza0Zyb21DbGllbnRDb250ZXh0KGNsaWVudENvbnRleHRTdHIpO1xuICAgIGNvbnN0IHRhc2tJblNlc3Npb25TdG9yYWdlID0gdXNlclRhc2sgPyB1c2VyVGFzay50YXNrX2RhdGEgOiBudWxsO1xuICAgIGxldCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm87XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5UQVNLX0VWRU5UX0NPTVBMRVRJT05fSU5GTyk7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGNvbnN0IGFzc2lnbk5lZWRlZCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Fzc2lnbk5lZWRlZCcpO1xuICAgIGlmICh0YXNrRXZlbnRDb21wbGV0aW9uU3RyKSB7XG4gICAgICB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyA9IEpTT04ucGFyc2UodGFza0V2ZW50Q29tcGxldGlvblN0cik7XG4gICAgfVxuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRJZCA9IHRoaXMuZ2V0RXZlbnRJZChmb3JtKTtcbiAgICBjb25zdCBjYXNlSWQgPSB0aGlzLmdldENhc2VJZChjYXNlRGV0YWlscyk7XG4gICAgY29uc3QgdXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICBjb25zdCBldmVudERldGFpbHM6IEV2ZW50RGV0YWlscyA9IHtldmVudElkLCBjYXNlSWQsIHVzZXJJZCwgYXNzaWduTmVlZGVkfTtcbiAgICBpZiAodGhpcy50YXNrRXhpc3RzRm9yVGhpc0V2ZW50KHRhc2tJblNlc3Npb25TdG9yYWdlLCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbywgZXZlbnREZXRhaWxzKSkge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGB0YXNrIGV4aXN0IGZvciB0aGlzIGV2ZW50IGZvciBjYXNlSWQgYW5kIGV2ZW50SWQgYXMgJHtjYXNlSWR9ICR7ZXZlbnRJZH1gKTtcbiAgICAgIC8vIFNob3cgZXZlbnQgY29tcGxldGlvbiBjb21wb25lbnQgdG8gcGVyZm9ybSBldmVudCBjb21wbGV0aW9uIGNoZWNrc1xuICAgICAgdGhpcy5ldmVudENvbXBsZXRpb25QYXJhbXMgPSAoe1xuICAgICAgICBjYXNlSWQsXG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIHRhc2s6IHRhc2tJblNlc3Npb25TdG9yYWdlXG4gICAgICB9KTtcbiAgICAgIC8vIGFkZCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyBhZ2FpbiB0byBlbnN1cmUgbGluayBjdXJyZW50IGV2ZW50IHdpdGggdGFzayBpZFxuICAgICAgLy8gbm90ZTogcHJldmlvdXMgdXNhZ2Ugd2FzIGNyZWF0ZWQgaGVyZSBzbyB0aGlzIGlzIHRvIGVuc3VyZSBjb3JyZWN0IGZ1bmN0aW9uYWxpdHkgY29udGludWVzXG4gICAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8gPSB7XG4gICAgICAgIGNhc2VJZCxcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgdXNlcklkLFxuICAgICAgICB0YXNrSWQ6IHRhc2tJblNlc3Npb25TdG9yYWdlLmlkLFxuICAgICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpfTtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8sIEpTT04uc3RyaW5naWZ5KHRhc2tFdmVudENvbXBsZXRpb25JbmZvKSk7XG4gICAgICB0aGlzLmlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUYXNrIG5vdCBpbiBzZXNzaW9uIHN0b3JhZ2UsIHByb2NlZWQgdG8gc3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoe1xuICAgICAgICBldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYXNlU3VibWl0KHtmb3JtLFxuICAgICAgICBjYXNlRXZlbnREYXRhLFxuICAgICAgICBzdWJtaXRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlSWQoY2FzZURldGFpbHM6IENhc2VWaWV3KTogc3RyaW5nIHtcbiAgICByZXR1cm4gKGNhc2VEZXRhaWxzID8gY2FzZURldGFpbHMuY2FzZV9pZCA6ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRJZChmb3JtOiBGb3JtR3JvdXApOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtLnZhbHVlLmV2ZW50LmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfTogQ2FzZUVkaXRHZW5lcmF0ZUNhc2VFdmVudERhdGEgKTogQ2FzZUV2ZW50RGF0YSB7XG4gICAgY29uc3QgY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHtcbiAgICAgIGRhdGE6IHRoaXMucmVwbGFjZUVtcHR5Q29tcGxleEZpZWxkVmFsdWVzKFxuICAgICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UoXG4gICAgICAgICAgdGhpcy5yZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKFxuICAgICAgICAgICAgZm9ybS5nZXQoJ2RhdGEnKSBhcyBGb3JtR3JvdXAsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcykpKSxcbiAgICAgIGV2ZW50OiBmb3JtLnZhbHVlLmV2ZW50XG4gICAgfSBhcyBDYXNlRXZlbnREYXRhO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5jbGVhck5vbkNhc2VGaWVsZHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVOdWxsTGFiZWxzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlEb2N1bWVudHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIFJlbW92ZSBjb2xsZWN0aW9uIGZpZWxkcyB0aGF0IGhhdmUgXCJtaW5cIiB2YWxpZGF0aW9uIG9mIGdyZWF0ZXIgdGhhbiB6ZXJvIHNldCBvbiB0aGUgRmllbGRUeXBlIGJ1dCBhcmUgZW1wdHk7XG4gICAgLy8gdGhlc2Ugd2lsbCBmYWlsIHZhbGlkYXRpb25cbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlDb2xsZWN0aW9uc1dpdGhNaW5WYWxpZGF0aW9uKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICAvLyBGb3IgQ2FzZSBGbGFnIHN1Ym1pc3Npb25zICh3aGVyZSBhIEZsYWdMYXVuY2hlciBmaWVsZCBpcyBwcmVzZW50IGluIHRoZSBldmVudCB0cmlnZ2VyKSwgdGhlIGZsYWcgZGV0YWlscyBkYXRhXG4gICAgLy8gbmVlZHMgcG9wdWxhdGluZyBmb3IgZWFjaCBGbGFncyBmaWVsZCwgdGhlbiB0aGUgRmxhZ0xhdW5jaGVyIGZpZWxkIG5lZWRzIHJlbW92aW5nXG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlcG9wdWxhdGVGb3JtRGF0YUZyb21DYXNlRmllbGRWYWx1ZXMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIERhdGEgcG9wdWxhdGlvbiBzdGVwIHJlcXVpcmVkIGZvciBMaW5rZWQgQ2FzZXNcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucG9wdWxhdGVMaW5rZWRDYXNlc0RldGFpbHNGcm9tQ2FzZUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgLy8gUmVtb3ZlIFwiTGF1bmNoZXJcIi10eXBlIGZpZWxkcyAodGhlc2UgaGF2ZSBubyB2YWx1ZXMgYW5kIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgcGVyc2lzdGVkKVxuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVDYXNlRmllbGRzT2ZUeXBlKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBbJ0ZsYWdMYXVuY2hlcicsICdDb21wb25lbnRMYXVuY2hlciddKTtcblxuICAgIC8vIGRlbGV0ZSBmaWVsZHMgd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSBjYXNlIGV2ZW50IGpvdXJuZXkgd2l6YXJkIHBhZ2VzIGNhc2UgZmllbGRzXG4gICAgdGhpcy52YWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UuZGVsZXRlTm9uVmFsaWRhdGVkRmllbGRzKHRoaXMudmFsaWRQYWdlTGlzdCwgY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIGZhbHNlLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuICAgIGNvbnN0IHBhZ2VMaXN0Q2FzZUZpZWxkcyA9IHRoaXMudmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlLnZhbGlkUGFnZUxpc3RDYXNlRmllbGRzKHRoaXMudmFsaWRQYWdlTGlzdCwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXNlIGZpZWxkcyB3aGljaCBhcmUgaGlkZGVuLCBvbmx5IGlmIHRoZSBzdWJtaXNzaW9uIGlzICpub3QqIGZvciBDYXNlIEZsYWdzXG4gICAgaWYgKCF0aGlzLmlzQ2FzZUZsYWdTdWJtaXNzaW9uKSB7XG4gICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlVW5uZWNlc3NhcnlGaWVsZHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBwYWdlTGlzdENhc2VGaWVsZHMsIHRydWUsIHRydWUpO1xuICAgIH1cblxuICAgIGNhc2VFdmVudERhdGEuZXZlbnRfdG9rZW4gPSBldmVudFRyaWdnZXIuZXZlbnRfdG9rZW47XG4gICAgY2FzZUV2ZW50RGF0YS5pZ25vcmVfd2FybmluZyA9IHRoaXMuaWdub3JlV2FybmluZztcbiAgICBpZiAodGhpcy5jb25maXJtYXRpb24pIHtcbiAgICAgIGNhc2VFdmVudERhdGEuZGF0YSA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiBjYXNlRXZlbnREYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIG5vbi1hcnJheSB2YWx1ZSBvYmplY3RzIHdpdGggYG51bGxgIGZvciBhbnkgQ29tcGxleC10eXBlIGZpZWxkcyB3aG9zZSB2YWx1ZSBpcyBlZmZlY3RpdmVseSBlbXB0eSwgaS5lLlxuICAgKiBhbGwgaXRzIHN1Yi1maWVsZHMgYW5kIGRlc2NlbmRhbnRzIGFyZSBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBvYmplY3QgdHJlZSByZXByZXNlbnRpbmcgYWxsIHRoZSBmb3JtIGZpZWxkIGRhdGFcbiAgICogQHJldHVybnMgVGhlIGZvcm0gZmllbGQgZGF0YSBtb2RpZmllZCBhY2NvcmRpbmdseVxuICAgKi9cbiAgcHJpdmF0ZSByZXBsYWNlRW1wdHlDb21wbGV4RmllbGRWYWx1ZXMoZGF0YTogb2JqZWN0KTogb2JqZWN0IHtcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhW2tleV0pICYmIHR5cGVvZiBkYXRhW2tleV0gPT09ICdvYmplY3QnICYmICFGaWVsZHNVdGlscy5jb250YWluc05vbkVtcHR5VmFsdWVzKGRhdGFba2V5XSkpIHtcbiAgICAgICAgZGF0YVtrZXldID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlICphbGwqIHZhbHVlcyBvZiBhIHtAbGluayBGb3JtR3JvdXB9LCBpbmNsdWRpbmcgdGhvc2UgZm9yIGRpc2FibGVkIGZpZWxkcyAoaS5lLiBoaWRkZW4gb25lcyksIHJlcGxhY2luZyB0aGVcbiAgICogdmFsdWUgb2YgYW55IHRoYXQgYXJlIGhpZGRlbiBBTkQgaGF2ZSBgcmV0YWluX2hpZGRlbl92YWx1ZWAgc2V0IHRvIGB0cnVlYCBpbiB0aGUgY29ycmVzcG9uZGluZyBgQ2FzZUZpZWxkYCwgd2l0aFxuICAgKiB0aGUgKm9yaWdpbmFsKiB2YWx1ZSBoZWxkIGluIHRoZSBgQ2FzZUZpZWxkYCBvYmplY3QuXG4gICAqXG4gICAqIFRoaXMgaXMgYXMgcGVyIGRlc2lnbiBpbiBFVUktMzYyMiwgd2hlcmUgYW55IHVzZXItZHJpdmVuIHVwZGF0ZXMgdG8gaGlkZGVuIGZpZWxkcyB3aXRoIGByZXRhaW5faGlkZGVuX3ZhbHVlYCA9XG4gICAqIGB0cnVlYCBhcmUgaWdub3JlZCAodGh1cyByZXRhaW5pbmcgdGhlIHZhbHVlIGRpc3BsYXllZCBvcmlnaW5hbGx5KS5cbiAgICpcbiAgICogKiBGb3IgQ29tcGxleCBmaWVsZCB0eXBlcywgdGhlIHJlcGxhY2VtZW50IGFib3ZlIGlzIHBlcmZvcm1lZCByZWN1cnNpdmVseSBmb3IgYWxsIGhpZGRlbiBzdWItZmllbGRzIHdpdGhcbiAgICogYHJldGFpbl9oaWRkZW5fdmFsdWVgID0gYHRydWVgLlxuICAgKlxuICAgKiAqIEZvciBDb2xsZWN0aW9uIGZpZWxkIHR5cGVzLCBpbmNsdWRpbmcgY29sbGVjdGlvbnMgb2YgQ29tcGxleCBhbmQgRG9jdW1lbnQgZmllbGQgdHlwZXMsIHRoZSByZXBsYWNlbWVudCBpc1xuICAgKiBwZXJmb3JtZWQgZm9yIGFsbCBmaWVsZHMgaW4gdGhlIGNvbGxlY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtR3JvdXAgVGhlIGBGb3JtR3JvdXBgIGluc3RhbmNlIHdob3NlIHJhdyB2YWx1ZXMgYXJlIHRvIGJlIHRyYXZlcnNlZFxuICAgKiBAcGFyYW0gY2FzZUZpZWxkcyBUaGUgYXJyYXkgb2Yge0BsaW5rIENhc2VGaWVsZH0gZG9tYWluIG1vZGVsIG9iamVjdHMgY29ycmVzcG9uZGluZyB0byBmaWVsZHMgaW4gYGZvcm1Hcm91cGBcbiAgICogQHBhcmFtIHBhcmVudEZpZWxkIFJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGBDYXNlRmllbGRgLiBVc2VkIGZvciByZXRyaWV2aW5nIHRoZSBzdWItZmllbGQgdmFsdWVzIG9mIGEgQ29tcGxleCBmaWVsZFxuICAgKiB0byBwZXJmb3JtIHJlY3Vyc2l2ZSByZXBsYWNlbWVudCAtIHRoZSBzdWItZmllbGQgYENhc2VGaWVsZGBzIHRoZW1zZWx2ZXMgZG8gKm5vdCogY29udGFpbiBhbnkgdmFsdWVzXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSAqcmF3KiBmb3JtIHZhbHVlIGRhdGEgKGFzIGtleS12YWx1ZSBwYWlycyksIHdpdGggYW55IHZhbHVlIHJlcGxhY2VtZW50cyBhcyBuZWNlc3NhcnlcbiAgICovXG4gIHByaXZhdGUgcmVwbGFjZUhpZGRlbkZvcm1WYWx1ZXNXaXRoT3JpZ2luYWxDYXNlRGF0YShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10sIHBhcmVudEZpZWxkPzogQ2FzZUZpZWxkKTogb2JqZWN0IHtcbiAgICAvLyBHZXQgdGhlIHJhdyBmb3JtIHZhbHVlIGRhdGEsIHdoaWNoIGluY2x1ZGVzIHRoZSB2YWx1ZXMgb2YgYW55IGRpc2FibGVkIGNvbnRyb2xzLCBhcyBrZXktdmFsdWUgcGFpcnNcbiAgICBjb25zdCByYXdGb3JtVmFsdWVEYXRhID0gZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG5cbiAgICAvLyBQbGFjZSBhbGwgY2FzZSBmaWVsZHMgaW4gYSBsb29rdXAgb2JqZWN0LCBzbyB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgYnkgaWRcbiAgICBjb25zdCBjYXNlRmllbGRzTG9va3VwID0ge307XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGNhc2VGaWVsZHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNhc2VGaWVsZHNMb29rdXBbY2FzZUZpZWxkc1tpXS5pZF0gPSBjYXNlRmllbGRzW2ldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgYW55IGZvcm0gdmFsdWUgd2l0aCB0aGUgb3JpZ2luYWwsIHdoZXJlIGl0cyBDYXNlRmllbGQgaXMgaGlkZGVuIEFORCBoYXMgdGhlIHJldGFpbl9oaWRkZW5fdmFsdWUgZmxhZyBzZXRcbiAgICAgKiB0byB0cnVlLlxuICAgICAqXG4gICAgICogSWYgdGhlIENhc2VGaWVsZCdzIGBoaWRkZW5gIGF0dHJpYnV0ZSBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlbiBjaGVjayB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgcGFyZW50IENhc2VGaWVsZCAoaWZcbiAgICAgKiBvbmUgZXhpc3RzKS4gVGhpcyBpcyBvY2N1cnJpbmcgKGFuZCBpcyBwb3NzaWJseSBhIGJ1Zykgd2hlbiBhIENhc2VGaWVsZCBpcyBhIHN1Yi1maWVsZCBvZiBhIENvbXBsZXggdHlwZSwgb3IgYW5cbiAgICAgKiBpdGVtIGluIGEgQ29sbGVjdGlvbiB0eXBlLlxuICAgICAqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29tcGxleCB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHBlcmZvcm0gYSByZWN1cnNpdmUgcmVwbGFjZW1lbnQgZm9yIGFsbCAoaGlkZGVuKVxuICAgICAqIHN1Yi1maWVsZHMgd2l0aCByZXRhaW5faGlkZGVuX3ZhbHVlID0gdHJ1ZSwgdXNpbmcgdGhlaXIgb3JpZ2luYWwgQ2FzZUZpZWxkIHZhbHVlcyAoZnJvbSB0aGUgYGZvcm1hdHRlZF92YWx1ZWBcbiAgICAgKiBhdHRyaWJ1dGUpLlxuICAgICAqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29sbGVjdGlvbiB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHRoZSBlbnRpcmUgY29sbGVjdGlvbiBpcyByZXBsYWNlZCB3aXRoIHRoZVxuICAgICAqIG9yaWdpbmFsIGZyb20gYGZvcm1hdHRlZF92YWx1ZWAuIFRoaXMgYXBwbGllcyB0byAqYWxsKiB0eXBlcyBvZiBDb2xsZWN0aW9ucy5cbiAgICAgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIE9iamVjdC5rZXlzKHJhd0Zvcm1WYWx1ZURhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkOiBDYXNlRmllbGQgPSBjYXNlRmllbGRzTG9va3VwW2tleV07XG4gICAgICAvLyBJZiBjYXNlRmllbGQuaGlkZGVuIGlzIE5PVCB0cnV0aHkgYW5kIGFsc28gTk9UIGVxdWFsIHRvIGZhbHNlLCB0aGVuIGl0IG11c3QgYmUgbnVsbC91bmRlZmluZWQgKHJlbWVtYmVyIHRoYXRcbiAgICAgIC8vIGJvdGggbnVsbCBhbmQgdW5kZWZpbmVkIGFyZSBlcXVhbCB0byAqbmVpdGhlciBmYWxzZSBub3IgdHJ1ZSopXG4gICAgICBpZiAoY2FzZUZpZWxkPy5yZXRhaW5faGlkZGVuX3ZhbHVlICYmXG4gICAgICAgIChjYXNlRmllbGQ/LmhpZGRlbiB8fCAoY2FzZUZpZWxkPy5oaWRkZW4gIT09IGZhbHNlICYmIHBhcmVudEZpZWxkPy5oaWRkZW4pKSkge1xuICAgICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVDb21wbGV4RmllbGQoY2FzZUZpZWxkLCBmb3JtR3JvdXAsIGtleSwgcmF3Rm9ybVZhbHVlRGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVOb25Db21wbGV4RmllbGQocGFyZW50RmllbGQsIHJhd0Zvcm1WYWx1ZURhdGEsIGtleSwgY2FzZUZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJhd0Zvcm1WYWx1ZURhdGE7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vbkNvbXBsZXhGaWVsZChwYXJlbnRGaWVsZDogQ2FzZUZpZWxkLCByYXdGb3JtVmFsdWVEYXRhLCBrZXk6IHN0cmluZywgY2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICAvLyBEZWZhdWx0IGNhc2UgYWxzbyBoYW5kbGVzIGNvbGxlY3Rpb25zIG9mICphbGwqIHR5cGVzOyB0aGUgZW50aXJlIGNvbGxlY3Rpb24gaW4gcmF3Rm9ybVZhbHVlRGF0YSB3aWxsIGJlXG4gICAgLy8gcmVwbGFjZWQgd2l0aCB0aGUgb3JpZ2luYWwgZnJvbSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAvLyBVc2UgdGhlIENhc2VGaWVsZCdzIGV4aXN0aW5nICpmb3JtYXR0ZWRfdmFsdWUqIGZyb20gdGhlIHBhcmVudCwgaWYgYXZhaWxhYmxlLiAoVGhpcyBpcyBuZWNlc3NhcnkgZm9yXG4gICAgLy8gQ29tcGxleCBmaWVsZHMsIHdob3NlIHN1Yi1maWVsZHMgZG8gbm90IGhvbGQgYW55IHZhbHVlcyBpbiB0aGUgbW9kZWwuKSBPdGhlcndpc2UsIHVzZSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAvLyBmcm9tIHRoZSBDYXNlRmllbGQgaXRzZWxmLlxuICAgIGlmIChwYXJlbnRGaWVsZCAmJiBwYXJlbnRGaWVsZC5mb3JtYXR0ZWRfdmFsdWUpIHtcbiAgICAgIHJhd0Zvcm1WYWx1ZURhdGFba2V5XSA9IHBhcmVudEZpZWxkLmZvcm1hdHRlZF92YWx1ZVtjYXNlRmllbGQuaWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIShjYXNlRmllbGQuaGlkZGVuICYmIGNhc2VGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlKSkge1xuICAgICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSBjYXNlRmllbGQuZm9ybWF0dGVkX3ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29tcGxleEZpZWxkKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBmb3JtR3JvdXA6IEZvcm1Hcm91cDxhbnk+LCBrZXk6IHN0cmluZywgcmF3Rm9ybVZhbHVlRGF0YSkge1xuICAgIC8vIE5vdGU6IERlbGliZXJhdGUgdXNlIG9mIGVxdWFsaXR5ICg9PSkgYW5kIG5vbi1lcXVhbGl0eSAoIT0pIG9wZXJhdG9ycyBmb3IgbnVsbCBjaGVja3MgdGhyb3VnaG91dCwgdG9cbiAgICAvLyBoYW5kbGUgYm90aCBudWxsIGFuZCB1bmRlZmluZWQgdmFsdWVzXG4gICAgaWYgKGNhc2VGaWVsZC52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAvLyBDYWxsIHRoaXMgZnVuY3Rpb24gcmVjdXJzaXZlbHkgdG8gcmVwbGFjZSB0aGUgQ29tcGxleCBmaWVsZCdzIHN1Yi1maWVsZHMgYXMgbmVjZXNzYXJ5LCBwYXNzaW5nIHRoZVxuICAgICAgLy8gQ2FzZUZpZWxkIGl0c2VsZiAodGhlIHN1Yi1maWVsZHMgZG8gbm90IGNvbnRhaW4gYW55IHZhbHVlcywgc28gdGhlc2UgbmVlZCB0byBiZSBvYnRhaW5lZCBmcm9tIHRoZVxuICAgICAgLy8gcGFyZW50KVxuICAgICAgLy8gVXBkYXRlIHJhd0Zvcm1WYWx1ZURhdGEgZm9yIHRoaXMgZmllbGRcbiAgICAgIC8vIGNyZWF0aW5nIGZvcm0gZ3JvdXAgYW5kIGFkZGluZyBjb250cm9sIGludG8gaXQgaW4gY2FzZSBjYXNlRmllbGQgaXMgb2YgY29tcGxleHQgdHlwZSBhbmQgYW5kIHBhcnQgb2YgZm9ybUdyb3VwXG4gICAgICBjb25zdCBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgIGlmIChmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGZvcm0uYWRkQ29udHJvbChpdGVtLCBuZXcgRm9ybUNvbnRyb2woZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0udmFsdWVbaXRlbV0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSB0aGlzLnJlcGxhY2VIaWRkZW5Gb3JtVmFsdWVzV2l0aE9yaWdpbmFsQ2FzZURhdGEoXG4gICAgICAgIGZvcm0sIGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBjYXNlRmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FzZVN1Ym1pdCh7IGZvcm0sIGNhc2VFdmVudERhdGEsIHN1Ym1pdCB9OiBDYXNlRWRpdENhc2VTdWJtaXQpOiB2b2lkIHtcbiAgICBjb25zdCBsb2FkaW5nU3Bpbm5lclRva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIC8vIGtlZXAgdGhlIGluaXRpYWwgZXZlbnQgcmVzcG9uc2UgdG8gZmluYWxpc2UgcHJvY2VzcyBhZnRlciB0YXNrIGNvbXBsZXRpb25cbiAgICBsZXQgZXZlbnRSZXNwb25zZTogb2JqZWN0O1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ3Rhc2tDb21wbGV0aW9uRXJyb3InLCAnZmFsc2UnKTtcbiAgICBzdWJtaXQoY2FzZUV2ZW50RGF0YSkucGlwZShzd2l0Y2hNYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICBldmVudFJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICByZXR1cm4gdGhpcy5wb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZCgpO1xuICAgIH0pLGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdTcGlubmVyVG9rZW4pO1xuICAgICAgICAvLyBvbiBldmVudCBjb21wbGV0aW9uIGVuc3VyZSB0aGUgcHJldmlvdXMgZXZlbnQgY2xpZW50Q29udGV4dC90YXNrRXZlbnRDb21wbGV0aW9uSW5mbyByZW1vdmVkXG4gICAgICAgIC8vIE5vdGUgLSBOb3QgcmVtb3ZlVGFza0Zyb21DbGllbnRDb250ZXh0IGJlY2F1c2UgY291bGQgaW50ZXJmZXJlIHdpdGggb3RoZXIgbG9naWNcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8pXG4gICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbmlzaEV2ZW50Q29tcGxldGlvbkxvZ2ljKGV2ZW50UmVzcG9uc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgaWYgKCFldmVudFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBldmVudCBzdWJtaXNzaW9uIGVycm9yXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdC5uZXh0KGVycm9yKTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5lcnJvci5kZXRhaWxzKSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUVycm9yU2VydmljZVxuICAgICAgICAgICAgICAgIC5tYXBGaWVsZEVycm9ycyh0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10gYXMgRm9ybUdyb3VwLCAndmFsaWRhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKCd0YXNrQ29tcGxldGlvbkVycm9yJywgJ3RydWUnKTtcbiAgICAgICAgICAgIC8vIHRhc2sgYXNzaWdubWVudC9jb21wbGV0aW9uIGVycm9yIC0gaGFuZGxlZCB3aXRoaW4gd29ya2FsbG9jYXRpb24gc2VydmljZVxuICAgICAgICAgICAgLy8gY291bGQgc2V0IHRhc2sgdG8gYmUgZGVsZXRlZCAob3IgY29tcGxldGVkIGxhdGVyKT9cbiAgICAgICAgICAgIHRoaXMuZmluaXNoRXZlbnRDb21wbGV0aW9uTG9naWMoZXZlbnRSZXNwb25zZSk7XG4gICAgICAgICAgICAvLyBiZWxvdyBhbGxvd3MgZXJyb3IgdG8gYmUgc2hvd24gb24gbmF2aWdhdGlvbiB0byBjb25maXJtYXRpb24gcGFnZVxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2V0UHJlc2VydmVBbGVydHModHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcih7cGhyYXNlOiBDb25zdGFudHMuVEFTS19DT01QTEVUSU9OX0VSUk9SfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGNsaWVudENvbnRleHRTdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LkNMSUVOVF9DT05URVhUKTtcbiAgICBjb25zdCB1c2VyVGFzayA9IEZpZWxkc1V0aWxzLmdldFVzZXJUYXNrRnJvbUNsaWVudENvbnRleHQoY2xpZW50Q29udGV4dFN0cik7XG4gICAgY29uc3QgW3Rhc2ssIHRhc2tUb0JlQ29tcGxldGVkXSA9IHVzZXJUYXNrID8gW3VzZXJUYXNrLnRhc2tfZGF0YSwgdXNlclRhc2suY29tcGxldGVfdGFza10gOiBbbnVsbCwgZmFsc2VdO1xuICAgIGNvbnN0IGFzc2lnbk5lZWRlZCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Fzc2lnbk5lZWRlZCcpID09PSAndHJ1ZSc7XG4gICAgaWYgKHRhc2sgJiYgYXNzaWduTmVlZGVkICYmIHRhc2tUb0JlQ29tcGxldGVkKSB7XG4gICAgICB0aGlzLmFic3RyYWN0Q29uZmlnLmxvZ01lc3NhZ2UoYHBvc3RDb21wbGV0ZVRhc2tJZlJlcXVpcmVkIHdpdGggYXNzaWduTmVlZGVkOiB0YXNrSWQgJHt0YXNrLmlkfSBhbmQgZXZlbnQgbmFtZSAke3RoaXMuZXZlbnRUcmlnZ2VyLm5hbWV9YCk7XG4gICAgICByZXR1cm4gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuYXNzaWduQW5kQ29tcGxldGVUYXNrKHRhc2suaWQsIHRoaXMuZXZlbnRUcmlnZ2VyLm5hbWUpO1xuICAgIH0gZWxzZSBpZiAodGFzayAmJiB0YXNrVG9CZUNvbXBsZXRlZCkge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBwb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZDogdGFza0lkICR7dGFzay5pZH0gYW5kIGV2ZW50IG5hbWUgJHt0aGlzLmV2ZW50VHJpZ2dlci5uYW1lfWApO1xuICAgICAgcmV0dXJuIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmNvbXBsZXRlVGFzayh0YXNrLmlkLCB0aGlzLmV2ZW50VHJpZ2dlci5uYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hFdmVudENvbXBsZXRpb25Mb2dpYyhldmVudFJlc3BvbnNlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyA9IG51bGw7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICBjb25zdCBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbiA9IHRoaXMuYnVpbGRDb25maXJtYXRpb24oZXZlbnRSZXNwb25zZSk7XG4gICAgaWYgKGNvbmZpcm1hdGlvbiAmJiAoY29uZmlybWF0aW9uLmdldEhlYWRlcigpIHx8IGNvbmZpcm1hdGlvbi5nZXRCb2R5KCkpKSB7XG4gICAgICB0aGlzLmNvbmZpcm0oY29uZmlybWF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0U3VibWl0dGVkKGV2ZW50UmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb25maXJtYXRpb24ocmVzcG9uc2U6IG9iamVjdCk6IENvbmZpcm1hdGlvbiB7XG4gICAgaWYgKHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXSkge1xuICAgICAgcmV0dXJuIG5ldyBDb25maXJtYXRpb24oXG4gICAgICAgIHJlc3BvbnNlWydpZCddLFxuICAgICAgICByZXNwb25zZVsnY2FsbGJhY2tfcmVzcG9uc2Vfc3RhdHVzJ10sXG4gICAgICAgIHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXVsnY29uZmlybWF0aW9uX2hlYWRlciddLFxuICAgICAgICByZXNwb25zZVsnYWZ0ZXJfc3VibWl0X2NhbGxiYWNrX3Jlc3BvbnNlJ11bJ2NvbmZpcm1hdGlvbl9ib2R5J11cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNoZWNrcyB3aGV0aGVyIGN1cnJlbnQgY2xpZW50Q29udGV4dCByZWxldmFudCBmb3IgdGhlIGV2ZW50XG4gIHB1YmxpYyB0YXNrRXhpc3RzRm9yVGhpc0V2ZW50KHRhc2tJblNlc3Npb25TdG9yYWdlOiBUYXNrLCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8sIGV2ZW50RGV0YWlsczogRXZlbnREZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0YXNrSW5TZXNzaW9uU3RvcmFnZSB8fCB0YXNrSW5TZXNzaW9uU3RvcmFnZS5jYXNlX2lkICE9PSBldmVudERldGFpbHMuY2FzZUlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGFza0V2ZW50Q29tcGxldGlvbkluZm8pIHtcbiAgICAgIC8vIGlmIG5vIHRhc2sgZXZlbnQgcHJlc2VudCB0aGVuIHRoZXJlIGlzIG5vIHRhc2sgdG8gY29tcGxldGUgZnJvbSBwcmV2aW91cyBldmVudCBwcmVzZW50XG4gICAgICAvLyBFWFVJLTI2NjggLSBBZGQgYWRkaXRpb25hbCBsb2dpYyB0byBjb25maXJtIHRoZSB0YXNrIGlzIHJlbGV2YW50IHRvIHRoZSBldmVudFxuICAgICAgaWYgKHRoaXMudGFza0lzRm9yRXZlbnQodGFza0luU2Vzc2lvblN0b3JhZ2UsIGV2ZW50RGV0YWlscykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjbGllbnQgY29udGV4dCBzdGlsbCBuZWVkZWQgZm9yIGxhbmd1YWdlXG4gICAgICAgIHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLnRhc2tJZCAhPT0gdGFza0luU2Vzc2lvblN0b3JhZ2UuaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKCh0YXNrRXZlbnRDb21wbGV0aW9uSW5mby50YXNrSWQgPT09IHRhc2tJblNlc3Npb25TdG9yYWdlLmlkICYmXG4gICAgICAgICAgdGhpcy5ldmVudERldGFpbHNEb05vdE1hdGNoKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLCBldmVudERldGFpbHMpKVxuICAgICAgICB8fCB0aGlzLmV2ZW50TW9yZVRoYW5EYXlBZ28odGFza0V2ZW50Q29tcGxldGlvbkluZm8uY3JlYXRlZFRpbWVzdGFtcClcbiAgICAgICkge1xuICAgICAgICAvLyBpZiB0aGUgc2Vzc2lvbiBzdG9yYWdlIG5vdCByZWxhdGVkIHRvIGV2ZW50LCBpZ25vcmUgaXQgYW5kIHJlbW92ZVxuICAgICAgICByZW1vdmVUYXNrRnJvbUNsaWVudENvbnRleHQodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKENhc2VFZGl0Q29tcG9uZW50LlRBU0tfRVZFTlRfQ09NUExFVElPTl9JTkZPKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50RGV0YWlscy5hc3NpZ25OZWVkZWQgPT09ICdmYWxzZScgJiYgZXZlbnREZXRhaWxzLnVzZXJJZCAhPT0gdGFza0luU2Vzc2lvblN0b3JhZ2UuYXNzaWduZWUpIHtcbiAgICAgICAgLy8gaWYgdGhlIHVzZXIgZG9lcyBub3QgbWF0Y2ggdGFzayBhc3NpZ25lZSwgYXNzaWduIGlzIG5vdyBuZWVkZWRcbiAgICAgICAgLy8gZGF0YSBjYW5ub3QgYmUgZGVsZXRlZCBhbmQgaWdub3JlZCBhcyBpdCBtYXRjaGVzIHVuZGVyc3RhbmRpbmdcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnYXNzaWduTmVlZGVkJywgJ3RydWUnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkV2ZW50Q2FuQmVDb21wbGV0ZWQoeyBldmVudFRyaWdnZXIsIGV2ZW50Q2FuQmVDb21wbGV0ZWQsIGNhc2VEZXRhaWxzLCBmb3JtLCBzdWJtaXQgfTogQ2FzZUVkaXRvbkV2ZW50Q2FuQmVDb21wbGV0ZWQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnRDYW5CZUNvbXBsZXRlZCkge1xuICAgICAgLy8gU3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfSk7XG4gICAgICB0aGlzLmNhc2VTdWJtaXQoeyBmb3JtLCBjYXNlRXZlbnREYXRhLCBzdWJtaXQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5hdmlnYXRlIHRvIHRhc2tzIHRhYiBvbiBjYXNlIGRldGFpbHMgcGFnZVxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpfS90YXNrc2BdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN0YXR1cyhyZXNwb25zZTogb2JqZWN0KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5oYXNDYWxsYmFja0ZhaWxlZChyZXNwb25zZSkgPyByZXNwb25zZVsnY2FsbGJhY2tfcmVzcG9uc2Vfc3RhdHVzJ10gOiByZXNwb25zZVsnZGVsZXRlX2RyYWZ0X3Jlc3BvbnNlX3N0YXR1cyddO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNDYWxsYmFja0ZhaWxlZChyZXNwb25zZTogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSAhPT0gJ0NBTExCQUNLX0NPTVBMRVRFRCc7XG4gIH1cblxuICBwcml2YXRlIGV2ZW50TW9yZVRoYW5EYXlBZ28odGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBpZiAoKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGltZXN0YW1wKSA+ICgyNCo2MCo2MCoxMDAwKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZXZlbnREZXRhaWxzRG9Ob3RNYXRjaCh0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8sIGV2ZW50RGV0YWlsczogRXZlbnREZXRhaWxzKSB7XG4gICAgaWYgKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLmV2ZW50SWQgIT09IGV2ZW50RGV0YWlscy5ldmVudElkXG4gICAgICB8fCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mby5jYXNlSWQgIT09IGV2ZW50RGV0YWlscy5jYXNlSWRcbiAgICAgIHx8IHRhc2tFdmVudENvbXBsZXRpb25JbmZvLnVzZXJJZCAhPT0gZXZlbnREZXRhaWxzLnVzZXJJZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdGFza0lzRm9yRXZlbnQodGFzazogVGFzaywgZXZlbnREZXRhaWxzOiBFdmVudERldGFpbHMpOiBib29sZWFuIHtcbiAgICAvLyBFWFVJLTI2NjggLSBFbnN1cmUgZGVzY3JpcHRpb24gZm9yIHRhc2sgaW5jbHVkZXMgZXZlbnQgSURcbiAgICAvLyBOb3RlIC0gVGhpcyBpcyBhIGZhaWxzYWZlIGZvciBhbiBlZGdlIGNhc2UgdGhhdCBtYXkgbmV2ZXIgb2NjdXIgYWdhaW5cbiAgICAvLyBEZXNjcmlwdGlvbiBtYXkgbm90IGluY2x1ZGUgZXZlbnRJZCBpbiBzb21lIGNhc2VzIHdoaWNoIG1heSBtZWFuIHRhc2sgbm90IGNvbXBsZXRlZCAoaG93ZXZlciB0aGlzIHdpbGwgYmUgZWFzeSB0byBjaGVjaylcbiAgICAvLyBJbiBpbnN0YW5jZXMgb2YgdGhlIGFib3ZlIHRhc2tFdmVudENvbXBsZXRpb25JbmZvIHdpbGwgYmUgY3JlYXRlZCB0byBibG9jayB0aGlzIGNoZWNrIGZyb20gb2NjdXJyaW5nXG4gICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBjaGVja2luZyB0YXNrSXNGb3JFdmVudDogdGFzayBJRCAke3Rhc2suaWR9LCB0YXNrIGRlc2NyaXB0aW9uICR7dGFzay5kZXNjcmlwdGlvbn0sIGV2ZW50IG5hbWUgJHtldmVudERldGFpbHMuZXZlbnRJZH1gKTtcbiAgICByZXR1cm4gdGFzay5jYXNlX2lkID09PSBldmVudERldGFpbHMuY2FzZUlkICYmICh0YXNrLmRlc2NyaXB0aW9uPy5pbmNsdWRlcyhldmVudERldGFpbHMuZXZlbnRJZCkpO1xuICB9XG59XG4iLCI8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4iXX0=
|
|
572
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBSVUsZ0JBQWdCLEVBQy9CLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFB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RUFBRSxDQUFDO1lBQzVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFVLEVBQUUsWUFBMEI7UUFDM0QsNERBQTREO1FBQzVELHdFQUF3RTtRQUN4RSwySEFBMkg7UUFDM0gsdUdBQXVHO1FBQ3ZHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxJQUFJLENBQUMsRUFBRSxzQkFBc0IsSUFBSSxDQUFDLFdBQVcsZ0JBQWdCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hKLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQzsyRUE5a0JVLGlCQUFpQjs2REFBakIsaUJBQWlCLHNRQUZqQixDQUFDLGNBQWMsQ0FBQztZQ2xDN0IsZ0NBQStCOzs7aUZEb0NsQixpQkFBaUI7Y0FON0IsU0FBUzsyQkFDRSxlQUFlLGFBR2QsQ0FBQyxjQUFjLENBQUM7c2tCQVNwQixZQUFZO2tCQURsQixLQUFLO1lBSUMsTUFBTTtrQkFEWixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsV0FBVztrQkFEakIsS0FBSztZQUlDLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFNBQVM7a0JBRGYsTUFBTTs7a0ZBeEJJLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlLCBHcmV5QmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgQ2FzZUVkaXRDYXNlU3VibWl0LCBDYXNlRWRpdEdlbmVyYXRlQ2FzZUV2ZW50RGF0YSwgQ2FzZUVkaXRHZXROZXh0UGFnZSxcbiAgQ2FzZUVkaXRTdWJtaXRGb3JtLFxuICBDYXNlRWRpdG9uRXZlbnRDYW5CZUNvbXBsZXRlZCxcbiAgQ2FzZUV2ZW50RGF0YSwgQ2FzZUV2ZW50VHJpZ2dlciwgQ2FzZUZpZWxkLFxuICBDYXNlVmlldywgRHJhZnQsIEh0dHBFcnJvciwgUHJvZmlsZVxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vdXNlci91c2VyLWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgRXZlbnREZXRhaWxzLCBUYXNrLCBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEZpZWxkc1B1cmdlciwgRmllbGRzVXRpbHMsIEZvcm1FcnJvclNlcnZpY2UsIEZvcm1WYWx1ZVNlcnZpY2UsIExvYWRpbmdTZXJ2aWNlLFxuICBSZWFkQ29va2llU2VydmljZSxcbiAgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLCBXaW5kb3dTZXJ2aWNlXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgV2l6YXJkLCBXaXphcmRQYWdlIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEV2ZW50Q29tcGxldGlvblBhcmFtcyB9IGZyb20gJy4uL2RvbWFpbi9ldmVudC1jb21wbGV0aW9uLXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIFdpemFyZEZhY3RvcnlTZXJ2aWNlLCBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92YWxpZC1wYWdlLWxpc3QtY2FzZUZpZWxkcy5zZXJ2aWNlJztcbmltcG9ydCB7IHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCB9IGZyb20gJy4uL2Nhc2UtZWRpdC11dGlscy9jYXNlLWVkaXQudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vY2FzZS1lZGl0LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbR3JleUJhclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SSUdJTl9RVUVSWV9QQVJBTSA9ICdvcmlnaW4nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFMRVJUX01FU1NBR0UgPSAnUGFnZSBpcyBiZWluZyByZWZyZXNoZWQgc28geW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgZmlyc3QgcGFnZSBvZiB0aGlzIGV2ZW50Lic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0xJRU5UX0NPTlRFWFQgPSAnY2xpZW50Q29udGV4dCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8gPSAndGFza0V2ZW50Q29tcGxldGlvbkluZm8nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Ym1pdDogKGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEsIHByb2ZpbGU/OiBQcm9maWxlKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRlOiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8b2JqZWN0PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2F2ZURyYWZ0OiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSkgPT4gT2JzZXJ2YWJsZTxEcmFmdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyB3aXphcmQ6IFdpemFyZDtcblxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbjtcblxuICBwdWJsaWMgbmF2aWdhdGlvbk9yaWdpbjogYW55O1xuXG4gIHB1YmxpYyBpbml0aWFsVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIGlzUGFnZVJlZnJlc2hlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNTdWJtaXR0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBldmVudENvbXBsZXRpb25QYXJhbXM6IEV2ZW50Q29tcGxldGlvblBhcmFtcztcblxuICBwdWJsaWMgc3VibWl0UmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgcHVibGljIGlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNDYXNlRmxhZ1N1Ym1pc3Npb24gPSBmYWxzZTtcblxuICBwdWJsaWMgaWdub3JlV2FybmluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBlcnJvcjogSHR0cEVycm9yO1xuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc1N1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIHZhbGlkUGFnZUxpc3Q6IFdpemFyZFBhZ2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1V0aWxzOiBGaWVsZHNVdGlscyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1B1cmdlcjogRmllbGRzUHVyZ2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0cmFyU2VydmljZTogQ29uZGl0aW9uYWxTaG93UmVnaXN0cmFyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpemFyZEZhY3Rvcnk6IFdpemFyZEZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dzU2VydmljZTogV2luZG93U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWx1ZVNlcnZpY2U6IEZvcm1WYWx1ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtRXJyb3JTZXJ2aWNlOiBGb3JtRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlOiBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrQWxsb2NhdGlvblNlcnZpY2U6IFdvcmtBbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWJzdHJhY3RDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogUmVhZENvb2tpZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVDb21wb25lbnQoKTtcblxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IFBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uT3JpZ2luID0gcGFyYW1zW0Nhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTV07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDb21wb25lbnQoKTogdm9pZCB7XG4gICAgdGhpcy53aXphcmQgPSB0aGlzLndpemFyZEZhY3RvcnkuY3JlYXRlKHRoaXMuZXZlbnRUcmlnZ2VyKTtcbiAgICB0aGlzLmluaXRpYWxVcmwgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCdldmVudFVybCcpO1xuICAgIHRoaXMuaXNQYWdlUmVmcmVzaGVkID0gSlNPTi5wYXJzZSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCdpc1BhZ2VSZWZyZXNoZWQnKSk7XG5cbiAgICB0aGlzLmNoZWNrUGFnZVJlZnJlc2goKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZGF0YTogbmV3IEZvcm1Hcm91cCh7fSksXG4gICAgICBldmVudDogdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIGlkOiBbdGhpcy5ldmVudFRyaWdnZXIuaWQsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBzdW1tYXJ5OiBbJyddLFxuICAgICAgICBkZXNjcmlwdGlvbjogWycnXVxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ldmVudFRyaWdnZXIpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdCkge1xuICAgICAgdGhpcy5jYWxsYmFja0Vycm9yc1N1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hlY2tQYWdlUmVmcmVzaCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc1BhZ2VSZWZyZXNoZWQgJiYgdGhpcy5pbml0aWFsVXJsKSB7XG4gICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgICAgdGhpcy53aW5kb3dzU2VydmljZS5hbGVydChDYXNlRWRpdENvbXBvbmVudC5BTEVSVF9NRVNTQUdFKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmluaXRpYWxVcmxdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldFBhZ2UocGFnZUlkOiBzdHJpbmcpOiBXaXphcmRQYWdlIHtcbiAgICByZXR1cm4gdGhpcy53aXphcmQuZ2V0UGFnZShwYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXJzdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmaXJzdFBhZ2UgPSB0aGlzLndpemFyZC5maXJzdFBhZ2UodGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZmlyc3RQYWdlID8gZmlyc3RQYWdlLmlkIDogJ3N1Ym1pdCddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1BhZ2UocGFnZUlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5nZXRQYWdlKHBhZ2VJZCk7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYWdlID8gcGFnZS5pZCA6ICdzdWJtaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIG5leHQoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5pbml0aWFsVXJsID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnZXZlbnRVcmwnKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnJvdXRlci51cmwgJiYgIXRoaXMuaW5pdGlhbFVybCkge1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnZXZlbnRVcmwnLCB0aGlzLnJvdXRlci51cmwpO1xuICAgIH1cbiAgICB0aGlzLmZpZWxkc1B1cmdlci5jbGVhckhpZGRlbkZpZWxkcyh0aGlzLmZvcm0sIHRoaXMud2l6YXJkLCB0aGlzLmV2ZW50VHJpZ2dlciwgY3VycmVudFBhZ2VJZCk7XG4gICAgY29uc3QgbmV4dFBhZ2UgPSB0aGlzLmdldE5leHRQYWdlKHtcbiAgICAgIGN1cnJlbnRQYWdlSWQsXG4gICAgICB3aXphcmQ6IHRoaXMud2l6YXJkLFxuICAgICAgZXZlbnRUcmlnZ2VyOiB0aGlzLmV2ZW50VHJpZ2dlcixcbiAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICB9KTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCFuZXh0UGFnZSAmJlxuICAgICAgISh0aGlzLmV2ZW50VHJpZ2dlci5zaG93X3N1bW1hcnkgfHwgdGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5ID09PSBudWxsKSAmJlxuICAgICAgIXRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfZXZlbnRfbm90ZXMpIHtcbiAgICAgIHRoaXMuc3VibWl0Rm9ybSh7XG4gICAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICAgICAgc3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2FzZURldGFpbHM6IHRoaXMuY2FzZURldGFpbHMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lzdHJhclNlcnZpY2UucmVzZXQoKTtcblxuICAgIGNvbnN0IHRoZVF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSB7fTtcbiAgICB0aGVRdWVyeVBhcmFtc1tDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU1dID0gdGhpcy5uYXZpZ2F0aW9uT3JpZ2luO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbmV4dFBhZ2UgPyBuZXh0UGFnZS5pZCA6ICdzdWJtaXQnXSwgeyBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsIHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXMoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5maWVsZHNQdXJnZXIuY2xlYXJIaWRkZW5GaWVsZHModGhpcy5mb3JtLCB0aGlzLndpemFyZCwgdGhpcy5ldmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQpO1xuICAgIHRoaXMucmVnaXN0cmFyU2VydmljZS5yZXNldCgpO1xuXG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy53aXphcmQucHJldmlvdXNQYWdlKGN1cnJlbnRQYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghcHJldmlvdXNQYWdlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBjb25zdCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gICAgdGhlUXVlcnlQYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9IHRoaXMubmF2aWdhdGlvbk9yaWdpbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3ByZXZpb3VzUGFnZS5pZF0sIHsgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGhhc1ByZXZpb3VzKGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpemFyZC5oYXNQcmV2aW91c1BhZ2UoY3VycmVudFBhZ2VJZCwgdGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFN1Ym1pdHRlZChyZXNwb25zZTogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0dGVkLmVtaXQoeyBjYXNlSWQ6IHJlc3BvbnNlWydpZCddLCBzdGF0dXM6IHRoaXMuZ2V0U3RhdHVzKHJlc3BvbnNlKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0UGFnZSh7IHdpemFyZCwgY3VycmVudFBhZ2VJZCwgZXZlbnRUcmlnZ2VyLCBmb3JtIH06IENhc2VFZGl0R2V0TmV4dFBhZ2UpOiBXaXphcmRQYWdlIHtcbiAgICByZXR1cm4gd2l6YXJkLm5leHRQYWdlKFxuICAgICAgY3VycmVudFBhZ2VJZCxcbiAgICAgIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKGV2ZW50VHJpZ2dlciwgZm9ybSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbmZpcm0oY29uZmlybWF0aW9uOiBDb25maXJtYXRpb24pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbiA9IGNvbmZpcm1hdGlvbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjb25maXJtJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKHsgZXZlbnRUcmlnZ2VyLCBmb3JtLCBjYXNlRGV0YWlscywgc3VibWl0IH06IENhc2VFZGl0U3VibWl0Rm9ybSk6IHZvaWQge1xuICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAvLyBXZSBoYXZlIHRvIHJ1biB0aGUgZXZlbnQgY29tcGxldGlvbiBjaGVja3MgaWYgdGFzayBpbiBzZXNzaW9uIHN0b3JhZ2VcbiAgICAvLyBhbmQgaWYgdGhlIHRhc2sgaXMgaW4gc2Vzc2lvbiBzdG9yYWdlLCB0aGVuIGlzIGl0IGFzc29jaWF0ZWQgdG8gdGhlIGNhc2VcbiAgICBjb25zdCBjbGllbnRDb250ZXh0U3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCk7XG4gICAgY29uc3QgdXNlclRhc2sgPSBGaWVsZHNVdGlscy5nZXRVc2VyVGFza0Zyb21DbGllbnRDb250ZXh0KGNsaWVudENvbnRleHRTdHIpO1xuICAgIGNvbnN0IHRhc2tJblNlc3Npb25TdG9yYWdlID0gdXNlclRhc2sgPyB1c2VyVGFzay50YXNrX2RhdGEgOiBudWxsO1xuICAgIGxldCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm87XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5UQVNLX0VWRU5UX0NPTVBMRVRJT05fSU5GTyk7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGNvbnN0IGFzc2lnbk5lZWRlZCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Fzc2lnbk5lZWRlZCcpO1xuICAgIGlmICh0YXNrRXZlbnRDb21wbGV0aW9uU3RyKSB7XG4gICAgICB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyA9IEpTT04ucGFyc2UodGFza0V2ZW50Q29tcGxldGlvblN0cik7XG4gICAgfVxuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRJZCA9IHRoaXMuZ2V0RXZlbnRJZChmb3JtKTtcbiAgICBjb25zdCBjYXNlSWQgPSB0aGlzLmdldENhc2VJZChjYXNlRGV0YWlscyk7XG4gICAgY29uc3QgdXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICBjb25zdCBldmVudERldGFpbHM6IEV2ZW50RGV0YWlscyA9IHtldmVudElkLCBjYXNlSWQsIHVzZXJJZCwgYXNzaWduTmVlZGVkfTtcbiAgICBpZiAodGhpcy50YXNrRXhpc3RzRm9yVGhpc0V2ZW50KHRhc2tJblNlc3Npb25TdG9yYWdlLCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbywgZXZlbnREZXRhaWxzKSkge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGB0YXNrIGV4aXN0IGZvciB0aGlzIGV2ZW50IGZvciBjYXNlSWQgYW5kIGV2ZW50SWQgYXMgJHtjYXNlSWR9ICR7ZXZlbnRJZH1gKTtcbiAgICAgIC8vIFNob3cgZXZlbnQgY29tcGxldGlvbiBjb21wb25lbnQgdG8gcGVyZm9ybSBldmVudCBjb21wbGV0aW9uIGNoZWNrc1xuICAgICAgdGhpcy5ldmVudENvbXBsZXRpb25QYXJhbXMgPSAoe1xuICAgICAgICBjYXNlSWQsXG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIHRhc2s6IHRhc2tJblNlc3Npb25TdG9yYWdlXG4gICAgICB9KTtcbiAgICAgIC8vIGFkZCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyBhZ2FpbiB0byBlbnN1cmUgbGluayBjdXJyZW50IGV2ZW50IHdpdGggdGFzayBpZFxuICAgICAgLy8gbm90ZTogcHJldmlvdXMgdXNhZ2Ugd2FzIGNyZWF0ZWQgaGVyZSBzbyB0aGlzIGlzIHRvIGVuc3VyZSBjb3JyZWN0IGZ1bmN0aW9uYWxpdHkgY29udGludWVzXG4gICAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8gPSB7XG4gICAgICAgIGNhc2VJZCxcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgdXNlcklkLFxuICAgICAgICB0YXNrSWQ6IHRhc2tJblNlc3Npb25TdG9yYWdlLmlkLFxuICAgICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpfTtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8sIEpTT04uc3RyaW5naWZ5KHRhc2tFdmVudENvbXBsZXRpb25JbmZvKSk7XG4gICAgICB0aGlzLmlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUYXNrIG5vdCBpbiBzZXNzaW9uIHN0b3JhZ2UsIHByb2NlZWQgdG8gc3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoe1xuICAgICAgICBldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYXNlU3VibWl0KHtmb3JtLFxuICAgICAgICBjYXNlRXZlbnREYXRhLFxuICAgICAgICBzdWJtaXRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlSWQoY2FzZURldGFpbHM6IENhc2VWaWV3KTogc3RyaW5nIHtcbiAgICByZXR1cm4gKGNhc2VEZXRhaWxzID8gY2FzZURldGFpbHMuY2FzZV9pZCA6ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRJZChmb3JtOiBGb3JtR3JvdXApOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtLnZhbHVlLmV2ZW50LmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfTogQ2FzZUVkaXRHZW5lcmF0ZUNhc2VFdmVudERhdGEgKTogQ2FzZUV2ZW50RGF0YSB7XG4gICAgY29uc3QgY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHtcbiAgICAgIGRhdGE6IHRoaXMucmVwbGFjZUVtcHR5Q29tcGxleEZpZWxkVmFsdWVzKFxuICAgICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UoXG4gICAgICAgICAgdGhpcy5yZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKFxuICAgICAgICAgICAgZm9ybS5nZXQoJ2RhdGEnKSBhcyBGb3JtR3JvdXAsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcykpKSxcbiAgICAgIGV2ZW50OiBmb3JtLnZhbHVlLmV2ZW50XG4gICAgfSBhcyBDYXNlRXZlbnREYXRhO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5jbGVhck5vbkNhc2VGaWVsZHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVOdWxsTGFiZWxzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlEb2N1bWVudHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIFJlbW92ZSBjb2xsZWN0aW9uIGZpZWxkcyB0aGF0IGhhdmUgXCJtaW5cIiB2YWxpZGF0aW9uIG9mIGdyZWF0ZXIgdGhhbiB6ZXJvIHNldCBvbiB0aGUgRmllbGRUeXBlIGJ1dCBhcmUgZW1wdHk7XG4gICAgLy8gdGhlc2Ugd2lsbCBmYWlsIHZhbGlkYXRpb25cbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlDb2xsZWN0aW9uc1dpdGhNaW5WYWxpZGF0aW9uKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICAvLyBGb3IgQ2FzZSBGbGFnIHN1Ym1pc3Npb25zICh3aGVyZSBhIEZsYWdMYXVuY2hlciBmaWVsZCBpcyBwcmVzZW50IGluIHRoZSBldmVudCB0cmlnZ2VyKSwgdGhlIGZsYWcgZGV0YWlscyBkYXRhXG4gICAgLy8gbmVlZHMgcG9wdWxhdGluZyBmb3IgZWFjaCBGbGFncyBmaWVsZCwgdGhlbiB0aGUgRmxhZ0xhdW5jaGVyIGZpZWxkIG5lZWRzIHJlbW92aW5nXG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlcG9wdWxhdGVGb3JtRGF0YUZyb21DYXNlRmllbGRWYWx1ZXMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIERhdGEgcG9wdWxhdGlvbiBzdGVwIHJlcXVpcmVkIGZvciBMaW5rZWQgQ2FzZXNcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucG9wdWxhdGVMaW5rZWRDYXNlc0RldGFpbHNGcm9tQ2FzZUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgLy8gUmVtb3ZlIFwiTGF1bmNoZXJcIi10eXBlIGZpZWxkcyAodGhlc2UgaGF2ZSBubyB2YWx1ZXMgYW5kIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgcGVyc2lzdGVkKVxuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVDYXNlRmllbGRzT2ZUeXBlKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBbJ0ZsYWdMYXVuY2hlcicsICdDb21wb25lbnRMYXVuY2hlciddKTtcblxuICAgIC8vIGRlbGV0ZSBmaWVsZHMgd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSBjYXNlIGV2ZW50IGpvdXJuZXkgd2l6YXJkIHBhZ2VzIGNhc2UgZmllbGRzXG4gICAgdGhpcy52YWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UuZGVsZXRlTm9uVmFsaWRhdGVkRmllbGRzKHRoaXMudmFsaWRQYWdlTGlzdCwgY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIGZhbHNlLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuICAgIGNvbnN0IHBhZ2VMaXN0Q2FzZUZpZWxkcyA9IHRoaXMudmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlLnZhbGlkUGFnZUxpc3RDYXNlRmllbGRzKHRoaXMudmFsaWRQYWdlTGlzdCwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXNlIGZpZWxkcyB3aGljaCBhcmUgaGlkZGVuLCBvbmx5IGlmIHRoZSBzdWJtaXNzaW9uIGlzICpub3QqIGZvciBDYXNlIEZsYWdzXG4gICAgaWYgKCF0aGlzLmlzQ2FzZUZsYWdTdWJtaXNzaW9uKSB7XG4gICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlVW5uZWNlc3NhcnlGaWVsZHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBwYWdlTGlzdENhc2VGaWVsZHMsIHRydWUsIHRydWUpO1xuICAgIH1cblxuICAgIGNhc2VFdmVudERhdGEuZXZlbnRfdG9rZW4gPSBldmVudFRyaWdnZXIuZXZlbnRfdG9rZW47XG4gICAgY2FzZUV2ZW50RGF0YS5pZ25vcmVfd2FybmluZyA9IHRoaXMuaWdub3JlV2FybmluZztcbiAgICBpZiAodGhpcy5jb25maXJtYXRpb24pIHtcbiAgICAgIGNhc2VFdmVudERhdGEuZGF0YSA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiBjYXNlRXZlbnREYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIG5vbi1hcnJheSB2YWx1ZSBvYmplY3RzIHdpdGggYG51bGxgIGZvciBhbnkgQ29tcGxleC10eXBlIGZpZWxkcyB3aG9zZSB2YWx1ZSBpcyBlZmZlY3RpdmVseSBlbXB0eSwgaS5lLlxuICAgKiBhbGwgaXRzIHN1Yi1maWVsZHMgYW5kIGRlc2NlbmRhbnRzIGFyZSBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBvYmplY3QgdHJlZSByZXByZXNlbnRpbmcgYWxsIHRoZSBmb3JtIGZpZWxkIGRhdGFcbiAgICogQHJldHVybnMgVGhlIGZvcm0gZmllbGQgZGF0YSBtb2RpZmllZCBhY2NvcmRpbmdseVxuICAgKi9cbiAgcHJpdmF0ZSByZXBsYWNlRW1wdHlDb21wbGV4RmllbGRWYWx1ZXMoZGF0YTogb2JqZWN0KTogb2JqZWN0IHtcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhW2tleV0pICYmIHR5cGVvZiBkYXRhW2tleV0gPT09ICdvYmplY3QnICYmICFGaWVsZHNVdGlscy5jb250YWluc05vbkVtcHR5VmFsdWVzKGRhdGFba2V5XSkpIHtcbiAgICAgICAgZGF0YVtrZXldID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlICphbGwqIHZhbHVlcyBvZiBhIHtAbGluayBGb3JtR3JvdXB9LCBpbmNsdWRpbmcgdGhvc2UgZm9yIGRpc2FibGVkIGZpZWxkcyAoaS5lLiBoaWRkZW4gb25lcyksIHJlcGxhY2luZyB0aGVcbiAgICogdmFsdWUgb2YgYW55IHRoYXQgYXJlIGhpZGRlbiBBTkQgaGF2ZSBgcmV0YWluX2hpZGRlbl92YWx1ZWAgc2V0IHRvIGB0cnVlYCBpbiB0aGUgY29ycmVzcG9uZGluZyBgQ2FzZUZpZWxkYCwgd2l0aFxuICAgKiB0aGUgKm9yaWdpbmFsKiB2YWx1ZSBoZWxkIGluIHRoZSBgQ2FzZUZpZWxkYCBvYmplY3QuXG4gICAqXG4gICAqIFRoaXMgaXMgYXMgcGVyIGRlc2lnbiBpbiBFVUktMzYyMiwgd2hlcmUgYW55IHVzZXItZHJpdmVuIHVwZGF0ZXMgdG8gaGlkZGVuIGZpZWxkcyB3aXRoIGByZXRhaW5faGlkZGVuX3ZhbHVlYCA9XG4gICAqIGB0cnVlYCBhcmUgaWdub3JlZCAodGh1cyByZXRhaW5pbmcgdGhlIHZhbHVlIGRpc3BsYXllZCBvcmlnaW5hbGx5KS5cbiAgICpcbiAgICogKiBGb3IgQ29tcGxleCBmaWVsZCB0eXBlcywgdGhlIHJlcGxhY2VtZW50IGFib3ZlIGlzIHBlcmZvcm1lZCByZWN1cnNpdmVseSBmb3IgYWxsIGhpZGRlbiBzdWItZmllbGRzIHdpdGhcbiAgICogYHJldGFpbl9oaWRkZW5fdmFsdWVgID0gYHRydWVgLlxuICAgKlxuICAgKiAqIEZvciBDb2xsZWN0aW9uIGZpZWxkIHR5cGVzLCBpbmNsdWRpbmcgY29sbGVjdGlvbnMgb2YgQ29tcGxleCBhbmQgRG9jdW1lbnQgZmllbGQgdHlwZXMsIHRoZSByZXBsYWNlbWVudCBpc1xuICAgKiBwZXJmb3JtZWQgZm9yIGFsbCBmaWVsZHMgaW4gdGhlIGNvbGxlY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtR3JvdXAgVGhlIGBGb3JtR3JvdXBgIGluc3RhbmNlIHdob3NlIHJhdyB2YWx1ZXMgYXJlIHRvIGJlIHRyYXZlcnNlZFxuICAgKiBAcGFyYW0gY2FzZUZpZWxkcyBUaGUgYXJyYXkgb2Yge0BsaW5rIENhc2VGaWVsZH0gZG9tYWluIG1vZGVsIG9iamVjdHMgY29ycmVzcG9uZGluZyB0byBmaWVsZHMgaW4gYGZvcm1Hcm91cGBcbiAgICogQHBhcmFtIHBhcmVudEZpZWxkIFJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGBDYXNlRmllbGRgLiBVc2VkIGZvciByZXRyaWV2aW5nIHRoZSBzdWItZmllbGQgdmFsdWVzIG9mIGEgQ29tcGxleCBmaWVsZFxuICAgKiB0byBwZXJmb3JtIHJlY3Vyc2l2ZSByZXBsYWNlbWVudCAtIHRoZSBzdWItZmllbGQgYENhc2VGaWVsZGBzIHRoZW1zZWx2ZXMgZG8gKm5vdCogY29udGFpbiBhbnkgdmFsdWVzXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSAqcmF3KiBmb3JtIHZhbHVlIGRhdGEgKGFzIGtleS12YWx1ZSBwYWlycyksIHdpdGggYW55IHZhbHVlIHJlcGxhY2VtZW50cyBhcyBuZWNlc3NhcnlcbiAgICovXG4gIHByaXZhdGUgcmVwbGFjZUhpZGRlbkZvcm1WYWx1ZXNXaXRoT3JpZ2luYWxDYXNlRGF0YShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10sIHBhcmVudEZpZWxkPzogQ2FzZUZpZWxkKTogb2JqZWN0IHtcbiAgICAvLyBHZXQgdGhlIHJhdyBmb3JtIHZhbHVlIGRhdGEsIHdoaWNoIGluY2x1ZGVzIHRoZSB2YWx1ZXMgb2YgYW55IGRpc2FibGVkIGNvbnRyb2xzLCBhcyBrZXktdmFsdWUgcGFpcnNcbiAgICBjb25zdCByYXdGb3JtVmFsdWVEYXRhID0gZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG5cbiAgICAvLyBQbGFjZSBhbGwgY2FzZSBmaWVsZHMgaW4gYSBsb29rdXAgb2JqZWN0LCBzbyB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgYnkgaWRcbiAgICBjb25zdCBjYXNlRmllbGRzTG9va3VwID0ge307XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGNhc2VGaWVsZHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNhc2VGaWVsZHNMb29rdXBbY2FzZUZpZWxkc1tpXS5pZF0gPSBjYXNlRmllbGRzW2ldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgYW55IGZvcm0gdmFsdWUgd2l0aCB0aGUgb3JpZ2luYWwsIHdoZXJlIGl0cyBDYXNlRmllbGQgaXMgaGlkZGVuIEFORCBoYXMgdGhlIHJldGFpbl9oaWRkZW5fdmFsdWUgZmxhZyBzZXRcbiAgICAgKiB0byB0cnVlLlxuICAgICAqXG4gICAgICogSWYgdGhlIENhc2VGaWVsZCdzIGBoaWRkZW5gIGF0dHJpYnV0ZSBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlbiBjaGVjayB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgcGFyZW50IENhc2VGaWVsZCAoaWZcbiAgICAgKiBvbmUgZXhpc3RzKS4gVGhpcyBpcyBvY2N1cnJpbmcgKGFuZCBpcyBwb3NzaWJseSBhIGJ1Zykgd2hlbiBhIENhc2VGaWVsZCBpcyBhIHN1Yi1maWVsZCBvZiBhIENvbXBsZXggdHlwZSwgb3IgYW5cbiAgICAgKiBpdGVtIGluIGEgQ29sbGVjdGlvbiB0eXBlLlxuICAgICAqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29tcGxleCB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHBlcmZvcm0gYSByZWN1cnNpdmUgcmVwbGFjZW1lbnQgZm9yIGFsbCAoaGlkZGVuKVxuICAgICAqIHN1Yi1maWVsZHMgd2l0aCByZXRhaW5faGlkZGVuX3ZhbHVlID0gdHJ1ZSwgdXNpbmcgdGhlaXIgb3JpZ2luYWwgQ2FzZUZpZWxkIHZhbHVlcyAoZnJvbSB0aGUgYGZvcm1hdHRlZF92YWx1ZWBcbiAgICAgKiBhdHRyaWJ1dGUpLlxuICAgICAqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29sbGVjdGlvbiB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHRoZSBlbnRpcmUgY29sbGVjdGlvbiBpcyByZXBsYWNlZCB3aXRoIHRoZVxuICAgICAqIG9yaWdpbmFsIGZyb20gYGZvcm1hdHRlZF92YWx1ZWAuIFRoaXMgYXBwbGllcyB0byAqYWxsKiB0eXBlcyBvZiBDb2xsZWN0aW9ucy5cbiAgICAgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIE9iamVjdC5rZXlzKHJhd0Zvcm1WYWx1ZURhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkOiBDYXNlRmllbGQgPSBjYXNlRmllbGRzTG9va3VwW2tleV07XG4gICAgICAvLyBJZiBjYXNlRmllbGQuaGlkZGVuIGlzIE5PVCB0cnV0aHkgYW5kIGFsc28gTk9UIGVxdWFsIHRvIGZhbHNlLCB0aGVuIGl0IG11c3QgYmUgbnVsbC91bmRlZmluZWQgKHJlbWVtYmVyIHRoYXRcbiAgICAgIC8vIGJvdGggbnVsbCBhbmQgdW5kZWZpbmVkIGFyZSBlcXVhbCB0byAqbmVpdGhlciBmYWxzZSBub3IgdHJ1ZSopXG4gICAgICBpZiAoY2FzZUZpZWxkPy5yZXRhaW5faGlkZGVuX3ZhbHVlICYmXG4gICAgICAgIChjYXNlRmllbGQ/LmhpZGRlbiB8fCAoY2FzZUZpZWxkPy5oaWRkZW4gIT09IGZhbHNlICYmIHBhcmVudEZpZWxkPy5oaWRkZW4pKSkge1xuICAgICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVDb21wbGV4RmllbGQoY2FzZUZpZWxkLCBmb3JtR3JvdXAsIGtleSwgcmF3Rm9ybVZhbHVlRGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVOb25Db21wbGV4RmllbGQocGFyZW50RmllbGQsIHJhd0Zvcm1WYWx1ZURhdGEsIGtleSwgY2FzZUZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJhd0Zvcm1WYWx1ZURhdGE7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vbkNvbXBsZXhGaWVsZChwYXJlbnRGaWVsZDogQ2FzZUZpZWxkLCByYXdGb3JtVmFsdWVEYXRhLCBrZXk6IHN0cmluZywgY2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICAvLyBEZWZhdWx0IGNhc2UgYWxzbyBoYW5kbGVzIGNvbGxlY3Rpb25zIG9mICphbGwqIHR5cGVzOyB0aGUgZW50aXJlIGNvbGxlY3Rpb24gaW4gcmF3Rm9ybVZhbHVlRGF0YSB3aWxsIGJlXG4gICAgLy8gcmVwbGFjZWQgd2l0aCB0aGUgb3JpZ2luYWwgZnJvbSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAvLyBVc2UgdGhlIENhc2VGaWVsZCdzIGV4aXN0aW5nICpmb3JtYXR0ZWRfdmFsdWUqIGZyb20gdGhlIHBhcmVudCwgaWYgYXZhaWxhYmxlLiAoVGhpcyBpcyBuZWNlc3NhcnkgZm9yXG4gICAgLy8gQ29tcGxleCBmaWVsZHMsIHdob3NlIHN1Yi1maWVsZHMgZG8gbm90IGhvbGQgYW55IHZhbHVlcyBpbiB0aGUgbW9kZWwuKSBPdGhlcndpc2UsIHVzZSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAvLyBmcm9tIHRoZSBDYXNlRmllbGQgaXRzZWxmLlxuICAgIGlmIChwYXJlbnRGaWVsZCAmJiBwYXJlbnRGaWVsZC5mb3JtYXR0ZWRfdmFsdWUpIHtcbiAgICAgIHJhd0Zvcm1WYWx1ZURhdGFba2V5XSA9IHBhcmVudEZpZWxkLmZvcm1hdHRlZF92YWx1ZVtjYXNlRmllbGQuaWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIShjYXNlRmllbGQuaGlkZGVuICYmIGNhc2VGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlKSkge1xuICAgICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSBjYXNlRmllbGQuZm9ybWF0dGVkX3ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29tcGxleEZpZWxkKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBmb3JtR3JvdXA6IEZvcm1Hcm91cDxhbnk+LCBrZXk6IHN0cmluZywgcmF3Rm9ybVZhbHVlRGF0YSkge1xuICAgIC8vIE5vdGU6IERlbGliZXJhdGUgdXNlIG9mIGVxdWFsaXR5ICg9PSkgYW5kIG5vbi1lcXVhbGl0eSAoIT0pIG9wZXJhdG9ycyBmb3IgbnVsbCBjaGVja3MgdGhyb3VnaG91dCwgdG9cbiAgICAvLyBoYW5kbGUgYm90aCBudWxsIGFuZCB1bmRlZmluZWQgdmFsdWVzXG4gICAgaWYgKGNhc2VGaWVsZC52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAvLyBDYWxsIHRoaXMgZnVuY3Rpb24gcmVjdXJzaXZlbHkgdG8gcmVwbGFjZSB0aGUgQ29tcGxleCBmaWVsZCdzIHN1Yi1maWVsZHMgYXMgbmVjZXNzYXJ5LCBwYXNzaW5nIHRoZVxuICAgICAgLy8gQ2FzZUZpZWxkIGl0c2VsZiAodGhlIHN1Yi1maWVsZHMgZG8gbm90IGNvbnRhaW4gYW55IHZhbHVlcywgc28gdGhlc2UgbmVlZCB0byBiZSBvYnRhaW5lZCBmcm9tIHRoZVxuICAgICAgLy8gcGFyZW50KVxuICAgICAgLy8gVXBkYXRlIHJhd0Zvcm1WYWx1ZURhdGEgZm9yIHRoaXMgZmllbGRcbiAgICAgIC8vIGNyZWF0aW5nIGZvcm0gZ3JvdXAgYW5kIGFkZGluZyBjb250cm9sIGludG8gaXQgaW4gY2FzZSBjYXNlRmllbGQgaXMgb2YgY29tcGxleHQgdHlwZSBhbmQgYW5kIHBhcnQgb2YgZm9ybUdyb3VwXG4gICAgICBjb25zdCBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgIGlmIChmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGZvcm0uYWRkQ29udHJvbChpdGVtLCBuZXcgRm9ybUNvbnRyb2woZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0udmFsdWVbaXRlbV0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSB0aGlzLnJlcGxhY2VIaWRkZW5Gb3JtVmFsdWVzV2l0aE9yaWdpbmFsQ2FzZURhdGEoXG4gICAgICAgIGZvcm0sIGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBjYXNlRmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FzZVN1Ym1pdCh7IGZvcm0sIGNhc2VFdmVudERhdGEsIHN1Ym1pdCB9OiBDYXNlRWRpdENhc2VTdWJtaXQpOiB2b2lkIHtcbiAgICBjb25zdCBsb2FkaW5nU3Bpbm5lclRva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIC8vIGtlZXAgdGhlIGluaXRpYWwgZXZlbnQgcmVzcG9uc2UgdG8gZmluYWxpc2UgcHJvY2VzcyBhZnRlciB0YXNrIGNvbXBsZXRpb25cbiAgICBsZXQgZXZlbnRSZXNwb25zZTogb2JqZWN0O1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ3Rhc2tDb21wbGV0aW9uRXJyb3InLCAnZmFsc2UnKTtcbiAgICBzdWJtaXQoY2FzZUV2ZW50RGF0YSkucGlwZShzd2l0Y2hNYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICBldmVudFJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICByZXR1cm4gdGhpcy5wb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZCgpO1xuICAgIH0pLGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdTcGlubmVyVG9rZW4pO1xuICAgICAgICAvLyBvbiBldmVudCBjb21wbGV0aW9uIGVuc3VyZSB0aGUgcHJldmlvdXMgZXZlbnQgY2xpZW50Q29udGV4dC90YXNrRXZlbnRDb21wbGV0aW9uSW5mbyByZW1vdmVkXG4gICAgICAgIC8vIE5vdGUgLSBOb3QgcmVtb3ZlVGFza0Zyb21DbGllbnRDb250ZXh0IGJlY2F1c2UgY291bGQgaW50ZXJmZXJlIHdpdGggb3RoZXIgbG9naWNcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8pXG4gICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbmlzaEV2ZW50Q29tcGxldGlvbkxvZ2ljKGV2ZW50UmVzcG9uc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgaWYgKCFldmVudFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBldmVudCBzdWJtaXNzaW9uIGVycm9yXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdC5uZXh0KGVycm9yKTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5lcnJvci5kZXRhaWxzKSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUVycm9yU2VydmljZVxuICAgICAgICAgICAgICAgIC5tYXBGaWVsZEVycm9ycyh0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10gYXMgRm9ybUdyb3VwLCAndmFsaWRhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKCd0YXNrQ29tcGxldGlvbkVycm9yJywgJ3RydWUnKTtcbiAgICAgICAgICAgIC8vIHRhc2sgYXNzaWdubWVudC9jb21wbGV0aW9uIGVycm9yIC0gaGFuZGxlZCB3aXRoaW4gd29ya2FsbG9jYXRpb24gc2VydmljZVxuICAgICAgICAgICAgLy8gY291bGQgc2V0IHRhc2sgdG8gYmUgZGVsZXRlZCAob3IgY29tcGxldGVkIGxhdGVyKT9cbiAgICAgICAgICAgIHRoaXMuZmluaXNoRXZlbnRDb21wbGV0aW9uTG9naWMoZXZlbnRSZXNwb25zZSk7XG4gICAgICAgICAgICAvLyBiZWxvdyBhbGxvd3MgZXJyb3IgdG8gYmUgc2hvd24gb24gbmF2aWdhdGlvbiB0byBjb25maXJtYXRpb24gcGFnZVxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2V0UHJlc2VydmVBbGVydHModHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcih7cGhyYXNlOiBDb25zdGFudHMuVEFTS19DT01QTEVUSU9OX0VSUk9SfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGNsaWVudENvbnRleHRTdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LkNMSUVOVF9DT05URVhUKTtcbiAgICBjb25zdCB1c2VyVGFzayA9IEZpZWxkc1V0aWxzLmdldFVzZXJUYXNrRnJvbUNsaWVudENvbnRleHQoY2xpZW50Q29udGV4dFN0cik7XG4gICAgY29uc3QgW3Rhc2ssIHRhc2tUb0JlQ29tcGxldGVkXSA9IHVzZXJUYXNrID8gW3VzZXJUYXNrLnRhc2tfZGF0YSwgdXNlclRhc2suY29tcGxldGVfdGFza10gOiBbbnVsbCwgZmFsc2VdO1xuICAgIGNvbnN0IGFzc2lnbk5lZWRlZCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Fzc2lnbk5lZWRlZCcpID09PSAndHJ1ZSc7XG4gICAgaWYgKHRhc2sgJiYgYXNzaWduTmVlZGVkICYmIHRhc2tUb0JlQ29tcGxldGVkKSB7XG4gICAgICB0aGlzLmFic3RyYWN0Q29uZmlnLmxvZ01lc3NhZ2UoYHBvc3RDb21wbGV0ZVRhc2tJZlJlcXVpcmVkIHdpdGggYXNzaWduTmVlZGVkOiB0YXNrSWQgJHt0YXNrLmlkfSBhbmQgZXZlbnQgbmFtZSAke3RoaXMuZXZlbnRUcmlnZ2VyLm5hbWV9YCk7XG4gICAgICByZXR1cm4gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuYXNzaWduQW5kQ29tcGxldGVUYXNrKHRhc2suaWQsIHRoaXMuZXZlbnRUcmlnZ2VyLm5hbWUpO1xuICAgIH0gZWxzZSBpZiAodGFzayAmJiB0YXNrVG9CZUNvbXBsZXRlZCkge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBwb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZDogdGFza0lkICR7dGFzay5pZH0gYW5kIGV2ZW50IG5hbWUgJHt0aGlzLmV2ZW50VHJpZ2dlci5uYW1lfWApO1xuICAgICAgcmV0dXJuIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmNvbXBsZXRlVGFzayh0YXNrLmlkLCB0aGlzLmV2ZW50VHJpZ2dlci5uYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hFdmVudENvbXBsZXRpb25Mb2dpYyhldmVudFJlc3BvbnNlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyA9IG51bGw7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICBjb25zdCBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbiA9IHRoaXMuYnVpbGRDb25maXJtYXRpb24oZXZlbnRSZXNwb25zZSk7XG4gICAgaWYgKGNvbmZpcm1hdGlvbiAmJiAoY29uZmlybWF0aW9uLmdldEhlYWRlcigpIHx8IGNvbmZpcm1hdGlvbi5nZXRCb2R5KCkpKSB7XG4gICAgICB0aGlzLmNvbmZpcm0oY29uZmlybWF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0U3VibWl0dGVkKGV2ZW50UmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb25maXJtYXRpb24ocmVzcG9uc2U6IG9iamVjdCk6IENvbmZpcm1hdGlvbiB7XG4gICAgaWYgKHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXSkge1xuICAgICAgcmV0dXJuIG5ldyBDb25maXJtYXRpb24oXG4gICAgICAgIHJlc3BvbnNlWydpZCddLFxuICAgICAgICByZXNwb25zZVsnY2FsbGJhY2tfcmVzcG9uc2Vfc3RhdHVzJ10sXG4gICAgICAgIHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXVsnY29uZmlybWF0aW9uX2hlYWRlciddLFxuICAgICAgICByZXNwb25zZVsnYWZ0ZXJfc3VibWl0X2NhbGxiYWNrX3Jlc3BvbnNlJ11bJ2NvbmZpcm1hdGlvbl9ib2R5J11cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNoZWNrcyB3aGV0aGVyIGN1cnJlbnQgY2xpZW50Q29udGV4dCByZWxldmFudCBmb3IgdGhlIGV2ZW50XG4gIHB1YmxpYyB0YXNrRXhpc3RzRm9yVGhpc0V2ZW50KHRhc2tJblNlc3Npb25TdG9yYWdlOiBUYXNrLCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8sIGV2ZW50RGV0YWlsczogRXZlbnREZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0YXNrSW5TZXNzaW9uU3RvcmFnZSB8fCB0YXNrSW5TZXNzaW9uU3RvcmFnZS5jYXNlX2lkICE9PSBldmVudERldGFpbHMuY2FzZUlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGFza0V2ZW50Q29tcGxldGlvbkluZm8pIHtcbiAgICAgIC8vIGlmIG5vIHRhc2sgZXZlbnQgcHJlc2VudCB0aGVuIHRoZXJlIGlzIG5vIHRhc2sgdG8gY29tcGxldGUgZnJvbSBwcmV2aW91cyBldmVudCBwcmVzZW50XG4gICAgICAvLyBFWFVJLTI2NjggLSBBZGQgYWRkaXRpb25hbCBsb2dpYyB0byBjb25maXJtIHRoZSB0YXNrIGlzIHJlbGV2YW50IHRvIHRoZSBldmVudFxuICAgICAgaWYgKHRoaXMudGFza0lzRm9yRXZlbnQodGFza0luU2Vzc2lvblN0b3JhZ2UsIGV2ZW50RGV0YWlscykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjbGllbnQgY29udGV4dCBzdGlsbCBuZWVkZWQgZm9yIGxhbmd1YWdlXG4gICAgICAgIHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLnRhc2tJZCAhPT0gdGFza0luU2Vzc2lvblN0b3JhZ2UuaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKCh0YXNrRXZlbnRDb21wbGV0aW9uSW5mby50YXNrSWQgPT09IHRhc2tJblNlc3Npb25TdG9yYWdlLmlkICYmXG4gICAgICAgICAgdGhpcy5ldmVudERldGFpbHNEb05vdE1hdGNoKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLCBldmVudERldGFpbHMpKVxuICAgICAgICB8fCB0aGlzLmV2ZW50TW9yZVRoYW5EYXlBZ28odGFza0V2ZW50Q29tcGxldGlvbkluZm8uY3JlYXRlZFRpbWVzdGFtcClcbiAgICAgICkge1xuICAgICAgICAvLyBpZiB0aGUgc2Vzc2lvbiBzdG9yYWdlIG5vdCByZWxhdGVkIHRvIGV2ZW50LCBpZ25vcmUgaXQgYW5kIHJlbW92ZVxuICAgICAgICByZW1vdmVUYXNrRnJvbUNsaWVudENvbnRleHQodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKENhc2VFZGl0Q29tcG9uZW50LlRBU0tfRVZFTlRfQ09NUExFVElPTl9JTkZPKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50RGV0YWlscy5hc3NpZ25OZWVkZWQgPT09ICdmYWxzZScgJiYgZXZlbnREZXRhaWxzLnVzZXJJZCAhPT0gdGFza0luU2Vzc2lvblN0b3JhZ2UuYXNzaWduZWUpIHtcbiAgICAgICAgLy8gaWYgdGhlIHVzZXIgZG9lcyBub3QgbWF0Y2ggdGFzayBhc3NpZ25lZSwgYXNzaWduIGlzIG5vdyBuZWVkZWRcbiAgICAgICAgLy8gZGF0YSBjYW5ub3QgYmUgZGVsZXRlZCBhbmQgaWdub3JlZCBhcyBpdCBtYXRjaGVzIHVuZGVyc3RhbmRpbmdcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnYXNzaWduTmVlZGVkJywgJ3RydWUnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkV2ZW50Q2FuQmVDb21wbGV0ZWQoeyBldmVudFRyaWdnZXIsIGV2ZW50Q2FuQmVDb21wbGV0ZWQsIGNhc2VEZXRhaWxzLCBmb3JtLCBzdWJtaXQgfTogQ2FzZUVkaXRvbkV2ZW50Q2FuQmVDb21wbGV0ZWQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnRDYW5CZUNvbXBsZXRlZCkge1xuICAgICAgLy8gU3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfSk7XG4gICAgICB0aGlzLmNhc2VTdWJtaXQoeyBmb3JtLCBjYXNlRXZlbnREYXRhLCBzdWJtaXQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5hdmlnYXRlIHRvIHRhc2tzIHRhYiBvbiBjYXNlIGRldGFpbHMgcGFnZVxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpfS90YXNrc2BdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN0YXR1cyhyZXNwb25zZTogb2JqZWN0KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5oYXNDYWxsYmFja0ZhaWxlZChyZXNwb25zZSkgPyByZXNwb25zZVsnY2FsbGJhY2tfcmVzcG9uc2Vfc3RhdHVzJ10gOiByZXNwb25zZVsnZGVsZXRlX2RyYWZ0X3Jlc3BvbnNlX3N0YXR1cyddO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNDYWxsYmFja0ZhaWxlZChyZXNwb25zZTogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSAhPT0gJ0NBTExCQUNLX0NPTVBMRVRFRCc7XG4gIH1cblxuICBwcml2YXRlIGV2ZW50TW9yZVRoYW5EYXlBZ28odGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBpZiAoKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGltZXN0YW1wKSA+ICgyNCo2MCo2MCoxMDAwKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZXZlbnREZXRhaWxzRG9Ob3RNYXRjaCh0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8sIGV2ZW50RGV0YWlsczogRXZlbnREZXRhaWxzKSB7XG4gICAgaWYgKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLmV2ZW50SWQgIT09IGV2ZW50RGV0YWlscy5ldmVudElkXG4gICAgICB8fCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mby5jYXNlSWQgIT09IGV2ZW50RGV0YWlscy5jYXNlSWRcbiAgICAgIHx8IHRhc2tFdmVudENvbXBsZXRpb25JbmZvLnVzZXJJZCAhPT0gZXZlbnREZXRhaWxzLnVzZXJJZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdGFza0lzRm9yRXZlbnQodGFzazogVGFzaywgZXZlbnREZXRhaWxzOiBFdmVudERldGFpbHMpOiBib29sZWFuIHtcbiAgICAvLyBFWFVJLTI2NjggLSBFbnN1cmUgZGVzY3JpcHRpb24gZm9yIHRhc2sgaW5jbHVkZXMgZXZlbnQgSURcbiAgICAvLyBOb3RlIC0gVGhpcyBpcyBhIGZhaWxzYWZlIGZvciBhbiBlZGdlIGNhc2UgdGhhdCBtYXkgbmV2ZXIgb2NjdXIgYWdhaW5cbiAgICAvLyBEZXNjcmlwdGlvbiBtYXkgbm90IGluY2x1ZGUgZXZlbnRJZCBpbiBzb21lIGNhc2VzIHdoaWNoIG1heSBtZWFuIHRhc2sgbm90IGNvbXBsZXRlZCAoaG93ZXZlciB0aGlzIHdpbGwgYmUgZWFzeSB0byBjaGVjaylcbiAgICAvLyBJbiBpbnN0YW5jZXMgb2YgdGhlIGFib3ZlIHRhc2tFdmVudENvbXBsZXRpb25JbmZvIHdpbGwgYmUgY3JlYXRlZCB0byBibG9jayB0aGlzIGNoZWNrIGZyb20gb2NjdXJyaW5nXG4gICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBjaGVja2luZyB0YXNrSXNGb3JFdmVudDogdGFzayBJRCAke3Rhc2suaWR9LCB0YXNrIGRlc2NyaXB0aW9uICR7dGFzay5kZXNjcmlwdGlvbn0sIGV2ZW50IG5hbWUgJHtldmVudERldGFpbHMuZXZlbnRJZH1gKTtcbiAgICByZXR1cm4gdGFzay5jYXNlX2lkID09PSBldmVudERldGFpbHMuY2FzZUlkICYmICh0YXNrLmRlc2NyaXB0aW9uPy5pbmNsdWRlcyhldmVudERldGFpbHMuZXZlbnRJZCkpO1xuICB9XG59XG4iLCI8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4iXX0=
|
|
@@ -70,6 +70,11 @@ export class CaseEventTriggerComponent {
|
|
|
70
70
|
this.caseDetails = caseDetails;
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
|
+
this.route.data.subscribe((data) => {
|
|
74
|
+
if (data?.eventTrigger) {
|
|
75
|
+
this.eventTrigger = data.eventTrigger;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
73
78
|
this.eventTrigger = this.route.snapshot.data.eventTrigger;
|
|
74
79
|
if (this.activityPollingService.isEnabled) {
|
|
75
80
|
this.ngZone.runOutsideAngular(() => {
|
|
@@ -168,4 +173,4 @@ export class CaseEventTriggerComponent {
|
|
|
168
173
|
args: [{ selector: 'ccd-case-event-trigger', template: "<div *ngIf=\"isDataLoaded()\" class=\"screen-990\">\n <ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n <ccd-case-edit [caseDetails]=\"caseDetails\"\n [submit]=\"submit()\"\n [validate]=\"validate()\"\n [eventTrigger]=\"eventTrigger\"\n (cancelled)=\"cancel()\"\n (submitted)=\"submitted($event)\"></ccd-case-edit>\n</div>\n" }]
|
|
169
174
|
}], () => [{ type: i0.NgZone }, { type: i1.CasesService }, { type: i1.CaseNotifier }, { type: i2.Router }, { type: i3.AlertService }, { type: i2.ActivatedRoute }, { type: i4.CaseReferencePipe }, { type: i3.ActivityPollingService }, { type: i3.SessionStorageService }, { type: i3.LoadingService }], null); })();
|
|
170
175
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEventTriggerComponent, { className: "CaseEventTriggerComponent", filePath: "lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.ts", lineNumber: 14 }); })();
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUE0QixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBdUQsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakosT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7SUNQL0QsOEJBQStDO0lBQzdDLGtDQUFtRjtJQUNuRix3Q0FLK0M7SUFBaEMsQUFEQSxvTUFBYSxlQUFRLEtBQUMsNkxBQ1Qsd0JBQWlC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QUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7bUZBOUhVLHlCQUF5Qjs2REFBekIseUJBQXlCO1lDYnRDLDBFQUErQzs7WUFBekMseUNBQW9COzs7aUZEYWIseUJBQXlCO2NBSnJDLFNBQVM7MkJBQ0Usd0JBQXdCOztrRkFHdkIseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbiwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvY29uc3RhbnRzJztcbmltcG9ydCB7IEFjdGl2aXR5LCBDYXNlRXZlbnREYXRhLCBDYXNlRXZlbnRUcmlnZ2VyLCBDYXNlVmlldywgRGlzcGxheU1vZGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLCBBbGVydFNlcnZpY2UsIEV2ZW50U3RhdHVzU2VydmljZSwgRmllbGRzVXRpbHMsIExvYWRpbmdTZXJ2aWNlLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZXZlbnQtdHJpZ2dlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWV2ZW50LXRyaWdnZXIuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUV2ZW50VHJpZ2dlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFVkVOVF9DT01QTEVUSU9OX01FU1NBR0UgPSBgQ2FzZSAjJUNBU0VSRUZFUkVOQ0UlIGhhcyBiZWVuIHVwZGF0ZWQgd2l0aCBldmVudDogJU5BTUUlYDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDQUxMQkFDS19GQUlMRURfTUVTU0FHRSA9ICcgYnV0IHRoZSBjYWxsYmFjayBzZXJ2aWNlIGNhbm5vdCBiZSBjb21wbGV0ZWQnO1xuXG4gIHB1YmxpYyBCQU5ORVIgPSBEaXNwbGF5TW9kZS5CQU5ORVI7XG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG4gIHB1YmxpYyBjYXNlRGV0YWlsczogQ2FzZVZpZXc7XG4gIHB1YmxpYyBhY3Rpdml0eVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2FzZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgcGFyZW50VXJsOiBzdHJpbmc7XG4gIHB1YmxpYyByb3V0ZXJDdXJyZW50TmF2aWdhdGlvbjogTmF2aWdhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlUmVmZXJlbmNlUGlwZTogQ2FzZVJlZmVyZW5jZVBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVBvbGxpbmdTZXJ2aWNlOiBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yb3V0ZXJDdXJyZW50TmF2aWdhdGlvbiA9IHRoaXMucm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1NlcnZpY2UuaGFzU2hhcmVkU3Bpbm5lcigpKXtcbiAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UudW5yZWdpc3RlclNoYXJlZFNwaW5uZXIoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlKSB7XG4gICAgICB0aGlzLmNhc2VEZXRhaWxzID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZVN1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZU5vdGlmaWVyLmNhc2VWaWV3LnN1YnNjcmliZShjYXNlRGV0YWlscyA9PiB7XG4gICAgICAgIHRoaXMuY2FzZURldGFpbHMgPSBjYXNlRGV0YWlscztcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmV2ZW50VHJpZ2dlciA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5ldmVudFRyaWdnZXI7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCAoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlTdWJzY3JpcHRpb24gPSB0aGlzLnBvc3RFZGl0QWN0aXZpdHkoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdQb3N0ZWQgRURJVCBhY3Rpdml0eSBhbmQgcmVzdWx0IGlzOiAnICsgSlNPTi5zdHJpbmdpZnkoX3Jlc29sdmVkKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucm91dGUucGFyZW50LnVybC5zdWJzY3JpYmUocGF0aCA9PiB7XG4gICAgICB0aGlzLnBhcmVudFVybCA9IGAvJHtwYXRoLmpvaW4oJy8nKX1gO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5U3Vic2NyaXB0aW9uICYmIHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSAmJiB0aGlzLmNhc2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2FzZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3N0RWRpdEFjdGl2aXR5KCk6IE9ic2VydmFibGU8QWN0aXZpdHlbXT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5UG9sbGluZ1NlcnZpY2UucG9zdEVkaXRBY3Rpdml0eSh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiAoc2FuaXRpemVkRWRpdEZvcm06IENhc2VFdmVudERhdGEpID0+IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIChzYW5pdGl6ZWRFZGl0Rm9ybTogQ2FzZUV2ZW50RGF0YSkgPT5cbiAgICAgIHRoaXMuY2FzZXNTZXJ2aWNlLmNyZWF0ZUV2ZW50KHRoaXMuY2FzZURldGFpbHMsIHNhbml0aXplZEVkaXRGb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZSgpOiAoc2FuaXRpemVkRWRpdEZvcm06IENhc2VFdmVudERhdGEsIHBhZ2VJZDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiAoc2FuaXRpemVkRWRpdEZvcm06IENhc2VFdmVudERhdGEsIHBhZ2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBCeXBhc3MgdmFsaWRhdGlvbiBpZiB0aGUgZXZlbnRUcmlnZ2VyIGNhc2UgZmllbGRzIGNvbnRhaW4gYSBGbGFnTGF1bmNoZXIgZmllbGQ7IHRoaXMgZmllbGQgdHlwZSBjYW5ub3QgYmVcbiAgICAgIC8vIHZhbGlkYXRlZCwgdW5saWtlIHJlZ3VsYXIgZmllbGRzXG4gICAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXI/LmNhc2VfZmllbGRzPy5zb21lKChjYXNlRmllbGQpID0+IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKGNhc2VGaWVsZCwgWydGbGFnTGF1bmNoZXInXSkpXG4gICAgICAgID8gb2YobnVsbClcbiAgICAgICAgOiB0aGlzLmNhc2VzU2VydmljZS52YWxpZGF0ZUNhc2UodGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuaWQsIHNhbml0aXplZEVkaXRGb3JtLCBwYWdlSWQpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3VibWl0dGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFN0YXR1czogc3RyaW5nID0gZXZlbnRbJ3N0YXR1cyddO1xuICAgIGNvbnN0IHRhc2tDb21wbGV0aW9uRmFpbGVkID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndGFza0NvbXBsZXRpb25FcnJvcicpID09PSAndHJ1ZSc7XG4gICAgdGhpcy5yb3V0ZXJcbiAgICAgIC5uYXZpZ2F0ZShbdGhpcy5wYXJlbnRVcmxdKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBjYXNlUmVmZXJlbmNlID0gdGhpcy5jYXNlUmVmZXJlbmNlUGlwZS50cmFuc2Zvcm0odGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkLnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zdCByZXBsYWNlbWVudHMgPSB7IENBU0VSRUZFUkVOQ0U6IGNhc2VSZWZlcmVuY2UsIE5BTUU6IHRoaXMuZXZlbnRUcmlnZ2VyLm5hbWUgfTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2V0UHJlc2VydmVBbGVydHModHJ1ZSk7XG4gICAgICAgIGlmICh0YXNrQ29tcGxldGlvbkZhaWxlZCkge1xuICAgICAgICAgIC8vIGlmIHRhc2sgc3RpbGwgcHJlc2VudCBpbiBzZXNzaW9uIHN0b3JhZ2UsIHdlIGtub3cgdGhhdCB0aGUgdGFzayBoYXMgbm90IGJlZW4gY29ycmVjdGx5IGNvbXBsZXRlZFxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm5pbmcoe1xuICAgICAgICAgICAgcGhyYXNlOiBDYXNlRXZlbnRUcmlnZ2VyQ29tcG9uZW50LkVWRU5UX0NPTVBMRVRJT05fTUVTU0FHRSArICcuICcgKyBDb25zdGFudHMuVEFTS19DT01QTEVUSU9OX0VSUk9SXG4gICAgICAgICAgICAsIHJlcGxhY2VtZW50c30pO1xuICAgICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ3Rhc2tDb21wbGV0aW9uRXJyb3InKTtcbiAgICAgICAgfSBlbHNlIGlmIChFdmVudFN0YXR1c1NlcnZpY2UuaXNJbmNvbXBsZXRlKGV2ZW50U3RhdHVzKSkge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm5pbmcoe1xuICAgICAgICAgICAgcGhyYXNlOiBDYXNlRXZlbnRUcmlnZ2VyQ29tcG9uZW50LkVWRU5UX0NPTVBMRVRJT05fTUVTU0FHRSArIENhc2VFdmVudFRyaWdnZXJDb21wb25lbnQuQ0FMTEJBQ0tfRkFJTEVEX01FU1NBR0UsXG4gICAgICAgICAgICByZXBsYWNlbWVudHNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKHtcbiAgICAgICAgICAgIHBocmFzZTogQ2FzZUV2ZW50VHJpZ2dlckNvbXBvbmVudC5FVkVOVF9DT01QTEVUSU9OX01FU1NBR0UsXG4gICAgICAgICAgICByZXBsYWNlbWVudHMsXG4gICAgICAgICAgICBwcmVzZXJ2ZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcHJldmlvdXNVcmwgPSB0aGlzLnJvdXRlckN1cnJlbnROYXZpZ2F0aW9uPy5wcmV2aW91c05hdmlnYXRpb24/LmZpbmFsVXJsPy50b1N0cmluZygpO1xuICAgIGlmIChwcmV2aW91c1VybCkge1xuICAgICAgaWYgKHByZXZpb3VzVXJsLmluZGV4T2YoJyMnKSA+IC0xKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHByZXZpb3VzVXJsLnNwbGl0KCcjJylbMF07XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gcHJldmlvdXNVcmwuc3BsaXQoJyMnKVsxXS5yZXBsYWNlKC8lMjAvZywgJyAnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdLCB7IGZyYWdtZW50OiBmcmFnbWVudCB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcHJldmlvdXNVcmxdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnBhcmVudFVybF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RhdGFMb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuZXZlbnRUcmlnZ2VyICYmIHRoaXMuY2FzZURldGFpbHMpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNEYXRhTG9hZGVkKClcIiBjbGFzcz1cInNjcmVlbi05OTBcIj5cbiAgPGNjZC1hY3Rpdml0eSBbY2FzZUlkXT1cImNhc2VEZXRhaWxzLmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiQkFOTkVSXCI+PC9jY2QtYWN0aXZpdHk+XG4gIDxjY2QtY2FzZS1lZGl0IFtjYXNlRGV0YWlsc109XCJjYXNlRGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgIFtzdWJtaXRdPVwic3VibWl0KClcIlxuICAgICAgICAgICAgICAgICBbdmFsaWRhdGVdPVwidmFsaWRhdGUoKVwiXG4gICAgICAgICAgICAgICAgIFtldmVudFRyaWdnZXJdPVwiZXZlbnRUcmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgKGNhbmNlbGxlZCk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgIChzdWJtaXR0ZWQpPVwic3VibWl0dGVkKCRldmVudClcIj48L2NjZC1jYXNlLWVkaXQ+XG48L2Rpdj5cbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUE0QixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBdUQsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakosT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7SUNQL0QsOEJBQStDO0lBQzdDLGtDQUFtRjtJQUNuRix3Q0FLK0M7SUFBaEMsQUFEQSxvTUFBYSxlQUFRLEtBQUMsNkxBQ1Qsd0JBQWlC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UUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQzttRkFuSVUseUJBQXlCOzZEQUF6Qix5QkFBeUI7WUNidEMsMEVBQStDOztZQUF6Qyx5Q0FBb0I7OztpRkRhYix5QkFBeUI7Y0FKckMsU0FBUzsyQkFDRSx3QkFBd0I7O2tGQUd2Qix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9jb25zdGFudHMnO1xuaW1wb3J0IHsgQWN0aXZpdHksIENhc2VFdmVudERhdGEsIENhc2VFdmVudFRyaWdnZXIsIENhc2VWaWV3LCBEaXNwbGF5TW9kZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlUmVmZXJlbmNlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IEFjdGl2aXR5UG9sbGluZ1NlcnZpY2UsIEFsZXJ0U2VydmljZSwgRXZlbnRTdGF0dXNTZXJ2aWNlLCBGaWVsZHNVdGlscywgTG9hZGluZ1NlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENhc2VOb3RpZmllciwgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1ldmVudC10cmlnZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZXZlbnQtdHJpZ2dlci5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDYXNlRXZlbnRUcmlnZ2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVWRU5UX0NPTVBMRVRJT05fTUVTU0FHRSA9IGBDYXNlICMlQ0FTRVJFRkVSRU5DRSUgaGFzIGJlZW4gdXBkYXRlZCB3aXRoIGV2ZW50OiAlTkFNRSVgO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBTExCQUNLX0ZBSUxFRF9NRVNTQUdFID0gJyBidXQgdGhlIGNhbGxiYWNrIHNlcnZpY2UgY2Fubm90IGJlIGNvbXBsZXRlZCc7XG5cbiAgcHVibGljIEJBTk5FUiA9IERpc3BsYXlNb2RlLkJBTk5FUjtcbiAgcHVibGljIGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcjtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIGFjdGl2aXR5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBwYXJlbnRVcmw6IHN0cmluZztcbiAgcHVibGljIHJvdXRlckN1cnJlbnROYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VOb3RpZmllcjogQ2FzZU5vdGlmaWVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VSZWZlcmVuY2VQaXBlOiBDYXNlUmVmZXJlbmNlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5UG9sbGluZ1NlcnZpY2U6IEFjdGl2aXR5UG9sbGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZVxuICApIHtcbiAgICB0aGlzLnJvdXRlckN1cnJlbnROYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nU2VydmljZS5oYXNTaGFyZWRTcGlubmVyKCkpe1xuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyU2hhcmVkU3Bpbm5lcigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UpIHtcbiAgICAgIHRoaXMuY2FzZURldGFpbHMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXNlU3Vic2NyaXB0aW9uID0gdGhpcy5jYXNlTm90aWZpZXIuY2FzZVZpZXcuc3Vic2NyaWJlKGNhc2VEZXRhaWxzID0+IHtcbiAgICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IGNhc2VEZXRhaWxzO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucm91dGUuZGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhPy5ldmVudFRyaWdnZXIpe1xuICAgICAgICB0aGlzLmV2ZW50VHJpZ2dlciA9IGRhdGEuZXZlbnRUcmlnZ2VyO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZXZlbnRUcmlnZ2VyID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlcjtcbiAgICBpZiAodGhpcy5hY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLmlzRW5hYmxlZCkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbiA9IHRoaXMucG9zdEVkaXRBY3Rpdml0eSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ1Bvc3RlZCBFRElUIGFjdGl2aXR5IGFuZCByZXN1bHQgaXM6ICcgKyBKU09OLnN0cmluZ2lmeShfcmVzb2x2ZWQpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZS5wYXJlbnQudXJsLnN1YnNjcmliZShwYXRoID0+IHtcbiAgICAgIHRoaXMucGFyZW50VXJsID0gYC8ke3BhdGguam9pbignLycpfWA7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlTdWJzY3JpcHRpb24gJiYgdGhpcy5hY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLmlzRW5hYmxlZCkge1xuICAgICAgdGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlICYmIHRoaXMuY2FzZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jYXNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHBvc3RFZGl0QWN0aXZpdHkoKTogT2JzZXJ2YWJsZTxBY3Rpdml0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5wb3N0RWRpdEFjdGl2aXR5KHRoaXMuY2FzZURldGFpbHMuY2FzZV9pZCk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IChzYW5pdGl6ZWRFZGl0Rm9ybTogQ2FzZUV2ZW50RGF0YSkgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gKHNhbml0aXplZEVkaXRGb3JtOiBDYXNlRXZlbnREYXRhKSA9PlxuICAgICAgdGhpcy5jYXNlc1NlcnZpY2UuY3JlYXRlRXZlbnQodGhpcy5jYXNlRGV0YWlscywgc2FuaXRpemVkRWRpdEZvcm0pO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKCk6IChzYW5pdGl6ZWRFZGl0Rm9ybTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIChzYW5pdGl6ZWRFZGl0Rm9ybTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgIC8vIEJ5cGFzcyB2YWxpZGF0aW9uIGlmIHRoZSBldmVudFRyaWdnZXIgY2FzZSBmaWVsZHMgY29udGFpbiBhIEZsYWdMYXVuY2hlciBmaWVsZDsgdGhpcyBmaWVsZCB0eXBlIGNhbm5vdCBiZVxuICAgICAgLy8gdmFsaWRhdGVkLCB1bmxpa2UgcmVndWxhciBmaWVsZHNcbiAgICAgIHJldHVybiB0aGlzLmV2ZW50VHJpZ2dlcj8uY2FzZV9maWVsZHM/LnNvbWUoKGNhc2VGaWVsZCkgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSlcbiAgICAgICAgPyBvZihudWxsKVxuICAgICAgICA6IHRoaXMuY2FzZXNTZXJ2aWNlLnZhbGlkYXRlQ2FzZSh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfdHlwZS5pZCwgc2FuaXRpemVkRWRpdEZvcm0sIHBhZ2VJZCk7XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXR0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50U3RhdHVzOiBzdHJpbmcgPSBldmVudFsnc3RhdHVzJ107XG4gICAgY29uc3QgdGFza0NvbXBsZXRpb25GYWlsZWQgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd0YXNrQ29tcGxldGlvbkVycm9yJykgPT09ICd0cnVlJztcbiAgICB0aGlzLnJvdXRlclxuICAgICAgLm5hdmlnYXRlKFt0aGlzLnBhcmVudFVybF0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhc2VSZWZlcmVuY2UgPSB0aGlzLmNhc2VSZWZlcmVuY2VQaXBlLnRyYW5zZm9ybSh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbnN0IHJlcGxhY2VtZW50cyA9IHsgQ0FTRVJFRkVSRU5DRTogY2FzZVJlZmVyZW5jZSwgTkFNRTogdGhpcy5ldmVudFRyaWdnZXIubmFtZSB9O1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zZXRQcmVzZXJ2ZUFsZXJ0cyh0cnVlKTtcbiAgICAgICAgaWYgKHRhc2tDb21wbGV0aW9uRmFpbGVkKSB7XG4gICAgICAgICAgLy8gaWYgdGFzayBzdGlsbCBwcmVzZW50IGluIHNlc3Npb24gc3RvcmFnZSwgd2Uga25vdyB0aGF0IHRoZSB0YXNrIGhhcyBub3QgYmVlbiBjb3JyZWN0bHkgY29tcGxldGVkXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybmluZyh7XG4gICAgICAgICAgICBwaHJhc2U6IENhc2VFdmVudFRyaWdnZXJDb21wb25lbnQuRVZFTlRfQ09NUExFVElPTl9NRVNTQUdFICsgJy4gJyArIENvbnN0YW50cy5UQVNLX0NPTVBMRVRJT05fRVJST1JcbiAgICAgICAgICAgICwgcmVwbGFjZW1lbnRzfSk7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgndGFza0NvbXBsZXRpb25FcnJvcicpO1xuICAgICAgICB9IGVsc2UgaWYgKEV2ZW50U3RhdHVzU2VydmljZS5pc0luY29tcGxldGUoZXZlbnRTdGF0dXMpKSB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybmluZyh7XG4gICAgICAgICAgICBwaHJhc2U6IENhc2VFdmVudFRyaWdnZXJDb21wb25lbnQuRVZFTlRfQ09NUExFVElPTl9NRVNTQUdFICsgQ2FzZUV2ZW50VHJpZ2dlckNvbXBvbmVudC5DQUxMQkFDS19GQUlMRURfTUVTU0FHRSxcbiAgICAgICAgICAgIHJlcGxhY2VtZW50c1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3Moe1xuICAgICAgICAgICAgcGhyYXNlOiBDYXNlRXZlbnRUcmlnZ2VyQ29tcG9uZW50LkVWRU5UX0NPTVBMRVRJT05fTUVTU0FHRSxcbiAgICAgICAgICAgIHJlcGxhY2VtZW50cyxcbiAgICAgICAgICAgIHByZXNlcnZlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwcmV2aW91c1VybCA9IHRoaXMucm91dGVyQ3VycmVudE5hdmlnYXRpb24/LnByZXZpb3VzTmF2aWdhdGlvbj8uZmluYWxVcmw/LnRvU3RyaW5nKCk7XG4gICAgaWYgKHByZXZpb3VzVXJsKSB7XG4gICAgICBpZiAocHJldmlvdXNVcmwuaW5kZXhPZignIycpID4gLTEpIHtcbiAgICAgICAgY29uc3QgdXJsID0gcHJldmlvdXNVcmwuc3BsaXQoJyMnKVswXTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBwcmV2aW91c1VybC5zcGxpdCgnIycpWzFdLnJlcGxhY2UoLyUyMC9nLCAnICcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0sIHsgZnJhZ21lbnQ6IGZyYWdtZW50IH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwcmV2aW91c1VybF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucGFyZW50VXJsXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzRGF0YUxvYWRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5ldmVudFRyaWdnZXIgJiYgdGhpcy5jYXNlRGV0YWlscyk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0RhdGFMb2FkZWQoKVwiIGNsYXNzPVwic2NyZWVuLTk5MFwiPlxuICA8Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwiY2FzZURldGFpbHMuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJCQU5ORVJcIj48L2NjZC1hY3Rpdml0eT5cbiAgPGNjZC1jYXNlLWVkaXQgW2Nhc2VEZXRhaWxzXT1cImNhc2VEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgW3N1Ym1pdF09XCJzdWJtaXQoKVwiXG4gICAgICAgICAgICAgICAgIFt2YWxpZGF0ZV09XCJ2YWxpZGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgW2V2ZW50VHJpZ2dlcl09XCJldmVudFRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAoY2FuY2VsbGVkKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgKHN1Ym1pdHRlZCk9XCJzdWJtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLWNhc2UtZWRpdD5cbjwvZGl2PlxuIl19
|
|
@@ -45,7 +45,7 @@ export class EventTriggerResolver {
|
|
|
45
45
|
}
|
|
46
46
|
resolve(route) {
|
|
47
47
|
return this.isRootTriggerEventRoute(route) ? this.getAndCacheEventTrigger(route)
|
|
48
|
-
: this.cachedEventTrigger ? Promise.resolve(this.cachedEventTrigger)
|
|
48
|
+
: (this.cachedEventTrigger && (route.params?.eid === this.cachedEventTrigger?.id)) ? Promise.resolve(this.cachedEventTrigger)
|
|
49
49
|
: this.getAndCacheEventTrigger(route);
|
|
50
50
|
}
|
|
51
51
|
isRootTriggerEventRoute(route) {
|
|
@@ -87,4 +87,4 @@ export class EventTriggerResolver {
|
|
|
87
87
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventTriggerResolver, [{
|
|
88
88
|
type: Injectable
|
|
89
89
|
}], () => [{ type: i1.CasesService }, { type: i2.AlertService }, { type: i3.ProfileService }, { type: i4.ProfileNotifier }, { type: i5.Router }, { type: i6.AbstractAppConfig }, { type: i7.ErrorNotifierService }, { type: i8.LoadingService }], null); })();
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJpZ2dlci5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9zZXJ2aWNlcy9ldmVudC10cmlnZ2VyLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFtQyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7OztBQUduRCxNQUFNLE9BQU8sb0JBQW9CO0lBUVo7SUFDQTtJQUNBO0lBQ0E7SUFDVDtJQUNBO0lBQ0E7SUFDUztJQWRaLE1BQU0sQ0FBVSxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLE1BQU0sQ0FBVSxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLE1BQU0sQ0FBVSxjQUFjLEdBQUcsZUFBZSxDQUFDO0lBQ2hELE1BQU0s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QUUsRUFBRTtZQUNuQixLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0QsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQixDQUFDOzhFQTdEVSxvQkFBb0I7Z0VBQXBCLG9CQUFvQixXQUFwQixvQkFBb0I7O2lGQUFwQixvQkFBb0I7Y0FEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDYXNlRXZlbnRUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLWV2ZW50LXRyaWdnZXIubW9kZWwnO1xuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9wcm9maWxlL3Byb2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9maWxlTm90aWZpZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9maWxlL3Byb2ZpbGUubm90aWZpZXInO1xuaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9maWxlL3Byb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBFcnJvck5vdGlmaWVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9yL2Vycm9yLW5vdGlmaWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFdmVudFRyaWdnZXJSZXNvbHZlciBpbXBsZW1lbnRzIFJlc29sdmU8Q2FzZUV2ZW50VHJpZ2dlcj4ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfSUQgPSAnY2lkJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9FVkVOVF9JRCA9ICdlaWQnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElHTk9SRV9XQVJOSU5HID0gJ2lnbm9yZVdhcm5pbmcnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBJR05PUkVfV0FSTklOR19WQUxVRVMgPSBbICd0cnVlJywgJ2ZhbHNlJyBdO1xuICBwcml2YXRlIGNhY2hlZEV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcjtcbiAgcHJpdmF0ZSBjYWNoZWRQcm9maWxlOiBQcm9maWxlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9maWxlU2VydmljZTogUHJvZmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9maWxlTm90aWZpZXI6IFByb2ZpbGVOb3RpZmllcixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIGVycm9yTm90aWZpZXI6IEVycm9yTm90aWZpZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlXG4gICAgKSB7fVxuXG4gIHB1YmxpYyByZXNvbHZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogUHJvbWlzZTxDYXNlRXZlbnRUcmlnZ2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSb290VHJpZ2dlckV2ZW50Um91dGUocm91dGUpID8gdGhpcy5nZXRBbmRDYWNoZUV2ZW50VHJpZ2dlcihyb3V0ZSlcbiAgICAgICAgOiAodGhpcy5jYWNoZWRFdmVudFRyaWdnZXIgJiYgKHJvdXRlLnBhcmFtcz8uZWlkID09PSB0aGlzLmNhY2hlZEV2ZW50VHJpZ2dlcj8uaWQpKSA/IFByb21pc2UucmVzb2x2ZSh0aGlzLmNhY2hlZEV2ZW50VHJpZ2dlcilcbiAgICAgICAgOiB0aGlzLmdldEFuZENhY2hlRXZlbnRUcmlnZ2VyKHJvdXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSb290VHJpZ2dlckV2ZW50Um91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICAvLyBpZiByb3V0ZSBpcyAndHJpZ2dlci86ZWlkJ1xuICAgIHJldHVybiAhcm91dGUuZmlyc3RDaGlsZCB8fCAhcm91dGUuZmlyc3RDaGlsZC51cmwubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbmRDYWNoZUV2ZW50VHJpZ2dlcihyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFByb21pc2U8Q2FzZUV2ZW50VHJpZ2dlcj4ge1xuICAgIGNvbnN0IGNpZCA9IHJvdXRlLnBhcmVudC5wYXJhbU1hcC5nZXQoRXZlbnRUcmlnZ2VyUmVzb2x2ZXIuUEFSQU1fQ0FTRV9JRCk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBwcmVmZXItY29uc3RcbiAgICBsZXQgY2FzZVR5cGVJZDogc3RyaW5nO1xuICAgIGNvbnN0IGV2ZW50VHJpZ2dlcklkID0gcm91dGUucGFyYW1NYXAuZ2V0KEV2ZW50VHJpZ2dlclJlc29sdmVyLlBBUkFNX0VWRU5UX0lEKTtcbiAgICBsZXQgaWdub3JlV2FybmluZyA9IHJvdXRlLnF1ZXJ5UGFyYW1NYXAuZ2V0KEV2ZW50VHJpZ2dlclJlc29sdmVyLklHTk9SRV9XQVJOSU5HKTtcbiAgICBpZiAoLTEgPT09IEV2ZW50VHJpZ2dlclJlc29sdmVyLklHTk9SRV9XQVJOSU5HX1ZBTFVFUy5pbmRleE9mKGlnbm9yZVdhcm5pbmcpKSB7XG4gICAgICBpZ25vcmVXYXJuaW5nID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jYWNoZWRQcm9maWxlKSB7XG4gICAgICB0aGlzLnByb2ZpbGVOb3RpZmllci5hbm5vdW5jZVByb2ZpbGUodGhpcy5jYWNoZWRQcm9maWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9maWxlU2VydmljZS5nZXQoKS5zdWJzY3JpYmUocHJvZmlsZSA9PiB7XG4gICAgICAgIHRoaXMuY2FjaGVkUHJvZmlsZSA9IHByb2ZpbGU7XG4gICAgICAgIHRoaXMucHJvZmlsZU5vdGlmaWVyLmFubm91bmNlUHJvZmlsZShwcm9maWxlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhc2VzU2VydmljZVxuICAgICAgLmdldEV2ZW50VHJpZ2dlcihjYXNlVHlwZUlkLCBldmVudFRyaWdnZXJJZCwgY2lkLCBpZ25vcmVXYXJuaW5nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZXZlbnRUcmlnZ2VyKSA9PiB0aGlzLmNhY2hlZEV2ZW50VHJpZ2dlciA9IGV2ZW50VHJpZ2dlciksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgZXJyb3IuZGV0YWlscyA9IHsgZXZlbnRJZDogZXZlbnRUcmlnZ2VySWQsIC4uLmVycm9yLmRldGFpbHMgfTtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zZXRQcmVzZXJ2ZUFsZXJ0cyh0cnVlKTtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICB0aGlzLmVycm9yTm90aWZpZXIuYW5ub3VuY2VFcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y2lkfS90YXNrc2BdKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -9126,6 +9126,12 @@ class CaseEditComponent {
|
|
|
9126
9126
|
this.cookieService = cookieService;
|
|
9127
9127
|
}
|
|
9128
9128
|
ngOnInit() {
|
|
9129
|
+
this.initializeComponent();
|
|
9130
|
+
this.route.queryParams.subscribe((params) => {
|
|
9131
|
+
this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];
|
|
9132
|
+
});
|
|
9133
|
+
}
|
|
9134
|
+
initializeComponent() {
|
|
9129
9135
|
this.wizard = this.wizardFactory.create(this.eventTrigger);
|
|
9130
9136
|
this.initialUrl = this.sessionStorageService.getItem('eventUrl');
|
|
9131
9137
|
this.isPageRefreshed = JSON.parse(this.sessionStorageService.getItem('isPageRefreshed'));
|
|
@@ -9138,9 +9144,11 @@ class CaseEditComponent {
|
|
|
9138
9144
|
description: ['']
|
|
9139
9145
|
})
|
|
9140
9146
|
});
|
|
9141
|
-
|
|
9142
|
-
|
|
9143
|
-
|
|
9147
|
+
}
|
|
9148
|
+
ngOnChanges() {
|
|
9149
|
+
if (this.eventTrigger) {
|
|
9150
|
+
this.initializeComponent();
|
|
9151
|
+
}
|
|
9144
9152
|
}
|
|
9145
9153
|
ngOnDestroy() {
|
|
9146
9154
|
/* istanbul ignore else */
|
|
@@ -9577,7 +9585,7 @@ class CaseEditComponent {
|
|
|
9577
9585
|
return task.case_id === eventDetails.caseId && (task.description?.includes(eventDetails.eventId));
|
|
9578
9586
|
}
|
|
9579
9587
|
static ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i4.FormBuilder), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(FieldsPurger), i0.ɵɵdirectiveInject(ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(WizardFactoryService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(WorkAllocationService), i0.ɵɵdirectiveInject(AlertService), i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(ReadCookieService)); };
|
|
9580
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService])], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
|
|
9588
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService]), i0.ɵɵNgOnChangesFeature], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
|
|
9581
9589
|
i0.ɵɵelement(0, "router-outlet");
|
|
9582
9590
|
} }, dependencies: [i1$1.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:0px}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
|
|
9583
9591
|
}
|
|
@@ -33619,7 +33627,7 @@ class EventTriggerResolver {
|
|
|
33619
33627
|
}
|
|
33620
33628
|
resolve(route) {
|
|
33621
33629
|
return this.isRootTriggerEventRoute(route) ? this.getAndCacheEventTrigger(route)
|
|
33622
|
-
: this.cachedEventTrigger ? Promise.resolve(this.cachedEventTrigger)
|
|
33630
|
+
: (this.cachedEventTrigger && (route.params?.eid === this.cachedEventTrigger?.id)) ? Promise.resolve(this.cachedEventTrigger)
|
|
33623
33631
|
: this.getAndCacheEventTrigger(route);
|
|
33624
33632
|
}
|
|
33625
33633
|
isRootTriggerEventRoute(route) {
|
|
@@ -33721,6 +33729,11 @@ class CaseEventTriggerComponent {
|
|
|
33721
33729
|
this.caseDetails = caseDetails;
|
|
33722
33730
|
});
|
|
33723
33731
|
}
|
|
33732
|
+
this.route.data.subscribe((data) => {
|
|
33733
|
+
if (data?.eventTrigger) {
|
|
33734
|
+
this.eventTrigger = data.eventTrigger;
|
|
33735
|
+
}
|
|
33736
|
+
});
|
|
33724
33737
|
this.eventTrigger = this.route.snapshot.data.eventTrigger;
|
|
33725
33738
|
if (this.activityPollingService.isEnabled) {
|
|
33726
33739
|
this.ngZone.runOutsideAngular(() => {
|