ng-configcat-publicapi-ui 4.0.1 → 4.0.2

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.
@@ -4,7 +4,8 @@ export { FormGenerator } from './_services/form-generator';
4
4
  export { FormHelper } from './_services/form-helper';
5
5
  export { AppDateAdapter } from './_services/app-data-adapter';
6
6
  export { ConfirmationDialogComponent } from './dialogs/confirmation-dialog/confirmation-dialog';
7
+ export { RerouteDialogComponent } from './dialogs/reroute-dialog/reroute-dialog';
7
8
  export { InfoDialogComponent } from './dialogs/info-dialog/info-dialog';
8
9
  export { ComparisonValueListHelper } from './_services/comparison-value-list-helper';
9
10
  export { MessagingService } from './_services/messaging.service';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUFFLGlCQUFpQixFQUFnQyxXQUFXLEVBQzBCLHNCQUFzQixFQUkvSCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBT25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBa0MsTUFBTSwwQ0FBMEMsQ0FBQztBQUNySCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gICAgVXNlckNvbXBhcmF0b3IsIFNlZ21lbnRDb21wYXJhdG9yLCBTZWdtZW50TGlzdE1vZGVsIGFzIElTZWdtZW50LCBTZXR0aW5nVHlwZSwgRmVhdHVyZUZsYWdMaW1pdGF0aW9ucyBhcyBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucyxcbiAgICBDb21wYXJpc29uVmFsdWVMaXN0TW9kZWwgYXMgSUNvbXBhcmlzb25WYWx1ZUxpc3RNb2RlbCwgQ29tcGFyaXNvblZhbHVlTW9kZWwgYXMgSUNvbXBhcmlzb25WYWx1ZU1vZGVsLCBQcmVyZXF1aXNpdGVDb21wYXJhdG9yLFxuICAgIFZhbHVlTW9kZWwgYXMgSVZhbHVlTW9kZWwsXG4gICAgQ29uZGl0aW9uTW9kZWwgYXMgSUNvbmRpdGlvbk1vZGVsLCBQcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uTW9kZWwgYXMgSVByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25Nb2RlbCwgU2VnbWVudENvbmRpdGlvbk1vZGVsIGFzIElTZWdtZW50Q29uZGl0aW9uTW9kZWwsIFVzZXJDb25kaXRpb25Nb2RlbCBhcyBJVXNlckNvbmRpdGlvbk1vZGVsLFxuICAgIFRhcmdldGluZ1J1bGVNb2RlbCBhcyBJVGFyZ2V0aW5nUnVsZU1vZGVsLCBQZXJjZW50YWdlT3B0aW9uTW9kZWwgYXMgSVBlcmNlbnRhZ2VPcHRpb25Nb2RlbCwgU2V0dGluZ0Zvcm11bGFNb2RlbCBhcyBJU2V0dGluZ1ZhbHVlTW9kZWxcbn0gZnJvbSAnbmctY29uZmlnY2F0LXB1YmxpY2FwaSc7XG5leHBvcnQgeyBVc2VyQ29tcGFyYXRvclRleHQsIFVzZXJDb21wYXJhdG9yVHlwZSB9IGZyb20gJy4vX21vZGVscy91c2VyLWNvbXBhcmF0b3InO1xuZXhwb3J0IHtcbiAgICBVcGRhdGVTZXR0aW5nVmFsdWVGb3JtLCBUYXJnZXRpbmdSdWxlRm9ybSwgQ29uZGl0aW9uRm9ybSxcbiAgICBQZXJjZW50YWdlT3B0aW9uRm9ybSwgQ29tcGFyaXNvblZhbHVlRm9ybSwgQ29tcGFyaXNvblZhbHVlTGlzdEZvcm0sXG4gICAgU2VnbWVudENvbmRpdGlvbkZvcm0sIFByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25Gb3JtLCBVc2VyQ29uZGl0aW9uRm9ybSwgVmFsdWVGb3JtLFxuICAgIElQcmVyZXF1aXNpdGVTZXR0aW5nLCBJRGVwZW5kZWVTZXR0aW5nXG59IGZyb20gJy4vX21vZGVscy9zZXR0aW5nLXZhbHVlLWZvcm1ncm91cCc7XG5leHBvcnQgeyBGb3JtR2VuZXJhdG9yIH0gZnJvbSAnLi9fc2VydmljZXMvZm9ybS1nZW5lcmF0b3InO1xuZXhwb3J0IHsgSVByZXJlcXVpc2l0ZUNoYW5nZWQgfSBmcm9tICcuL19tb2RlbHMvc2V0dGluZy12YWx1ZS1mb3JtZ3JvdXAnO1xuZXhwb3J0IHsgSUZsYWdTdGF0ZSB9IGZyb20gJy4vX21vZGVscy9mbGFnLXN0YXRlJztcbmV4cG9ydCB7IEZvcm1IZWxwZXIgfSBmcm9tICcuL19zZXJ2aWNlcy9mb3JtLWhlbHBlcidcbmV4cG9ydCB7IEFwcERhdGVBZGFwdGVyIH0gZnJvbSAnLi9fc2VydmljZXMvYXBwLWRhdGEtYWRhcHRlcic7XG5leHBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nJztcbmV4cG9ydCB7IEluZm9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvaW5mby1kaWFsb2cvaW5mby1kaWFsb2cnO1xuZXhwb3J0IHsgQ29tcGFyaXNvblZhbHVlTGlzdEhlbHBlciwgQ29tcGFyaXNvblZhbHVlTGlzdFBhcnNlUmVzdWx0IH0gZnJvbSAnLi9fc2VydmljZXMvY29tcGFyaXNvbi12YWx1ZS1saXN0LWhlbHBlcic7XG5leHBvcnQgeyBNZXNzYWdpbmdTZXJ2aWNlIH0gZnJvbSAnLi9fc2VydmljZXMvbWVzc2FnaW5nLnNlcnZpY2UnO1xuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsY0FBYyxFQUFFLGlCQUFpQixFQUFnQyxXQUFXLEVBQzBCLHNCQUFzQixFQUkvSCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBT25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBa0MsTUFBTSwwQ0FBMEMsQ0FBQztBQUNySCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHtcbiAgICBVc2VyQ29tcGFyYXRvciwgU2VnbWVudENvbXBhcmF0b3IsIFNlZ21lbnRMaXN0TW9kZWwgYXMgSVNlZ21lbnQsIFNldHRpbmdUeXBlLCBGZWF0dXJlRmxhZ0xpbWl0YXRpb25zIGFzIElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zLFxuICAgIENvbXBhcmlzb25WYWx1ZUxpc3RNb2RlbCBhcyBJQ29tcGFyaXNvblZhbHVlTGlzdE1vZGVsLCBDb21wYXJpc29uVmFsdWVNb2RlbCBhcyBJQ29tcGFyaXNvblZhbHVlTW9kZWwsIFByZXJlcXVpc2l0ZUNvbXBhcmF0b3IsXG4gICAgVmFsdWVNb2RlbCBhcyBJVmFsdWVNb2RlbCxcbiAgICBDb25kaXRpb25Nb2RlbCBhcyBJQ29uZGl0aW9uTW9kZWwsIFByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25Nb2RlbCBhcyBJUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbk1vZGVsLCBTZWdtZW50Q29uZGl0aW9uTW9kZWwgYXMgSVNlZ21lbnRDb25kaXRpb25Nb2RlbCwgVXNlckNvbmRpdGlvbk1vZGVsIGFzIElVc2VyQ29uZGl0aW9uTW9kZWwsXG4gICAgVGFyZ2V0aW5nUnVsZU1vZGVsIGFzIElUYXJnZXRpbmdSdWxlTW9kZWwsIFBlcmNlbnRhZ2VPcHRpb25Nb2RlbCBhcyBJUGVyY2VudGFnZU9wdGlvbk1vZGVsLCBTZXR0aW5nRm9ybXVsYU1vZGVsIGFzIElTZXR0aW5nVmFsdWVNb2RlbFxufSBmcm9tICduZy1jb25maWdjYXQtcHVibGljYXBpJztcbmV4cG9ydCB7IFVzZXJDb21wYXJhdG9yVGV4dCwgVXNlckNvbXBhcmF0b3JUeXBlIH0gZnJvbSAnLi9fbW9kZWxzL3VzZXItY29tcGFyYXRvcic7XG5leHBvcnQge1xuICAgIFVwZGF0ZVNldHRpbmdWYWx1ZUZvcm0sIFRhcmdldGluZ1J1bGVGb3JtLCBDb25kaXRpb25Gb3JtLFxuICAgIFBlcmNlbnRhZ2VPcHRpb25Gb3JtLCBDb21wYXJpc29uVmFsdWVGb3JtLCBDb21wYXJpc29uVmFsdWVMaXN0Rm9ybSxcbiAgICBTZWdtZW50Q29uZGl0aW9uRm9ybSwgUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbkZvcm0sIFVzZXJDb25kaXRpb25Gb3JtLCBWYWx1ZUZvcm0sXG4gICAgSVByZXJlcXVpc2l0ZVNldHRpbmcsIElEZXBlbmRlZVNldHRpbmdcbn0gZnJvbSAnLi9fbW9kZWxzL3NldHRpbmctdmFsdWUtZm9ybWdyb3VwJztcbmV4cG9ydCB7IEZvcm1HZW5lcmF0b3IgfSBmcm9tICcuL19zZXJ2aWNlcy9mb3JtLWdlbmVyYXRvcic7XG5leHBvcnQgeyBJUHJlcmVxdWlzaXRlQ2hhbmdlZCB9IGZyb20gJy4vX21vZGVscy9zZXR0aW5nLXZhbHVlLWZvcm1ncm91cCc7XG5leHBvcnQgeyBJRmxhZ1N0YXRlIH0gZnJvbSAnLi9fbW9kZWxzL2ZsYWctc3RhdGUnO1xuZXhwb3J0IHsgRm9ybUhlbHBlciB9IGZyb20gJy4vX3NlcnZpY2VzL2Zvcm0taGVscGVyJ1xuZXhwb3J0IHsgQXBwRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL19zZXJ2aWNlcy9hcHAtZGF0YS1hZGFwdGVyJztcbmV4cG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9ncy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cnO1xuZXhwb3J0IHsgUmVyb3V0ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9ncy9yZXJvdXRlLWRpYWxvZy9yZXJvdXRlLWRpYWxvZyc7XG5leHBvcnQgeyBJbmZvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2luZm8tZGlhbG9nL2luZm8tZGlhbG9nJztcbmV4cG9ydCB7IENvbXBhcmlzb25WYWx1ZUxpc3RIZWxwZXIsIENvbXBhcmlzb25WYWx1ZUxpc3RQYXJzZVJlc3VsdCB9IGZyb20gJy4vX3NlcnZpY2VzL2NvbXBhcmlzb24tdmFsdWUtbGlzdC1oZWxwZXInO1xuZXhwb3J0IHsgTWVzc2FnaW5nU2VydmljZSB9IGZyb20gJy4vX3NlcnZpY2VzL21lc3NhZ2luZy5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/button";
7
+ export class RerouteDialogComponent {
8
+ constructor(dialogRef, data) {
9
+ this.dialogRef = dialogRef;
10
+ this.data = data;
11
+ }
12
+ yes() {
13
+ this.dialogRef.close('yes');
14
+ }
15
+ cancel() {
16
+ this.dialogRef.close('cancel');
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RerouteDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: RerouteDialogComponent, selector: "app-reroute-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div [innerHTML]=\"data.body\"></div>\n</div>\n<br>\n<div mat-dialog-actions>\n <a href=\"{{data.yesButtonLink}}\" class=\"hidden-link\" target=\"_blank\" rel=\"noopener noreferrer\">\n <button type=\"button\" style=\"margin-right: 10px;\" mat-flat-button\n [color]=\"data.buttonColor ? data.buttonColor : 'primary'\" (click)=\"yes()\"\n data-robot=\"dialogYes\">{{data.yesButtonLabel ? data.yesButtonLabel : 'Yes'}}</button>\n </a>\n <button type=\"button\" mat-stroked-button (click)=\"cancel()\" data-robot=\"dialogNo\"\n *ngIf=\"!data.hideNoButton\">{{data.noButtonLabel ?\n data.noButtonLabel : 'Cancel'}}</button>\n</div>", styles: [".hidden-link:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RerouteDialogComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'app-reroute-dialog', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div [innerHTML]=\"data.body\"></div>\n</div>\n<br>\n<div mat-dialog-actions>\n <a href=\"{{data.yesButtonLink}}\" class=\"hidden-link\" target=\"_blank\" rel=\"noopener noreferrer\">\n <button type=\"button\" style=\"margin-right: 10px;\" mat-flat-button\n [color]=\"data.buttonColor ? data.buttonColor : 'primary'\" (click)=\"yes()\"\n data-robot=\"dialogYes\">{{data.yesButtonLabel ? data.yesButtonLabel : 'Yes'}}</button>\n </a>\n <button type=\"button\" mat-stroked-button (click)=\"cancel()\" data-robot=\"dialogNo\"\n *ngIf=\"!data.hideNoButton\">{{data.noButtonLabel ?\n data.noButtonLabel : 'Cancel'}}</button>\n</div>", styles: [".hidden-link:focus{outline:none}\n"] }]
24
+ }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
25
+ type: Inject,
26
+ args: [MAT_DIALOG_DATA]
27
+ }] }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVyb3V0ZS1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvZGlhbG9ncy9yZXJvdXRlLWRpYWxvZy9yZXJvdXRlLWRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9kaWFsb2dzL3Jlcm91dGUtZGlhbG9nL3Jlcm91dGUtZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFPekUsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxZQUNTLFNBQStDLEVBQ3RCLElBQWdCO1FBRHpDLGNBQVMsR0FBVCxTQUFTLENBQXNDO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDOUMsQ0FBQztJQUVMLEdBQUc7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBYlUsc0JBQXNCLDhDQUl2QixlQUFlO2tHQUpkLHNCQUFzQiwwRENSbkMsaXRCQWNNOzsyRkROTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkFRM0IsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlcm91dGUtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlcm91dGUtZGlhbG9nLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXJvdXRlLWRpYWxvZy5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVyb3V0ZURpYWxvZ0NvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFJlcm91dGVEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogRGlhbG9nRGF0YVxuICApIHsgfVxuXG4gIHllcygpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgneWVzJyk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoJ2NhbmNlbCcpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbiAgeWVzQnV0dG9uTGFiZWw6IHN0cmluZztcbiAgeWVzQnV0dG9uTGluazogc3RyaW5nO1xuICBub0J1dHRvbkxhYmVsOiBzdHJpbmc7XG4gIGJ1dHRvbkNvbG9yOiBzdHJpbmc7XG4gIGhpZGVOb0J1dHRvbj86IGJvb2xlYW47XG59IiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3tkYXRhLnRpdGxlfX08L2gxPlxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxkaXYgW2lubmVySFRNTF09XCJkYXRhLmJvZHlcIj48L2Rpdj5cbjwvZGl2PlxuPGJyPlxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDxhIGhyZWY9XCJ7e2RhdGEueWVzQnV0dG9uTGlua319XCIgY2xhc3M9XCJoaWRkZW4tbGlua1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIiBtYXQtZmxhdC1idXR0b25cbiAgICAgIFtjb2xvcl09XCJkYXRhLmJ1dHRvbkNvbG9yID8gZGF0YS5idXR0b25Db2xvciA6ICdwcmltYXJ5J1wiIChjbGljayk9XCJ5ZXMoKVwiXG4gICAgICBkYXRhLXJvYm90PVwiZGlhbG9nWWVzXCI+e3tkYXRhLnllc0J1dHRvbkxhYmVsID8gZGF0YS55ZXNCdXR0b25MYWJlbCA6ICdZZXMnfX08L2J1dHRvbj5cbiAgPC9hPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCIgZGF0YS1yb2JvdD1cImRpYWxvZ05vXCJcbiAgICAqbmdJZj1cIiFkYXRhLmhpZGVOb0J1dHRvblwiPnt7ZGF0YS5ub0J1dHRvbkxhYmVsID9cbiAgICBkYXRhLm5vQnV0dG9uTGFiZWwgOiAnQ2FuY2VsJ319PC9idXR0b24+XG48L2Rpdj4iXX0=
@@ -68,6 +68,7 @@ import { MessagingService } from './_services/messaging.service';
68
68
  import { DateTimePickerComponent } from './v2/feature-flag/date-time-picker/date-time-picker.component';
69
69
  import { DependeesDialogComponent } from './v2/feature-flag/dependees-dialog/dependees-dialog.component';
70
70
  import { InfoDialogComponent } from './dialogs/info-dialog/info-dialog';
71
+ import { RerouteDialogComponent } from './dialogs/reroute-dialog/reroute-dialog';
71
72
  import * as i0 from "@angular/core";
72
73
  export class NgConfigCatPublicApiUIModule {
73
74
  static forRoot(configurationFactory) {
@@ -116,7 +117,8 @@ export class NgConfigCatPublicApiUIModule {
116
117
  AceEditorComponent,
117
118
  FeatureFlagItemComponent,
118
119
  DateTimePickerComponent,
119
- DependeesDialogComponent], imports: [CommonModule,
120
+ DependeesDialogComponent,
121
+ RerouteDialogComponent], imports: [CommonModule,
120
122
  FormsModule,
121
123
  ReactiveFormsModule,
122
124
  BrowserAnimationsModule,
@@ -229,7 +231,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
229
231
  AceEditorComponent,
230
232
  FeatureFlagItemComponent,
231
233
  DateTimePickerComponent,
232
- DependeesDialogComponent
234
+ DependeesDialogComponent,
235
+ RerouteDialogComponent
233
236
  ],
234
237
  imports: [
235
238
  CommonModule,
@@ -282,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
282
285
  ]
283
286
  }]
284
287
  }], ctorParameters: () => [] });
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDeEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxN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c0I7d0JBQ3RCLHlCQUF5Qjt3QkFDekIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLCtCQUErQjt3QkFDL0IsNEJBQTRCO3dCQUM1Qix3QkFBd0I7cUJBQ3pCO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxRQUFRLEVBQUUsRUFBRSwyQkFBMkIsRUFBRSxJQUFJLEVBQUU7eUJBQ2hEO3dCQUVELGFBQWE7d0JBQ2IseUJBQXlCO3dCQUN6QixnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNldHRpbmdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWl0ZW0vc2V0dGluZy1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXR0aW5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3RzL3NldHRpbmctc2VsZWN0L3NldHRpbmctc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3RzL3Byb2R1Y3Qtc2VsZWN0L3Byb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdHMvY29uZmlnLXNlbGVjdC9jb25maWctc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0cy9lbnZpcm9ubWVudC1zZWxlY3QvZW52aXJvbm1lbnQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEF1dGhvcml6YXRpb25Db21wb25lbnQgfSBmcm9tICcuL2F1dGhvcml6YXRpb24vYXV0aG9yaXphdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBFeHBhbmREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvZXhwYW5kLWRpYWxvZy9leHBhbmQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFzb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvcmVhc29uLWRpYWxvZy9yZWFzb24tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXZlU25hY2tiYXJDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3Mvc2F2ZS1zbmFja2Jhci9zYXZlLXNuYWNrYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb2xsb3V0UGVyY2VudGFnZUl0ZW1zQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWxpc3Qvc2V0dGluZy9yb2xsb3V0LXBlcmNlbnRhZ2UtaXRlbXMvcm9sbG91dC1wZXJjZW50YWdlLWl0ZW1zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb2xsb3V0UnVsZXNDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctbGlzdC9zZXR0aW5nL3JvbGxvdXQtcnVsZXMvcm9sbG91dC1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsdWVDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctbGlzdC9zZXR0aW5nL3ZhbHVlL3ZhbHVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXR0aW5nTGlzdENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1saXN0L3NldHRpbmctbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2V0dGluZ0NvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1saXN0L3NldHRpbmcvc2V0dGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTUFUX1RPT0xUSVBfREVGQVVMVF9PUFRJT05TLCBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UvYmFzZS1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFwaU1vZHVsZSB9IGZyb20gJ25nLWNvbmZpZ2NhdC1wdWJsaWNhcGknO1xuaW1wb3J0IHsgSW5wdXREaXNwbGF5Tm9ybWFsaXplckRpcmVjdGl2ZSB9IGZyb20gJy4vX2RpcmVjdGl2ZXMvaW5wdXQtZGlzcGxheS1ub3JtYWxpemVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEZWxldGVTZXR0aW5nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2RlbGV0ZS1zZXR0aW5nLWRpYWxvZy9kZWxldGUtc2V0dGluZy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEV2YWx1YXRpb25Gb3JtdWxhQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL2V2YWx1YXRpb24tZm9ybXVsYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS9mZWF0dXJlLWZsYWctdmFsdWUvZmVhdHVyZS1mbGFnLXZhbHVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdXRUZXh0RWRpdG9yRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3BvcG91dC10ZXh0LWVkaXRvci1kaWFsb2cvcG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZGl0aW9uQ2hpcENvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL2NvbmRpdGlvbi1jaGlwL2NvbmRpdGlvbi1jaGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25kaXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL2NvbmRpdGlvbnMvY29uZGl0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi9wcmVyZXF1aXNpdGUtZmxhZy1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlZ21lbnRDb25kaXRpb25Db21wb25lbnQgfSBmcm9tICcuL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvY29uZGl0aW9ucy9zZWdtZW50LWNvbmRpdGlvbi9zZWdtZW50LWNvbmRpdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcGFyYXRvckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL3VzZXItY29uZGl0aW9uL2NvbXBhcmF0b3ItZGlhbG9nL2NvbXBhcmF0b3ItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdXRMaXN0RWRpdG9yRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL2NvbmRpdGlvbnMvdXNlci1jb25kaXRpb24vcG9wb3V0LWxpc3QtZWRpdG9yLWRpYWxvZy9wb3BvdXQtbGlzdC1lZGl0b3ItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL2NvbmRpdGlvbnMvdXNlci1jb25kaXRpb24vdXNlci1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBlcmNlbnRhZ2VPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL3BlcmNlbnRhZ2Utb3B0aW9ucy9wZXJjZW50YWdlLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhcmdldGluZ1J1bGVDb21wb25lbnQgfSBmcm9tICcuL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvdGFyZ2V0aW5nLXJ1bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmVGbGFnQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZmVhdHVyZS1mbGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL3BlcmNlbnRhZ2UtZXZhbHVhdGlvbi1hdHRyaWJ1dGUtZGlhbG9nL3BlcmNlbnRhZ2UtZXZhbHVhdGlvbi1hdHRyaWJ1dGUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3IgfSBmcm9tICcuL19zZXJ2aWNlcy9mb3JtLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBDb21wYXJpc29uVmFsdWVMaXN0SGVscGVyIH0gZnJvbSAnLi9fc2VydmljZXMvY29tcGFyaXNvbi12YWx1ZS1saXN0LWhlbHBlcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IFRyYWNraW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9fc2VydmljZXMvdHJhY2tpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IENsaXBib2FyZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvY2xpcGJvYXJkXCI7XG5pbXBvcnQgeyBBY2VFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2FjZS1lZGl0b3IvYWNlLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW9cIjtcbmltcG9ydCB7IEZlYXR1cmVGbGFnSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2luZ1NlcnZpY2UgfSBmcm9tICcuL19zZXJ2aWNlcy9tZXNzYWdpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVwZW5kZWVzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZGVwZW5kZWVzLWRpYWxvZy9kZXBlbmRlZXMtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmZvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2luZm8tZGlhbG9nL2luZm8tZGlhbG9nJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBCYXNlU2VsZWN0Q29tcG9uZW50LFxuICAgIFByb2R1Y3RTZWxlY3RDb21wb25lbnQsXG4gICAgQ29uZmlnU2VsZWN0Q29tcG9uZW50LFxuICAgIEVudmlyb25tZW50U2VsZWN0Q29tcG9uZW50LFxuICAgIFNldHRpbmdTZWxlY3RDb21wb25lbnQsXG4gICAgU2V0dGluZ0l0ZW1Db21wb25lbnQsXG4gICAgQXV0aG9yaXphdGlvbkNvbXBvbmVudCxcbiAgICBTZXR0aW5nTGlzdENvbXBvbmVudCxcbiAgICBTZXR0aW5nQ29tcG9uZW50LFxuICAgIFJvbGxvdXRQZXJjZW50YWdlSXRlbXNDb21wb25lbnQsXG4gICAgUm9sbG91dFJ1bGVzQ29tcG9uZW50LFxuICAgIFZhbHVlQ29tcG9uZW50LFxuICAgIFJlYXNvbkRpYWxvZ0NvbXBvbmVudCxcbiAgICBTYXZlU25hY2tiYXJDb21wb25lbnQsXG4gICAgRXhwYW5kRGlhbG9nQ29tcG9uZW50LFxuICAgIERlbGV0ZVNldHRpbmdEaWFsb2dDb21wb25lbnQsXG4gICAgSW5wdXREaXNwbGF5Tm9ybWFsaXplckRpcmVjdGl2ZSxcbiAgICBGZWF0dXJlRmxhZ0NvbXBvbmVudCxcbiAgICBFdmFsdWF0aW9uRm9ybXVsYUNvbXBvbmVudCxcbiAgICBGZWF0dXJlRmxhZ1ZhbHVlQ29tcG9uZW50LFxuICAgIFRhcmdldGluZ1J1bGVDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZU9wdGlvbnNDb21wb25lbnQsXG4gICAgQ29uZGl0aW9uc0NvbXBvbmVudCxcbiAgICBVc2VyQ29uZGl0aW9uQ29tcG9uZW50LFxuICAgIFNlZ21lbnRDb25kaXRpb25Db21wb25lbnQsXG4gICAgUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBQb3BvdXRMaXN0RWRpdG9yRGlhbG9nQ29tcG9uZW50LFxuICAgIFBvcG91dFRleHRFZGl0b3JEaWFsb2dDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVEaWFsb2dDb21wb25lbnQsXG4gICAgQ29uZGl0aW9uQ2hpcENvbXBvbmVudCxcbiAgICBDb21wYXJhdG9yRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCxcbiAgICBJbmZvRGlhbG9nQ29tcG9uZW50LFxuICAgIFRyYWNraW5nRGlyZWN0aXZlLFxuICAgIEFjZUVkaXRvckNvbXBvbmVudCxcbiAgICBGZWF0dXJlRmxhZ0l0ZW1Db21wb25lbnQsXG4gICAgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgRGVwZW5kZWVzRGlhbG9nQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgTWF0U25hY2tCYXJNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgQXBpTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBDbGlwYm9hcmRNb2R1bGUsXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFJhZGlvTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBdXRob3JpemF0aW9uQ29tcG9uZW50LFxuICAgIFByb2R1Y3RTZWxlY3RDb21wb25lbnQsXG4gICAgQ29uZmlnU2VsZWN0Q29tcG9uZW50LFxuICAgIEVudmlyb25tZW50U2VsZWN0Q29tcG9uZW50LFxuICAgIFNldHRpbmdTZWxlY3RDb21wb25lbnQsXG4gICAgU2V0dGluZ0l0ZW1Db21wb25lbnQsXG4gICAgSW5wdXREaXNwbGF5Tm9ybWFsaXplckRpcmVjdGl2ZSxcbiAgICBEZWxldGVTZXR0aW5nRGlhbG9nQ29tcG9uZW50LFxuICAgIEZlYXR1cmVGbGFnSXRlbUNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNQVRfVE9PTFRJUF9ERUZBVUxUX09QVElPTlMsXG4gICAgICB1c2VWYWx1ZTogeyBkaXNhYmxlVG9vbHRpcEludGVyYWN0aXZpdHk6IHRydWUgfSxcbiAgICB9LFxuXG4gICAgRm9ybUdlbmVyYXRvcixcbiAgICBDb21wYXJpc29uVmFsdWVMaXN0SGVscGVyLFxuICAgIE1lc3NhZ2luZ1NlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ0NvbmZpZ0NhdFB1YmxpY0FwaVVJTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZ3VyYXRpb25GYWN0b3J5OiAoKSA9PiBDb25maWd1cmF0aW9uKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ0NvbmZpZ0NhdFB1YmxpY0FwaVVJTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ0NvbmZpZ0NhdFB1YmxpY0FwaVVJTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDb25maWd1cmF0aW9uLCB1c2VGYWN0b3J5OiBjb25maWd1cmF0aW9uRmFjdG9yeSB9XVxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuIl19
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDeEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxN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fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNldHRpbmdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWl0ZW0vc2V0dGluZy1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXR0aW5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3RzL3NldHRpbmctc2VsZWN0L3NldHRpbmctc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3RzL3Byb2R1Y3Qtc2VsZWN0L3Byb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdHMvY29uZmlnLXNlbGVjdC9jb25maWctc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0cy9lbnZpcm9ubWVudC1zZWxlY3QvZW52aXJvbm1lbnQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEF1dGhvcml6YXRpb25Db21wb25lbnQgfSBmcm9tICcuL2F1dGhvcml6YXRpb24vYXV0aG9yaXphdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBFeHBhbmREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvZXhwYW5kLWRpYWxvZy9leHBhbmQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFzb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvcmVhc29uLWRpYWxvZy9yZWFzb24tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXZlU25hY2tiYXJDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3Mvc2F2ZS1zbmFja2Jhci9zYXZlLXNuYWNrYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb2xsb3V0UGVyY2VudGFnZUl0ZW1zQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWxpc3Qvc2V0dGluZy9yb2xsb3V0LXBlcmNlbnRhZ2UtaXRlbXMvcm9sbG91dC1wZXJjZW50YWdlLWl0ZW1zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb2xsb3V0UnVsZXNDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctbGlzdC9zZXR0aW5nL3JvbGxvdXQtcnVsZXMvcm9sbG91dC1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsdWVDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctbGlzdC9zZXR0aW5nL3ZhbHVlL3ZhbHVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXR0aW5nTGlzdENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1saXN0L3NldHRpbmctbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2V0dGluZ0NvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1saXN0L3NldHRpbmcvc2V0dGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTUFUX1RPT0xUSVBfREVGQVVMVF9PUFRJT05TLCBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UvYmFzZS1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFwaU1vZHVsZSB9IGZyb20gJ25nLWNvbmZpZ2NhdC1wdWJsaWNhcGknO1xuaW1wb3J0IHsgSW5wdXREaXNwbGF5Tm9ybWFsaXplckRpcmVjdGl2ZSB9IGZyb20gJy4vX2RpcmVjdGl2ZXMvaW5wdXQtZGlzcGxheS1ub3JtYWxpemVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEZWxldGVTZXR0aW5nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2RlbGV0ZS1zZXR0aW5nLWRpYWxvZy9kZWxldGUtc2V0dGluZy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEV2YWx1YXRpb25Gb3JtdWxhQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL2V2YWx1YXRpb24tZm9ybXVsYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS9mZWF0dXJlLWZsYWctdmFsdWUvZmVhdHVyZS1mbGFnLXZhbHVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdXRUZXh0RWRpdG9yRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3BvcG91dC10ZXh0LWVkaXRvci1kaWFsb2cvcG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZGl0aW9uQ2hpcENvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL2NvbmRpdGlvbi1jaGlwL2NvbmRpdGlvbi1jaGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25kaXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL2NvbmRpdGlvbnMvY29uZGl0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi9wcmVyZXF1aXNpdGUtZmxhZy1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlZ21lbnRDb25kaXRpb25Db21wb25lbnQgfSBmcm9tICcuL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvY29uZGl0aW9ucy9zZWdtZW50LWNvbmRpdGlvbi9zZWdtZW50LWNvbmRpdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcGFyYXRvckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL3VzZXItY29uZGl0aW9uL2NvbXBhcmF0b3ItZGlhbG9nL2NvbXBhcmF0b3ItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdXRMaXN0RWRpdG9yRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL2NvbmRpdGlvbnMvdXNlci1jb25kaXRpb24vcG9wb3V0LWxpc3QtZWRpdG9yLWRpYWxvZy9wb3BvdXQtbGlzdC1lZGl0b3ItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL2NvbmRpdGlvbnMvdXNlci1jb25kaXRpb24vdXNlci1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBlcmNlbnRhZ2VPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL3BlcmNlbnRhZ2Utb3B0aW9ucy9wZXJjZW50YWdlLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhcmdldGluZ1J1bGVDb21wb25lbnQgfSBmcm9tICcuL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvdGFyZ2V0aW5nLXJ1bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmVGbGFnQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZmVhdHVyZS1mbGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL3BlcmNlbnRhZ2UtZXZhbHVhdGlvbi1hdHRyaWJ1dGUtZGlhbG9nL3BlcmNlbnRhZ2UtZXZhbHVhdGlvbi1hdHRyaWJ1dGUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3IgfSBmcm9tICcuL19zZXJ2aWNlcy9mb3JtLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBDb21wYXJpc29uVmFsdWVMaXN0SGVscGVyIH0gZnJvbSAnLi9fc2VydmljZXMvY29tcGFyaXNvbi12YWx1ZS1saXN0LWhlbHBlcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IFRyYWNraW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9fc2VydmljZXMvdHJhY2tpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IENsaXBib2FyZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvY2xpcGJvYXJkXCI7XG5pbXBvcnQgeyBBY2VFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2FjZS1lZGl0b3IvYWNlLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW9cIjtcbmltcG9ydCB7IEZlYXR1cmVGbGFnSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2luZ1NlcnZpY2UgfSBmcm9tICcuL19zZXJ2aWNlcy9tZXNzYWdpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vdjIvZmVhdHVyZS1mbGFnL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVwZW5kZWVzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi92Mi9mZWF0dXJlLWZsYWcvZGVwZW5kZWVzLWRpYWxvZy9kZXBlbmRlZXMtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmZvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2luZm8tZGlhbG9nL2luZm8tZGlhbG9nJztcbmltcG9ydCB7IFJlcm91dGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvcmVyb3V0ZS1kaWFsb2cvcmVyb3V0ZS1kaWFsb2cnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIEJhc2VTZWxlY3RDb21wb25lbnQsXG4gICAgUHJvZHVjdFNlbGVjdENvbXBvbmVudCxcbiAgICBDb25maWdTZWxlY3RDb21wb25lbnQsXG4gICAgRW52aXJvbm1lbnRTZWxlY3RDb21wb25lbnQsXG4gICAgU2V0dGluZ1NlbGVjdENvbXBvbmVudCxcbiAgICBTZXR0aW5nSXRlbUNvbXBvbmVudCxcbiAgICBBdXRob3JpemF0aW9uQ29tcG9uZW50LFxuICAgIFNldHRpbmdMaXN0Q29tcG9uZW50LFxuICAgIFNldHRpbmdDb21wb25lbnQsXG4gICAgUm9sbG91dFBlcmNlbnRhZ2VJdGVtc0NvbXBvbmVudCxcbiAgICBSb2xsb3V0UnVsZXNDb21wb25lbnQsXG4gICAgVmFsdWVDb21wb25lbnQsXG4gICAgUmVhc29uRGlhbG9nQ29tcG9uZW50LFxuICAgIFNhdmVTbmFja2JhckNvbXBvbmVudCxcbiAgICBFeHBhbmREaWFsb2dDb21wb25lbnQsXG4gICAgRGVsZXRlU2V0dGluZ0RpYWxvZ0NvbXBvbmVudCxcbiAgICBJbnB1dERpc3BsYXlOb3JtYWxpemVyRGlyZWN0aXZlLFxuICAgIEZlYXR1cmVGbGFnQ29tcG9uZW50LFxuICAgIEV2YWx1YXRpb25Gb3JtdWxhQ29tcG9uZW50LFxuICAgIEZlYXR1cmVGbGFnVmFsdWVDb21wb25lbnQsXG4gICAgVGFyZ2V0aW5nUnVsZUNvbXBvbmVudCxcbiAgICBQZXJjZW50YWdlT3B0aW9uc0NvbXBvbmVudCxcbiAgICBDb25kaXRpb25zQ29tcG9uZW50LFxuICAgIFVzZXJDb25kaXRpb25Db21wb25lbnQsXG4gICAgU2VnbWVudENvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBQcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uQ29tcG9uZW50LFxuICAgIFBvcG91dExpc3RFZGl0b3JEaWFsb2dDb21wb25lbnQsXG4gICAgUG9wb3V0VGV4dEVkaXRvckRpYWxvZ0NvbXBvbmVudCxcbiAgICBQZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZURpYWxvZ0NvbXBvbmVudCxcbiAgICBDb25kaXRpb25DaGlwQ29tcG9uZW50LFxuICAgIENvbXBhcmF0b3JEaWFsb2dDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIEluZm9EaWFsb2dDb21wb25lbnQsXG4gICAgVHJhY2tpbmdEaXJlY3RpdmUsXG4gICAgQWNlRWRpdG9yQ29tcG9uZW50LFxuICAgIEZlYXR1cmVGbGFnSXRlbUNvbXBvbmVudCxcbiAgICBEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcbiAgICBEZXBlbmRlZXNEaWFsb2dDb21wb25lbnQsXG4gICAgUmVyb3V0ZURpYWxvZ0NvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIEFwaU1vZHVsZSxcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgQ2xpcGJvYXJkTW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQXV0aG9yaXphdGlvbkNvbXBvbmVudCxcbiAgICBQcm9kdWN0U2VsZWN0Q29tcG9uZW50LFxuICAgIENvbmZpZ1NlbGVjdENvbXBvbmVudCxcbiAgICBFbnZpcm9ubWVudFNlbGVjdENvbXBvbmVudCxcbiAgICBTZXR0aW5nU2VsZWN0Q29tcG9uZW50LFxuICAgIFNldHRpbmdJdGVtQ29tcG9uZW50LFxuICAgIElucHV0RGlzcGxheU5vcm1hbGl6ZXJEaXJlY3RpdmUsXG4gICAgRGVsZXRlU2V0dGluZ0RpYWxvZ0NvbXBvbmVudCxcbiAgICBGZWF0dXJlRmxhZ0l0ZW1Db21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTUFUX1RPT0xUSVBfREVGQVVMVF9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IHsgZGlzYWJsZVRvb2x0aXBJbnRlcmFjdGl2aXR5OiB0cnVlIH0sXG4gICAgfSxcblxuICAgIEZvcm1HZW5lcmF0b3IsXG4gICAgQ29tcGFyaXNvblZhbHVlTGlzdEhlbHBlcixcbiAgICBNZXNzYWdpbmdTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTmdDb25maWdDYXRQdWJsaWNBcGlVSU1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWd1cmF0aW9uRmFjdG9yeTogKCkgPT4gQ29uZmlndXJhdGlvbik6IE1vZHVsZVdpdGhQcm92aWRlcnM8TmdDb25maWdDYXRQdWJsaWNBcGlVSU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmdDb25maWdDYXRQdWJsaWNBcGlVSU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ29uZmlndXJhdGlvbiwgdXNlRmFjdG9yeTogY29uZmlndXJhdGlvbkZhY3RvcnkgfV1cbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
@@ -29,6 +29,7 @@ export class FeatureFlagComponent {
29
29
  this.environmentName = "";
30
30
  this.showEnvironmentName = false;
31
31
  this.deleteSettingText = 'Delete setting';
32
+ this.canDeleteSetting = false;
32
33
  this.addSegmentConditionRequestedWithoutSegments = new EventEmitter();
33
34
  this.expandedChanged = new EventEmitter();
34
35
  this.deleteSettingRequested = new EventEmitter();
@@ -123,9 +124,6 @@ export class FeatureFlagComponent {
123
124
  }
124
125
  return '+ ' + count + ' rule' + (count > 1 ? 's' : '');
125
126
  }
126
- openInConfigCat() {
127
- window.open(this.getDashboardUrl(), '_blank');
128
- }
129
127
  copyDirectLink() {
130
128
  try {
131
129
  this.clipboard.copy(this.getDashboardUrl());
@@ -153,11 +151,11 @@ export class FeatureFlagComponent {
153
151
  });
154
152
  }
155
153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FeatureFlagComponent, deps: [{ token: i1.MatDialog }, { token: i2.MessagingService }, { token: i2.FormGenerator }, { token: i3.Router }, { token: i4.PublicApiService }, { token: i5.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
156
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: FeatureFlagComponent, selector: "app-feature-flag", inputs: { formGroup: "formGroup", flagState: "flagState", segments: "segments", featureFlagLimitations: "featureFlagLimitations", hasOtherEnvironment: "hasOtherEnvironment", environmentName: "environmentName", showEnvironmentName: "showEnvironmentName", deleteSettingText: "deleteSettingText" }, outputs: { addSegmentConditionRequestedWithoutSegments: "addSegmentConditionRequestedWithoutSegments", expandedChanged: "expandedChanged", deleteSettingRequested: "deleteSettingRequested", subscriptionLimitReached: "subscriptionLimitReached", prerequisiteConditionChanged: "prerequisiteConditionChanged", recalcAddButtons: "recalcAddButtons" }, ngImport: i0, template: "<div class=\"outer\">\n <div class=\"mat-elevation-z0 feature-flag\" [ngClass]=\"{'invalid': formGroup.touched && formGroup.invalid}\">\n <div class=\"expandcollapse\">\n <div *ngIf=\"flagState.panelExpanded\" matTooltip=\"Collapse\" (click)=\"setExpanded(!flagState.panelExpanded)\"\n class=\"btn\">\n <mat-icon>arrow_drop_up</mat-icon>\n </div>\n <div *ngIf=\"!flagState.panelExpanded\" matTooltip=\"Expand\" (click)=\"setExpanded(!flagState.panelExpanded)\"\n class=\"btn\">\n <mat-icon>arrow_drop_down</mat-icon>\n </div>\n </div>\n <div class=\"header\">\n <div class=\"top\">\n <div class=\"left\">\n <div class=\"name-key\">\n <span class=\"name\"\n [matTooltip]=\"flagState.settingValue.setting.name\">{{flagState.settingValue.setting.name}}</span>\n <span class=\"key-outer\" matTooltip=\"Copy feature flag key to clipboard\"\n [cdkCopyToClipboard]=\"flagState.settingValue.setting.key\"\n (cdkCopyToClipboardCopied)=\"keyCopied()\">\n <span class=\"key\">\n <code>{{flagState.settingValue.setting.key}}</code>\n </span>\n <mat-icon>content_copy</mat-icon>\n </span>\n </div>\n </div>\n\n <div class=\"right\">\n <div class=\"line\">\n <button type=\"button\" class=\"prereq-button\" mat-icon-button\n *ngIf=\"flagState.dependeeSettings && flagState.dependeeSettings.length\"\n [track]=\"['prerequisite button click', 'Feature flags & settings V2 page']\"\n [matTooltip]=\"'Prerequisite of '+flagState.dependeeSettings.length+' other flag(s).'\"\n (click)=\"openDependeesDialog()\">\n <mat-icon>account_tree</mat-icon>\n </button>\n <button type=\"button\" class=\"more-button\" [matMenuTriggerFor]=\"moreMenu\" mat-icon-button\n [track]=\"['more menu button click', 'Feature flags & settings V2 page']\" matTooltip=\"More\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"hint-container\">\n <div class=\"hint\" *ngIf=\"flagState.settingValue.setting.hint\">\n {{flagState.settingValue.setting.hint}}\n </div>\n\n <app-feature-flag-value class=\"glance\"\n [class.text-glance]=\"flagState.settingValue.setting.settingType !== 'boolean'\"\n *ngIf=\"!flagState.panelExpanded && !formGroup.controls.targetingRules.length\"\n [flagState]=\"flagState\"\n [formGroup]=\"formGroup.controls.defaultValue\" [featureFlagLimitations]=\"featureFlagLimitations\"\n tooltip=\"Served value\"></app-feature-flag-value>\n\n <div class=\"quick-glance\" *ngIf=\"getGlance() as glance\" (click)=\"setExpanded(!flagState.panelExpanded)\">\n <div class=\"container\" [class]=\"glance.class\">\n <div class=\"quick-glance-item\" *ngIf=\"glance.percentageText\">{{glance.percentageText}}</div>\n <div class=\"quick-glance-item\" *ngIf=\"glance.ruleText\">{{glance.ruleText}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"flagState.panelExpanded\">\n <div class=\"eval-formula-wrapper\">\n <app-evaluation-formula [formGroup]=\"formGroup\" [flagState]=\"flagState\" [segments]=\"segments\"\n [featureFlagLimitations]=\"featureFlagLimitations\"\n (subscriptionLimitReached)=\"subscriptionLimitReachedCalled()\" [canManageSegments]=\"false\"\n (addSegmentConditionRequestedWithoutSegments)=\"addSegmentConditionRequestedWithoutSegments.emit()\"\n [showPercentageEvaluationAttribute]=\"!!formGroup.controls.percentageEvaluationAttribute.value\"\n (changePercentageEvaluationAttributeRequested)=\"changePercentageEvaluationAttribute()\"\n (prerequisiteConditionChanged)=\"prerequisiteConditionChanged.emit($event)\"\n (recalcAddButtons)=\"recalcAddButtons.emit()\">\n </app-evaluation-formula>\n </div>\n </ng-container>\n </div>\n</div>\n<mat-menu #moreMenu=\"matMenu\">\n <div mat-menu-item data-robot=\"history\" (click)=\"changePercentageEvaluationAttribute()\"\n [track]=\"['change percentage attribute click', 'Feature flags & settings V2 page']\"\n [disabled]=\"this.flagState.readOnly\">\n <mat-icon>percent</mat-icon>\n <span>Change percentage attribute</span>\n </div>\n <div mat-menu-item data-robot=\"history\" (click)=\"openInConfigCat()\">\n <mat-icon>open_in_new</mat-icon>\n <span>Open in ConfigCat</span>\n </div>\n <div mat-menu-item data-robot=\"renameSetting\"\n [track]=\"['copy direct link click', 'Feature flags & settings V2 page']\" (click)=\"copyDirectLink()\">\n <mat-icon>content_copy</mat-icon>\n <span>Copy direct link</span>\n </div>\n <mat-divider></mat-divider>\n <div mat-menu-item data-robot=\"deleteSetting\"\n [track]=\"['delete feature flag click', 'Feature flags & settings V2 page']\" (click)=\"deleteSetting()\">\n <mat-icon>delete_outline</mat-icon>\n <span>{{deleteSettingText}}</span>\n </div>\n</mat-menu>", styles: [".outer{padding:10px 0;display:flex;flex-direction:row;flex-grow:1}.outer .eval-formula-wrapper{margin-top:6px}.outer .feature-flag{flex-grow:1;min-width:0;background-color:#dee5f0;border:1px solid #c9c9c9;border-radius:0!important;padding:5px 0 5px 5px}.outer .feature-flag.invalid{border-color:#ff5252}.outer .feature-flag .expandcollapse .btn{text-align:center;width:60px;height:14px;background-color:#f2f4f8;border:1px solid #c9c9c9;position:absolute;color:#878787;left:50%;transform:translate(-50%,-34%);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top-width:0px;cursor:pointer}.outer .feature-flag .expandcollapse .btn mat-icon{margin-top:-5px}.outer .feature-flag .expandcollapse .btn:hover{background-color:#ebebeb}.outer .feature-flag .header{display:flex;flex-direction:column;flex-grow:1;min-width:0}.outer .feature-flag .header .top{display:flex;align-items:flex-start}.outer .feature-flag .header .top .left{display:flex;flex-direction:column;min-width:0;max-width:45%;padding:0 36px 0 16px}.outer .feature-flag .header .top .left .name-key{display:flex;align-items:center;flex-wrap:wrap;min-width:0;padding-top:6px}.outer .feature-flag .header .top .left .name-key .name{padding-top:4px;margin-right:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .top .left .name-key .key-outer{padding-top:6px;display:flex;align-items:center;min-width:0;cursor:pointer}.outer .feature-flag .header .top .left .name-key .key-outer .key{background-color:#cfcfcf;padding:1.5px 6px 3px;font-size:12px;border-radius:3px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outer .feature-flag .header .top .left .name-key .key-outer .mat-icon{margin-left:4px;font-size:14px;width:14px;height:14px;opacity:.5;overflow:visible}.outer .feature-flag .header .top .right{display:flex;flex-direction:column;align-items:flex-end;margin-left:auto;margin-right:4px}.outer .feature-flag .header .top .right .line{--mat-icon-button-touch-target-display: none;display:flex}.outer .feature-flag .header .top .right .line .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.outer .feature-flag .header .top .right .line .prereq-button .mat-icon{padding-top:4px;font-size:16px;width:16px;color:#6b6b6b}.outer .feature-flag .header .top .right .line .more-button .mat-icon{padding-top:2px;font-size:20px;width:20px;color:#6b6b6b}.outer .feature-flag .header .hint-container{display:flex;margin-top:12px;min-width:0}.outer .feature-flag .header .hint-container .hint{color:#505050;font-size:.85em;white-space:pre-line;word-wrap:break-word;padding:4px 16px 8px;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .hint-container .glance{flex-wrap:nowrap;padding:6px 18px 0 16px;margin-left:auto}.outer .feature-flag .header .hint-container .text-glance{min-width:40%;max-width:40%;height:min-content}.outer .feature-flag .header .quick-glance{cursor:pointer;min-width:80px;max-width:200px;font-size:10px;text-align:center;margin-right:15px;margin-left:auto;font-weight:700}.outer .feature-flag .header .quick-glance .quick-glance-item{margin:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .quick-glance .container{width:auto;padding:5px;background-color:#f2f4f8;border:1px solid #c9c9c9;border-radius:5px}.outer .feature-flag .header .quick-glance .on{color:#0f8f11}.outer .feature-flag .header .quick-glance .off{color:#be0b0b}.outer .feature-flag .header .quick-glance .other{color:#4881b9}.outer .feature-flag .header .quick-glance .default{color:unset}.tag-menu-action,.tag-menu-item{display:flex;align-items:center}.tag-select-container{line-height:22px;overflow:hidden}.tag-select-item{height:22px;padding:0 .3rem;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1000px){.outer .feature-flag .header .top .left .name-key{flex-wrap:wrap}.outer .feature-flag .header .top .left .name-key .name{max-width:100%}}@media (max-width: 700px){.outer .feature-flag .header .top .left{max-width:100%!important;padding-right:4px!important}.outer .feature-flag .header .top .left .name-key{flex-wrap:wrap}.outer .feature-flag .header .top .left .name-key .name{max-width:100%}.outer .feature-flag .header .top .right{flex-wrap:wrap}.outer .feature-flag .header .top .right .line .watch-wrapper .status{display:none}.outer .feature-flag .header .hint-container{flex-wrap:wrap}.outer .feature-flag .header .hint-container .text-glance{max-width:unset}}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "component", type: i13.EvaluationFormulaComponent, selector: "app-evaluation-formula", inputs: ["formGroup", "segments", "flagState", "showVariationId", "featureFlagLimitations", "canManageSegments", "showPercentageEvaluationAttribute"], outputs: ["createSegmentRequested", "manageSegmentsRequested", "addSegmentConditionRequestedWithoutSegments", "changePercentageEvaluationAttributeRequested", "subscriptionLimitReached", "prerequisiteConditionChanged", "recalcAddButtons"] }, { kind: "component", type: i14.FeatureFlagValueComponent, selector: "app-feature-flag-value", inputs: ["formGroup", "flagState", "featureFlagLimitations", "isPrerequisite", "tooltip"] }, { kind: "directive", type: i15.TrackingDirective, selector: "[track]", inputs: ["track"] }] }); }
154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: FeatureFlagComponent, selector: "app-feature-flag", inputs: { formGroup: "formGroup", flagState: "flagState", segments: "segments", featureFlagLimitations: "featureFlagLimitations", hasOtherEnvironment: "hasOtherEnvironment", environmentName: "environmentName", showEnvironmentName: "showEnvironmentName", deleteSettingText: "deleteSettingText", canDeleteSetting: "canDeleteSetting" }, outputs: { addSegmentConditionRequestedWithoutSegments: "addSegmentConditionRequestedWithoutSegments", expandedChanged: "expandedChanged", deleteSettingRequested: "deleteSettingRequested", subscriptionLimitReached: "subscriptionLimitReached", prerequisiteConditionChanged: "prerequisiteConditionChanged", recalcAddButtons: "recalcAddButtons" }, ngImport: i0, template: "<div class=\"outer\">\n <div class=\"mat-elevation-z0 feature-flag\" [ngClass]=\"{'invalid': formGroup.touched && formGroup.invalid}\">\n <div class=\"expandcollapse\">\n <div *ngIf=\"flagState.panelExpanded\" matTooltip=\"Collapse\" (click)=\"setExpanded(!flagState.panelExpanded)\"\n class=\"btn\">\n <mat-icon>arrow_drop_up</mat-icon>\n </div>\n <div *ngIf=\"!flagState.panelExpanded\" matTooltip=\"Expand\" (click)=\"setExpanded(!flagState.panelExpanded)\"\n class=\"btn\">\n <mat-icon>arrow_drop_down</mat-icon>\n </div>\n </div>\n <div class=\"header\">\n <div class=\"top\">\n <div class=\"left\">\n <div class=\"name-key\">\n <span class=\"name\"\n [matTooltip]=\"flagState.settingValue.setting.name\">{{flagState.settingValue.setting.name}}</span>\n <span class=\"key-outer\" matTooltip=\"Copy feature flag key to clipboard\"\n [cdkCopyToClipboard]=\"flagState.settingValue.setting.key\"\n (cdkCopyToClipboardCopied)=\"keyCopied()\">\n <span class=\"key\">\n <code>{{flagState.settingValue.setting.key}}</code>\n </span>\n <mat-icon>content_copy</mat-icon>\n </span>\n </div>\n </div>\n\n <div class=\"right\">\n <div class=\"line\">\n <button type=\"button\" class=\"prereq-button\" mat-icon-button\n *ngIf=\"flagState.dependeeSettings && flagState.dependeeSettings.length\"\n [track]=\"['prerequisite button click', 'Feature flags & settings V2 page']\"\n [matTooltip]=\"'Prerequisite of '+flagState.dependeeSettings.length+' other flag(s).'\"\n (click)=\"openDependeesDialog()\">\n <mat-icon>account_tree</mat-icon>\n </button>\n <button type=\"button\" class=\"more-button\" [matMenuTriggerFor]=\"moreMenu\" mat-icon-button\n [track]=\"['more menu button click', 'Feature flags & settings V2 page']\" matTooltip=\"More\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"hint-container\">\n <div class=\"hint\" *ngIf=\"flagState.settingValue.setting.hint\">\n {{flagState.settingValue.setting.hint}}\n </div>\n\n <app-feature-flag-value class=\"glance\"\n [class.text-glance]=\"flagState.settingValue.setting.settingType !== 'boolean'\"\n *ngIf=\"!flagState.panelExpanded && !formGroup.controls.targetingRules.length\"\n [flagState]=\"flagState\"\n [formGroup]=\"formGroup.controls.defaultValue\" [featureFlagLimitations]=\"featureFlagLimitations\"\n tooltip=\"Served value\"></app-feature-flag-value>\n\n <div class=\"quick-glance\" *ngIf=\"getGlance() as glance\" (click)=\"setExpanded(!flagState.panelExpanded)\">\n <div class=\"container\" [class]=\"glance.class\">\n <div class=\"quick-glance-item\" *ngIf=\"glance.percentageText\">{{glance.percentageText}}</div>\n <div class=\"quick-glance-item\" *ngIf=\"glance.ruleText\">{{glance.ruleText}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"flagState.panelExpanded\">\n <div class=\"eval-formula-wrapper\">\n <app-evaluation-formula [formGroup]=\"formGroup\" [flagState]=\"flagState\" [segments]=\"segments\"\n [featureFlagLimitations]=\"featureFlagLimitations\"\n (subscriptionLimitReached)=\"subscriptionLimitReachedCalled()\" [canManageSegments]=\"false\"\n (addSegmentConditionRequestedWithoutSegments)=\"addSegmentConditionRequestedWithoutSegments.emit()\"\n [showPercentageEvaluationAttribute]=\"!!formGroup.controls.percentageEvaluationAttribute.value\"\n (changePercentageEvaluationAttributeRequested)=\"changePercentageEvaluationAttribute()\"\n (prerequisiteConditionChanged)=\"prerequisiteConditionChanged.emit($event)\"\n (recalcAddButtons)=\"recalcAddButtons.emit()\">\n </app-evaluation-formula>\n </div>\n </ng-container>\n </div>\n</div>\n<mat-menu #moreMenu=\"matMenu\">\n <div mat-menu-item data-robot=\"history\" (click)=\"changePercentageEvaluationAttribute()\"\n [track]=\"['change percentage attribute click', 'Feature flags & settings V2 page']\"\n [disabled]=\"this.flagState.readOnly\">\n <mat-icon>percent</mat-icon>\n <span>Change percentage attribute</span>\n </div>\n <a href=\"{{getDashboardUrl()}}\" target=\"_blank\" rel=\"noopener noreferrer\">\n <div mat-menu-item data-robot=\"history\">\n <mat-icon>open_in_new</mat-icon>\n <span>Open in ConfigCat</span>\n </div>\n </a>\n <div mat-menu-item data-robot=\"renameSetting\"\n [track]=\"['copy direct link click', 'Feature flags & settings V2 page']\" (click)=\"copyDirectLink()\">\n <mat-icon>content_copy</mat-icon>\n <span>Copy direct link</span>\n </div>\n <div *ngIf=\"canDeleteSetting\">\n <mat-divider></mat-divider>\n <div mat-menu-item data-robot=\"deleteSetting\"\n [track]=\"['delete feature flag click', 'Feature flags & settings V2 page']\" (click)=\"deleteSetting()\">\n <mat-icon>delete_outline</mat-icon>\n <span>{{deleteSettingText}}</span>\n </div>\n </div>\n</mat-menu>", styles: [".outer{padding:10px 0;display:flex;flex-direction:row;flex-grow:1}.outer .eval-formula-wrapper{margin-top:6px}.outer .feature-flag{flex-grow:1;min-width:0;background-color:#dee5f0;border:1px solid #c9c9c9;border-radius:0!important;padding:5px 0 5px 5px}.outer .feature-flag.invalid{border-color:#ff5252}.outer .feature-flag .expandcollapse .btn{text-align:center;width:60px;height:14px;background-color:#f2f4f8;border:1px solid #c9c9c9;position:absolute;color:#878787;left:50%;transform:translate(-50%,-34%);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top-width:0px;cursor:pointer}.outer .feature-flag .expandcollapse .btn mat-icon{margin-top:-5px}.outer .feature-flag .expandcollapse .btn:hover{background-color:#ebebeb}.outer .feature-flag .header{display:flex;flex-direction:column;flex-grow:1;min-width:0}.outer .feature-flag .header .top{display:flex;align-items:flex-start}.outer .feature-flag .header .top .left{display:flex;flex-direction:column;min-width:0;max-width:45%;padding:0 36px 0 16px}.outer .feature-flag .header .top .left .name-key{display:flex;align-items:center;flex-wrap:wrap;min-width:0;padding-top:6px}.outer .feature-flag .header .top .left .name-key .name{padding-top:4px;margin-right:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .top .left .name-key .key-outer{padding-top:6px;display:flex;align-items:center;min-width:0;cursor:pointer}.outer .feature-flag .header .top .left .name-key .key-outer .key{background-color:#cfcfcf;padding:1.5px 6px 3px;font-size:12px;border-radius:3px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outer .feature-flag .header .top .left .name-key .key-outer .mat-icon{margin-left:4px;font-size:14px;width:14px;height:14px;opacity:.5;overflow:visible}.outer .feature-flag .header .top .right{display:flex;flex-direction:column;align-items:flex-end;margin-left:auto;margin-right:4px}.outer .feature-flag .header .top .right .line{--mat-icon-button-touch-target-display: none;display:flex}.outer .feature-flag .header .top .right .line .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.outer .feature-flag .header .top .right .line .prereq-button .mat-icon{padding-top:4px;font-size:16px;width:16px;color:#6b6b6b}.outer .feature-flag .header .top .right .line .more-button .mat-icon{padding-top:2px;font-size:20px;width:20px;color:#6b6b6b}.outer .feature-flag .header .hint-container{display:flex;margin-top:12px;min-width:0}.outer .feature-flag .header .hint-container .hint{color:#505050;font-size:.85em;white-space:pre-line;word-wrap:break-word;padding:4px 16px 8px;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .hint-container .glance{flex-wrap:nowrap;padding:6px 18px 0 16px;margin-left:auto}.outer .feature-flag .header .hint-container .text-glance{min-width:40%;max-width:40%;height:min-content}.outer .feature-flag .header .quick-glance{cursor:pointer;min-width:80px;max-width:200px;font-size:10px;text-align:center;margin-right:15px;margin-left:auto;font-weight:700}.outer .feature-flag .header .quick-glance .quick-glance-item{margin:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .quick-glance .container{width:auto;padding:5px;background-color:#f2f4f8;border:1px solid #c9c9c9;border-radius:5px}.outer .feature-flag .header .quick-glance .on{color:#0f8f11}.outer .feature-flag .header .quick-glance .off{color:#be0b0b}.outer .feature-flag .header .quick-glance .other{color:#4881b9}.outer .feature-flag .header .quick-glance .default{color:unset}.tag-menu-action,.tag-menu-item{display:flex;align-items:center}.tag-select-container{line-height:22px;overflow:hidden}.tag-select-item{height:22px;padding:0 .3rem;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1000px){.outer .feature-flag .header .top .left .name-key{flex-wrap:wrap}.outer .feature-flag .header .top .left .name-key .name{max-width:100%}}@media (max-width: 700px){.outer .feature-flag .header .top .left{max-width:100%!important;padding-right:4px!important}.outer .feature-flag .header .top .left .name-key{flex-wrap:wrap}.outer .feature-flag .header .top .left .name-key .name{max-width:100%}.outer .feature-flag .header .top .right{flex-wrap:wrap}.outer .feature-flag .header .top .right .line .watch-wrapper .status{display:none}.outer .feature-flag .header .hint-container{flex-wrap:wrap}.outer .feature-flag .header .hint-container .text-glance{max-width:unset}}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "component", type: i13.EvaluationFormulaComponent, selector: "app-evaluation-formula", inputs: ["formGroup", "segments", "flagState", "showVariationId", "featureFlagLimitations", "canManageSegments", "showPercentageEvaluationAttribute"], outputs: ["createSegmentRequested", "manageSegmentsRequested", "addSegmentConditionRequestedWithoutSegments", "changePercentageEvaluationAttributeRequested", "subscriptionLimitReached", "prerequisiteConditionChanged", "recalcAddButtons"] }, { kind: "component", type: i14.FeatureFlagValueComponent, selector: "app-feature-flag-value", inputs: ["formGroup", "flagState", "featureFlagLimitations", "isPrerequisite", "tooltip"] }, { kind: "directive", type: i15.TrackingDirective, selector: "[track]", inputs: ["track"] }] }); }
157
155
  }
158
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FeatureFlagComponent, decorators: [{
159
157
  type: Component,
160
- args: [{ selector: 'app-feature-flag', template: "<div class=\"outer\">\n <div class=\"mat-elevation-z0 feature-flag\" [ngClass]=\"{'invalid': formGroup.touched && formGroup.invalid}\">\n <div class=\"expandcollapse\">\n <div *ngIf=\"flagState.panelExpanded\" matTooltip=\"Collapse\" (click)=\"setExpanded(!flagState.panelExpanded)\"\n class=\"btn\">\n <mat-icon>arrow_drop_up</mat-icon>\n </div>\n <div *ngIf=\"!flagState.panelExpanded\" matTooltip=\"Expand\" (click)=\"setExpanded(!flagState.panelExpanded)\"\n class=\"btn\">\n <mat-icon>arrow_drop_down</mat-icon>\n </div>\n </div>\n <div class=\"header\">\n <div class=\"top\">\n <div class=\"left\">\n <div class=\"name-key\">\n <span class=\"name\"\n [matTooltip]=\"flagState.settingValue.setting.name\">{{flagState.settingValue.setting.name}}</span>\n <span class=\"key-outer\" matTooltip=\"Copy feature flag key to clipboard\"\n [cdkCopyToClipboard]=\"flagState.settingValue.setting.key\"\n (cdkCopyToClipboardCopied)=\"keyCopied()\">\n <span class=\"key\">\n <code>{{flagState.settingValue.setting.key}}</code>\n </span>\n <mat-icon>content_copy</mat-icon>\n </span>\n </div>\n </div>\n\n <div class=\"right\">\n <div class=\"line\">\n <button type=\"button\" class=\"prereq-button\" mat-icon-button\n *ngIf=\"flagState.dependeeSettings && flagState.dependeeSettings.length\"\n [track]=\"['prerequisite button click', 'Feature flags & settings V2 page']\"\n [matTooltip]=\"'Prerequisite of '+flagState.dependeeSettings.length+' other flag(s).'\"\n (click)=\"openDependeesDialog()\">\n <mat-icon>account_tree</mat-icon>\n </button>\n <button type=\"button\" class=\"more-button\" [matMenuTriggerFor]=\"moreMenu\" mat-icon-button\n [track]=\"['more menu button click', 'Feature flags & settings V2 page']\" matTooltip=\"More\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"hint-container\">\n <div class=\"hint\" *ngIf=\"flagState.settingValue.setting.hint\">\n {{flagState.settingValue.setting.hint}}\n </div>\n\n <app-feature-flag-value class=\"glance\"\n [class.text-glance]=\"flagState.settingValue.setting.settingType !== 'boolean'\"\n *ngIf=\"!flagState.panelExpanded && !formGroup.controls.targetingRules.length\"\n [flagState]=\"flagState\"\n [formGroup]=\"formGroup.controls.defaultValue\" [featureFlagLimitations]=\"featureFlagLimitations\"\n tooltip=\"Served value\"></app-feature-flag-value>\n\n <div class=\"quick-glance\" *ngIf=\"getGlance() as glance\" (click)=\"setExpanded(!flagState.panelExpanded)\">\n <div class=\"container\" [class]=\"glance.class\">\n <div class=\"quick-glance-item\" *ngIf=\"glance.percentageText\">{{glance.percentageText}}</div>\n <div class=\"quick-glance-item\" *ngIf=\"glance.ruleText\">{{glance.ruleText}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"flagState.panelExpanded\">\n <div class=\"eval-formula-wrapper\">\n <app-evaluation-formula [formGroup]=\"formGroup\" [flagState]=\"flagState\" [segments]=\"segments\"\n [featureFlagLimitations]=\"featureFlagLimitations\"\n (subscriptionLimitReached)=\"subscriptionLimitReachedCalled()\" [canManageSegments]=\"false\"\n (addSegmentConditionRequestedWithoutSegments)=\"addSegmentConditionRequestedWithoutSegments.emit()\"\n [showPercentageEvaluationAttribute]=\"!!formGroup.controls.percentageEvaluationAttribute.value\"\n (changePercentageEvaluationAttributeRequested)=\"changePercentageEvaluationAttribute()\"\n (prerequisiteConditionChanged)=\"prerequisiteConditionChanged.emit($event)\"\n (recalcAddButtons)=\"recalcAddButtons.emit()\">\n </app-evaluation-formula>\n </div>\n </ng-container>\n </div>\n</div>\n<mat-menu #moreMenu=\"matMenu\">\n <div mat-menu-item data-robot=\"history\" (click)=\"changePercentageEvaluationAttribute()\"\n [track]=\"['change percentage attribute click', 'Feature flags & settings V2 page']\"\n [disabled]=\"this.flagState.readOnly\">\n <mat-icon>percent</mat-icon>\n <span>Change percentage attribute</span>\n </div>\n <div mat-menu-item data-robot=\"history\" (click)=\"openInConfigCat()\">\n <mat-icon>open_in_new</mat-icon>\n <span>Open in ConfigCat</span>\n </div>\n <div mat-menu-item data-robot=\"renameSetting\"\n [track]=\"['copy direct link click', 'Feature flags & settings V2 page']\" (click)=\"copyDirectLink()\">\n <mat-icon>content_copy</mat-icon>\n <span>Copy direct link</span>\n </div>\n <mat-divider></mat-divider>\n <div mat-menu-item data-robot=\"deleteSetting\"\n [track]=\"['delete feature flag click', 'Feature flags & settings V2 page']\" (click)=\"deleteSetting()\">\n <mat-icon>delete_outline</mat-icon>\n <span>{{deleteSettingText}}</span>\n </div>\n</mat-menu>", styles: [".outer{padding:10px 0;display:flex;flex-direction:row;flex-grow:1}.outer .eval-formula-wrapper{margin-top:6px}.outer .feature-flag{flex-grow:1;min-width:0;background-color:#dee5f0;border:1px solid #c9c9c9;border-radius:0!important;padding:5px 0 5px 5px}.outer .feature-flag.invalid{border-color:#ff5252}.outer .feature-flag .expandcollapse .btn{text-align:center;width:60px;height:14px;background-color:#f2f4f8;border:1px solid #c9c9c9;position:absolute;color:#878787;left:50%;transform:translate(-50%,-34%);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top-width:0px;cursor:pointer}.outer .feature-flag .expandcollapse .btn mat-icon{margin-top:-5px}.outer .feature-flag .expandcollapse .btn:hover{background-color:#ebebeb}.outer .feature-flag .header{display:flex;flex-direction:column;flex-grow:1;min-width:0}.outer .feature-flag .header .top{display:flex;align-items:flex-start}.outer .feature-flag .header .top .left{display:flex;flex-direction:column;min-width:0;max-width:45%;padding:0 36px 0 16px}.outer .feature-flag .header .top .left .name-key{display:flex;align-items:center;flex-wrap:wrap;min-width:0;padding-top:6px}.outer .feature-flag .header .top .left .name-key .name{padding-top:4px;margin-right:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .top .left .name-key .key-outer{padding-top:6px;display:flex;align-items:center;min-width:0;cursor:pointer}.outer .feature-flag .header .top .left .name-key .key-outer .key{background-color:#cfcfcf;padding:1.5px 6px 3px;font-size:12px;border-radius:3px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outer .feature-flag .header .top .left .name-key .key-outer .mat-icon{margin-left:4px;font-size:14px;width:14px;height:14px;opacity:.5;overflow:visible}.outer .feature-flag .header .top .right{display:flex;flex-direction:column;align-items:flex-end;margin-left:auto;margin-right:4px}.outer .feature-flag .header .top .right .line{--mat-icon-button-touch-target-display: none;display:flex}.outer .feature-flag .header .top .right .line .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.outer .feature-flag .header .top .right .line .prereq-button .mat-icon{padding-top:4px;font-size:16px;width:16px;color:#6b6b6b}.outer .feature-flag .header .top .right .line .more-button .mat-icon{padding-top:2px;font-size:20px;width:20px;color:#6b6b6b}.outer .feature-flag .header .hint-container{display:flex;margin-top:12px;min-width:0}.outer .feature-flag .header .hint-container .hint{color:#505050;font-size:.85em;white-space:pre-line;word-wrap:break-word;padding:4px 16px 8px;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .hint-container .glance{flex-wrap:nowrap;padding:6px 18px 0 16px;margin-left:auto}.outer .feature-flag .header .hint-container .text-glance{min-width:40%;max-width:40%;height:min-content}.outer .feature-flag .header .quick-glance{cursor:pointer;min-width:80px;max-width:200px;font-size:10px;text-align:center;margin-right:15px;margin-left:auto;font-weight:700}.outer .feature-flag .header .quick-glance .quick-glance-item{margin:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .quick-glance .container{width:auto;padding:5px;background-color:#f2f4f8;border:1px solid #c9c9c9;border-radius:5px}.outer .feature-flag .header .quick-glance .on{color:#0f8f11}.outer .feature-flag .header .quick-glance .off{color:#be0b0b}.outer .feature-flag .header .quick-glance .other{color:#4881b9}.outer .feature-flag .header .quick-glance .default{color:unset}.tag-menu-action,.tag-menu-item{display:flex;align-items:center}.tag-select-container{line-height:22px;overflow:hidden}.tag-select-item{height:22px;padding:0 .3rem;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1000px){.outer .feature-flag .header .top .left .name-key{flex-wrap:wrap}.outer .feature-flag .header .top .left .name-key .name{max-width:100%}}@media (max-width: 700px){.outer .feature-flag .header .top .left{max-width:100%!important;padding-right:4px!important}.outer .feature-flag .header .top .left .name-key{flex-wrap:wrap}.outer .feature-flag .header .top .left .name-key .name{max-width:100%}.outer .feature-flag .header .top .right{flex-wrap:wrap}.outer .feature-flag .header .top .right .line .watch-wrapper .status{display:none}.outer .feature-flag .header .hint-container{flex-wrap:wrap}.outer .feature-flag .header .hint-container .text-glance{max-width:unset}}\n"] }]
158
+ args: [{ selector: 'app-feature-flag', template: "<div class=\"outer\">\n <div class=\"mat-elevation-z0 feature-flag\" [ngClass]=\"{'invalid': formGroup.touched && formGroup.invalid}\">\n <div class=\"expandcollapse\">\n <div *ngIf=\"flagState.panelExpanded\" matTooltip=\"Collapse\" (click)=\"setExpanded(!flagState.panelExpanded)\"\n class=\"btn\">\n <mat-icon>arrow_drop_up</mat-icon>\n </div>\n <div *ngIf=\"!flagState.panelExpanded\" matTooltip=\"Expand\" (click)=\"setExpanded(!flagState.panelExpanded)\"\n class=\"btn\">\n <mat-icon>arrow_drop_down</mat-icon>\n </div>\n </div>\n <div class=\"header\">\n <div class=\"top\">\n <div class=\"left\">\n <div class=\"name-key\">\n <span class=\"name\"\n [matTooltip]=\"flagState.settingValue.setting.name\">{{flagState.settingValue.setting.name}}</span>\n <span class=\"key-outer\" matTooltip=\"Copy feature flag key to clipboard\"\n [cdkCopyToClipboard]=\"flagState.settingValue.setting.key\"\n (cdkCopyToClipboardCopied)=\"keyCopied()\">\n <span class=\"key\">\n <code>{{flagState.settingValue.setting.key}}</code>\n </span>\n <mat-icon>content_copy</mat-icon>\n </span>\n </div>\n </div>\n\n <div class=\"right\">\n <div class=\"line\">\n <button type=\"button\" class=\"prereq-button\" mat-icon-button\n *ngIf=\"flagState.dependeeSettings && flagState.dependeeSettings.length\"\n [track]=\"['prerequisite button click', 'Feature flags & settings V2 page']\"\n [matTooltip]=\"'Prerequisite of '+flagState.dependeeSettings.length+' other flag(s).'\"\n (click)=\"openDependeesDialog()\">\n <mat-icon>account_tree</mat-icon>\n </button>\n <button type=\"button\" class=\"more-button\" [matMenuTriggerFor]=\"moreMenu\" mat-icon-button\n [track]=\"['more menu button click', 'Feature flags & settings V2 page']\" matTooltip=\"More\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"hint-container\">\n <div class=\"hint\" *ngIf=\"flagState.settingValue.setting.hint\">\n {{flagState.settingValue.setting.hint}}\n </div>\n\n <app-feature-flag-value class=\"glance\"\n [class.text-glance]=\"flagState.settingValue.setting.settingType !== 'boolean'\"\n *ngIf=\"!flagState.panelExpanded && !formGroup.controls.targetingRules.length\"\n [flagState]=\"flagState\"\n [formGroup]=\"formGroup.controls.defaultValue\" [featureFlagLimitations]=\"featureFlagLimitations\"\n tooltip=\"Served value\"></app-feature-flag-value>\n\n <div class=\"quick-glance\" *ngIf=\"getGlance() as glance\" (click)=\"setExpanded(!flagState.panelExpanded)\">\n <div class=\"container\" [class]=\"glance.class\">\n <div class=\"quick-glance-item\" *ngIf=\"glance.percentageText\">{{glance.percentageText}}</div>\n <div class=\"quick-glance-item\" *ngIf=\"glance.ruleText\">{{glance.ruleText}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"flagState.panelExpanded\">\n <div class=\"eval-formula-wrapper\">\n <app-evaluation-formula [formGroup]=\"formGroup\" [flagState]=\"flagState\" [segments]=\"segments\"\n [featureFlagLimitations]=\"featureFlagLimitations\"\n (subscriptionLimitReached)=\"subscriptionLimitReachedCalled()\" [canManageSegments]=\"false\"\n (addSegmentConditionRequestedWithoutSegments)=\"addSegmentConditionRequestedWithoutSegments.emit()\"\n [showPercentageEvaluationAttribute]=\"!!formGroup.controls.percentageEvaluationAttribute.value\"\n (changePercentageEvaluationAttributeRequested)=\"changePercentageEvaluationAttribute()\"\n (prerequisiteConditionChanged)=\"prerequisiteConditionChanged.emit($event)\"\n (recalcAddButtons)=\"recalcAddButtons.emit()\">\n </app-evaluation-formula>\n </div>\n </ng-container>\n </div>\n</div>\n<mat-menu #moreMenu=\"matMenu\">\n <div mat-menu-item data-robot=\"history\" (click)=\"changePercentageEvaluationAttribute()\"\n [track]=\"['change percentage attribute click', 'Feature flags & settings V2 page']\"\n [disabled]=\"this.flagState.readOnly\">\n <mat-icon>percent</mat-icon>\n <span>Change percentage attribute</span>\n </div>\n <a href=\"{{getDashboardUrl()}}\" target=\"_blank\" rel=\"noopener noreferrer\">\n <div mat-menu-item data-robot=\"history\">\n <mat-icon>open_in_new</mat-icon>\n <span>Open in ConfigCat</span>\n </div>\n </a>\n <div mat-menu-item data-robot=\"renameSetting\"\n [track]=\"['copy direct link click', 'Feature flags & settings V2 page']\" (click)=\"copyDirectLink()\">\n <mat-icon>content_copy</mat-icon>\n <span>Copy direct link</span>\n </div>\n <div *ngIf=\"canDeleteSetting\">\n <mat-divider></mat-divider>\n <div mat-menu-item data-robot=\"deleteSetting\"\n [track]=\"['delete feature flag click', 'Feature flags & settings V2 page']\" (click)=\"deleteSetting()\">\n <mat-icon>delete_outline</mat-icon>\n <span>{{deleteSettingText}}</span>\n </div>\n </div>\n</mat-menu>", styles: [".outer{padding:10px 0;display:flex;flex-direction:row;flex-grow:1}.outer .eval-formula-wrapper{margin-top:6px}.outer .feature-flag{flex-grow:1;min-width:0;background-color:#dee5f0;border:1px solid #c9c9c9;border-radius:0!important;padding:5px 0 5px 5px}.outer .feature-flag.invalid{border-color:#ff5252}.outer .feature-flag .expandcollapse .btn{text-align:center;width:60px;height:14px;background-color:#f2f4f8;border:1px solid #c9c9c9;position:absolute;color:#878787;left:50%;transform:translate(-50%,-34%);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top-width:0px;cursor:pointer}.outer .feature-flag .expandcollapse .btn mat-icon{margin-top:-5px}.outer .feature-flag .expandcollapse .btn:hover{background-color:#ebebeb}.outer .feature-flag .header{display:flex;flex-direction:column;flex-grow:1;min-width:0}.outer .feature-flag .header .top{display:flex;align-items:flex-start}.outer .feature-flag .header .top .left{display:flex;flex-direction:column;min-width:0;max-width:45%;padding:0 36px 0 16px}.outer .feature-flag .header .top .left .name-key{display:flex;align-items:center;flex-wrap:wrap;min-width:0;padding-top:6px}.outer .feature-flag .header .top .left .name-key .name{padding-top:4px;margin-right:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .top .left .name-key .key-outer{padding-top:6px;display:flex;align-items:center;min-width:0;cursor:pointer}.outer .feature-flag .header .top .left .name-key .key-outer .key{background-color:#cfcfcf;padding:1.5px 6px 3px;font-size:12px;border-radius:3px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outer .feature-flag .header .top .left .name-key .key-outer .mat-icon{margin-left:4px;font-size:14px;width:14px;height:14px;opacity:.5;overflow:visible}.outer .feature-flag .header .top .right{display:flex;flex-direction:column;align-items:flex-end;margin-left:auto;margin-right:4px}.outer .feature-flag .header .top .right .line{--mat-icon-button-touch-target-display: none;display:flex}.outer .feature-flag .header .top .right .line .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.outer .feature-flag .header .top .right .line .prereq-button .mat-icon{padding-top:4px;font-size:16px;width:16px;color:#6b6b6b}.outer .feature-flag .header .top .right .line .more-button .mat-icon{padding-top:2px;font-size:20px;width:20px;color:#6b6b6b}.outer .feature-flag .header .hint-container{display:flex;margin-top:12px;min-width:0}.outer .feature-flag .header .hint-container .hint{color:#505050;font-size:.85em;white-space:pre-line;word-wrap:break-word;padding:4px 16px 8px;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .hint-container .glance{flex-wrap:nowrap;padding:6px 18px 0 16px;margin-left:auto}.outer .feature-flag .header .hint-container .text-glance{min-width:40%;max-width:40%;height:min-content}.outer .feature-flag .header .quick-glance{cursor:pointer;min-width:80px;max-width:200px;font-size:10px;text-align:center;margin-right:15px;margin-left:auto;font-weight:700}.outer .feature-flag .header .quick-glance .quick-glance-item{margin:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outer .feature-flag .header .quick-glance .container{width:auto;padding:5px;background-color:#f2f4f8;border:1px solid #c9c9c9;border-radius:5px}.outer .feature-flag .header .quick-glance .on{color:#0f8f11}.outer .feature-flag .header .quick-glance .off{color:#be0b0b}.outer .feature-flag .header .quick-glance .other{color:#4881b9}.outer .feature-flag .header .quick-glance .default{color:unset}.tag-menu-action,.tag-menu-item{display:flex;align-items:center}.tag-select-container{line-height:22px;overflow:hidden}.tag-select-item{height:22px;padding:0 .3rem;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1000px){.outer .feature-flag .header .top .left .name-key{flex-wrap:wrap}.outer .feature-flag .header .top .left .name-key .name{max-width:100%}}@media (max-width: 700px){.outer .feature-flag .header .top .left{max-width:100%!important;padding-right:4px!important}.outer .feature-flag .header .top .left .name-key{flex-wrap:wrap}.outer .feature-flag .header .top .left .name-key .name{max-width:100%}.outer .feature-flag .header .top .right{flex-wrap:wrap}.outer .feature-flag .header .top .right .line .watch-wrapper .status{display:none}.outer .feature-flag .header .hint-container{flex-wrap:wrap}.outer .feature-flag .header .hint-container .text-glance{max-width:unset}}\n"] }]
161
159
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.MessagingService }, { type: i2.FormGenerator }, { type: i3.Router }, { type: i4.PublicApiService }, { type: i5.Clipboard }], propDecorators: { formGroup: [{
162
160
  type: Input
163
161
  }], flagState: [{
@@ -174,6 +172,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
174
172
  type: Input
175
173
  }], deleteSettingText: [{
176
174
  type: Input
175
+ }], canDeleteSetting: [{
176
+ type: Input
177
177
  }], addSegmentConditionRequestedWithoutSegments: [{
178
178
  type: Output
179
179
  }], expandedChanged: [{
@@ -187,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
187
187
  }], recalcAddButtons: [{
188
188
  type: Output
189
189
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZmVhdHVyZS1mbGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZmVhdHVyZS1mbGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkUsT0FBTyxFQUdVLFdBQVcsRUFDM0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSwyRkFBMkYsQ0FBQztBQUl6SixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlekYsTUFBTSxPQUFPLG9CQUFvQjtJQWtCL0IsWUFDVSxNQUFpQixFQUNqQixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsTUFBYyxFQUNkLGdCQUFrQyxFQUNsQyxTQUFvQjtRQUxwQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQWxCckIsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLHNCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBRXBDLGdEQUEyQyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzlDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUMsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUN4RSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBU2hELENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUI7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELDhCQUE4QjtRQUM1QixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELG1DQUFtQztRQUNqQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsRUFBRTtZQUMvRSxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRTtnQkFDSiw2QkFBNkIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLO2dCQUMxRixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO2FBQ2xDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsNkJBQTZCLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25ILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDckcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLDZCQUE2QixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQTtRQUU5RixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3JJLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdEUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDNUUsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakksSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7b0JBQzdFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixDQUFDO3FCQUNJLENBQUM7b0JBQ0osTUFBTSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7b0JBQ2xDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtnQkFDM0MsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN4RCxLQUFLLFdBQVcsQ0FBQyxNQUFNO29CQUNyQixNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztvQkFDakcsTUFBTTtnQkFDUixLQUFLLFdBQVcsQ0FBQyxHQUFHO29CQUNsQixNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztvQkFDOUYsTUFBTTtnQkFDUixLQUFLLFdBQVcsQ0FBQyxNQUFNO29CQUNyQixNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO29CQUMvRSxNQUFNO2dCQUNSLEtBQUssV0FBVyxDQUFDLE9BQU87b0JBQ3RCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDckcsTUFBTTtZQUNWLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM1RSxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxLQUFLLElBQUksSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzdHLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDekksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTyxJQUFJLEdBQUcsS0FBSyxHQUFHLE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELGVBQWU7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxjQUFjO1lBQ3JILElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM1TSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDekMsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQjtnQkFDMUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJO2dCQUM5QyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsY0FBYztnQkFDdEYsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDL0QsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2dCQUNyRCxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGFBQWE7YUFDckU7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTFKVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix5ckJDM0JqQyx5NUxBd0dXOzsyRkQ3RUUsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGtCQUFrQjtxTkFPbkIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksMkNBQTJDO3NCQUFwRCxNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyw0QkFBNEI7c0JBQXJDLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBNZXNzYWdpbmdTZXJ2aWNlLCBJU2VnbWVudCxcbiAgSVByZXJlcXVpc2l0ZUNoYW5nZWQsIElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zLCBVcGRhdGVTZXR0aW5nVmFsdWVGb3JtLFxuICBGb3JtR2VuZXJhdG9yLCBTZXR0aW5nVHlwZSwgSUZsYWdTdGF0ZVxufSBmcm9tICcuLi8uLi9ib290c3RyYXAnO1xuaW1wb3J0IHsgUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3BlcmNlbnRhZ2UtZXZhbHVhdGlvbi1hdHRyaWJ1dGUtZGlhbG9nL3BlcmNlbnRhZ2UtZXZhbHVhdGlvbi1hdHRyaWJ1dGUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUHVibGljQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDbGlwYm9hcmQgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7IERlcGVuZGVlc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGVwZW5kZWVzLWRpYWxvZy9kZXBlbmRlZXMtZGlhbG9nLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdsYW5jZSB7XG4gIHJ1bGVUZXh0OiBzdHJpbmdcbiAgcGVyY2VudGFnZVRleHQ6IHN0cmluZ1xuICBjbGFzczogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mZWF0dXJlLWZsYWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1mbGFnLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vZmVhdHVyZS1mbGFnLmNvbXBvbmVudC5zY3NzJ1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVGbGFnQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXA8VXBkYXRlU2V0dGluZ1ZhbHVlRm9ybT47XG4gIEBJbnB1dCgpIGZsYWdTdGF0ZTogSUZsYWdTdGF0ZTtcbiAgQElucHV0KCkgc2VnbWVudHM6IElTZWdtZW50W107XG4gIEBJbnB1dCgpIGZlYXR1cmVGbGFnTGltaXRhdGlvbnM6IElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zO1xuICBASW5wdXQoKSBoYXNPdGhlckVudmlyb25tZW50OiBib29sZWFuO1xuICBASW5wdXQoKSBlbnZpcm9ubWVudE5hbWUgPSBcIlwiO1xuICBASW5wdXQoKSBzaG93RW52aXJvbm1lbnROYW1lID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlbGV0ZVNldHRpbmdUZXh0ID0gJ0RlbGV0ZSBzZXR0aW5nJztcblxuICBAT3V0cHV0KCkgYWRkU2VnbWVudENvbmRpdGlvblJlcXVlc3RlZFdpdGhvdXRTZWdtZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgZXhwYW5kZWRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZGVsZXRlU2V0dGluZ1JlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElQcmVyZXF1aXNpdGVDaGFuZ2VkPigpO1xuICBAT3V0cHV0KCkgcmVjYWxjQWRkQnV0dG9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgbWVzc2FnaW5nU2VydmljZTogTWVzc2FnaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1HZW5lcmF0b3I6IEZvcm1HZW5lcmF0b3IsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHB1YmxpY0FwaVNlcnZpY2U6IFB1YmxpY0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjbGlwYm9hcmQ6IENsaXBib2FyZCkge1xuICB9XG5cbiAgc2V0RXhwYW5kZWQoZXhwYW5kZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlZC5lbWl0KGV4cGFuZGVkKTtcbiAgfVxuXG4gIGRlbGV0ZVNldHRpbmcoKSB7XG4gICAgdGhpcy5kZWxldGVTZXR0aW5nUmVxdWVzdGVkLmVtaXQoeyBzZXR0aW5nOiB0aGlzLmZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZyB9KTtcbiAgfVxuXG4gIGtleUNvcGllZCgpIHtcbiAgICB0aGlzLm1lc3NhZ2luZ1NlcnZpY2Uuc2hvd1N1Y2Nlc3NTbmFjaygnQ29waWVkLicpO1xuICB9XG5cbiAgc3Vic2NyaXB0aW9uTGltaXRSZWFjaGVkQ2FsbGVkKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uTGltaXRSZWFjaGVkLmVtaXQoKTtcbiAgfVxuXG4gIGNoYW5nZVBlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlKCkge1xuICAgIGlmICh0aGlzLmZsYWdTdGF0ZS5yZWFkT25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICBwZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZTogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUudmFsdWUsXG4gICAgICAgIHJlYWRPbmx5OiB0aGlzLmZsYWdTdGF0ZS5yZWFkT25seVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5wZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZSAhPT0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUudmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUuc2V0VmFsdWUocmVzdWx0LnBlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5wZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5wZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRHbGFuY2UoKTogSUdsYW5jZSB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmZsYWdTdGF0ZS5wYW5lbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBnbGFuY2U6IElHbGFuY2UgPSB7IHJ1bGVUZXh0OiB0aGlzLmdldFJ1bGVUZXh0KCksIHBlcmNlbnRhZ2VUZXh0OiAnJywgY2xhc3M6ICdkZWZhdWx0JyB9XG5cbiAgICBjb25zdCBoYXNUcnVlUnVsZSA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzLnNvbWUociA9PiByLmNvbnRyb2xzLnZhbHVlPy5jb250cm9scz8uYm9vbFZhbHVlPy52YWx1ZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgbGFzdEZvcm11bGFUZXJtID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHNbdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHMubGVuZ3RoIC0gMV07XG4gICAgaWYgKHRoaXMuZm9ybUdlbmVyYXRvci5pc1BlcmNlbnRhZ2VPbmx5VGFyZ2V0aW5nUnVsZShsYXN0Rm9ybXVsYVRlcm0pKSB7XG4gICAgICBpZiAodGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcuc2V0dGluZ1R5cGUgPT09IFNldHRpbmdUeXBlLkJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgYm9vbFJ1bGUgPSBsYXN0Rm9ybXVsYVRlcm0uY29udHJvbHMucGVyY2VudGFnZU9wdGlvbnMuY29udHJvbHMuZmlsdGVyKHAgPT4gcC5jb250cm9scy52YWx1ZS5jb250cm9scz8uYm9vbFZhbHVlPy52YWx1ZSlbMF07XG4gICAgICAgIGlmIChib29sUnVsZS5jb250cm9scy5wZXJjZW50YWdlLnZhbHVlID4gMCkge1xuICAgICAgICAgIGdsYW5jZS5wZXJjZW50YWdlVGV4dCA9ICdPTiBmb3IgJyArIGJvb2xSdWxlLmNvbnRyb2xzLnBlcmNlbnRhZ2UudmFsdWUgKyAnJSc7XG4gICAgICAgICAgZ2xhbmNlLmNsYXNzID0gJ29uJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBnbGFuY2UucGVyY2VudGFnZVRleHQgPSAnT0ZGICglKSc7XG4gICAgICAgICAgZ2xhbmNlLmNsYXNzID0gaGFzVHJ1ZVJ1bGUgPyAnb24nIDogJ29mZidcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ2xhbmNlLnBlcmNlbnRhZ2VUZXh0ID0gbGFzdEZvcm11bGFUZXJtLmNvbnRyb2xzLnBlcmNlbnRhZ2VPcHRpb25zLmNvbnRyb2xzLm1hcChwID0+IHAuY29udHJvbHMucGVyY2VudGFnZS52YWx1ZSArICclJykuam9pbignIC8gJyk7XG4gICAgICAgIGdsYW5jZS5jbGFzcyA9ICdvdGhlcic7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAodGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcuc2V0dGluZ1R5cGUpIHtcbiAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5Eb3VibGU6XG4gICAgICAgICAgZ2xhbmNlLnBlcmNlbnRhZ2VUZXh0ID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGVmYXVsdFZhbHVlLnZhbHVlLmRvdWJsZVZhbHVlPy50b1N0cmluZygpID8/ICcnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNldHRpbmdUeXBlLkludDpcbiAgICAgICAgICBnbGFuY2UucGVyY2VudGFnZVRleHQgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5kZWZhdWx0VmFsdWUudmFsdWUuaW50VmFsdWU/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2V0dGluZ1R5cGUuU3RyaW5nOlxuICAgICAgICAgIGdsYW5jZS5wZXJjZW50YWdlVGV4dCA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmRlZmF1bHRWYWx1ZS52YWx1ZS5zdHJpbmdWYWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5Cb29sZWFuOlxuICAgICAgICAgIGdsYW5jZS5wZXJjZW50YWdlVGV4dCA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmRlZmF1bHRWYWx1ZS52YWx1ZS5ib29sVmFsdWUgPT09IHRydWUgPyAnT04nIDogJ09GRic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5zZXR0aW5nVHlwZSA9PT0gU2V0dGluZ1R5cGUuQm9vbGVhbikge1xuICAgICAgICBnbGFuY2UuY2xhc3MgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5kZWZhdWx0VmFsdWUudmFsdWUuYm9vbFZhbHVlID09PSB0cnVlIHx8IGhhc1RydWVSdWxlID8gJ29uJyA6ICdvZmYnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ2xhbmNlLmNsYXNzID0gJ290aGVyJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZ2xhbmNlO1xuICB9XG5cbiAgZ2V0UnVsZVRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzLmZpbHRlcih0ciA9PiAhdGhpcy5mb3JtR2VuZXJhdG9yLmlzUGVyY2VudGFnZU9ubHlUYXJnZXRpbmdSdWxlKHRyKSkubGVuZ3RoO1xuICAgIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiAnKyAnICsgY291bnQgKyAnIHJ1bGUnICsgKGNvdW50ID4gMSA/ICdzJyA6ICcnKTtcbiAgfVxuICBvcGVuSW5Db25maWdDYXQoKSB7XG4gICAgd2luZG93Lm9wZW4odGhpcy5nZXREYXNoYm9hcmRVcmwoKSwgJ19ibGFuaycpO1xuICB9XG5cbiAgY29weURpcmVjdExpbmsoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkodGhpcy5nZXREYXNoYm9hcmRVcmwoKSk7XG4gICAgICB0aGlzLm1lc3NhZ2luZ1NlcnZpY2Uuc2hvd1N1Y2Nlc3NTbmFjayhcIkNvcGllZCBkaXJlY3QgbGluayB0byBjbGlwYm9hcmQuXCIpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5tZXNzYWdpbmdTZXJ2aWNlLnNob3dTdWNjZXNzU25hY2soXCJDbGlwYm9hcmQgdW5hdmFpbGFibGUuXCIpO1xuICAgIH1cbiAgfVxuXG4gIGdldERhc2hib2FyZFVybCgpIHtcbiAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJ3YyJywgdGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLmNvbmZpZy5wcm9kdWN0Lm9yZ2FuaXphdGlvbi5vcmdhbml6YXRpb25JZCxcbiAgICAgIHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5jb25maWcucHJvZHVjdC5wcm9kdWN0SWQsIHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5jb25maWcuY29uZmlnSWQsIHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5lbnZpcm9ubWVudC5lbnZpcm9ubWVudElkLCB0aGlzLmZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5zZXR0aW5nSWRdKTtcbiAgICByZXR1cm4gdGhpcy5wdWJsaWNBcGlTZXJ2aWNlLmdldERhc2hib2FyZEJhc2VQYXRoKCkgKyB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodXJsVHJlZSk7XG4gIH1cblxuICBvcGVuRGVwZW5kZWVzRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oRGVwZW5kZWVzRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGRlcGVuZGVlczogdGhpcy5mbGFnU3RhdGUuZGVwZW5kZWVTZXR0aW5ncyxcbiAgICAgICAgbmFtZTogdGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcubmFtZSxcbiAgICAgICAgb3JnYW5pemF0aW9uSWQ6IHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5jb25maWcucHJvZHVjdC5vcmdhbml6YXRpb24ub3JnYW5pemF0aW9uSWQsXG4gICAgICAgIHByb2R1Y3RJZDogdGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLmNvbmZpZy5wcm9kdWN0LnByb2R1Y3RJZCxcbiAgICAgICAgY29uZmlnSWQ6IHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5jb25maWcuY29uZmlnSWQsXG4gICAgICAgIGVudmlyb25tZW50SWQ6IHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5lbnZpcm9ubWVudC5lbnZpcm9ubWVudElkXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvdXRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXowIGZlYXR1cmUtZmxhZ1wiIFtuZ0NsYXNzXT1cInsnaW52YWxpZCc6IGZvcm1Hcm91cC50b3VjaGVkICYmIGZvcm1Hcm91cC5pbnZhbGlkfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5kY29sbGFwc2VcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmbGFnU3RhdGUucGFuZWxFeHBhbmRlZFwiIG1hdFRvb2x0aXA9XCJDb2xsYXBzZVwiIChjbGljayk9XCJzZXRFeHBhbmRlZCghZmxhZ1N0YXRlLnBhbmVsRXhwYW5kZWQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19kcm9wX3VwPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFmbGFnU3RhdGUucGFuZWxFeHBhbmRlZFwiIG1hdFRvb2x0aXA9XCJFeHBhbmRcIiAoY2xpY2spPVwic2V0RXhwYW5kZWQoIWZsYWdTdGF0ZS5wYW5lbEV4cGFuZGVkKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJmbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcubmFtZVwiPnt7ZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2V5LW91dGVyXCIgbWF0VG9vbHRpcD1cIkNvcHkgZmVhdHVyZSBmbGFnIGtleSB0byBjbGlwYm9hcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtDb3B5VG9DbGlwYm9hcmRdPVwiZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0NvcHlUb0NsaXBib2FyZENvcGllZCk9XCJrZXlDb3BpZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnt7ZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLmtleX19PC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlcmVxLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmxhZ1N0YXRlLmRlcGVuZGVlU2V0dGluZ3MgJiYgZmxhZ1N0YXRlLmRlcGVuZGVlU2V0dGluZ3MubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhY2tdPVwiWydwcmVyZXF1aXNpdGUgYnV0dG9uIGNsaWNrJywgJ0ZlYXR1cmUgZmxhZ3MgJiBzZXR0aW5ncyBWMiBwYWdlJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidQcmVyZXF1aXNpdGUgb2YgJytmbGFnU3RhdGUuZGVwZW5kZWVTZXR0aW5ncy5sZW5ndGgrJyBvdGhlciBmbGFnKHMpLidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGVwZW5kZWVzRGlhbG9nKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtb3JlLWJ1dHRvblwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtb3JlTWVudVwiIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFja109XCJbJ21vcmUgbWVudSBidXR0b24gY2xpY2snLCAnRmVhdHVyZSBmbGFncyAmIHNldHRpbmdzIFYyIHBhZ2UnXVwiIG1hdFRvb2x0aXA9XCJNb3JlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpbnQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpbnRcIiAqbmdJZj1cImZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5oaW50XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLmhpbnR9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGFwcC1mZWF0dXJlLWZsYWctdmFsdWUgY2xhc3M9XCJnbGFuY2VcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC1nbGFuY2VdPVwiZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLnNldHRpbmdUeXBlICE9PSAnYm9vbGVhbidcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmbGFnU3RhdGUucGFuZWxFeHBhbmRlZCAmJiAhZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtmbGFnU3RhdGVdPVwiZmxhZ1N0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAuY29udHJvbHMuZGVmYXVsdFZhbHVlXCIgW2ZlYXR1cmVGbGFnTGltaXRhdGlvbnNdPVwiZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJTZXJ2ZWQgdmFsdWVcIj48L2FwcC1mZWF0dXJlLWZsYWctdmFsdWU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stZ2xhbmNlXCIgKm5nSWY9XCJnZXRHbGFuY2UoKSBhcyBnbGFuY2VcIiAoY2xpY2spPVwic2V0RXhwYW5kZWQoIWZsYWdTdGF0ZS5wYW5lbEV4cGFuZGVkKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgW2NsYXNzXT1cImdsYW5jZS5jbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1aWNrLWdsYW5jZS1pdGVtXCIgKm5nSWY9XCJnbGFuY2UucGVyY2VudGFnZVRleHRcIj57e2dsYW5jZS5wZXJjZW50YWdlVGV4dH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stZ2xhbmNlLWl0ZW1cIiAqbmdJZj1cImdsYW5jZS5ydWxlVGV4dFwiPnt7Z2xhbmNlLnJ1bGVUZXh0fX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZsYWdTdGF0ZS5wYW5lbEV4cGFuZGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZhbC1mb3JtdWxhLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8YXBwLWV2YWx1YXRpb24tZm9ybXVsYSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtmbGFnU3RhdGVdPVwiZmxhZ1N0YXRlXCIgW3NlZ21lbnRzXT1cInNlZ21lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZlYXR1cmVGbGFnTGltaXRhdGlvbnNdPVwiZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIChzdWJzY3JpcHRpb25MaW1pdFJlYWNoZWQpPVwic3Vic2NyaXB0aW9uTGltaXRSZWFjaGVkQ2FsbGVkKClcIiBbY2FuTWFuYWdlU2VnbWVudHNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAoYWRkU2VnbWVudENvbmRpdGlvblJlcXVlc3RlZFdpdGhvdXRTZWdtZW50cyk9XCJhZGRTZWdtZW50Q29uZGl0aW9uUmVxdWVzdGVkV2l0aG91dFNlZ21lbnRzLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93UGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVdPVwiISFmb3JtR3JvdXAuY29udHJvbHMucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVSZXF1ZXN0ZWQpPVwiY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIChwcmVyZXF1aXNpdGVDb25kaXRpb25DaGFuZ2VkKT1cInByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHJlY2FsY0FkZEJ1dHRvbnMpPVwicmVjYWxjQWRkQnV0dG9ucy5lbWl0KClcIj5cbiAgICAgICAgICAgICAgICA8L2FwcC1ldmFsdWF0aW9uLWZvcm11bGE+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxtYXQtbWVudSAjbW9yZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgPGRpdiBtYXQtbWVudS1pdGVtIGRhdGEtcm9ib3Q9XCJoaXN0b3J5XCIgKGNsaWNrKT1cImNoYW5nZVBlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlKClcIlxuICAgICAgICBbdHJhY2tdPVwiWydjaGFuZ2UgcGVyY2VudGFnZSBhdHRyaWJ1dGUgY2xpY2snLCAnRmVhdHVyZSBmbGFncyAmIHNldHRpbmdzIFYyIHBhZ2UnXVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0aGlzLmZsYWdTdGF0ZS5yZWFkT25seVwiPlxuICAgICAgICA8bWF0LWljb24+cGVyY2VudDwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPkNoYW5nZSBwZXJjZW50YWdlIGF0dHJpYnV0ZTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gZGF0YS1yb2JvdD1cImhpc3RvcnlcIiAoY2xpY2spPVwib3BlbkluQ29uZmlnQ2F0KClcIj5cbiAgICAgICAgPG1hdC1pY29uPm9wZW5faW5fbmV3PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+T3BlbiBpbiBDb25maWdDYXQ8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBtYXQtbWVudS1pdGVtIGRhdGEtcm9ib3Q9XCJyZW5hbWVTZXR0aW5nXCJcbiAgICAgICAgW3RyYWNrXT1cIlsnY29weSBkaXJlY3QgbGluayBjbGljaycsICdGZWF0dXJlIGZsYWdzICYgc2V0dGluZ3MgVjIgcGFnZSddXCIgKGNsaWNrKT1cImNvcHlEaXJlY3RMaW5rKClcIj5cbiAgICAgICAgPG1hdC1pY29uPmNvbnRlbnRfY29weTwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPkNvcHkgZGlyZWN0IGxpbms8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgPGRpdiBtYXQtbWVudS1pdGVtIGRhdGEtcm9ib3Q9XCJkZWxldGVTZXR0aW5nXCJcbiAgICAgICAgW3RyYWNrXT1cIlsnZGVsZXRlIGZlYXR1cmUgZmxhZyBjbGljaycsICdGZWF0dXJlIGZsYWdzICYgc2V0dGluZ3MgVjIgcGFnZSddXCIgKGNsaWNrKT1cImRlbGV0ZVNldHRpbmcoKVwiPlxuICAgICAgICA8bWF0LWljb24+ZGVsZXRlX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICA8c3Bhbj57e2RlbGV0ZVNldHRpbmdUZXh0fX08L3NwYW4+XG4gICAgPC9kaXY+XG48L21hdC1tZW51PiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZmVhdHVyZS1mbGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZmVhdHVyZS1mbGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkUsT0FBTyxFQUdVLFdBQVcsRUFDM0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSwyRkFBMkYsQ0FBQztBQUl6SixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlekYsTUFBTSxPQUFPLG9CQUFvQjtJQW1CL0IsWUFDVSxNQUFpQixFQUNqQixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsTUFBYyxFQUNkLGdCQUFrQyxFQUNsQyxTQUFvQjtRQUxwQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQW5CckIsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLHNCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBQ3JDLHFCQUFnQixH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RSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsYUFBYTthQUNyRTtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBeEpVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCt0QkMzQmpDLHFqTUE0R1c7OzJGRGpGRSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCO3FOQU9uQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksMkNBQTJDO3NCQUFwRCxNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyw0QkFBNEI7c0JBQXJDLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBNZXNzYWdpbmdTZXJ2aWNlLCBJU2VnbWVudCxcbiAgSVByZXJlcXVpc2l0ZUNoYW5nZWQsIElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zLCBVcGRhdGVTZXR0aW5nVmFsdWVGb3JtLFxuICBGb3JtR2VuZXJhdG9yLCBTZXR0aW5nVHlwZSwgSUZsYWdTdGF0ZVxufSBmcm9tICcuLi8uLi9ib290c3RyYXAnO1xuaW1wb3J0IHsgUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3BlcmNlbnRhZ2UtZXZhbHVhdGlvbi1hdHRyaWJ1dGUtZGlhbG9nL3BlcmNlbnRhZ2UtZXZhbHVhdGlvbi1hdHRyaWJ1dGUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUHVibGljQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDbGlwYm9hcmQgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7IERlcGVuZGVlc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGVwZW5kZWVzLWRpYWxvZy9kZXBlbmRlZXMtZGlhbG9nLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdsYW5jZSB7XG4gIHJ1bGVUZXh0OiBzdHJpbmdcbiAgcGVyY2VudGFnZVRleHQ6IHN0cmluZ1xuICBjbGFzczogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mZWF0dXJlLWZsYWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1mbGFnLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vZmVhdHVyZS1mbGFnLmNvbXBvbmVudC5zY3NzJ1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVGbGFnQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXA8VXBkYXRlU2V0dGluZ1ZhbHVlRm9ybT47XG4gIEBJbnB1dCgpIGZsYWdTdGF0ZTogSUZsYWdTdGF0ZTtcbiAgQElucHV0KCkgc2VnbWVudHM6IElTZWdtZW50W107XG4gIEBJbnB1dCgpIGZlYXR1cmVGbGFnTGltaXRhdGlvbnM6IElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zO1xuICBASW5wdXQoKSBoYXNPdGhlckVudmlyb25tZW50OiBib29sZWFuO1xuICBASW5wdXQoKSBlbnZpcm9ubWVudE5hbWUgPSBcIlwiO1xuICBASW5wdXQoKSBzaG93RW52aXJvbm1lbnROYW1lID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlbGV0ZVNldHRpbmdUZXh0ID0gJ0RlbGV0ZSBzZXR0aW5nJztcbiAgQElucHV0KCkgY2FuRGVsZXRlU2V0dGluZyA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBhZGRTZWdtZW50Q29uZGl0aW9uUmVxdWVzdGVkV2l0aG91dFNlZ21lbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBleHBhbmRlZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBkZWxldGVTZXR0aW5nUmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc3Vic2NyaXB0aW9uTGltaXRSZWFjaGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHJlcmVxdWlzaXRlQ29uZGl0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SVByZXJlcXVpc2l0ZUNoYW5nZWQ+KCk7XG4gIEBPdXRwdXQoKSByZWNhbGNBZGRCdXR0b25zID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBtZXNzYWdpbmdTZXJ2aWNlOiBNZXNzYWdpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUdlbmVyYXRvcjogRm9ybUdlbmVyYXRvcixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcHVibGljQXBpU2VydmljZTogUHVibGljQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGNsaXBib2FyZDogQ2xpcGJvYXJkKSB7XG4gIH1cblxuICBzZXRFeHBhbmRlZChleHBhbmRlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2VkLmVtaXQoZXhwYW5kZWQpO1xuICB9XG5cbiAgZGVsZXRlU2V0dGluZygpIHtcbiAgICB0aGlzLmRlbGV0ZVNldHRpbmdSZXF1ZXN0ZWQuZW1pdCh7IHNldHRpbmc6IHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nIH0pO1xuICB9XG5cbiAga2V5Q29waWVkKCkge1xuICAgIHRoaXMubWVzc2FnaW5nU2VydmljZS5zaG93U3VjY2Vzc1NuYWNrKCdDb3BpZWQuJyk7XG4gIH1cblxuICBzdWJzY3JpcHRpb25MaW1pdFJlYWNoZWRDYWxsZWQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25MaW1pdFJlYWNoZWQuZW1pdCgpO1xuICB9XG5cbiAgY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUoKSB7XG4gICAgaWYgKHRoaXMuZmxhZ1N0YXRlLnJlYWRPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihQZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc1MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHBlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlOiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5wZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZS52YWx1ZSxcbiAgICAgICAgcmVhZE9ubHk6IHRoaXMuZmxhZ1N0YXRlLnJlYWRPbmx5XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnBlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlICE9PSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5wZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZS52YWx1ZSkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5wZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZS5zZXRWYWx1ZShyZXN1bHQucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5wZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnBlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnBlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldEdsYW5jZSgpOiBJR2xhbmNlIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMubGVuZ3RoID09PSAwIHx8IHRoaXMuZmxhZ1N0YXRlLnBhbmVsRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGdsYW5jZTogSUdsYW5jZSA9IHsgcnVsZVRleHQ6IHRoaXMuZ2V0UnVsZVRleHQoKSwgcGVyY2VudGFnZVRleHQ6ICcnLCBjbGFzczogJ2RlZmF1bHQnIH1cblxuICAgIGNvbnN0IGhhc1RydWVSdWxlID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHMuc29tZShyID0+IHIuY29udHJvbHMudmFsdWU/LmNvbnRyb2xzPy5ib29sVmFsdWU/LnZhbHVlID09PSB0cnVlKTtcbiAgICBjb25zdCBsYXN0Rm9ybXVsYVRlcm0gPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy50YXJnZXRpbmdSdWxlcy5jb250cm9sc1t0aGlzLmZvcm1Hcm91cC5jb250cm9scy50YXJnZXRpbmdSdWxlcy5jb250cm9scy5sZW5ndGggLSAxXTtcbiAgICBpZiAodGhpcy5mb3JtR2VuZXJhdG9yLmlzUGVyY2VudGFnZU9ubHlUYXJnZXRpbmdSdWxlKGxhc3RGb3JtdWxhVGVybSkpIHtcbiAgICAgIGlmICh0aGlzLmZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5zZXR0aW5nVHlwZSA9PT0gU2V0dGluZ1R5cGUuQm9vbGVhbikge1xuICAgICAgICBjb25zdCBib29sUnVsZSA9IGxhc3RGb3JtdWxhVGVybS5jb250cm9scy5wZXJjZW50YWdlT3B0aW9ucy5jb250cm9scy5maWx0ZXIocCA9PiBwLmNvbnRyb2xzLnZhbHVlLmNvbnRyb2xzPy5ib29sVmFsdWU/LnZhbHVlKVswXTtcbiAgICAgICAgaWYgKGJvb2xSdWxlLmNvbnRyb2xzLnBlcmNlbnRhZ2UudmFsdWUgPiAwKSB7XG4gICAgICAgICAgZ2xhbmNlLnBlcmNlbnRhZ2VUZXh0ID0gJ09OIGZvciAnICsgYm9vbFJ1bGUuY29udHJvbHMucGVyY2VudGFnZS52YWx1ZSArICclJztcbiAgICAgICAgICBnbGFuY2UuY2xhc3MgPSAnb24nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGdsYW5jZS5wZXJjZW50YWdlVGV4dCA9ICdPRkYgKCUpJztcbiAgICAgICAgICBnbGFuY2UuY2xhc3MgPSBoYXNUcnVlUnVsZSA/ICdvbicgOiAnb2ZmJ1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnbGFuY2UucGVyY2VudGFnZVRleHQgPSBsYXN0Rm9ybXVsYVRlcm0uY29udHJvbHMucGVyY2VudGFnZU9wdGlvbnMuY29udHJvbHMubWFwKHAgPT4gcC5jb250cm9scy5wZXJjZW50YWdlLnZhbHVlICsgJyUnKS5qb2luKCcgLyAnKTtcbiAgICAgICAgZ2xhbmNlLmNsYXNzID0gJ290aGVyJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLmZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5zZXR0aW5nVHlwZSkge1xuICAgICAgICBjYXNlIFNldHRpbmdUeXBlLkRvdWJsZTpcbiAgICAgICAgICBnbGFuY2UucGVyY2VudGFnZVRleHQgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5kZWZhdWx0VmFsdWUudmFsdWUuZG91YmxlVmFsdWU/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2V0dGluZ1R5cGUuSW50OlxuICAgICAgICAgIGdsYW5jZS5wZXJjZW50YWdlVGV4dCA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmRlZmF1bHRWYWx1ZS52YWx1ZS5pbnRWYWx1ZT8udG9TdHJpbmcoKSA/PyAnJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5TdHJpbmc6XG4gICAgICAgICAgZ2xhbmNlLnBlcmNlbnRhZ2VUZXh0ID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGVmYXVsdFZhbHVlLnZhbHVlLnN0cmluZ1ZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNldHRpbmdUeXBlLkJvb2xlYW46XG4gICAgICAgICAgZ2xhbmNlLnBlcmNlbnRhZ2VUZXh0ID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGVmYXVsdFZhbHVlLnZhbHVlLmJvb2xWYWx1ZSA9PT0gdHJ1ZSA/ICdPTicgOiAnT0ZGJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLnNldHRpbmdUeXBlID09PSBTZXR0aW5nVHlwZS5Cb29sZWFuKSB7XG4gICAgICAgIGdsYW5jZS5jbGFzcyA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmRlZmF1bHRWYWx1ZS52YWx1ZS5ib29sVmFsdWUgPT09IHRydWUgfHwgaGFzVHJ1ZVJ1bGUgPyAnb24nIDogJ29mZic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnbGFuY2UuY2xhc3MgPSAnb3RoZXInO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBnbGFuY2U7XG4gIH1cblxuICBnZXRSdWxlVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHMuZmlsdGVyKHRyID0+ICF0aGlzLmZvcm1HZW5lcmF0b3IuaXNQZXJjZW50YWdlT25seVRhcmdldGluZ1J1bGUodHIpKS5sZW5ndGg7XG4gICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICcrICcgKyBjb3VudCArICcgcnVsZScgKyAoY291bnQgPiAxID8gJ3MnIDogJycpO1xuICB9XG5cbiAgY29weURpcmVjdExpbmsoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkodGhpcy5nZXREYXNoYm9hcmRVcmwoKSk7XG4gICAgICB0aGlzLm1lc3NhZ2luZ1NlcnZpY2Uuc2hvd1N1Y2Nlc3NTbmFjayhcIkNvcGllZCBkaXJlY3QgbGluayB0byBjbGlwYm9hcmQuXCIpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5tZXNzYWdpbmdTZXJ2aWNlLnNob3dTdWNjZXNzU25hY2soXCJDbGlwYm9hcmQgdW5hdmFpbGFibGUuXCIpO1xuICAgIH1cbiAgfVxuXG4gIGdldERhc2hib2FyZFVybCgpIHtcbiAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJ3YyJywgdGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLmNvbmZpZy5wcm9kdWN0Lm9yZ2FuaXphdGlvbi5vcmdhbml6YXRpb25JZCxcbiAgICAgIHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5jb25maWcucHJvZHVjdC5wcm9kdWN0SWQsIHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5jb25maWcuY29uZmlnSWQsIHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5lbnZpcm9ubWVudC5lbnZpcm9ubWVudElkLCB0aGlzLmZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5zZXR0aW5nSWRdKTtcbiAgICByZXR1cm4gdGhpcy5wdWJsaWNBcGlTZXJ2aWNlLmdldERhc2hib2FyZEJhc2VQYXRoKCkgKyB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodXJsVHJlZSk7XG4gIH1cblxuICBvcGVuRGVwZW5kZWVzRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oRGVwZW5kZWVzRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGRlcGVuZGVlczogdGhpcy5mbGFnU3RhdGUuZGVwZW5kZWVTZXR0aW5ncyxcbiAgICAgICAgbmFtZTogdGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcubmFtZSxcbiAgICAgICAgb3JnYW5pemF0aW9uSWQ6IHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5jb25maWcucHJvZHVjdC5vcmdhbml6YXRpb24ub3JnYW5pemF0aW9uSWQsXG4gICAgICAgIHByb2R1Y3RJZDogdGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLmNvbmZpZy5wcm9kdWN0LnByb2R1Y3RJZCxcbiAgICAgICAgY29uZmlnSWQ6IHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5jb25maWcuY29uZmlnSWQsXG4gICAgICAgIGVudmlyb25tZW50SWQ6IHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5lbnZpcm9ubWVudC5lbnZpcm9ubWVudElkXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvdXRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXowIGZlYXR1cmUtZmxhZ1wiIFtuZ0NsYXNzXT1cInsnaW52YWxpZCc6IGZvcm1Hcm91cC50b3VjaGVkICYmIGZvcm1Hcm91cC5pbnZhbGlkfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5kY29sbGFwc2VcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmbGFnU3RhdGUucGFuZWxFeHBhbmRlZFwiIG1hdFRvb2x0aXA9XCJDb2xsYXBzZVwiIChjbGljayk9XCJzZXRFeHBhbmRlZCghZmxhZ1N0YXRlLnBhbmVsRXhwYW5kZWQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19kcm9wX3VwPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFmbGFnU3RhdGUucGFuZWxFeHBhbmRlZFwiIG1hdFRvb2x0aXA9XCJFeHBhbmRcIiAoY2xpY2spPVwic2V0RXhwYW5kZWQoIWZsYWdTdGF0ZS5wYW5lbEV4cGFuZGVkKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJmbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcubmFtZVwiPnt7ZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2V5LW91dGVyXCIgbWF0VG9vbHRpcD1cIkNvcHkgZmVhdHVyZSBmbGFnIGtleSB0byBjbGlwYm9hcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtDb3B5VG9DbGlwYm9hcmRdPVwiZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0NvcHlUb0NsaXBib2FyZENvcGllZCk9XCJrZXlDb3BpZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnt7ZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLmtleX19PC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlcmVxLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmxhZ1N0YXRlLmRlcGVuZGVlU2V0dGluZ3MgJiYgZmxhZ1N0YXRlLmRlcGVuZGVlU2V0dGluZ3MubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhY2tdPVwiWydwcmVyZXF1aXNpdGUgYnV0dG9uIGNsaWNrJywgJ0ZlYXR1cmUgZmxhZ3MgJiBzZXR0aW5ncyBWMiBwYWdlJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidQcmVyZXF1aXNpdGUgb2YgJytmbGFnU3RhdGUuZGVwZW5kZWVTZXR0aW5ncy5sZW5ndGgrJyBvdGhlciBmbGFnKHMpLidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGVwZW5kZWVzRGlhbG9nKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtb3JlLWJ1dHRvblwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtb3JlTWVudVwiIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFja109XCJbJ21vcmUgbWVudSBidXR0b24gY2xpY2snLCAnRmVhdHVyZSBmbGFncyAmIHNldHRpbmdzIFYyIHBhZ2UnXVwiIG1hdFRvb2x0aXA9XCJNb3JlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpbnQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpbnRcIiAqbmdJZj1cImZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5oaW50XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLmhpbnR9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGFwcC1mZWF0dXJlLWZsYWctdmFsdWUgY2xhc3M9XCJnbGFuY2VcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC1nbGFuY2VdPVwiZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLnNldHRpbmdUeXBlICE9PSAnYm9vbGVhbidcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmbGFnU3RhdGUucGFuZWxFeHBhbmRlZCAmJiAhZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtmbGFnU3RhdGVdPVwiZmxhZ1N0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAuY29udHJvbHMuZGVmYXVsdFZhbHVlXCIgW2ZlYXR1cmVGbGFnTGltaXRhdGlvbnNdPVwiZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJTZXJ2ZWQgdmFsdWVcIj48L2FwcC1mZWF0dXJlLWZsYWctdmFsdWU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stZ2xhbmNlXCIgKm5nSWY9XCJnZXRHbGFuY2UoKSBhcyBnbGFuY2VcIiAoY2xpY2spPVwic2V0RXhwYW5kZWQoIWZsYWdTdGF0ZS5wYW5lbEV4cGFuZGVkKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgW2NsYXNzXT1cImdsYW5jZS5jbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1aWNrLWdsYW5jZS1pdGVtXCIgKm5nSWY9XCJnbGFuY2UucGVyY2VudGFnZVRleHRcIj57e2dsYW5jZS5wZXJjZW50YWdlVGV4dH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stZ2xhbmNlLWl0ZW1cIiAqbmdJZj1cImdsYW5jZS5ydWxlVGV4dFwiPnt7Z2xhbmNlLnJ1bGVUZXh0fX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZsYWdTdGF0ZS5wYW5lbEV4cGFuZGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZhbC1mb3JtdWxhLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8YXBwLWV2YWx1YXRpb24tZm9ybXVsYSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtmbGFnU3RhdGVdPVwiZmxhZ1N0YXRlXCIgW3NlZ21lbnRzXT1cInNlZ21lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZlYXR1cmVGbGFnTGltaXRhdGlvbnNdPVwiZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIChzdWJzY3JpcHRpb25MaW1pdFJlYWNoZWQpPVwic3Vic2NyaXB0aW9uTGltaXRSZWFjaGVkQ2FsbGVkKClcIiBbY2FuTWFuYWdlU2VnbWVudHNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAoYWRkU2VnbWVudENvbmRpdGlvblJlcXVlc3RlZFdpdGhvdXRTZWdtZW50cyk9XCJhZGRTZWdtZW50Q29uZGl0aW9uUmVxdWVzdGVkV2l0aG91dFNlZ21lbnRzLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93UGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVdPVwiISFmb3JtR3JvdXAuY29udHJvbHMucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVSZXF1ZXN0ZWQpPVwiY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIChwcmVyZXF1aXNpdGVDb25kaXRpb25DaGFuZ2VkKT1cInByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHJlY2FsY0FkZEJ1dHRvbnMpPVwicmVjYWxjQWRkQnV0dG9ucy5lbWl0KClcIj5cbiAgICAgICAgICAgICAgICA8L2FwcC1ldmFsdWF0aW9uLWZvcm11bGE+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxtYXQtbWVudSAjbW9yZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgPGRpdiBtYXQtbWVudS1pdGVtIGRhdGEtcm9ib3Q9XCJoaXN0b3J5XCIgKGNsaWNrKT1cImNoYW5nZVBlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlKClcIlxuICAgICAgICBbdHJhY2tdPVwiWydjaGFuZ2UgcGVyY2VudGFnZSBhdHRyaWJ1dGUgY2xpY2snLCAnRmVhdHVyZSBmbGFncyAmIHNldHRpbmdzIFYyIHBhZ2UnXVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0aGlzLmZsYWdTdGF0ZS5yZWFkT25seVwiPlxuICAgICAgICA8bWF0LWljb24+cGVyY2VudDwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPkNoYW5nZSBwZXJjZW50YWdlIGF0dHJpYnV0ZTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8YSBocmVmPVwie3tnZXREYXNoYm9hcmRVcmwoKX19XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxuICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gZGF0YS1yb2JvdD1cImhpc3RvcnlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5vcGVuX2luX25ldzwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3Bhbj5PcGVuIGluIENvbmZpZ0NhdDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hPlxuICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBkYXRhLXJvYm90PVwicmVuYW1lU2V0dGluZ1wiXG4gICAgICAgIFt0cmFja109XCJbJ2NvcHkgZGlyZWN0IGxpbmsgY2xpY2snLCAnRmVhdHVyZSBmbGFncyAmIHNldHRpbmdzIFYyIHBhZ2UnXVwiIChjbGljayk9XCJjb3B5RGlyZWN0TGluaygpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxuICAgICAgICA8c3Bhbj5Db3B5IGRpcmVjdCBsaW5rPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjYW5EZWxldGVTZXR0aW5nXCI+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gZGF0YS1yb2JvdD1cImRlbGV0ZVNldHRpbmdcIlxuICAgICAgICAgICAgW3RyYWNrXT1cIlsnZGVsZXRlIGZlYXR1cmUgZmxhZyBjbGljaycsICdGZWF0dXJlIGZsYWdzICYgc2V0dGluZ3MgVjIgcGFnZSddXCIgKGNsaWNrKT1cImRlbGV0ZVNldHRpbmcoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuPnt7ZGVsZXRlU2V0dGluZ1RleHR9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L21hdC1tZW51PiJdfQ==