@gravitee/ui-policy-studio-angular 7.7.0-add-flow-edit-test-5d29c2b → 7.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,7 +42,7 @@ export class GioPolicyStudioFlowProxyFormDialogComponent {
42
42
  this.flowFormGroup = new FormGroup({
43
43
  name: new FormControl(flowDialogData?.flow?.name ?? ''),
44
44
  pathOperator: new FormControl(httpSelector?.pathOperator ?? 'EQUALS'),
45
- path: new FormControl(sanitizePathFormValue(httpSelector?.path)),
45
+ path: new FormControl(httpSelector?.path ?? ''),
46
46
  methods: new FormControl(sanitizeMethodFormValue(httpSelector?.methods)),
47
47
  condition: new FormControl(conditionSelector?.condition ?? ''),
48
48
  });
@@ -50,7 +50,7 @@ export class GioPolicyStudioFlowProxyFormDialogComponent {
50
50
  onSubmit() {
51
51
  const httpSelectorToSave = {
52
52
  type: 'HTTP',
53
- path: sanitizePath(this.flowFormGroup?.get('path')?.value),
53
+ path: this.flowFormGroup?.get('path')?.value,
54
54
  pathOperator: this.flowFormGroup?.get('pathOperator')?.value,
55
55
  methods: sanitizeMethods(this.flowFormGroup?.get('methods')?.value),
56
56
  };
@@ -82,10 +82,10 @@ export class GioPolicyStudioFlowProxyFormDialogComponent {
82
82
  }
83
83
  }
84
84
  GioPolicyStudioFlowProxyFormDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioFlowProxyFormDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
85
- GioPolicyStudioFlowProxyFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioFlowProxyFormDialogComponent, selector: "gio-ps-flow-proxy-form-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow' }}\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>\n Flows allow you to apply different policies per HTTP path and/or method. For example you can reroute calls based on the URL specified.\n </p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with path and method if left blank</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"pathOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Path operator</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Path</mat-label>\n <span matPrefix>/</span>\n <input matInput formControlName=\"path\" />\n <mat-hint>Path</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Methods for your flow</mat-label>\n <gio-form-tags-input\n formControlName=\"methods\"\n [autocompleteOptions]=\"methods\"\n [tagValidationHook]=\"tagValidationHook\"\n ></gio-form-tags-input>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>Condition to execute the flow, supports Expression Language</mat-hint>\n </mat-form-field>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\">\n <button class=\"actions__cancelBtn\" mat-flat-button [mat-dialog-close]=\"false\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-stroked-button role=\"dialog\" (click)=\"onSubmit()\">\n {{ mode === 'create' ? 'Create' : 'Save' }}\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:-20px;right:-20px;float:right}.content__row{display:flex;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7.GioFormTagsInputComponent, selector: "gio-form-tags-input", inputs: ["aria-label", "addOnBlur", "tagValidationHook", "autocompleteOptions", "placeholder", "required", "disabled"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.MatLabel, selector: "mat-label" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i4.MatPrefix, selector: "[matPrefix]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
85
+ GioPolicyStudioFlowProxyFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioFlowProxyFormDialogComponent, selector: "gio-ps-flow-proxy-form-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow' }}\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>\n Flows allow you to apply different policies per HTTP path and/or method. For example you can reroute calls based on the URL specified.\n </p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with path and method if left blank</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"pathOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Path operator</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Path</mat-label>\n <input matInput formControlName=\"path\" />\n <mat-hint>Path</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Methods for your flow</mat-label>\n <gio-form-tags-input\n formControlName=\"methods\"\n [autocompleteOptions]=\"methods\"\n [tagValidationHook]=\"tagValidationHook\"\n ></gio-form-tags-input>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>Condition to execute the flow, supports Expression Language</mat-hint>\n </mat-form-field>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\">\n <button class=\"actions__cancelBtn\" mat-flat-button [mat-dialog-close]=\"false\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-stroked-button role=\"dialog\" (click)=\"onSubmit()\">\n {{ mode === 'create' ? 'Create' : 'Save' }}\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:-20px;right:-20px;float:right}.content__row{display:flex;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7.GioFormTagsInputComponent, selector: "gio-form-tags-input", inputs: ["aria-label", "addOnBlur", "tagValidationHook", "autocompleteOptions", "placeholder", "required", "disabled"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.MatLabel, selector: "mat-label" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
86
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioFlowProxyFormDialogComponent, decorators: [{
87
87
  type: Component,
88
- args: [{ selector: 'gio-ps-flow-proxy-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow' }}\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>\n Flows allow you to apply different policies per HTTP path and/or method. For example you can reroute calls based on the URL specified.\n </p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with path and method if left blank</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"pathOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Path operator</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Path</mat-label>\n <span matPrefix>/</span>\n <input matInput formControlName=\"path\" />\n <mat-hint>Path</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Methods for your flow</mat-label>\n <gio-form-tags-input\n formControlName=\"methods\"\n [autocompleteOptions]=\"methods\"\n [tagValidationHook]=\"tagValidationHook\"\n ></gio-form-tags-input>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>Condition to execute the flow, supports Expression Language</mat-hint>\n </mat-form-field>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\">\n <button class=\"actions__cancelBtn\" mat-flat-button [mat-dialog-close]=\"false\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-stroked-button role=\"dialog\" (click)=\"onSubmit()\">\n {{ mode === 'create' ? 'Create' : 'Save' }}\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:-20px;right:-20px;float:right}.content__row{display:flex;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"] }]
88
+ args: [{ selector: 'gio-ps-flow-proxy-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow' }}\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>\n Flows allow you to apply different policies per HTTP path and/or method. For example you can reroute calls based on the URL specified.\n </p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with path and method if left blank</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"pathOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Path operator</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Path</mat-label>\n <input matInput formControlName=\"path\" />\n <mat-hint>Path</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Methods for your flow</mat-label>\n <gio-form-tags-input\n formControlName=\"methods\"\n [autocompleteOptions]=\"methods\"\n [tagValidationHook]=\"tagValidationHook\"\n ></gio-form-tags-input>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>Condition to execute the flow, supports Expression Language</mat-hint>\n </mat-form-field>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\">\n <button class=\"actions__cancelBtn\" mat-flat-button [mat-dialog-close]=\"false\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-stroked-button role=\"dialog\" (click)=\"onSubmit()\">\n {{ mode === 'create' ? 'Create' : 'Save' }}\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:-20px;right:-20px;float:right}.content__row{display:flex;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"] }]
89
89
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
90
90
  type: Inject,
91
91
  args: [MAT_DIALOG_DATA]
@@ -100,16 +100,4 @@ const sanitizeMethodFormValue = (methods) => {
100
100
  return ['ALL'];
101
101
  return methods;
102
102
  };
103
- const sanitizePath = (path) => {
104
- if (!path || !path.startsWith('/')) {
105
- return `/${path}`;
106
- }
107
- return path;
108
- };
109
- const sanitizePathFormValue = (path) => {
110
- if (path && path.startsWith('/')) {
111
- return path.substring(1);
112
- }
113
- return path ?? '';
114
- };
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHN0MsT0FBTyxFQUFpQyxXQUFXLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzRixNQUFNLG9CQUFvQixHQUFtQixDQUFDLEtBQUssRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBT3JFLE1BQU0sT0FBTywyQ0FBMkM7SUFPdEQsWUFDUyxTQUF5RyxFQUN2RixjQUFzRDtRQUR4RSxjQUFTLEdBQVQsU0FBUyxDQUFnRztRQUozRyxTQUFJLEdBQXNCLFFBQVEsQ0FBQztRQUNuQyxZQUFPLEdBQUcsb0JBQW9CLENBQUM7UUFNcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFbEQsTUFBTSxZQUFZLEdBQUcsY0FBYyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQWlCLENBQUM7UUFDbkcsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBc0IsQ0FBQztRQUVsSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ2pDLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkQsWUFBWSxFQUFFLElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxZQUFZLElBQUksUUFBUSxDQUFDO1lBQ3JFLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4RSxTQUFTLEVBQUUsSUFBSSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNiLE1BQU0sa0JBQWtCLEdBQWlCO1lBQ3ZDLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUM7WUFDMUQsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUs7WUFDNUQsT0FBTyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUM7U0FDcEUsQ0FBQztRQUVGLE1BQU0sY0FBYyxHQUFXLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMzRSxNQUFNLHVCQUF1QixHQUFrQyxjQUFjO1lBQzNFLENBQUMsQ0FBQztnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsU0FBUyxFQUFFLGNBQWM7YUFDMUI7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsTUFBTSxVQUFVLEdBQVc7WUFDekIsc0JBQXNCO1lBQ3RCLEdBQUcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ3RCLG9DQUFvQztZQUNwQyxHQUFHLElBQUksQ0FBQyxZQUFZO1lBQ3BCLGtCQUFrQjtZQUNsQixXQUFXLEVBQUUsSUFBSTtZQUNqQixjQUFjO1lBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUs7WUFDNUMsU0FBUyxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUM7WUFDekcsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDbkIsR0FBRyxVQUFVO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEdBQVcsRUFBRSxZQUE2QztRQUNqRixZQUFZLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7O3lJQTlEVSwyQ0FBMkMsOENBUzVDLGVBQWU7NkhBVGQsMkNBQTJDLHFFQ3JDeEQsczlGQWlGQTs0RkQ1Q2EsMkNBQTJDO2tCQUx2RCxTQUFTOytCQUNFLCtCQUErQjs7MEJBYXRDLE1BQU07MkJBQUMsZUFBZTs7QUF3RDNCLE1BQU0sZUFBZSxHQUE0QyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtJQUMxRixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDdEQsT0FBTyxLQUFxQixDQUFDO0FBQy9CLENBQUMsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQStDLENBQUMsT0FBc0IsRUFBRSxFQUFFO0lBQ3JHLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDcEMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbEMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO0tBQ25CO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLENBQUMsSUFBd0IsRUFBRSxFQUFFO0lBQ3pELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFCO0lBQ0QsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCwgdW5pcXVlSWQgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBGbG93Vk0gfSBmcm9tICcuLi8uLi8uLi9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQgeyBDb25kaXRpb25TZWxlY3RvciwgSHR0cE1ldGhvZCwgSHR0cE1ldGhvZHMsIEh0dHBTZWxlY3RvciB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2dpby1wcy1mbG93LWZvcm0tZGlhbG9nLXJlc3VsdC5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhID0ge1xuICBmbG93PzogRmxvd1ZNO1xufTtcblxudHlwZSBIdHRwTWV0aG9kVk0gPSBIdHRwTWV0aG9kIHwgJ0FMTCc7XG5cbmNvbnN0IE1FVEhPRFNfQVVUT0NPTVBMRVRFOiBIdHRwTWV0aG9kVk1bXSA9IFsnQUxMJywgLi4uSHR0cE1ldGhvZHNdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQge1xuICBwdWJsaWMgZmxvd0Zvcm1Hcm91cD86IEZvcm1Hcm91cDtcblxuICBwdWJsaWMgZXhpc3RpbmdGbG93PzogRmxvd1ZNO1xuICBwdWJsaWMgbW9kZTogJ2NyZWF0ZScgfCAnZWRpdCcgPSAnY3JlYXRlJztcbiAgcHVibGljIG1ldGhvZHMgPSBNRVRIT0RTX0FVVE9DT01QTEVURTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBmbG93RGlhbG9nRGF0YTogR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsXG4gICkge1xuICAgIHRoaXMuZXhpc3RpbmdGbG93ID0gY2xvbmVEZWVwKGZsb3dEaWFsb2dEYXRhPy5mbG93KTtcbiAgICB0aGlzLm1vZGUgPSB0aGlzLmV4aXN0aW5nRmxvdyA/ICdlZGl0JyA6ICdjcmVhdGUnO1xuXG4gICAgY29uc3QgaHR0cFNlbGVjdG9yID0gZmxvd0RpYWxvZ0RhdGE/LmZsb3c/LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0hUVFAnKSBhcyBIdHRwU2VsZWN0b3I7XG4gICAgY29uc3QgY29uZGl0aW9uU2VsZWN0b3IgPSBmbG93RGlhbG9nRGF0YT8uZmxvdz8uc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnQ09ORElUSU9OJykgYXMgQ29uZGl0aW9uU2VsZWN0b3I7XG5cbiAgICB0aGlzLmZsb3dGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbChmbG93RGlhbG9nRGF0YT8uZmxvdz8ubmFtZSA/PyAnJyksXG4gICAgICBwYXRoT3BlcmF0b3I6IG5ldyBGb3JtQ29udHJvbChodHRwU2VsZWN0b3I/LnBhdGhPcGVyYXRvciA/PyAnRVFVQUxTJyksXG4gICAgICBwYXRoOiBuZXcgRm9ybUNvbnRyb2woc2FuaXRpemVQYXRoRm9ybVZhbHVlKGh0dHBTZWxlY3Rvcj8ucGF0aCkpLFxuICAgICAgbWV0aG9kczogbmV3IEZvcm1Db250cm9sKHNhbml0aXplTWV0aG9kRm9ybVZhbHVlKGh0dHBTZWxlY3Rvcj8ubWV0aG9kcykpLFxuICAgICAgY29uZGl0aW9uOiBuZXcgRm9ybUNvbnRyb2woY29uZGl0aW9uU2VsZWN0b3I/LmNvbmRpdGlvbiA/PyAnJyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaHR0cFNlbGVjdG9yVG9TYXZlOiBIdHRwU2VsZWN0b3IgPSB7XG4gICAgICB0eXBlOiAnSFRUUCcsXG4gICAgICBwYXRoOiBzYW5pdGl6ZVBhdGgodGhpcy5mbG93Rm9ybUdyb3VwPy5nZXQoJ3BhdGgnKT8udmFsdWUpLFxuICAgICAgcGF0aE9wZXJhdG9yOiB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgncGF0aE9wZXJhdG9yJyk/LnZhbHVlLFxuICAgICAgbWV0aG9kczogc2FuaXRpemVNZXRob2RzKHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCdtZXRob2RzJyk/LnZhbHVlKSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29uZGl0aW9uVmFsdWU6IHN0cmluZyA9IHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCdjb25kaXRpb24nKT8udmFsdWU7XG4gICAgY29uc3QgY29uZGl0aW9uU2VsZWN0b3JUb1NhdmU6IENvbmRpdGlvblNlbGVjdG9yIHwgdW5kZWZpbmVkID0gY29uZGl0aW9uVmFsdWVcbiAgICAgID8ge1xuICAgICAgICAgIHR5cGU6ICdDT05ESVRJT04nLFxuICAgICAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uVmFsdWUsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZmxvd1RvU2F2ZTogRmxvd1ZNID0ge1xuICAgICAgLy8gTmV3IGlkIGZvciBuZXcgZmxvd1xuICAgICAgX2lkOiB1bmlxdWVJZCgnZmxvd18nKSxcbiAgICAgIC8vIElmIGV4aXN0aW5nIGZsb3csIGtlZXAgcm9vdCBwcm9wc1xuICAgICAgLi4udGhpcy5leGlzdGluZ0Zsb3csXG4gICAgICAvLyBNYXJrIGFzIGNoYW5nZWRcbiAgICAgIF9oYXNDaGFuZ2VkOiB0cnVlLFxuICAgICAgLy8gQWRkIGNoYW5nZXNcbiAgICAgIG5hbWU6IHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCduYW1lJyk/LnZhbHVlLFxuICAgICAgc2VsZWN0b3JzOiBjb25kaXRpb25TZWxlY3RvclRvU2F2ZSA/IFtodHRwU2VsZWN0b3JUb1NhdmUsIGNvbmRpdGlvblNlbGVjdG9yVG9TYXZlXSA6IFtodHRwU2VsZWN0b3JUb1NhdmVdLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgLi4uZmxvd1RvU2F2ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0YWdWYWxpZGF0aW9uSG9vayh0YWc6IHN0cmluZywgdmFsaWRhdGlvbkNiOiAoc2hvdWxkQWRkVGFnOiBib29sZWFuKSA9PiB2b2lkKSB7XG4gICAgdmFsaWRhdGlvbkNiKE1FVEhPRFNfQVVUT0NPTVBMRVRFLm1hcChtID0+IGAke219YCkuaW5jbHVkZXModGFnLnRvVXBwZXJDYXNlKCkpKTtcbiAgfVxufVxuXG5jb25zdCBzYW5pdGl6ZU1ldGhvZHM6ICh2YWx1ZTogSHR0cE1ldGhvZFZNW10pID0+IEh0dHBNZXRob2RbXSA9ICh2YWx1ZT86IEh0dHBNZXRob2RWTVtdKSA9PiB7XG4gIGlmICghdmFsdWUgfHwgdmFsdWUuZmluZChtID0+IG0gPT09ICdBTEwnKSkgcmV0dXJuIFtdO1xuICByZXR1cm4gdmFsdWUgYXMgSHR0cE1ldGhvZFtdO1xufTtcblxuY29uc3Qgc2FuaXRpemVNZXRob2RGb3JtVmFsdWU6IChtZXRob2RzPzogSHR0cE1ldGhvZFtdKSA9PiBIdHRwTWV0aG9kVk1bXSA9IChtZXRob2RzPzogSHR0cE1ldGhvZFtdKSA9PiB7XG4gIGlmICghbWV0aG9kcyB8fCBtZXRob2RzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFsnQUxMJ107XG4gIHJldHVybiBtZXRob2RzO1xufTtcblxuY29uc3Qgc2FuaXRpemVQYXRoID0gKHBhdGg6IHN0cmluZykgPT4ge1xuICBpZiAoIXBhdGggfHwgIXBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIGAvJHtwYXRofWA7XG4gIH1cbiAgcmV0dXJuIHBhdGg7XG59O1xuXG5jb25zdCBzYW5pdGl6ZVBhdGhGb3JtVmFsdWUgPSAocGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmIChwYXRoICYmIHBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIHBhdGguc3Vic3RyaW5nKDEpO1xuICB9XG4gIHJldHVybiBwYXRoID8/ICcnO1xufTtcbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0aXRsZVwiPlxuICB7eyBtb2RlID09PSAnY3JlYXRlJyA/ICdDcmVhdGUgYSBuZXcgZmxvdycgOiAnRWRpdCBmbG93JyB9fVxuXG4gIDxidXR0b24gY2xhc3M9XCJ0aXRsZV9fY2xvc2VCdG5cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsb3NlIGRpYWxvZ1wiIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2gyPlxuXG48bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiZmxvd0Zvcm1Hcm91cFwiIGNsYXNzPVwiY29udGVudFwiIFtmb3JtR3JvdXBdPVwiZmxvd0Zvcm1Hcm91cFwiPlxuICA8cD5cbiAgICBGbG93cyBhbGxvdyB5b3UgdG8gYXBwbHkgZGlmZmVyZW50IHBvbGljaWVzIHBlciBIVFRQIHBhdGggYW5kL29yIG1ldGhvZC4gRm9yIGV4YW1wbGUgeW91IGNhbiByZXJvdXRlIGNhbGxzIGJhc2VkIG9uIHRoZSBVUkwgc3BlY2lmaWVkLlxuICA8L3A+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+RmxvdyBuYW1lPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIGNka0ZvY3VzSW5pdGlhbCAvPlxuICAgICAgPG1hdC1oaW50Pk5hbWVzIHdpbGwgYmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgd2l0aCBwYXRoIGFuZCBtZXRob2QgaWYgbGVmdCBibGFuazwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPk9wZXJhdG9yPC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJwYXRoT3BlcmF0b3JcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJFUVVBTFNcIj5FcXVhbHM8L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU1RBUlRTX1dJVEhcIj5TdGFydHMgd2l0aDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDxtYXQtaGludD5QYXRoIG9wZXJhdG9yPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5QYXRoPC9tYXQtbGFiZWw+XG4gICAgICA8c3BhbiBtYXRQcmVmaXg+Lzwvc3Bhbj5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXRoXCIgLz5cbiAgICAgIDxtYXQtaGludD5QYXRoPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5NZXRob2RzIGZvciB5b3VyIGZsb3c8L21hdC1sYWJlbD5cbiAgICAgIDxnaW8tZm9ybS10YWdzLWlucHV0XG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1ldGhvZHNcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlT3B0aW9uc109XCJtZXRob2RzXCJcbiAgICAgICAgW3RhZ1ZhbGlkYXRpb25Ib29rXT1cInRhZ1ZhbGlkYXRpb25Ib29rXCJcbiAgICAgID48L2dpby1mb3JtLXRhZ3MtaW5wdXQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+Q29uZGl0aW9uPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY29uZGl0aW9uXCIgLz5cbiAgICAgIDxtYXQtaGludD5Db25kaXRpb24gdG8gZXhlY3V0ZSB0aGUgZmxvdywgc3VwcG9ydHMgRXhwcmVzc2lvbiBMYW5ndWFnZTwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX2NhbmNlbEJ0blwiIG1hdC1mbGF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fc2F2ZUJ0blwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1zdHJva2VkLWJ1dHRvbiByb2xlPVwiZGlhbG9nXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5cbiAgICB7eyBtb2RlID09PSAnY3JlYXRlJyA/ICdDcmVhdGUnIDogJ1NhdmUnIH19XG4gIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHN0MsT0FBTyxFQUFpQyxXQUFXLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzRixNQUFNLG9CQUFvQixHQUFtQixDQUFDLEtBQUssRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBT3JFLE1BQU0sT0FBTywyQ0FBMkM7SUFPdEQsWUFDUyxTQUF5RyxFQUN2RixjQUFzRDtRQUR4RSxjQUFTLEdBQVQsU0FBUyxDQUFnRztRQUozRyxTQUFJLEdBQXNCLFFBQVEsQ0FBQztRQUNuQyxZQUFPLEdBQUcsb0JBQW9CLENBQUM7UUFNcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFbEQsTUFBTSxZQUFZLEdBQUcsY0FBYyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQWlCLENBQUM7UUFDbkcsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBc0IsQ0FBQztRQUVsSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ2pDLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkQsWUFBWSxFQUFFLElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxZQUFZLElBQUksUUFBUSxDQUFDO1lBQ3JFLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3hFLFNBQVMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IsTUFBTSxrQkFBa0IsR0FBaUI7WUFDdkMsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSztZQUM1QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSztZQUM1RCxPQUFPLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztTQUNwRSxDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQVcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQzNFLE1BQU0sdUJBQXVCLEdBQWtDLGNBQWM7WUFDM0UsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixTQUFTLEVBQUUsY0FBYzthQUMxQjtZQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxNQUFNLFVBQVUsR0FBVztZQUN6QixzQkFBc0I7WUFDdEIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDdEIsb0NBQW9DO1lBQ3BDLEdBQUcsSUFBSSxDQUFDLFlBQVk7WUFDcEIsa0JBQWtCO1lBQ2xCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGNBQWM7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSztZQUM1QyxTQUFTLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztZQUN6RyxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixHQUFHLFVBQVU7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCLENBQUMsR0FBVyxFQUFFLFlBQTZDO1FBQ2pGLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs7eUlBOURVLDJDQUEyQyw4Q0FTNUMsZUFBZTs2SEFUZCwyQ0FBMkMscUVDckN4RCxzN0ZBZ0ZBOzRGRDNDYSwyQ0FBMkM7a0JBTHZELFNBQVM7K0JBQ0UsK0JBQStCOzswQkFhdEMsTUFBTTsyQkFBQyxlQUFlOztBQXdEM0IsTUFBTSxlQUFlLEdBQTRDLENBQUMsS0FBc0IsRUFBRSxFQUFFO0lBQzFGLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN0RCxPQUFPLEtBQXFCLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBK0MsQ0FBQyxPQUFzQixFQUFFLEVBQUU7SUFDckcsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCB1bmlxdWVJZCB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEZsb3dWTSB9IGZyb20gJy4uLy4uLy4uL2dpby1wb2xpY3ktc3R1ZGlvLm1vZGVsJztcbmltcG9ydCB7IENvbmRpdGlvblNlbGVjdG9yLCBIdHRwTWV0aG9kLCBIdHRwTWV0aG9kcywgSHR0cFNlbGVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi4vZ2lvLXBzLWZsb3ctZm9ybS1kaWFsb2ctcmVzdWx0Lm1vZGVsJztcblxuZXhwb3J0IHR5cGUgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEgPSB7XG4gIGZsb3c/OiBGbG93Vk07XG59O1xuXG50eXBlIEh0dHBNZXRob2RWTSA9IEh0dHBNZXRob2QgfCAnQUxMJztcblxuY29uc3QgTUVUSE9EU19BVVRPQ09NUExFVEU6IEh0dHBNZXRob2RWTVtdID0gWydBTEwnLCAuLi5IdHRwTWV0aG9kc107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCB7XG4gIHB1YmxpYyBmbG93Rm9ybUdyb3VwPzogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBleGlzdGluZ0Zsb3c/OiBGbG93Vk07XG4gIHB1YmxpYyBtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xuICBwdWJsaWMgbWV0aG9kcyA9IE1FVEhPRFNfQVVUT0NPTVBMRVRFO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGZsb3dEaWFsb2dEYXRhOiBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSxcbiAgKSB7XG4gICAgdGhpcy5leGlzdGluZ0Zsb3cgPSBjbG9uZURlZXAoZmxvd0RpYWxvZ0RhdGE/LmZsb3cpO1xuICAgIHRoaXMubW9kZSA9IHRoaXMuZXhpc3RpbmdGbG93ID8gJ2VkaXQnIDogJ2NyZWF0ZSc7XG5cbiAgICBjb25zdCBodHRwU2VsZWN0b3IgPSBmbG93RGlhbG9nRGF0YT8uZmxvdz8uc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnSFRUUCcpIGFzIEh0dHBTZWxlY3RvcjtcbiAgICBjb25zdCBjb25kaXRpb25TZWxlY3RvciA9IGZsb3dEaWFsb2dEYXRhPy5mbG93Py5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDT05ESVRJT04nKSBhcyBDb25kaXRpb25TZWxlY3RvcjtcblxuICAgIHRoaXMuZmxvd0Zvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sKGZsb3dEaWFsb2dEYXRhPy5mbG93Py5uYW1lID8/ICcnKSxcbiAgICAgIHBhdGhPcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKGh0dHBTZWxlY3Rvcj8ucGF0aE9wZXJhdG9yID8/ICdFUVVBTFMnKSxcbiAgICAgIHBhdGg6IG5ldyBGb3JtQ29udHJvbChodHRwU2VsZWN0b3I/LnBhdGggPz8gJycpLFxuICAgICAgbWV0aG9kczogbmV3IEZvcm1Db250cm9sKHNhbml0aXplTWV0aG9kRm9ybVZhbHVlKGh0dHBTZWxlY3Rvcj8ubWV0aG9kcykpLFxuICAgICAgY29uZGl0aW9uOiBuZXcgRm9ybUNvbnRyb2woY29uZGl0aW9uU2VsZWN0b3I/LmNvbmRpdGlvbiA/PyAnJyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaHR0cFNlbGVjdG9yVG9TYXZlOiBIdHRwU2VsZWN0b3IgPSB7XG4gICAgICB0eXBlOiAnSFRUUCcsXG4gICAgICBwYXRoOiB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgncGF0aCcpPy52YWx1ZSxcbiAgICAgIHBhdGhPcGVyYXRvcjogdGhpcy5mbG93Rm9ybUdyb3VwPy5nZXQoJ3BhdGhPcGVyYXRvcicpPy52YWx1ZSxcbiAgICAgIG1ldGhvZHM6IHNhbml0aXplTWV0aG9kcyh0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnbWV0aG9kcycpPy52YWx1ZSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmRpdGlvblZhbHVlOiBzdHJpbmcgPSB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnY29uZGl0aW9uJyk/LnZhbHVlO1xuICAgIGNvbnN0IGNvbmRpdGlvblNlbGVjdG9yVG9TYXZlOiBDb25kaXRpb25TZWxlY3RvciB8IHVuZGVmaW5lZCA9IGNvbmRpdGlvblZhbHVlXG4gICAgICA/IHtcbiAgICAgICAgICB0eXBlOiAnQ09ORElUSU9OJyxcbiAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvblZhbHVlLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZsb3dUb1NhdmU6IEZsb3dWTSA9IHtcbiAgICAgIC8vIE5ldyBpZCBmb3IgbmV3IGZsb3dcbiAgICAgIF9pZDogdW5pcXVlSWQoJ2Zsb3dfJyksXG4gICAgICAvLyBJZiBleGlzdGluZyBmbG93LCBrZWVwIHJvb3QgcHJvcHNcbiAgICAgIC4uLnRoaXMuZXhpc3RpbmdGbG93LFxuICAgICAgLy8gTWFyayBhcyBjaGFuZ2VkXG4gICAgICBfaGFzQ2hhbmdlZDogdHJ1ZSxcbiAgICAgIC8vIEFkZCBjaGFuZ2VzXG4gICAgICBuYW1lOiB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnbmFtZScpPy52YWx1ZSxcbiAgICAgIHNlbGVjdG9yczogY29uZGl0aW9uU2VsZWN0b3JUb1NhdmUgPyBbaHR0cFNlbGVjdG9yVG9TYXZlLCBjb25kaXRpb25TZWxlY3RvclRvU2F2ZV0gOiBbaHR0cFNlbGVjdG9yVG9TYXZlXSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgIC4uLmZsb3dUb1NhdmUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdGFnVmFsaWRhdGlvbkhvb2sodGFnOiBzdHJpbmcsIHZhbGlkYXRpb25DYjogKHNob3VsZEFkZFRhZzogYm9vbGVhbikgPT4gdm9pZCkge1xuICAgIHZhbGlkYXRpb25DYihNRVRIT0RTX0FVVE9DT01QTEVURS5tYXAobSA9PiBgJHttfWApLmluY2x1ZGVzKHRhZy50b1VwcGVyQ2FzZSgpKSk7XG4gIH1cbn1cblxuY29uc3Qgc2FuaXRpemVNZXRob2RzOiAodmFsdWU6IEh0dHBNZXRob2RWTVtdKSA9PiBIdHRwTWV0aG9kW10gPSAodmFsdWU/OiBIdHRwTWV0aG9kVk1bXSkgPT4ge1xuICBpZiAoIXZhbHVlIHx8IHZhbHVlLmZpbmQobSA9PiBtID09PSAnQUxMJykpIHJldHVybiBbXTtcbiAgcmV0dXJuIHZhbHVlIGFzIEh0dHBNZXRob2RbXTtcbn07XG5cbmNvbnN0IHNhbml0aXplTWV0aG9kRm9ybVZhbHVlOiAobWV0aG9kcz86IEh0dHBNZXRob2RbXSkgPT4gSHR0cE1ldGhvZFZNW10gPSAobWV0aG9kcz86IEh0dHBNZXRob2RbXSkgPT4ge1xuICBpZiAoIW1ldGhvZHMgfHwgbWV0aG9kcy5sZW5ndGggPT09IDApIHJldHVybiBbJ0FMTCddO1xuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjxoMiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGl0bGVcIj5cbiAge3sgbW9kZSA9PT0gJ2NyZWF0ZScgPyAnQ3JlYXRlIGEgbmV3IGZsb3cnIDogJ0VkaXQgZmxvdycgfX1cblxuICA8YnV0dG9uIGNsYXNzPVwidGl0bGVfX2Nsb3NlQnRuXCIgbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbG9zZSBkaWFsb2dcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmNhbmNlbFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9oMj5cblxuPG1hdC1kaWFsb2ctY29udGVudCAqbmdJZj1cImZsb3dGb3JtR3JvdXBcIiBjbGFzcz1cImNvbnRlbnRcIiBbZm9ybUdyb3VwXT1cImZsb3dGb3JtR3JvdXBcIj5cbiAgPHA+XG4gICAgRmxvd3MgYWxsb3cgeW91IHRvIGFwcGx5IGRpZmZlcmVudCBwb2xpY2llcyBwZXIgSFRUUCBwYXRoIGFuZC9vciBtZXRob2QuIEZvciBleGFtcGxlIHlvdSBjYW4gcmVyb3V0ZSBjYWxscyBiYXNlZCBvbiB0aGUgVVJMIHNwZWNpZmllZC5cbiAgPC9wPlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPkZsb3cgbmFtZTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBjZGtGb2N1c0luaXRpYWwgLz5cbiAgICAgIDxtYXQtaGludD5OYW1lcyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHdpdGggcGF0aCBhbmQgbWV0aG9kIGlmIGxlZnQgYmxhbms8L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5PcGVyYXRvcjwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwicGF0aE9wZXJhdG9yXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiRVFVQUxTXCI+RXF1YWxzPC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlNUQVJUU19XSVRIXCI+U3RhcnRzIHdpdGg8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8bWF0LWhpbnQ+UGF0aCBvcGVyYXRvcjwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+UGF0aDwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBhdGhcIiAvPlxuICAgICAgPG1hdC1oaW50PlBhdGg8L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPk1ldGhvZHMgZm9yIHlvdXIgZmxvdzwvbWF0LWxhYmVsPlxuICAgICAgPGdpby1mb3JtLXRhZ3MtaW5wdXRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0aG9kc1wiXG4gICAgICAgIFthdXRvY29tcGxldGVPcHRpb25zXT1cIm1ldGhvZHNcIlxuICAgICAgICBbdGFnVmFsaWRhdGlvbkhvb2tdPVwidGFnVmFsaWRhdGlvbkhvb2tcIlxuICAgICAgPjwvZ2lvLWZvcm0tdGFncy1pbnB1dD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5Db25kaXRpb248L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIiAvPlxuICAgICAgPG1hdC1oaW50PkNvbmRpdGlvbiB0byBleGVjdXRlIHRoZSBmbG93LCBzdXBwb3J0cyBFeHByZXNzaW9uIExhbmd1YWdlPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWN0aW9uc1wiPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fY2FuY2VsQnRuXCIgbWF0LWZsYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+Q2FuY2VsPC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJhY3Rpb25zX19zYXZlQnRuXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LXN0cm9rZWQtYnV0dG9uIHJvbGU9XCJkaWFsb2dcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxuICAgIHt7IG1vZGUgPT09ICdjcmVhdGUnID8gJ0NyZWF0ZScgOiAnU2F2ZScgfX1cbiAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
@@ -22,21 +22,18 @@ export class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarnes
22
22
  super(...arguments);
23
23
  this.getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));
24
24
  this.getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));
25
- this.nameInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="name"]' }));
26
- this.channelOperatorInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="channelOperator"]' }));
27
- this.channelInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="channel"]' }));
28
- this.operationsInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="operations"]' }));
29
- this.entrypointsInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="entrypoints"]' }));
30
- this.conditionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="condition"]' }));
31
25
  }
32
26
  async setFlowFormValues(flow) {
27
+ const nameInput = await this.locatorFor(MatInputHarness.with({ selector: '[formControlName="name"]' }))();
28
+ const channelOperatorInput = await this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="channelOperator"]' }))();
29
+ const channelInput = await this.locatorFor(MatInputHarness.with({ selector: '[formControlName="channel"]' }))();
30
+ const operationsInput = await this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="operations"]' }))();
31
+ const entrypointsInput = await this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="entrypoints"]' }))();
32
+ const conditionInput = await this.locatorFor(MatInputHarness.with({ selector: '[formControlName="condition"]' }))();
33
33
  if (flow.name) {
34
- const nameInput = await this.nameInput();
35
34
  await nameInput.setValue(flow.name);
36
35
  }
37
36
  if (flow.channelOperator) {
38
- const channelOperatorInput = await this.channelOperatorInput();
39
- const entrypointsInput = await this.entrypointsInput();
40
37
  await channelOperatorInput.open();
41
38
  // Unselect all options before selecting the new one
42
39
  for (const option of await entrypointsInput.getOptions()) {
@@ -47,11 +44,9 @@ export class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarnes
47
44
  await channelOperatorInput.clickOptions({ text: new RegExp(flow.channelOperator, 'i') });
48
45
  }
49
46
  if (flow.channel) {
50
- const channelInput = await this.channelInput();
51
47
  await channelInput.setValue(flow.channel);
52
48
  }
53
49
  if (flow.operations) {
54
- const operationsInput = await this.operationsInput();
55
50
  await parallel(() => (flow.operations ?? []).map(async (operation) => {
56
51
  await operationsInput.open();
57
52
  // Unselect all options before selecting the new one
@@ -64,7 +59,6 @@ export class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarnes
64
59
  }));
65
60
  }
66
61
  if (flow.entrypoints) {
67
- const entrypointsInput = await this.entrypointsInput();
68
62
  await entrypointsInput.open();
69
63
  // Unselect all options before selecting the new one
70
64
  for (const option of await entrypointsInput.getOptions()) {
@@ -77,28 +71,9 @@ export class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarnes
77
71
  }));
78
72
  }
79
73
  if (flow.condition) {
80
- const conditionInput = await this.conditionInput();
81
74
  await conditionInput.setValue(flow.condition);
82
75
  }
83
76
  }
84
- async getName() {
85
- return this.nameInput().then(input => input.getValue());
86
- }
87
- async getChannelOperator() {
88
- return this.channelOperatorInput().then(input => input.getValueText());
89
- }
90
- async getChannel() {
91
- return this.channelInput().then(input => input.getValue());
92
- }
93
- async getOperations() {
94
- return this.operationsInput().then(input => input.getValueText());
95
- }
96
- async getEntrypoints() {
97
- return this.entrypointsInput().then(input => input.getValueText());
98
- }
99
- async getCondition() {
100
- return this.conditionInput().then(input => input.getValue());
101
- }
102
77
  async save() {
103
78
  const button = await this.getSaveBtn();
104
79
  await button.click();
@@ -109,4 +84,4 @@ export class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarnes
109
84
  }
110
85
  }
111
86
  GioPolicyStudioFlowMessageFormDialogHarness.hostSelector = 'gio-ps-flow-message-form-dialog';
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE1BQU0sT0FBTywyQ0FBNEMsU0FBUSxnQkFBZ0I7SUFBakY7O1FBR1UsZUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0YsY0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1Rix5QkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxxQ0FBcUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuSCxpQkFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRyxvQkFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLGdDQUFnQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pHLHFCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNHLG1CQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBbUdoSCxDQUFDO0lBakdRLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQU85QjtRQUNDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQy9ELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN2RCxNQUFNLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLG9EQUFvRDtZQUNwRCxLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3hELElBQUksTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQzdCLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUN0QjthQUNGO1lBQ0QsTUFBTSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUY7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0MsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyRCxNQUFNLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDbEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEVBQUU7Z0JBQzVDLE1BQU0sZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM3QixvREFBb0Q7Z0JBQ3BELEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxlQUFlLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQ3ZELElBQUksTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUU7d0JBQzdCLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO3FCQUN0QjtpQkFDRjtnQkFDRCxNQUFNLGVBQWUsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzRSxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsb0RBQW9EO1lBQ3BELEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDeEQsSUFBSSxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDN0IsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ3RCO2FBQ0Y7WUFDRCxNQUFNLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDbEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEVBQUU7Z0JBQzlDLE1BQU0sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxrQkFBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxLQUFLLENBQUMsY0FBYztRQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDZixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7QUEzR2Esd0RBQVksR0FBRyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzLCBwYXJhbGxlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24vdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRJbnB1dEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dC90ZXN0aW5nJztcbmltcG9ydCB7IE1hdFNlbGVjdEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QvdGVzdGluZyc7XG5cbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cnO1xuXG4gIHByaXZhdGUgZ2V0U2F2ZUJ0biA9IHRoaXMubG9jYXRvckZvcihNYXRCdXR0b25IYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJy5hY3Rpb25zX19zYXZlQnRuJyB9KSk7XG4gIHByaXZhdGUgZ2V0Q2FuY2VsQnRuID0gdGhpcy5sb2NhdG9yRm9yKE1hdEJ1dHRvbkhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnLmFjdGlvbnNfX2NhbmNlbEJ0bicgfSkpO1xuICBwcml2YXRlIG5hbWVJbnB1dCA9IHRoaXMubG9jYXRvckZvcihNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cIm5hbWVcIl0nIH0pKTtcbiAgcHJpdmF0ZSBjaGFubmVsT3BlcmF0b3JJbnB1dCA9IHRoaXMubG9jYXRvckZvcihNYXRTZWxlY3RIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJjaGFubmVsT3BlcmF0b3JcIl0nIH0pKTtcbiAgcHJpdmF0ZSBjaGFubmVsSW5wdXQgPSB0aGlzLmxvY2F0b3JGb3IoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJjaGFubmVsXCJdJyB9KSk7XG4gIHByaXZhdGUgb3BlcmF0aW9uc0lucHV0ID0gdGhpcy5sb2NhdG9yRm9yKE1hdFNlbGVjdEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cIm9wZXJhdGlvbnNcIl0nIH0pKTtcbiAgcHJpdmF0ZSBlbnRyeXBvaW50c0lucHV0ID0gdGhpcy5sb2NhdG9yRm9yKE1hdFNlbGVjdEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cImVudHJ5cG9pbnRzXCJdJyB9KSk7XG4gIHByaXZhdGUgY29uZGl0aW9uSW5wdXQgPSB0aGlzLmxvY2F0b3JGb3IoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIl0nIH0pKTtcblxuICBwdWJsaWMgYXN5bmMgc2V0Rmxvd0Zvcm1WYWx1ZXMoZmxvdzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgY2hhbm5lbE9wZXJhdG9yPzogc3RyaW5nO1xuICAgIGNoYW5uZWw/OiBzdHJpbmc7XG4gICAgb3BlcmF0aW9ucz86IHN0cmluZ1tdO1xuICAgIGVudHJ5cG9pbnRzPzogc3RyaW5nW107XG4gICAgY29uZGl0aW9uPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGZsb3cubmFtZSkge1xuICAgICAgY29uc3QgbmFtZUlucHV0ID0gYXdhaXQgdGhpcy5uYW1lSW5wdXQoKTtcbiAgICAgIGF3YWl0IG5hbWVJbnB1dC5zZXRWYWx1ZShmbG93Lm5hbWUpO1xuICAgIH1cbiAgICBpZiAoZmxvdy5jaGFubmVsT3BlcmF0b3IpIHtcbiAgICAgIGNvbnN0IGNoYW5uZWxPcGVyYXRvcklucHV0ID0gYXdhaXQgdGhpcy5jaGFubmVsT3BlcmF0b3JJbnB1dCgpO1xuICAgICAgY29uc3QgZW50cnlwb2ludHNJbnB1dCA9IGF3YWl0IHRoaXMuZW50cnlwb2ludHNJbnB1dCgpO1xuICAgICAgYXdhaXQgY2hhbm5lbE9wZXJhdG9ySW5wdXQub3BlbigpO1xuICAgICAgLy8gVW5zZWxlY3QgYWxsIG9wdGlvbnMgYmVmb3JlIHNlbGVjdGluZyB0aGUgbmV3IG9uZVxuICAgICAgZm9yIChjb25zdCBvcHRpb24gb2YgYXdhaXQgZW50cnlwb2ludHNJbnB1dC5nZXRPcHRpb25zKCkpIHtcbiAgICAgICAgaWYgKGF3YWl0IG9wdGlvbi5pc1NlbGVjdGVkKCkpIHtcbiAgICAgICAgICBhd2FpdCBvcHRpb24uY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgY2hhbm5lbE9wZXJhdG9ySW5wdXQuY2xpY2tPcHRpb25zKHsgdGV4dDogbmV3IFJlZ0V4cChmbG93LmNoYW5uZWxPcGVyYXRvciwgJ2knKSB9KTtcbiAgICB9XG4gICAgaWYgKGZsb3cuY2hhbm5lbCkge1xuICAgICAgY29uc3QgY2hhbm5lbElucHV0ID0gYXdhaXQgdGhpcy5jaGFubmVsSW5wdXQoKTtcbiAgICAgIGF3YWl0IGNoYW5uZWxJbnB1dC5zZXRWYWx1ZShmbG93LmNoYW5uZWwpO1xuICAgIH1cbiAgICBpZiAoZmxvdy5vcGVyYXRpb25zKSB7XG4gICAgICBjb25zdCBvcGVyYXRpb25zSW5wdXQgPSBhd2FpdCB0aGlzLm9wZXJhdGlvbnNJbnB1dCgpO1xuICAgICAgYXdhaXQgcGFyYWxsZWwoKCkgPT5cbiAgICAgICAgKGZsb3cub3BlcmF0aW9ucyA/PyBbXSkubWFwKGFzeW5jIG9wZXJhdGlvbiA9PiB7XG4gICAgICAgICAgYXdhaXQgb3BlcmF0aW9uc0lucHV0Lm9wZW4oKTtcbiAgICAgICAgICAvLyBVbnNlbGVjdCBhbGwgb3B0aW9ucyBiZWZvcmUgc2VsZWN0aW5nIHRoZSBuZXcgb25lXG4gICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2YgYXdhaXQgb3BlcmF0aW9uc0lucHV0LmdldE9wdGlvbnMoKSkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IG9wdGlvbi5pc1NlbGVjdGVkKCkpIHtcbiAgICAgICAgICAgICAgYXdhaXQgb3B0aW9uLmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IG9wZXJhdGlvbnNJbnB1dC5jbGlja09wdGlvbnMoeyB0ZXh0OiBuZXcgUmVnRXhwKG9wZXJhdGlvbiwgJ2knKSB9KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoZmxvdy5lbnRyeXBvaW50cykge1xuICAgICAgY29uc3QgZW50cnlwb2ludHNJbnB1dCA9IGF3YWl0IHRoaXMuZW50cnlwb2ludHNJbnB1dCgpO1xuICAgICAgYXdhaXQgZW50cnlwb2ludHNJbnB1dC5vcGVuKCk7XG4gICAgICAvLyBVbnNlbGVjdCBhbGwgb3B0aW9ucyBiZWZvcmUgc2VsZWN0aW5nIHRoZSBuZXcgb25lXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBhd2FpdCBlbnRyeXBvaW50c0lucHV0LmdldE9wdGlvbnMoKSkge1xuICAgICAgICBpZiAoYXdhaXQgb3B0aW9uLmlzU2VsZWN0ZWQoKSkge1xuICAgICAgICAgIGF3YWl0IG9wdGlvbi5jbGljaygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCBwYXJhbGxlbCgoKSA9PlxuICAgICAgICAoZmxvdy5lbnRyeXBvaW50cyA/PyBbXSkubWFwKGFzeW5jIGVudHJ5cG9pbnQgPT4ge1xuICAgICAgICAgIGF3YWl0IGVudHJ5cG9pbnRzSW5wdXQuY2xpY2tPcHRpb25zKHsgdGV4dDogbmV3IFJlZ0V4cChlbnRyeXBvaW50LCAnaScpIH0pO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChmbG93LmNvbmRpdGlvbikge1xuICAgICAgY29uc3QgY29uZGl0aW9uSW5wdXQgPSBhd2FpdCB0aGlzLmNvbmRpdGlvbklucHV0KCk7XG4gICAgICBhd2FpdCBjb25kaXRpb25JbnB1dC5zZXRWYWx1ZShmbG93LmNvbmRpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldE5hbWUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5uYW1lSW5wdXQoKS50aGVuKGlucHV0ID0+IGlucHV0LmdldFZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENoYW5uZWxPcGVyYXRvcigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmNoYW5uZWxPcGVyYXRvcklucHV0KCkudGhlbihpbnB1dCA9PiBpbnB1dC5nZXRWYWx1ZVRleHQoKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q2hhbm5lbCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmNoYW5uZWxJbnB1dCgpLnRoZW4oaW5wdXQgPT4gaW5wdXQuZ2V0VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0T3BlcmF0aW9ucygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnNJbnB1dCgpLnRoZW4oaW5wdXQgPT4gaW5wdXQuZ2V0VmFsdWVUZXh0KCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEVudHJ5cG9pbnRzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZW50cnlwb2ludHNJbnB1dCgpLnRoZW4oaW5wdXQgPT4gaW5wdXQuZ2V0VmFsdWVUZXh0KCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENvbmRpdGlvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbklucHV0KCkudGhlbihpbnB1dCA9PiBpbnB1dC5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuZ2V0U2F2ZUJ0bigpO1xuICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbmNlbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLmdldENhbmNlbEJ0bigpO1xuICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICB9XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE1BQU0sT0FBTywyQ0FBNEMsU0FBUSxnQkFBZ0I7SUFBakY7O1FBR1UsZUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUEyRXJHLENBQUM7SUF6RVEsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBTzlCO1FBQ0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRyxNQUFN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LFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDbEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEVBQUU7Z0JBQzlDLE1BQU0sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE1BQU0sY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDZixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7QUE3RWEsd0RBQVksR0FBRyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzLCBwYXJhbGxlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24vdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRJbnB1dEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dC90ZXN0aW5nJztcbmltcG9ydCB7IE1hdFNlbGVjdEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QvdGVzdGluZyc7XG5cbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cnO1xuXG4gIHByaXZhdGUgZ2V0U2F2ZUJ0biA9IHRoaXMubG9jYXRvckZvcihNYXRCdXR0b25IYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJy5hY3Rpb25zX19zYXZlQnRuJyB9KSk7XG4gIHByaXZhdGUgZ2V0Q2FuY2VsQnRuID0gdGhpcy5sb2NhdG9yRm9yKE1hdEJ1dHRvbkhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnLmFjdGlvbnNfX2NhbmNlbEJ0bicgfSkpO1xuXG4gIHB1YmxpYyBhc3luYyBzZXRGbG93Rm9ybVZhbHVlcyhmbG93OiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBjaGFubmVsT3BlcmF0b3I/OiBzdHJpbmc7XG4gICAgY2hhbm5lbD86IHN0cmluZztcbiAgICBvcGVyYXRpb25zPzogc3RyaW5nW107XG4gICAgZW50cnlwb2ludHM/OiBzdHJpbmdbXTtcbiAgICBjb25kaXRpb24/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBuYW1lSW5wdXQgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJdJyB9KSkoKTtcbiAgICBjb25zdCBjaGFubmVsT3BlcmF0b3JJbnB1dCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRTZWxlY3RIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJjaGFubmVsT3BlcmF0b3JcIl0nIH0pKSgpO1xuICAgIGNvbnN0IGNoYW5uZWxJbnB1dCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cImNoYW5uZWxcIl0nIH0pKSgpO1xuICAgIGNvbnN0IG9wZXJhdGlvbnNJbnB1dCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRTZWxlY3RIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJvcGVyYXRpb25zXCJdJyB9KSkoKTtcbiAgICBjb25zdCBlbnRyeXBvaW50c0lucHV0ID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKE1hdFNlbGVjdEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cImVudHJ5cG9pbnRzXCJdJyB9KSkoKTtcbiAgICBjb25zdCBjb25kaXRpb25JbnB1dCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvblwiXScgfSkpKCk7XG5cbiAgICBpZiAoZmxvdy5uYW1lKSB7XG4gICAgICBhd2FpdCBuYW1lSW5wdXQuc2V0VmFsdWUoZmxvdy5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGZsb3cuY2hhbm5lbE9wZXJhdG9yKSB7XG4gICAgICBhd2FpdCBjaGFubmVsT3BlcmF0b3JJbnB1dC5vcGVuKCk7XG4gICAgICAvLyBVbnNlbGVjdCBhbGwgb3B0aW9ucyBiZWZvcmUgc2VsZWN0aW5nIHRoZSBuZXcgb25lXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBhd2FpdCBlbnRyeXBvaW50c0lucHV0LmdldE9wdGlvbnMoKSkge1xuICAgICAgICBpZiAoYXdhaXQgb3B0aW9uLmlzU2VsZWN0ZWQoKSkge1xuICAgICAgICAgIGF3YWl0IG9wdGlvbi5jbGljaygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCBjaGFubmVsT3BlcmF0b3JJbnB1dC5jbGlja09wdGlvbnMoeyB0ZXh0OiBuZXcgUmVnRXhwKGZsb3cuY2hhbm5lbE9wZXJhdG9yLCAnaScpIH0pO1xuICAgIH1cbiAgICBpZiAoZmxvdy5jaGFubmVsKSB7XG4gICAgICBhd2FpdCBjaGFubmVsSW5wdXQuc2V0VmFsdWUoZmxvdy5jaGFubmVsKTtcbiAgICB9XG4gICAgaWYgKGZsb3cub3BlcmF0aW9ucykge1xuICAgICAgYXdhaXQgcGFyYWxsZWwoKCkgPT5cbiAgICAgICAgKGZsb3cub3BlcmF0aW9ucyA/PyBbXSkubWFwKGFzeW5jIG9wZXJhdGlvbiA9PiB7XG4gICAgICAgICAgYXdhaXQgb3BlcmF0aW9uc0lucHV0Lm9wZW4oKTtcbiAgICAgICAgICAvLyBVbnNlbGVjdCBhbGwgb3B0aW9ucyBiZWZvcmUgc2VsZWN0aW5nIHRoZSBuZXcgb25lXG4gICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2YgYXdhaXQgb3BlcmF0aW9uc0lucHV0LmdldE9wdGlvbnMoKSkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IG9wdGlvbi5pc1NlbGVjdGVkKCkpIHtcbiAgICAgICAgICAgICAgYXdhaXQgb3B0aW9uLmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IG9wZXJhdGlvbnNJbnB1dC5jbGlja09wdGlvbnMoeyB0ZXh0OiBuZXcgUmVnRXhwKG9wZXJhdGlvbiwgJ2knKSB9KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoZmxvdy5lbnRyeXBvaW50cykge1xuICAgICAgYXdhaXQgZW50cnlwb2ludHNJbnB1dC5vcGVuKCk7XG4gICAgICAvLyBVbnNlbGVjdCBhbGwgb3B0aW9ucyBiZWZvcmUgc2VsZWN0aW5nIHRoZSBuZXcgb25lXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBhd2FpdCBlbnRyeXBvaW50c0lucHV0LmdldE9wdGlvbnMoKSkge1xuICAgICAgICBpZiAoYXdhaXQgb3B0aW9uLmlzU2VsZWN0ZWQoKSkge1xuICAgICAgICAgIGF3YWl0IG9wdGlvbi5jbGljaygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCBwYXJhbGxlbCgoKSA9PlxuICAgICAgICAoZmxvdy5lbnRyeXBvaW50cyA/PyBbXSkubWFwKGFzeW5jIGVudHJ5cG9pbnQgPT4ge1xuICAgICAgICAgIGF3YWl0IGVudHJ5cG9pbnRzSW5wdXQuY2xpY2tPcHRpb25zKHsgdGV4dDogbmV3IFJlZ0V4cChlbnRyeXBvaW50LCAnaScpIH0pO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChmbG93LmNvbmRpdGlvbikge1xuICAgICAgYXdhaXQgY29uZGl0aW9uSW5wdXQuc2V0VmFsdWUoZmxvdy5jb25kaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuZ2V0U2F2ZUJ0bigpO1xuICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbmNlbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLmdldENhbmNlbEJ0bigpO1xuICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICB9XG59XG4iXX0=
@@ -23,19 +23,17 @@ export class GioPolicyStudioFlowProxyFormDialogHarness extends ComponentHarness
23
23
  super(...arguments);
24
24
  this.getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));
25
25
  this.getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));
26
- this.nameInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="name"]' }));
27
- this.pathOperatorInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="pathOperator"]' }));
28
- this.pathInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="path"]' }));
29
- this.methodsInput = this.locatorFor(GioFormTagsInputHarness.with({ selector: '[formControlName="methods"]' }));
30
- this.conditionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="condition"]' }));
31
26
  }
32
27
  async setFlowFormValues(flow) {
28
+ const nameInput = await this.locatorFor(MatInputHarness.with({ selector: '[formControlName="name"]' }))();
29
+ const pathOperatorInput = await this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="pathOperator"]' }))();
30
+ const pathInput = await this.locatorFor(MatInputHarness.with({ selector: '[formControlName="path"]' }))();
31
+ const methodsInput = await this.locatorFor(GioFormTagsInputHarness.with({ selector: '[formControlName="methods"]' }))();
32
+ const conditionInput = await this.locatorFor(MatInputHarness.with({ selector: '[formControlName="condition"]' }))();
33
33
  if (flow.name) {
34
- const nameInput = await this.nameInput();
35
34
  await nameInput.setValue(flow.name);
36
35
  }
37
36
  if (flow.pathOperator) {
38
- const pathOperatorInput = await this.pathOperatorInput();
39
37
  await pathOperatorInput.open();
40
38
  // Unselect all options before selecting the new one
41
39
  for (const option of await pathOperatorInput.getOptions()) {
@@ -46,33 +44,18 @@ export class GioPolicyStudioFlowProxyFormDialogHarness extends ComponentHarness
46
44
  await pathOperatorInput.clickOptions({ text: new RegExp(flow.pathOperator, 'i') });
47
45
  }
48
46
  if (flow.path) {
49
- const input = await this.pathInput();
50
- await input.setValue(flow.path);
47
+ await pathInput.setValue(flow.path);
51
48
  }
52
49
  if (flow.methods) {
53
- const methodsInput = await this.methodsInput();
54
50
  await methodsInput.removeTag('ALL');
55
51
  for await (const method of flow.methods) {
56
52
  await methodsInput.addTag(method);
57
53
  }
58
54
  }
59
55
  if (flow.condition) {
60
- const conditionInput = await this.conditionInput();
61
56
  await conditionInput.setValue(flow.condition);
62
57
  }
63
58
  }
64
- async getFlowName() {
65
- return this.nameInput().then(input => input.getValue());
66
- }
67
- async getFlowPath() {
68
- return this.pathInput().then(input => input.getValue());
69
- }
70
- async getPathOperator() {
71
- return this.pathOperatorInput().then(input => input.getValueText());
72
- }
73
- async getMethods() {
74
- return this.methodsInput().then(input => input.getTags());
75
- }
76
59
  async save() {
77
60
  const button = await this.getSaveBtn();
78
61
  await button.click();
@@ -83,4 +66,4 @@ export class GioPolicyStudioFlowProxyFormDialogHarness extends ComponentHarness
83
66
  }
84
67
  }
85
68
  GioPolicyStudioFlowProxyFormDialogHarness.hostSelector = 'gio-ps-flow-proxy-form-dialog';
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1mb3JtLWRpYWxvZy9mbG93LXByb3h5LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekUsTUFBTSxPQUFPLHlDQUEwQyxTQUFRLGdCQUFnQjtJQUEvRTs7UUFHVSxlQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkYsaUJBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRixjQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVGLHNCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JB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QUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdkMsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O0FBMUVhLHNEQUFZLEdBQUcsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIyIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24vdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRJbnB1dEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dC90ZXN0aW5nJztcbmltcG9ydCB7IE1hdFNlbGVjdEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QvdGVzdGluZyc7XG5pbXBvcnQgeyBHaW9Gb3JtVGFnc0lucHV0SGFybmVzcyB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5cbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nSGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdnaW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZyc7XG5cbiAgcHJpdmF0ZSBnZXRTYXZlQnRuID0gdGhpcy5sb2NhdG9yRm9yKE1hdEJ1dHRvbkhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnLmFjdGlvbnNfX3NhdmVCdG4nIH0pKTtcbiAgcHJpdmF0ZSBnZXRDYW5jZWxCdG4gPSB0aGlzLmxvY2F0b3JGb3IoTWF0QnV0dG9uSGFybmVzcy53aXRoKHsgc2VsZWN0b3I6ICcuYWN0aW9uc19fY2FuY2VsQnRuJyB9KSk7XG4gIHByaXZhdGUgbmFtZUlucHV0ID0gdGhpcy5sb2NhdG9yRm9yKE1hdElucHV0SGFybmVzcy53aXRoKHsgc2VsZWN0b3I6ICdbZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXScgfSkpO1xuICBwcml2YXRlIHBhdGhPcGVyYXRvcklucHV0ID0gdGhpcy5sb2NhdG9yRm9yKE1hdFNlbGVjdEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cInBhdGhPcGVyYXRvclwiXScgfSkpO1xuICBwcml2YXRlIHBhdGhJbnB1dCA9IHRoaXMubG9jYXRvckZvcihNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cInBhdGhcIl0nIH0pKTtcbiAgcHJpdmF0ZSBtZXRob2RzSW5wdXQgPSB0aGlzLmxvY2F0b3JGb3IoR2lvRm9ybVRhZ3NJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cIm1ldGhvZHNcIl0nIH0pKTtcbiAgcHJpdmF0ZSBjb25kaXRpb25JbnB1dCA9IHRoaXMubG9jYXRvckZvcihNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvblwiXScgfSkpO1xuXG4gIHB1YmxpYyBhc3luYyBzZXRGbG93Rm9ybVZhbHVlcyhmbG93OiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBwYXRoT3BlcmF0b3I/OiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBtZXRob2RzPzogc3RyaW5nW107XG4gICAgY29uZGl0aW9uPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGZsb3cubmFtZSkge1xuICAgICAgY29uc3QgbmFtZUlucHV0ID0gYXdhaXQgdGhpcy5uYW1lSW5wdXQoKTtcbiAgICAgIGF3YWl0IG5hbWVJbnB1dC5zZXRWYWx1ZShmbG93Lm5hbWUpO1xuICAgIH1cbiAgICBpZiAoZmxvdy5wYXRoT3BlcmF0b3IpIHtcbiAgICAgIGNvbnN0IHBhdGhPcGVyYXRvcklucHV0ID0gYXdhaXQgdGhpcy5wYXRoT3BlcmF0b3JJbnB1dCgpO1xuICAgICAgYXdhaXQgcGF0aE9wZXJhdG9ySW5wdXQub3BlbigpO1xuXG4gICAgICAvLyBVbnNlbGVjdCBhbGwgb3B0aW9ucyBiZWZvcmUgc2VsZWN0aW5nIHRoZSBuZXcgb25lXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBhd2FpdCBwYXRoT3BlcmF0b3JJbnB1dC5nZXRPcHRpb25zKCkpIHtcbiAgICAgICAgaWYgKGF3YWl0IG9wdGlvbi5pc1NlbGVjdGVkKCkpIHtcbiAgICAgICAgICBhd2FpdCBvcHRpb24uY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgcGF0aE9wZXJhdG9ySW5wdXQuY2xpY2tPcHRpb25zKHsgdGV4dDogbmV3IFJlZ0V4cChmbG93LnBhdGhPcGVyYXRvciwgJ2knKSB9KTtcbiAgICB9XG4gICAgaWYgKGZsb3cucGF0aCkge1xuICAgICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLnBhdGhJbnB1dCgpO1xuICAgICAgYXdhaXQgaW5wdXQuc2V0VmFsdWUoZmxvdy5wYXRoKTtcbiAgICB9XG4gICAgaWYgKGZsb3cubWV0aG9kcykge1xuICAgICAgY29uc3QgbWV0aG9kc0lucHV0ID0gYXdhaXQgdGhpcy5tZXRob2RzSW5wdXQoKTtcbiAgICAgIGF3YWl0IG1ldGhvZHNJbnB1dC5yZW1vdmVUYWcoJ0FMTCcpO1xuICAgICAgZm9yIGF3YWl0IChjb25zdCBtZXRob2Qgb2YgZmxvdy5tZXRob2RzKSB7XG4gICAgICAgIGF3YWl0IG1ldGhvZHNJbnB1dC5hZGRUYWcobWV0aG9kKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZsb3cuY29uZGl0aW9uKSB7XG4gICAgICBjb25zdCBjb25kaXRpb25JbnB1dCA9IGF3YWl0IHRoaXMuY29uZGl0aW9uSW5wdXQoKTtcbiAgICAgIGF3YWl0IGNvbmRpdGlvbklucHV0LnNldFZhbHVlKGZsb3cuY29uZGl0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Rmxvd05hbWUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5uYW1lSW5wdXQoKS50aGVuKGlucHV0ID0+IGlucHV0LmdldFZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEZsb3dQYXRoKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMucGF0aElucHV0KCkudGhlbihpbnB1dCA9PiBpbnB1dC5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRQYXRoT3BlcmF0b3IoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wYXRoT3BlcmF0b3JJbnB1dCgpLnRoZW4oaW5wdXQgPT4gaW5wdXQuZ2V0VmFsdWVUZXh0KCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldE1ldGhvZHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLm1ldGhvZHNJbnB1dCgpLnRoZW4oaW5wdXQgPT4gaW5wdXQuZ2V0VGFncygpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuZ2V0U2F2ZUJ0bigpO1xuICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbmNlbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLmdldENhbmNlbEJ0bigpO1xuICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICB9XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1mb3JtLWRpYWxvZy9mbG93LXByb3h5LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekUsTUFBTSxPQUFPLHlDQUEwQyxTQUFRLGdCQUFnQjtJQUEvRTs7UUFHVSxlQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkYsaUJBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQW9EckcsQ0FBQztJQWxEUSxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFNOUI7UUFDQyxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFHLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxrQ0FBa0MsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNILE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUcsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hILE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcEgsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsTUFBTSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1lBRS9CLG9EQUFvRDtZQUNwRCxLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0saUJBQWlCLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3pELElBQUksTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQzdCLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUN0QjthQUNGO1lBQ0QsTUFBTSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDcEY7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixNQUFNLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLEtBQUssRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUN2QyxNQUFNLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkM7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdkMsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O0FBdERhLHNEQUFZLEdBQUcsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIyIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24vdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRJbnB1dEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dC90ZXN0aW5nJztcbmltcG9ydCB7IE1hdFNlbGVjdEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QvdGVzdGluZyc7XG5pbXBvcnQgeyBHaW9Gb3JtVGFnc0lucHV0SGFybmVzcyB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5cbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nSGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdnaW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZyc7XG5cbiAgcHJpdmF0ZSBnZXRTYXZlQnRuID0gdGhpcy5sb2NhdG9yRm9yKE1hdEJ1dHRvbkhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnLmFjdGlvbnNfX3NhdmVCdG4nIH0pKTtcbiAgcHJpdmF0ZSBnZXRDYW5jZWxCdG4gPSB0aGlzLmxvY2F0b3JGb3IoTWF0QnV0dG9uSGFybmVzcy53aXRoKHsgc2VsZWN0b3I6ICcuYWN0aW9uc19fY2FuY2VsQnRuJyB9KSk7XG5cbiAgcHVibGljIGFzeW5jIHNldEZsb3dGb3JtVmFsdWVzKGZsb3c6IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHBhdGhPcGVyYXRvcj86IHN0cmluZztcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIG1ldGhvZHM/OiBzdHJpbmdbXTtcbiAgICBjb25kaXRpb24/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBuYW1lSW5wdXQgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJdJyB9KSkoKTtcbiAgICBjb25zdCBwYXRoT3BlcmF0b3JJbnB1dCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRTZWxlY3RIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJwYXRoT3BlcmF0b3JcIl0nIH0pKSgpO1xuICAgIGNvbnN0IHBhdGhJbnB1dCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1cInBhdGhcIl0nIH0pKSgpO1xuICAgIGNvbnN0IG1ldGhvZHNJbnB1dCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihHaW9Gb3JtVGFnc0lucHV0SGFybmVzcy53aXRoKHsgc2VsZWN0b3I6ICdbZm9ybUNvbnRyb2xOYW1lPVwibWV0aG9kc1wiXScgfSkpKCk7XG4gICAgY29uc3QgY29uZGl0aW9uSW5wdXQgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIl0nIH0pKSgpO1xuXG4gICAgaWYgKGZsb3cubmFtZSkge1xuICAgICAgYXdhaXQgbmFtZUlucHV0LnNldFZhbHVlKGZsb3cubmFtZSk7XG4gICAgfVxuICAgIGlmIChmbG93LnBhdGhPcGVyYXRvcikge1xuICAgICAgYXdhaXQgcGF0aE9wZXJhdG9ySW5wdXQub3BlbigpO1xuXG4gICAgICAvLyBVbnNlbGVjdCBhbGwgb3B0aW9ucyBiZWZvcmUgc2VsZWN0aW5nIHRoZSBuZXcgb25lXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBhd2FpdCBwYXRoT3BlcmF0b3JJbnB1dC5nZXRPcHRpb25zKCkpIHtcbiAgICAgICAgaWYgKGF3YWl0IG9wdGlvbi5pc1NlbGVjdGVkKCkpIHtcbiAgICAgICAgICBhd2FpdCBvcHRpb24uY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgcGF0aE9wZXJhdG9ySW5wdXQuY2xpY2tPcHRpb25zKHsgdGV4dDogbmV3IFJlZ0V4cChmbG93LnBhdGhPcGVyYXRvciwgJ2knKSB9KTtcbiAgICB9XG4gICAgaWYgKGZsb3cucGF0aCkge1xuICAgICAgYXdhaXQgcGF0aElucHV0LnNldFZhbHVlKGZsb3cucGF0aCk7XG4gICAgfVxuICAgIGlmIChmbG93Lm1ldGhvZHMpIHtcbiAgICAgIGF3YWl0IG1ldGhvZHNJbnB1dC5yZW1vdmVUYWcoJ0FMTCcpO1xuICAgICAgZm9yIGF3YWl0IChjb25zdCBtZXRob2Qgb2YgZmxvdy5tZXRob2RzKSB7XG4gICAgICAgIGF3YWl0IG1ldGhvZHNJbnB1dC5hZGRUYWcobWV0aG9kKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZsb3cuY29uZGl0aW9uKSB7XG4gICAgICBhd2FpdCBjb25kaXRpb25JbnB1dC5zZXRWYWx1ZShmbG93LmNvbmRpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgdGhpcy5nZXRTYXZlQnRuKCk7XG4gICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuZ2V0Q2FuY2VsQnRuKCk7XG4gICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gIH1cbn1cbiJdfQ==
@@ -255,21 +255,19 @@ class GioPolicyStudioFlowProxyFormDialogHarness extends ComponentHarness {
255
255
  super(...arguments);
256
256
  this.getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));
257
257
  this.getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));
258
- this.nameInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="name"]' }));
259
- this.pathOperatorInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="pathOperator"]' }));
260
- this.pathInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="path"]' }));
261
- this.methodsInput = this.locatorFor(GioFormTagsInputHarness.with({ selector: '[formControlName="methods"]' }));
262
- this.conditionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="condition"]' }));
263
258
  }
264
259
  setFlowFormValues(flow) {
265
260
  var e_1, _a;
266
261
  return __awaiter(this, void 0, void 0, function* () {
262
+ const nameInput = yield this.locatorFor(MatInputHarness.with({ selector: '[formControlName="name"]' }))();
263
+ const pathOperatorInput = yield this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="pathOperator"]' }))();
264
+ const pathInput = yield this.locatorFor(MatInputHarness.with({ selector: '[formControlName="path"]' }))();
265
+ const methodsInput = yield this.locatorFor(GioFormTagsInputHarness.with({ selector: '[formControlName="methods"]' }))();
266
+ const conditionInput = yield this.locatorFor(MatInputHarness.with({ selector: '[formControlName="condition"]' }))();
267
267
  if (flow.name) {
268
- const nameInput = yield this.nameInput();
269
268
  yield nameInput.setValue(flow.name);
270
269
  }
271
270
  if (flow.pathOperator) {
272
- const pathOperatorInput = yield this.pathOperatorInput();
273
271
  yield pathOperatorInput.open();
274
272
  // Unselect all options before selecting the new one
275
273
  for (const option of yield pathOperatorInput.getOptions()) {
@@ -280,11 +278,9 @@ class GioPolicyStudioFlowProxyFormDialogHarness extends ComponentHarness {
280
278
  yield pathOperatorInput.clickOptions({ text: new RegExp(flow.pathOperator, 'i') });
281
279
  }
282
280
  if (flow.path) {
283
- const input = yield this.pathInput();
284
- yield input.setValue(flow.path);
281
+ yield pathInput.setValue(flow.path);
285
282
  }
286
283
  if (flow.methods) {
287
- const methodsInput = yield this.methodsInput();
288
284
  yield methodsInput.removeTag('ALL');
289
285
  try {
290
286
  for (var _b = __asyncValues(flow.methods), _c; _c = yield _b.next(), !_c.done;) {
@@ -301,31 +297,10 @@ class GioPolicyStudioFlowProxyFormDialogHarness extends ComponentHarness {
301
297
  }
302
298
  }
303
299
  if (flow.condition) {
304
- const conditionInput = yield this.conditionInput();
305
300
  yield conditionInput.setValue(flow.condition);
306
301
  }
307
302
  });
308
303
  }
309
- getFlowName() {
310
- return __awaiter(this, void 0, void 0, function* () {
311
- return this.nameInput().then(input => input.getValue());
312
- });
313
- }
314
- getFlowPath() {
315
- return __awaiter(this, void 0, void 0, function* () {
316
- return this.pathInput().then(input => input.getValue());
317
- });
318
- }
319
- getPathOperator() {
320
- return __awaiter(this, void 0, void 0, function* () {
321
- return this.pathOperatorInput().then(input => input.getValueText());
322
- });
323
- }
324
- getMethods() {
325
- return __awaiter(this, void 0, void 0, function* () {
326
- return this.methodsInput().then(input => input.getTags());
327
- });
328
- }
329
304
  save() {
330
305
  return __awaiter(this, void 0, void 0, function* () {
331
306
  const button = yield this.getSaveBtn();
@@ -346,22 +321,19 @@ class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarness {
346
321
  super(...arguments);
347
322
  this.getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));
348
323
  this.getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));
349
- this.nameInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="name"]' }));
350
- this.channelOperatorInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="channelOperator"]' }));
351
- this.channelInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="channel"]' }));
352
- this.operationsInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="operations"]' }));
353
- this.entrypointsInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="entrypoints"]' }));
354
- this.conditionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName="condition"]' }));
355
324
  }
356
325
  setFlowFormValues(flow) {
357
326
  return __awaiter(this, void 0, void 0, function* () {
327
+ const nameInput = yield this.locatorFor(MatInputHarness.with({ selector: '[formControlName="name"]' }))();
328
+ const channelOperatorInput = yield this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="channelOperator"]' }))();
329
+ const channelInput = yield this.locatorFor(MatInputHarness.with({ selector: '[formControlName="channel"]' }))();
330
+ const operationsInput = yield this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="operations"]' }))();
331
+ const entrypointsInput = yield this.locatorFor(MatSelectHarness.with({ selector: '[formControlName="entrypoints"]' }))();
332
+ const conditionInput = yield this.locatorFor(MatInputHarness.with({ selector: '[formControlName="condition"]' }))();
358
333
  if (flow.name) {
359
- const nameInput = yield this.nameInput();
360
334
  yield nameInput.setValue(flow.name);
361
335
  }
362
336
  if (flow.channelOperator) {
363
- const channelOperatorInput = yield this.channelOperatorInput();
364
- const entrypointsInput = yield this.entrypointsInput();
365
337
  yield channelOperatorInput.open();
366
338
  // Unselect all options before selecting the new one
367
339
  for (const option of yield entrypointsInput.getOptions()) {
@@ -372,11 +344,9 @@ class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarness {
372
344
  yield channelOperatorInput.clickOptions({ text: new RegExp(flow.channelOperator, 'i') });
373
345
  }
374
346
  if (flow.channel) {
375
- const channelInput = yield this.channelInput();
376
347
  yield channelInput.setValue(flow.channel);
377
348
  }
378
349
  if (flow.operations) {
379
- const operationsInput = yield this.operationsInput();
380
350
  yield parallel(() => {
381
351
  var _a;
382
352
  return ((_a = flow.operations) !== null && _a !== void 0 ? _a : []).map((operation) => __awaiter(this, void 0, void 0, function* () {
@@ -392,7 +362,6 @@ class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarness {
392
362
  });
393
363
  }
394
364
  if (flow.entrypoints) {
395
- const entrypointsInput = yield this.entrypointsInput();
396
365
  yield entrypointsInput.open();
397
366
  // Unselect all options before selecting the new one
398
367
  for (const option of yield entrypointsInput.getOptions()) {
@@ -408,41 +377,10 @@ class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarness {
408
377
  });
409
378
  }
410
379
  if (flow.condition) {
411
- const conditionInput = yield this.conditionInput();
412
380
  yield conditionInput.setValue(flow.condition);
413
381
  }
414
382
  });
415
383
  }
416
- getName() {
417
- return __awaiter(this, void 0, void 0, function* () {
418
- return this.nameInput().then(input => input.getValue());
419
- });
420
- }
421
- getChannelOperator() {
422
- return __awaiter(this, void 0, void 0, function* () {
423
- return this.channelOperatorInput().then(input => input.getValueText());
424
- });
425
- }
426
- getChannel() {
427
- return __awaiter(this, void 0, void 0, function* () {
428
- return this.channelInput().then(input => input.getValue());
429
- });
430
- }
431
- getOperations() {
432
- return __awaiter(this, void 0, void 0, function* () {
433
- return this.operationsInput().then(input => input.getValueText());
434
- });
435
- }
436
- getEntrypoints() {
437
- return __awaiter(this, void 0, void 0, function* () {
438
- return this.entrypointsInput().then(input => input.getValueText());
439
- });
440
- }
441
- getCondition() {
442
- return __awaiter(this, void 0, void 0, function* () {
443
- return this.conditionInput().then(input => input.getValue());
444
- });
445
- }
446
384
  save() {
447
385
  return __awaiter(this, void 0, void 0, function* () {
448
386
  const button = yield this.getSaveBtn();