@valtimo/dossier 12.10.2 → 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/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.mjs +4 -3
- package/esm2022/lib/components/dossier-detail/dossier-detail.component.mjs +11 -4
- package/esm2022/lib/components/dossier-detail-task-detail/dossier-detail-task-detail.component.mjs +9 -4
- package/esm2022/lib/components/dossier-list/dossier-list.component.mjs +51 -15
- package/esm2022/lib/components/dossier-list-actions/dossier-list-actions.component.mjs +46 -18
- package/esm2022/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.mjs +26 -18
- package/esm2022/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +33 -15
- package/esm2022/lib/constants/case-status.constants.mjs +3 -3
- package/esm2022/lib/dossier.module.mjs +17 -5
- package/esm2022/lib/models/dossier-parameters.model.mjs +1 -1
- package/esm2022/lib/services/dossier-column.service.mjs +5 -1
- package/esm2022/lib/services/dossier-list-case-tag.service.mjs +59 -0
- package/esm2022/lib/services/dossier-parameter.service.mjs +29 -2
- package/esm2022/lib/services/index.mjs +2 -1
- package/fesm2022/valtimo-dossier.mjs +260 -65
- package/fesm2022/valtimo-dossier.mjs.map +1 -1
- package/lib/components/dossier-detail/dossier-detail.component.d.ts +3 -1
- package/lib/components/dossier-detail/dossier-detail.component.d.ts.map +1 -1
- package/lib/components/dossier-detail-task-detail/dossier-detail-task-detail.component.d.ts +1 -0
- package/lib/components/dossier-detail-task-detail/dossier-detail-task-detail.component.d.ts.map +1 -1
- package/lib/components/dossier-list/dossier-list.component.d.ts +10 -3
- package/lib/components/dossier-list/dossier-list.component.d.ts.map +1 -1
- package/lib/components/dossier-list-actions/dossier-list-actions.component.d.ts +10 -3
- package/lib/components/dossier-list-actions/dossier-list-actions.component.d.ts.map +1 -1
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +7 -4
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
- package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts +7 -2
- package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -1
- package/lib/constants/case-status.constants.d.ts.map +1 -1
- package/lib/dossier.module.d.ts +1 -1
- package/lib/dossier.module.d.ts.map +1 -1
- package/lib/models/dossier-parameters.model.d.ts +1 -0
- package/lib/models/dossier-parameters.model.d.ts.map +1 -1
- package/lib/services/dossier-column.service.d.ts.map +1 -1
- package/lib/services/dossier-list-case-tag.service.d.ts +21 -0
- package/lib/services/dossier-list-case-tag.service.d.ts.map +1 -0
- package/lib/services/dossier-parameter.service.d.ts +2 -0
- package/lib/services/dossier-parameter.service.d.ts.map +1 -1
- package/lib/services/index.d.ts +1 -0
- package/lib/services/index.d.ts.map +1 -1
- package/package.json +1 -1
package/esm2022/lib/components/dossier-detail-task-detail/dossier-detail-task-detail.component.mjs
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { CommonModule } from '@angular/common';
|
|
17
17
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, signal, } from '@angular/core';
|
|
18
18
|
import { TranslateModule } from '@ngx-translate/core';
|
|
19
|
-
import { AssignUserToTaskComponent, CAN_ASSIGN_TASK_PERMISSION, TASK_DETAIL_PERMISSION_RESOURCE, TaskDetailContentComponent, TaskDetailIntermediateSaveComponent, } from '@valtimo/task';
|
|
19
|
+
import { AssignUserToTaskComponent, CAN_ASSIGN_TASK_PERMISSION, CAN_MODIFY_TASK_PERMISSION, SetTaskDueDateComponent, TASK_DETAIL_PERMISSION_RESOURCE, TaskDetailContentComponent, TaskDetailIntermediateSaveComponent, } from '@valtimo/task';
|
|
20
20
|
import { ButtonModule, IconModule } from 'carbon-components-angular';
|
|
21
21
|
import { BehaviorSubject, map, switchMap } from 'rxjs';
|
|
22
22
|
import * as i0 from "@angular/core";
|
|
@@ -52,6 +52,10 @@ export class DossierDetailsTaskDetailComponent {
|
|
|
52
52
|
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
53
53
|
identifier: task?.id ?? '',
|
|
54
54
|
})));
|
|
55
|
+
this.canModifyTask$ = this.task$.pipe(switchMap((task) => this.permissionService.requestPermission(CAN_MODIFY_TASK_PERMISSION, {
|
|
56
|
+
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
57
|
+
identifier: task?.id ?? '',
|
|
58
|
+
})));
|
|
55
59
|
this.intermediateSaveValue$ = new BehaviorSubject(null);
|
|
56
60
|
this.pageValue = signal({
|
|
57
61
|
title: '',
|
|
@@ -78,7 +82,7 @@ export class DossierDetailsTaskDetailComponent {
|
|
|
78
82
|
this.formSubmit.emit();
|
|
79
83
|
}
|
|
80
84
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierDetailsTaskDetailComponent, deps: [{ token: i1.ConfigService }, { token: i2.PageHeaderService }, { token: i3.PermissionService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
85
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierDetailsTaskDetailComponent, isStandalone: true, selector: "valtimo-dossier-detail-task-detail", inputs: { taskAndProcessLink: "taskAndProcessLink" }, outputs: { closeEvent: "closeEvent", assignmentOfTaskChanged: "assignmentOfTaskChanged", activeChange: "activeChange", formSubmit: "formSubmit" }, 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<div\n *ngIf=\"{\n canAssignUserToTask: canAssignUserToTask$ | async,\n intermediateSaveValue: intermediateSaveValue$ | async,\n task: task$ | async,\n taskAndProcessLink: taskAndProcessLink$ | async,\n canModifyTask: canModifyTask$ | async,\n } as obs\"\n class=\"valtimo-dossier-detail-task-detail\"\n>\n <section class=\"valtimo-dossier-detail-task-detail__header\">\n <valtimo-task-detail-intermediate-save\n *ngIf=\"enableIntermediateSave\"\n [taskAndProcessLink]=\"obs.taskAndProcessLink\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n ></valtimo-task-detail-intermediate-save>\n\n <button cdsButton=\"ghost\" [iconOnly]=\"true\" (click)=\"onClose()\">\n <svg class=\"cds--btn__icon\" cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </section>\n\n <section\n class=\"valtimo-dossier-detail-task-detail__body\"\n [class.valtimo-dossier-detail-task-detail__body--compact]=\"compactMode$ | async\"\n >\n <div class=\"title-container\">\n <p class=\"valtimo-dossier-detail-task-detail__title\">{{ pageValue()?.title }}</p>\n\n <p class=\"cds--modal-header__label cds--type-delta\">{{ pageValue()?.subtitle }}</p>\n\n <p *ngIf=\"obs.intermediateSaveValue\" class=\"cds--modal-header__label\">\n {{ 'formManagement.intermediateSave.lastSavedBy' | translate }}:\n\n {{\n obs.intermediateSaveValue.editedBy\n ? obs.intermediateSaveValue.editedBy\n : obs.intermediateSaveValue.createdBy\n }}\n\n {{ 'formManagement.intermediateSave.on' | translate }}:\n\n {{\n obs.intermediateSaveValue.editedOn\n ? obs.intermediateSaveValue.editedOn\n : obs.intermediateSaveValue.createdOn\n }}\n </p>\n\n <div class=\"task-actions\">\n @if (obs.task) {\n <valtimo-assign-user-to-task\n [canAssignUserToTask]=\"obs.canAssignUserToTask\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n ></valtimo-assign-user-to-task>\n\n <valtimo-set-task-due-date\n [canModifyTask]=\"obs.canModifyTask\"\n ></valtimo-set-task-due-date>\n }\n </div>\n </div>\n\n <valtimo-task-detail-content\n [taskAndProcessLink]=\"obs.taskAndProcessLink\"\n (activeChange)=\"onActiveChangeEvent($event)\"\n (formSubmit)=\"onFormSubmitEvent()\"\n ></valtimo-task-detail-content>\n </section>\n</div>\n", styles: [".valtimo-dossier-detail-task-detail{width:100%;display:flex;flex-direction:column;background-color:var(--cds-layer);padding:8px 16px 16px}.valtimo-dossier-detail-task-detail__header{display:flex;justify-content:flex-end}.valtimo-dossier-detail-task-detail__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-dossier-detail-task-detail__body{overflow-y:auto;max-height:calc(100vh - 320px)}.valtimo-dossier-detail-task-detail__body--compact{max-height:calc(100vh - 280px)}.valtimo-dossier-detail-task-detail__body .title-container{position:sticky;background-color:var(--cds-layer);top:0;z-index:12;padding-bottom:16px}.valtimo-dossier-detail-task-detail .task-actions{display:flex;flex-wrap:wrap;width:100%;padding-top:8px;gap:8px}\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: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: TaskDetailContentComponent, selector: "valtimo-task-detail-content", inputs: ["task", "taskAndProcessLink", "modalClosed"], outputs: ["closeModalEvent", "formSubmit", "activeChange"] }, { kind: "component", type: TaskDetailIntermediateSaveComponent, selector: "valtimo-task-detail-intermediate-save", inputs: ["task", "taskAndProcessLink"], outputs: ["currentIntermediateSaveEvent", "showModalEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: AssignUserToTaskComponent, selector: "valtimo-assign-user-to-task", inputs: ["taskId", "assigneeId", "canAssignUserToTask"], outputs: ["assignmentOfTaskChanged"] }, { kind: "component", type: SetTaskDueDateComponent, selector: "valtimo-set-task-due-date", inputs: ["canModifyTask", "task"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
82
86
|
}
|
|
83
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierDetailsTaskDetailComponent, decorators: [{
|
|
84
88
|
type: Component,
|
|
@@ -90,7 +94,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
90
94
|
ButtonModule,
|
|
91
95
|
IconModule,
|
|
92
96
|
AssignUserToTaskComponent,
|
|
93
|
-
|
|
97
|
+
SetTaskDueDateComponent,
|
|
98
|
+
], 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<div\n *ngIf=\"{\n canAssignUserToTask: canAssignUserToTask$ | async,\n intermediateSaveValue: intermediateSaveValue$ | async,\n task: task$ | async,\n taskAndProcessLink: taskAndProcessLink$ | async,\n canModifyTask: canModifyTask$ | async,\n } as obs\"\n class=\"valtimo-dossier-detail-task-detail\"\n>\n <section class=\"valtimo-dossier-detail-task-detail__header\">\n <valtimo-task-detail-intermediate-save\n *ngIf=\"enableIntermediateSave\"\n [taskAndProcessLink]=\"obs.taskAndProcessLink\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n ></valtimo-task-detail-intermediate-save>\n\n <button cdsButton=\"ghost\" [iconOnly]=\"true\" (click)=\"onClose()\">\n <svg class=\"cds--btn__icon\" cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </section>\n\n <section\n class=\"valtimo-dossier-detail-task-detail__body\"\n [class.valtimo-dossier-detail-task-detail__body--compact]=\"compactMode$ | async\"\n >\n <div class=\"title-container\">\n <p class=\"valtimo-dossier-detail-task-detail__title\">{{ pageValue()?.title }}</p>\n\n <p class=\"cds--modal-header__label cds--type-delta\">{{ pageValue()?.subtitle }}</p>\n\n <p *ngIf=\"obs.intermediateSaveValue\" class=\"cds--modal-header__label\">\n {{ 'formManagement.intermediateSave.lastSavedBy' | translate }}:\n\n {{\n obs.intermediateSaveValue.editedBy\n ? obs.intermediateSaveValue.editedBy\n : obs.intermediateSaveValue.createdBy\n }}\n\n {{ 'formManagement.intermediateSave.on' | translate }}:\n\n {{\n obs.intermediateSaveValue.editedOn\n ? obs.intermediateSaveValue.editedOn\n : obs.intermediateSaveValue.createdOn\n }}\n </p>\n\n <div class=\"task-actions\">\n @if (obs.task) {\n <valtimo-assign-user-to-task\n [canAssignUserToTask]=\"obs.canAssignUserToTask\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n ></valtimo-assign-user-to-task>\n\n <valtimo-set-task-due-date\n [canModifyTask]=\"obs.canModifyTask\"\n ></valtimo-set-task-due-date>\n }\n </div>\n </div>\n\n <valtimo-task-detail-content\n [taskAndProcessLink]=\"obs.taskAndProcessLink\"\n (activeChange)=\"onActiveChangeEvent($event)\"\n (formSubmit)=\"onFormSubmitEvent()\"\n ></valtimo-task-detail-content>\n </section>\n</div>\n", styles: [".valtimo-dossier-detail-task-detail{width:100%;display:flex;flex-direction:column;background-color:var(--cds-layer);padding:8px 16px 16px}.valtimo-dossier-detail-task-detail__header{display:flex;justify-content:flex-end}.valtimo-dossier-detail-task-detail__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-dossier-detail-task-detail__body{overflow-y:auto;max-height:calc(100vh - 320px)}.valtimo-dossier-detail-task-detail__body--compact{max-height:calc(100vh - 280px)}.valtimo-dossier-detail-task-detail__body .title-container{position:sticky;background-color:var(--cds-layer);top:0;z-index:12;padding-bottom:16px}.valtimo-dossier-detail-task-detail .task-actions{display:flex;flex-wrap:wrap;width:100%;padding-top:8px;gap:8px}\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"] }]
|
|
94
99
|
}], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.PageHeaderService }, { type: i3.PermissionService }, { type: i4.TranslateService }], propDecorators: { taskAndProcessLink: [{
|
|
95
100
|
type: Input
|
|
96
101
|
}], closeEvent: [{
|
|
@@ -102,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
102
107
|
}], formSubmit: [{
|
|
103
108
|
type: Output
|
|
104
109
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1kZXRhaWwtdGFzay1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbC9kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItZGV0YWlsLXRhc2stZGV0YWlsL2Rvc3NpZXItZGV0YWlsLXRhc2stZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBS3RFLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsMEJBQTBCLEVBRTFCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDMUIsbUNBQW1DLEdBQ3BDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGVBQWUsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQW1CakUsTUFBTSxPQUFPLGlDQUFpQztJQUM1QyxJQUFvQixrQkFBa0IsQ0FBQyxLQUFpQztRQUN0RSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsSUFBSSxD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Q0FBbUMsc0xBQ25DLFlBQVksZ01BQ1osVUFBVSw2TkFDVix5QkFBeUI7OzRGQUdoQixpQ0FBaUM7a0JBaEI3QyxTQUFTOytCQUNFLG9DQUFvQyxjQUdsQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIsbUNBQW1DO3dCQUNuQyxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YseUJBQXlCO3FCQUMxQjtpTEFHbUIsa0JBQWtCO3NCQUFyQyxLQUFLO2dCQVNvQixVQUFVO3NCQUFuQyxNQUFNO2dCQUNtQix1QkFBdUI7c0JBQWhELE1BQU07Z0JBQ21CLFlBQVk7c0JBQXJDLE1BQU07Z0JBQ21CLFVBQVU7c0JBQW5DLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7UGVybWlzc2lvblNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2FjY2Vzcy1jb250cm9sJztcbmltcG9ydCB7UGFnZUhlYWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtQcm9jZXNzSW5zdGFuY2VUYXNrfSBmcm9tICdAdmFsdGltby9wcm9jZXNzJztcbmltcG9ydCB7XG4gIEFzc2lnblVzZXJUb1Rhc2tDb21wb25lbnQsXG4gIENBTl9BU1NJR05fVEFTS19QRVJNSVNTSU9OLFxuICBJbnRlcm1lZGlhdGVTdWJtaXNzaW9uLFxuICBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLFxuICBUYXNrRGV0YWlsQ29udGVudENvbXBvbmVudCxcbiAgVGFza0RldGFpbEludGVybWVkaWF0ZVNhdmVDb21wb25lbnQsXG59IGZyb20gJ0B2YWx0aW1vL3Rhc2snO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGUsIEljb25Nb2R1bGV9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7VGFza1dpdGhQcm9jZXNzTGlua30gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcy1saW5rJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBUYXNrRGV0YWlsQ29udGVudENvbXBvbmVudCxcbiAgICBUYXNrRGV0YWlsSW50ZXJtZWRpYXRlU2F2ZUNvbXBvbmVudCxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBBc3NpZ25Vc2VyVG9UYXNrQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyRGV0YWlsc1Rhc2tEZXRhaWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRhc2tBbmRQcm9jZXNzTGluayh2YWx1ZTogVGFza1dpdGhQcm9jZXNzTGluayB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnRhc2tBbmRQcm9jZXNzTGluayQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5wYWdlVmFsdWUuc2V0KHtcbiAgICAgIHRpdGxlOiB2YWx1ZT8udGFzay5uYW1lLFxuICAgICAgc3VidGl0bGU6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd0YXNrRGV0YWlsLnRhc2tDcmVhdGVkJyl9ICR7dmFsdWU/LnRhc2s/LmNyZWF0ZWR9YCxcbiAgICB9KTtcbiAgfVxuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGNsb3NlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgYXNzaWdubWVudE9mVGFza0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbXBhY3RNb2RlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucGFnZUhlYWRlclNlcnZpY2UuY29tcGFjdE1vZGUkO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFza0FuZFByb2Nlc3NMaW5rJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFza1dpdGhQcm9jZXNzTGluayB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFzayQgPSB0aGlzLnRhc2tBbmRQcm9jZXNzTGluayQucGlwZShcbiAgICBtYXAodGFza0FuZFByb2Nlc3NMaW5rID0+IHRhc2tBbmRQcm9jZXNzTGluay50YXNrKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuQXNzaWduVXNlclRvVGFzayQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnRhc2skLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh0YXNrOiBQcm9jZXNzSW5zdGFuY2VUYXNrIHwgbnVsbCkgPT5cbiAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UucmVxdWVzdFBlcm1pc3Npb24oQ0FOX0FTU0lHTl9UQVNLX1BFUk1JU1NJT04sIHtcbiAgICAgICAgcmVzb3VyY2U6IFRBU0tfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UudGFzayxcbiAgICAgICAgaWRlbnRpZmllcjogdGFzaz8uaWQgPz8gJycsXG4gICAgICB9KVxuICAgIClcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IGludGVybWVkaWF0ZVNhdmVWYWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEludGVybWVkaWF0ZVN1Ym1pc3Npb24gfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VWYWx1ZSA9IHNpZ25hbDx7dGl0bGU6IHN0cmluZzsgc3VidGl0bGU6IHN0cmluZ30+KHtcbiAgICB0aXRsZTogJycsXG4gICAgc3VidGl0bGU6ICcnLFxuICB9KTtcbiAgcHVibGljIGVuYWJsZUludGVybWVkaWF0ZVNhdmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlSGVhZGVyU2VydmljZTogUGFnZUhlYWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZW5hYmxlSW50ZXJtZWRpYXRlU2F2ZSA9ICEhdGhpcy5jb25maWdTZXJ2aWNlLmZlYXR1cmVUb2dnbGVzPy5lbmFibGVJbnRlcm1lZGlhdGVTYXZlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdCgpO1xuICAgIHRoaXMub25BY3RpdmVDaGFuZ2VFdmVudChmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgb25DdXJyZW50SW50ZXJtZWRpYXRlU2F2ZUV2ZW50KHZhbHVlOiBJbnRlcm1lZGlhdGVTdWJtaXNzaW9uIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJtZWRpYXRlU2F2ZVZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLm9uQWN0aXZlQ2hhbmdlRXZlbnQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG9uQWN0aXZlQ2hhbmdlRXZlbnQoYWN0aXZlQ2hhbmdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVDaGFuZ2UuZW1pdChhY3RpdmVDaGFuZ2UpO1xuICB9XG5cbiAgcHVibGljIG9uRm9ybVN1Ym1pdEV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdlxuICAqbmdJZj1cIntcbiAgICBjYW5Bc3NpZ25Vc2VyVG9UYXNrOiBjYW5Bc3NpZ25Vc2VyVG9UYXNrJCB8IGFzeW5jLFxuICAgIGludGVybWVkaWF0ZVNhdmVWYWx1ZTogaW50ZXJtZWRpYXRlU2F2ZVZhbHVlJCB8IGFzeW5jLFxuICAgIHRhc2s6IHRhc2skIHwgYXN5bmMsXG4gICAgdGFza0FuZFByb2Nlc3NMaW5rOiB0YXNrQW5kUHJvY2Vzc0xpbmskIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbiAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItZGV0YWlsLXRhc2stZGV0YWlsXCJcbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItZGV0YWlsLXRhc2stZGV0YWlsX19oZWFkZXJcIj5cbiAgICA8dmFsdGltby10YXNrLWRldGFpbC1pbnRlcm1lZGlhdGUtc2F2ZVxuICAgICAgKm5nSWY9XCJlbmFibGVJbnRlcm1lZGlhdGVTYXZlXCJcbiAgICAgIFt0YXNrQW5kUHJvY2Vzc0xpbmtdPVwib2JzLnRhc2tBbmRQcm9jZXNzTGlua1wiXG4gICAgICAoY3VycmVudEludGVybWVkaWF0ZVNhdmVFdmVudCk9XCJvbkN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlRXZlbnQoJGV2ZW50KVwiXG4gICAgPjwvdmFsdGltby10YXNrLWRldGFpbC1pbnRlcm1lZGlhdGUtc2F2ZT5cblxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiBbaWNvbk9ubHldPVwidHJ1ZVwiIChjbGljayk9XCJvbkNsb3NlKClcIj5cbiAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJjbG9zZVwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L3NlY3Rpb24+XG5cbiAgPHNlY3Rpb25cbiAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFzay1kZXRhaWxfX2JvZHlcIlxuICAgIFtjbGFzcy52YWx0aW1vLWRvc3NpZXItZGV0YWlsLXRhc2stZGV0YWlsX19ib2R5LS1jb21wYWN0XT1cImNvbXBhY3RNb2RlJCB8IGFzeW5jXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgIDxwIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbF9fdGl0bGVcIj57eyBwYWdlVmFsdWUoKT8udGl0bGUgfX08L3A+XG5cbiAgICAgIDxwIGNsYXNzPVwiY2RzLS1tb2RhbC1oZWFkZXJfX2xhYmVsIGNkcy0tdHlwZS1kZWx0YVwiPnt7IHBhZ2VWYWx1ZSgpPy5zdWJ0aXRsZSB9fTwvcD5cblxuICAgICAgPHAgKm5nSWY9XCJvYnMuaW50ZXJtZWRpYXRlU2F2ZVZhbHVlXCIgY2xhc3M9XCJjZHMtLW1vZGFsLWhlYWRlcl9fbGFiZWxcIj5cbiAgICAgICAge3sgJ2Zvcm1NYW5hZ2VtZW50LmludGVybWVkaWF0ZVNhdmUubGFzdFNhdmVkQnknIHwgdHJhbnNsYXRlIH19OlxuXG4gICAgICAgIHt7XG4gICAgICAgICAgb2JzLmludGVybWVkaWF0ZVNhdmVWYWx1ZS5lZGl0ZWRCeVxuICAgICAgICAgICAgPyBvYnMuaW50ZXJtZWRpYXRlU2F2ZVZhbHVlLmVkaXRlZEJ5XG4gICAgICAgICAgICA6IG9icy5pbnRlcm1lZGlhdGVTYXZlVmFsdWUuY3JlYXRlZEJ5XG4gICAgICAgIH19XG5cbiAgICAgICAge3sgJ2Zvcm1NYW5hZ2VtZW50LmludGVybWVkaWF0ZVNhdmUub24nIHwgdHJhbnNsYXRlIH19OlxuXG4gICAgICAgIHt7XG4gICAgICAgICAgb2JzLmludGVybWVkaWF0ZVNhdmVWYWx1ZS5lZGl0ZWRPblxuICAgICAgICAgICAgPyBvYnMuaW50ZXJtZWRpYXRlU2F2ZVZhbHVlLmVkaXRlZE9uXG4gICAgICAgICAgICA6IG9icy5pbnRlcm1lZGlhdGVTYXZlVmFsdWUuY3JlYXRlZE9uXG4gICAgICAgIH19XG4gICAgICA8L3A+XG5cbiAgICAgIDx2YWx0aW1vLWFzc2lnbi11c2VyLXRvLXRhc2tcbiAgICAgICAgKm5nSWY9XCJvYnMudGFzayAmJiBvYnMuY2FuQXNzaWduVXNlclRvVGFza1wiXG4gICAgICAgIFt0YXNrSWRdPVwib2JzLnRhc2suaWRcIlxuICAgICAgICBbYXNzaWduZWVJZF09XCJvYnMudGFzay5hc3NpZ25lZVwiXG4gICAgICA+PC92YWx0aW1vLWFzc2lnbi11c2VyLXRvLXRhc2s+XG4gICAgPC9kaXY+XG5cbiAgICA8dmFsdGltby10YXNrLWRldGFpbC1jb250ZW50XG4gICAgICBbdGFza0FuZFByb2Nlc3NMaW5rXT1cIm9icy50YXNrQW5kUHJvY2Vzc0xpbmtcIlxuICAgICAgKGFjdGl2ZUNoYW5nZSk9XCJvbkFjdGl2ZUNoYW5nZUV2ZW50KCRldmVudClcIlxuICAgICAgKGZvcm1TdWJtaXQpPVwib25Gb3JtU3VibWl0RXZlbnQoKVwiXG4gICAgPjwvdmFsdGltby10YXNrLWRldGFpbC1jb250ZW50PlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1kZXRhaWwtdGFzay1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbC9kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItZGV0YWlsLXRhc2stZGV0YWlsL2Rvc3NpZXItZGV0YWlsLXRhc2stZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBS3RFLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUUxQix1QkFBdUIsRUFDdkIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQixtQ0FBbUMsR0FDcEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZUFBZSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBb0JqRSxNQUFNLE9BQU8saUNBQWlDO0lBQzVDLElBQW9CLGtCQUFrQixDQUFDLEtBQWlDO1FBQ3RFLElBQUksQ0FBQyxL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QUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsWUFBcUI7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBeEVVLGlDQUFpQzttR0FBakMsaUNBQWlDLHVTQzdEOUMsMG1HQXVGQSw0N0NEcENJLFlBQVksdUxBQ1osZUFBZSw0RkFDZiwwQkFBMEIsMkxBQzFCLG1DQUFtQyxzTEFDbkMsWUFBWSxnTUFDWixVQUFVLDZOQUNWLHlCQUF5Qix1S0FDekIsdUJBQXVCOzs0RkFHZCxpQ0FBaUM7a0JBakI3QyxTQUFTOytCQUNFLG9DQUFvQyxjQUdsQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIsbUNBQW1DO3dCQUNuQyxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YseUJBQXlCO3dCQUN6Qix1QkFBdUI7cUJBQ3hCO2lMQUdtQixrQkFBa0I7c0JBQXJDLEtBQUs7Z0JBU29CLFVBQVU7c0JBQW5DLE1BQU07Z0JBQ21CLHVCQUF1QjtzQkFBaEQsTUFBTTtnQkFDbUIsWUFBWTtzQkFBckMsTUFBTTtnQkFDbUIsVUFBVTtzQkFBbkMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vYWNjZXNzLWNvbnRyb2wnO1xuaW1wb3J0IHtQYWdlSGVhZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge1Byb2Nlc3NJbnN0YW5jZVRhc2t9IGZyb20gJ0B2YWx0aW1vL3Byb2Nlc3MnO1xuaW1wb3J0IHtcbiAgQXNzaWduVXNlclRvVGFza0NvbXBvbmVudCxcbiAgQ0FOX0FTU0lHTl9UQVNLX1BFUk1JU1NJT04sXG4gIENBTl9NT0RJRllfVEFTS19QRVJNSVNTSU9OLFxuICBJbnRlcm1lZGlhdGVTdWJtaXNzaW9uLFxuICBTZXRUYXNrRHVlRGF0ZUNvbXBvbmVudCxcbiAgVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRSxcbiAgVGFza0RldGFpbENvbnRlbnRDb21wb25lbnQsXG4gIFRhc2tEZXRhaWxJbnRlcm1lZGlhdGVTYXZlQ29tcG9uZW50LFxufSBmcm9tICdAdmFsdGltby90YXNrJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJY29uTW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Rhc2tXaXRoUHJvY2Vzc0xpbmt9IGZyb20gJ0B2YWx0aW1vL3Byb2Nlc3MtbGluayc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFzay1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1kZXRhaWwtdGFzay1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZG9zc2llci1kZXRhaWwtdGFzay1kZXRhaWwuY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgVGFza0RldGFpbENvbnRlbnRDb21wb25lbnQsXG4gICAgVGFza0RldGFpbEludGVybWVkaWF0ZVNhdmVDb21wb25lbnQsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgQXNzaWduVXNlclRvVGFza0NvbXBvbmVudCxcbiAgICBTZXRUYXNrRHVlRGF0ZUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbHNUYXNrRGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIHNldCB0YXNrQW5kUHJvY2Vzc0xpbmsodmFsdWU6IFRhc2tXaXRoUHJvY2Vzc0xpbmsgfCBudWxsKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy50YXNrQW5kUHJvY2Vzc0xpbmskLm5leHQodmFsdWUpO1xuICAgIHRoaXMucGFnZVZhbHVlLnNldCh7XG4gICAgICB0aXRsZTogdmFsdWU/LnRhc2submFtZSxcbiAgICAgIHN1YnRpdGxlOiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndGFza0RldGFpbC50YXNrQ3JlYXRlZCcpfSAke3ZhbHVlPy50YXNrPy5jcmVhdGVkfWAsXG4gICAgfSk7XG4gIH1cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjbG9zZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGFzc2lnbm1lbnRPZlRhc2tDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGFjdGl2ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb21wYWN0TW9kZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnBhZ2VIZWFkZXJTZXJ2aWNlLmNvbXBhY3RNb2RlJDtcbiAgcHVibGljIHJlYWRvbmx5IHRhc2tBbmRQcm9jZXNzTGluayQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhc2tXaXRoUHJvY2Vzc0xpbmsgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHRhc2skID0gdGhpcy50YXNrQW5kUHJvY2Vzc0xpbmskLnBpcGUoXG4gICAgbWFwKHRhc2tBbmRQcm9jZXNzTGluayA9PiB0YXNrQW5kUHJvY2Vzc0xpbmsudGFzaylcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IGNhbkFzc2lnblVzZXJUb1Rhc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy50YXNrJC5waXBlKFxuICAgIHN3aXRjaE1hcCgodGFzazogUHJvY2Vzc0luc3RhbmNlVGFzayB8IG51bGwpID0+XG4gICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9BU1NJR05fVEFTS19QRVJNSVNTSU9OLCB7XG4gICAgICAgIHJlc291cmNlOiBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLnRhc2ssXG4gICAgICAgIGlkZW50aWZpZXI6IHRhc2s/LmlkID8/ICcnLFxuICAgICAgfSlcbiAgICApXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBjYW5Nb2RpZnlUYXNrJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMudGFzayQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHRhc2s6IFByb2Nlc3NJbnN0YW5jZVRhc2sgfCBudWxsKSA9PlxuICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5yZXF1ZXN0UGVybWlzc2lvbihDQU5fTU9ESUZZX1RBU0tfUEVSTUlTU0lPTiwge1xuICAgICAgICByZXNvdXJjZTogVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS50YXNrLFxuICAgICAgICBpZGVudGlmaWVyOiB0YXNrPy5pZCA/PyAnJyxcbiAgICAgIH0pXG4gICAgKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgaW50ZXJtZWRpYXRlU2F2ZVZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SW50ZXJtZWRpYXRlU3VibWlzc2lvbiB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZVZhbHVlID0gc2lnbmFsPHt0aXRsZTogc3RyaW5nOyBzdWJ0aXRsZTogc3RyaW5nfT4oe1xuICAgIHRpdGxlOiAnJyxcbiAgICBzdWJ0aXRsZTogJycsXG4gIH0pO1xuICBwdWJsaWMgZW5hYmxlSW50ZXJtZWRpYXRlU2F2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VIZWFkZXJTZXJ2aWNlOiBQYWdlSGVhZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5lbmFibGVJbnRlcm1lZGlhdGVTYXZlID0gISF0aGlzLmNvbmZpZ1NlcnZpY2UuZmVhdHVyZVRvZ2dsZXM/LmVuYWJsZUludGVybWVkaWF0ZVNhdmU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gICAgdGhpcy5vbkFjdGl2ZUNoYW5nZUV2ZW50KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlRXZlbnQodmFsdWU6IEludGVybWVkaWF0ZVN1Ym1pc3Npb24gfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm1lZGlhdGVTYXZlVmFsdWUkLm5leHQodmFsdWUpO1xuICAgIHRoaXMub25BY3RpdmVDaGFuZ2VFdmVudChmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgb25BY3RpdmVDaGFuZ2VFdmVudChhY3RpdmVDaGFuZ2U6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KGFjdGl2ZUNoYW5nZSk7XG4gIH1cblxuICBwdWJsaWMgb25Gb3JtU3VibWl0RXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtU3VibWl0LmVtaXQoKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2XG4gICpuZ0lmPVwie1xuICAgIGNhbkFzc2lnblVzZXJUb1Rhc2s6IGNhbkFzc2lnblVzZXJUb1Rhc2skIHwgYXN5bmMsXG4gICAgaW50ZXJtZWRpYXRlU2F2ZVZhbHVlOiBpbnRlcm1lZGlhdGVTYXZlVmFsdWUkIHwgYXN5bmMsXG4gICAgdGFzazogdGFzayQgfCBhc3luYyxcbiAgICB0YXNrQW5kUHJvY2Vzc0xpbms6IHRhc2tBbmRQcm9jZXNzTGluayQgfCBhc3luYyxcbiAgICBjYW5Nb2RpZnlUYXNrOiBjYW5Nb2RpZnlUYXNrJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4gIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbFwiXG4+XG4gIDxzZWN0aW9uIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbF9faGVhZGVyXCI+XG4gICAgPHZhbHRpbW8tdGFzay1kZXRhaWwtaW50ZXJtZWRpYXRlLXNhdmVcbiAgICAgICpuZ0lmPVwiZW5hYmxlSW50ZXJtZWRpYXRlU2F2ZVwiXG4gICAgICBbdGFza0FuZFByb2Nlc3NMaW5rXT1cIm9icy50YXNrQW5kUHJvY2Vzc0xpbmtcIlxuICAgICAgKGN1cnJlbnRJbnRlcm1lZGlhdGVTYXZlRXZlbnQpPVwib25DdXJyZW50SW50ZXJtZWRpYXRlU2F2ZUV2ZW50KCRldmVudClcIlxuICAgID48L3ZhbHRpbW8tdGFzay1kZXRhaWwtaW50ZXJtZWRpYXRlLXNhdmU+XG5cbiAgICA8YnV0dG9uIGNkc0J1dHRvbj1cImdob3N0XCIgW2ljb25Pbmx5XT1cInRydWVcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiY2xvc2VcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgPC9zZWN0aW9uPlxuXG4gIDxzZWN0aW9uXG4gICAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItZGV0YWlsLXRhc2stZGV0YWlsX19ib2R5XCJcbiAgICBbY2xhc3MudmFsdGltby1kb3NzaWVyLWRldGFpbC10YXNrLWRldGFpbF9fYm9keS0tY29tcGFjdF09XCJjb21wYWN0TW9kZSQgfCBhc3luY1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyXCI+XG4gICAgICA8cCBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFzay1kZXRhaWxfX3RpdGxlXCI+e3sgcGFnZVZhbHVlKCk/LnRpdGxlIH19PC9wPlxuXG4gICAgICA8cCBjbGFzcz1cImNkcy0tbW9kYWwtaGVhZGVyX19sYWJlbCBjZHMtLXR5cGUtZGVsdGFcIj57eyBwYWdlVmFsdWUoKT8uc3VidGl0bGUgfX08L3A+XG5cbiAgICAgIDxwICpuZ0lmPVwib2JzLmludGVybWVkaWF0ZVNhdmVWYWx1ZVwiIGNsYXNzPVwiY2RzLS1tb2RhbC1oZWFkZXJfX2xhYmVsXCI+XG4gICAgICAgIHt7ICdmb3JtTWFuYWdlbWVudC5pbnRlcm1lZGlhdGVTYXZlLmxhc3RTYXZlZEJ5JyB8IHRyYW5zbGF0ZSB9fTpcblxuICAgICAgICB7e1xuICAgICAgICAgIG9icy5pbnRlcm1lZGlhdGVTYXZlVmFsdWUuZWRpdGVkQnlcbiAgICAgICAgICAgID8gb2JzLmludGVybWVkaWF0ZVNhdmVWYWx1ZS5lZGl0ZWRCeVxuICAgICAgICAgICAgOiBvYnMuaW50ZXJtZWRpYXRlU2F2ZVZhbHVlLmNyZWF0ZWRCeVxuICAgICAgICB9fVxuXG4gICAgICAgIHt7ICdmb3JtTWFuYWdlbWVudC5pbnRlcm1lZGlhdGVTYXZlLm9uJyB8IHRyYW5zbGF0ZSB9fTpcblxuICAgICAgICB7e1xuICAgICAgICAgIG9icy5pbnRlcm1lZGlhdGVTYXZlVmFsdWUuZWRpdGVkT25cbiAgICAgICAgICAgID8gb2JzLmludGVybWVkaWF0ZVNhdmVWYWx1ZS5lZGl0ZWRPblxuICAgICAgICAgICAgOiBvYnMuaW50ZXJtZWRpYXRlU2F2ZVZhbHVlLmNyZWF0ZWRPblxuICAgICAgICB9fVxuICAgICAgPC9wPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGFzay1hY3Rpb25zXCI+XG4gICAgICAgIEBpZiAob2JzLnRhc2spIHtcbiAgICAgICAgICA8dmFsdGltby1hc3NpZ24tdXNlci10by10YXNrXG4gICAgICAgICAgICBbY2FuQXNzaWduVXNlclRvVGFza109XCJvYnMuY2FuQXNzaWduVXNlclRvVGFza1wiXG4gICAgICAgICAgICBbdGFza0lkXT1cIm9icy50YXNrLmlkXCJcbiAgICAgICAgICAgIFthc3NpZ25lZUlkXT1cIm9icy50YXNrLmFzc2lnbmVlXCJcbiAgICAgICAgICA+PC92YWx0aW1vLWFzc2lnbi11c2VyLXRvLXRhc2s+XG5cbiAgICAgICAgICA8dmFsdGltby1zZXQtdGFzay1kdWUtZGF0ZVxuICAgICAgICAgICAgW2Nhbk1vZGlmeVRhc2tdPVwib2JzLmNhbk1vZGlmeVRhc2tcIlxuICAgICAgICAgID48L3ZhbHRpbW8tc2V0LXRhc2stZHVlLWRhdGU+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHZhbHRpbW8tdGFzay1kZXRhaWwtY29udGVudFxuICAgICAgW3Rhc2tBbmRQcm9jZXNzTGlua109XCJvYnMudGFza0FuZFByb2Nlc3NMaW5rXCJcbiAgICAgIChhY3RpdmVDaGFuZ2UpPVwib25BY3RpdmVDaGFuZ2VFdmVudCgkZXZlbnQpXCJcbiAgICAgIChmb3JtU3VibWl0KT1cIm9uRm9ybVN1Ym1pdEV2ZW50KClcIlxuICAgID48L3ZhbHRpbW8tdGFzay1kZXRhaWwtY29udGVudD5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|