@gravitee/ui-policy-studio-angular 7.11.0-renovate-angular-ade6562 → 7.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/esm2020/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.mjs +4 -4
- package/esm2020/lib/components/flow-details/gio-ps-flow-details.component.mjs +17 -5
- package/esm2020/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.mjs +4 -4
- package/esm2020/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.mjs +56 -14
- package/esm2020/lib/components/flow-details-phase-policy/gio-ps-flow-details-phase-policy.component.mjs +28 -11
- package/esm2020/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.mjs +4 -4
- package/esm2020/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.mjs +4 -4
- package/esm2020/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.mjs +4 -4
- package/esm2020/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +4 -4
- package/esm2020/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs +61 -0
- package/esm2020/lib/components/policy-form/gio-ps-policy-form.component.mjs +30 -0
- package/esm2020/lib/components/policy-form-dialog/gio-ps-policy-form-dialog.component.mjs +43 -0
- package/esm2020/lib/gio-policy-studio.component.mjs +8 -5
- package/esm2020/lib/gio-policy-studio.module.mjs +15 -6
- package/esm2020/lib/models/ConnectorsInfo.fixture.mjs +152 -0
- package/esm2020/lib/models/flow/Flow.fixture.mjs +66 -0
- package/esm2020/lib/models/flow/FlowExecution.fixture.mjs +43 -0
- package/esm2020/lib/models/flow/Step.fixture.mjs +70 -0
- package/esm2020/lib/models/flow/index-testing.mjs +19 -0
- package/esm2020/lib/models/index-testing.mjs +20 -0
- package/esm2020/lib/models/index.mjs +2 -1
- package/esm2020/lib/models/plan/Plan.fixture.mjs +31 -0
- package/esm2020/lib/models/plan/index-testing.mjs +17 -0
- package/esm2020/lib/models/policy/Policy.fixture.mjs +133 -0
- package/esm2020/lib/models/policy/Policy.mjs +2 -0
- package/esm2020/lib/models/policy/index-testing.mjs +17 -0
- package/esm2020/lib/models/policy/index.mjs +17 -0
- package/esm2020/testing/lib/components/flow-details-phase-policy/gio-ps-flow-details-phase-policy.harness.mjs +6 -1
- package/esm2020/testing/lib/models/index-testing.mjs +2 -1
- package/esm2020/testing/lib/models/index.mjs +2 -1
- package/esm2020/testing/lib/models/policy/Policy.fixture.mjs +133 -0
- package/esm2020/testing/lib/models/policy/Policy.mjs +2 -0
- package/esm2020/testing/lib/models/policy/index-testing.mjs +17 -0
- package/esm2020/testing/lib/models/policy/index.mjs +17 -0
- package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs +149 -1
- package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2015/gravitee-ui-policy-studio-angular.mjs +752 -48
- package/fesm2015/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs +154 -1
- package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2020/gravitee-ui-policy-studio-angular.mjs +808 -48
- package/fesm2020/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/lib/components/flow-details/gio-ps-flow-details.component.d.ts +4 -2
- package/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.d.ts +11 -3
- package/lib/components/flow-details-phase-policy/gio-ps-flow-details-phase-policy.component.d.ts +3 -0
- package/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.d.ts +21 -0
- package/lib/components/policy-form/gio-ps-policy-form.component.d.ts +8 -0
- package/lib/components/policy-form-dialog/gio-ps-policy-form-dialog.component.d.ts +17 -0
- package/lib/gio-policy-studio.component.d.ts +3 -2
- package/lib/gio-policy-studio.module.d.ts +16 -13
- package/lib/models/ConnectorsInfo.fixture.d.ts +10 -0
- package/lib/models/flow/Flow.fixture.d.ts +3 -0
- package/lib/models/flow/FlowExecution.fixture.d.ts +3 -0
- package/lib/models/flow/Step.fixture.d.ts +4 -0
- package/lib/models/flow/index-testing.d.ts +3 -0
- package/lib/models/index-testing.d.ts +4 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/models/plan/Plan.fixture.d.ts +2 -0
- package/lib/models/plan/index-testing.d.ts +1 -0
- package/lib/models/policy/Policy.d.ts +11 -0
- package/lib/models/policy/Policy.fixture.d.ts +4 -0
- package/lib/models/policy/index-testing.d.ts +1 -0
- package/lib/models/policy/index.d.ts +1 -0
- package/package.json +1 -1
- package/testing/lib/components/flow-details-phase-policy/gio-ps-flow-details-phase-policy.harness.d.ts +1 -0
- package/testing/lib/models/index-testing.d.ts +1 -0
- package/testing/lib/models/index.d.ts +1 -0
- package/testing/lib/models/policy/Policy.d.ts +11 -0
- package/testing/lib/models/policy/Policy.fixture.d.ts +4 -0
- package/testing/lib/models/policy/index-testing.d.ts +1 -0
- package/testing/lib/models/policy/index.d.ts +1 -0
|
@@ -155,9 +155,9 @@ export class GioPolicyStudioFlowsMenuComponent {
|
|
|
155
155
|
.subscribe();
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
|
-
GioPolicyStudioFlowsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
159
|
-
GioPolicyStudioFlowsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
158
|
+
GioPolicyStudioFlowsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
159
|
+
GioPolicyStudioFlowsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioFlowsMenuComponent, selector: "gio-ps-flows-menu", inputs: { apiType: "apiType", flowExecution: "flowExecution", flowsGroups: "flowsGroups", selectedFlow: "selectedFlow", entrypoints: "entrypoints" }, outputs: { selectedFlowChange: "selectedFlowChange", flowsGroupsChange: "flowsGroupsChange", flowExecutionChange: "flowExecutionChange" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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\n<div class=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button class=\"header__configBtn_edit\" mat-stroked-button mat-icon-button (click)=\"onConfigureExecution(flowExecution)\">\n <mat-icon svgIcon=\"gio:settings\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"list\">\n <div *ngFor=\"let flowsGroup of flowsGroupsVMSelected\" class=\"list__flowsGroup\">\n <div class=\"list__flowsGroup__header\">\n <div class=\"list__flowsGroup__header__label\">\n <mat-icon *ngIf=\"flowsGroup._icon\" [svgIcon]=\"flowsGroup._icon\"></mat-icon>\n <span>{{ flowsGroup.name }}</span>\n </div>\n <div class=\"list__flowsGroup__header__addBtn\">\n <button mat-icon-button (click)=\"onAddFlow(flowsGroup)\"><mat-icon svgIcon=\"gio:plus\" matTooltip=\"New flow\"></mat-icon></button>\n </div>\n </div>\n\n <div\n *ngFor=\"let flow of flowsGroup.flows\"\n class=\"list__flowsGroup__flow\"\n [class.selected]=\"flow.selected\"\n (click)=\"selectFlow(flowsGroup._id, flow._id)\"\n (mouseout)=\"flow.mouseOver = false\"\n (mouseover)=\"flow.mouseOver = true\"\n >\n <div *ngIf=\"flow.name\" class=\"list__flowsGroup__flow__name\" [attr.title]=\"flow.name\">\n {{ flow.name }}\n </div>\n <div class=\"list__flowsGroup__flow__infos\">\n <div class=\"list__flowsGroup__flow__infos__badges\">\n <span *ngFor=\"let badge of flow.badges\" class=\"list__flowsGroup__flow__infos__badges__badge\" [ngClass]=\"badge.class\">{{\n badge.label\n }}</span>\n </div>\n <div class=\"list__flowsGroup__flow__infos__pathOrChannelLabel\">{{ flow.pathOrChannelLabel }}</div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;max-height:100%;flex-direction:column;padding-top:16px}.header{display:flex;align-items:center;padding:0 16px;margin-bottom:16px}.header__label{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{margin-left:8px}.list{padding:0 16px;overflow-y:overlay}.list__flowsGroup{display:flex;flex-direction:column;padding-bottom:8px;gap:8px}.list__flowsGroup__header{display:flex;align-items:center;padding:8px 8px 8px 10px;border-radius:8px;background-color:#cdc5f7}.list__flowsGroup__header__label{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;gap:8px}.list__flowsGroup__header__label>mat-icon{width:22px;height:22px;flex:0 0 auto}.list__flowsGroup__header__label>span{display:-webkit-box;overflow:hidden;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.list__flowsGroup__header__addBtn{margin-left:8px}.list__flowsGroup__flow{display:flex;height:68px;flex-direction:column;justify-content:center;padding:7px;border:1px solid #d3d5dc;border-radius:8px;gap:8px}.list__flowsGroup__flow:hover,.list__flowsGroup__flow.selected{padding:6px;border:2px solid #876fec;cursor:pointer}.list__flowsGroup__flow__name{overflow:hidden;padding-left:4px;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos{display:flex;align-items:center}.list__flowsGroup__flow__infos__badges{flex:0 0 auto}.list__flowsGroup__flow__infos__badges__badge{width:auto}.list__flowsGroup__flow__infos__pathOrChannelLabel{flex:1 1 auto}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, decorators: [{
|
|
161
161
|
type: Component,
|
|
162
162
|
args: [{ selector: 'gio-ps-flows-menu', template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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\n<div class=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button class=\"header__configBtn_edit\" mat-stroked-button mat-icon-button (click)=\"onConfigureExecution(flowExecution)\">\n <mat-icon svgIcon=\"gio:settings\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"list\">\n <div *ngFor=\"let flowsGroup of flowsGroupsVMSelected\" class=\"list__flowsGroup\">\n <div class=\"list__flowsGroup__header\">\n <div class=\"list__flowsGroup__header__label\">\n <mat-icon *ngIf=\"flowsGroup._icon\" [svgIcon]=\"flowsGroup._icon\"></mat-icon>\n <span>{{ flowsGroup.name }}</span>\n </div>\n <div class=\"list__flowsGroup__header__addBtn\">\n <button mat-icon-button (click)=\"onAddFlow(flowsGroup)\"><mat-icon svgIcon=\"gio:plus\" matTooltip=\"New flow\"></mat-icon></button>\n </div>\n </div>\n\n <div\n *ngFor=\"let flow of flowsGroup.flows\"\n class=\"list__flowsGroup__flow\"\n [class.selected]=\"flow.selected\"\n (click)=\"selectFlow(flowsGroup._id, flow._id)\"\n (mouseout)=\"flow.mouseOver = false\"\n (mouseover)=\"flow.mouseOver = true\"\n >\n <div *ngIf=\"flow.name\" class=\"list__flowsGroup__flow__name\" [attr.title]=\"flow.name\">\n {{ flow.name }}\n </div>\n <div class=\"list__flowsGroup__flow__infos\">\n <div class=\"list__flowsGroup__flow__infos__badges\">\n <span *ngFor=\"let badge of flow.badges\" class=\"list__flowsGroup__flow__infos__badges__badge\" [ngClass]=\"badge.class\">{{\n badge.label\n }}</span>\n </div>\n <div class=\"list__flowsGroup__flow__infos__pathOrChannelLabel\">{{ flow.pathOrChannelLabel }}</div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;max-height:100%;flex-direction:column;padding-top:16px}.header{display:flex;align-items:center;padding:0 16px;margin-bottom:16px}.header__label{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{margin-left:8px}.list{padding:0 16px;overflow-y:overlay}.list__flowsGroup{display:flex;flex-direction:column;padding-bottom:8px;gap:8px}.list__flowsGroup__header{display:flex;align-items:center;padding:8px 8px 8px 10px;border-radius:8px;background-color:#cdc5f7}.list__flowsGroup__header__label{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;gap:8px}.list__flowsGroup__header__label>mat-icon{width:22px;height:22px;flex:0 0 auto}.list__flowsGroup__header__label>span{display:-webkit-box;overflow:hidden;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.list__flowsGroup__header__addBtn{margin-left:8px}.list__flowsGroup__flow{display:flex;height:68px;flex-direction:column;justify-content:center;padding:7px;border:1px solid #d3d5dc;border-radius:8px;gap:8px}.list__flowsGroup__flow:hover,.list__flowsGroup__flow.selected{padding:6px;border:2px solid #876fec;cursor:pointer}.list__flowsGroup__flow__name{overflow:hidden;padding-left:4px;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos{display:flex;align-items:center}.list__flowsGroup__flow__infos__badges{flex:0 0 auto}.list__flowsGroup__flow__infos__badges__badge{width:auto}.list__flowsGroup__flow__infos__pathOrChannelLabel{flex:1 1 auto}\n"] }]
|
|
163
163
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { apiType: [{
|
|
@@ -177,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
177
177
|
}], flowExecutionChange: [{
|
|
178
178
|
type: Output
|
|
179
179
|
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRW5DLE9BQU8sRUFDTCw2Q0FBNkMsR0FFOUMsTUFBTSx3RkFBd0YsQ0FBQztBQUdoRyxPQUFPLEVBQ0wsMkNBQTJDLEdBRTVDLE1BQU0sb0ZBQW9GLENBQUM7QUFFNUYsT0FBTyxFQUNMLCtDQUErQyxHQUVoRCxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7O0FBcUJuRixNQUFNLE9BQU8saUNBQWlDO0lBMkI1QyxZQUE2QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBbkIxQyxnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFHaEMsaUJBQVksR0FBWSxTQUFTLENBQUM7UUFHbEMsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO1FBR2xDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHaEQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFHdEQsd0JBQW1C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QUksRUFBRSxhQUFhO1lBQ25CLEVBQUUsRUFBRSw4QkFBOEI7U0FDbkMsQ0FDRjthQUNBLFdBQVcsRUFBRSxDQUFDO1FBRWpCLFlBQVk7YUFDVCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OEhBM0tVLGlDQUFpQztrSEFBakMsaUNBQWlDLCtXQ3ZEOUMsMmpGQStEQTsyRkRSYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UsbUJBQW1CO2dHQU10QixPQUFPO3NCQURiLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxufSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbG93R3JvdXBWTSwgRmxvd1ZNIH0gZnJvbSAnLi4vLi4vZ2lvLXBvbGljeS1zdHVkaW8ubW9kZWwnO1xuaW1wb3J0IHsgQXBpVHlwZSwgQ2hhbm5lbFNlbGVjdG9yLCBDb25uZWN0b3JJbmZvLCBGbG93RXhlY3V0aW9uLCBIdHRwU2VsZWN0b3IsIE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LXByb3h5LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZm9ybS1kaWFsb2ctcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRmxvd0dyb3VwTWVudVZNIGV4dGVuZHMgRmxvd0dyb3VwVk0ge1xuICBmbG93czogRmxvd01lbnVWTVtdO1xufVxuXG5pbnRlcmZhY2UgRmxvd01lbnVWTSBleHRlbmRzIEZsb3dWTSB7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBtb3VzZU92ZXI6IGJvb2xlYW47XG4gIGJhZGdlczoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgY2xhc3M6IHN0cmluZztcbiAgfVtdO1xuICBwYXRoT3JDaGFubmVsTGFiZWw6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBzLWZsb3dzLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93c01lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXBpVHlwZSE6IEFwaVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZsb3dFeGVjdXRpb24hOiBGbG93RXhlY3V0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3c/OiBGbG93Vk0gPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVudHJ5cG9pbnRzOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkRmxvd0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd1ZNPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dHcm91cFZNW10+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93RXhlY3V0aW9uPigpO1xuXG4gIHB1YmxpYyBmbG93c0dyb3Vwc1ZNU2VsZWN0ZWQ6IEZsb3dHcm91cE1lbnVWTVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZykge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZsb3dzR3JvdXBzIHx8IGNoYW5nZXMuc2VsZWN0ZWRGbG93KSB7XG4gICAgICB0aGlzLmZsb3dzR3JvdXBzVk1TZWxlY3RlZCA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKS5tYXAoZmxvd0dyb3VwID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5mbG93R3JvdXAsXG4gICAgICAgICAgZmxvd3M6IGZsb3dHcm91cC5mbG93cy5tYXAoZmxvdyA9PiB7XG4gICAgICAgICAgICBjb25zdCBiYWRnZXM6IEZsb3dNZW51Vk1bJ2JhZGdlcyddID0gW107XG4gICAgICAgICAgICBsZXQgcGF0aE9yQ2hhbm5lbExhYmVsID0gJyc7XG4gICAgICAgICAgICBjb25zdCBjaGFubmVsU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NIQU5ORUwnKSBhcyBDaGFubmVsU2VsZWN0b3I7XG4gICAgICAgICAgICBpZiAoY2hhbm5lbFNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvblRvQmFkZ2U6IFJlY29yZDxPcGVyYXRpb24sIHN0cmluZz4gPSB7XG4gICAgICAgICAgICAgICAgUFVCTElTSDogJ1BVQicsXG4gICAgICAgICAgICAgICAgU1VCU0NSSUJFOiAnU1VCJyxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uQmFkZ2VzID0gKGNoYW5uZWxTZWxlY3Rvci5vcGVyYXRpb25zID8/IFtdKVxuICAgICAgICAgICAgICAgIC5tYXAob3BlcmF0aW9uID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogb3BlcmF0aW9uVG9CYWRnZVtvcGVyYXRpb25dLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubGFiZWwubG9jYWxlQ29tcGFyZShiLmxhYmVsKSk7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbkJhZGdlcyAmJiBiYWRnZXMucHVzaCguLi5vcGVyYXRpb25CYWRnZXMpO1xuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtjaGFubmVsU2VsZWN0b3IuY2hhbm5lbH0ke2NoYW5uZWxTZWxlY3Rvci5jaGFubmVsT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaHR0cFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdIVFRQJykgYXMgSHR0cFNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGh0dHBTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAvLyBLZWVwIG9ubHkgMiBmaXJzdCBodHRwIG1ldGhvZHMgYW5kIGFkZCArWCBiYWRnZSBpZiB0aGVyZSBhcmUgbW9yZVxuICAgICAgICAgICAgICBjb25zdCBodHRwTWV0aG9kc1RvS2VlcCA9IGh0dHBTZWxlY3Rvci5tZXRob2RzPy5zbGljZSgwLCAyKTtcbiAgICAgICAgICAgICAgY29uc3QgaHR0cE1ldGhvZHNMZW5ndGggPSBodHRwU2VsZWN0b3IubWV0aG9kcz8ubGVuZ3RoO1xuICAgICAgICAgICAgICBodHRwTWV0aG9kc1RvS2VlcCAmJlxuICAgICAgICAgICAgICAgIGJhZGdlcy5wdXNoKC4uLmh0dHBNZXRob2RzVG9LZWVwLm1hcChtZXRob2QgPT4gKHsgbGFiZWw6IG1ldGhvZCwgY2xhc3M6IGBnaW8tbWV0aG9kLWJhZGdlLSR7bWV0aG9kLnRvTG93ZXJDYXNlKCl9YCB9KSkpO1xuICAgICAgICAgICAgICBpZiAoaHR0cE1ldGhvZHNMZW5ndGggJiYgaHR0cE1ldGhvZHNMZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAgICAgYmFkZ2VzPy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBgKyR7aHR0cE1ldGhvZHNMZW5ndGggLSAyfWAsXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaHR0cE1ldGhvZHNMZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBiYWRnZXM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBTEwnLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtodHRwU2VsZWN0b3IucGF0aH0ke2h0dHBTZWxlY3Rvci5wYXRoT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnLyoqJyA6ICcnfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmZsb3csXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkRmxvdz8uX2lkID09PSBmbG93Ll9pZCxcbiAgICAgICAgICAgICAgbW91c2VPdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgYmFkZ2VzLFxuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEZsb3coZ3JvdXBJZDogc3RyaW5nLCBmbG93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZsb3cgPSB0aGlzLmZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBncm91cElkKT8uZmxvd3MuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuICAgIGlmIChmbG93KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxvd0NoYW5nZS5lbWl0KGZsb3cpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFkZEZsb3coZmxvd0dyb3VwOiBGbG93R3JvdXBWTSk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9XG4gICAgICB0aGlzLmFwaVR5cGUgPT09ICdNRVNTQUdFJ1xuICAgICAgICA/IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgICAgPihHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBlbnRyeXBvaW50czogdGhpcy5lbnRyeXBvaW50cyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICA6IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSwgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQ+KFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgZmxvdzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgICBpZDogJ2dpb1BzRmxvd0Zvcm1EaWFsb2cnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoY3JlYXRlZE9yRWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWNyZWF0ZWRPckVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBlZGl0ZWRGbG93c0dyb3VwcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKTtcblxuICAgICAgICAgIGNvbnN0IGZsb3dzR3JvdXBUb0VkaXQgPSBlZGl0ZWRGbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZmxvd0dyb3VwLl9pZCk7XG4gICAgICAgICAgaWYgKCFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgZ3JvdXAgJHtmbG93R3JvdXAuX2lkfSBub3QgZm91bmRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvd3NHcm91cFRvRWRpdC5mbG93cy5wdXNoKGNyZWF0ZWRPckVkaXRlZCk7XG5cbiAgICAgICAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQoZWRpdGVkRmxvd3NHcm91cHMpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG93Q2hhbmdlLmVtaXQoY3JlYXRlZE9yRWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbjogRmxvd0V4ZWN1dGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dEYXRhLCBGbG93RXhlY3V0aW9uIHwgdW5kZWZpbmVkPihcbiAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBmbG93RXhlY3V0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICBpZDogJ2dpb1BzRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2cnLFxuICAgICAgICB9LFxuICAgICAgKVxuICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZsb3dFeGVjdXRpb25DaGFuZ2UuZW1pdChlZGl0ZWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gICAgXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gICAgXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgICBcbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG5cbjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGFiZWxcIj5cbiAgICBGbG93cyA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzppbmZvXCIgbWF0VG9vbHRpcD1cIkZsb3dzIGFsbG93IHlvdSB0byBhcHBseSBkaWZmZXJlbnQgcG9saWNpZXMgb24geW91ciBBUEkgZXZlbnQgcGhhc2VzXCI+PC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0blwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0bl9lZGl0XCIgbWF0LXN0cm9rZWQtYnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbilcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnNldHRpbmdzXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImxpc3RcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZmxvd3NHcm91cCBvZiBmbG93c0dyb3Vwc1ZNU2VsZWN0ZWRcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19sYWJlbFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJmbG93c0dyb3VwLl9pY29uXCIgW3N2Z0ljb25dPVwiZmxvd3NHcm91cC5faWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZsb3dzR3JvdXAubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlcl9fYWRkQnRuXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkFkZEZsb3coZmxvd3NHcm91cClcIj48bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCIgbWF0VG9vbHRpcD1cIk5ldyBmbG93XCI+PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZsb3cgb2YgZmxvd3NHcm91cC5mbG93c1wiXG4gICAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImZsb3cuc2VsZWN0ZWRcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEZsb3coZmxvd3NHcm91cC5faWQsIGZsb3cuX2lkKVwiXG4gICAgICAobW91c2VvdXQpPVwiZmxvdy5tb3VzZU92ZXIgPSBmYWxzZVwiXG4gICAgICAobW91c2VvdmVyKT1cImZsb3cubW91c2VPdmVyID0gdHJ1ZVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImZsb3cubmFtZVwiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19fbmFtZVwiIFthdHRyLnRpdGxlXT1cImZsb3cubmFtZVwiPlxuICAgICAgICB7eyBmbG93Lm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzXCI+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGJhZGdlIG9mIGZsb3cuYmFkZ2VzXCIgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzX19iYWRnZVwiIFtuZ0NsYXNzXT1cImJhZGdlLmNsYXNzXCI+e3tcbiAgICAgICAgICAgIGJhZGdlLmxhYmVsXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX3BhdGhPckNoYW5uZWxMYWJlbFwiPnt7IGZsb3cucGF0aE9yQ2hhbm5lbExhYmVsIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRW5DLE9BQU8sRUFDTCw2Q0FBNkMsR0FFOUMsTUFBTSx3RkFBd0YsQ0FBQztBQUdoRyxPQUFPLEVBQ0wsMkNBQTJDLEdBRTVDLE1BQU0sb0ZBQW9GLENBQUM7QUFFNUYsT0FBTyxFQUNMLCtDQUErQyxHQUVoRCxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7O0FBcUJuRixNQUFNLE9BQU8saUNBQWlDO0lBMkI1QyxZQUE2QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBbkIxQyxnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFHaEMsaUJBQVksR0FBWSxTQUFTLENBQUM7UUFHbEMsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO1FBR2xDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHaEQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFHdEQsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFeEQsMEJBQXFCLEdBQXNCLEVBQUUsQ0FBQztJQUVELENBQUM7SUFFOUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQy9DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkUsT0FBTztvQkFDTCxHQUFHLFNBQVM7b0JBQ1osS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNoQyxNQUFNLE1BQU0sR0FBeUIsRUFBRSxDQUFDO3dCQUN4QyxJQUFJLGtCQUFrQixHQUFHLEVBQUUsQ0FBQzt3QkFDNUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBb0IsQ0FBQzt3QkFDM0YsSUFBSSxlQUFlLEVBQUU7NEJBQ25CLE1BQU0sZ0JBQWdCLEdBQThCO2dDQUNsRCxPQUFPLEVBQUUsS0FBSztnQ0FDZCxTQUFTLEVBQUUsS0FBSzs2QkFDakIsQ0FBQzs0QkFDRixNQUFNLGVBQWUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO2lDQUN2RCxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNqQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO2dDQUNsQyxLQUFLLEVBQUUsbUJBQW1COzZCQUMzQixDQUFDLENBQUM7aUNBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7NEJBQ2xELGVBQWUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7NEJBQ25ELGtCQUFrQixHQUFHLEdBQUcsZUFBZSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsZUFBZSxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt5QkFDbkg7d0JBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBaUIsQ0FBQzt3QkFDbEYsSUFBSSxZQUFZLEVBQUU7NEJBQ2hCLG9FQUFvRTs0QkFDcEUsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQzVELE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7NEJBQ3ZELGlCQUFpQjtnQ0FDZixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUMxSCxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixHQUFHLENBQUMsRUFBRTtnQ0FDOUMsTUFBTSxFQUFFLElBQUksQ0FBQztvQ0FDWCxLQUFLLEVBQUUsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUU7b0NBQ2xDLEtBQUssRUFBRSxtQkFBbUI7aUNBQzNCLENBQUMsQ0FBQzs2QkFDSjs0QkFDRCxJQUFJLGlCQUFpQixLQUFLLENBQUMsRUFBRTtnQ0FDM0IsTUFBTSxFQUFFLElBQUksQ0FBQztvQ0FDWCxLQUFLLEVBQUUsS0FBSztvQ0FDWixLQUFLLEVBQUUsbUJBQW1CO2lDQUMzQixDQUFDLENBQUM7NkJBQ0o7NEJBRUQsa0JBQWtCLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxZQUFZLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO3lCQUN4Rzt3QkFFRCxPQUFPOzRCQUNMLEdBQUcsSUFBSTs0QkFDUCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUc7NEJBQzdDLFNBQVMsRUFBRSxLQUFLOzRCQUNoQixNQUFNOzRCQUNOLGtCQUFrQjt5QkFDbkIsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0gsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUNoRyxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRU0sU0FBUyxDQUFDLFNBQXNCO1FBQ3JDLE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO2lCQUNYLElBQUksQ0FJSCw2Q0FBNkMsRUFBRTtnQkFDL0MsSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxTQUFTO29CQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztpQkFDOUI7Z0JBQ0QsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEVBQUUsRUFBRSxxQkFBcUI7YUFDMUIsQ0FBQztpQkFDRCxXQUFXLEVBQUU7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO2lCQUNYLElBQUksQ0FDSCwyQ0FBMkMsRUFDM0M7Z0JBQ0UsSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxTQUFTO2lCQUNoQjtnQkFDRCxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsRUFBRSxFQUFFLHFCQUFxQjthQUMxQixDQUNGO2lCQUNBLFdBQVcsRUFBRSxDQUFDO1FBRXZCLFlBQVk7YUFDVCxJQUFJLENBQ0gsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3BCLE9BQU87YUFDUjtZQUNELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV0RCxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLFNBQVMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO2FBQzFEO1lBQ0QsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUU3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxhQUE0QjtRQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUzthQUNoQyxJQUFJLENBQ0gsK0NBQStDLEVBQy9DO1lBQ0UsSUFBSSxFQUFFO2dCQUNKLGFBQWE7YUFDZDtZQUNELElBQUksRUFBRSxhQUFhO1lBQ25CLEVBQUUsRUFBRSw4QkFBOEI7U0FDbkMsQ0FDRjthQUNBLFdBQVcsRUFBRSxDQUFDO1FBRWpCLFlBQVk7YUFDVCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7K0hBM0tVLGlDQUFpQzttSEFBakMsaUNBQWlDLCtXQ3ZEOUMsMmpGQStEQTs0RkRSYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UsbUJBQW1CO2dHQU10QixPQUFPO3NCQURiLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxufSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbG93R3JvdXBWTSwgRmxvd1ZNIH0gZnJvbSAnLi4vLi4vZ2lvLXBvbGljeS1zdHVkaW8ubW9kZWwnO1xuaW1wb3J0IHsgQXBpVHlwZSwgQ2hhbm5lbFNlbGVjdG9yLCBDb25uZWN0b3JJbmZvLCBGbG93RXhlY3V0aW9uLCBIdHRwU2VsZWN0b3IsIE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LXByb3h5LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZm9ybS1kaWFsb2ctcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRmxvd0dyb3VwTWVudVZNIGV4dGVuZHMgRmxvd0dyb3VwVk0ge1xuICBmbG93czogRmxvd01lbnVWTVtdO1xufVxuXG5pbnRlcmZhY2UgRmxvd01lbnVWTSBleHRlbmRzIEZsb3dWTSB7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBtb3VzZU92ZXI6IGJvb2xlYW47XG4gIGJhZGdlczoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgY2xhc3M6IHN0cmluZztcbiAgfVtdO1xuICBwYXRoT3JDaGFubmVsTGFiZWw6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBzLWZsb3dzLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93c01lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXBpVHlwZSE6IEFwaVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZsb3dFeGVjdXRpb24hOiBGbG93RXhlY3V0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3c/OiBGbG93Vk0gPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVudHJ5cG9pbnRzOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkRmxvd0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd1ZNPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dHcm91cFZNW10+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93RXhlY3V0aW9uPigpO1xuXG4gIHB1YmxpYyBmbG93c0dyb3Vwc1ZNU2VsZWN0ZWQ6IEZsb3dHcm91cE1lbnVWTVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZykge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZsb3dzR3JvdXBzIHx8IGNoYW5nZXMuc2VsZWN0ZWRGbG93KSB7XG4gICAgICB0aGlzLmZsb3dzR3JvdXBzVk1TZWxlY3RlZCA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKS5tYXAoZmxvd0dyb3VwID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5mbG93R3JvdXAsXG4gICAgICAgICAgZmxvd3M6IGZsb3dHcm91cC5mbG93cy5tYXAoZmxvdyA9PiB7XG4gICAgICAgICAgICBjb25zdCBiYWRnZXM6IEZsb3dNZW51Vk1bJ2JhZGdlcyddID0gW107XG4gICAgICAgICAgICBsZXQgcGF0aE9yQ2hhbm5lbExhYmVsID0gJyc7XG4gICAgICAgICAgICBjb25zdCBjaGFubmVsU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NIQU5ORUwnKSBhcyBDaGFubmVsU2VsZWN0b3I7XG4gICAgICAgICAgICBpZiAoY2hhbm5lbFNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvblRvQmFkZ2U6IFJlY29yZDxPcGVyYXRpb24sIHN0cmluZz4gPSB7XG4gICAgICAgICAgICAgICAgUFVCTElTSDogJ1BVQicsXG4gICAgICAgICAgICAgICAgU1VCU0NSSUJFOiAnU1VCJyxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uQmFkZ2VzID0gKGNoYW5uZWxTZWxlY3Rvci5vcGVyYXRpb25zID8/IFtdKVxuICAgICAgICAgICAgICAgIC5tYXAob3BlcmF0aW9uID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogb3BlcmF0aW9uVG9CYWRnZVtvcGVyYXRpb25dLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubGFiZWwubG9jYWxlQ29tcGFyZShiLmxhYmVsKSk7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbkJhZGdlcyAmJiBiYWRnZXMucHVzaCguLi5vcGVyYXRpb25CYWRnZXMpO1xuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtjaGFubmVsU2VsZWN0b3IuY2hhbm5lbH0ke2NoYW5uZWxTZWxlY3Rvci5jaGFubmVsT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaHR0cFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdIVFRQJykgYXMgSHR0cFNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGh0dHBTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAvLyBLZWVwIG9ubHkgMiBmaXJzdCBodHRwIG1ldGhvZHMgYW5kIGFkZCArWCBiYWRnZSBpZiB0aGVyZSBhcmUgbW9yZVxuICAgICAgICAgICAgICBjb25zdCBodHRwTWV0aG9kc1RvS2VlcCA9IGh0dHBTZWxlY3Rvci5tZXRob2RzPy5zbGljZSgwLCAyKTtcbiAgICAgICAgICAgICAgY29uc3QgaHR0cE1ldGhvZHNMZW5ndGggPSBodHRwU2VsZWN0b3IubWV0aG9kcz8ubGVuZ3RoO1xuICAgICAgICAgICAgICBodHRwTWV0aG9kc1RvS2VlcCAmJlxuICAgICAgICAgICAgICAgIGJhZGdlcy5wdXNoKC4uLmh0dHBNZXRob2RzVG9LZWVwLm1hcChtZXRob2QgPT4gKHsgbGFiZWw6IG1ldGhvZCwgY2xhc3M6IGBnaW8tbWV0aG9kLWJhZGdlLSR7bWV0aG9kLnRvTG93ZXJDYXNlKCl9YCB9KSkpO1xuICAgICAgICAgICAgICBpZiAoaHR0cE1ldGhvZHNMZW5ndGggJiYgaHR0cE1ldGhvZHNMZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAgICAgYmFkZ2VzPy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBgKyR7aHR0cE1ldGhvZHNMZW5ndGggLSAyfWAsXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaHR0cE1ldGhvZHNMZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBiYWRnZXM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBTEwnLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtodHRwU2VsZWN0b3IucGF0aH0ke2h0dHBTZWxlY3Rvci5wYXRoT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnLyoqJyA6ICcnfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmZsb3csXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkRmxvdz8uX2lkID09PSBmbG93Ll9pZCxcbiAgICAgICAgICAgICAgbW91c2VPdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgYmFkZ2VzLFxuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEZsb3coZ3JvdXBJZDogc3RyaW5nLCBmbG93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZsb3cgPSB0aGlzLmZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBncm91cElkKT8uZmxvd3MuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuICAgIGlmIChmbG93KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxvd0NoYW5nZS5lbWl0KGZsb3cpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFkZEZsb3coZmxvd0dyb3VwOiBGbG93R3JvdXBWTSk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9XG4gICAgICB0aGlzLmFwaVR5cGUgPT09ICdNRVNTQUdFJ1xuICAgICAgICA/IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgICAgPihHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBlbnRyeXBvaW50czogdGhpcy5lbnRyeXBvaW50cyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICA6IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSwgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQ+KFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgZmxvdzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgICBpZDogJ2dpb1BzRmxvd0Zvcm1EaWFsb2cnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoY3JlYXRlZE9yRWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWNyZWF0ZWRPckVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBlZGl0ZWRGbG93c0dyb3VwcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKTtcblxuICAgICAgICAgIGNvbnN0IGZsb3dzR3JvdXBUb0VkaXQgPSBlZGl0ZWRGbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZmxvd0dyb3VwLl9pZCk7XG4gICAgICAgICAgaWYgKCFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgZ3JvdXAgJHtmbG93R3JvdXAuX2lkfSBub3QgZm91bmRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvd3NHcm91cFRvRWRpdC5mbG93cy5wdXNoKGNyZWF0ZWRPckVkaXRlZCk7XG5cbiAgICAgICAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQoZWRpdGVkRmxvd3NHcm91cHMpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG93Q2hhbmdlLmVtaXQoY3JlYXRlZE9yRWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbjogRmxvd0V4ZWN1dGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dEYXRhLCBGbG93RXhlY3V0aW9uIHwgdW5kZWZpbmVkPihcbiAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBmbG93RXhlY3V0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICBpZDogJ2dpb1BzRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2cnLFxuICAgICAgICB9LFxuICAgICAgKVxuICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZsb3dFeGVjdXRpb25DaGFuZ2UuZW1pdChlZGl0ZWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gICAgXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gICAgXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgICBcbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG5cbjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGFiZWxcIj5cbiAgICBGbG93cyA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzppbmZvXCIgbWF0VG9vbHRpcD1cIkZsb3dzIGFsbG93IHlvdSB0byBhcHBseSBkaWZmZXJlbnQgcG9saWNpZXMgb24geW91ciBBUEkgZXZlbnQgcGhhc2VzXCI+PC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0blwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0bl9lZGl0XCIgbWF0LXN0cm9rZWQtYnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbilcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnNldHRpbmdzXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImxpc3RcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZmxvd3NHcm91cCBvZiBmbG93c0dyb3Vwc1ZNU2VsZWN0ZWRcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19sYWJlbFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJmbG93c0dyb3VwLl9pY29uXCIgW3N2Z0ljb25dPVwiZmxvd3NHcm91cC5faWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZsb3dzR3JvdXAubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlcl9fYWRkQnRuXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkFkZEZsb3coZmxvd3NHcm91cClcIj48bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCIgbWF0VG9vbHRpcD1cIk5ldyBmbG93XCI+PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZsb3cgb2YgZmxvd3NHcm91cC5mbG93c1wiXG4gICAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImZsb3cuc2VsZWN0ZWRcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEZsb3coZmxvd3NHcm91cC5faWQsIGZsb3cuX2lkKVwiXG4gICAgICAobW91c2VvdXQpPVwiZmxvdy5tb3VzZU92ZXIgPSBmYWxzZVwiXG4gICAgICAobW91c2VvdmVyKT1cImZsb3cubW91c2VPdmVyID0gdHJ1ZVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImZsb3cubmFtZVwiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19fbmFtZVwiIFthdHRyLnRpdGxlXT1cImZsb3cubmFtZVwiPlxuICAgICAgICB7eyBmbG93Lm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzXCI+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGJhZGdlIG9mIGZsb3cuYmFkZ2VzXCIgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzX19iYWRnZVwiIFtuZ0NsYXNzXT1cImJhZGdlLmNsYXNzXCI+e3tcbiAgICAgICAgICAgIGJhZGdlLmxhYmVsXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX3BhdGhPckNoYW5uZWxMYWJlbFwiPnt7IGZsb3cucGF0aE9yQ2hhbm5lbExhYmVsIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/esm2020/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2015 The Gravitee team (http://gravitee.io)
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component, Inject } from '@angular/core';
|
|
17
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/material/dialog";
|
|
20
|
+
import * as i2 from "@angular/material/button";
|
|
21
|
+
import * as i3 from "@angular/material/icon";
|
|
22
|
+
import * as i4 from "../policy-form/gio-ps-policy-form.component";
|
|
23
|
+
import * as i5 from "@angular/common";
|
|
24
|
+
const executionPhaseLabels = {
|
|
25
|
+
REQUEST: 'Request',
|
|
26
|
+
RESPONSE: 'Response',
|
|
27
|
+
MESSAGE_REQUEST: 'Publish',
|
|
28
|
+
MESSAGE_RESPONSE: 'Subscribe',
|
|
29
|
+
};
|
|
30
|
+
export class GioPolicyStudioPoliciesCatalogDialogComponent {
|
|
31
|
+
constructor(dialogRef, flowDialogData) {
|
|
32
|
+
this.dialogRef = dialogRef;
|
|
33
|
+
this.policies = [];
|
|
34
|
+
this.policies = flowDialogData.policies.filter(policy => {
|
|
35
|
+
if (flowDialogData.apiType === 'PROXY') {
|
|
36
|
+
return policy.proxy?.includes(flowDialogData.executionPhase);
|
|
37
|
+
}
|
|
38
|
+
return policy.message?.includes(flowDialogData.executionPhase);
|
|
39
|
+
});
|
|
40
|
+
this.executionPhaseLabel = executionPhaseLabels[flowDialogData.executionPhase];
|
|
41
|
+
}
|
|
42
|
+
onSelectPolicy(policy) {
|
|
43
|
+
this.selectedPolicy = policy;
|
|
44
|
+
}
|
|
45
|
+
onAddPolicy() {
|
|
46
|
+
this.dialogRef.close(this.selectedPolicy);
|
|
47
|
+
}
|
|
48
|
+
onGoBack() {
|
|
49
|
+
this.selectedPolicy = undefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
GioPolicyStudioPoliciesCatalogDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
GioPolicyStudioPoliciesCatalogDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioPoliciesCatalogDialogComponent, selector: "gio-ps-policies-catalog-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__policy\">\n <div class=\"policiesCatalog__policy__head\">\n <mat-icon class=\"policiesCatalog__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">Select</button>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-policy-form [policy]=\"selectedPolicy\"></gio-ps-policy-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\">\n <button class=\"actions__cancelBtn\" mat-flat-button [mat-dialog-close]=\"\">Cancel</button>\n <button *ngIf=\"selectedPolicy\" class=\"actions__addBtn\" color=\"primary\" mat-stroked-button role=\"dialog\" (click)=\"onAddPolicy()\">\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:-20px;right:-20px;float:right}.policiesCatalog{--grid-layout-gap: 16px;--grid-column-count: 4;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__policy{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__policy__head{display:flex;max-width:100%;align-items:center}.policiesCatalog__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__policy__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__policy__description:empty{display:none}.policiesCatalog__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policyForm__info__description:empty{display:none}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.GioPolicyStudioPolicyFormComponent, selector: "gio-ps-policy-form", inputs: ["step", "policy"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{ selector: 'gio-ps-policies-catalog-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__policy\">\n <div class=\"policiesCatalog__policy__head\">\n <mat-icon class=\"policiesCatalog__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">Select</button>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-policy-form [policy]=\"selectedPolicy\"></gio-ps-policy-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\">\n <button class=\"actions__cancelBtn\" mat-flat-button [mat-dialog-close]=\"\">Cancel</button>\n <button *ngIf=\"selectedPolicy\" class=\"actions__addBtn\" color=\"primary\" mat-stroked-button role=\"dialog\" (click)=\"onAddPolicy()\">\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:-20px;right:-20px;float:right}.policiesCatalog{--grid-layout-gap: 16px;--grid-column-count: 4;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__policy{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__policy__head{display:flex;max-width:100%;align-items:center}.policiesCatalog__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__policy__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__policy__description:empty{display:none}.policiesCatalog__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policyForm__info__description:empty{display:none}\n"] }]
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
58
|
+
type: Inject,
|
|
59
|
+
args: [MAT_DIALOG_DATA]
|
|
60
|
+
}] }]; } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQVl6RSxNQUFNLG9CQUFvQixHQUFtQztJQUMzRCxPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsVUFBVTtJQUNwQixlQUFlLEVBQUUsU0FBUztJQUMxQixnQkFBZ0IsRUFBRSxXQUFXO0NBQzlCLENBQUM7QUFPRixNQUFNLE9BQU8sNkNBQTZDO0lBT3hELFlBQ1MsU0FBa0gsRUFDaEcsY0FBd0Q7UUFEMUUsY0FBUyxHQUFULFNBQVMsQ0FBeUc7UUFQcEgsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQVU3QixJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RELElBQUksY0FBYyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7Z0JBQ3RDLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzlEO1lBQ0QsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBYztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztJQUNsQyxDQUFDOzsySUE5QlUsNkNBQTZDLDhDQVM5QyxlQUFlOytIQVRkLDZDQUE2QyxzRUN4QzFELGt4RkFnRUE7NEZEeEJhLDZDQUE2QztrQkFMekQsU0FBUzsrQkFDRSxnQ0FBZ0M7OzBCQWF2QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgQXBpVHlwZSwgRXhlY3V0aW9uUGhhc2UsIFBvbGljeSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEgPSB7XG4gIHBvbGljaWVzOiBQb2xpY3lbXTtcbiAgZXhlY3V0aW9uUGhhc2U6IEV4ZWN1dGlvblBoYXNlO1xuICBhcGlUeXBlOiBBcGlUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nUmVzdWx0ID0gdW5kZWZpbmVkIHwgUG9saWN5O1xuXG5jb25zdCBleGVjdXRpb25QaGFzZUxhYmVsczogUmVjb3JkPEV4ZWN1dGlvblBoYXNlLCBzdHJpbmc+ID0ge1xuICBSRVFVRVNUOiAnUmVxdWVzdCcsXG4gIFJFU1BPTlNFOiAnUmVzcG9uc2UnLFxuICBNRVNTQUdFX1JFUVVFU1Q6ICdQdWJsaXNoJyxcbiAgTUVTU0FHRV9SRVNQT05TRTogJ1N1YnNjcmliZScsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCB7XG4gIHB1YmxpYyBwb2xpY2llczogUG9saWN5W10gPSBbXTtcblxuICBwdWJsaWMgZXhlY3V0aW9uUGhhc2VMYWJlbCE6IHN0cmluZztcblxuICBwdWJsaWMgc2VsZWN0ZWRQb2xpY3k/OiBQb2xpY3k7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nUmVzdWx0PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZmxvd0RpYWxvZ0RhdGE6IEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEsXG4gICkge1xuICAgIHRoaXMucG9saWNpZXMgPSBmbG93RGlhbG9nRGF0YS5wb2xpY2llcy5maWx0ZXIocG9saWN5ID0+IHtcbiAgICAgIGlmIChmbG93RGlhbG9nRGF0YS5hcGlUeXBlID09PSAnUFJPWFknKSB7XG4gICAgICAgIHJldHVybiBwb2xpY3kucHJveHk/LmluY2x1ZGVzKGZsb3dEaWFsb2dEYXRhLmV4ZWN1dGlvblBoYXNlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwb2xpY3kubWVzc2FnZT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZXhlY3V0aW9uUGhhc2UpO1xuICAgIH0pO1xuICAgIHRoaXMuZXhlY3V0aW9uUGhhc2VMYWJlbCA9IGV4ZWN1dGlvblBoYXNlTGFiZWxzW2Zsb3dEaWFsb2dEYXRhLmV4ZWN1dGlvblBoYXNlXTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdFBvbGljeShwb2xpY3k6IFBvbGljeSkge1xuICAgIHRoaXMuc2VsZWN0ZWRQb2xpY3kgPSBwb2xpY3k7XG4gIH1cblxuICBwdWJsaWMgb25BZGRQb2xpY3koKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5zZWxlY3RlZFBvbGljeSk7XG4gIH1cblxuICBwdWJsaWMgb25Hb0JhY2soKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeSA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48aDIgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRpdGxlXCI+XG4gIFBvbGljaWVzIGZvciA8c3BhbiBjbGFzcz1cInRpdGxlX19waGFzZVwiPnt7IGV4ZWN1dGlvblBoYXNlTGFiZWwgfX08L3NwYW4+IHBoYXNlXG5cbiAgPGJ1dHRvbiBjbGFzcz1cInRpdGxlX19jbG9zZUJ0blwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xvc2UgZGlhbG9nXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2gyPlxuXG48bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiIXNlbGVjdGVkUG9saWN5XCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgcG9saWN5IG9mIHBvbGljaWVzXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX3BvbGljeVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX3BvbGljeV9faGVhZFwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19wb2xpY3lfX2hlYWRfX2ljb25cIiBbc3ZnSWNvbl09XCJwb2xpY3kuaWNvbiA/PyAnZ2lvOnB1enpsZSdcIj48L21hdC1pY29uPlxuXG4gICAgICA8c3BhbiAqbmdJZj1cInBvbGljeS5uYW1lXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX3BvbGljeV9faGVhZF9fbmFtZVwiPnt7IHBvbGljeS5uYW1lIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInBvbGljeS5kZXNjcmlwdGlvblwiIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19wb2xpY3lfX2Rlc2NyaXB0aW9uXCI+e3sgcG9saWN5LmRlc2NyaXB0aW9uIH19PC9kaXY+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19wb2xpY3lfX3NlbGVjdEJ0blwiIG1hdC1zdHJva2VkLWJ1dHRvbiByb2xlPVwiZGlhbG9nXCIgKGNsaWNrKT1cIm9uU2VsZWN0UG9saWN5KHBvbGljeSlcIj5TZWxlY3Q8L2J1dHRvbj5cbiAgPC9kaXY+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctY29udGVudCAqbmdJZj1cInNlbGVjdGVkUG9saWN5XCIgY2xhc3M9XCJwb2xpY3lGb3JtXCI+XG4gIDxidXR0b24gY2xhc3M9XCJwb2xpY3lGb3JtX19nb0JhY2tCdG5cIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uR29CYWNrKClcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzphcnJvdy1sZWZ0XCI+PC9tYXQtaWNvbj5cbiAgICBHbyBiYWNrXG4gIDwvYnV0dG9uPlxuXG4gIDxkaXYgY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRfX2ljb25cIiBbc3ZnSWNvbl09XCJzZWxlY3RlZFBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kubmFtZVwiIGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb19faGVhZF9fbmFtZVwiPnt7IHNlbGVjdGVkUG9saWN5Lm5hbWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kuZGVzY3JpcHRpb25cIiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2Rlc2NyaXB0aW9uXCI+e3sgc2VsZWN0ZWRQb2xpY3kuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGdpby1wcy1wb2xpY3ktZm9ybSBbcG9saWN5XT1cInNlbGVjdGVkUG9saWN5XCI+PC9naW8tcHMtcG9saWN5LWZvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX2NhbmNlbEJ0blwiIG1hdC1mbGF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvbiAqbmdJZj1cInNlbGVjdGVkUG9saWN5XCIgY2xhc3M9XCJhY3Rpb25zX19hZGRCdG5cIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtc3Ryb2tlZC1idXR0b24gcm9sZT1cImRpYWxvZ1wiIChjbGljayk9XCJvbkFkZFBvbGljeSgpXCI+XG4gICAgQWRkIHBvbGljeVxuICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2022 The Gravitee team (http://gravitee.io)
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component, Input } from '@angular/core';
|
|
17
|
+
import * as i0 from "@angular/core";
|
|
18
|
+
export class GioPolicyStudioPolicyFormComponent {
|
|
19
|
+
}
|
|
20
|
+
GioPolicyStudioPolicyFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioPolicyFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
GioPolicyStudioPolicyFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioPolicyFormComponent, selector: "gio-ps-policy-form", inputs: { step: "step", policy: "policy" }, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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\n<div class=\"settings\">\n <div class=\"settings__header\">Settings</div>\n\n <div class=\"settings__content\">\uD83D\uDEA7 WIP \uD83D\uDEA7</div>\n</div>\n\n<div class=\"documentation\">\n <div class=\"documentation__header\">Documentation</div>\n\n <div class=\"documentation__content\">\uD83D\uDEA7 WIP \uD83D\uDEA7</div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;border:1px solid #d3d5dc;border-radius:8px}.settings{display:flex;flex:1 1 auto;flex-direction:column}.settings__header{border-right:1px solid #d3d5dc}.settings__content{padding:16px;border-right:1px solid #d3d5dc}.documentation{display:flex;flex:1 1 auto;flex-direction:column}.documentation__content{padding:16px}.settings__header,.documentation__header{padding:16px;border-bottom:1px solid #d3d5dc;font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioPolicyFormComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'gio-ps-policy-form', template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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\n<div class=\"settings\">\n <div class=\"settings__header\">Settings</div>\n\n <div class=\"settings__content\">\uD83D\uDEA7 WIP \uD83D\uDEA7</div>\n</div>\n\n<div class=\"documentation\">\n <div class=\"documentation__header\">Documentation</div>\n\n <div class=\"documentation__content\">\uD83D\uDEA7 WIP \uD83D\uDEA7</div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;border:1px solid #d3d5dc;border-radius:8px}.settings{display:flex;flex:1 1 auto;flex-direction:column}.settings__header{border-right:1px solid #d3d5dc}.settings__content{padding:16px;border-right:1px solid #d3d5dc}.documentation{display:flex;flex:1 1 auto;flex-direction:column}.documentation__content{padding:16px}.settings__header,.documentation__header{padding:16px;border-bottom:1px solid #d3d5dc;font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"] }]
|
|
25
|
+
}], propDecorators: { step: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], policy: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}] } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljeS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWN5LWZvcm0vZ2lvLXBzLXBvbGljeS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWN5LWZvcm0vZ2lvLXBzLXBvbGljeS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBU2pELE1BQU0sT0FBTyxrQ0FBa0M7O2dJQUFsQyxrQ0FBa0M7b0hBQWxDLGtDQUFrQyxzR0N4Qi9DLHEvQkE2QkE7NEZETGEsa0NBQWtDO2tCQUw5QyxTQUFTOytCQUNFLG9CQUFvQjs4QkFNdkIsSUFBSTtzQkFEVixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvbGljeSwgU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1wcy1wb2xpY3ktZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtcG9saWN5LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtcG9saWN5LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvUG9saWN5Rm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGVwPzogU3RlcDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcG9saWN5ITogUG9saWN5O1xufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gICAgXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gICAgXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgICBcbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG5cbjxkaXYgY2xhc3M9XCJzZXR0aW5nc1wiPlxuICA8ZGl2IGNsYXNzPVwic2V0dGluZ3NfX2hlYWRlclwiPlNldHRpbmdzPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNldHRpbmdzX19jb250ZW50XCI+8J+apyBXSVAg8J+apzwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkb2N1bWVudGF0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudGF0aW9uX19oZWFkZXJcIj5Eb2N1bWVudGF0aW9uPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50YXRpb25fX2NvbnRlbnRcIj7wn5qnIFdJUCDwn5qnPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2015 The Gravitee team (http://gravitee.io)
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component, Inject } from '@angular/core';
|
|
17
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/material/dialog";
|
|
20
|
+
import * as i2 from "@angular/material/icon";
|
|
21
|
+
import * as i3 from "@angular/material/button";
|
|
22
|
+
import * as i4 from "../policy-form/gio-ps-policy-form.component";
|
|
23
|
+
import * as i5 from "@angular/common";
|
|
24
|
+
export class GioPolicyStudioPolicyFormDialogComponent {
|
|
25
|
+
constructor(dialogRef, flowDialogData) {
|
|
26
|
+
this.dialogRef = dialogRef;
|
|
27
|
+
this.policy = flowDialogData.policy;
|
|
28
|
+
this.step = flowDialogData.step;
|
|
29
|
+
}
|
|
30
|
+
onSave() {
|
|
31
|
+
this.dialogRef.close();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
GioPolicyStudioPolicyFormDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioPolicyFormDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
GioPolicyStudioPolicyFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioPolicyFormDialogComponent, selector: "gio-ps-policy-form-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"title__name\">{{ policy.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-policy-form [policy]=\"policy\" [step]=\"step\"></gio-ps-policy-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\">\n <button class=\"actions__cancelBtn\" mat-flat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-stroked-button role=\"dialog\" (click)=\"onSave()\">Save</button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:-20px;right:-20px;float:right}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.GioPolicyStudioPolicyFormComponent, selector: "gio-ps-policy-form", inputs: ["step", "policy"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioPolicyFormDialogComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'gio-ps-policy-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"title__name\">{{ policy.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-policy-form [policy]=\"policy\" [step]=\"step\"></gio-ps-policy-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\">\n <button class=\"actions__cancelBtn\" mat-flat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-stroked-button role=\"dialog\" (click)=\"onSave()\">Save</button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:-20px;right:-20px;float:right}\n"] }]
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
40
|
+
type: Inject,
|
|
41
|
+
args: [MAT_DIALOG_DATA]
|
|
42
|
+
}] }]; } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljeS1mb3JtLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3BvbGljeS1mb3JtLWRpYWxvZy9naW8tcHMtcG9saWN5LWZvcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWN5LWZvcm0tZGlhbG9nL2dpby1wcy1wb2xpY3ktZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBZ0J6RSxNQUFNLE9BQU8sd0NBQXdDO0lBSW5ELFlBQ1MsU0FBd0csRUFDdEYsY0FBbUQ7UUFEckUsY0FBUyxHQUFULFNBQVMsQ0FBK0Y7UUFHL0csSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7c0lBZFUsd0NBQXdDLDhDQU16QyxlQUFlOzBIQU5kLHdDQUF3QyxpRUNoQ3JELHc4Q0FtQ0E7NEZESGEsd0NBQXdDO2tCQUxwRCxTQUFTOytCQUNFLDJCQUEyQjs7MEJBVWxDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBQb2xpY3ksIFN0ZXAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9Qb2xpY3lGb3JtRGlhbG9nRGF0YSA9IHtcbiAgcG9saWN5OiBQb2xpY3k7XG4gIHN0ZXA6IFN0ZXA7XG59O1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9Qb2xpY3lGb3JtRGlhbG9nUmVzdWx0ID0gdW5kZWZpbmVkO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtcG9saWN5LWZvcm0tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1wb2xpY3ktZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtcG9saWN5LWZvcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb1BvbGljeUZvcm1EaWFsb2dDb21wb25lbnQge1xuICBwdWJsaWMgcG9saWN5ITogUG9saWN5O1xuICBwdWJsaWMgc3RlcCE6IFN0ZXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdpb1BvbGljeVN0dWRpb1BvbGljeUZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb1BvbGljeUZvcm1EaWFsb2dSZXN1bHQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBmbG93RGlhbG9nRGF0YTogR2lvUG9saWN5U3R1ZGlvUG9saWN5Rm9ybURpYWxvZ0RhdGEsXG4gICkge1xuICAgIHRoaXMucG9saWN5ID0gZmxvd0RpYWxvZ0RhdGEucG9saWN5O1xuICAgIHRoaXMuc3RlcCA9IGZsb3dEaWFsb2dEYXRhLnN0ZXA7XG4gIH1cblxuICBwdWJsaWMgb25TYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0aXRsZVwiPlxuICA8bWF0LWljb24gY2xhc3M9XCJ0aXRsZV9faWNvblwiIFtzdmdJY29uXT1cInBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgPHNwYW4gKm5nSWY9XCJwb2xpY3kubmFtZVwiIGNsYXNzPVwidGl0bGVfX25hbWVcIj57eyBwb2xpY3kubmFtZSB9fTwvc3Bhbj5cblxuICA8YnV0dG9uIGNsYXNzPVwidGl0bGVfX2Nsb3NlQnRuXCIgbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbG9zZSBkaWFsb2dcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvaDI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJjb250ZW50XCI+XG4gIDxnaW8tcHMtcG9saWN5LWZvcm0gW3BvbGljeV09XCJwb2xpY3lcIiBbc3RlcF09XCJzdGVwXCI+PC9naW8tcHMtcG9saWN5LWZvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX2NhbmNlbEJ0blwiIG1hdC1mbGF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX3NhdmVCdG5cIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtc3Ryb2tlZC1idXR0b24gcm9sZT1cImRpYWxvZ1wiIChjbGljayk9XCJvblNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
@@ -34,6 +34,7 @@ export class GioPolicyStudioComponent {
|
|
|
34
34
|
this.endpointsInfo = [];
|
|
35
35
|
this.commonFlows = [];
|
|
36
36
|
this.plans = [];
|
|
37
|
+
this.policies = [];
|
|
37
38
|
/**
|
|
38
39
|
* Return what is needed to save.
|
|
39
40
|
**/
|
|
@@ -105,11 +106,11 @@ export class GioPolicyStudioComponent {
|
|
|
105
106
|
});
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
|
-
GioPolicyStudioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
109
|
-
GioPolicyStudioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
109
|
+
GioPolicyStudioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
+
GioPolicyStudioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioComponent, selector: "gio-policy-studio", inputs: { apiType: "apiType", flowExecution: "flowExecution", entrypointsInfo: "entrypointsInfo", endpointsInfo: "endpointsInfo", commonFlows: "commonFlows", plans: "plans", policies: "policies" }, outputs: { save: "save" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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\n<div class=\"header\">\n <div class=\"header__apiInfo\">\n <span class=\"gio-badge-primary\">\n {{ apiType | titlecase }}\n </span>\n <span\n class=\"gio-badge-neutral\"\n [matTooltip]=\"connectorsTooltip\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"gio-policy-studio__tooltip-line-break\"\n >\n <mat-icon *ngFor=\"let entrypoint of entrypointsInfo\" class=\"gio-left\" [svgIcon]=\"entrypoint.icon\"></mat-icon>\n <mat-icon *ngFor=\"let endpoint of endpointsInfo\" class=\"gio-left\" [svgIcon]=\"endpoint.icon\"></mat-icon>\n </span>\n </div>\n\n <div class=\"header__btn\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"disableSaveButton\" (click)=\"onSave()\">Save</button>\n </div>\n</div>\n\n<div class=\"wrapper\">\n <div class=\"wrapper__flowsMenu\">\n <gio-ps-flows-menu\n [apiType]=\"apiType\"\n [flowExecution]=\"flowExecution\"\n [flowsGroups]=\"flowsGroups\"\n [entrypoints]=\"entrypointsInfo\"\n (flowsGroupsChange)=\"onFlowsGroupsChange($event)\"\n (flowExecutionChange)=\"onFlowExecutionChange($event)\"\n [(selectedFlow)]=\"selectedFlow\"\n ></gio-ps-flows-menu>\n </div>\n\n <div class=\"wrapper__flowDetails\">\n <gio-ps-flow-details\n [apiType]=\"apiType\"\n [flow]=\"selectedFlow\"\n [entrypointsInfo]=\"entrypointsInfo\"\n [endpointsInfo]=\"endpointsInfo\"\n [policies]=\"policies\"\n (flowChange)=\"onSelectedFlowChange($event)\"\n (deleteFlow)=\"onDeleteSelectedFlow($event)\"\n ></gio-ps-flow-details>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column;padding:16px;background-color:#fff}::ng-deep .gio-policy-studio__tooltip-line-break{white-space:pre-line}.header{display:flex;align-items:center;padding-bottom:16px}.header__apiInfo{flex:1 1 auto}.wrapper{display:flex;min-height:0;flex:1 1 auto;flex-direction:row;gap:16px}.wrapper__flowsMenu{overflow:hidden;max-width:400px;flex:1 1 33%;border:1px solid #d3d5dc;border-radius:8px}.wrapper__flowDetails{overflow:hidden;flex:1 1 66%;border:1px solid #d3d5dc;border-radius:8px}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.GioPolicyStudioFlowsMenuComponent, selector: "gio-ps-flows-menu", inputs: ["apiType", "flowExecution", "flowsGroups", "selectedFlow", "entrypoints"], outputs: ["selectedFlowChange", "flowsGroupsChange", "flowExecutionChange"] }, { type: i4.GioPolicyStudioDetailsComponent, selector: "gio-ps-flow-details", inputs: ["apiType", "flow", "entrypointsInfo", "endpointsInfo", "policies"], outputs: ["flowChange", "deleteFlow"] }], directives: [{ type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "titlecase": i6.TitleCasePipe } });
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioComponent, decorators: [{
|
|
111
112
|
type: Component,
|
|
112
|
-
args: [{ selector: 'gio-policy-studio', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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\n<div class=\"header\">\n <div class=\"header__apiInfo\">\n <span class=\"gio-badge-primary\">\n {{ apiType | titlecase }}\n </span>\n <span\n class=\"gio-badge-neutral\"\n [matTooltip]=\"connectorsTooltip\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"gio-policy-studio__tooltip-line-break\"\n >\n <mat-icon *ngFor=\"let entrypoint of entrypointsInfo\" class=\"gio-left\" [svgIcon]=\"entrypoint.icon\"></mat-icon>\n <mat-icon *ngFor=\"let endpoint of endpointsInfo\" class=\"gio-left\" [svgIcon]=\"endpoint.icon\"></mat-icon>\n </span>\n </div>\n\n <div class=\"header__btn\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"disableSaveButton\" (click)=\"onSave()\">Save</button>\n </div>\n</div>\n\n<div class=\"wrapper\">\n <div class=\"wrapper__flowsMenu\">\n <gio-ps-flows-menu\n [apiType]=\"apiType\"\n [flowExecution]=\"flowExecution\"\n [flowsGroups]=\"flowsGroups\"\n [entrypoints]=\"entrypointsInfo\"\n (flowsGroupsChange)=\"onFlowsGroupsChange($event)\"\n (flowExecutionChange)=\"onFlowExecutionChange($event)\"\n [(selectedFlow)]=\"selectedFlow\"\n ></gio-ps-flows-menu>\n </div>\n\n <div class=\"wrapper__flowDetails\">\n <gio-ps-flow-details\n [apiType]=\"apiType\"\n [flow]=\"selectedFlow\"\n [entrypointsInfo]=\"entrypointsInfo\"\n [endpointsInfo]=\"endpointsInfo\"\n (flowChange)=\"onSelectedFlowChange($event)\"\n (deleteFlow)=\"onDeleteSelectedFlow($event)\"\n ></gio-ps-flow-details>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column;padding:16px;background-color:#fff}::ng-deep .gio-policy-studio__tooltip-line-break{white-space:pre-line}.header{display:flex;align-items:center;padding-bottom:16px}.header__apiInfo{flex:1 1 auto}.wrapper{display:flex;min-height:0;flex:1 1 auto;flex-direction:row;gap:16px}.wrapper__flowsMenu{overflow:hidden;max-width:400px;flex:1 1 33%;border:1px solid #d3d5dc;border-radius:8px}.wrapper__flowDetails{overflow:hidden;flex:1 1 66%;border:1px solid #d3d5dc;border-radius:8px}\n"] }]
|
|
113
|
+
args: [{ selector: 'gio-policy-studio', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (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 http://www.apache.org/licenses/LICENSE-2.0\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\n<div class=\"header\">\n <div class=\"header__apiInfo\">\n <span class=\"gio-badge-primary\">\n {{ apiType | titlecase }}\n </span>\n <span\n class=\"gio-badge-neutral\"\n [matTooltip]=\"connectorsTooltip\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"gio-policy-studio__tooltip-line-break\"\n >\n <mat-icon *ngFor=\"let entrypoint of entrypointsInfo\" class=\"gio-left\" [svgIcon]=\"entrypoint.icon\"></mat-icon>\n <mat-icon *ngFor=\"let endpoint of endpointsInfo\" class=\"gio-left\" [svgIcon]=\"endpoint.icon\"></mat-icon>\n </span>\n </div>\n\n <div class=\"header__btn\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"disableSaveButton\" (click)=\"onSave()\">Save</button>\n </div>\n</div>\n\n<div class=\"wrapper\">\n <div class=\"wrapper__flowsMenu\">\n <gio-ps-flows-menu\n [apiType]=\"apiType\"\n [flowExecution]=\"flowExecution\"\n [flowsGroups]=\"flowsGroups\"\n [entrypoints]=\"entrypointsInfo\"\n (flowsGroupsChange)=\"onFlowsGroupsChange($event)\"\n (flowExecutionChange)=\"onFlowExecutionChange($event)\"\n [(selectedFlow)]=\"selectedFlow\"\n ></gio-ps-flows-menu>\n </div>\n\n <div class=\"wrapper__flowDetails\">\n <gio-ps-flow-details\n [apiType]=\"apiType\"\n [flow]=\"selectedFlow\"\n [entrypointsInfo]=\"entrypointsInfo\"\n [endpointsInfo]=\"endpointsInfo\"\n [policies]=\"policies\"\n (flowChange)=\"onSelectedFlowChange($event)\"\n (deleteFlow)=\"onDeleteSelectedFlow($event)\"\n ></gio-ps-flow-details>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column;padding:16px;background-color:#fff}::ng-deep .gio-policy-studio__tooltip-line-break{white-space:pre-line}.header{display:flex;align-items:center;padding-bottom:16px}.header__apiInfo{flex:1 1 auto}.wrapper{display:flex;min-height:0;flex:1 1 auto;flex-direction:row;gap:16px}.wrapper__flowsMenu{overflow:hidden;max-width:400px;flex:1 1 33%;border:1px solid #d3d5dc;border-radius:8px}.wrapper__flowDetails{overflow:hidden;flex:1 1 66%;border:1px solid #d3d5dc;border-radius:8px}\n"] }]
|
|
113
114
|
}], propDecorators: { apiType: [{
|
|
114
115
|
type: Input
|
|
115
116
|
}], flowExecution: [{
|
|
@@ -122,6 +123,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
122
123
|
type: Input
|
|
123
124
|
}], plans: [{
|
|
124
125
|
type: Input
|
|
126
|
+
}], policies: [{
|
|
127
|
+
type: Input
|
|
125
128
|
}], save: [{
|
|
126
129
|
type: Output
|
|
127
130
|
}] } });
|
|
@@ -175,4 +178,4 @@ const getPlansChangeOutput = (flowsGroups, initialFlowsGroups) => {
|
|
|
175
178
|
}));
|
|
176
179
|
return plansWithChangedFlowsOutput.length > 0 ? plansWithChangedFlowsOutput : null;
|
|
177
180
|
};
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBvbGljeS1zdHVkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvZ2lvLXBvbGljeS1zdHVkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvZ2lvLXBvbGljeS1zdHVkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQVU1RixNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBWUU7O1dBRUc7UUFFSSxvQkFBZSxHQUFvQixFQUFFLENBQUM7UUFFN0M7O1dBRUc7UUFFSSxrQkFBYSxHQUFvQixFQUFFLENBQUM7UUFHcEMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFHekIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUUxQjs7WUFFSTtRQUVHLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRXRDLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUV2QixpQkFBWSxHQUFZLFNBQVMsQ0FBQztRQUVsQyxnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFFaEMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBRWhDLGdGQUFnRjtRQUN4RSx1QkFBa0IsR0FBa0IsRUFBRSxDQUFDO1FBRXZDLDRCQUF1QixHQUFHLEtBQUssQ0FBQztLQXdFekM7SUF2RVEsV0FBVyxDQUFDLE9BQXNCO1FB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LENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1FBQ3hDLGdHQUFnRztRQUNoRyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQVE7UUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDaEUsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDckYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZGlmZmVyZW5jZUJ5LCBmbGF0dGVuLCBpc0VxdWFsLCBvbWl0LCB1bmlvbkJ5LCB1bmlxdWVJZCB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEFwaVR5cGUsIENvbm5lY3RvckluZm8sIEZsb3csIFBsYW4sIFNhdmVPdXRwdXQsIEZsb3dFeGVjdXRpb24gfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBGbG93R3JvdXBWTSwgRmxvd1ZNIH0gZnJvbSAnLi9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1wb2xpY3ktc3R1ZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wb2xpY3ktc3R1ZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBvbGljeS1zdHVkaW8uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIGFwaVR5cGUhOiBBcGlUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uITogRmxvd0V4ZWN1dGlvbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBlbnRyeXBvaW50cyB0byBkaXNwbGF5XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZW50cnlwb2ludHNJbmZvOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBlbmRwb2ludHMgdG8gZGlzcGxheVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGVuZHBvaW50c0luZm86IENvbm5lY3RvckluZm9bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb21tb25GbG93czogRmxvd1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBsYW5zOiBQbGFuW10gPSBbXTtcblxuICAvKipcbiAgICogUmV0dXJuIHdoYXQgaXMgbmVlZGVkIHRvIHNhdmUuXG4gICAqKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxTYXZlT3V0cHV0PigpO1xuXG4gIHB1YmxpYyBjb25uZWN0b3JzVG9vbHRpcCA9ICcnO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3c/OiBGbG93Vk0gPSB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZsb3dzR3JvdXBzOiBGbG93R3JvdXBWTVtdID0gW107XG5cbiAgcHVibGljIGRpc2FibGVTYXZlQnV0dG9uID0gdHJ1ZTtcblxuICAvLyBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgaW5pdGlhbCBmbG93cyBncm91cHMgdG8ga25vdyBpZiB0aGVyZSBhcmUgZGVsZXRlZCBmbG93c1xuICBwcml2YXRlIGluaXRpYWxGbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSA9IFtdO1xuXG4gIHByaXZhdGUgaGFzRmxvd0V4ZWN1dGlvbkNoYW5nZWQgPSBmYWxzZTtcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5lbnRyeXBvaW50c0luZm8gfHwgY2hhbmdlcy5lbmRwb2ludHNJbmZvKSB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnNUb29sdGlwID0gYEVudHJ5cG9pbnRzOiAkeyh0aGlzLmVudHJ5cG9pbnRzSW5mbyA/PyBbXSkubWFwKGUgPT4gZS5uYW1lKS5qb2luKCcsICcpfVxcbkVuZHBvaW50czogJHsoXG4gICAgICAgIHRoaXMuZW5kcG9pbnRzSW5mbyA/PyBbXVxuICAgICAgKVxuICAgICAgICAubWFwKGUgPT4gZS5uYW1lKVxuICAgICAgICAuam9pbignLCAnKX1gO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmNvbW1vbkZsb3dzIHx8IGNoYW5nZXMucGxhbnMpIHtcbiAgICAgIHRoaXMuZGlzYWJsZVNhdmVCdXR0b24gPSB0cnVlO1xuICAgICAgdGhpcy5mbG93c0dyb3VwcyA9IGdldEZsb3dzR3JvdXBzKHRoaXMuY29tbW9uRmxvd3MsIHRoaXMucGxhbnMpO1xuICAgICAgdGhpcy5pbml0aWFsRmxvd3NHcm91cHMgPSBjbG9uZURlZXAodGhpcy5mbG93c0dyb3Vwcyk7XG5cbiAgICAgIC8vIFNlbGVjdCBmaXJzdCBmbG93IGJ5IGRlZmF1bHQgb24gZmlyc3QgbG9hZFxuICAgICAgaWYgKGNoYW5nZXMuY29tbW9uRmxvd3M/LmlzRmlyc3RDaGFuZ2UoKSB8fCBjaGFuZ2VzLnBsYW5zPy5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZsb3cgPSB0aGlzLmZsb3dzR3JvdXBzWzBdLmZsb3dzWzBdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkZsb3dFeGVjdXRpb25DaGFuZ2UoZmxvd0V4ZWN1dGlvbjogRmxvd0V4ZWN1dGlvbik6IHZvaWQge1xuICAgIHRoaXMuaGFzRmxvd0V4ZWN1dGlvbkNoYW5nZWQgPSAhaXNFcXVhbCh0aGlzLmZsb3dFeGVjdXRpb24sIGZsb3dFeGVjdXRpb24pO1xuICAgIGlmICh0aGlzLmhhc0Zsb3dFeGVjdXRpb25DaGFuZ2VkKSB7XG4gICAgICB0aGlzLmRpc2FibGVTYXZlQnV0dG9uID0gZmFsc2U7XG4gICAgICB0aGlzLmZsb3dFeGVjdXRpb24gPSBmbG93RXhlY3V0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkZsb3dzR3JvdXBzQ2hhbmdlKGZsb3dzR3JvdXBzOiBGbG93R3JvdXBWTVtdKTogdm9pZCB7XG4gICAgdGhpcy5mbG93c0dyb3VwcyA9IGZsb3dzR3JvdXBzO1xuICAgIHRoaXMuZGlzYWJsZVNhdmVCdXR0b24gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkRmxvd0NoYW5nZShmbG93OiBGbG93Vk0pOiB2b2lkIHtcbiAgICB0aGlzLmZsb3dzR3JvdXBzID0gdGhpcy5mbG93c0dyb3Vwcy5tYXAoZmxvd0dyb3VwID0+ICh7XG4gICAgICAuLi5mbG93R3JvdXAsXG4gICAgICBmbG93czogZmxvd0dyb3VwLmZsb3dzLm1hcChmID0+IChmLl9pZCA9PT0gZmxvdy5faWQgPyBmbG93IDogZikpLFxuICAgIH0pKTtcbiAgICB0aGlzLnNlbGVjdGVkRmxvdyA9IGZsb3c7XG4gICAgdGhpcy5kaXNhYmxlU2F2ZUJ1dHRvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlU2VsZWN0ZWRGbG93KGZsb3c6IEZsb3dWTSk6IHZvaWQge1xuICAgIC8vIERlZmluZSBuZXh0IHNlbGVjdGVkIGZsb3cgYW5kIHJlbW92ZSBmbG93IGZyb20gZmxvd3NHcm91cHNcbiAgICBjb25zdCBhbGxGbG93c0lkID0gZmxhdHRlbih0aGlzLmZsb3dzR3JvdXBzLm1hcChmbG93R3JvdXAgPT4gZmxvd0dyb3VwLmZsb3dzKSkubWFwKGYgPT4gZi5faWQpO1xuICAgIGNvbnN0IGZsb3dUb0RlbGV0ZUluZGV4ID0gYWxsRmxvd3NJZC5pbmRleE9mKGZsb3cuX2lkKTtcbiAgICBjb25zdCBuZXh0U2VsZWN0ZWRGbG93ID0gYWxsRmxvd3NJZFtmbG93VG9EZWxldGVJbmRleCArIDFdID8/IGFsbEZsb3dzSWRbZmxvd1RvRGVsZXRlSW5kZXggLSAxXTtcbiAgICB0aGlzLmZsb3dzR3JvdXBzID0gdGhpcy5mbG93c0dyb3Vwcy5tYXAoZmxvd0dyb3VwID0+ICh7XG4gICAgICAuLi5mbG93R3JvdXAsXG4gICAgICBmbG93czogZmxvd0dyb3VwLmZsb3dzLmZpbHRlcihmID0+IGYuX2lkICE9PSBmbG93Ll9pZCksXG4gICAgfSkpO1xuXG4gICAgdGhpcy5zZWxlY3RlZEZsb3cgPSBmbGF0dGVuKHRoaXMuZmxvd3NHcm91cHMubWFwKGZsb3dHcm91cCA9PiBmbG93R3JvdXAuZmxvd3MpKS5maW5kKGYgPT4gZi5faWQgPT09IG5leHRTZWxlY3RlZEZsb3cpO1xuXG4gICAgdGhpcy5kaXNhYmxlU2F2ZUJ1dHRvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uU2F2ZSgpOiB2b2lkIHtcbiAgICAvLyBFbWl0IGNvbW1vbiBmbG93cyBvbmx5IGlmIHRoZXkgaGF2ZSBiZWVuIHVwZGF0ZWRcbiAgICBjb25zdCBjb21tb25GbG93cyA9IGdldENvbW1vbkZsb3dzT3V0cHV0KHRoaXMuZmxvd3NHcm91cHMsIHRoaXMuaW5pdGlhbEZsb3dzR3JvdXBzKTtcblxuICAgIC8vIEVtaXQgcGxhbnMgb25seSBpZiB0aGV5IGhhdmUgYmVlbiB1cGRhdGVkXG4gICAgY29uc3QgcGxhbnNUb1VwZGF0ZSA9IGdldFBsYW5zQ2hhbmdlT3V0cHV0KHRoaXMuZmxvd3NHcm91cHMsIHRoaXMuaW5pdGlhbEZsb3dzR3JvdXBzKTtcblxuICAgIHRoaXMuc2F2ZS5lbWl0KHtcbiAgICAgIC4uLihjb21tb25GbG93cyA/IHsgY29tbW9uRmxvd3MgfSA6IHt9KSxcbiAgICAgIC4uLihwbGFuc1RvVXBkYXRlID8geyBwbGFuc1RvVXBkYXRlIH0gOiB7fSksXG4gICAgICAuLi4odGhpcy5oYXNGbG93RXhlY3V0aW9uQ2hhbmdlZCA/IHsgZmxvd0V4ZWN1dGlvbjogdGhpcy5mbG93RXhlY3V0aW9uIH0gOiB7fSksXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgZ2V0Rmxvd3NHcm91cHMgPSAoY29tbW9uRmxvd3M6IEZsb3dbXSA9IFtdLCBwbGFuczogUGxhbltdID0gW10pOiBGbG93R3JvdXBWTVtdID0+IHtcbiAgY29uc3QgY29tbUZsb3dzR3JvdXA6IEZsb3dHcm91cFZNID0ge1xuICAgIF9pZDogJ2Zsb3dzR3JvdXBfY29tbW9uRmxvdycsXG4gICAgbmFtZTogJ0NvbW1vbiBmbG93cycsXG4gICAgZmxvd3M6IGNvbW1vbkZsb3dzLm1hcChmbG93ID0+ICh7IC4uLmZsb3csIF9pZDogdW5pcXVlSWQoJ2Zsb3dfJyksIF9oYXNDaGFuZ2VkOiBmYWxzZSB9KSksXG4gIH07XG5cbiAgcmV0dXJuIFtcbiAgICAuLi5wbGFucy5tYXAocGxhbiA9PiAoe1xuICAgICAgX2lkOiB1bmlxdWVJZCgnZmxvd3NHcm91cF8nKSxcbiAgICAgIF9pY29uOiAnZ2lvOnNoaWVsZCcsXG4gICAgICBfcGxhbklkOiBwbGFuLmlkLFxuICAgICAgbmFtZTogcGxhbi5uYW1lLFxuICAgICAgZmxvd3M6IHBsYW4uZmxvd3MubWFwKGZsb3cgPT4gKHsgLi4uZmxvdywgX2lkOiB1bmlxdWVJZCgnZmxvd18nKSwgX2hhc0NoYW5nZWQ6IGZhbHNlIH0pKSxcbiAgICB9KSksXG4gICAgY29tbUZsb3dzR3JvdXAsXG4gIF07XG59O1xuXG5jb25zdCBnZXRDb21tb25GbG93c091dHB1dCA9IChmbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSwgaW5pdGlhbEZsb3dzR3JvdXBzOiBGbG93R3JvdXBWTVtdKTogRmxvd1tdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNvbW1vbkZsb3dzR3JvdXAgPSBmbG93c0dyb3Vwcy5maW5kKGZsb3dHcm91cCA9PiBmbG93R3JvdXAuX2lkID09PSAnZmxvd3NHcm91cF9jb21tb25GbG93Jyk7XG4gIGNvbnN0IGluaXRpYWxDb21tb25GbG93c0dyb3VwID0gaW5pdGlhbEZsb3dzR3JvdXBzLmZpbmQoZmxvd0dyb3VwID0+IGZsb3dHcm91cC5faWQgPT09ICdmbG93c0dyb3VwX2NvbW1vbkZsb3cnKTtcbiAgLy8gQ2hlY2sgaWYgY29tbW9uIGZsb3dzIGhhdmUgYmVlbiB1cGRhdGVkXG4gIGNvbnN0IGhhc0NoYW5nZWQgPSBjb21tb25GbG93c0dyb3VwPy5mbG93cy5zb21lKGZsb3cgPT4gZmxvdy5faGFzQ2hhbmdlZCk7XG5cbiAgLy8gQ2hlY2sgaWYgY29tbW9uIGZsb3dzIGhhdmUgYmVlbiBkZWxldGVkXG4gIGNvbnN0IGhhc0RlbGV0ZWRGbG93ID0gZGlmZmVyZW5jZUJ5KGluaXRpYWxDb21tb25GbG93c0dyb3VwPy5mbG93cyA/PyBbXSwgY29tbW9uRmxvd3NHcm91cD8uZmxvd3MgPz8gW10sICdfaWQnKS5sZW5ndGggPiAwO1xuXG4gIHJldHVybiBoYXNDaGFuZ2VkIHx8IGhhc0RlbGV0ZWRGbG93ID8gKGNvbW1vbkZsb3dzR3JvdXA/LmZsb3dzID8/IFtdKS5tYXAoZmxvdyA9PiBvbWl0KGZsb3csICdfaWQnLCAnX2hhc0NoYW5nZWQnKSkgOiBudWxsO1xufTtcblxuY29uc3QgZ2V0UGxhbnNDaGFuZ2VPdXRwdXQgPSAoZmxvd3NHcm91cHM6IEZsb3dHcm91cFZNW10sIGluaXRpYWxGbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSk6IFBsYW5bXSB8IG51bGwgPT4ge1xuICBjb25zdCBwbGFuc0dyb3VwcyA9IGZsb3dzR3JvdXBzLmZpbHRlcihmbG93R3JvdXAgPT4gZmxvd0dyb3VwLl9pZCAhPT0gJ2Zsb3dzR3JvdXBfY29tbW9uRmxvdycpO1xuICBjb25zdCBpbml0aWFsUGxhbnNHcm91cHMgPSBpbml0aWFsRmxvd3NHcm91cHMuZmlsdGVyKGZsb3dHcm91cCA9PiBmbG93R3JvdXAuX2lkICE9PSAnZmxvd3NHcm91cF9jb21tb25GbG93Jyk7XG5cbiAgLy8gR2V0IHBsYW5zIHdpdGggY2hhbmdlZCBmbG93c1xuICBjb25zdCBwbGFuc0dyb3Vwc1dpdGhDaGFuZ2VkRmxvd3MgPSBwbGFuc0dyb3Vwcy5maWx0ZXIocGxhbiA9PiBwbGFuLmZsb3dzLnNvbWUoZmxvdyA9PiBmbG93Ll9oYXNDaGFuZ2VkKSk7XG5cbiAgLy8gR2V0IHBsYW5zIHdpdGggZGVsZXRlZCBmbG93c1xuICBjb25zdCBwbGFuc0dyb3Vwc1dpdGhEZWxldGVkRmxvd3M6IEZsb3dHcm91cFZNW10gPSBbXTtcblxuICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgZGVsZXRlZCBmbG93cyBpbiBpbml0aWFsIGluaXRpYWxQbGFuc0dyb3Vwc1xuICBpbml0aWFsUGxhbnNHcm91cHMuZm9yRWFjaChwbGFuID0+IHtcbiAgICBjb25zdCBwbGFuR3JvdXBUb0NvbXBhcmUgPSBwbGFuc0dyb3Vwcy5maW5kKHAgPT4gcC5fcGxhbklkID09PSBwbGFuLl9wbGFuSWQpO1xuICAgIGlmIChwbGFuR3JvdXBUb0NvbXBhcmUgJiYgZGlmZmVyZW5jZUJ5KHBsYW4uZmxvd3MsIHBsYW5Hcm91cFRvQ29tcGFyZT8uZmxvd3MgPz8gW10sICdfaWQnKS5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBJZiB0aGVyZSBhcmUgZGVsZXRlZCBmbG93cywgd2UgbmVlZCB0byByZXR1cm4gdGhlIGNvbXBsZXRlIHBsYW4gd2l0aCB0aGUgbmV3IGZsb3dzXG4gICAgICBwbGFuc0dyb3Vwc1dpdGhEZWxldGVkRmxvd3MucHVzaChwbGFuR3JvdXBUb0NvbXBhcmUpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gTWVyZ2UgcGxhbnMgd2l0aCBjaGFuZ2VkIGZsb3dzIGFuZCBwbGFucyB3aXRoIGRlbGV0ZWQgZmxvd3NcbiAgY29uc3QgcGxhbnNXaXRoQ2hhbmdlZEZsb3dzT3V0cHV0ID0gdW5pb25CeShbLi4ucGxhbnNHcm91cHNXaXRoQ2hhbmdlZEZsb3dzLCAuLi5wbGFuc0dyb3Vwc1dpdGhEZWxldGVkRmxvd3NdLCAnX3BsYW5JZCcpLm1hcChwbGFuID0+ICh7XG4gICAgLi4ub21pdChwbGFuLCAnX2lkJywgJ19pY29uJywgJ19wbGFuSWQnKSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiAtLSBwbGFuSWQgaXMgYWx3YXlzIGRlZmluZWRcbiAgICBpZDogcGxhbi5fcGxhbklkISxcbiAgICBmbG93czogcGxhbi5mbG93cy5tYXAoZmxvdyA9PiBvbWl0KGZsb3csICdfaWQnLCAnX2hhc0NoYW5nZWQnKSksXG4gIH0pKTtcblxuICByZXR1cm4gcGxhbnNXaXRoQ2hhbmdlZEZsb3dzT3V0cHV0Lmxlbmd0aCA+IDAgPyBwbGFuc1dpdGhDaGFuZ2VkRmxvd3NPdXRwdXQgOiBudWxsO1xufTtcbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2FwaUluZm9cIj5cbiAgICA8c3BhbiBjbGFzcz1cImdpby1iYWRnZS1wcmltYXJ5XCI+XG4gICAgICB7eyBhcGlUeXBlIHwgdGl0bGVjYXNlIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImdpby1iYWRnZS1uZXV0cmFsXCJcbiAgICAgIFttYXRUb29sdGlwXT1cImNvbm5lY3RvcnNUb29sdGlwXCJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImdpby1wb2xpY3ktc3R1ZGlvX190b29sdGlwLWxpbmUtYnJlYWtcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiAqbmdGb3I9XCJsZXQgZW50cnlwb2ludCBvZiBlbnRyeXBvaW50c0luZm9cIiBjbGFzcz1cImdpby1sZWZ0XCIgW3N2Z0ljb25dPVwiZW50cnlwb2ludC5pY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtaWNvbiAqbmdGb3I9XCJsZXQgZW5kcG9pbnQgb2YgZW5kcG9pbnRzSW5mb1wiIGNsYXNzPVwiZ2lvLWxlZnRcIiBbc3ZnSWNvbl09XCJlbmRwb2ludC5pY29uXCI+PC9tYXQtaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2J0blwiPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlU2F2ZUJ1dHRvblwiIChjbGljayk9XCJvblNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJfX2Zsb3dzTWVudVwiPlxuICAgIDxnaW8tcHMtZmxvd3MtbWVudVxuICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICBbZmxvd0V4ZWN1dGlvbl09XCJmbG93RXhlY3V0aW9uXCJcbiAgICAgIFtmbG93c0dyb3Vwc109XCJmbG93c0dyb3Vwc1wiXG4gICAgICBbZW50cnlwb2ludHNdPVwiZW50cnlwb2ludHNJbmZvXCJcbiAgICAgIChmbG93c0dyb3Vwc0NoYW5nZSk9XCJvbkZsb3dzR3JvdXBzQ2hhbmdlKCRldmVudClcIlxuICAgICAgKGZsb3dFeGVjdXRpb25DaGFuZ2UpPVwib25GbG93RXhlY3V0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgWyhzZWxlY3RlZEZsb3cpXT1cInNlbGVjdGVkRmxvd1wiXG4gICAgPjwvZ2lvLXBzLWZsb3dzLW1lbnU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3cmFwcGVyX19mbG93RGV0YWlsc1wiPlxuICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzXG4gICAgICBbYXBpVHlwZV09XCJhcGlUeXBlXCJcbiAgICAgIFtmbG93XT1cInNlbGVjdGVkRmxvd1wiXG4gICAgICBbZW50cnlwb2ludHNJbmZvXT1cImVudHJ5cG9pbnRzSW5mb1wiXG4gICAgICBbZW5kcG9pbnRzSW5mb109XCJlbmRwb2ludHNJbmZvXCJcbiAgICAgIChmbG93Q2hhbmdlKT1cIm9uU2VsZWN0ZWRGbG93Q2hhbmdlKCRldmVudClcIlxuICAgICAgKGRlbGV0ZUZsb3cpPVwib25EZWxldGVTZWxlY3RlZEZsb3coJGV2ZW50KVwiXG4gICAgPjwvZ2lvLXBzLWZsb3ctZGV0YWlscz5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBvbGljeS1zdHVkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvZ2lvLXBvbGljeS1zdHVkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvZ2lvLXBvbGljeS1zdHVkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQVU1RixNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBWUU7O1dBRUc7UUFFSSxvQkFBZSxHQUFvQixFQUFFLENBQUM7UUFFN0M7O1dBRUc7UUFFSSxrQkFBYSxHQUFvQixFQUFFLENBQUM7UUFHcEMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFHekIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUduQixhQUFRLEdBQWEsRUFBRSxDQUFDO1FBRS9COztZQUVJO1FBRUcsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFFdEMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRXZCLGlCQUFZLEdBQVksU0FBUyxDQUFDO1FBRWxDLGdCQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUVoQyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFaEMsZ0ZBQWdGO1FBQ3hFLHVCQUFrQixHQUFrQixFQUFFLENBQUM7UUFFdkMsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO0tBd0V6QztJQXZFUSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQy9HLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUN6QjtpQkFDRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUNqQjtRQUVELElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFdEQsNkNBQTZDO1lBQzdDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFO2dCQUMxRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xEO1NBQ0Y7SUFDSCxDQUFDO0lBRU0scUJBQXFCLENBQUMsYUFBNEI7UUFDdkQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxXQUEwQjtRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxJQUFZO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELEdBQUcsU0FBUztZQUNaLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsSUFBWTtRQUN0Qyw2REFBNkQ7UUFDN0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9GLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELEdBQUcsU0FBUztZQUNaLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUN2RCxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXRILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVNLE1BQU07UUFDWCxtREFBbUQ7UUFDbkQsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVwRiw0Q0FBNEM7UUFDNUMsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUV0RixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNiLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsR0FBRyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDL0UsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0hBcEhVLHdCQUF3QjswR0FBeEIsd0JBQXdCLCtTQzFCckMsK3RFQWdFQTs0RkR0Q2Esd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLG1CQUFtQjs4QkFNdEIsT0FBTztzQkFEYixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBT0MsZUFBZTtzQkFEckIsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxJQUFJO3NCQURWLE1BQU07O0FBd0ZULE1BQU0sY0FBYyxHQUFHLENBQUMsY0FBc0IsRUFBRSxFQUFFLFFBQWdCLEVBQUUsRUFBaUIsRUFBRTtJQUNyRixNQUFNLGNBQWMsR0FBZ0I7UUFDbEMsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixJQUFJLEVBQUUsY0FBYztRQUNwQixLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQzFGLENBQUM7SUFFRixPQUFPO1FBQ0wsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwQixHQUFHLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUM1QixLQUFLLEVBQUUsWUFBWTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDekYsQ0FBQyxDQUFDO1FBQ0gsY0FBYztLQUNmLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsV0FBMEIsRUFBRSxrQkFBaUMsRUFBaUIsRUFBRTtJQUM1RyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLHVCQUF1QixDQUFDLENBQUM7SUFDbEcsTUFBTSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLHVCQUF1QixDQUFDLENBQUM7SUFDaEgsMENBQTBDO0lBQzFDLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFMUUsMENBQTBDO0lBQzFDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLGdCQUFnQixFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUUzSCxPQUFPLFVBQVUsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM3SCxDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsV0FBMEIsRUFBRSxrQkFBaUMsRUFBaUIsRUFBRTtJQUM1RyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyx1QkFBdUIsQ0FBQyxDQUFDO0lBQy9GLE1BQU0sa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyx1QkFBdUIsQ0FBQyxDQUFDO0lBRTdHLCtCQUErQjtJQUMvQixNQUFNLDJCQUEyQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBRTFHLCtCQUErQjtJQUMvQixNQUFNLDJCQUEyQixHQUFrQixFQUFFLENBQUM7SUFFdEQsaUVBQWlFO0lBQ2pFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNoQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RSxJQUFJLGtCQUFrQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyRyxxRkFBcUY7WUFDckYsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILDhEQUE4RDtJQUM5RCxNQUFNLDJCQUEyQixHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsMkJBQTJCLEVBQUUsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1FBQ3hDLGdHQUFnRztRQUNoRyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQVE7UUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDaEUsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDckYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZGlmZmVyZW5jZUJ5LCBmbGF0dGVuLCBpc0VxdWFsLCBvbWl0LCB1bmlvbkJ5LCB1bmlxdWVJZCB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEFwaVR5cGUsIENvbm5lY3RvckluZm8sIEZsb3csIEZsb3dFeGVjdXRpb24sIFBsYW4sIFBvbGljeSwgU2F2ZU91dHB1dCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IEZsb3dHcm91cFZNLCBGbG93Vk0gfSBmcm9tICcuL2dpby1wb2xpY3ktc3R1ZGlvLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBvbGljeS1zdHVkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBvbGljeS1zdHVkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcG9saWN5LXN0dWRpby5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXBpVHlwZSE6IEFwaVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZsb3dFeGVjdXRpb24hOiBGbG93RXhlY3V0aW9uO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGVudHJ5cG9pbnRzIHRvIGRpc3BsYXlcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbnRyeXBvaW50c0luZm86IENvbm5lY3RvckluZm9bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGVuZHBvaW50cyB0byBkaXNwbGF5XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZW5kcG9pbnRzSW5mbzogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbW1vbkZsb3dzOiBGbG93W10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhbnM6IFBsYW5bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb2xpY2llczogUG9saWN5W10gPSBbXTtcblxuICAvKipcbiAgICogUmV0dXJuIHdoYXQgaXMgbmVlZGVkIHRvIHNhdmUuXG4gICAqKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxTYXZlT3V0cHV0PigpO1xuXG4gIHB1YmxpYyBjb25uZWN0b3JzVG9vbHRpcCA9ICcnO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3c/OiBGbG93Vk0gPSB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZsb3dzR3JvdXBzOiBGbG93R3JvdXBWTVtdID0gW107XG5cbiAgcHVibGljIGRpc2FibGVTYXZlQnV0dG9uID0gdHJ1ZTtcblxuICAvLyBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgaW5pdGlhbCBmbG93cyBncm91cHMgdG8ga25vdyBpZiB0aGVyZSBhcmUgZGVsZXRlZCBmbG93c1xuICBwcml2YXRlIGluaXRpYWxGbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSA9IFtdO1xuXG4gIHByaXZhdGUgaGFzRmxvd0V4ZWN1dGlvbkNoYW5nZWQgPSBmYWxzZTtcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5lbnRyeXBvaW50c0luZm8gfHwgY2hhbmdlcy5lbmRwb2ludHNJbmZvKSB7XG4gICAgICB0aGlzLmNvbm5lY3RvcnNUb29sdGlwID0gYEVudHJ5cG9pbnRzOiAkeyh0aGlzLmVudHJ5cG9pbnRzSW5mbyA/PyBbXSkubWFwKGUgPT4gZS5uYW1lKS5qb2luKCcsICcpfVxcbkVuZHBvaW50czogJHsoXG4gICAgICAgIHRoaXMuZW5kcG9pbnRzSW5mbyA/PyBbXVxuICAgICAgKVxuICAgICAgICAubWFwKGUgPT4gZS5uYW1lKVxuICAgICAgICAuam9pbignLCAnKX1gO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmNvbW1vbkZsb3dzIHx8IGNoYW5nZXMucGxhbnMpIHtcbiAgICAgIHRoaXMuZGlzYWJsZVNhdmVCdXR0b24gPSB0cnVlO1xuICAgICAgdGhpcy5mbG93c0dyb3VwcyA9IGdldEZsb3dzR3JvdXBzKHRoaXMuY29tbW9uRmxvd3MsIHRoaXMucGxhbnMpO1xuICAgICAgdGhpcy5pbml0aWFsRmxvd3NHcm91cHMgPSBjbG9uZURlZXAodGhpcy5mbG93c0dyb3Vwcyk7XG5cbiAgICAgIC8vIFNlbGVjdCBmaXJzdCBmbG93IGJ5IGRlZmF1bHQgb24gZmlyc3QgbG9hZFxuICAgICAgaWYgKGNoYW5nZXMuY29tbW9uRmxvd3M/LmlzRmlyc3RDaGFuZ2UoKSB8fCBjaGFuZ2VzLnBsYW5zPy5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZsb3cgPSB0aGlzLmZsb3dzR3JvdXBzWzBdLmZsb3dzWzBdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkZsb3dFeGVjdXRpb25DaGFuZ2UoZmxvd0V4ZWN1dGlvbjogRmxvd0V4ZWN1dGlvbik6IHZvaWQge1xuICAgIHRoaXMuaGFzRmxvd0V4ZWN1dGlvbkNoYW5nZWQgPSAhaXNFcXVhbCh0aGlzLmZsb3dFeGVjdXRpb24sIGZsb3dFeGVjdXRpb24pO1xuICAgIGlmICh0aGlzLmhhc0Zsb3dFeGVjdXRpb25DaGFuZ2VkKSB7XG4gICAgICB0aGlzLmRpc2FibGVTYXZlQnV0dG9uID0gZmFsc2U7XG4gICAgICB0aGlzLmZsb3dFeGVjdXRpb24gPSBmbG93RXhlY3V0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkZsb3dzR3JvdXBzQ2hhbmdlKGZsb3dzR3JvdXBzOiBGbG93R3JvdXBWTVtdKTogdm9pZCB7XG4gICAgdGhpcy5mbG93c0dyb3VwcyA9IGZsb3dzR3JvdXBzO1xuICAgIHRoaXMuZGlzYWJsZVNhdmVCdXR0b24gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkRmxvd0NoYW5nZShmbG93OiBGbG93Vk0pOiB2b2lkIHtcbiAgICB0aGlzLmZsb3dzR3JvdXBzID0gdGhpcy5mbG93c0dyb3Vwcy5tYXAoZmxvd0dyb3VwID0+ICh7XG4gICAgICAuLi5mbG93R3JvdXAsXG4gICAgICBmbG93czogZmxvd0dyb3VwLmZsb3dzLm1hcChmID0+IChmLl9pZCA9PT0gZmxvdy5faWQgPyBmbG93IDogZikpLFxuICAgIH0pKTtcbiAgICB0aGlzLnNlbGVjdGVkRmxvdyA9IGZsb3c7XG4gICAgdGhpcy5kaXNhYmxlU2F2ZUJ1dHRvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlU2VsZWN0ZWRGbG93KGZsb3c6IEZsb3dWTSk6IHZvaWQge1xuICAgIC8vIERlZmluZSBuZXh0IHNlbGVjdGVkIGZsb3cgYW5kIHJlbW92ZSBmbG93IGZyb20gZmxvd3NHcm91cHNcbiAgICBjb25zdCBhbGxGbG93c0lkID0gZmxhdHRlbih0aGlzLmZsb3dzR3JvdXBzLm1hcChmbG93R3JvdXAgPT4gZmxvd0dyb3VwLmZsb3dzKSkubWFwKGYgPT4gZi5faWQpO1xuICAgIGNvbnN0IGZsb3dUb0RlbGV0ZUluZGV4ID0gYWxsRmxvd3NJZC5pbmRleE9mKGZsb3cuX2lkKTtcbiAgICBjb25zdCBuZXh0U2VsZWN0ZWRGbG93ID0gYWxsRmxvd3NJZFtmbG93VG9EZWxldGVJbmRleCArIDFdID8/IGFsbEZsb3dzSWRbZmxvd1RvRGVsZXRlSW5kZXggLSAxXTtcbiAgICB0aGlzLmZsb3dzR3JvdXBzID0gdGhpcy5mbG93c0dyb3Vwcy5tYXAoZmxvd0dyb3VwID0+ICh7XG4gICAgICAuLi5mbG93R3JvdXAsXG4gICAgICBmbG93czogZmxvd0dyb3VwLmZsb3dzLmZpbHRlcihmID0+IGYuX2lkICE9PSBmbG93Ll9pZCksXG4gICAgfSkpO1xuXG4gICAgdGhpcy5zZWxlY3RlZEZsb3cgPSBmbGF0dGVuKHRoaXMuZmxvd3NHcm91cHMubWFwKGZsb3dHcm91cCA9PiBmbG93R3JvdXAuZmxvd3MpKS5maW5kKGYgPT4gZi5faWQgPT09IG5leHRTZWxlY3RlZEZsb3cpO1xuXG4gICAgdGhpcy5kaXNhYmxlU2F2ZUJ1dHRvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uU2F2ZSgpOiB2b2lkIHtcbiAgICAvLyBFbWl0IGNvbW1vbiBmbG93cyBvbmx5IGlmIHRoZXkgaGF2ZSBiZWVuIHVwZGF0ZWRcbiAgICBjb25zdCBjb21tb25GbG93cyA9IGdldENvbW1vbkZsb3dzT3V0cHV0KHRoaXMuZmxvd3NHcm91cHMsIHRoaXMuaW5pdGlhbEZsb3dzR3JvdXBzKTtcblxuICAgIC8vIEVtaXQgcGxhbnMgb25seSBpZiB0aGV5IGhhdmUgYmVlbiB1cGRhdGVkXG4gICAgY29uc3QgcGxhbnNUb1VwZGF0ZSA9IGdldFBsYW5zQ2hhbmdlT3V0cHV0KHRoaXMuZmxvd3NHcm91cHMsIHRoaXMuaW5pdGlhbEZsb3dzR3JvdXBzKTtcblxuICAgIHRoaXMuc2F2ZS5lbWl0KHtcbiAgICAgIC4uLihjb21tb25GbG93cyA/IHsgY29tbW9uRmxvd3MgfSA6IHt9KSxcbiAgICAgIC4uLihwbGFuc1RvVXBkYXRlID8geyBwbGFuc1RvVXBkYXRlIH0gOiB7fSksXG4gICAgICAuLi4odGhpcy5oYXNGbG93RXhlY3V0aW9uQ2hhbmdlZCA/IHsgZmxvd0V4ZWN1dGlvbjogdGhpcy5mbG93RXhlY3V0aW9uIH0gOiB7fSksXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgZ2V0Rmxvd3NHcm91cHMgPSAoY29tbW9uRmxvd3M6IEZsb3dbXSA9IFtdLCBwbGFuczogUGxhbltdID0gW10pOiBGbG93R3JvdXBWTVtdID0+IHtcbiAgY29uc3QgY29tbUZsb3dzR3JvdXA6IEZsb3dHcm91cFZNID0ge1xuICAgIF9pZDogJ2Zsb3dzR3JvdXBfY29tbW9uRmxvdycsXG4gICAgbmFtZTogJ0NvbW1vbiBmbG93cycsXG4gICAgZmxvd3M6IGNvbW1vbkZsb3dzLm1hcChmbG93ID0+ICh7IC4uLmZsb3csIF9pZDogdW5pcXVlSWQoJ2Zsb3dfJyksIF9oYXNDaGFuZ2VkOiBmYWxzZSB9KSksXG4gIH07XG5cbiAgcmV0dXJuIFtcbiAgICAuLi5wbGFucy5tYXAocGxhbiA9PiAoe1xuICAgICAgX2lkOiB1bmlxdWVJZCgnZmxvd3NHcm91cF8nKSxcbiAgICAgIF9pY29uOiAnZ2lvOnNoaWVsZCcsXG4gICAgICBfcGxhbklkOiBwbGFuLmlkLFxuICAgICAgbmFtZTogcGxhbi5uYW1lLFxuICAgICAgZmxvd3M6IHBsYW4uZmxvd3MubWFwKGZsb3cgPT4gKHsgLi4uZmxvdywgX2lkOiB1bmlxdWVJZCgnZmxvd18nKSwgX2hhc0NoYW5nZWQ6IGZhbHNlIH0pKSxcbiAgICB9KSksXG4gICAgY29tbUZsb3dzR3JvdXAsXG4gIF07XG59O1xuXG5jb25zdCBnZXRDb21tb25GbG93c091dHB1dCA9IChmbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSwgaW5pdGlhbEZsb3dzR3JvdXBzOiBGbG93R3JvdXBWTVtdKTogRmxvd1tdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNvbW1vbkZsb3dzR3JvdXAgPSBmbG93c0dyb3Vwcy5maW5kKGZsb3dHcm91cCA9PiBmbG93R3JvdXAuX2lkID09PSAnZmxvd3NHcm91cF9jb21tb25GbG93Jyk7XG4gIGNvbnN0IGluaXRpYWxDb21tb25GbG93c0dyb3VwID0gaW5pdGlhbEZsb3dzR3JvdXBzLmZpbmQoZmxvd0dyb3VwID0+IGZsb3dHcm91cC5faWQgPT09ICdmbG93c0dyb3VwX2NvbW1vbkZsb3cnKTtcbiAgLy8gQ2hlY2sgaWYgY29tbW9uIGZsb3dzIGhhdmUgYmVlbiB1cGRhdGVkXG4gIGNvbnN0IGhhc0NoYW5nZWQgPSBjb21tb25GbG93c0dyb3VwPy5mbG93cy5zb21lKGZsb3cgPT4gZmxvdy5faGFzQ2hhbmdlZCk7XG5cbiAgLy8gQ2hlY2sgaWYgY29tbW9uIGZsb3dzIGhhdmUgYmVlbiBkZWxldGVkXG4gIGNvbnN0IGhhc0RlbGV0ZWRGbG93ID0gZGlmZmVyZW5jZUJ5KGluaXRpYWxDb21tb25GbG93c0dyb3VwPy5mbG93cyA/PyBbXSwgY29tbW9uRmxvd3NHcm91cD8uZmxvd3MgPz8gW10sICdfaWQnKS5sZW5ndGggPiAwO1xuXG4gIHJldHVybiBoYXNDaGFuZ2VkIHx8IGhhc0RlbGV0ZWRGbG93ID8gKGNvbW1vbkZsb3dzR3JvdXA/LmZsb3dzID8/IFtdKS5tYXAoZmxvdyA9PiBvbWl0KGZsb3csICdfaWQnLCAnX2hhc0NoYW5nZWQnKSkgOiBudWxsO1xufTtcblxuY29uc3QgZ2V0UGxhbnNDaGFuZ2VPdXRwdXQgPSAoZmxvd3NHcm91cHM6IEZsb3dHcm91cFZNW10sIGluaXRpYWxGbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSk6IFBsYW5bXSB8IG51bGwgPT4ge1xuICBjb25zdCBwbGFuc0dyb3VwcyA9IGZsb3dzR3JvdXBzLmZpbHRlcihmbG93R3JvdXAgPT4gZmxvd0dyb3VwLl9pZCAhPT0gJ2Zsb3dzR3JvdXBfY29tbW9uRmxvdycpO1xuICBjb25zdCBpbml0aWFsUGxhbnNHcm91cHMgPSBpbml0aWFsRmxvd3NHcm91cHMuZmlsdGVyKGZsb3dHcm91cCA9PiBmbG93R3JvdXAuX2lkICE9PSAnZmxvd3NHcm91cF9jb21tb25GbG93Jyk7XG5cbiAgLy8gR2V0IHBsYW5zIHdpdGggY2hhbmdlZCBmbG93c1xuICBjb25zdCBwbGFuc0dyb3Vwc1dpdGhDaGFuZ2VkRmxvd3MgPSBwbGFuc0dyb3Vwcy5maWx0ZXIocGxhbiA9PiBwbGFuLmZsb3dzLnNvbWUoZmxvdyA9PiBmbG93Ll9oYXNDaGFuZ2VkKSk7XG5cbiAgLy8gR2V0IHBsYW5zIHdpdGggZGVsZXRlZCBmbG93c1xuICBjb25zdCBwbGFuc0dyb3Vwc1dpdGhEZWxldGVkRmxvd3M6IEZsb3dHcm91cFZNW10gPSBbXTtcblxuICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgZGVsZXRlZCBmbG93cyBpbiBpbml0aWFsIGluaXRpYWxQbGFuc0dyb3Vwc1xuICBpbml0aWFsUGxhbnNHcm91cHMuZm9yRWFjaChwbGFuID0+IHtcbiAgICBjb25zdCBwbGFuR3JvdXBUb0NvbXBhcmUgPSBwbGFuc0dyb3Vwcy5maW5kKHAgPT4gcC5fcGxhbklkID09PSBwbGFuLl9wbGFuSWQpO1xuICAgIGlmIChwbGFuR3JvdXBUb0NvbXBhcmUgJiYgZGlmZmVyZW5jZUJ5KHBsYW4uZmxvd3MsIHBsYW5Hcm91cFRvQ29tcGFyZT8uZmxvd3MgPz8gW10sICdfaWQnKS5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBJZiB0aGVyZSBhcmUgZGVsZXRlZCBmbG93cywgd2UgbmVlZCB0byByZXR1cm4gdGhlIGNvbXBsZXRlIHBsYW4gd2l0aCB0aGUgbmV3IGZsb3dzXG4gICAgICBwbGFuc0dyb3Vwc1dpdGhEZWxldGVkRmxvd3MucHVzaChwbGFuR3JvdXBUb0NvbXBhcmUpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gTWVyZ2UgcGxhbnMgd2l0aCBjaGFuZ2VkIGZsb3dzIGFuZCBwbGFucyB3aXRoIGRlbGV0ZWQgZmxvd3NcbiAgY29uc3QgcGxhbnNXaXRoQ2hhbmdlZEZsb3dzT3V0cHV0ID0gdW5pb25CeShbLi4ucGxhbnNHcm91cHNXaXRoQ2hhbmdlZEZsb3dzLCAuLi5wbGFuc0dyb3Vwc1dpdGhEZWxldGVkRmxvd3NdLCAnX3BsYW5JZCcpLm1hcChwbGFuID0+ICh7XG4gICAgLi4ub21pdChwbGFuLCAnX2lkJywgJ19pY29uJywgJ19wbGFuSWQnKSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiAtLSBwbGFuSWQgaXMgYWx3YXlzIGRlZmluZWRcbiAgICBpZDogcGxhbi5fcGxhbklkISxcbiAgICBmbG93czogcGxhbi5mbG93cy5tYXAoZmxvdyA9PiBvbWl0KGZsb3csICdfaWQnLCAnX2hhc0NoYW5nZWQnKSksXG4gIH0pKTtcblxuICByZXR1cm4gcGxhbnNXaXRoQ2hhbmdlZEZsb3dzT3V0cHV0Lmxlbmd0aCA+IDAgPyBwbGFuc1dpdGhDaGFuZ2VkRmxvd3NPdXRwdXQgOiBudWxsO1xufTtcbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2FwaUluZm9cIj5cbiAgICA8c3BhbiBjbGFzcz1cImdpby1iYWRnZS1wcmltYXJ5XCI+XG4gICAgICB7eyBhcGlUeXBlIHwgdGl0bGVjYXNlIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImdpby1iYWRnZS1uZXV0cmFsXCJcbiAgICAgIFttYXRUb29sdGlwXT1cImNvbm5lY3RvcnNUb29sdGlwXCJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImdpby1wb2xpY3ktc3R1ZGlvX190b29sdGlwLWxpbmUtYnJlYWtcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiAqbmdGb3I9XCJsZXQgZW50cnlwb2ludCBvZiBlbnRyeXBvaW50c0luZm9cIiBjbGFzcz1cImdpby1sZWZ0XCIgW3N2Z0ljb25dPVwiZW50cnlwb2ludC5pY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtaWNvbiAqbmdGb3I9XCJsZXQgZW5kcG9pbnQgb2YgZW5kcG9pbnRzSW5mb1wiIGNsYXNzPVwiZ2lvLWxlZnRcIiBbc3ZnSWNvbl09XCJlbmRwb2ludC5pY29uXCI+PC9tYXQtaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2J0blwiPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlU2F2ZUJ1dHRvblwiIChjbGljayk9XCJvblNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJfX2Zsb3dzTWVudVwiPlxuICAgIDxnaW8tcHMtZmxvd3MtbWVudVxuICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICBbZmxvd0V4ZWN1dGlvbl09XCJmbG93RXhlY3V0aW9uXCJcbiAgICAgIFtmbG93c0dyb3Vwc109XCJmbG93c0dyb3Vwc1wiXG4gICAgICBbZW50cnlwb2ludHNdPVwiZW50cnlwb2ludHNJbmZvXCJcbiAgICAgIChmbG93c0dyb3Vwc0NoYW5nZSk9XCJvbkZsb3dzR3JvdXBzQ2hhbmdlKCRldmVudClcIlxuICAgICAgKGZsb3dFeGVjdXRpb25DaGFuZ2UpPVwib25GbG93RXhlY3V0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgWyhzZWxlY3RlZEZsb3cpXT1cInNlbGVjdGVkRmxvd1wiXG4gICAgPjwvZ2lvLXBzLWZsb3dzLW1lbnU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3cmFwcGVyX19mbG93RGV0YWlsc1wiPlxuICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzXG4gICAgICBbYXBpVHlwZV09XCJhcGlUeXBlXCJcbiAgICAgIFtmbG93XT1cInNlbGVjdGVkRmxvd1wiXG4gICAgICBbZW50cnlwb2ludHNJbmZvXT1cImVudHJ5cG9pbnRzSW5mb1wiXG4gICAgICBbZW5kcG9pbnRzSW5mb109XCJlbmRwb2ludHNJbmZvXCJcbiAgICAgIFtwb2xpY2llc109XCJwb2xpY2llc1wiXG4gICAgICAoZmxvd0NoYW5nZSk9XCJvblNlbGVjdGVkRmxvd0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChkZWxldGVGbG93KT1cIm9uRGVsZXRlU2VsZWN0ZWRGbG93KCRldmVudClcIlxuICAgID48L2dpby1wcy1mbG93LWRldGFpbHM+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|