@valtimo/task 12.11.0 → 12.12.0
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/components/assign-user-to-task/assign-user-to-task.component.mjs +128 -43
- package/esm2022/lib/components/set-task-due-date/set-task-due-date.component.mjs +128 -0
- package/esm2022/lib/components/task-detail-content/task-detail-content.component.mjs +24 -12
- package/esm2022/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.mjs +3 -3
- package/esm2022/lib/components/task-detail-modal/task-detail-modal.component.mjs +14 -4
- package/esm2022/lib/components/task-list/task-list.component.mjs +4 -3
- package/esm2022/lib/models/task.model.mjs +1 -1
- package/esm2022/lib/services/task.service.mjs +7 -1
- package/esm2022/lib/task-permissions.mjs +7 -2
- package/esm2022/lib/task.module.mjs +7 -3
- package/esm2022/public_api.mjs +2 -1
- package/fesm2022/valtimo-task.mjs +307 -77
- package/fesm2022/valtimo-task.mjs.map +1 -1
- package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts +38 -17
- package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts.map +1 -1
- package/lib/components/set-task-due-date/set-task-due-date.component.d.ts +36 -0
- package/lib/components/set-task-due-date/set-task-due-date.component.d.ts.map +1 -0
- package/lib/components/task-detail-content/task-detail-content.component.d.ts +1 -1
- package/lib/components/task-detail-content/task-detail-content.component.d.ts.map +1 -1
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts.map +1 -1
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts +1 -0
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts.map +1 -1
- package/lib/models/task.model.d.ts +4 -1
- package/lib/models/task.model.d.ts.map +1 -1
- package/lib/services/task.service.d.ts +3 -1
- package/lib/services/task.service.d.ts.map +1 -1
- package/lib/task-permissions.d.ts +2 -1
- package/lib/task-permissions.d.ts.map +1 -1
- package/lib/task.module.d.ts +2 -1
- package/lib/task.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/public_api.d.ts.map +1 -1
|
@@ -46,10 +46,13 @@ export class TaskDetailContentComponent {
|
|
|
46
46
|
return;
|
|
47
47
|
this.loadTaskDetails(value.task, value.processLinkActivityResult);
|
|
48
48
|
}
|
|
49
|
-
set modalClosed(
|
|
49
|
+
set modalClosed(closed) {
|
|
50
50
|
// save form flow data on modal closed
|
|
51
51
|
if (this.formFlow)
|
|
52
52
|
this.formFlow.saveData();
|
|
53
|
+
if (closed) {
|
|
54
|
+
this.closeModalEvent.emit();
|
|
55
|
+
}
|
|
53
56
|
}
|
|
54
57
|
get viewInitialized$() {
|
|
55
58
|
return this._viewInitialized$.pipe(filter(initialized => initialized));
|
|
@@ -279,18 +282,19 @@ export class TaskDetailContentComponent {
|
|
|
279
282
|
this.formDefinition$.next(formDefinition);
|
|
280
283
|
}
|
|
281
284
|
setFormViewModelComponent() {
|
|
282
|
-
this._viewInitialized
|
|
283
|
-
if (viewInitialized) {
|
|
285
|
+
combineLatest([this._viewInitialized$, this.processLinkIsFormViewModel$]).subscribe(([viewInitialized, isFvm]) => {
|
|
286
|
+
if (viewInitialized && isFvm) {
|
|
284
287
|
this.formViewModelDynamicContainer.clear();
|
|
285
|
-
if (!this.formViewModel)
|
|
288
|
+
if (!this.formViewModel) {
|
|
286
289
|
return;
|
|
290
|
+
}
|
|
287
291
|
const formViewModelComponent = this.formViewModelDynamicContainer.createComponent(this.formViewModel.component);
|
|
288
292
|
formViewModelComponent.instance.form = this.formDefinition$.getValue();
|
|
289
293
|
formViewModelComponent.instance.formName = this.formName$.getValue();
|
|
290
294
|
formViewModelComponent.instance.taskInstanceId = this.taskInstanceId$.getValue();
|
|
291
295
|
formViewModelComponent.instance.isStartForm = false;
|
|
292
296
|
formViewModelComponent.instance.formSubmit
|
|
293
|
-
.pipe(
|
|
297
|
+
.pipe(switchMap(() => this.task$), take(1))
|
|
294
298
|
.subscribe((task) => {
|
|
295
299
|
this.completeTask(task);
|
|
296
300
|
});
|
|
@@ -305,23 +309,31 @@ export class TaskDetailContentComponent {
|
|
|
305
309
|
}));
|
|
306
310
|
this.getCurrentProgress(formViewModelComponent);
|
|
307
311
|
}
|
|
312
|
+
this._subscriptions.add(this.closeModalEvent.subscribe(() => {
|
|
313
|
+
formViewModelComponent.destroy();
|
|
314
|
+
}));
|
|
308
315
|
}
|
|
309
316
|
});
|
|
310
317
|
}
|
|
311
318
|
setFormCustomComponent(formCustomComponentKey) {
|
|
312
|
-
this._viewInitialized
|
|
313
|
-
if (viewInitialized) {
|
|
319
|
+
combineLatest([this._viewInitialized$, this.processLinkIsUiComponent$]).subscribe(([viewInitialized, isUiComponent]) => {
|
|
320
|
+
if (viewInitialized && isUiComponent) {
|
|
314
321
|
this.formCustomComponentDynamicContainer.clear();
|
|
315
|
-
if (!this.formCustomComponentConfig)
|
|
322
|
+
if (!this.formCustomComponentConfig) {
|
|
316
323
|
return;
|
|
324
|
+
}
|
|
325
|
+
let renderedComponent;
|
|
317
326
|
this._subscriptions.add(this._formCustomComponentConfig$.subscribe(formCustomComponentConfig => {
|
|
318
327
|
const customComponent = formCustomComponentConfig[formCustomComponentKey];
|
|
319
|
-
|
|
328
|
+
renderedComponent = this.formCustomComponentDynamicContainer.createComponent(customComponent);
|
|
320
329
|
renderedComponent.instance.taskInstanceId = this.taskInstanceId$.value;
|
|
321
330
|
renderedComponent.instance.submittedEvent.subscribe(() => {
|
|
322
331
|
this.closeModalEvent.emit();
|
|
323
332
|
});
|
|
324
333
|
}));
|
|
334
|
+
this._subscriptions.add(this.closeModalEvent.subscribe(() => {
|
|
335
|
+
renderedComponent.destroy();
|
|
336
|
+
}));
|
|
325
337
|
}
|
|
326
338
|
});
|
|
327
339
|
}
|
|
@@ -343,11 +355,11 @@ export class TaskDetailContentComponent {
|
|
|
343
355
|
});
|
|
344
356
|
}
|
|
345
357
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailContentComponent, deps: [{ token: i1.ConfigService }, { token: i2.DocumentService }, { token: i3.IconService }, { token: i4.NGXLogger }, { token: i5.ValtimoModalService }, { token: i6.PermissionService }, { token: i7.ProcessLinkService }, { token: i8.Router }, { token: i5.FormIoStateService }, { token: i9.TaskIntermediateSaveService }, { token: i9.TaskService }, { token: i10.ToastrService }, { token: i11.TranslateService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }, { token: FORM_CUSTOM_COMPONENT_TOKEN, optional: true }, { token: i7.UrlResolverService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
346
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskDetailContentComponent, isStandalone: true, selector: "valtimo-task-detail-content", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink", modalClosed: "modalClosed" }, outputs: { closeModalEvent: "closeModalEvent", formSubmit: "formSubmit", activeChange: "activeChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], descendants: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n>\n <valtimo-form-io\n #form\n *ngIf=\"obs.formDefinition && obs.processLinkIsForm\"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <div *ngIf=\"obs.loading\" class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n\n <div\n *ngIf=\"\n obs.loading === false &&\n !obs.formDefinition &&\n !obs.formFlowInstanceId &&\n !obs.errorMessage &&\n !obs.processLinkIsUiComponent\n \"\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n >\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div *ngIf=\"obs.errorMessage\" class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n\n <div class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i12.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i5.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProcessLinkModule }, { kind: "component", type: i7.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
358
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskDetailContentComponent, isStandalone: true, selector: "valtimo-task-detail-content", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink", modalClosed: "modalClosed" }, outputs: { closeModalEvent: "closeModalEvent", formSubmit: "formSubmit", activeChange: "activeChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], descendants: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n>\n <valtimo-form-io\n #form\n *ngIf=\"obs.formDefinition && obs.processLinkIsForm && !obs.processLinkIsUiComponent && !obs.processLinkIsFormViewModel\"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <div *ngIf=\"obs.loading\" class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n\n <div\n *ngIf=\"\n obs.loading === false &&\n !obs.formDefinition &&\n !obs.formFlowInstanceId &&\n !obs.errorMessage &&\n !obs.processLinkIsUiComponent\n \"\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n >\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div *ngIf=\"obs.errorMessage\" class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n\n <div class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i12.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i5.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProcessLinkModule }, { kind: "component", type: i7.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
347
359
|
}
|
|
348
360
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailContentComponent, decorators: [{
|
|
349
361
|
type: Component,
|
|
350
|
-
args: [{ selector: 'valtimo-task-detail-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormIoModule, TranslateModule, ProcessLinkModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n>\n <valtimo-form-io\n #form\n *ngIf=\"obs.formDefinition && obs.processLinkIsForm\"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <div *ngIf=\"obs.loading\" class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n\n <div\n *ngIf=\"\n obs.loading === false &&\n !obs.formDefinition &&\n !obs.formFlowInstanceId &&\n !obs.errorMessage &&\n !obs.processLinkIsUiComponent\n \"\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n >\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div *ngIf=\"obs.errorMessage\" class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n\n <div class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n" }]
|
|
362
|
+
args: [{ selector: 'valtimo-task-detail-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormIoModule, TranslateModule, ProcessLinkModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n>\n <valtimo-form-io\n #form\n *ngIf=\"obs.formDefinition && obs.processLinkIsForm && !obs.processLinkIsUiComponent && !obs.processLinkIsFormViewModel\"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <div *ngIf=\"obs.loading\" class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n\n <div\n *ngIf=\"\n obs.loading === false &&\n !obs.formDefinition &&\n !obs.formFlowInstanceId &&\n !obs.errorMessage &&\n !obs.processLinkIsUiComponent\n \"\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n >\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div *ngIf=\"obs.errorMessage\" class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n\n <div class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n" }]
|
|
351
363
|
}], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.DocumentService }, { type: i3.IconService }, { type: i4.NGXLogger }, { type: i5.ValtimoModalService }, { type: i6.PermissionService }, { type: i7.ProcessLinkService }, { type: i8.Router }, { type: i5.FormIoStateService }, { type: i9.TaskIntermediateSaveService }, { type: i9.TaskService }, { type: i10.ToastrService }, { type: i11.TranslateService }, { type: undefined, decorators: [{
|
|
352
364
|
type: Optional
|
|
353
365
|
}, {
|
|
@@ -383,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
383
395
|
}], activeChange: [{
|
|
384
396
|
type: Output
|
|
385
397
|
}] } });
|
|
386
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stZGV0YWlsLWNvbnRlbnQvdGFzay1kZXRhaWwtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stZGV0YWlsLWNvbnRlbnQvdGFzay1kZXRhaWwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxlQUFlLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsT0FBTyxFQUVMLFlBQVksRUFDWixpQkFBaUIsR0FLbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQWdCLHFCQUFxQixFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBRXBGLE9BQU8sRUFDTCwyQkFBMkIsRUFJM0IsaUJBQWlCLEdBTWxCLE1BQU0sdUJBQXVCLENBQUM7QUFJL0IsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBRUgsWUFBWSxFQUNaLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFH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SztnQkFLYyxXQUFXO3NCQUE5QixLQUFLO2dCQUlvQixlQUFlO3NCQUF4QyxNQUFNO2dCQUNtQixVQUFVO3NCQUFuQyxNQUFNO2dCQUNtQixZQUFZO3NCQUFyQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1JlY2VudGx5Vmlld2VkMTZ9IGZyb20gJ0BjYXJib24vaWNvbnMnO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vYWNjZXNzLWNvbnRyb2wnO1xuaW1wb3J0IHtcbiAgRm9ybWlvQ29tcG9uZW50LFxuICBGb3JtSW9Nb2R1bGUsXG4gIEZvcm1pb09wdGlvbnNJbXBsLFxuICBGb3JtSW9TdGF0ZVNlcnZpY2UsXG4gIEZvcm1pb1N1Ym1pc3Npb24sXG4gIFZhbHRpbW9Gb3JtaW9PcHRpb25zLFxuICBWYWx0aW1vTW9kYWxTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZSwgRk9STV9WSUVXX01PREVMX1RPS0VOLCBGb3JtVmlld01vZGVsfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7XG4gIEZPUk1fQ1VTVE9NX0NPTVBPTkVOVF9UT0tFTixcbiAgRm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyxcbiAgRm9ybUZsb3dDb21wb25lbnQsXG4gIEZvcm1TdWJtaXNzaW9uUmVzdWx0LFxuICBQcm9jZXNzTGlua01vZHVsZSxcbiAgUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICBUYXNrUHJvY2Vzc0xpbmtSZXN1bHQsXG4gIFRhc2tQcm9jZXNzTGlua1R5cGUsXG4gIFRhc2tXaXRoUHJvY2Vzc0xpbmssXG4gIFVybFJlc29sdmVyU2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcy1saW5rJztcbmltcG9ydCB7SWNvblNlcnZpY2V9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHtUb2FzdHJTZXJ2aWNlfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ludGVybWVkaWF0ZVN1Ym1pc3Npb24sIFRhc2t9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1Rhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZSwgVGFza1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7Q0FOX0FTU0lHTl9UQVNLX1BFUk1JU1NJT04sIFRBU0tfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0V9IGZyb20gJy4uLy4uL3Rhc2stcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtGb3JtQ3VzdG9tQ29tcG9uZW50fSBmcm9tICdAdmFsdGltby9wcm9jZXNzLWxpbmsnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRhc2stZGV0YWlsLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFzay1kZXRhaWwtY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3JtSW9Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgUHJvY2Vzc0xpbmtNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrRGV0YWlsQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgnZm9ybScpIGZvcm06IEZvcm1pb0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZm9ybVZpZXdNb2RlbENvbXBvbmVudCcsIHtzdGF0aWM6IGZhbHNlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgcHVibGljIGZvcm1WaWV3TW9kZWxEeW5hbWljQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkKCdmb3JtRmxvdycpIHB1YmxpYyBmb3JtRmxvdzogRm9ybUZsb3dDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1DdXN0b21Db21wb25lbnQnLCB7c3RhdGljOiBmYWxzZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG4gIHB1YmxpYyBmb3JtQ3VzdG9tQ29tcG9uZW50RHluYW1pY0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcbiAgQElucHV0KCkgcHVibGljIHNldCB0YXNrKHZhbHVlOiBUYXNrIHwgbnVsbCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMubG9hZFRhc2tEZXRhaWxzKHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRhc2tBbmRQcm9jZXNzTGluayh2YWx1ZTogVGFza1dpdGhQcm9jZXNzTGluayB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLmxvYWRUYXNrRGV0YWlscyh2YWx1ZS50YXNrIGFzIGFueSwgdmFsdWUucHJvY2Vzc0xpbmtBY3Rpdml0eVJlc3VsdCk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBtb2RhbENsb3NlZChfOiBib29sZWFuKSB7XG4gICAgLy8gc2F2ZSBmb3JtIGZsb3cgZGF0YSBvbiBtb2RhbCBjbG9zZWRcbiAgICBpZiAodGhpcy5mb3JtRmxvdykgdGhpcy5mb3JtRmxvdy5zYXZlRGF0YSgpO1xuICB9XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY2xvc2VNb2RhbEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjYW5Bc3NpZ25Vc2VyVG9UYXNrJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZXJyb3JNZXNzYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtRGVmaW5pdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1pb0Zvcm0gfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1EZWZpbml0aW9uSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1GbG93SW5zdGFuY2VJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9ybWlvT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhbHRpbW9Gb3JtaW9PcHRpb25zIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtSW9Gb3JtRGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtTmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBzdWJtaXNzaW9uJCA9IHRoaXMudGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLnN1Ym1pc3Npb24kO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFzayQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhc2sgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHRhc2tJbnN0YW5jZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyBpbnRlcm1lZGlhdGVTYXZlRW5hYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Rhc2tQcm9jZXNzTGlua1R5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYXNrUHJvY2Vzc0xpbmtUeXBlIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzTGlua0lzRm9ybSQgPSB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5waXBlKFxuICAgIG1hcCgodHlwZTogc3RyaW5nIHwgbnVsbCkgPT4gdHlwZSA9PT0gJ2Zvcm0nKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc0xpbmtJc0Zvcm1WaWV3TW9kZWwkID0gdGhpcy5fdGFza1Byb2Nlc3NMaW5rVHlwZSQucGlwZShcbiAgICBtYXAoKHR5cGU6IHN0cmluZyB8IG51bGwpID0+IHR5cGUgPT09ICdmb3JtLXZpZXctbW9kZWwnKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc0xpbmtJc0Zvcm1GbG93JCA9IHRoaXMuX3Rhc2tQcm9jZXNzTGlua1R5cGUkLnBpcGUoXG4gICAgbWFwKCh0eXBlOiBzdHJpbmcgfCBudWxsKSA9PiB0eXBlID09PSAnZm9ybS1mbG93JylcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NMaW5rSXNVaUNvbXBvbmVudCQgPSB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5waXBlKFxuICAgIG1hcCgodHlwZTogc3RyaW5nIHwgbnVsbCkgPT4gdHlwZSA9PT0gJ3VpLWNvbXBvbmVudCcpXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvY2Vzc0xpbmtJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgRm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyB8IHt9XG4gID4oe30pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdJbml0aWFsaXplZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwdWJsaWMgZ2V0IHZpZXdJbml0aWFsaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdJbml0aWFsaXplZCQucGlwZShmaWx0ZXIoaW5pdGlhbGl6ZWQgPT4gaW5pdGlhbGl6ZWQpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IFZhbHRpbW9Nb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzTGlua1NlcnZpY2U6IFByb2Nlc3NMaW5rU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBGb3JtSW9TdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2U6IFRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tTZXJ2aWNlOiBUYXNrU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGT1JNX1ZJRVdfTU9ERUxfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgZm9ybVZpZXdNb2RlbDogRm9ybVZpZXdNb2RlbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoRk9STV9DVVNUT01fQ09NUE9ORU5UX1RPS0VOKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZzogRm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybFJlc29sdmVyU2VydmljZTogVXJsUmVzb2x2ZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaW50ZXJtZWRpYXRlU2F2ZUVuYWJsZWQgPSAhIXRoaXMuY29uZmlnU2VydmljZS5mZWF0dXJlVG9nZ2xlcz8uZW5hYmxlSW50ZXJtZWRpYXRlU2F2ZTtcblxuICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJBbGwoW1JlY2VudGx5Vmlld2VkMTZdKTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBuZXcgRm9ybWlvT3B0aW9uc0ltcGwoKTtcbiAgICBvcHRpb25zLmRpc2FibGVBbGVydHMgPSB0cnVlO1xuICAgIHRoaXMuZm9ybWlvT3B0aW9ucyQubmV4dChvcHRpb25zKTtcbiAgICB0aGlzLl9mb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnJC5uZXh0KGZvcm1DdXN0b21Db21wb25lbnRDb25maWcpO1xuICB9XG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5QZXJtaXNzaW9uU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLnNldFN1Ym1pc3Npb24oe30pO1xuICAgIHRoaXMuX3ZpZXdJbml0aWFsaXplZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdJbml0aWFsaXplZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN1Ym1pdChzdWJtaXNzaW9uOiBGb3JtaW9TdWJtaXNzaW9uKTogdm9pZCB7XG4gICAgaWYgKHN1Ym1pc3Npb24uZGF0YSkge1xuICAgICAgdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2Uuc2V0Rm9ybUlvRm9ybURhdGEoc3VibWlzc2lvbi5kYXRhKTtcbiAgICAgIHRoaXMuZm9ybUlvRm9ybURhdGEkLm5leHQoc3VibWlzc2lvbi5kYXRhKTtcbiAgICB9XG5cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl9wcm9jZXNzTGlua0lkJCwgdGhpcy5fdGFza1Byb2Nlc3NMaW5rVHlwZSQsIHRoaXMudGFzayRdKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtwcm9jZXNzTGlua0lkLCB0YXNrUHJvY2Vzc0xpbmtUeXBlLCB0YXNrXSkgPT4ge1xuICAgICAgICBpZiAodGFza1Byb2Nlc3NMaW5rVHlwZSA9PT0gJ2Zvcm0nKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3NMaW5rSWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICAgICAgICAgICAgIC5zdWJtaXRGb3JtKHByb2Nlc3NMaW5rSWQsIHN1Ym1pc3Npb24uZGF0YSwgdGFzaz8uYnVzaW5lc3NLZXksIHRhc2s/LmlkKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoXzogRm9ybVN1Ym1pc3Npb25SZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVUYXNrKHRhc2spO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9ycyA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc2hvd0Vycm9ycyhlcnJvcnMpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0YXNrUHJvY2Vzc0xpbmtUeXBlID09PSAnZm9ybS12aWV3LW1vZGVsJykge1xuICAgICAgICAgIHRoaXMuY29tcGxldGVUYXNrKHRhc2spO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZVRhc2sodGFzazogVGFzayB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIXRhc2spIHJldHVybjtcblxuICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoXG4gICAgICBgJHt0YXNrLm5hbWV9ICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3Rhc2tEZXRhaWwudGFza0NvbXBsZXRlZCcpfWBcbiAgICApO1xuICAgIHRoaXMudGFzayQubmV4dChudWxsKTtcbiAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdCgpO1xuICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQoKTtcbiAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KGZhbHNlKTtcblxuICAgIGlmICh0aGlzLmZvcm1GbG93KSB0aGlzLmZvcm1GbG93LnNhdmVEYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC5kYXRhKSB7XG4gICAgICB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZS5zZXRGb3JtSW9Gb3JtRGF0YShldmVudC5kYXRhKTtcbiAgICAgIHRoaXMuZm9ybUlvRm9ybURhdGEkLm5leHQoZXZlbnQuZGF0YSk7XG4gICAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkZvcm1GbG93Q2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFRhc2tEZXRhaWxzKHRhc2s6IFRhc2ssIHByb2Nlc3NMaW5rPzogVGFza1Byb2Nlc3NMaW5rUmVzdWx0KTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFRhc2tQcm9jZXNzTGlua1R5cGUoKTtcbiAgICB0aGlzLnJlc2V0Rm9ybURlZmluaXRpb24oKTtcblxuICAgIHRoaXMudGFza0luc3RhbmNlSWQkLm5leHQodGFzay5pZCk7XG5cbiAgICBpZiAoIXByb2Nlc3NMaW5rKSB7XG4gICAgICB0aGlzLmdldFRhc2tQcm9jZXNzTGluayh0YXNrLmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRUYXNrUHJvY2Vzc0xpbmsocHJvY2Vzc0xpbmspO1xuICAgIH1cblxuICAgIHRoaXMuc2V0RG9jdW1lbnREZWZpbml0aW9uTmFtZUluU2VydmljZSh0YXNrKTtcbiAgICBjb25zdCBkb2N1bWVudElkID0gdGFzay5idXNpbmVzc0tleTtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZXREb2N1bWVudElkKGRvY3VtZW50SWQpO1xuXG4gICAgdGhpcy50YXNrJC5uZXh0KHRhc2spO1xuICAgIHRoaXMucGFnZSQubmV4dCh7XG4gICAgICB0aXRsZTogdGFzay5uYW1lLFxuICAgICAgc3VidGl0bGU6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd0YXNrRGV0YWlsLnRhc2tDcmVhdGVkJyl9ICR7dGFzay5jcmVhdGVkfWAsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRQcm9ncmVzcyhmb3JtVmlld01vZGVsQ29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tJbnN0YW5jZUlkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKCh0YXNrSW5zdGFuY2VJZDogc3RyaW5nIHwgbnVsbCkgPT5cbiAgICAgICAgICB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZS5nZXRJbnRlcm1lZGlhdGVTdWJtaXNzaW9uKHRhc2tJbnN0YW5jZUlkID8/ICcnKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGludGVybWVkaWF0ZVN1Ym1pc3Npb246IEludGVybWVkaWF0ZVN1Ym1pc3Npb24pID0+IHtcbiAgICAgICAgICB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZS5zZXRTdWJtaXNzaW9uKHtcbiAgICAgICAgICAgIGRhdGE6IGludGVybWVkaWF0ZVN1Ym1pc3Npb24/LnN1Ym1pc3Npb24gfHwge30sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoZm9ybVZpZXdNb2RlbENvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudFJlZi5pbnN0YW5jZS5zdWJtaXNzaW9uID0ge1xuICAgICAgICAgICAgICBkYXRhOiBpbnRlcm1lZGlhdGVTdWJtaXNzaW9uLnN1Ym1pc3Npb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYXNrUHJvY2Vzc0xpbmsodGFza0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tTZXJ2aWNlLmdldFRhc2tQcm9jZXNzTGluayh0YXNrSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICB0aGlzLnNldFRhc2tQcm9jZXNzTGluayhyZXMpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBfID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFRhc2tQcm9jZXNzTGluayhwcm9jZXNzTGlua1Jlc3VsdDogVGFza1Byb2Nlc3NMaW5rUmVzdWx0IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChwcm9jZXNzTGlua1Jlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgc3dpdGNoIChwcm9jZXNzTGlua1Jlc3VsdD8udHlwZSkge1xuICAgICAgICBjYXNlICdmb3JtJzpcbiAgICAgICAgICB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KCdmb3JtJyk7XG4gICAgICAgICAgdGhpcy5fcHJvY2Vzc0xpbmtJZCQubmV4dChwcm9jZXNzTGlua1Jlc3VsdC5wcm9jZXNzTGlua0lkKTtcbiAgICAgICAgICBpZiAodGhpcy5pbnRlcm1lZGlhdGVTYXZlRW5hYmxlZCkgdGhpcy5nZXRDdXJyZW50UHJvZ3Jlc3MoKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1EZWZpbml0aW9uKHByb2Nlc3NMaW5rUmVzdWx0LnByb3BlcnRpZXMucHJlZmlsbGVkRm9ybSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Zvcm0tZmxvdyc6XG4gICAgICAgICAgdGhpcy5fdGFza1Byb2Nlc3NMaW5rVHlwZSQubmV4dCgnZm9ybS1mbG93Jyk7XG4gICAgICAgICAgdGhpcy5mb3JtRmxvd0luc3RhbmNlSWQkLm5leHQocHJvY2Vzc0xpbmtSZXN1bHQucHJvcGVydGllcy5mb3JtRmxvd0luc3RhbmNlSWQgPz8gJycpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmb3JtLXZpZXctbW9kZWwnOlxuICAgICAgICAgIHRoaXMuX3Rhc2tQcm9jZXNzTGlua1R5cGUkLm5leHQoJ2Zvcm0tdmlldy1tb2RlbCcpO1xuICAgICAgICAgIHRoaXMuX3Byb2Nlc3NMaW5rSWQkLm5leHQocHJvY2Vzc0xpbmtSZXN1bHQucHJvY2Vzc0xpbmtJZCk7XG4gICAgICAgICAgdGhpcy5mb3JtRGVmaW5pdGlvbiQubmV4dChwcm9jZXNzTGlua1Jlc3VsdC5wcm9wZXJ0aWVzLmZvcm1EZWZpbml0aW9uKTtcbiAgICAgICAgICB0aGlzLmZvcm1OYW1lJC5uZXh0KHByb2Nlc3NMaW5rUmVzdWx0LnByb3BlcnRpZXMuZm9ybU5hbWUgPz8gJycpO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybVZpZXdNb2RlbENvbXBvbmVudCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd1cmwnOlxuICAgICAgICAgIHRoaXMuX3Rhc2tQcm9jZXNzTGlua1R5cGUkLm5leHQoJ3VybCcpO1xuICAgICAgICAgIHRoaXMuX3Byb2Nlc3NMaW5rSWQkLm5leHQocHJvY2Vzc0xpbmtSZXN1bHQucHJvY2Vzc0xpbmtJZCk7XG4gICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5wcm9jZXNzTGlua1NlcnZpY2UuZ2V0VmFyaWFibGVzKCksIHRoaXMudGFzayRdKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFt2YXJpYWJsZXMsIHRhc2tdKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB1cmwgPSB0aGlzLnVybFJlc29sdmVyU2VydmljZS5yZXNvbHZlVXJsVmFyaWFibGVzKFxuICAgICAgICAgICAgICAgIHByb2Nlc3NMaW5rUmVzdWx0LnByb3BlcnRpZXMudXJsLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlcy52YXJpYWJsZXNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJykuZm9jdXMoKTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2VcbiAgICAgICAgICAgICAgICAuc3VibWl0VVJMUHJvY2Vzc0xpbmsocHJvY2Vzc0xpbmtSZXN1bHQucHJvY2Vzc0xpbmtJZCwgdGFzay5idXNpbmVzc0tleSwgdGFzay5pZClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVUYXNrKHRhc2spO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3VpLWNvbXBvbmVudCc6XG4gICAgICAgICAgdGhpcy5fdGFza1Byb2Nlc3NMaW5rVHlwZSQubmV4dCgndWktY29tcG9uZW50Jyk7XG4gICAgICAgICAgdGhpcy5fcHJvY2Vzc0xpbmtJZCQubmV4dChwcm9jZXNzTGlua1Jlc3VsdC5wcm9jZXNzTGlua0lkKTtcbiAgICAgICAgICB0aGlzLmZvcm1EZWZpbml0aW9uJC5uZXh0KG51bGwpO1xuICAgICAgICAgIHRoaXMuZm9ybU5hbWUkLm5leHQoJycpO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUN1c3RvbUNvbXBvbmVudChwcm9jZXNzTGlua1Jlc3VsdC5wcm9wZXJ0aWVzLmNvbXBvbmVudEtleSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuUGVybWlzc2lvblN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzayQuc3Vic2NyaWJlKHRhc2sgPT4ge1xuICAgICAgICBpZiAodGFzaykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDaGVja2luZyBpZiB1c2VyIGFsbG93ZWQgdG8gYXNzaWduIGEgdXNlciB0byBUYXNrIHdpdGggaWQ6JywgdGFzay5pZCk7XG4gICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZVxuICAgICAgICAgICAgLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9BU1NJR05fVEFTS19QRVJNSVNTSU9OLCB7XG4gICAgICAgICAgICAgIHJlc291cmNlOiBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLnRhc2ssXG4gICAgICAgICAgICAgIGlkZW50aWZpZXI6IHRhc2suaWQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoYWxsb3dlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNhbkFzc2lnblVzZXJUb1Rhc2skLm5leHQoYWxsb3dlZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnUmVzZXQgaXMgdXNlciBhbGxvd2VkIHRvIGFzc2lnbiBhIHVzZXIgdG8gVGFzayBhcyB0YXNrIGlzIG51bGwnKTtcbiAgICAgICAgICB0aGlzLmNhbkFzc2lnblVzZXJUb1Rhc2skLm5leHQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1EZWZpbml0aW9uKGZvcm1EZWZpbml0aW9uOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KCdmb3JtJyk7XG4gICAgdGhpcy5mb3JtRGVmaW5pdGlvbiQubmV4dChmb3JtRGVmaW5pdGlvbik7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1WaWV3TW9kZWxDb21wb25lbnQoKSB7XG4gICAgdGhpcy5fdmlld0luaXRpYWxpemVkJC5zdWJzY3JpYmUodmlld0luaXRpYWxpemVkID0+IHtcbiAgICAgIGlmICh2aWV3SW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtVmlld01vZGVsRHluYW1pY0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICBpZiAoIXRoaXMuZm9ybVZpZXdNb2RlbCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBmb3JtVmlld01vZGVsQ29tcG9uZW50ID0gdGhpcy5mb3JtVmlld01vZGVsRHluYW1pY0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgICAgdGhpcy5mb3JtVmlld01vZGVsLmNvbXBvbmVudFxuICAgICAgICApO1xuICAgICAgICBmb3JtVmlld01vZGVsQ29tcG9uZW50Lmluc3RhbmNlLmZvcm0gPSB0aGlzLmZvcm1EZWZpbml0aW9uJC5nZXRWYWx1ZSgpO1xuICAgICAgICBmb3JtVmlld01vZGVsQ29tcG9uZW50Lmluc3RhbmNlLmZvcm1OYW1lID0gdGhpcy5mb3JtTmFtZSQuZ2V0VmFsdWUoKTtcbiAgICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS50YXNrSW5zdGFuY2VJZCA9IHRoaXMudGFza0luc3RhbmNlSWQkLmdldFZhbHVlKCk7XG4gICAgICAgIGZvcm1WaWV3TW9kZWxDb21wb25lbnQuaW5zdGFuY2UuaXNTdGFydEZvcm0gPSBmYWxzZTtcblxuICAgICAgICBmb3JtVmlld01vZGVsQ29tcG9uZW50Lmluc3RhbmNlLmZvcm1TdWJtaXRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy50YXNrJClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgodGFzazogVGFzayB8IG51bGwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVUYXNrKHRhc2spO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmludGVybWVkaWF0ZVNhdmVFbmFibGVkKSB7XG4gICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICBmb3JtVmlld01vZGVsQ29tcG9uZW50Lmluc3RhbmNlLnN1Ym1pc3Npb24kLnN1YnNjcmliZShzdWJtaXNzaW9uID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2Uuc2V0U3VibWlzc2lvbihzdWJtaXNzaW9uKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvbiQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKHN1Ym1pc3Npb24/KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChzdWJtaXNzaW9uPy5kYXRhICYmIE9iamVjdC5rZXlzKHN1Ym1pc3Npb24uZGF0YSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5zdWJtaXNzaW9uID0ge2RhdGE6IHt9fTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuZ2V0Q3VycmVudFByb2dyZXNzKGZvcm1WaWV3TW9kZWxDb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1DdXN0b21Db21wb25lbnQoZm9ybUN1c3RvbUNvbXBvbmVudEtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0luaXRpYWxpemVkJC5zdWJzY3JpYmUodmlld0luaXRpYWxpemVkID0+IHtcbiAgICAgIGlmICh2aWV3SW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtQ3VzdG9tQ29tcG9uZW50RHluYW1pY0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZykgcmV0dXJuO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICB0aGlzLl9mb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnJC5zdWJzY3JpYmUoZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21Db21wb25lbnQgPSBmb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnW2Zvcm1DdXN0b21Db21wb25lbnRLZXldO1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyZWRDb21wb25lbnQgPSB0aGlzLmZvcm1DdXN0b21Db21wb25lbnREeW5hbWljQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50XG4gICAgICAgICAgICApIGFzIENvbXBvbmVudFJlZjxGb3JtQ3VzdG9tQ29tcG9uZW50PjtcblxuICAgICAgICAgICAgcmVuZGVyZWRDb21wb25lbnQuaW5zdGFuY2UudGFza0luc3RhbmNlSWQgPSB0aGlzLnRhc2tJbnN0YW5jZUlkJC52YWx1ZTtcbiAgICAgICAgICAgIHJlbmRlcmVkQ29tcG9uZW50Lmluc3RhbmNlLnN1Ym1pdHRlZEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9ybURlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRGVmaW5pdGlvbiQubmV4dChudWxsKTtcbiAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VGFza1Byb2Nlc3NMaW5rVHlwZSgpOiB2b2lkIHtcbiAgICB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX3Byb2Nlc3NMaW5rSWQkLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHNldERvY3VtZW50RGVmaW5pdGlvbk5hbWVJblNlcnZpY2UodGFzazogVGFzayk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAuZ2V0UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbkZyb21Qcm9jZXNzSW5zdGFuY2VJZCh0YXNrLnByb2Nlc3NJbnN0YW5jZUlkKVxuICAgICAgLnN1YnNjcmliZShwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uID0+IHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQuZG9jdW1lbnREZWZpbml0aW9uSWQubmFtZTtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uuc2V0RG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRpb25OYW1lKTtcbiAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0RG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRpb25OYW1lKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyxcbiAgICBwYWdlOiBwYWdlJCB8IGFzeW5jLFxuICAgIHRhc2s6IHRhc2skIHwgYXN5bmMsXG4gICAgdGFza0lkOiB0YXNrSW5zdGFuY2VJZCQgfCBhc3luYyxcbiAgICBmb3JtRGVmaW5pdGlvbjogZm9ybURlZmluaXRpb24kIHwgYXN5bmMsXG4gICAgZm9ybURlZmluaXRpb25JZDogZm9ybURlZmluaXRpb25JZCQgfCBhc3luYyxcbiAgICBmb3JtTmFtZTogZm9ybU5hbWUkIHwgYXN5bmMsXG4gICAgZm9ybUlvRm9ybURhdGE6IGZvcm1Jb0Zvcm1EYXRhJCB8IGFzeW5jLFxuICAgIHN1Ym1pc3Npb246IHN1Ym1pc3Npb24kIHwgYXN5bmMsXG4gICAgcHJvY2Vzc0xpbmtJc0Zvcm06IHByb2Nlc3NMaW5rSXNGb3JtJCB8IGFzeW5jLFxuICAgIHByb2Nlc3NMaW5rSXNGb3JtVmlld01vZGVsOiBwcm9jZXNzTGlua0lzRm9ybVZpZXdNb2RlbCQgfCBhc3luYyxcbiAgICBwcm9jZXNzTGlua0lzVWlDb21wb25lbnQ6IHByb2Nlc3NMaW5rSXNVaUNvbXBvbmVudCQgfCBhc3luYyxcbiAgICBmb3JtaW9PcHRpb25zOiBmb3JtaW9PcHRpb25zJCB8IGFzeW5jLFxuICAgIHByb2Nlc3NMaW5rSXNGb3JtRmxvdzogcHJvY2Vzc0xpbmtJc0Zvcm1GbG93JCB8IGFzeW5jLFxuICAgIGZvcm1GbG93SW5zdGFuY2VJZDogZm9ybUZsb3dJbnN0YW5jZUlkJCB8IGFzeW5jLFxuICAgIGVycm9yTWVzc2FnZTogZXJyb3JNZXNzYWdlJCB8IGFzeW5jLFxuICAgIGNhbkFzc2lnblVzZXJUb1Rhc2s6IGNhbkFzc2lnblVzZXJUb1Rhc2skIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHZhbHRpbW8tZm9ybS1pb1xuICAgICNmb3JtXG4gICAgKm5nSWY9XCJvYnMuZm9ybURlZmluaXRpb24gJiYgb2JzLnByb2Nlc3NMaW5rSXNGb3JtXCJcbiAgICBbZm9ybV09XCJvYnMuZm9ybURlZmluaXRpb25cIlxuICAgIFtzdWJtaXNzaW9uXT1cIm9icy5zdWJtaXNzaW9uXCJcbiAgICAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgW29wdGlvbnNdPVwib2JzLmZvcm1pb09wdGlvbnNcIlxuICA+PC92YWx0aW1vLWZvcm0taW8+XG5cbiAgPHZhbHRpbW8tZm9ybS1mbG93XG4gICAgI2Zvcm1GbG93XG4gICAgKm5nSWY9XCJvYnMucHJvY2Vzc0xpbmtJc0Zvcm1GbG93XCJcbiAgICBbZm9ybUlvRm9ybURhdGFdPVwiZm9ybUlvRm9ybURhdGEkXCJcbiAgICBbZm9ybUZsb3dJbnN0YW5jZUlkXT1cIm9icy5mb3JtRmxvd0luc3RhbmNlSWRcIlxuICAgIChmb3JtRmxvd0NvbXBsZXRlKT1cImNvbXBsZXRlVGFzayhvYnMudGFzaylcIlxuICAgIChmb3JtRmxvd0NoYW5nZSk9XCJvbkZvcm1GbG93Q2hhbmdlRXZlbnQoKVwiXG4gID48L3ZhbHRpbW8tZm9ybS1mbG93PlxuXG4gIDxkaXYgKm5nSWY9XCJvYnMubG9hZGluZ1wiIGNsYXNzPVwidGV4dC1ibGFjayBtYi0wIHAtMyB0ZXh0LWNlbnRlclwiPlxuICAgIHt7ICdmb3JtTWFuYWdlbWVudC5sb2FkaW5nJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCJcbiAgICAgIG9icy5sb2FkaW5nID09PSBmYWxzZSAmJlxuICAgICAgIW9icy5mb3JtRGVmaW5pdGlvbiAmJlxuICAgICAgIW9icy5mb3JtRmxvd0luc3RhbmNlSWQgJiZcbiAgICAgICFvYnMuZXJyb3JNZXNzYWdlICYmXG4gICAgICAhb2JzLnByb2Nlc3NMaW5rSXNVaUNvbXBvbmVudFxuICAgIFwiXG4gICAgY2xhc3M9XCJiZy13YXJuaW5nIHRleHQtYmxhY2sgbWItMCBwLTMgdGV4dC1jZW50ZXJcIlxuICA+XG4gICAge3tcbiAgICAgIChpc0FkbWluJCB8IGFzeW5jKVxuICAgICAgICA/ICgnZm9ybU1hbmFnZW1lbnQubm9Gb3JtRGVmaW5pdGlvbkZvdW5kQWRtaW4nIHwgdHJhbnNsYXRlKVxuICAgICAgICA6ICgnZm9ybU1hbmFnZW1lbnQubm9Gb3JtRGVmaW5pdGlvbkZvdW5kVXNlcicgfCB0cmFuc2xhdGUpXG4gICAgfX1cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIm9icy5lcnJvck1lc3NhZ2VcIiBjbGFzcz1cImJnLWRhbmdlciB0ZXh0LWJsYWNrIG1iLTAgcC0zIHRleHQtY2VudGVyXCI+XG4gICAge3sgb2JzLmVycm9yTWVzc2FnZSB9fVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS0yXCI+XG4gICAgPG5nLXRlbXBsYXRlICNmb3JtVmlld01vZGVsQ29tcG9uZW50PjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNmb3JtQ3VzdG9tQ29tcG9uZW50PjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stZGV0YWlsLWNvbnRlbnQvdGFzay1kZXRhaWwtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stZGV0YWlsLWNvbnRlbnQvdGFzay1kZXRhaWwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxlQUFlLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsT0FBTyxFQUVMLFlBQVksRUFDWixpQkFBaUIsR0FLbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQWdCLHFCQUFxQixFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBRXBGLE9BQU8sRUFDTCwyQkFBMkIsRUFLM0IsaUJBQWlCLEdBTWxCLE1BQU0sdUJBQXVCLENBQUM7QUFJL0IsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksR0FBRSxNQUFNLE1BQU0sQ0FBQztBQUdu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NE5BR25CLGdCQUFnQiw2QkNoRjFFLHE4RkFzRkEsMkNEYlksWUFBWSx5TEFBRSxZQUFZLDJOQUFFLGVBQWUsNEZBQUUsaUJBQWlCOzs0RkFFN0QsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLDZCQUE2QixjQUUzQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQzs7MEJBc0Z0RSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQ3hDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMkJBQTJCOzBFQXBGOUIsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUVWLDZCQUE2QjtzQkFEbkMsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDO2dCQUU5QyxRQUFRO3NCQUFyQyxTQUFTO3VCQUFDLFVBQVU7Z0JBRWQsbUNBQW1DO3NCQUR6QyxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBRXJELElBQUk7c0JBQXZCLEtBQUs7Z0JBS2Msa0JBQWtCO3NCQUFyQyxLQUFLO2dCQUtjLFdBQVc7c0JBQTlCLEtBQUs7Z0JBUW9CLGVBQWU7c0JBQXhDLE1BQU07Z0JBQ21CLFVBQVU7c0JBQW5DLE1BQU07Z0JBQ21CLFlBQVk7c0JBQXJDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7UmVjZW50bHlWaWV3ZWQxNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5pbXBvcnQge0Zvcm1pb0Zvcm19IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1Blcm1pc3Npb25TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9hY2Nlc3MtY29udHJvbCc7XG5pbXBvcnQge1xuICBGb3JtaW9Db21wb25lbnQsXG4gIEZvcm1Jb01vZHVsZSxcbiAgRm9ybWlvT3B0aW9uc0ltcGwsXG4gIEZvcm1Jb1N0YXRlU2VydmljZSxcbiAgRm9ybWlvU3VibWlzc2lvbixcbiAgVmFsdGltb0Zvcm1pb09wdGlvbnMsXG4gIFZhbHRpbW9Nb2RhbFNlcnZpY2UsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlLCBGT1JNX1ZJRVdfTU9ERUxfVE9LRU4sIEZvcm1WaWV3TW9kZWx9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtcbiAgRk9STV9DVVNUT01fQ09NUE9ORU5UX1RPS0VOLFxuICBGb3JtQ3VzdG9tQ29tcG9uZW50LFxuICBGb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnLFxuICBGb3JtRmxvd0NvbXBvbmVudCxcbiAgRm9ybVN1Ym1pc3Npb25SZXN1bHQsXG4gIFByb2Nlc3NMaW5rTW9kdWxlLFxuICBQcm9jZXNzTGlua1NlcnZpY2UsXG4gIFRhc2tQcm9jZXNzTGlua1Jlc3VsdCxcbiAgVGFza1Byb2Nlc3NMaW5rVHlwZSxcbiAgVGFza1dpdGhQcm9jZXNzTGluayxcbiAgVXJsUmVzb2x2ZXJTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9wcm9jZXNzLWxpbmsnO1xuaW1wb3J0IHtJY29uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBzd2l0Y2hNYXAsIHRha2UsfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW50ZXJtZWRpYXRlU3VibWlzc2lvbiwgVGFza30gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7VGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLCBUYXNrU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtDQU5fQVNTSUdOX1RBU0tfUEVSTUlTU0lPTiwgVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRX0gZnJvbSAnLi4vLi4vdGFzay1wZXJtaXNzaW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tdGFzay1kZXRhaWwtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWRldGFpbC1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1Jb01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBQcm9jZXNzTGlua01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tEZXRhaWxDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdmb3JtJykgZm9ybTogRm9ybWlvQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdmb3JtVmlld01vZGVsQ29tcG9uZW50Jywge3N0YXRpYzogZmFsc2UsIHJlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuICBwdWJsaWMgZm9ybVZpZXdNb2RlbER5bmFtaWNDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1GbG93JykgcHVibGljIGZvcm1GbG93OiBGb3JtRmxvd0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZm9ybUN1c3RvbUNvbXBvbmVudCcsIHtzdGF0aWM6IGZhbHNlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgcHVibGljIGZvcm1DdXN0b21Db21wb25lbnREeW5hbWljQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRhc2sodmFsdWU6IFRhc2sgfCBudWxsKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5sb2FkVGFza0RldGFpbHModmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdGFza0FuZFByb2Nlc3NMaW5rKHZhbHVlOiBUYXNrV2l0aFByb2Nlc3NMaW5rIHwgbnVsbCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMubG9hZFRhc2tEZXRhaWxzKHZhbHVlLnRhc2sgYXMgYW55LCB2YWx1ZS5wcm9jZXNzTGlua0FjdGl2aXR5UmVzdWx0KTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IG1vZGFsQ2xvc2VkKGNsb3NlZDogYm9vbGVhbikge1xuICAgIC8vIHNhdmUgZm9ybSBmbG93IGRhdGEgb24gbW9kYWwgY2xvc2VkXG4gICAgaWYgKHRoaXMuZm9ybUZsb3cpIHRoaXMuZm9ybUZsb3cuc2F2ZURhdGEoKTtcblxuICAgIGlmIChjbG9zZWQpIHtcbiAgICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQoKTtcbiAgICB9XG4gIH1cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjbG9zZU1vZGFsRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBhY3RpdmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNhbkFzc2lnblVzZXJUb1Rhc2skID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBlcnJvck1lc3NhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1EZWZpbml0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybWlvRm9ybSB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9ybURlZmluaXRpb25JZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9ybUZsb3dJbnN0YW5jZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtaW9PcHRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VmFsdGltb0Zvcm1pb09wdGlvbnMgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1Jb0Zvcm1EYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1OYW1lJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBwYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2Uuc3VibWlzc2lvbiQ7XG4gIHB1YmxpYyByZWFkb25seSB0YXNrJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFzayB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFza0luc3RhbmNlSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHVibGljIGludGVybWVkaWF0ZVNhdmVFbmFibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdGFza1Byb2Nlc3NMaW5rVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhc2tQcm9jZXNzTGlua1R5cGUgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NMaW5rSXNGb3JtJCA9IHRoaXMuX3Rhc2tQcm9jZXNzTGlua1R5cGUkLnBpcGUoXG4gICAgbWFwKCh0eXBlOiBzdHJpbmcgfCBudWxsKSA9PiB0eXBlID09PSAnZm9ybScpXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzTGlua0lzRm9ybVZpZXdNb2RlbCQgPSB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5waXBlKFxuICAgIG1hcCgodHlwZTogc3RyaW5nIHwgbnVsbCkgPT4gdHlwZSA9PT0gJ2Zvcm0tdmlldy1tb2RlbCcpXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzTGlua0lzRm9ybUZsb3ckID0gdGhpcy5fdGFza1Byb2Nlc3NMaW5rVHlwZSQucGlwZShcbiAgICBtYXAoKHR5cGU6IHN0cmluZyB8IG51bGwpID0+IHR5cGUgPT09ICdmb3JtLWZsb3cnKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc0xpbmtJc1VpQ29tcG9uZW50JCA9IHRoaXMuX3Rhc2tQcm9jZXNzTGlua1R5cGUkLnBpcGUoXG4gICAgbWFwKCh0eXBlOiBzdHJpbmcgfCBudWxsKSA9PiB0eXBlID09PSAndWktY29tcG9uZW50JylcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wcm9jZXNzTGlua0lkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1DdXN0b21Db21wb25lbnRDb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBGb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnIHwge31cbiAgPih7fSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0luaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyBnZXQgdmlld0luaXRpYWxpemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0luaXRpYWxpemVkJC5waXBlKGZpbHRlcihpbml0aWFsaXplZCA9PiBpbml0aWFsaXplZCkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IE5HWExvZ2dlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogVmFsdGltb01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IEZvcm1Jb1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZTogVGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza1NlcnZpY2U6IFRhc2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZPUk1fVklFV19NT0RFTF9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBmb3JtVmlld01vZGVsOiBGb3JtVmlld01vZGVsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRk9STV9DVVNUT01fQ09NUE9ORU5UX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGZvcm1DdXN0b21Db21wb25lbnRDb25maWc6IEZvcm1DdXN0b21Db21wb25lbnRDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxSZXNvbHZlclNlcnZpY2U6IFVybFJlc29sdmVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLmludGVybWVkaWF0ZVNhdmVFbmFibGVkID0gISF0aGlzLmNvbmZpZ1NlcnZpY2UuZmVhdHVyZVRvZ2dsZXM/LmVuYWJsZUludGVybWVkaWF0ZVNhdmU7XG5cbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVyQWxsKFtSZWNlbnRseVZpZXdlZDE2XSk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gbmV3IEZvcm1pb09wdGlvbnNJbXBsKCk7XG4gICAgb3B0aW9ucy5kaXNhYmxlQWxlcnRzID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1pb09wdGlvbnMkLm5leHQob3B0aW9ucyk7XG4gICAgdGhpcy5fZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyQubmV4dChmb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnKTtcbiAgfVxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuUGVybWlzc2lvblN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZS5zZXRTdWJtaXNzaW9uKHt9KTtcbiAgICB0aGlzLl92aWV3SW5pdGlhbGl6ZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3SW5pdGlhbGl6ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQoc3VibWlzc2lvbjogRm9ybWlvU3VibWlzc2lvbik6IHZvaWQge1xuICAgIGlmIChzdWJtaXNzaW9uLmRhdGEpIHtcbiAgICAgIHRoaXMudGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLnNldEZvcm1Jb0Zvcm1EYXRhKHN1Ym1pc3Npb24uZGF0YSk7XG4gICAgICB0aGlzLmZvcm1Jb0Zvcm1EYXRhJC5uZXh0KHN1Ym1pc3Npb24uZGF0YSk7XG4gICAgfVxuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fcHJvY2Vzc0xpbmtJZCQsIHRoaXMuX3Rhc2tQcm9jZXNzTGlua1R5cGUkLCB0aGlzLnRhc2skXSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChbcHJvY2Vzc0xpbmtJZCwgdGFza1Byb2Nlc3NMaW5rVHlwZSwgdGFza10pID0+IHtcbiAgICAgICAgaWYgKHRhc2tQcm9jZXNzTGlua1R5cGUgPT09ICdmb3JtJykge1xuICAgICAgICAgIGlmIChwcm9jZXNzTGlua0lkKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NMaW5rU2VydmljZVxuICAgICAgICAgICAgICAuc3VibWl0Rm9ybShwcm9jZXNzTGlua0lkLCBzdWJtaXNzaW9uLmRhdGEsIHRhc2s/LmJ1c2luZXNzS2V5LCB0YXNrPy5pZClcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKF86IEZvcm1TdWJtaXNzaW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlVGFzayh0YXNrKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvcnMgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnNob3dFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGFza1Byb2Nlc3NMaW5rVHlwZSA9PT0gJ2Zvcm0tdmlldy1tb2RlbCcpIHtcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlVGFzayh0YXNrKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY29tcGxldGVUYXNrKHRhc2s6IFRhc2sgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF0YXNrKSByZXR1cm47XG5cbiAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKFxuICAgICAgYCR7dGFzay5uYW1lfSAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd0YXNrRGV0YWlsLnRhc2tDb21wbGV0ZWQnKX1gXG4gICAgKTtcbiAgICB0aGlzLnRhc2skLm5leHQobnVsbCk7XG4gICAgdGhpcy5mb3JtU3VibWl0LmVtaXQoKTtcbiAgICB0aGlzLmNsb3NlTW9kYWxFdmVudC5lbWl0KCk7XG4gICAgdGhpcy5hY3RpdmVDaGFuZ2UuZW1pdChmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5mb3JtRmxvdykgdGhpcy5mb3JtRmxvdy5zYXZlRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuZGF0YSkge1xuICAgICAgdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2Uuc2V0Rm9ybUlvRm9ybURhdGEoZXZlbnQuZGF0YSk7XG4gICAgICB0aGlzLmZvcm1Jb0Zvcm1EYXRhJC5uZXh0KGV2ZW50LmRhdGEpO1xuICAgICAgdGhpcy5hY3RpdmVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Gb3JtRmxvd0NoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRUYXNrRGV0YWlscyh0YXNrOiBUYXNrLCBwcm9jZXNzTGluaz86IFRhc2tQcm9jZXNzTGlua1Jlc3VsdCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRUYXNrUHJvY2Vzc0xpbmtUeXBlKCk7XG4gICAgdGhpcy5yZXNldEZvcm1EZWZpbml0aW9uKCk7XG5cbiAgICB0aGlzLnRhc2tJbnN0YW5jZUlkJC5uZXh0KHRhc2suaWQpO1xuXG4gICAgaWYgKCFwcm9jZXNzTGluaykge1xuICAgICAgdGhpcy5nZXRUYXNrUHJvY2Vzc0xpbmsodGFzay5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0VGFza1Byb2Nlc3NMaW5rKHByb2Nlc3NMaW5rKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldERvY3VtZW50RGVmaW5pdGlvbk5hbWVJblNlcnZpY2UodGFzayk7XG4gICAgY29uc3QgZG9jdW1lbnRJZCA9IHRhc2suYnVzaW5lc3NLZXk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0RG9jdW1lbnRJZChkb2N1bWVudElkKTtcblxuICAgIHRoaXMudGFzayQubmV4dCh0YXNrKTtcbiAgICB0aGlzLnBhZ2UkLm5leHQoe1xuICAgICAgdGl0bGU6IHRhc2submFtZSxcbiAgICAgIHN1YnRpdGxlOiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndGFza0RldGFpbC50YXNrQ3JlYXRlZCcpfSAke3Rhc2suY3JlYXRlZH1gLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW50UHJvZ3Jlc3MoZm9ybVZpZXdNb2RlbENvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy50YXNrSW5zdGFuY2VJZCRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgodGFza0luc3RhbmNlSWQ6IHN0cmluZyB8IG51bGwpID0+XG4gICAgICAgICAgdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2UuZ2V0SW50ZXJtZWRpYXRlU3VibWlzc2lvbih0YXNrSW5zdGFuY2VJZCA/PyAnJylcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChpbnRlcm1lZGlhdGVTdWJtaXNzaW9uOiBJbnRlcm1lZGlhdGVTdWJtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2Uuc2V0U3VibWlzc2lvbih7XG4gICAgICAgICAgICBkYXRhOiBpbnRlcm1lZGlhdGVTdWJtaXNzaW9uPy5zdWJtaXNzaW9uIHx8IHt9LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGZvcm1WaWV3TW9kZWxDb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIGZvcm1WaWV3TW9kZWxDb21wb25lbnRSZWYuaW5zdGFuY2Uuc3VibWlzc2lvbiA9IHtcbiAgICAgICAgICAgICAgZGF0YTogaW50ZXJtZWRpYXRlU3VibWlzc2lvbi5zdWJtaXNzaW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFza1Byb2Nlc3NMaW5rKHRhc2tJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50YXNrU2VydmljZS5nZXRUYXNrUHJvY2Vzc0xpbmsodGFza0lkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgdGhpcy5zZXRUYXNrUHJvY2Vzc0xpbmsocmVzKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogXyA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUYXNrUHJvY2Vzc0xpbmsocHJvY2Vzc0xpbmtSZXN1bHQ6IFRhc2tQcm9jZXNzTGlua1Jlc3VsdCB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAocHJvY2Vzc0xpbmtSZXN1bHQgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAocHJvY2Vzc0xpbmtSZXN1bHQ/LnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZm9ybSc6XG4gICAgICAgICAgdGhpcy5fdGFza1Byb2Nlc3NMaW5rVHlwZSQubmV4dCgnZm9ybScpO1xuICAgICAgICAgIHRoaXMuX3Byb2Nlc3NMaW5rSWQkLm5leHQocHJvY2Vzc0xpbmtSZXN1bHQucHJvY2Vzc0xpbmtJZCk7XG4gICAgICAgICAgaWYgKHRoaXMuaW50ZXJtZWRpYXRlU2F2ZUVuYWJsZWQpIHRoaXMuZ2V0Q3VycmVudFByb2dyZXNzKCk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRGVmaW5pdGlvbihwcm9jZXNzTGlua1Jlc3VsdC5wcm9wZXJ0aWVzLnByZWZpbGxlZEZvcm0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmb3JtLWZsb3cnOlxuICAgICAgICAgIHRoaXMuX3Rhc2tQcm9jZXNzTGlua1R5cGUkLm5leHQoJ2Zvcm0tZmxvdycpO1xuICAgICAgICAgIHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkJC5uZXh0KHByb2Nlc3NMaW5rUmVzdWx0LnByb3BlcnRpZXMuZm9ybUZsb3dJbnN0YW5jZUlkID8/ICcnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZm9ybS12aWV3LW1vZGVsJzpcbiAgICAgICAgICB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KCdmb3JtLXZpZXctbW9kZWwnKTtcbiAgICAgICAgICB0aGlzLl9wcm9jZXNzTGlua0lkJC5uZXh0KHByb2Nlc3NMaW5rUmVzdWx0LnByb2Nlc3NMaW5rSWQpO1xuICAgICAgICAgIHRoaXMuZm9ybURlZmluaXRpb24kLm5leHQocHJvY2Vzc0xpbmtSZXN1bHQucHJvcGVydGllcy5mb3JtRGVmaW5pdGlvbik7XG4gICAgICAgICAgdGhpcy5mb3JtTmFtZSQubmV4dChwcm9jZXNzTGlua1Jlc3VsdC5wcm9wZXJ0aWVzLmZvcm1OYW1lID8/ICcnKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1WaWV3TW9kZWxDb21wb25lbnQoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndXJsJzpcbiAgICAgICAgICB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KCd1cmwnKTtcbiAgICAgICAgICB0aGlzLl9wcm9jZXNzTGlua0lkJC5uZXh0KHByb2Nlc3NMaW5rUmVzdWx0LnByb2Nlc3NMaW5rSWQpO1xuICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlLmdldFZhcmlhYmxlcygpLCB0aGlzLnRhc2skXSlcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbdmFyaWFibGVzLCB0YXNrXSkgPT4ge1xuICAgICAgICAgICAgICBsZXQgdXJsID0gdGhpcy51cmxSZXNvbHZlclNlcnZpY2UucmVzb2x2ZVVybFZhcmlhYmxlcyhcbiAgICAgICAgICAgICAgICBwcm9jZXNzTGlua1Jlc3VsdC5wcm9wZXJ0aWVzLnVybCxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXMudmFyaWFibGVzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpLmZvY3VzKCk7XG4gICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLnN1Ym1pdFVSTFByb2Nlc3NMaW5rKHByb2Nlc3NMaW5rUmVzdWx0LnByb2Nlc3NMaW5rSWQsIHRhc2suYnVzaW5lc3NLZXksIHRhc2suaWQpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlVGFzayh0YXNrKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd1aS1jb21wb25lbnQnOlxuICAgICAgICAgIHRoaXMuX3Rhc2tQcm9jZXNzTGlua1R5cGUkLm5leHQoJ3VpLWNvbXBvbmVudCcpO1xuICAgICAgICAgIHRoaXMuX3Byb2Nlc3NMaW5rSWQkLm5leHQocHJvY2Vzc0xpbmtSZXN1bHQucHJvY2Vzc0xpbmtJZCk7XG4gICAgICAgICAgdGhpcy5mb3JtRGVmaW5pdGlvbiQubmV4dChudWxsKTtcbiAgICAgICAgICB0aGlzLmZvcm1OYW1lJC5uZXh0KCcnKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1DdXN0b21Db21wb25lbnQocHJvY2Vzc0xpbmtSZXN1bHQucHJvcGVydGllcy5jb21wb25lbnRLZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlblBlcm1pc3Npb25TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRhc2skLnN1YnNjcmliZSh0YXNrID0+IHtcbiAgICAgICAgaWYgKHRhc2spIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hlY2tpbmcgaWYgdXNlciBhbGxvd2VkIHRvIGFzc2lnbiBhIHVzZXIgdG8gVGFzayB3aXRoIGlkOicsIHRhc2suaWQpO1xuICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2VcbiAgICAgICAgICAgIC5yZXF1ZXN0UGVybWlzc2lvbihDQU5fQVNTSUdOX1RBU0tfUEVSTUlTU0lPTiwge1xuICAgICAgICAgICAgICByZXNvdXJjZTogVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS50YXNrLFxuICAgICAgICAgICAgICBpZGVudGlmaWVyOiB0YXNrLmlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGFsbG93ZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jYW5Bc3NpZ25Vc2VyVG9UYXNrJC5uZXh0KGFsbG93ZWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1Jlc2V0IGlzIHVzZXIgYWxsb3dlZCB0byBhc3NpZ24gYSB1c2VyIHRvIFRhc2sgYXMgdGFzayBpcyBudWxsJyk7XG4gICAgICAgICAgdGhpcy5jYW5Bc3NpZ25Vc2VyVG9UYXNrJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtRGVmaW5pdGlvbihmb3JtRGVmaW5pdGlvbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fdGFza1Byb2Nlc3NMaW5rVHlwZSQubmV4dCgnZm9ybScpO1xuICAgIHRoaXMuZm9ybURlZmluaXRpb24kLm5leHQoZm9ybURlZmluaXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtVmlld01vZGVsQ29tcG9uZW50KCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX3ZpZXdJbml0aWFsaXplZCQsIHRoaXMucHJvY2Vzc0xpbmtJc0Zvcm1WaWV3TW9kZWwkXSkuc3Vic2NyaWJlKFxuICAgICAgKFt2aWV3SW5pdGlhbGl6ZWQsIGlzRnZtXSkgPT4ge1xuICAgICAgICBpZiAodmlld0luaXRpYWxpemVkICYmIGlzRnZtKSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmlld01vZGVsRHluYW1pY0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICAgIGlmICghdGhpcy5mb3JtVmlld01vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGZvcm1WaWV3TW9kZWxDb21wb25lbnQgPSB0aGlzLmZvcm1WaWV3TW9kZWxEeW5hbWljQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgICAgIHRoaXMuZm9ybVZpZXdNb2RlbC5jb21wb25lbnRcbiAgICAgICAgICApO1xuICAgICAgICAgIGZvcm1WaWV3TW9kZWxDb21wb25lbnQuaW5zdGFuY2UuZm9ybSA9IHRoaXMuZm9ybURlZmluaXRpb24kLmdldFZhbHVlKCk7XG4gICAgICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5mb3JtTmFtZSA9IHRoaXMuZm9ybU5hbWUkLmdldFZhbHVlKCk7XG4gICAgICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS50YXNrSW5zdGFuY2VJZCA9IHRoaXMudGFza0luc3RhbmNlSWQkLmdldFZhbHVlKCk7XG4gICAgICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5pc1N0YXJ0Rm9ybSA9IGZhbHNlO1xuXG4gICAgICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5mb3JtU3VibWl0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudGFzayQpLFxuICAgICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh0YXNrOiBUYXNrIHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlVGFzayh0YXNrKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuaW50ZXJtZWRpYXRlU2F2ZUVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICBmb3JtVmlld01vZGVsQ29tcG9uZW50Lmluc3RhbmNlLnN1Ym1pc3Npb24kLnN1YnNjcmliZShzdWJtaXNzaW9uID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZS5zZXRTdWJtaXNzaW9uKHN1Ym1pc3Npb24pO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICB0aGlzLnN1Ym1pc3Npb24kLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKChzdWJtaXNzaW9uPykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzdWJtaXNzaW9uPy5kYXRhICYmIE9iamVjdC5rZXlzKHN1Ym1pc3Npb24uZGF0YSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICBmb3JtVmlld01vZGVsQ29tcG9uZW50Lmluc3RhbmNlLnN1Ym1pc3Npb24gPSB7ZGF0YToge319O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmdldEN1cnJlbnRQcm9ncmVzcyhmb3JtVmlld01vZGVsQ29tcG9uZW50KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGZvcm1WaWV3TW9kZWxDb21wb25lbnQuZGVzdHJveSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rm9ybUN1c3RvbUNvbXBvbmVudChmb3JtQ3VzdG9tQ29tcG9uZW50S2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl92aWV3SW5pdGlhbGl6ZWQkLCB0aGlzLnByb2Nlc3NMaW5rSXNVaUNvbXBvbmVudCRdKS5zdWJzY3JpYmUoXG4gICAgICAoW3ZpZXdJbml0aWFsaXplZCwgaXNVaUNvbXBvbmVudF0pID0+IHtcbiAgICAgICAgaWYgKHZpZXdJbml0aWFsaXplZCAmJiBpc1VpQ29tcG9uZW50KSB7XG4gICAgICAgICAgdGhpcy5mb3JtQ3VzdG9tQ29tcG9uZW50RHluYW1pY0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICAgIGlmICghdGhpcy5mb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGxldCByZW5kZXJlZENvbXBvbmVudDpDb21wb25lbnRSZWY8Rm9ybUN1c3RvbUNvbXBvbmVudD47XG4gICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9mb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnJC5zdWJzY3JpYmUoZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudCA9IGZvcm1DdXN0b21Db21wb25lbnRDb25maWdbZm9ybUN1c3RvbUNvbXBvbmVudEtleV07XG4gICAgICAgICAgICAgIHJlbmRlcmVkQ29tcG9uZW50ID0gdGhpcy5mb3JtQ3VzdG9tQ29tcG9uZW50RHluYW1pY0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50XG4gICAgICAgICAgICAgICkgYXMgQ29tcG9uZW50UmVmPEZvcm1DdXN0b21Db21wb25lbnQ+O1xuXG4gICAgICAgICAgICAgIHJlbmRlcmVkQ29tcG9uZW50Lmluc3RhbmNlLnRhc2tJbnN0YW5jZUlkID0gdGhpcy50YXNrSW5zdGFuY2VJZCQudmFsdWU7XG4gICAgICAgICAgICAgIHJlbmRlcmVkQ29tcG9uZW50Lmluc3RhbmNlLnN1Ym1pdHRlZEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZU1vZGFsRXZlbnQuZW1pdCgpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHJlbmRlcmVkQ29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9ybURlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRGVmaW5pdGlvbiQubmV4dChudWxsKTtcbiAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VGFza1Byb2Nlc3NMaW5rVHlwZSgpOiB2b2lkIHtcbiAgICB0aGlzLl90YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX3Byb2Nlc3NMaW5rSWQkLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHNldERvY3VtZW50RGVmaW5pdGlvbk5hbWVJblNlcnZpY2UodGFzazogVGFzayk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAuZ2V0UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbkZyb21Qcm9jZXNzSW5zdGFuY2VJZCh0YXNrLnByb2Nlc3NJbnN0YW5jZUlkKVxuICAgICAgLnN1YnNjcmliZShwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uID0+IHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQuZG9jdW1lbnREZWZpbml0aW9uSWQubmFtZTtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uuc2V0RG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRpb25OYW1lKTtcbiAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0RG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRpb25OYW1lKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyxcbiAgICBwYWdlOiBwYWdlJCB8IGFzeW5jLFxuICAgIHRhc2s6IHRhc2skIHwgYXN5bmMsXG4gICAgdGFza0lkOiB0YXNrSW5zdGFuY2VJZCQgfCBhc3luYyxcbiAgICBmb3JtRGVmaW5pdGlvbjogZm9ybURlZmluaXRpb24kIHwgYXN5bmMsXG4gICAgZm9ybURlZmluaXRpb25JZDogZm9ybURlZmluaXRpb25JZCQgfCBhc3luYyxcbiAgICBmb3JtTmFtZTogZm9ybU5hbWUkIHwgYXN5bmMsXG4gICAgZm9ybUlvRm9ybURhdGE6IGZvcm1Jb0Zvcm1EYXRhJCB8IGFzeW5jLFxuICAgIHN1Ym1pc3Npb246IHN1Ym1pc3Npb24kIHwgYXN5bmMsXG4gICAgcHJvY2Vzc0xpbmtJc0Zvcm06IHByb2Nlc3NMaW5rSXNGb3JtJCB8IGFzeW5jLFxuICAgIHByb2Nlc3NMaW5rSXNGb3JtVmlld01vZGVsOiBwcm9jZXNzTGlua0lzRm9ybVZpZXdNb2RlbCQgfCBhc3luYyxcbiAgICBwcm9jZXNzTGlua0lzVWlDb21wb25lbnQ6IHByb2Nlc3NMaW5rSXNVaUNvbXBvbmVudCQgfCBhc3luYyxcbiAgICBmb3JtaW9PcHRpb25zOiBmb3JtaW9PcHRpb25zJCB8IGFzeW5jLFxuICAgIHByb2Nlc3NMaW5rSXNGb3JtRmxvdzogcHJvY2Vzc0xpbmtJc0Zvcm1GbG93JCB8IGFzeW5jLFxuICAgIGZvcm1GbG93SW5zdGFuY2VJZDogZm9ybUZsb3dJbnN0YW5jZUlkJCB8IGFzeW5jLFxuICAgIGVycm9yTWVzc2FnZTogZXJyb3JNZXNzYWdlJCB8IGFzeW5jLFxuICAgIGNhbkFzc2lnblVzZXJUb1Rhc2s6IGNhbkFzc2lnblVzZXJUb1Rhc2skIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHZhbHRpbW8tZm9ybS1pb1xuICAgICNmb3JtXG4gICAgKm5nSWY9XCJvYnMuZm9ybURlZmluaXRpb24gJiYgb2JzLnByb2Nlc3NMaW5rSXNGb3JtICYmICFvYnMucHJvY2Vzc0xpbmtJc1VpQ29tcG9uZW50ICYmICFvYnMucHJvY2Vzc0xpbmtJc0Zvcm1WaWV3TW9kZWxcIlxuICAgIFtmb3JtXT1cIm9icy5mb3JtRGVmaW5pdGlvblwiXG4gICAgW3N1Ym1pc3Npb25dPVwib2JzLnN1Ym1pc3Npb25cIlxuICAgIChzdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICBbb3B0aW9uc109XCJvYnMuZm9ybWlvT3B0aW9uc1wiXG4gID48L3ZhbHRpbW8tZm9ybS1pbz5cblxuICA8dmFsdGltby1mb3JtLWZsb3dcbiAgICAjZm9ybUZsb3dcbiAgICAqbmdJZj1cIm9icy5wcm9jZXNzTGlua0lzRm9ybUZsb3dcIlxuICAgIFtmb3JtSW9Gb3JtRGF0YV09XCJmb3JtSW9Gb3JtRGF0YSRcIlxuICAgIFtmb3JtRmxvd0luc3RhbmNlSWRdPVwib2JzLmZvcm1GbG93SW5zdGFuY2VJZFwiXG4gICAgKGZvcm1GbG93Q29tcGxldGUpPVwiY29tcGxldGVUYXNrKG9icy50YXNrKVwiXG4gICAgKGZvcm1GbG93Q2hhbmdlKT1cIm9uRm9ybUZsb3dDaGFuZ2VFdmVudCgpXCJcbiAgPjwvdmFsdGltby1mb3JtLWZsb3c+XG5cbiAgPGRpdiAqbmdJZj1cIm9icy5sb2FkaW5nXCIgY2xhc3M9XCJ0ZXh0LWJsYWNrIG1iLTAgcC0zIHRleHQtY2VudGVyXCI+XG4gICAge3sgJ2Zvcm1NYW5hZ2VtZW50LmxvYWRpbmcnIHwgdHJhbnNsYXRlIH19XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cIlxuICAgICAgb2JzLmxvYWRpbmcgPT09IGZhbHNlICYmXG4gICAgICAhb2JzLmZvcm1EZWZpbml0aW9uICYmXG4gICAgICAhb2JzLmZvcm1GbG93SW5zdGFuY2VJZCAmJlxuICAgICAgIW9icy5lcnJvck1lc3NhZ2UgJiZcbiAgICAgICFvYnMucHJvY2Vzc0xpbmtJc1VpQ29tcG9uZW50XG4gICAgXCJcbiAgICBjbGFzcz1cImJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0wIHAtMyB0ZXh0LWNlbnRlclwiXG4gID5cbiAgICB7e1xuICAgICAgKGlzQWRtaW4kIHwgYXN5bmMpXG4gICAgICAgID8gKCdmb3JtTWFuYWdlbWVudC5ub0Zvcm1EZWZpbml0aW9uRm91bmRBZG1pbicgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdmb3JtTWFuYWdlbWVudC5ub0Zvcm1EZWZpbml0aW9uRm91bmRVc2VyJyB8IHRyYW5zbGF0ZSlcbiAgICB9fVxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwib2JzLmVycm9yTWVzc2FnZVwiIGNsYXNzPVwiYmctZGFuZ2VyIHRleHQtYmxhY2sgbWItMCBwLTMgdGV4dC1jZW50ZXJcIj5cbiAgICB7eyBvYnMuZXJyb3JNZXNzYWdlIH19XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtLTJcIj5cbiAgICA8bmctdGVtcGxhdGUgI2Zvcm1WaWV3TW9kZWxDb21wb25lbnQ+PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2Zvcm1DdXN0b21Db21wb25lbnQ+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -143,7 +143,7 @@ export class TaskDetailIntermediateSaveComponent {
|
|
|
143
143
|
});
|
|
144
144
|
}
|
|
145
145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailIntermediateSaveComponent, deps: [{ token: i1.ConfigService }, { token: i2.IconService }, { token: i3.TranslateService }, { token: i4.TaskIntermediateSaveService }, { token: i4.TaskService }, { token: i5.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
146
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TaskDetailIntermediateSaveComponent, isStandalone: true, selector: "valtimo-task-detail-intermediate-save", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink" }, outputs: { currentIntermediateSaveEvent: "currentIntermediateSaveEvent", showModalEvent: "showModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i7.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i7.TooltipDirective, selector: "[vTooltip]", inputs: ["vTooltip", "onBottom", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TaskDetailIntermediateSaveComponent, isStandalone: true, selector: "valtimo-task-detail-intermediate-save", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink" }, outputs: { currentIntermediateSaveEvent: "currentIntermediateSaveEvent", showModalEvent: "showModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n", styles: [":host{flex-shrink:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i7.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i7.TooltipDirective, selector: "[vTooltip]", inputs: ["vTooltip", "onBottom", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
147
147
|
}
|
|
148
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailIntermediateSaveComponent, decorators: [{
|
|
149
149
|
type: Component,
|
|
@@ -155,7 +155,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
155
155
|
IconModule,
|
|
156
156
|
ModalModule,
|
|
157
157
|
TooltipModule,
|
|
158
|
-
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n" }]
|
|
158
|
+
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n", styles: [":host{flex-shrink:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
159
159
|
}], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.IconService }, { type: i3.TranslateService }, { type: i4.TaskIntermediateSaveService }, { type: i4.TaskService }, { type: i5.ToastrService }], propDecorators: { task: [{
|
|
160
160
|
type: Input
|
|
161
161
|
}], taskAndProcessLink: [{
|
|
@@ -165,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
165
165
|
}], showModalEvent: [{
|
|
166
166
|
type: Output
|
|
167
167
|
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWwtaW50ZXJtZWRpYXRlLXNhdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvY29tcG9uZW50cy90YXNrLWRldGFpbC1pbnRlcm1lZGlhdGUtc2F2ZS90YXNrLWRldGFpbC1pbnRlcm1lZGlhdGUtc2F2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stZGV0YWlsLWludGVybWVkaWF0ZS1zYXZlL3Rhc2stZGV0YWlsLWludGVybWVkaWF0ZS1zYXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFM0UsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQWUsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0YsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQW9CckUsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxJQUFv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Z0JjLGtCQUFrQjtzQkFBckMsS0FBSztnQkFXb0IsNEJBQTRCO3NCQUFyRCxNQUFNO2dCQUVtQixjQUFjO3NCQUF2QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZWNlbnRseVZpZXdlZDE2fSBmcm9tICdAY2FyYm9uL2ljb25zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29uZmlybWF0aW9uTW9kYWxNb2R1bGUsIFRvb2x0aXBNb2R1bGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGUsIEljb25Nb2R1bGUsIEljb25TZXJ2aWNlLCBNb2RhbE1vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIHN3aXRjaE1hcCwgdGFrZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ludGVybWVkaWF0ZVNhdmVSZXF1ZXN0LCBJbnRlcm1lZGlhdGVTdWJtaXNzaW9uLCBUYXNrfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtUYXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2UsIFRhc2tTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1Rhc2tQcm9jZXNzTGlua1Jlc3VsdCwgVGFza1dpdGhQcm9jZXNzTGlua30gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcy1saW5rJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby10YXNrLWRldGFpbC1pbnRlcm1lZGlhdGUtc2F2ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWRldGFpbC1pbnRlcm1lZGlhdGUtc2F2ZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgQ29uZmlybWF0aW9uTW9kYWxNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBNb2RhbE1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrRGV0YWlsSW50ZXJtZWRpYXRlU2F2ZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdGFzayh2YWx1ZTogVGFzayB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdGhpcy50YXNrU2VydmljZVxuICAgICAgLmdldFRhc2tQcm9jZXNzTGluayh2YWx1ZS5pZClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZsb3cocmVzKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy50YXNrVmFsdWUuc2V0KHZhbHVlKTtcbiAgICB0aGlzLnBhZ2Uuc2V0KHtcbiAgICAgIHRpdGxlOiB2YWx1ZS5uYW1lLFxuICAgICAgc3VidGl0bGU6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd0YXNrRGV0YWlsLnRhc2tDcmVhdGVkJyl9ICR7dmFsdWUuY3JlYXRlZH1gLFxuICAgIH0pO1xuICAgIHRoaXMuZ2V0Q3VycmVudFByb2dyZXNzKHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRhc2tBbmRQcm9jZXNzTGluayh2YWx1ZTogVGFza1dpdGhQcm9jZXNzTGluayB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnNldEZvcm1GbG93KHZhbHVlLnByb2Nlc3NMaW5rQWN0aXZpdHlSZXN1bHQpO1xuICAgIHRoaXMudGFza1ZhbHVlLnNldCh2YWx1ZS50YXNrIGFzIGFueSk7XG4gICAgdGhpcy5wYWdlLnNldCh7XG4gICAgICB0aXRsZTogdmFsdWU/LnRhc2submFtZSxcbiAgICAgIHN1YnRpdGxlOiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndGFza0RldGFpbC50YXNrQ3JlYXRlZCcpfSAke3ZhbHVlPy50YXNrLmNyZWF0ZWR9YCxcbiAgICB9KTtcbiAgICB0aGlzLmdldEN1cnJlbnRQcm9ncmVzcyh2YWx1ZS50YXNrIGFzIGFueSk7XG4gIH1cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjdXJyZW50SW50ZXJtZWRpYXRlU2F2ZUV2ZW50ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEludGVybWVkaWF0ZVN1Ym1pc3Npb24gfCBudWxsPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHNob3dNb2RhbEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtRmxvd0luc3RhbmNlSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93Q29uZmlybWF0aW9uTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRhc2tWYWx1ZSA9IHNpZ25hbDxUYXNrIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBwYWdlID0gc2lnbmFsPHt0aXRsZTogc3RyaW5nOyBzdWJ0aXRsZTogc3RyaW5nfSB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuQXNzaWduVXNlclRvVGFzayA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzdWJtaXNzaW9uJCA9IHRoaXMudGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLnN1Ym1pc3Npb24kO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9ybUlvRm9ybURhdGEkID0gdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2UuZm9ybUlvRm9ybURhdGEkO1xuXG4gIHB1YmxpYyBpbnRlcm1lZGlhdGVTYXZlRW5hYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgY3VycmVudEludGVybWVkaWF0ZVNhdmU6IEludGVybWVkaWF0ZVN1Ym1pc3Npb24gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlOiBUYXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXNrU2VydmljZTogVGFza1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHI6IFRvYXN0clNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pbnRlcm1lZGlhdGVTYXZlRW5hYmxlZCA9ICEhdGhpcy5jb25maWdTZXJ2aWNlLmZlYXR1cmVUb2dnbGVzPy5lbmFibGVJbnRlcm1lZGlhdGVTYXZlO1xuICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJBbGwoW1JlY2VudGx5Vmlld2VkMTZdKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ3VycmVudFByb2dyZXNzKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3VibWlzc2lvbiQsIHRoaXMuZm9ybUlvRm9ybURhdGEkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKFtzdWJtaXNzaW9uLCBmb3JtSW9Gb3JtRGF0YV0pID0+IHtcbiAgICAgICAgICBjb25zdCBpbnRlcm1lZGlhdGVTYXZlUmVxdWVzdDogSW50ZXJtZWRpYXRlU2F2ZVJlcXVlc3QgPSB7XG4gICAgICAgICAgICBzdWJtaXNzaW9uOiBzdWJtaXNzaW9uPy5kYXRhID8gc3VibWlzc2lvbi5kYXRhIDogZm9ybUlvRm9ybURhdGEsXG4gICAgICAgICAgICB0YXNrSW5zdGFuY2VJZDogdGhpcy50YXNrVmFsdWUoKT8uaWQgPz8gJycsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZS5zdG9yZUludGVybWVkaWF0ZVN1Ym1pc3Npb24oXG4gICAgICAgICAgICBpbnRlcm1lZGlhdGVTYXZlUmVxdWVzdFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogaW50ZXJtZWRpYXRlU3VibWlzc2lvbiA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcyhcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdmb3JtTWFuYWdlbWVudC5pbnRlcm1lZGlhdGVTYXZlLnN1Y2Nlc3MnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW50ZXJtZWRpYXRlU2F2ZSA9IHRoaXMuZm9ybWF0SW50ZXJtZWRpYXRlU3VibWlzc2lvbihpbnRlcm1lZGlhdGVTdWJtaXNzaW9uKTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlRXZlbnQuZW1pdCh0aGlzLmN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZm9ybU1hbmFnZW1lbnQuaW50ZXJtZWRpYXRlU2F2ZS5lcnJvcicpKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJldmVydFNhdmVDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93TW9kYWxFdmVudC5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5zaG93TW9kYWxFdmVudC5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93Q29uZmlybWF0aW9uTW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJDdXJyZW50UHJvZ3Jlc3MoKTogdm9pZCB7XG4gICAgdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2VcbiAgICAgIC5jbGVhckludGVybWVkaWF0ZVN1Ym1pc3Npb24odGhpcy50YXNrVmFsdWUoKT8uaWQgPz8gJycpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLnNldFN1Ym1pc3Npb24oe30pO1xuICAgICAgICB0aGlzLmN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50SW50ZXJtZWRpYXRlU2F2ZUV2ZW50LmVtaXQodGhpcy5jdXJyZW50SW50ZXJtZWRpYXRlU2F2ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rm9ybUZsb3cocHJvY2Vzc0xpbms6IFRhc2tQcm9jZXNzTGlua1Jlc3VsdCk6IHZvaWQge1xuICAgIGlmIChwcm9jZXNzTGluayAhPT0gbnVsbCAmJiBwcm9jZXNzTGluay50eXBlID09PSAnZm9ybS1mbG93Jykge1xuICAgICAgdGhpcy5mb3JtRmxvd0luc3RhbmNlSWQkLm5leHQocHJvY2Vzc0xpbmsucHJvcGVydGllcy5mb3JtRmxvd0luc3RhbmNlSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0SW50ZXJtZWRpYXRlU3VibWlzc2lvbihcbiAgICBpbnRlcm1lZGlhdGVTdWJtaXNzaW9uOiBJbnRlcm1lZGlhdGVTdWJtaXNzaW9uXG4gICk6IEludGVybWVkaWF0ZVN1Ym1pc3Npb24ge1xuICAgIGludGVybWVkaWF0ZVN1Ym1pc3Npb24uY3JlYXRlZE9uID0gbW9tZW50KGludGVybWVkaWF0ZVN1Ym1pc3Npb24uY3JlYXRlZE9uKS5mb3JtYXQoXG4gICAgICAnREQgTU1NIFlZWVkgSEg6bW0nXG4gICAgKTtcbiAgICBpZiAoaW50ZXJtZWRpYXRlU3VibWlzc2lvbi5lZGl0ZWRPbikge1xuICAgICAgaW50ZXJtZWRpYXRlU3VibWlzc2lvbi5lZGl0ZWRPbiA9IG1vbWVudChuZXcgRGF0ZShpbnRlcm1lZGlhdGVTdWJtaXNzaW9uLmVkaXRlZE9uKSkuZm9ybWF0KFxuICAgICAgICAnREQgTU1NIFlZWVkgSEg6bW0nXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBpbnRlcm1lZGlhdGVTdWJtaXNzaW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW50UHJvZ3Jlc3ModGFzazogVGFzayk6IHZvaWQge1xuICAgIHRoaXMudGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlXG4gICAgICAuZ2V0SW50ZXJtZWRpYXRlU3VibWlzc2lvbih0YXNrLmlkID8/ICcnKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoaW50ZXJtZWRpYXRlU2F2ZSA9PiB7XG4gICAgICAgIGlmIChpbnRlcm1lZGlhdGVTYXZlICE9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW50ZXJtZWRpYXRlU2F2ZSA9IHRoaXMuZm9ybWF0SW50ZXJtZWRpYXRlU3VibWlzc2lvbihpbnRlcm1lZGlhdGVTYXZlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZS5zZXRTdWJtaXNzaW9uKHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3VycmVudEludGVybWVkaWF0ZVNhdmVFdmVudC5lbWl0KHRoaXMuY3VycmVudEludGVybWVkaWF0ZVNhdmUpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuQGlmIChpbnRlcm1lZGlhdGVTYXZlRW5hYmxlZCAmJiAoZm9ybUZsb3dJbnN0YW5jZUlkJCB8IGFzeW5jKSA9PT0gdW5kZWZpbmVkKSB7XG4gIDxidXR0b25cbiAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgaWNvbk9ubHk9XCJ0cnVlXCJcbiAgICBjZHNJY29uPVwic2F2ZVwiXG4gICAgW3ZUb29sdGlwXT1cIidmb3JtTWFuYWdlbWVudC5pbnRlcm1lZGlhdGVTYXZlLnNhdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAoY2xpY2spPVwic2F2ZUN1cnJlbnRQcm9ncmVzcygpXCJcbiAgPjwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgaWNvbk9ubHk9XCJ0cnVlXCJcbiAgICBjZHNJY29uPVwicmVjZW50bHktdmlld2VkXCJcbiAgICBbZGlzYWJsZWRdPVwiIWN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlXCJcbiAgICBbdlRvb2x0aXBdPVwiJ2Zvcm1NYW5hZ2VtZW50LmludGVybWVkaWF0ZVNhdmUuY2xlYXInIHwgdHJhbnNsYXRlXCJcbiAgICAoY2xpY2spPVwicmV2ZXJ0U2F2ZUNsaWNrKClcIlxuICA+PC9idXR0b24+XG59XG5cbjx2YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbFxuICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd0NvbmZpcm1hdGlvbk1vZGFsJFwiXG4gIChjb25maXJtRXZlbnQpPVwiY2xlYXJDdXJyZW50UHJvZ3Jlc3MoKVwiXG4gIChjYW5jZWxFdmVudCk9XCJzaG93Q29uZmlybWF0aW9uTW9kYWwkLm5leHQoZmFsc2UpXCJcbiAgY2FuY2VsQnV0dG9uVHlwZT1cImdob3N0XCJcbiAgY29uZmlybUJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5jb25maXJtXCJcbiAgdGl0bGVUcmFuc2xhdGlvbktleT1cImZvcm1NYW5hZ2VtZW50LmludGVybWVkaWF0ZVNhdmUuY2xlYXJcIlxuICBjb250ZW50VHJhbnNsYXRpb25LZXk9XCJmb3JtTWFuYWdlbWVudC5pbnRlcm1lZGlhdGVTYXZlLmNsZWFyQ29uZmlybVwiXG4+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cbiJdfQ==
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWwtaW50ZXJtZWRpYXRlLXNhdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvY29tcG9uZW50cy90YXNrLWRldGFpbC1pbnRlcm1lZGlhdGUtc2F2ZS90YXNrLWRldGFpbC1pbnRlcm1lZGlhdGUtc2F2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stZGV0YWlsLWludGVybWVkaWF0ZS1zYXZlL3Rhc2stZGV0YWlsLWludGVybWVkaWF0ZS1zYXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFM0UsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQWUsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0YsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQXFCckUsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxJQUFv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QkFnQmMsa0JBQWtCO3NCQUFyQyxLQUFLO2dCQVdvQiw0QkFBNEI7c0JBQXJELE1BQU07Z0JBRW1CLGNBQWM7c0JBQXZDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JlY2VudGx5Vmlld2VkMTZ9IGZyb20gJ0BjYXJib24vaWNvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb25maXJtYXRpb25Nb2RhbE1vZHVsZSwgVG9vbHRpcE1vZHVsZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZSwgSWNvbk1vZHVsZSwgSWNvblNlcnZpY2UsIE1vZGFsTW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgc3dpdGNoTWFwLCB0YWtlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW50ZXJtZWRpYXRlU2F2ZVJlcXVlc3QsIEludGVybWVkaWF0ZVN1Ym1pc3Npb24sIFRhc2t9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1Rhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZSwgVGFza1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7VGFza1Byb2Nlc3NMaW5rUmVzdWx0LCBUYXNrV2l0aFByb2Nlc3NMaW5rfSBmcm9tICdAdmFsdGltby9wcm9jZXNzLWxpbmsnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRhc2stZGV0YWlsLWludGVybWVkaWF0ZS1zYXZlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rhc2stZGV0YWlsLWludGVybWVkaWF0ZS1zYXZlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFzay1kZXRhaWwtaW50ZXJtZWRpYXRlLXNhdmUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIE1vZGFsTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tEZXRhaWxJbnRlcm1lZGlhdGVTYXZlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIHNldCB0YXNrKHZhbHVlOiBUYXNrIHwgbnVsbCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLnRhc2tTZXJ2aWNlXG4gICAgICAuZ2V0VGFza1Byb2Nlc3NMaW5rKHZhbHVlLmlkKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmxvdyhyZXMpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnRhc2tWYWx1ZS5zZXQodmFsdWUpO1xuICAgIHRoaXMucGFnZS5zZXQoe1xuICAgICAgdGl0bGU6IHZhbHVlLm5hbWUsXG4gICAgICBzdWJ0aXRsZTogYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3Rhc2tEZXRhaWwudGFza0NyZWF0ZWQnKX0gJHt2YWx1ZS5jcmVhdGVkfWAsXG4gICAgfSk7XG4gICAgdGhpcy5nZXRDdXJyZW50UHJvZ3Jlc3ModmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdGFza0FuZFByb2Nlc3NMaW5rKHZhbHVlOiBUYXNrV2l0aFByb2Nlc3NMaW5rIHwgbnVsbCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuc2V0Rm9ybUZsb3codmFsdWUucHJvY2Vzc0xpbmtBY3Rpdml0eVJlc3VsdCk7XG4gICAgdGhpcy50YXNrVmFsdWUuc2V0KHZhbHVlLnRhc2sgYXMgYW55KTtcbiAgICB0aGlzLnBhZ2Uuc2V0KHtcbiAgICAgIHRpdGxlOiB2YWx1ZT8udGFzay5uYW1lLFxuICAgICAgc3VidGl0bGU6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd0YXNrRGV0YWlsLnRhc2tDcmVhdGVkJyl9ICR7dmFsdWU/LnRhc2suY3JlYXRlZH1gLFxuICAgIH0pO1xuICAgIHRoaXMuZ2V0Q3VycmVudFByb2dyZXNzKHZhbHVlLnRhc2sgYXMgYW55KTtcbiAgfVxuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlRXZlbnQgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8SW50ZXJtZWRpYXRlU3VibWlzc2lvbiB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2hvd01vZGFsRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1GbG93SW5zdGFuY2VJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dDb25maXJtYXRpb25Nb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGFza1ZhbHVlID0gc2lnbmFsPFRhc2sgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2UgPSBzaWduYWw8e3RpdGxlOiBzdHJpbmc7IHN1YnRpdGxlOiBzdHJpbmd9IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBjYW5Bc3NpZ25Vc2VyVG9UYXNrID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2Uuc3VibWlzc2lvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtSW9Gb3JtRGF0YSQgPSB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZS5mb3JtSW9Gb3JtRGF0YSQ7XG5cbiAgcHVibGljIGludGVybWVkaWF0ZVNhdmVFbmFibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBjdXJyZW50SW50ZXJtZWRpYXRlU2F2ZTogSW50ZXJtZWRpYXRlU3VibWlzc2lvbiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2U6IFRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tTZXJ2aWNlOiBUYXNrU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0cjogVG9hc3RyU2VydmljZVxuICApIHtcbiAgICB0aGlzLmludGVybWVkaWF0ZVNhdmVFbmFibGVkID0gISF0aGlzLmNvbmZpZ1NlcnZpY2UuZmVhdHVyZVRvZ2dsZXM/LmVuYWJsZUludGVybWVkaWF0ZVNhdmU7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbUmVjZW50bHlWaWV3ZWQxNl0pO1xuICB9XG5cbiAgcHVibGljIHNhdmVDdXJyZW50UHJvZ3Jlc3MoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zdWJtaXNzaW9uJCwgdGhpcy5mb3JtSW9Gb3JtRGF0YSRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoW3N1Ym1pc3Npb24sIGZvcm1Jb0Zvcm1EYXRhXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGludGVybWVkaWF0ZVNhdmVSZXF1ZXN0OiBJbnRlcm1lZGlhdGVTYXZlUmVxdWVzdCA9IHtcbiAgICAgICAgICAgIHN1Ym1pc3Npb246IHN1Ym1pc3Npb24/LmRhdGEgPyBzdWJtaXNzaW9uLmRhdGEgOiBmb3JtSW9Gb3JtRGF0YSxcbiAgICAgICAgICAgIHRhc2tJbnN0YW5jZUlkOiB0aGlzLnRhc2tWYWx1ZSgpPy5pZCA/PyAnJyxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMudGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLnN0b3JlSW50ZXJtZWRpYXRlU3VibWlzc2lvbihcbiAgICAgICAgICAgIGludGVybWVkaWF0ZVNhdmVSZXF1ZXN0XG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2UoMSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBpbnRlcm1lZGlhdGVTdWJtaXNzaW9uID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Zvcm1NYW5hZ2VtZW50LmludGVybWVkaWF0ZVNhdmUuc3VjY2VzcycpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlID0gdGhpcy5mb3JtYXRJbnRlcm1lZGlhdGVTdWJtaXNzaW9uKGludGVybWVkaWF0ZVN1Ym1pc3Npb24pO1xuICAgICAgICAgIHRoaXMuY3VycmVudEludGVybWVkaWF0ZVNhdmVFdmVudC5lbWl0KHRoaXMuY3VycmVudEludGVybWVkaWF0ZVNhdmUpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdmb3JtTWFuYWdlbWVudC5pbnRlcm1lZGlhdGVTYXZlLmVycm9yJykpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmV2ZXJ0U2F2ZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dNb2RhbEV2ZW50Lm9ic2VydmVkKSB7XG4gICAgICB0aGlzLnNob3dNb2RhbEV2ZW50LmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25Nb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckN1cnJlbnRQcm9ncmVzcygpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tJbnRlcm1lZGlhdGVTYXZlU2VydmljZVxuICAgICAgLmNsZWFySW50ZXJtZWRpYXRlU3VibWlzc2lvbih0aGlzLnRhc2tWYWx1ZSgpPy5pZCA/PyAnJylcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2Uuc2V0U3VibWlzc2lvbih7fSk7XG4gICAgICAgIHRoaXMuY3VycmVudEludGVybWVkaWF0ZVNhdmUgPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlRXZlbnQuZW1pdCh0aGlzLmN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtRmxvdyhwcm9jZXNzTGluazogVGFza1Byb2Nlc3NMaW5rUmVzdWx0KTogdm9pZCB7XG4gICAgaWYgKHByb2Nlc3NMaW5rICE9PSBudWxsICYmIHByb2Nlc3NMaW5rLnR5cGUgPT09ICdmb3JtLWZsb3cnKSB7XG4gICAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCQubmV4dChwcm9jZXNzTGluay5wcm9wZXJ0aWVzLmZvcm1GbG93SW5zdGFuY2VJZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRJbnRlcm1lZGlhdGVTdWJtaXNzaW9uKFxuICAgIGludGVybWVkaWF0ZVN1Ym1pc3Npb246IEludGVybWVkaWF0ZVN1Ym1pc3Npb25cbiAgKTogSW50ZXJtZWRpYXRlU3VibWlzc2lvbiB7XG4gICAgaW50ZXJtZWRpYXRlU3VibWlzc2lvbi5jcmVhdGVkT24gPSBtb21lbnQoaW50ZXJtZWRpYXRlU3VibWlzc2lvbi5jcmVhdGVkT24pLmZvcm1hdChcbiAgICAgICdERCBNTU0gWVlZWSBISDptbSdcbiAgICApO1xuICAgIGlmIChpbnRlcm1lZGlhdGVTdWJtaXNzaW9uLmVkaXRlZE9uKSB7XG4gICAgICBpbnRlcm1lZGlhdGVTdWJtaXNzaW9uLmVkaXRlZE9uID0gbW9tZW50KG5ldyBEYXRlKGludGVybWVkaWF0ZVN1Ym1pc3Npb24uZWRpdGVkT24pKS5mb3JtYXQoXG4gICAgICAgICdERCBNTU0gWVlZWSBISDptbSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGludGVybWVkaWF0ZVN1Ym1pc3Npb247XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRQcm9ncmVzcyh0YXNrOiBUYXNrKTogdm9pZCB7XG4gICAgdGhpcy50YXNrSW50ZXJtZWRpYXRlU2F2ZVNlcnZpY2VcbiAgICAgIC5nZXRJbnRlcm1lZGlhdGVTdWJtaXNzaW9uKHRhc2suaWQgPz8gJycpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShpbnRlcm1lZGlhdGVTYXZlID0+IHtcbiAgICAgICAgaWYgKGludGVybWVkaWF0ZVNhdmUgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlID0gdGhpcy5mb3JtYXRJbnRlcm1lZGlhdGVTdWJtaXNzaW9uKGludGVybWVkaWF0ZVNhdmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VycmVudEludGVybWVkaWF0ZVNhdmUgPSBudWxsO1xuICAgICAgICAgIHRoaXMudGFza0ludGVybWVkaWF0ZVNhdmVTZXJ2aWNlLnNldFN1Ym1pc3Npb24oe30pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50SW50ZXJtZWRpYXRlU2F2ZUV2ZW50LmVtaXQodGhpcy5jdXJyZW50SW50ZXJtZWRpYXRlU2F2ZSk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG5AaWYgKGludGVybWVkaWF0ZVNhdmVFbmFibGVkICYmIChmb3JtRmxvd0luc3RhbmNlSWQkIHwgYXN5bmMpID09PSB1bmRlZmluZWQpIHtcbiAgPGJ1dHRvblxuICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICBpY29uT25seT1cInRydWVcIlxuICAgIGNkc0ljb249XCJzYXZlXCJcbiAgICBbdlRvb2x0aXBdPVwiJ2Zvcm1NYW5hZ2VtZW50LmludGVybWVkaWF0ZVNhdmUuc2F2ZScgfCB0cmFuc2xhdGVcIlxuICAgIChjbGljayk9XCJzYXZlQ3VycmVudFByb2dyZXNzKClcIlxuICA+PC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICBpY29uT25seT1cInRydWVcIlxuICAgIGNkc0ljb249XCJyZWNlbnRseS12aWV3ZWRcIlxuICAgIFtkaXNhYmxlZF09XCIhY3VycmVudEludGVybWVkaWF0ZVNhdmVcIlxuICAgIFt2VG9vbHRpcF09XCInZm9ybU1hbmFnZW1lbnQuaW50ZXJtZWRpYXRlU2F2ZS5jbGVhcicgfCB0cmFuc2xhdGVcIlxuICAgIChjbGljayk9XCJyZXZlcnRTYXZlQ2xpY2soKVwiXG4gID48L2J1dHRvbj5cbn1cblxuPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gIFtzaG93TW9kYWxTdWJqZWN0JF09XCJzaG93Q29uZmlybWF0aW9uTW9kYWwkXCJcbiAgKGNvbmZpcm1FdmVudCk9XCJjbGVhckN1cnJlbnRQcm9ncmVzcygpXCJcbiAgKGNhbmNlbEV2ZW50KT1cInNob3dDb25maXJtYXRpb25Nb2RhbCQubmV4dChmYWxzZSlcIlxuICBjYW5jZWxCdXR0b25UeXBlPVwiZ2hvc3RcIlxuICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLmNvbmZpcm1cIlxuICB0aXRsZVRyYW5zbGF0aW9uS2V5PVwiZm9ybU1hbmFnZW1lbnQuaW50ZXJtZWRpYXRlU2F2ZS5jbGVhclwiXG4gIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cImZvcm1NYW5hZ2VtZW50LmludGVybWVkaWF0ZVNhdmUuY2xlYXJDb25maXJtXCJcbj48L3ZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsPlxuIl19
|