@hmcts/ccd-case-ui-toolkit 6.10.5-angular-upgrade-r3.5 → 6.10.6-angular-upgrade-r4
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/bundles/hmcts-ccd-case-ui-toolkit.umd.js +2 -22
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
- package/esm2015/lib/shared/components/case-editor/services/cases.service.js +3 -23
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js +2 -22
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
- package/lib/shared/components/case-editor/services/cases.service.d.ts +0 -2
- package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -127,7 +127,7 @@ export class CasesService {
|
|
|
127
127
|
.set('Content-Type', 'application/json');
|
|
128
128
|
return this.http
|
|
129
129
|
.post(url, eventData, { headers, observe: 'body' })
|
|
130
|
-
.pipe(
|
|
130
|
+
.pipe(catchError(error => {
|
|
131
131
|
this.errorService.setError(error);
|
|
132
132
|
return throwError(error);
|
|
133
133
|
}));
|
|
@@ -160,7 +160,7 @@ export class CasesService {
|
|
|
160
160
|
.set('Content-Type', 'application/json');
|
|
161
161
|
return this.http
|
|
162
162
|
.post(url, eventData, { headers, observe: 'body' })
|
|
163
|
-
.pipe(
|
|
163
|
+
.pipe(catchError(error => {
|
|
164
164
|
this.errorService.setError(error);
|
|
165
165
|
return throwError(error);
|
|
166
166
|
}));
|
|
@@ -199,10 +199,6 @@ export class CasesService {
|
|
|
199
199
|
}
|
|
200
200
|
return url;
|
|
201
201
|
}
|
|
202
|
-
processResponseBody(body, eventData) {
|
|
203
|
-
this.processTasksOnSuccess(body, eventData.event);
|
|
204
|
-
return body;
|
|
205
|
-
}
|
|
206
202
|
initialiseEventTrigger(eventTrigger) {
|
|
207
203
|
if (!eventTrigger.wizard_pages) {
|
|
208
204
|
eventTrigger.wizard_pages = [];
|
|
@@ -212,22 +208,6 @@ export class CasesService {
|
|
|
212
208
|
wizardPage.case_fields = this.orderService.sort(this.wizardPageFieldToCaseFieldMapper.mapAll(wizardPage.wizard_page_fields, eventTrigger.case_fields));
|
|
213
209
|
});
|
|
214
210
|
}
|
|
215
|
-
processTasksOnSuccess(caseData, eventData) {
|
|
216
|
-
// The following code is work allocation 1 related
|
|
217
|
-
if (this.appConfig.getWorkAllocationApiUrl().toLowerCase() === 'workallocation') {
|
|
218
|
-
// This is used a feature toggle to
|
|
219
|
-
// control the work allocation
|
|
220
|
-
if (!this.isPuiCaseManager()) {
|
|
221
|
-
this.workAllocationService.completeAppropriateTask(caseData.id, eventData.id, caseData.jurisdiction, caseData.case_type)
|
|
222
|
-
.subscribe(() => {
|
|
223
|
-
// Success. Do nothing.
|
|
224
|
-
}, error => {
|
|
225
|
-
// Show an appropriate warning about something that went wrong.
|
|
226
|
-
console.warn('Could not process tasks for this case event', error);
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
211
|
/*
|
|
232
212
|
Checks if the user has role of pui-case-manager and returns true or false
|
|
233
213
|
*/
|
|
@@ -294,4 +274,4 @@ CasesService.ɵprov = i0.ɵɵdefineInjectable({ token: CasesService, factory: Ca
|
|
|
294
274
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CasesService, [{
|
|
295
275
|
type: Injectable
|
|
296
276
|
}], function () { return [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }, { type: i1.OrderService }, { type: i1.HttpErrorService }, { type: i3.WizardPageFieldToCaseFieldMapper }, { type: i4.WorkAllocationService }, { type: i1.LoadingService }, { type: i1.SessionStorageService }]; }, null); })();
|
|
297
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUVMLGdCQUFnQixFQUdTLEtBQUssRUFJL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFHbEUsTUFBTSxPQUFPLFlBQVk7SUEwQ3ZCLFlBQ1UsSUFBaUIsRUFDakIsU0FBNEIsRUFDNUIsWUFBMEIsRUFDMUIsWUFB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RUFBRSxPQUFPLEVBQ2xCLFFBQVEsRUFBRSxJQUFJLEdBQ2YsQ0FBQztRQUVGLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxtQ0FDL0IsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQ3ZDLGFBQWEsRUFBRSxRQUFRLEVBQ3ZCLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxjQUFjLEdBQ3pDLENBQUE7UUFFRCxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsbUNBQzdCLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUNyQyxNQUFNLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQzFDLENBQUE7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQiw4QkFBOEIsRUFDOUIsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDOztBQXJaRCxvQkFBb0I7QUFDRyxtQ0FBc0IsR0FBRyxzRUFBc0UsQ0FBQztBQUNoRyw0Q0FBK0IsR0FDcEQsNkZBQTZGLENBQUM7QUFDekUsNkNBQWdDLEdBQ3JELDhGQUE4RixDQUFDO0FBQzFFLDZDQUFnQyxHQUNyRCw4RkFBOEYsQ0FBQztBQUVqRyw0QkFBNEI7QUFFTCx3Q0FBMkIsR0FDaEQsc0ZBQXNGLENBQUM7QUFFbEUsNENBQStCLEdBQ3BELDBGQUEwRixDQUFDO0FBQ3RFLHNDQUF5QixHQUM5QyxvRkFBb0YsQ0FBQztBQUNoRSxxQ0FBd0IsR0FDN0MsbUZBQW1GLENBQUM7QUFFL0QsNkJBQWdCLEdBQUcsa0JBQWtCLENBQUM7d0VBdEJsRCxZQUFZO29EQUFaLFlBQVksV0FBWixZQUFZO3VGQUFaLFlBQVk7Y0FEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IFNob3dDb25kaXRpb24gfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7XG4gIENhc2VFdmVudERhdGEsXG4gIENhc2VFdmVudFRyaWdnZXIsXG4gIENhc2VQcmludERvY3VtZW50LFxuICBDYXNlVmlldyxcbiAgQ2hhbGxlbmdlZEFjY2Vzc1JlcXVlc3QsIERyYWZ0LFxuICBSb2xlQXNzaWdubWVudFJlc3BvbnNlLFxuICBSb2xlQ2F0ZWdvcnksXG4gIFJvbGVSZXF1ZXN0UGF5bG9hZCwgU3BlY2lmaWNBY2Nlc3NSZXF1ZXN0XG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi91c2VyL3VzZXItaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscywgSHR0cEVycm9yU2VydmljZSwgSHR0cFNlcnZpY2UsIExvYWRpbmdTZXJ2aWNlLCBPcmRlclNlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IExpbmtDYXNlUmVhc29uLCBMaW5rZWRDYXNlc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vcGFsZXR0ZS9jYXNlLWxpbmsvZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlQWNjZXNzVXRpbHMgfSBmcm9tICcuLi9jYXNlLWFjY2Vzcy11dGlscyc7XG5pbXBvcnQgeyBXaXphcmRQYWdlIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IFdpemFyZFBhZ2VGaWVsZFRvQ2FzZUZpZWxkTWFwcGVyIH0gZnJvbSAnLi93aXphcmQtcGFnZS1maWVsZC10by1jYXNlLWZpZWxkLm1hcHBlcic7XG5pbXBvcnQgeyBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuL3dvcmstYWxsb2NhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhc2VzU2VydmljZSB7XG4gIC8vIEludGVybmFsIChVSSkgQVBJXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX0NBU0VfVklFVyA9ICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS51aS1jYXNlLXZpZXcudjIranNvbic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX1NUQVJUX0NBU0VfVFJJR0dFUiA9XG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLnVpLXN0YXJ0LWNhc2UtdHJpZ2dlci52Mitqc29uO2NoYXJzZXQ9VVRGLTgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9TVEFSVF9FVkVOVF9UUklHR0VSID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkudWktc3RhcnQtZXZlbnQtdHJpZ2dlci52Mitqc29uO2NoYXJzZXQ9VVRGLTgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9TVEFSVF9EUkFGVF9UUklHR0VSID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkudWktc3RhcnQtZHJhZnQtdHJpZ2dlci52Mitqc29uO2NoYXJzZXQ9VVRGLTgnO1xuXG4gIC8vIEV4dGVybmFsIChEYXRhIFN0b3JlKSBBUElcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9DQVNFX0RPQ1VNRU5UUyA9XG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLmNhc2UtZG9jdW1lbnRzLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfQ0FTRV9EQVRBX1ZBTElEQVRFID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkuY2FzZS1kYXRhLXZhbGlkYXRlLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX0NSRUFURV9FVkVOVCA9XG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLmNyZWF0ZS1ldmVudC52Mitqc29uO2NoYXJzZXQ9VVRGLTgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9DUkVBVEVfQ0FTRSA9XG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLmNyZWF0ZS1jYXNlLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQVUlfQ0FTRV9NQU5BR0VSID0gJ3B1aS1jYXNlLW1hbmFnZXInO1xuXG4gIGdldCA9IHRoaXMuZ2V0Q2FzZVZpZXc7XG5cbiAgcHVibGljIHN0YXRpYyB1cGRhdGVDaGFsbGVuZ2VkQWNjZXNzUmVxdWVzdEF0dHJpYnV0ZXMoaHR0cENsaWVudDogSHR0cENsaWVudCwgY2FzZUlkOiBzdHJpbmcsIGF0dHJpYnV0ZXNUb1VwZGF0ZTogeyBbeDogc3RyaW5nXTogYW55IH0pXG4gICAgOiBPYnNlcnZhYmxlPFJvbGVBc3NpZ25tZW50UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gaHR0cENsaWVudC5wb3N0PFJvbGVBc3NpZ25tZW50UmVzcG9uc2U+KGAvYXBpL2NoYWxsZW5nZWQtYWNjZXNzLXJlcXVlc3QvdXBkYXRlLWF0dHJpYnV0ZXNgLCB7XG4gICAgICBjYXNlSWQsXG4gICAgICBhdHRyaWJ1dGVzVG9VcGRhdGVcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdXBkYXRlU3BlY2lmaWNBY2Nlc3NSZXF1ZXN0QXR0cmlidXRlcyhodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBjYXNlSWQ6IHN0cmluZywgYXR0cmlidXRlc1RvVXBkYXRlOiB7IFt4OiBzdHJpbmddOiBhbnkgfSlcbiAgICA6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIHJldHVybiBodHRwQ2xpZW50LnBvc3Q8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4oYC9hcGkvc3BlY2lmaWMtYWNjZXNzLXJlcXVlc3QvdXBkYXRlLWF0dHJpYnV0ZXNgLCB7XG4gICAgICBjYXNlSWQsXG4gICAgICBhdHRyaWJ1dGVzVG9VcGRhdGVcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgb3JkZXJTZXJ2aWNlOiBPcmRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2U6IEh0dHBFcnJvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3aXphcmRQYWdlRmllbGRUb0Nhc2VGaWVsZE1hcHBlcjogV2l6YXJkUGFnZUZpZWxkVG9DYXNlRmllbGRNYXBwZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrQWxsb2NhdGlvblNlcnZpY2U6IFdvcmtBbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgZ2V0Q2FzZVZpZXcoanVyaXNkaWN0aW9uSWQ6IHN0cmluZyxcbiAgICBjYXNlVHlwZUlkOiBzdHJpbmcsXG4gICAgY2FzZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENhc2VWaWV3PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5hcHBDb25maWcuZ2V0QXBpVXJsKClcbiAgICAgICsgYC9jYXNld29ya2Vycy86dWlkYFxuICAgICAgKyBgL2p1cmlzZGljdGlvbnMvJHtqdXJpc2RpY3Rpb25JZH1gXG4gICAgICArIGAvY2FzZS10eXBlcy8ke2Nhc2VUeXBlSWR9YFxuICAgICAgKyBgL2Nhc2VzLyR7Y2FzZUlkfWA7XG5cbiAgICBjb25zdCBsb2FkaW5nVG9rZW4gPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnJlZ2lzdGVyKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZ1NlcnZpY2UudW5yZWdpc3Rlcihsb2FkaW5nVG9rZW4pKVxuICAgICAgKTtcbiAgfVxuXG4gIGdldENhc2VWaWV3VjIoY2FzZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENhc2VWaWV3PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hcHBDb25maWcuZ2V0Q2FzZURhdGFVcmwoKX0vaW50ZXJuYWwvY2FzZXMvJHtjYXNlSWR9YDtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgIC5zZXQoJ2V4cGVyaW1lbnRhbCcsICd0cnVlJylcbiAgICAgIC5zZXQoJ0FjY2VwdCcsIENhc2VzU2VydmljZS5WMl9NRURJQVRZUEVfQ0FTRV9WSUVXKVxuICAgICAgLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcblxuICAgIGNvbnN0IGxvYWRpbmdUb2tlbiA9IHRoaXMubG9hZGluZ1NlcnZpY2UucmVnaXN0ZXIoKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsLCB7IGhlYWRlcnMsIG9ic2VydmU6ICdib2R5JyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmdTZXJ2aWNlLnVucmVnaXN0ZXIobG9hZGluZ1Rva2VuKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVE9ETzogR2V0cyBjYXNlIGxpbmsgcmVzcG9uc2VzXG4gICAqIEByZXR1cm5zIGNhc2UgbGluayByZXNwb25zZXNcbiAgICovXG4gICBwdWJsaWMgZ2V0Q2FzZUxpbmtSZXNwb25zZXMoKTogT2JzZXJ2YWJsZTxMaW5rQ2FzZVJlYXNvbltdPiB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX0NBU0VfVklFVylcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgY29uc3QgbG9hZGluZ1Rva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoJ2Fzc2V0cy9nZXRDYXNlUmVhc29ucy5qc29uJywgeyBoZWFkZXJzLCBvYnNlcnZlOiAnYm9keScgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlYXNvbnMpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVhc29ucy5zb3J0KChyZWFzb25BLCByZWFzb25CKSA9PiByZWFzb25BLnZhbHVlX2VuID4gcmVhc29uQi52YWx1ZV9lbiA/IDEgOiAtMSk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdUb2tlbikpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldExpbmtlZENhc2VzKGNhc2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxMaW5rZWRDYXNlc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hcHBDb25maWcuZ2V0Q2FzZURhdGFTdG9yZUFwaVVybCgpfS8ke2Nhc2VJZH1gXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgIC5nZXQodXJsKVxuICAgIC5waXBlKFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEV2ZW50VHJpZ2dlcihjYXNlVHlwZUlkOiBzdHJpbmcsXG4gICAgZXZlbnRUcmlnZ2VySWQ6IHN0cmluZyxcbiAgICBjYXNlSWQ/OiBzdHJpbmcsXG4gICAgaWdub3JlV2FybmluZz86IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZUV2ZW50VHJpZ2dlcj4ge1xuICAgIGlnbm9yZVdhcm5pbmcgPSB1bmRlZmluZWQgIT09IGlnbm9yZVdhcm5pbmcgPyBpZ25vcmVXYXJuaW5nIDogJ2ZhbHNlJztcblxuICAgIGNvbnN0IHVybCA9IHRoaXMuYnVpbGRFdmVudFRyaWdnZXJVcmwoY2FzZVR5cGVJZCwgZXZlbnRUcmlnZ2VySWQsIGNhc2VJZCwgaWdub3JlV2FybmluZyk7XG5cbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgaWYgKERyYWZ0LmlzRHJhZnQoY2FzZUlkKSkge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX1NUQVJUX0RSQUZUX1RSSUdHRVIpO1xuICAgIH0gZWxzZSBpZiAoY2FzZUlkICE9PSB1bmRlZmluZWQgJiYgY2FzZUlkICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIENhc2VzU2VydmljZS5WMl9NRURJQVRZUEVfU1RBUlRfRVZFTlRfVFJJR0dFUik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9TVEFSVF9DQVNFX1RSSUdHRVIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsLCB7IGhlYWRlcnMsIG9ic2VydmU6ICdib2R5JyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChib2R5ID0+IHtcbiAgICAgICAgICByZXR1cm4gRmllbGRzVXRpbHMuaGFuZGxlTmVzdGVkRHluYW1pY0xpc3RzKGJvZHkpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocCkgPT4gcGxhaW5Ub0NsYXNzKENhc2VFdmVudFRyaWdnZXIsIHApKSxcbiAgICAgICAgdGFwKGV2ZW50VHJpZ2dlciA9PiB0aGlzLmluaXRpYWxpc2VFdmVudFRyaWdnZXIoZXZlbnRUcmlnZ2VyKSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRXZlbnQoY2FzZURldGFpbHM6IENhc2VWaWV3LCBldmVudERhdGE6IENhc2VFdmVudERhdGEpOiBPYnNlcnZhYmxlPHt9PiB7XG4gICAgY29uc3QgY2FzZUlkID0gY2FzZURldGFpbHMuY2FzZV9pZDtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpICsgYC9jYXNlcy8ke2Nhc2VJZH0vZXZlbnRzYDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DUkVBVEVfRVZFTlQpXG4gICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodXJsLCBldmVudERhdGEsIHsgaGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGJvZHkgPT4gdGhpcy5wcm9jZXNzUmVzcG9uc2VCb2R5KGJvZHksIGV2ZW50RGF0YSkpLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHZhbGlkYXRlQ2FzZShjdGlkOiBzdHJpbmcsIGV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIGNvbnN0IHBhZ2VJZFN0cmluZyA9IHBhZ2VJZCA/ICc/cGFnZUlkPScgKyBwYWdlSWQgOiAnJztcbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpXG4gICAgICArIGAvY2FzZS10eXBlcy8ke2N0aWR9L3ZhbGlkYXRlJHtwYWdlSWRTdHJpbmd9YDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DQVNFX0RBVEFfVkFMSURBVEUpXG4gICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodXJsLCBldmVudERhdGEsIHsgaGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBjcmVhdGVDYXNlKGN0aWQ6IHN0cmluZywgZXZlbnREYXRhOiBDYXNlRXZlbnREYXRhKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICBsZXQgaWdub3JlV2FybmluZyA9ICdmYWxzZSc7XG5cbiAgICBpZiAoZXZlbnREYXRhLmlnbm9yZV93YXJuaW5nKSB7XG4gICAgICBpZ25vcmVXYXJuaW5nID0gJ3RydWUnO1xuICAgIH1cbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpXG4gICAgICArIGAvY2FzZS10eXBlcy8ke2N0aWR9L2Nhc2VzP2lnbm9yZS13YXJuaW5nPSR7aWdub3JlV2FybmluZ31gO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX0NSRUFURV9DQVNFKVxuICAgICAgLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHVybCwgZXZlbnREYXRhLCB7IGhlYWRlcnMsIG9ic2VydmU6ICdib2R5JyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChib2R5ID0+IHRoaXMucHJvY2Vzc1Jlc3BvbnNlQm9keShib2R5LCBldmVudERhdGEpKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRQcmludERvY3VtZW50cyhjYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZVByaW50RG9jdW1lbnRbXT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldENhc2VEYXRhVXJsKClcbiAgICAgICsgYC9jYXNlcy8ke2Nhc2VJZH1gXG4gICAgICArIGAvZG9jdW1lbnRzYDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DQVNFX0RPQ1VNRU5UUylcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwgeyBoZWFkZXJzLCBvYnNlcnZlOiAnYm9keScgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoYm9keSA9PiBib2R5LmRvY3VtZW50UmVzb3VyY2VzKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXZlbnRUcmlnZ2VyVXJsKGNhc2VUeXBlSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFRyaWdnZXJJZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VJZD86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVXYXJuaW5nPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgdXJsID0gdGhpcy5hcHBDb25maWcuZ2V0Q2FzZURhdGFVcmwoKSArIGAvaW50ZXJuYWxgO1xuXG4gICAgaWYgKERyYWZ0LmlzRHJhZnQoY2FzZUlkKSkge1xuICAgICAgdXJsICs9IGAvZHJhZnRzLyR7Y2FzZUlkfWBcbiAgICAgICAgKyBgL2V2ZW50LXRyaWdnZXJgXG4gICAgICAgICsgYD9pZ25vcmUtd2FybmluZz0ke2lnbm9yZVdhcm5pbmd9YDtcbiAgICB9IGVsc2UgaWYgKGNhc2VUeXBlSWQgPT09IHVuZGVmaW5lZCB8fCBjYXNlVHlwZUlkID09PSBudWxsKSB7XG4gICAgICB1cmwgKz0gYC9jYXNlcy8ke2Nhc2VJZH1gXG4gICAgICAgICsgYC9ldmVudC10cmlnZ2Vycy8ke2V2ZW50VHJpZ2dlcklkfWBcbiAgICAgICAgKyBgP2lnbm9yZS13YXJuaW5nPSR7aWdub3JlV2FybmluZ31gO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgKz0gYC9jYXNlLXR5cGVzLyR7Y2FzZVR5cGVJZH1gXG4gICAgICAgICsgYC9ldmVudC10cmlnZ2Vycy8ke2V2ZW50VHJpZ2dlcklkfWBcbiAgICAgICAgKyBgP2lnbm9yZS13YXJuaW5nPSR7aWdub3JlV2FybmluZ31gO1xuICAgIH1cblxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NSZXNwb25zZUJvZHkoYm9keTogYW55LCBldmVudERhdGE6IENhc2VFdmVudERhdGEpOiBhbnkge1xuICAgIHRoaXMucHJvY2Vzc1Rhc2tzT25TdWNjZXNzKGJvZHksIGV2ZW50RGF0YS5ldmVudCk7XG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpc2VFdmVudFRyaWdnZXIoZXZlbnRUcmlnZ2VyOiBDYXNlRXZlbnRUcmlnZ2VyKSB7XG4gICAgaWYgKCFldmVudFRyaWdnZXIud2l6YXJkX3BhZ2VzKSB7XG4gICAgICBldmVudFRyaWdnZXIud2l6YXJkX3BhZ2VzID0gW107XG4gICAgfVxuXG4gICAgZXZlbnRUcmlnZ2VyLndpemFyZF9wYWdlcy5mb3JFYWNoKCh3aXphcmRQYWdlOiBXaXphcmRQYWdlKSA9PiB7XG4gICAgICB3aXphcmRQYWdlLnBhcnNlZFNob3dDb25kaXRpb24gPSBTaG93Q29uZGl0aW9uLmdldEluc3RhbmNlKHdpemFyZFBhZ2Uuc2hvd19jb25kaXRpb24pO1xuICAgICAgd2l6YXJkUGFnZS5jYXNlX2ZpZWxkcyA9IHRoaXMub3JkZXJTZXJ2aWNlLnNvcnQoXG4gICAgICAgIHRoaXMud2l6YXJkUGFnZUZpZWxkVG9DYXNlRmllbGRNYXBwZXIubWFwQWxsKHdpemFyZFBhZ2Uud2l6YXJkX3BhZ2VfZmllbGRzLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1Rhc2tzT25TdWNjZXNzKGNhc2VEYXRhOiBhbnksIGV2ZW50RGF0YTogYW55KTogdm9pZCB7XG4gICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGlzIHdvcmsgYWxsb2NhdGlvbiAxIHJlbGF0ZWRcbiAgICBpZiAodGhpcy5hcHBDb25maWcuZ2V0V29ya0FsbG9jYXRpb25BcGlVcmwoKS50b0xvd2VyQ2FzZSgpID09PSAnd29ya2FsbG9jYXRpb24nKSB7XG4gICAgICAvLyBUaGlzIGlzIHVzZWQgYSBmZWF0dXJlIHRvZ2dsZSB0b1xuICAgICAgLy8gY29udHJvbCB0aGUgd29yayBhbGxvY2F0aW9uXG4gICAgICBpZiAoIXRoaXMuaXNQdWlDYXNlTWFuYWdlcigpKSB7XG4gICAgICAgIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmNvbXBsZXRlQXBwcm9wcmlhdGVUYXNrKGNhc2VEYXRhLmlkLCBldmVudERhdGEuaWQsIGNhc2VEYXRhLmp1cmlzZGljdGlvbiwgY2FzZURhdGEuY2FzZV90eXBlKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgLy8gU3VjY2Vzcy4gRG8gbm90aGluZy5cbiAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAvLyBTaG93IGFuIGFwcHJvcHJpYXRlIHdhcm5pbmcgYWJvdXQgc29tZXRoaW5nIHRoYXQgd2VudCB3cm9uZy5cbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHByb2Nlc3MgdGFza3MgZm9yIHRoaXMgY2FzZSBldmVudCcsIGVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKlxuICBDaGVja3MgaWYgdGhlIHVzZXIgaGFzIHJvbGUgb2YgcHVpLWNhc2UtbWFuYWdlciBhbmQgcmV0dXJucyB0cnVlIG9yIGZhbHNlXG4gICovXG4gIHByaXZhdGUgaXNQdWlDYXNlTWFuYWdlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbzogVXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHJldHVybiB1c2VySW5mbyAmJiB1c2VySW5mby5yb2xlcyAmJiAodXNlckluZm8ucm9sZXMuaW5kZXhPZihDYXNlc1NlcnZpY2UuUFVJX0NBU0VfTUFOQUdFUikgIT09IC0xKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldENvdXJ0T3JIZWFyaW5nQ2VudHJlTmFtZShsb2NhdGlvbklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgL2FwaS9sb2NhdGlvbnMvZ2V0TG9jYXRpb25zQnlJZGAsIHsgbG9jYXRpb25zIDogW3sgbG9jYXRpb25JZCB9XX0pO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUNoYWxsZW5nZWRBY2Nlc3NSZXF1ZXN0KGNhc2VJZDogc3RyaW5nLCByZXF1ZXN0OiBDaGFsbGVuZ2VkQWNjZXNzUmVxdWVzdCk6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIC8vIEFzc2lnbm1lbnQgQVBJIGVuZHBvaW50XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuXG4gICAgY29uc3QgY2FtVXRpbHMgPSBuZXcgQ2FzZUFjY2Vzc1V0aWxzKCk7XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZUNhdGVnb3J5OiBSb2xlQ2F0ZWdvcnkgPSB1c2VySW5mby5yb2xlQ2F0ZWdvcnkgfHwgY2FtVXRpbHMuZ2V0TWFwcGVkUm9sZUNhdGVnb3J5KHVzZXJJbmZvLnJvbGVzLCB1c2VySW5mby5yb2xlQ2F0ZWdvcmllcyk7XG4gICAgY29uc3Qgcm9sZU5hbWUgPSBjYW1VdGlscy5nZXRBTVJvbGVOYW1lKCdjaGFsbGVuZ2VkJywgcm9sZUNhdGVnb3J5KTtcbiAgICBjb25zdCBiZWdpblRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGVuZFRpbWUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldFVUQ0hvdXJzKDIzLCA1OSwgNTksIDk5OSkpO1xuICAgIGNvbnN0IGlkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICBjb25zdCBpc05ldyA9IHRydWU7XG5cbiAgICBjb25zdCBwYXlsb2FkOiBSb2xlUmVxdWVzdFBheWxvYWQgPSBjYW1VdGlscy5nZXRBTVBheWxvYWQoaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ0hBTExFTkdFRCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW5UaW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld1xuICAgICAgKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgL2FwaS9jaGFsbGVuZ2VkLWFjY2Vzcy1yZXF1ZXN0YCwgcGF5bG9hZCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlU3BlY2lmaWNBY2Nlc3NSZXF1ZXN0KGNhc2VJZDogc3RyaW5nLCBzYXI6IFNwZWNpZmljQWNjZXNzUmVxdWVzdCk6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIC8vIEFzc2lnbm1lbnQgQVBJIGVuZHBvaW50XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuXG4gICAgY29uc3QgY2FtVXRpbHMgPSBuZXcgQ2FzZUFjY2Vzc1V0aWxzKCk7XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZUNhdGVnb3J5OiBSb2xlQ2F0ZWdvcnkgPSB1c2VySW5mby5yb2xlQ2F0ZWdvcnkgfHwgY2FtVXRpbHMuZ2V0TWFwcGVkUm9sZUNhdGVnb3J5KHVzZXJJbmZvLnJvbGVzLCB1c2VySW5mby5yb2xlQ2F0ZWdvcmllcyk7XG4gICAgY29uc3Qgcm9sZU5hbWUgPSBjYW1VdGlscy5nZXRBTVJvbGVOYW1lKCdzcGVjaWZpYycsIHJvbGVDYXRlZ29yeSk7XG4gICAgY29uc3QgaWQgPSB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkO1xuICAgIGNvbnN0IHBheWxvYWQ6IFJvbGVSZXF1ZXN0UGF5bG9hZCA9IGNhbVV0aWxzLmdldEFNUGF5bG9hZChudWxsLCBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZU5hbWUsIHJvbGVDYXRlZ29yeSwgJ1NQRUNJRklDJywgY2FzZUlkLCBzYXIsIG51bGwsIG51bGwsIHRydWUpO1xuXG4gICAgcGF5bG9hZC5yb2xlUmVxdWVzdCA9IHtcbiAgICAgIC4uLnBheWxvYWQucm9sZVJlcXVlc3QsXG4gICAgICBwcm9jZXNzOiAnc3BlY2lmaWMtYWNjZXNzJyxcbiAgICAgIHJlcGxhY2VFeGlzdGluZzogdHJ1ZSxcbiAgICAgIGFzc2lnbmVySWQ6IHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYWN0b3JJZCxcbiAgICAgIHJlZmVyZW5jZTogYCR7Y2FzZUlkfS8ke3JvbGVOYW1lfS8ke3BheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYWN0b3JJZH1gXG4gICAgfTtcblxuICAgIHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0gPSB7XG4gICAgICAuLi5wYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLFxuICAgICAgcm9sZU5hbWU6ICdzcGVjaWZpYy1hY2Nlc3MtcmVxdWVzdGVkJyxcbiAgICAgIHJvbGVDYXRlZ29yeSxcbiAgICAgIGNsYXNzaWZpY2F0aW9uOiAnUFJJVkFURScsXG4gICAgICBlbmRUaW1lOiBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyAzMCkpLFxuICAgICAgYmVnaW5UaW1lOiBudWxsLFxuICAgICAgZ3JhbnRUeXBlOiAnQkFTSUMnLFxuICAgICAgcmVhZE9ubHk6IHRydWVcbiAgICB9O1xuXG4gICAgcGF5bG9hZC5yZXF1ZXN0ZWRSb2xlc1swXS5hdHRyaWJ1dGVzID0ge1xuICAgICAgLi4ucGF5bG9hZC5yZXF1ZXN0ZWRSb2xlc1swXS5hdHRyaWJ1dGVzLFxuICAgICAgcmVxdWVzdGVkUm9sZTogcm9sZU5hbWUsXG4gICAgICBzcGVjaWZpY0FjY2Vzc1JlYXNvbjogc2FyLnNwZWNpZmljUmVhc29uXG4gICAgfVxuXG4gICAgcGF5bG9hZC5yZXF1ZXN0ZWRSb2xlc1swXS5ub3Rlc1swXSA9IHtcbiAgICAgIC4uLnBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0ubm90ZXNbMF0sXG4gICAgICB1c2VySWQ6IHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYWN0b3JJZFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIGAvYXBpL3NwZWNpZmljLWFjY2Vzcy1yZXF1ZXN0YCxcbiAgICAgIHBheWxvYWRcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUVMLGdCQUFnQixFQUdTLEtBQUssRUFJL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFHbEUsTUFBTSxPQUFPLFlBQVk7SUEwQ3ZCLFlBQ1UsSUFBaUIsRUFDakIsU0FBNEIsRUFDNUIsWUFBMEIsRUFDMUIsWUFB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QVosWUFBWSxXQUFaLFlBQVk7dUZBQVosWUFBWTtjQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgQ2FzZUV2ZW50RGF0YSxcbiAgQ2FzZUV2ZW50VHJpZ2dlcixcbiAgQ2FzZVByaW50RG9jdW1lbnQsXG4gIENhc2VWaWV3LFxuICBDaGFsbGVuZ2VkQWNjZXNzUmVxdWVzdCwgRHJhZnQsXG4gIFJvbGVBc3NpZ25tZW50UmVzcG9uc2UsXG4gIFJvbGVDYXRlZ29yeSxcbiAgUm9sZVJlcXVlc3RQYXlsb2FkLCBTcGVjaWZpY0FjY2Vzc1JlcXVlc3Rcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3VzZXIvdXNlci1pbmZvLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzLCBIdHRwRXJyb3JTZXJ2aWNlLCBIdHRwU2VydmljZSwgTG9hZGluZ1NlcnZpY2UsIE9yZGVyU2VydmljZSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTGlua0Nhc2VSZWFzb24sIExpbmtlZENhc2VzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9wYWxldHRlL2Nhc2UtbGluay9kb21haW4vbGlua2VkLWNhc2VzLm1vZGVsJztcbmltcG9ydCB7IENhc2VBY2Nlc3NVdGlscyB9IGZyb20gJy4uL2Nhc2UtYWNjZXNzLXV0aWxzJztcbmltcG9ydCB7IFdpemFyZFBhZ2UgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgV2l6YXJkUGFnZUZpZWxkVG9DYXNlRmllbGRNYXBwZXIgfSBmcm9tICcuL3dpemFyZC1wYWdlLWZpZWxkLXRvLWNhc2UtZmllbGQubWFwcGVyJztcbmltcG9ydCB7IFdvcmtBbGxvY2F0aW9uU2VydmljZSB9IGZyb20gJy4vd29yay1hbGxvY2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FzZXNTZXJ2aWNlIHtcbiAgLy8gSW50ZXJuYWwgKFVJKSBBUElcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfQ0FTRV9WSUVXID0gJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLnVpLWNhc2Utdmlldy52Mitqc29uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfU1RBUlRfQ0FTRV9UUklHR0VSID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkudWktc3RhcnQtY2FzZS10cmlnZ2VyLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX1NUQVJUX0VWRU5UX1RSSUdHRVIgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS51aS1zdGFydC1ldmVudC10cmlnZ2VyLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX1NUQVJUX0RSQUZUX1RSSUdHRVIgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS51aS1zdGFydC1kcmFmdC10cmlnZ2VyLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG5cbiAgLy8gRXh0ZXJuYWwgKERhdGEgU3RvcmUpIEFQSVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX0NBU0VfRE9DVU1FTlRTID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkuY2FzZS1kb2N1bWVudHMudjIranNvbjtjaGFyc2V0PVVURi04JztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9DQVNFX0RBVEFfVkFMSURBVEUgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS5jYXNlLWRhdGEtdmFsaWRhdGUudjIranNvbjtjaGFyc2V0PVVURi04JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfQ1JFQVRFX0VWRU5UID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkuY3JlYXRlLWV2ZW50LnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX0NSRUFURV9DQVNFID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkuY3JlYXRlLWNhc2UudjIranNvbjtjaGFyc2V0PVVURi04JztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBVSV9DQVNFX01BTkFHRVIgPSAncHVpLWNhc2UtbWFuYWdlcic7XG5cbiAgZ2V0ID0gdGhpcy5nZXRDYXNlVmlldztcblxuICBwdWJsaWMgc3RhdGljIHVwZGF0ZUNoYWxsZW5nZWRBY2Nlc3NSZXF1ZXN0QXR0cmlidXRlcyhodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBjYXNlSWQ6IHN0cmluZywgYXR0cmlidXRlc1RvVXBkYXRlOiB7IFt4OiBzdHJpbmddOiBhbnkgfSlcbiAgICA6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIHJldHVybiBodHRwQ2xpZW50LnBvc3Q8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4oYC9hcGkvY2hhbGxlbmdlZC1hY2Nlc3MtcmVxdWVzdC91cGRhdGUtYXR0cmlidXRlc2AsIHtcbiAgICAgIGNhc2VJZCxcbiAgICAgIGF0dHJpYnV0ZXNUb1VwZGF0ZVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB1cGRhdGVTcGVjaWZpY0FjY2Vzc1JlcXVlc3RBdHRyaWJ1dGVzKGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIGNhc2VJZDogc3RyaW5nLCBhdHRyaWJ1dGVzVG9VcGRhdGU6IHsgW3g6IHN0cmluZ106IGFueSB9KVxuICAgIDogT2JzZXJ2YWJsZTxSb2xlQXNzaWdubWVudFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGh0dHBDbGllbnQucG9zdDxSb2xlQXNzaWdubWVudFJlc3BvbnNlPihgL2FwaS9zcGVjaWZpYy1hY2Nlc3MtcmVxdWVzdC91cGRhdGUtYXR0cmlidXRlc2AsIHtcbiAgICAgIGNhc2VJZCxcbiAgICAgIGF0dHJpYnV0ZXNUb1VwZGF0ZVxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSBvcmRlclNlcnZpY2U6IE9yZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGVycm9yU2VydmljZTogSHR0cEVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIHdpemFyZFBhZ2VGaWVsZFRvQ2FzZUZpZWxkTWFwcGVyOiBXaXphcmRQYWdlRmllbGRUb0Nhc2VGaWVsZE1hcHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtBbGxvY2F0aW9uU2VydmljZTogV29ya0FsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBnZXRDYXNlVmlldyhqdXJpc2RpY3Rpb25JZDogc3RyaW5nLFxuICAgIGNhc2VUeXBlSWQ6IHN0cmluZyxcbiAgICBjYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZVZpZXc+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRBcGlVcmwoKVxuICAgICAgKyBgL2Nhc2V3b3JrZXJzLzp1aWRgXG4gICAgICArIGAvanVyaXNkaWN0aW9ucy8ke2p1cmlzZGljdGlvbklkfWBcbiAgICAgICsgYC9jYXNlLXR5cGVzLyR7Y2FzZVR5cGVJZH1gXG4gICAgICArIGAvY2FzZXMvJHtjYXNlSWR9YDtcblxuICAgIGNvbnN0IGxvYWRpbmdUb2tlbiA9IHRoaXMubG9hZGluZ1NlcnZpY2UucmVnaXN0ZXIoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdUb2tlbikpXG4gICAgICApO1xuICB9XG5cbiAgZ2V0Q2FzZVZpZXdWMihjYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZVZpZXc+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpfS9pbnRlcm5hbC9jYXNlcy8ke2Nhc2VJZH1gO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DQVNFX1ZJRVcpXG4gICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgY29uc3QgbG9hZGluZ1Rva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwsIHsgaGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZ1NlcnZpY2UudW5yZWdpc3Rlcihsb2FkaW5nVG9rZW4pKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPOiBHZXRzIGNhc2UgbGluayByZXNwb25zZXNcbiAgICogQHJldHVybnMgY2FzZSBsaW5rIHJlc3BvbnNlc1xuICAgKi9cbiAgIHB1YmxpYyBnZXRDYXNlTGlua1Jlc3BvbnNlcygpOiBPYnNlcnZhYmxlPExpbmtDYXNlUmVhc29uW10+IHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgIC5zZXQoJ2V4cGVyaW1lbnRhbCcsICd0cnVlJylcbiAgICAgIC5zZXQoJ0FjY2VwdCcsIENhc2VzU2VydmljZS5WMl9NRURJQVRZUEVfQ0FTRV9WSUVXKVxuICAgICAgLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBjb25zdCBsb2FkaW5nVG9rZW4gPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnJlZ2lzdGVyKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCgnYXNzZXRzL2dldENhc2VSZWFzb25zLmpzb24nLCB7IGhlYWRlcnMsIG9ic2VydmU6ICdib2R5JyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVhc29ucykgPT4ge1xuICAgICAgICAgIHJldHVybiByZWFzb25zLnNvcnQoKHJlYXNvbkEsIHJlYXNvbkIpID0+IHJlYXNvbkEudmFsdWVfZW4gPiByZWFzb25CLnZhbHVlX2VuID8gMSA6IC0xKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmdTZXJ2aWNlLnVucmVnaXN0ZXIobG9hZGluZ1Rva2VuKSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoY2FzZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExpbmtlZENhc2VzUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVN0b3JlQXBpVXJsKCl9LyR7Y2FzZUlkfWBcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgLmdldCh1cmwpXG4gICAgLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RXZlbnRUcmlnZ2VyKGNhc2VUeXBlSWQ6IHN0cmluZyxcbiAgICBldmVudFRyaWdnZXJJZDogc3RyaW5nLFxuICAgIGNhc2VJZD86IHN0cmluZyxcbiAgICBpZ25vcmVXYXJuaW5nPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxDYXNlRXZlbnRUcmlnZ2VyPiB7XG4gICAgaWdub3JlV2FybmluZyA9IHVuZGVmaW5lZCAhPT0gaWdub3JlV2FybmluZyA/IGlnbm9yZVdhcm5pbmcgOiAnZmFsc2UnO1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy5idWlsZEV2ZW50VHJpZ2dlclVybChjYXNlVHlwZUlkLCBldmVudFRyaWdnZXJJZCwgY2FzZUlkLCBpZ25vcmVXYXJuaW5nKTtcblxuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ2V4cGVyaW1lbnRhbCcsICd0cnVlJylcbiAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICBpZiAoRHJhZnQuaXNEcmFmdChjYXNlSWQpKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIENhc2VzU2VydmljZS5WMl9NRURJQVRZUEVfU1RBUlRfRFJBRlRfVFJJR0dFUik7XG4gICAgfSBlbHNlIGlmIChjYXNlSWQgIT09IHVuZGVmaW5lZCAmJiBjYXNlSWQgIT09IG51bGwpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9TVEFSVF9FVkVOVF9UUklHR0VSKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX1NUQVJUX0NBU0VfVFJJR0dFUik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwsIHsgaGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGJvZHkgPT4ge1xuICAgICAgICAgIHJldHVybiBGaWVsZHNVdGlscy5oYW5kbGVOZXN0ZWREeW5hbWljTGlzdHMoYm9keSk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChwKSA9PiBwbGFpblRvQ2xhc3MoQ2FzZUV2ZW50VHJpZ2dlciwgcCkpLFxuICAgICAgICB0YXAoZXZlbnRUcmlnZ2VyID0+IHRoaXMuaW5pdGlhbGlzZUV2ZW50VHJpZ2dlcihldmVudFRyaWdnZXIpKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVFdmVudChjYXNlRGV0YWlsczogQ2FzZVZpZXcsIGV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSk6IE9ic2VydmFibGU8e30+IHtcbiAgICBjb25zdCBjYXNlSWQgPSBjYXNlRGV0YWlscy5jYXNlX2lkO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldENhc2VEYXRhVXJsKCkgKyBgL2Nhc2VzLyR7Y2FzZUlkfS9ldmVudHNgO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX0NSRUFURV9FVkVOVClcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGV2ZW50RGF0YSwgeyBoZWFkZXJzLCBvYnNlcnZlOiAnYm9keScgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHZhbGlkYXRlQ2FzZShjdGlkOiBzdHJpbmcsIGV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIGNvbnN0IHBhZ2VJZFN0cmluZyA9IHBhZ2VJZCA/ICc/cGFnZUlkPScgKyBwYWdlSWQgOiAnJztcbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpXG4gICAgICArIGAvY2FzZS10eXBlcy8ke2N0aWR9L3ZhbGlkYXRlJHtwYWdlSWRTdHJpbmd9YDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DQVNFX0RBVEFfVkFMSURBVEUpXG4gICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodXJsLCBldmVudERhdGEsIHsgaGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBjcmVhdGVDYXNlKGN0aWQ6IHN0cmluZywgZXZlbnREYXRhOiBDYXNlRXZlbnREYXRhKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICBsZXQgaWdub3JlV2FybmluZyA9ICdmYWxzZSc7XG5cbiAgICBpZiAoZXZlbnREYXRhLmlnbm9yZV93YXJuaW5nKSB7XG4gICAgICBpZ25vcmVXYXJuaW5nID0gJ3RydWUnO1xuICAgIH1cbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpXG4gICAgICArIGAvY2FzZS10eXBlcy8ke2N0aWR9L2Nhc2VzP2lnbm9yZS13YXJuaW5nPSR7aWdub3JlV2FybmluZ31gO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX0NSRUFURV9DQVNFKVxuICAgICAgLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHVybCwgZXZlbnREYXRhLCB7IGhlYWRlcnMsIG9ic2VydmU6ICdib2R5JyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0UHJpbnREb2N1bWVudHMoY2FzZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENhc2VQcmludERvY3VtZW50W10+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpXG4gICAgICArIGAvY2FzZXMvJHtjYXNlSWR9YFxuICAgICAgKyBgL2RvY3VtZW50c2A7XG5cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgIC5zZXQoJ2V4cGVyaW1lbnRhbCcsICd0cnVlJylcbiAgICAgIC5zZXQoJ0FjY2VwdCcsIENhc2VzU2VydmljZS5WMl9NRURJQVRZUEVfQ0FTRV9ET0NVTUVOVFMpXG4gICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwsIHsgaGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGJvZHkgPT4gYm9keS5kb2N1bWVudFJlc291cmNlcyksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEV2ZW50VHJpZ2dlclVybChjYXNlVHlwZUlkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRUcmlnZ2VySWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlSWQ/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlV2FybmluZz86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldENhc2VEYXRhVXJsKCkgKyBgL2ludGVybmFsYDtcblxuICAgIGlmIChEcmFmdC5pc0RyYWZ0KGNhc2VJZCkpIHtcbiAgICAgIHVybCArPSBgL2RyYWZ0cy8ke2Nhc2VJZH1gXG4gICAgICAgICsgYC9ldmVudC10cmlnZ2VyYFxuICAgICAgICArIGA/aWdub3JlLXdhcm5pbmc9JHtpZ25vcmVXYXJuaW5nfWA7XG4gICAgfSBlbHNlIGlmIChjYXNlVHlwZUlkID09PSB1bmRlZmluZWQgfHwgY2FzZVR5cGVJZCA9PT0gbnVsbCkge1xuICAgICAgdXJsICs9IGAvY2FzZXMvJHtjYXNlSWR9YFxuICAgICAgICArIGAvZXZlbnQtdHJpZ2dlcnMvJHtldmVudFRyaWdnZXJJZH1gXG4gICAgICAgICsgYD9pZ25vcmUtd2FybmluZz0ke2lnbm9yZVdhcm5pbmd9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsICs9IGAvY2FzZS10eXBlcy8ke2Nhc2VUeXBlSWR9YFxuICAgICAgICArIGAvZXZlbnQtdHJpZ2dlcnMvJHtldmVudFRyaWdnZXJJZH1gXG4gICAgICAgICsgYD9pZ25vcmUtd2FybmluZz0ke2lnbm9yZVdhcm5pbmd9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXNlRXZlbnRUcmlnZ2VyKGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcikge1xuICAgIGlmICghZXZlbnRUcmlnZ2VyLndpemFyZF9wYWdlcykge1xuICAgICAgZXZlbnRUcmlnZ2VyLndpemFyZF9wYWdlcyA9IFtdO1xuICAgIH1cblxuICAgIGV2ZW50VHJpZ2dlci53aXphcmRfcGFnZXMuZm9yRWFjaCgod2l6YXJkUGFnZTogV2l6YXJkUGFnZSkgPT4ge1xuICAgICAgd2l6YXJkUGFnZS5wYXJzZWRTaG93Q29uZGl0aW9uID0gU2hvd0NvbmRpdGlvbi5nZXRJbnN0YW5jZSh3aXphcmRQYWdlLnNob3dfY29uZGl0aW9uKTtcbiAgICAgIHdpemFyZFBhZ2UuY2FzZV9maWVsZHMgPSB0aGlzLm9yZGVyU2VydmljZS5zb3J0KFxuICAgICAgICB0aGlzLndpemFyZFBhZ2VGaWVsZFRvQ2FzZUZpZWxkTWFwcGVyLm1hcEFsbCh3aXphcmRQYWdlLndpemFyZF9wYWdlX2ZpZWxkcywgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKlxuICBDaGVja3MgaWYgdGhlIHVzZXIgaGFzIHJvbGUgb2YgcHVpLWNhc2UtbWFuYWdlciBhbmQgcmV0dXJucyB0cnVlIG9yIGZhbHNlXG4gICovXG4gIHByaXZhdGUgaXNQdWlDYXNlTWFuYWdlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbzogVXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHJldHVybiB1c2VySW5mbyAmJiB1c2VySW5mby5yb2xlcyAmJiAodXNlckluZm8ucm9sZXMuaW5kZXhPZihDYXNlc1NlcnZpY2UuUFVJX0NBU0VfTUFOQUdFUikgIT09IC0xKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldENvdXJ0T3JIZWFyaW5nQ2VudHJlTmFtZShsb2NhdGlvbklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgL2FwaS9sb2NhdGlvbnMvZ2V0TG9jYXRpb25zQnlJZGAsIHsgbG9jYXRpb25zIDogW3sgbG9jYXRpb25JZCB9XX0pO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUNoYWxsZW5nZWRBY2Nlc3NSZXF1ZXN0KGNhc2VJZDogc3RyaW5nLCByZXF1ZXN0OiBDaGFsbGVuZ2VkQWNjZXNzUmVxdWVzdCk6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIC8vIEFzc2lnbm1lbnQgQVBJIGVuZHBvaW50XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuXG4gICAgY29uc3QgY2FtVXRpbHMgPSBuZXcgQ2FzZUFjY2Vzc1V0aWxzKCk7XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZUNhdGVnb3J5OiBSb2xlQ2F0ZWdvcnkgPSB1c2VySW5mby5yb2xlQ2F0ZWdvcnkgfHwgY2FtVXRpbHMuZ2V0TWFwcGVkUm9sZUNhdGVnb3J5KHVzZXJJbmZvLnJvbGVzLCB1c2VySW5mby5yb2xlQ2F0ZWdvcmllcyk7XG4gICAgY29uc3Qgcm9sZU5hbWUgPSBjYW1VdGlscy5nZXRBTVJvbGVOYW1lKCdjaGFsbGVuZ2VkJywgcm9sZUNhdGVnb3J5KTtcbiAgICBjb25zdCBiZWdpblRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGVuZFRpbWUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldFVUQ0hvdXJzKDIzLCA1OSwgNTksIDk5OSkpO1xuICAgIGNvbnN0IGlkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICBjb25zdCBpc05ldyA9IHRydWU7XG5cbiAgICBjb25zdCBwYXlsb2FkOiBSb2xlUmVxdWVzdFBheWxvYWQgPSBjYW1VdGlscy5nZXRBTVBheWxvYWQoaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ0hBTExFTkdFRCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW5UaW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ld1xuICAgICAgKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgL2FwaS9jaGFsbGVuZ2VkLWFjY2Vzcy1yZXF1ZXN0YCwgcGF5bG9hZCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlU3BlY2lmaWNBY2Nlc3NSZXF1ZXN0KGNhc2VJZDogc3RyaW5nLCBzYXI6IFNwZWNpZmljQWNjZXNzUmVxdWVzdCk6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIC8vIEFzc2lnbm1lbnQgQVBJIGVuZHBvaW50XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuXG4gICAgY29uc3QgY2FtVXRpbHMgPSBuZXcgQ2FzZUFjY2Vzc1V0aWxzKCk7XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZUNhdGVnb3J5OiBSb2xlQ2F0ZWdvcnkgPSB1c2VySW5mby5yb2xlQ2F0ZWdvcnkgfHwgY2FtVXRpbHMuZ2V0TWFwcGVkUm9sZUNhdGVnb3J5KHVzZXJJbmZvLnJvbGVzLCB1c2VySW5mby5yb2xlQ2F0ZWdvcmllcyk7XG4gICAgY29uc3Qgcm9sZU5hbWUgPSBjYW1VdGlscy5nZXRBTVJvbGVOYW1lKCdzcGVjaWZpYycsIHJvbGVDYXRlZ29yeSk7XG4gICAgY29uc3QgaWQgPSB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkO1xuICAgIGNvbnN0IHBheWxvYWQ6IFJvbGVSZXF1ZXN0UGF5bG9hZCA9IGNhbVV0aWxzLmdldEFNUGF5bG9hZChudWxsLCBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZU5hbWUsIHJvbGVDYXRlZ29yeSwgJ1NQRUNJRklDJywgY2FzZUlkLCBzYXIsIG51bGwsIG51bGwsIHRydWUpO1xuXG4gICAgcGF5bG9hZC5yb2xlUmVxdWVzdCA9IHtcbiAgICAgIC4uLnBheWxvYWQucm9sZVJlcXVlc3QsXG4gICAgICBwcm9jZXNzOiAnc3BlY2lmaWMtYWNjZXNzJyxcbiAgICAgIHJlcGxhY2VFeGlzdGluZzogdHJ1ZSxcbiAgICAgIGFzc2lnbmVySWQ6IHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYWN0b3JJZCxcbiAgICAgIHJlZmVyZW5jZTogYCR7Y2FzZUlkfS8ke3JvbGVOYW1lfS8ke3BheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYWN0b3JJZH1gXG4gICAgfTtcblxuICAgIHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0gPSB7XG4gICAgICAuLi5wYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLFxuICAgICAgcm9sZU5hbWU6ICdzcGVjaWZpYy1hY2Nlc3MtcmVxdWVzdGVkJyxcbiAgICAgIHJvbGVDYXRlZ29yeSxcbiAgICAgIGNsYXNzaWZpY2F0aW9uOiAnUFJJVkFURScsXG4gICAgICBlbmRUaW1lOiBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyAzMCkpLFxuICAgICAgYmVnaW5UaW1lOiBudWxsLFxuICAgICAgZ3JhbnRUeXBlOiAnQkFTSUMnLFxuICAgICAgcmVhZE9ubHk6IHRydWVcbiAgICB9O1xuXG4gICAgcGF5bG9hZC5yZXF1ZXN0ZWRSb2xlc1swXS5hdHRyaWJ1dGVzID0ge1xuICAgICAgLi4ucGF5bG9hZC5yZXF1ZXN0ZWRSb2xlc1swXS5hdHRyaWJ1dGVzLFxuICAgICAgcmVxdWVzdGVkUm9sZTogcm9sZU5hbWUsXG4gICAgICBzcGVjaWZpY0FjY2Vzc1JlYXNvbjogc2FyLnNwZWNpZmljUmVhc29uXG4gICAgfVxuXG4gICAgcGF5bG9hZC5yZXF1ZXN0ZWRSb2xlc1swXS5ub3Rlc1swXSA9IHtcbiAgICAgIC4uLnBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0ubm90ZXNbMF0sXG4gICAgICB1c2VySWQ6IHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYWN0b3JJZFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIGAvYXBpL3NwZWNpZmljLWFjY2Vzcy1yZXF1ZXN0YCxcbiAgICAgIHBheWxvYWRcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -7261,7 +7261,7 @@ class CasesService {
|
|
|
7261
7261
|
.set('Content-Type', 'application/json');
|
|
7262
7262
|
return this.http
|
|
7263
7263
|
.post(url, eventData, { headers, observe: 'body' })
|
|
7264
|
-
.pipe(
|
|
7264
|
+
.pipe(catchError(error => {
|
|
7265
7265
|
this.errorService.setError(error);
|
|
7266
7266
|
return throwError(error);
|
|
7267
7267
|
}));
|
|
@@ -7294,7 +7294,7 @@ class CasesService {
|
|
|
7294
7294
|
.set('Content-Type', 'application/json');
|
|
7295
7295
|
return this.http
|
|
7296
7296
|
.post(url, eventData, { headers, observe: 'body' })
|
|
7297
|
-
.pipe(
|
|
7297
|
+
.pipe(catchError(error => {
|
|
7298
7298
|
this.errorService.setError(error);
|
|
7299
7299
|
return throwError(error);
|
|
7300
7300
|
}));
|
|
@@ -7333,10 +7333,6 @@ class CasesService {
|
|
|
7333
7333
|
}
|
|
7334
7334
|
return url;
|
|
7335
7335
|
}
|
|
7336
|
-
processResponseBody(body, eventData) {
|
|
7337
|
-
this.processTasksOnSuccess(body, eventData.event);
|
|
7338
|
-
return body;
|
|
7339
|
-
}
|
|
7340
7336
|
initialiseEventTrigger(eventTrigger) {
|
|
7341
7337
|
if (!eventTrigger.wizard_pages) {
|
|
7342
7338
|
eventTrigger.wizard_pages = [];
|
|
@@ -7346,22 +7342,6 @@ class CasesService {
|
|
|
7346
7342
|
wizardPage.case_fields = this.orderService.sort(this.wizardPageFieldToCaseFieldMapper.mapAll(wizardPage.wizard_page_fields, eventTrigger.case_fields));
|
|
7347
7343
|
});
|
|
7348
7344
|
}
|
|
7349
|
-
processTasksOnSuccess(caseData, eventData) {
|
|
7350
|
-
// The following code is work allocation 1 related
|
|
7351
|
-
if (this.appConfig.getWorkAllocationApiUrl().toLowerCase() === 'workallocation') {
|
|
7352
|
-
// This is used a feature toggle to
|
|
7353
|
-
// control the work allocation
|
|
7354
|
-
if (!this.isPuiCaseManager()) {
|
|
7355
|
-
this.workAllocationService.completeAppropriateTask(caseData.id, eventData.id, caseData.jurisdiction, caseData.case_type)
|
|
7356
|
-
.subscribe(() => {
|
|
7357
|
-
// Success. Do nothing.
|
|
7358
|
-
}, error => {
|
|
7359
|
-
// Show an appropriate warning about something that went wrong.
|
|
7360
|
-
console.warn('Could not process tasks for this case event', error);
|
|
7361
|
-
});
|
|
7362
|
-
}
|
|
7363
|
-
}
|
|
7364
|
-
}
|
|
7365
7345
|
/*
|
|
7366
7346
|
Checks if the user has role of pui-case-manager and returns true or false
|
|
7367
7347
|
*/
|